<?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>127773</bug_id>
          
          <creation_ts>2014-01-28 06:12:54 -0800</creation_ts>
          <short_desc>Add new files to the EFL and GTK build systems for the jsCStack branch merge</short_desc>
          <delta_ts>2014-01-28 10:01:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (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></keywords>
          <priority>P1</priority>
          <bug_severity>Blocker</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>127763</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Csaba Osztrogonác">ossy</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>bunhere</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>mkwst</cc>
    
    <cc>ossy</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>972881</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-01-28 06:12:54 -0800</bug_when>
    <thetext>I applied the patch from https://bugs.webkit.org/show_bug.cgi?id=127763
and GTK and EFL builds needs to be fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972882</commentid>
    <comment_count>1</comment_count>
      <attachid>222434</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-01-28 06:14:13 -0800</bug_when>
    <thetext>Created attachment 222434
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972884</commentid>
    <comment_count>2</comment_count>
      <attachid>222436</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-01-28 06:22:39 -0800</bug_when>
    <thetext>Created attachment 222436
patch for EWS, integrated to the original patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972885</commentid>
    <comment_count>3</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-01-28 06:23:31 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=222434) [details]
&gt; Patch
Of course it doesn&apos;t build now, because the original patch is not landed yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972886</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-28 06:24:52 -0800</bug_when>
    <thetext>Attachment 222436 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITCode.h:221:  The parameter name &quot;ref&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/jit/JITCode.h:244:  The parameter name &quot;ref&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/bytecode/DFGExitProfile.h:58:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/Repatch.cpp:1497:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:312:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:315:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:312:  The parameter name &quot;codeBlock&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/ForwardingHeaders/inspector/ScriptBreakpoint.h:7:  &quot;JavaScriptCore/ScriptBreakpoint.h&quot; already included at Source/WebCore/ForwardingHeaders/inspector/ScriptBreakpoint.h:3  [build/include] [4]
ERROR: Source/JavaScriptCore/jit/JITOperations.cpp:704:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/runtime/VM.h:71:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:165:  The parameter name &quot;kind&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:169:  Wrong number of spaces before statement. (expected: 24)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:172:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:159:  __rcf_exec is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:1423:  llint_throw_stack_overflow_error is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:1433:  llint_stack_check_at_vm_entry is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/profiler/ProfilerCompilationKind.h:34:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/JavaScriptCore/profiler/ProfilerCompilationKind.h:35:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/JavaScriptCore/jit/ArityCheckFailReturnThunks.cpp:62:  Declaration has space between type name and * in m_nextSize * 2  [whitespace/declaration] [3]
ERROR: Source/JavaScriptCore/interpreter/Interpreter.cpp:654:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/interpreter/Interpreter.cpp:655:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/ftl/FTLUnwindInfo.h:44:  The parameter name &quot;gpr&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/ftl/FTLUnwindInfo.h:45:  The parameter name &quot;gpr&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/ftl/FTLAbstractHeap.cpp:181:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLAbstractHeap.cpp:191:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebCore/ForwardingHeaders/yarr/RegularExpression.h:7:  &quot;JavaScriptCore/RegularExpression.h&quot; already included at Source/WebCore/ForwardingHeaders/yarr/RegularExpression.h:3  [build/include] [4]
ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCall.h:62:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCall.h:66:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/ForwardingHeaders/inspector/ScriptDebugListener.h:7:  &quot;JavaScriptCore/ScriptDebugListener.h&quot; already included at Source/WebCore/ForwardingHeaders/inspector/ScriptDebugListener.h:3  [build/include] [4]
ERROR: Source/WebCore/ForwardingHeaders/inspector/ContentSearchUtilities.h:7:  &quot;JavaScriptCore/ContentSearchUtilities.h&quot; already included at Source/WebCore/ForwardingHeaders/inspector/ContentSearchUtilities.h:3  [build/include] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:116:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:120:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:123:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLUnwindInfo.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitBase.h:70:  The parameter name &quot;jitType&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/jit/JITCode.cpp:130:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITCode.cpp:131:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/heap/MachineStackMarker.h:31:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:126:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp:134:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:578:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/llint/LLIntData.cpp:129:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:59:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:100:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:113:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:356:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:362:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:376:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:378:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:498:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 52 in 293 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972894</commentid>
    <comment_count>5</comment_count>
      <attachid>222439</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-01-28 06:45:14 -0800</bug_when>
    <thetext>Created attachment 222439
patch for EWS, integrated to the original patch with one more fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972897</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-28 06:49:16 -0800</bug_when>
    <thetext>Attachment 222439 did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JITCode.h:221:  The parameter name &quot;ref&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/jit/JITCode.h:244:  The parameter name &quot;ref&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/bytecode/DFGExitProfile.h:58:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/Repatch.cpp:1497:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:312:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:315:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:312:  The parameter name &quot;codeBlock&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/ForwardingHeaders/inspector/ScriptBreakpoint.h:7:  &quot;JavaScriptCore/ScriptBreakpoint.h&quot; already included at Source/WebCore/ForwardingHeaders/inspector/ScriptBreakpoint.h:3  [build/include] [4]
ERROR: Source/JavaScriptCore/jit/JITOperations.cpp:704:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/runtime/VM.h:71:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:165:  The parameter name &quot;kind&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:169:  Wrong number of spaces before statement. (expected: 24)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/bytecode/PutByIdStatus.cpp:172:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:159:  __rcf_exec is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:1423:  llint_throw_stack_overflow_error is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:1433:  llint_stack_check_at_vm_entry is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/profiler/ProfilerCompilationKind.h:34:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/JavaScriptCore/profiler/ProfilerCompilationKind.h:35:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/JavaScriptCore/jit/ArityCheckFailReturnThunks.cpp:62:  Declaration has space between type name and * in m_nextSize * 2  [whitespace/declaration] [3]
ERROR: Source/JavaScriptCore/interpreter/Interpreter.cpp:654:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/interpreter/Interpreter.cpp:655:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/ftl/FTLUnwindInfo.h:44:  The parameter name &quot;gpr&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/ftl/FTLUnwindInfo.h:45:  The parameter name &quot;gpr&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/ftl/FTLAbstractHeap.cpp:181:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLAbstractHeap.cpp:191:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebCore/ForwardingHeaders/yarr/RegularExpression.h:7:  &quot;JavaScriptCore/RegularExpression.h&quot; already included at Source/WebCore/ForwardingHeaders/yarr/RegularExpression.h:3  [build/include] [4]
ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCall.h:62:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCall.h:66:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/ForwardingHeaders/inspector/ScriptDebugListener.h:7:  &quot;JavaScriptCore/ScriptDebugListener.h&quot; already included at Source/WebCore/ForwardingHeaders/inspector/ScriptDebugListener.h:3  [build/include] [4]
ERROR: Source/WebCore/ForwardingHeaders/inspector/ContentSearchUtilities.h:7:  &quot;JavaScriptCore/ContentSearchUtilities.h&quot; already included at Source/WebCore/ForwardingHeaders/inspector/ContentSearchUtilities.h:3  [build/include] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:116:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:120:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:123:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLUnwindInfo.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitBase.h:70:  The parameter name &quot;jitType&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/jit/JITCode.cpp:130:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITCode.cpp:131:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/heap/MachineStackMarker.h:31:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:126:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp:134:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:578:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/llint/LLIntData.cpp:129:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:59:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:100:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/jit/JITInlineCacheGenerator.h:113:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:356:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:362:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:376:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:378:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:498:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 52 in 293 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972932</commentid>
    <comment_count>7</comment_count>
      <attachid>222439</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-28 08:45:51 -0800</bug_when>
    <thetext>Comment on attachment 222439
patch for EWS, integrated to the original patch with one more fix

Attachment 222439 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/4652300589072384

New failing tests:
js/large-expressions.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972933</commentid>
    <comment_count>8</comment_count>
      <attachid>222448</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-28 08:45:53 -0800</bug_when>
    <thetext>Created attachment 222448
Archive of layout-test-results from webkit-ews-06 for mac-mountainlion

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: webkit-ews-06  Port: mac-mountainlion  Platform: Mac OS X 10.8.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972956</commentid>
    <comment_count>9</comment_count>
      <attachid>222439</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-28 09:14:11 -0800</bug_when>
    <thetext>Comment on attachment 222439
patch for EWS, integrated to the original patch with one more fix

Attachment 222439 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/4607192426610688

New failing tests:
js/large-expressions.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972957</commentid>
    <comment_count>10</comment_count>
      <attachid>222458</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-28 09:14:15 -0800</bug_when>
    <thetext>Created attachment 222458
Archive of layout-test-results from webkit-ews-09 for mac-mountainlion-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-09  Port: mac-mountainlion-wk2  Platform: Mac OS X 10.8.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972974</commentid>
    <comment_count>11</comment_count>
      <attachid>222439</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-28 09:54:05 -0800</bug_when>
    <thetext>Comment on attachment 222439
patch for EWS, integrated to the original patch with one more fix

Attachment 222439 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/4553432388075520

New failing tests:
js/large-expressions.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972975</commentid>
    <comment_count>12</comment_count>
      <attachid>222462</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-28 09:54:08 -0800</bug_when>
    <thetext>Created attachment 222462
Archive of layout-test-results from webkit-ews-01 for mac-mountainlion

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: webkit-ews-01  Port: mac-mountainlion  Platform: Mac OS X 10.8.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972977</commentid>
    <comment_count>13</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-01-28 09:57:05 -0800</bug_when>
    <thetext>We can close it since this fix was already integrated to the original patch in https://bugs.webkit.org/show_bug.cgi?id=127763 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972983</commentid>
    <comment_count>14</comment_count>
      <attachid>222434</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-01-28 10:01:05 -0800</bug_when>
    <thetext>Comment on attachment 222434
Patch

Seems fine, but EWS says this didn’t fix the build yet.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222434</attachid>
            <date>2014-01-28 06:14:13 -0800</date>
            <delta_ts>2014-01-28 10:01:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127773-20140128151617.patch</filename>
            <type>text/plain</type>
            <size>2798</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyOTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
YjYzYTI3ZmU4NTUwZjJjMDJhMGU4OTZjY2I5NWIyOGI5ODNiOGY0Li4wMTdjY2NhNmEwNjY5ZWE3
YTI2NTZjYmYwZjBlOTI4MjI2ODZjZTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNC0wMS0yOCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQu
b3JnPgorCisgICAgICAgIEFkZCBuZXcgZmlsZXMgdG8gdGhlIEVGTCBhbmQgR1RLIGJ1aWxkIHN5
c3RlbXMgZm9yIHRoZSBqc0NTdGFjayBicmFuY2ggbWVyZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc3MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbToKKwogMjAxNC0wMS0yNyAgSm9zZXBoIFBlY29yYXJvICA8cGVj
b3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIC1bSlNDb250ZXh0IGV2YWx1dGVTY3JpcHQ6XSBj
YWxscyBKU0V2YWx1dGVTY3JpcHQgd2l0aCBzdGFydGluZ0xpbmVOdW1iZXIgMCwgbGF0ZXIgaW50
ZXJwcmV0ZWQgYXMgYSBvbmVCYXNlZEludApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CmluZGV4IGY0MmEzOWRhZmQ5M2NlNDBiMmRkN2FlNjhlZmYwNzU1ZmMxNDM4ZDguLmMxNWY3ZjVj
ZGYzYjNkMDI1N2IzYTE5YjRiMDRmNDczN2RmNThmM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTI1NCw2ICsyNTQsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNF
UwogICAgIGludGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAKICAgICBpbnRlcnByZXRlci9WTUlu
c3BlY3Rvci5jcHAKIAorICAgIGppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHAKICAg
ICBqaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAogICAgIGppdC9DbG9zdXJlQ2FsbFN0dWJSb3V0aW5l
LmNwcAogICAgIGppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcApAQCAtMjc4LDYgKzI3OSw3IEBA
IHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgaml0L0pJVFN0dWJzLmNwcAogICAgIGpp
dC9KSVRUaHVua3MuY3BwCiAgICAgaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrLmNwcAorICAgIGppdC9SZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuY3Bw
CiAgICAgaml0L1JlZ2lzdGVyU2V0LmNwcAogICAgIGppdC9SZXBhdGNoLmNwcAogICAgIGppdC9U
ZW1wUmVnaXN0ZXJTZXQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05V
bWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IGQwNjBiNmE4ZWEzN2NlZTI3OTE0N2YzMDM5NjU3NzJkMGJkMmY2NDcuLmQ0NGNm
ZTMyY2U2Y2MzMmU2MjA0ZTJiYTNmYzZjMTgzMTQ1NTZmZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC02OTEsNiArNjkxLDggQEAgamF2YXNjcmlwdGNv
cmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1ZNSW5z
cGVjdG9yLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1ZNSW5zcGVj
dG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZVByZWZpeC5oIFwK
KwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgg
XAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3Mu
Y3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAgXAog
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggXAogCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmggXApAQCAtNzQ0LDYgKzc0Niw4IEBAIGph
dmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
VG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRXcml0ZUJhcnJpZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
U0ludGVyZmFjZUpJVC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyUHJl
c2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAgXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L1JlZ2lzdGVyU2V0LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5j
cHAgXAo=
</data>
<flag name="review"
          id="246430"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222436</attachid>
            <date>2014-01-28 06:22:39 -0800</date>
            <delta_ts>2014-01-28 06:36:56 -0800</delta_ts>
            <desc>patch for EWS, integrated to the original patch</desc>
            <filename>bug-127773-20140128152440.patch</filename>
            <type>text/plain</type>
            <size>1659038</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyOTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
YjYzYTI3ZmU4NTUwZjJjMDJhMGU4OTZjY2I5NWIyOGI5ODNiOGY0Li5hMzMwNmU5OTM2MDE4MWMx
MDVhOWM0Nzk5NjQ4YjRiNzk2ZjM1NDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5MjMgQEAKKzIwMTQtMDEtMjggIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFw
cGxlLmNvbT4KKworICAgICAgICBBZGQgbmV3IGZpbGVzIHRvIHRoZSBFRkwgYW5kIEdUSyBidWls
ZCBzeXN0ZW1zIGZvciB0aGUganNDU3RhY2sgYnJhbmNoIG1lcmdlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3NzMKKworICAgICAgICBGb3IgRVdT
IHRlc3Qgb25seSEgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9MjIy
NDM0IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9hdHRhY2htZW50LmNnaT9pZD0yMjI0MDYg
aW4gb25lIHBhdGNoCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLm9yZGVyOgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFzc2VtYmxl
ci9BUk02NEFzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjppc0ludDcpOgorICAgICAgICAoSlND
Ojppc0ludDExKToKKyAgICAgICAgKEpTQzo6UGFpclBvc3RJbmRleDo6UGFpclBvc3RJbmRleCk6
CisgICAgICAgIChKU0M6OlBhaXJQb3N0SW5kZXg6Om9wZXJhdG9yIGludCk6CisgICAgICAgIChK
U0M6OlBhaXJQcmVJbmRleDo6UGFpclByZUluZGV4KToKKyAgICAgICAgKEpTQzo6UGFpclByZUlu
ZGV4OjpvcGVyYXRvciBpbnQpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bWVtUGFp
ck9mZnNldFNoaWZ0KToKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OmFkZCk6CisgICAg
ICAgIChKU0M6OkFSTTY0QXNzZW1ibGVyOjpsZHApOgorICAgICAgICAoSlNDOjpBUk02NEFzc2Vt
Ymxlcjo6c3RwKToKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OnN1Yik6CisgICAgICAg
IChKU0M6OkFSTTY0QXNzZW1ibGVyOjpsb2FkU3RvcmVSZWdpc3RlclBhaXJQb3N0SW5kZXgpOgor
ICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bG9hZFN0b3JlUmVnaXN0ZXJQYWlyUHJlSW5k
ZXgpOgorICAgICAgICAqIGFzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oOgorICAgICAgICAoSlND
OjpBUk12N0Fzc2VtYmxlcjo6YWRkKToKKyAgICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OnBv
cCk6CisgICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjpwdXNoKToKKyAgICAgICAgKEpTQzo6
QVJNdjdBc3NlbWJsZXI6OkFSTUluc3RydWN0aW9uRm9ybWF0dGVyOjp0d29Xb3JkT3AxNkltbTE2
KToKKyAgICAgICAgKiBhc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oOgorICAgICAg
ICAqIGFzc2VtYmxlci9MaW5rQnVmZmVyLmNwcDoKKyAgICAgICAgKEpTQzo6c2hvdWxkU2hvd0Rp
c2Fzc2VtYmx5Rm9yKToKKyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6ZmluYWxpemVDb2RlV2l0
aERpc2Fzc2VtYmx5KToKKyAgICAgICAgKiBhc3NlbWJsZXIvTGlua0J1ZmZlci5oOgorICAgICAg
ICAoSlNDOjpMaW5rQnVmZmVyOjplbnRyeXBvaW50KToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OnN0b3JlUHRyKToK
KyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlckFSTTY0OjphZGQ2NCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyQVJNNjQ6OnBvcFBhaXIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpw
dXNoUGFpcik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6YWRkMzIpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlckFSTXY3Ojpwb3BQYWlyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk12Nzo6cHVzaFBhaXIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojp0
ZXN0MzIpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaDoKKyAg
ICAgICAgKEpTQzo6UmV0dXJuQWRkcmVzc1B0cjo6ZHVtcCk6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQ29kZVB0cjo6b3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSopOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVSZWY6Om9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5
cGUqKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwu
aDogQWRkZWQuCisgICAgICAgICogYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcDoKKyAgICAgICAg
KEpTQzo6Q2FsbExpbmtJbmZvOjp1bmxpbmspOgorICAgICAgICAqIGJ5dGVjb2RlL0NhbGxMaW5r
SW5mby5oOgorICAgICAgICAoSlNDOjpDYWxsTGlua0luZm86OkNhbGxMaW5rSW5mbyk6CisgICAg
ICAgICogYnl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuY3BwOgorICAgICAgICAoSlNDOjpDYWxsTGlu
a1N0YXR1czo6Y29tcHV0ZUZyb21MTEludCk6CisgICAgICAgIChKU0M6OkNhbGxMaW5rU3RhdHVz
Ojpjb21wdXRlRm9yKToKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtTdGF0dXM6OmNvbXB1dGVERkdT
dGF0dXNlcyk6CisgICAgICAgICogYnl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuaDoKKyAgICAgICAg
KEpTQzo6Q2FsbExpbmtTdGF0dXM6Om1ha2VDbG9zdXJlQ2FsbCk6CisgICAgICAgICogYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQXNzdW1pbmdK
SVRUeXBlKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUpOgorICAgICAg
ICAoSlNDOjpDb2RlQmxvY2s6OkNvZGVCbG9jayk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6
Z2V0U3R1YkluZm9NYXApOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmFkZFN0dWJJbmZvKToK
KyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpudW1iZXJPZkRGR0NvbXBpbGVzKToKKyAgICAgICAg
KEpTQzo6Q29kZUJsb2NrOjpjaGVja0lmT3B0aW1pemF0aW9uVGhyZXNob2xkUmVhY2hlZCk6Cisg
ICAgICAgIChKU0M6OkNvZGVCbG9jazo6c3RhY2tQb2ludGVyT2Zmc2V0KToKKyAgICAgICAgKiBi
eXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpzZXRKSVRDb2Rl
KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpqaXRDb2RlKToKKyAgICAgICAgKEpTQzo6Q29k
ZUJsb2NrOjpzcGVjaWFsRmFzdENhc2VQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAg
ICAoSlNDOjpDb2RlQmxvY2s6Omhhc0V4aXRTaXRlKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2Nr
OjpsaXZlbmVzc0FuYWx5c2lzKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlT3JpZ2luLmNwcDoK
KyAgICAgICAgKEpTQzo6Q29kZU9yaWdpbjo6aXNBcHByb3hpbWF0ZWx5RXF1YWxUbyk6CisgICAg
ICAgIChKU0M6OkNvZGVPcmlnaW46OmFwcHJveGltYXRlSGFzaCk6CisgICAgICAgICogYnl0ZWNv
ZGUvQ29kZU9yaWdpbi5oOgorICAgICAgICAoSlNDOjpDb2RlT3JpZ2luOjpDb2RlT3JpZ2luKToK
KyAgICAgICAgKEpTQzo6Q29kZU9yaWdpbjo6ZGVsZXRlZE1hcmtlcik6CisgICAgICAgIChKU0M6
OkNvZGVPcmlnaW5BcHByb3hpbWF0ZUhhc2g6Omhhc2gpOgorICAgICAgICAoSlNDOjpDb2RlT3Jp
Z2luQXBwcm94aW1hdGVIYXNoOjplcXVhbCk6CisgICAgICAgICogYnl0ZWNvZGUvREZHRXhpdFBy
b2ZpbGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkV4aXRQcm9maWxlOjphZGQpOgorICAgICAg
ICAoSlNDOjpERkc6OkV4aXRQcm9maWxlOjpoYXNFeGl0U2l0ZSk6CisgICAgICAgICogYnl0ZWNv
ZGUvREZHRXhpdFByb2ZpbGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpGcmVxdWVudEV4aXRTaXRl
OjpGcmVxdWVudEV4aXRTaXRlKToKKyAgICAgICAgKEpTQzo6REZHOjpGcmVxdWVudEV4aXRTaXRl
OjpvcGVyYXRvcj09KToKKyAgICAgICAgKEpTQzo6REZHOjpGcmVxdWVudEV4aXRTaXRlOjpzdWJz
dW1lcyk6CisgICAgICAgIChKU0M6OkRGRzo6RnJlcXVlbnRFeGl0U2l0ZTo6aGFzaCk6CisgICAg
ICAgIChKU0M6OkRGRzo6RnJlcXVlbnRFeGl0U2l0ZTo6aml0VHlwZSk6CisgICAgICAgIChKU0M6
OkRGRzo6RnJlcXVlbnRFeGl0U2l0ZTo6d2l0aEpJVFR5cGUpOgorICAgICAgICAoSlNDOjpERkc6
OlF1ZXJ5YWJsZUV4aXRQcm9maWxlOjpoYXNFeGl0U2l0ZSk6CisgICAgICAgICogYnl0ZWNvZGUv
RXhpdEtpbmQuaDoKKyAgICAgICAgKiBieXRlY29kZS9FeGl0aW5nSklUVHlwZS5oOiBBZGRlZC4K
KyAgICAgICAgKEpTQzo6ZXhpdGluZ0pJVFR5cGVGb3IpOgorICAgICAgICAqIGJ5dGVjb2RlL0dl
dEJ5SWRTdGF0dXMuY3BwOgorICAgICAgICAoSlNDOjpHZXRCeUlkU3RhdHVzOjpoYXNFeGl0U2l0
ZSk6CisgICAgICAgIChKU0M6OkdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IpOgorICAgICAgICAo
SlNDOjpHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm8pOgorICAgICAgICAqIGJ5dGVj
b2RlL0dldEJ5SWRTdGF0dXMuaDoKKyAgICAgICAgKiBieXRlY29kZS9Qcm9maWxlZENvZGVCbG9j
a0pldHRpc29uaW5nV2F0Y2hwb2ludC5jcHA6CisgICAgICAgIChKU0M6OlByb2ZpbGVkQ29kZUJs
b2NrSmV0dGlzb25pbmdXYXRjaHBvaW50OjpmaXJlSW50ZXJuYWwpOgorICAgICAgICAqIGJ5dGVj
b2RlL1B1dEJ5SWRTdGF0dXMuY3BwOgorICAgICAgICAoSlNDOjpQdXRCeUlkU3RhdHVzOjpoYXNF
eGl0U2l0ZSk6CisgICAgICAgIChKU0M6OlB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IpOgorICAg
ICAgICAoSlNDOjpQdXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm8pOgorICAgICAgICAq
IGJ5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuaDoKKyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVT
ZXQuaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU2V0OjpTdHJ1Y3R1cmVTZXQpOgorICAgICAg
ICAoSlNDOjpTdHJ1Y3R1cmVTZXQ6OmFkZCk6CisgICAgICAgICogYnl0ZWNvZGUvU3RydWN0dXJl
U3R1YkluZm8uaDoKKyAgICAgICAgKiBieXRlY29kZS9WYWx1ZVJlY292ZXJ5Lmg6CisgICAgICAg
IChKU0M6OlZhbHVlUmVjb3Zlcnk6OndpdGhMb2NhbHNPZmZzZXQpOgorICAgICAgICAqIGJ5dGVj
b2RlL1ZpcnR1YWxSZWdpc3Rlci5oOgorICAgICAgICAoSlNDOjpWaXJ0dWFsUmVnaXN0ZXI6Om9m
ZnNldEluQnl0ZXMpOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcDoK
KyAgICAgICAgKiBkZmcvREZHQXJyYXlNb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpBcnJh
eU1vZGU6OnJlZmluZSk6CisgICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5oOgorICAgICAgICAq
IGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQ
YXJzZXI6OmFkZENhbGwpOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5k
bGVDYWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW5saW5p
bmcpOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVHZXRCeUlkKToK
KyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAg
IChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlKToKKyAgICAgICAgKiBkZmcvREZHQ0ZH
U2ltcGxpZmljYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Q0ZHU2ltcGxpZmlj
YXRpb25QaGFzZTo6cnVuKToKKyAgICAgICAgKiBkZmcvREZHQ1NFUGhhc2UuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OkNTRVBoYXNlOjppbnZhbGlkYXRpb25Qb2ludEVsaW1pbmF0aW9uKToKKyAg
ICAgICAgKEpTQzo6REZHOjpDU0VQaGFzZTo6cGVyZm9ybU5vZGVDU0UpOgorICAgICAgICAqIGRm
Zy9ERkdDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZl
bCk6CisgICAgICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5oOgorICAgICAgICAoSlNDOjpERkc6
OmlubGluZUZ1bmN0aW9uRm9yQ2FsbENhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgIChKU0M6OkRG
Rzo6aW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbENhcGFiaWxpdHlMZXZlbCk6CisgICAgICAg
IChKU0M6OkRGRzo6aW5saW5lRnVuY3Rpb25Gb3JDb25zdHJ1Y3RDYXBhYmlsaXR5TGV2ZWwpOgor
ICAgICAgICAoSlNDOjpERkc6OmlubGluZUZ1bmN0aW9uRm9yQ2FwYWJpbGl0eUxldmVsKToKKyAg
ICAgICAgKiBkZmcvREZHQ29tbW9uLmg6CisgICAgICAgICogZGZnL0RGR0NvbXBpbGF0aW9uTW9k
ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmlzRlRMKToKKyAgICAgICAgKiBkZmcvREZHRHJpdmVy
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpjb21waWxlSW1wbCk6CisgICAgICAgIChKU0M6OkRG
Rzo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR0RyaXZlci5oOgorICAgICAgICAqIGRmZy9E
RkdGYWlsZWRGaW5hbGl6ZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZhaWxlZEZpbmFsaXpl
cjo6Y29kZVNpemUpOgorICAgICAgICAqIGRmZy9ERkdGYWlsZWRGaW5hbGl6ZXIuaDoKKyAgICAg
ICAgKiBkZmcvREZHRmluYWxpemVyLmg6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgIChK
U0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBTZXRMb2NhbHNJbkJsb2NrKToKKyAgICAgICAgKEpT
Qzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cFVudHlwZWRTZXRMb2NhbHNJbkJsb2NrKToKKyAgICAg
ICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXhFZGdlKToKKyAgICAgICAgKEpTQzo6REZHOjpG
aXh1cFBoYXNlOjppbnNlcnRTdG9yZUJhcnJpZXIpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVw
UGhhc2U6OmZpeEludEVkZ2UpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmluamVj
dEludDMyVG9Eb3VibGVOb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjphdHRl
bXB0VG9NYWtlR2V0QXJyYXlMZW5ndGgpOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6
OmFkZFBoYW50b21zSWZOZWNlc3NhcnkpOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6R3JhcGg6OmlzTGl2ZUluQnl0ZWNvZGUpOgorICAgICAgICAoSlND
OjpERkc6OkdyYXBoOjpmcmFtZVJlZ2lzdGVyQ291bnQpOgorICAgICAgICAoSlNDOjpERkc6Okdy
YXBoOjpzdGFja1BvaW50ZXJPZmZzZXQpOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5oOgorICAg
ICAgICAqIGRmZy9ERkdKSVRDb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb2RlOjpz
ZXRPcHRpbWl6YXRpb25UaHJlc2hvbGRCYXNlZE9uQ29tcGlsYXRpb25SZXN1bHQpOgorICAgICAg
ICAqIGRmZy9ERkdKSVRDb2RlLmg6CisgICAgICAgICogZGZnL0RGR0pJVENvbXBpbGVyLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6Y29tcGlsZUVudHJ5KToKKyAgICAgICAg
KEpTQzo6REZHOjpKSVRDb21waWxlcjo6Y29tcGlsZUV4Y2VwdGlvbkhhbmRsZXJzKToKKyAgICAg
ICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6bGluayk6CisgICAgICAgIChKU0M6OkRGRzo6SklU
Q29tcGlsZXI6OmNvbXBpbGUpOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpjb21w
aWxlRnVuY3Rpb24pOgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5oOgorICAgICAgICAo
SlNDOjpERkc6OkpJVENvbXBpbGVyOjpjdXJyZW50SlNDYWxsSW5kZXgpOgorICAgICAgICAqIGRm
Zy9ERkdKSVRGaW5hbGl6ZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkpJVEZpbmFsaXplcjo6
Y29kZVNpemUpOgorICAgICAgICAoSlNDOjpERkc6OkpJVEZpbmFsaXplcjo6ZmluYWxpemUpOgor
ICAgICAgICAoSlNDOjpERkc6OkpJVEZpbmFsaXplcjo6ZmluYWxpemVGdW5jdGlvbik6CisgICAg
ICAgIChKU0M6OkRGRzo6SklURmluYWxpemVyOjpmaW5hbGl6ZUNvbW1vbik6CisgICAgICAgICog
ZGZnL0RGR0pJVEZpbmFsaXplci5oOgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAg
IChKU0M6OkRGRzo6Tm9kZTo6aXNTZW1hbnRpY2FsbHlTa2lwcGFibGUpOgorICAgICAgICAqIGRm
Zy9ERkdOb2RlRmxhZ3MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmR1bXBOb2RlRmxhZ3MpOgor
ICAgICAgICAqIGRmZy9ERkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlOjpydW4pOgorICAgICAg
ICAqIGRmZy9ERkdPU1JFbnRyeS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6cHJlcGFyZU9TUkVu
dHJ5KToKKyAgICAgICAgKiBkZmcvREZHT1NSRW50cnlwb2ludENyZWF0aW9uUGhhc2UuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6Ok9TUkVudHJ5cG9pbnRDcmVhdGlvblBoYXNlOjpydW4pOgorICAg
ICAgICAqIGRmZy9ERkdPU1JFeGl0Lmg6CisgICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdDo6Y29u
c2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGUpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0
QmFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdEJhc2U6OmNvbnNpZGVyQWRkaW5n
QXNGcmVxdWVudEV4aXRTaXRlU2xvdyk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRCYXNlLmg6
CisgICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdEJhc2U6OmNvbnNpZGVyQWRkaW5nQXNGcmVxdWVu
dEV4aXRTaXRlKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHT1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6
Ok9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0
Q29tcGlsZXI2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdENvbXBpbGVyOjpjb21w
aWxlRXhpdCk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6YWRqdXN0QW5kSnVtcFRvVGFyZ2V0KToKKyAgICAgICAgKiBkZmcv
REZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogZGZnL0RGR1BsYW4uY3BwOgorICAgICAgICAo
SlNDOjpERkc6OnByb2ZpbGVyQ29tcGlsYXRpb25LaW5kRm9yTW9kZSk6CisgICAgICAgIChKU0M6
OkRGRzo6UGxhbjo6UGxhbik6CisgICAgICAgIChKU0M6OkRGRzo6UGxhbjo6cmVwb3J0Q29tcGls
ZVRpbWVzKToKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpjb21waWxlSW5UaHJlYWQpOgorICAg
ICAgICAoSlNDOjpERkc6OlBsYW46OmNvbXBpbGVJblRocmVhZEltcGwpOgorICAgICAgICAqIGRm
Zy9ERkdQbGFuLmg6CisgICAgICAgICogZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2UuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OlNTQUxvd2VyaW5nUGhhc2U6OmhhbmRsZU5vZGUpOgorICAgICAgICAo
SlNDOjpERkc6OlNTQUxvd2VyaW5nUGhhc2U6Omxvd2VyQm91bmRzQ2hlY2spOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVDdXJyZW50QmxvY2spOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpwcmVwYXJlSklUQ29kZUZvclRpZXJVcCk6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KToKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yRmxvYXRUeXBlZEFycmF5KToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoTW9kKToKKyAgICAgICAg
KiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y2FsbGVlRnJhbWVPZmZzZXQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjYWxsZWVGcmFtZVNsb3QpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
OjpjYWxsZWVBcmd1bWVudFNsb3QpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
OjpjYWxsZWVGcmFtZVRhZ1Nsb3QpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
OjpjYWxsZWVGcmFtZVBheWxvYWRTbG90KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y2FsbGVlQXJndW1lbnRUYWdTbG90KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y2FsbGVlQXJndW1lbnRQYXlsb2FkU2xvdCk6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNhbGxlZUZyYW1lQ2FsbGVyRnJhbWUpOgorICAgICAgICAqIGRmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y2FjaGVkR2V0QnlJZCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNhY2hlZFB1dEJ5SWQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0
Q2FsbCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAg
ICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNhY2hlZFB1dEJ5SWQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjplbWl0Q2FsbCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUpOgorICAgICAgICAqIGRmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpUaWVyVXBDaGVja0luamVjdGlvblBoYXNlOjpydW4pOgorICAgICAg
ICAqIGRmZy9ERkdWYWxpZGF0ZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6VmFsaWRhdGU6OnZh
bGlkYXRlKToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OmVuc3VyZUdsb2JhbERGR1dvcmtsaXN0KToKKyAgICAgICAgKEpTQzo6REZHOjpleGlzdGlu
Z0dsb2JhbERGR1dvcmtsaXN0T3JOdWxsKToKKyAgICAgICAgKEpTQzo6REZHOjplbnN1cmVHbG9i
YWxGVExXb3JrbGlzdCk6CisgICAgICAgIChKU0M6OkRGRzo6ZXhpc3RpbmdHbG9iYWxGVExXb3Jr
bGlzdE9yTnVsbCk6CisgICAgICAgIChKU0M6OkRGRzo6ZW5zdXJlR2xvYmFsV29ya2xpc3RGb3Ip
OgorICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5oOgorICAgICAgICAqIGRpc2Fzc2VtYmxlci9B
Uk02NC9BNjRET3Bjb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6QVJNNjREaXNhc3NlbWJsZXI6OkE2
NERPcGNvZGU6OmFwcGVuZFJlZ2lzdGVyTmFtZSk6CisgICAgICAgIChKU0M6OkFSTTY0RGlzYXNz
ZW1ibGVyOjpBNjRET3Bjb2RlTG9hZFN0b3JlUmVnaXN0ZXJQYWlyOjpvcE5hbWUpOgorICAgICAg
ICAoSlNDOjpBUk02NERpc2Fzc2VtYmxlcjo6QTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFp
cjo6Zm9ybWF0KToKKyAgICAgICAgKiBkaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5oOgor
ICAgICAgICAoSlNDOjpBUk02NERpc2Fzc2VtYmxlcjo6QTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lz
dGVyUGFpcjo6cnQyKToKKyAgICAgICAgKEpTQzo6QVJNNjREaXNhc3NlbWJsZXI6OkE2NERPcGNv
ZGVMb2FkU3RvcmVSZWdpc3RlclBhaXI6OmltbWVkaWF0ZTcpOgorICAgICAgICAoSlNDOjpBUk02
NERpc2Fzc2VtYmxlcjo6QTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpcjo6b2Zmc2V0TW9k
ZSk6CisgICAgICAgIChKU0M6OkFSTTY0RGlzYXNzZW1ibGVyOjpBNjRET3Bjb2RlTG9hZFN0b3Jl
UmVnaXN0ZXJQYWlyOjpsQml0KToKKyAgICAgICAgKiBmdGwvRlRMQWJicmV2aWF0aW9ucy5oOgor
ICAgICAgICAoSlNDOjpGVEw6OmFycmF5VHlwZSk6CisgICAgICAgIChKU0M6OkZUTDo6YWRkVGFy
Z2V0RGVwZW5kZW50RnVuY3Rpb25BdHRyKToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFw
LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpJbmRleGVkQWJzdHJhY3RIZWFwOjpJbmRleGVkQWJz
dHJhY3RIZWFwKToKKyAgICAgICAgKEpTQzo6RlRMOjpJbmRleGVkQWJzdHJhY3RIZWFwOjpiYXNl
SW5kZXgpOgorICAgICAgICAoSlNDOjpGVEw6OkluZGV4ZWRBYnN0cmFjdEhlYXA6OmluaXRpYWxp
emUpOgorICAgICAgICAoSlNDOjpGVEw6Ok51bWJlcmVkQWJzdHJhY3RIZWFwOjpOdW1iZXJlZEFi
c3RyYWN0SGVhcCk6CisgICAgICAgIChKU0M6OkZUTDo6QWJzb2x1dGVBYnN0cmFjdEhlYXA6OkFi
c29sdXRlQWJzdHJhY3RIZWFwKToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwLmg6Cisg
ICAgICAgICogZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3BwOgorICAgICAgICAoSlND
OjpGVEw6OkFic3RyYWN0SGVhcFJlcG9zaXRvcnk6OkFic3RyYWN0SGVhcFJlcG9zaXRvcnkpOgor
ICAgICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg6CisgICAgICAgICogZnRs
L0ZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OkZUTDo6QXZh
aWxhYmxlUmVjb3Zlcnk6OmR1bXApOgorICAgICAgICAqIGZ0bC9GVExBdmFpbGFibGVSZWNvdmVy
eS5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpBdmFpbGFibGVSZWNvdmVyeTo6QXZhaWxh
YmxlUmVjb3ZlcnkpOgorICAgICAgICAoSlNDOjpGVEw6OkF2YWlsYWJsZVJlY292ZXJ5Ojpub2Rl
KToKKyAgICAgICAgKEpTQzo6RlRMOjpBdmFpbGFibGVSZWNvdmVyeTo6Zm9ybWF0KToKKyAgICAg
ICAgKEpTQzo6RlRMOjpBdmFpbGFibGVSZWNvdmVyeTo6b3Bjb2RlKToKKyAgICAgICAgKEpTQzo6
RlRMOjpBdmFpbGFibGVSZWNvdmVyeTo6bGVmdCk6CisgICAgICAgIChKU0M6OkZUTDo6QXZhaWxh
YmxlUmVjb3Zlcnk6OnJpZ2h0KToKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoK
KyAgICAgICAgKEpTQzo6RlRMOjp2ZXJib3NlQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKEpTQzo6
RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMQ29tbW9uVmFsdWVzLmNwcDoKKyAg
ICAgICAgKEpTQzo6RlRMOjpDb21tb25WYWx1ZXM6OkNvbW1vblZhbHVlcyk6CisgICAgICAgICog
ZnRsL0ZUTENvbW1vblZhbHVlcy5oOgorICAgICAgICAqIGZ0bC9GVExDb21waWxlLmNwcDoKKyAg
ICAgICAgKEpTQzo6RlRMOjptbUFsbG9jYXRlQ29kZVNlY3Rpb24pOgorICAgICAgICAoSlNDOjpG
VEw6OmZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcyk6CisgICAgICAgIChKU0M6OkZUTDo6Y29t
cGlsZSk6CisgICAgICAgICogZnRsL0ZUTEV4aXRWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkZU
TDo6RXhpdFZhbHVlOjpkdW1wSW5Db250ZXh0KToKKyAgICAgICAgKiBmdGwvRlRMRXhpdFZhbHVl
Lmg6CisgICAgICAgIChKU0M6OkZUTDo6RXhpdFZhbHVlOjpyZWNvdmVyeSk6CisgICAgICAgIChK
U0M6OkZUTDo6RXhpdFZhbHVlOjppc1JlY292ZXJ5KToKKyAgICAgICAgKEpTQzo6RlRMOjpFeGl0
VmFsdWU6OmxlZnRSZWNvdmVyeUFyZ3VtZW50KToKKyAgICAgICAgKEpTQzo6RlRMOjpFeGl0VmFs
dWU6OnJpZ2h0UmVjb3ZlcnlBcmd1bWVudCk6CisgICAgICAgIChKU0M6OkZUTDo6RXhpdFZhbHVl
OjpyZWNvdmVyeUZvcm1hdCk6CisgICAgICAgIChKU0M6OkZUTDo6RXhpdFZhbHVlOjpyZWNvdmVy
eU9wY29kZSk6CisgICAgICAgIChKU0M6OkZUTDo6RXhpdFZhbHVlOjp3aXRoVmlydHVhbFJlZ2lz
dGVyKToKKyAgICAgICAgKEpTQzo6RlRMOjpFeGl0VmFsdWU6OnZhbHVlRm9ybWF0KToKKyAgICAg
ICAgKiBmdGwvRlRMSW5saW5lQ2FjaGVTaXplLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpzaXpl
T2ZDYWxsKToKKyAgICAgICAgKiBmdGwvRlRMSW5saW5lQ2FjaGVTaXplLmg6CisgICAgICAgICog
ZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMSklUQ29kZS5j
cHA6CisgICAgICAgIChKU0M6OkZUTDo6SklUQ29kZTo6aW5pdGlhbGl6ZUFyaXR5Q2hlY2tFbnRy
eXBvaW50KToKKyAgICAgICAgKEpTQzo6RlRMOjpKSVRDb2RlOjppbml0aWFsaXplQWRkcmVzc0Zv
ckNhbGwpOgorICAgICAgICAoSlNDOjpGVEw6OkpJVENvZGU6OmFkZHJlc3NGb3JDYWxsKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpKSVRDb2RlOjpleGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KToKKyAg
ICAgICAgKEpTQzo6RlRMOjpKSVRDb2RlOjpkYXRhQWRkcmVzc0F0T2Zmc2V0KToKKyAgICAgICAg
KEpTQzo6RlRMOjpKSVRDb2RlOjpvZmZzZXRPZik6CisgICAgICAgIChKU0M6OkZUTDo6SklUQ29k
ZTo6c2l6ZSk6CisgICAgICAgIChKU0M6OkZUTDo6SklUQ29kZTo6Y29udGFpbnMpOgorICAgICAg
ICAqIGZ0bC9GVExKSVRDb2RlLmg6CisgICAgICAgICogZnRsL0ZUTEpJVEZpbmFsaXplci5jcHA6
CisgICAgICAgIChKU0M6OkZUTDo6SklURmluYWxpemVyOjpjb2RlU2l6ZSk6CisgICAgICAgIChK
U0M6OkZUTDo6SklURmluYWxpemVyOjpmaW5hbGl6ZUZ1bmN0aW9uKToKKyAgICAgICAgKiBmdGwv
RlRMSklURmluYWxpemVyLmg6CisgICAgICAgICogZnRsL0ZUTEpTQ2FsbC5jcHA6IEFkZGVkLgor
ICAgICAgICAoSlNDOjpGVEw6OkpTQ2FsbDo6SlNDYWxsKToKKyAgICAgICAgKEpTQzo6RlRMOjpK
U0NhbGw6OmVtaXQpOgorICAgICAgICAoSlNDOjpGVEw6OkpTQ2FsbDo6bGluayk6CisgICAgICAg
ICogZnRsL0ZUTEpTQ2FsbC5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpKU0NhbGw6OnN0
YWNrbWFwSUQpOgorICAgICAgICAoSlNDOjpGVEw6OkpTQ2FsbDo6b3BlcmF0b3I8KToKKyAgICAg
ICAgKiBmdGwvRlRMTGluay5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6bGluayk6CisgICAgICAg
ICogZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRG
R1RvTExWTTo6bG93ZXIpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21w
aWxlTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVBcml0
aEFkZE9yU3ViKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUFy
aXRoTXVsKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUFyaXRo
RGl2KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUFyaXRoTW9k
KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUFyaXRoU2luKToK
KyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUFyaXRoQ29zKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUFyaXRoU3FydCk6CisgICAg
ICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVBcml0aE5lZ2F0ZSk6CisgICAg
ICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDaGVja0V4ZWN1dGFibGUpOgor
ICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlR2V0QnlJZCk6CisgICAg
ICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVQdXRCeUlkKToKKyAgICAgICAg
KEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUdldEFycmF5TGVuZ3RoKToKKyAgICAg
ICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUdldEJ5VmFsKToKKyAgICAgICAg
KEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZVB1dEJ5VmFsKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZU5ld0FycmF5V2l0aFNpemUpOgorICAgICAg
ICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlVG9TdHJpbmcpOgorICAgICAgICAo
SlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlTWFrZVJvcGUpOgorICAgICAgICAoSlND
OjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlU3RyaW5nQ2hhckF0KToKKyAgICAgICAgKEpT
Qzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZVN0cmluZ0NoYXJDb2RlQXQpOgorICAgICAg
ICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlR2V0Q2FsbGVlKToKKyAgICAgICAg
KEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUdldFNjb3BlKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUNhbGxPckNvbnN0cnVjdCk6CisgICAgICAg
IChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVTd2l0Y2gpOgorICAgICAgICAoSlND
OjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQ2hlY2tBcmd1bWVudHNOb3RDcmVhdGVkKToK
KyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUNvdW50RXhlY3V0aW9u
KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6dHlwZWRBcnJheUxlbmd0aCk6
CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmJvb2xpZnkpOgorICAgICAgICAo
SlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb250aWd1b3VzUHV0QnlWYWxPdXRPZkJvdW5kcyk6
CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZSk6CisgICAgICAg
IChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZVN0cmluZ09iamVjdCk6CisgICAg
ICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OnNwZWN1bGF0ZVN0cmluZ09yU3RyaW5nT2Jq
ZWN0KToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6c3BlY3VsYXRlU3RyaW5n
T2JqZWN0Rm9yQ2VsbCk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OnNwZWN1
bGF0ZVN0cmluZ09iamVjdEZvclN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJE
RkdUb0xMVk06OmNhbGxDaGVjayk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06
OmFwcGVuZE9TUkV4aXQpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpidWls
ZEV4aXRBcmd1bWVudHMpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjYWxs
U3RhY2ttYXApOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjphZGRFeGl0QXJn
dW1lbnRGb3JOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6ZG9lc0tp
bGwpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjphZGRBdmFpbGFibGVSZWNv
dmVyeSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OnBheWxvYWRGb3IpOgor
ICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjp0YWdGb3IpOgorICAgICAgICAoSlND
OjpGVEw6Okxvd2VyREZHVG9MTFZNOjphZGRyZXNzRm9yKToKKyAgICAgICAgKiBmdGwvRlRMT1NS
RW50cnkuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OnByZXBhcmVPU1JFbnRyeSk6CisgICAgICAg
ICogZnRsL0ZUTE9TUkV4aXQuaDoKKyAgICAgICAgKEpTQzo6RlRMOjpPU1JFeGl0Ojpjb25zaWRl
ckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZSk6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21w
aWxlci5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y29tcGlsZVN0dWIpOgorICAgICAgICAqIGZ0
bC9GVExPdXRwdXQuaDoKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OmRvdWJsZVNpbik6Cisg
ICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojpkb3VibGVDb3MpOgorICAgICAgICAoSlNDOjpGVEw6
Ok91dHB1dDo6ZG91YmxlU3FydCk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0OjpwdHJUb0lu
dCk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojphc2NyaWJlUmFuZ2UpOgorICAgICAgICAo
SlNDOjpGVEw6Ok91dHB1dDo6bm9uTmVnYXRpdmUzMik6CisgICAgICAgIChKU0M6OkZUTDo6T3V0
cHV0Ojpsb2FkMzJOb25OZWdhdGl2ZSk6CisgICAgICAgICogZnRsL0ZUTFJlY292ZXJ5T3Bjb2Rl
LmNwcDogQWRkZWQuCisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGZ0
bC9GVExSZWNvdmVyeU9wY29kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBmdGwvRlRMUmVnaXN0ZXJB
dE9mZnNldC5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpGVEw6OlJlZ2lzdGVyQXRPZmZzZXQ6
OmR1bXApOgorICAgICAgICAqIGZ0bC9GVExSZWdpc3RlckF0T2Zmc2V0Lmg6IEFkZGVkLgorICAg
ICAgICAoSlNDOjpGVEw6OlJlZ2lzdGVyQXRPZmZzZXQ6OlJlZ2lzdGVyQXRPZmZzZXQpOgorICAg
ICAgICAoSlNDOjpGVEw6OlJlZ2lzdGVyQXRPZmZzZXQ6Om9wZXJhdG9yISk6CisgICAgICAgIChK
U0M6OkZUTDo6UmVnaXN0ZXJBdE9mZnNldDo6Z3ByKToKKyAgICAgICAgKEpTQzo6RlRMOjpSZWdp
c3RlckF0T2Zmc2V0OjpvZmZzZXQpOgorICAgICAgICAoSlNDOjpGVEw6OlJlZ2lzdGVyQXRPZmZz
ZXQ6Om9wZXJhdG9yPT0pOgorICAgICAgICAoSlNDOjpGVEw6OlJlZ2lzdGVyQXRPZmZzZXQ6Om9w
ZXJhdG9yPCk6CisgICAgICAgIChKU0M6OkZUTDo6UmVnaXN0ZXJBdE9mZnNldDo6Z2V0R1BSKToK
KyAgICAgICAgKiBmdGwvRlRMU2xvd1BhdGhDYWxsLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpz
dG9yZUNvZGVPcmlnaW4pOgorICAgICAgICAoSlNDOjpGVEw6OmNhbGxPcGVyYXRpb24pOgorICAg
ICAgICAqIGZ0bC9GVExTbG93UGF0aENhbGwuaDoKKyAgICAgICAgKiBmdGwvRlRMU3RhY2tNYXBz
LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpTdGFja01hcHM6OlJlY29yZDo6cGFyc2UpOgorICAg
ICAgICAqIGZ0bC9GVExTdGFja01hcHMuaDoKKyAgICAgICAgKiBmdGwvRlRMU3RhdGUuY3BwOgor
ICAgICAgICAoSlNDOjpGVEw6OlN0YXRlOjpTdGF0ZSk6CisgICAgICAgICogZnRsL0ZUTFN0YXRl
Lmg6CisgICAgICAgICogZnRsL0ZUTFRodW5rcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6b3Ny
RXhpdEdlbmVyYXRpb25UaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkZUTDo6c2xvd1Bh
dGhDYWxsVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAqIGZ0bC9GVExUaHVua3MuaDoKKyAgICAg
ICAgKiBmdGwvRlRMVW53aW5kSW5mby5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpGVEw6OlVu
d2luZEluZm86OlVud2luZEluZm8pOgorICAgICAgICAoSlNDOjpGVEw6OlVud2luZEluZm86On5V
bndpbmRJbmZvKToKKyAgICAgICAgKEpTQzo6RlRMOjpVbndpbmRJbmZvOjpwYXJzZSk6CisgICAg
ICAgIChKU0M6OkZUTDo6VW53aW5kSW5mbzo6ZHVtcCk6CisgICAgICAgIChKU0M6OkZUTDo6VW53
aW5kSW5mbzo6ZmluZCk6CisgICAgICAgIChKU0M6OkZUTDo6VW53aW5kSW5mbzo6aW5kZXhPZik6
CisgICAgICAgICogZnRsL0ZUTFVud2luZEluZm8uaDogQWRkZWQuCisgICAgICAgICogZnRsL0ZU
TFZhbHVlUmFuZ2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpWYWx1ZVJhbmdlOjpk
ZWNvcmF0ZUluc3RydWN0aW9uKToKKyAgICAgICAgKiBmdGwvRlRMVmFsdWVSYW5nZS5oOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6RlRMOjpWYWx1ZVJhbmdlOjpWYWx1ZVJhbmdlKToKKyAgICAgICAg
KEpTQzo6RlRMOjpWYWx1ZVJhbmdlOjpiZWdpbik6CisgICAgICAgIChKU0M6OkZUTDo6VmFsdWVS
YW5nZTo6ZW5kKToKKyAgICAgICAgKiBoZWFwL0NvbnNlcnZhdGl2ZVJvb3RzLmNwcDoKKyAgICAg
ICAgKEpTQzo6Q29uc2VydmF0aXZlUm9vdHM6OmdlbmVyaWNBZGRTcGFuKToKKyAgICAgICAgKiBo
ZWFwL0hlYXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFwOjptYXJrUm9vdHMpOgorICAgICAgICAo
SlNDOjpIZWFwOjpjb2xsZWN0SWZOZWNlc3NhcnlPckRlZmVyKToKKyAgICAgICAgKiBoZWFwL0hl
YXAuaDoKKyAgICAgICAgKEpTQzo6SGVhcDo6aXNEZWZlcnJlZCk6CisgICAgICAgICogaGVhcC9N
YWNoaW5lU3RhY2tNYXJrZXIuY3BwOgorICAgICAgICAoSlNDOjpNYWNoaW5lVGhyZWFkczo6Z2F0
aGVyRnJvbUN1cnJlbnRUaHJlYWQpOgorICAgICAgICAoSlNDOjpNYWNoaW5lVGhyZWFkczo6Z2F0
aGVyRnJvbU90aGVyVGhyZWFkKToKKyAgICAgICAgKEpTQzo6TWFjaGluZVRocmVhZHM6OmdhdGhl
ckNvbnNlcnZhdGl2ZVJvb3RzKToKKyAgICAgICAgKiBoZWFwL01hY2hpbmVTdGFja01hcmtlci5o
OgorICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5jcHA6CisgICAgICAgIChKU0M6OkNh
bGxGcmFtZTo6dG9wT2ZGcmFtZUludGVybmFsKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9DYWxs
RnJhbWUuaDoKKyAgICAgICAgKEpTQzo6RXhlY1N0YXRlOjp0b3BPZkZyYW1lKToKKyAgICAgICAg
KiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OnNpemVGcmFtZUZv
clZhcmFyZ3MpOgorICAgICAgICAoSlNDOjp1bndpbmRDYWxsRnJhbWUpOgorICAgICAgICAoSlND
OjpJbnRlcnByZXRlcjo6dW53aW5kKToKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1
dGUpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwpOgorICAgICAgICAo
SlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdCk6CisgICAgICAgIChKU0M6OkludGVy
cHJldGVyOjpwcmVwYXJlRm9yUmVwZWF0Q2FsbCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuaDoKKyAgICAgICAgKEpTQzo6TmF0aXZlQ2FsbEZyYW1lVHJhY2VyOjpOYXRpdmVD
YWxsRnJhbWVUcmFjZXIpOgorICAgICAgICAqIGludGVycHJldGVyL0pTU3RhY2suY3BwOgorICAg
ICAgICAoSlNDOjpKU1N0YWNrOjpKU1N0YWNrKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6fkpT
U3RhY2spOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpncm93U2xvd0Nhc2UpOgorICAgICAgICAo
SlNDOjpKU1N0YWNrOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyk6CisgICAgICAgIChKU0M6OkpT
U3RhY2s6OnNhbml0aXplU3RhY2spOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpyZWxlYXNlRXhj
ZXNzQ2FwYWNpdHkpOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpzZXRSZXNlcnZlZFpvbmVTaXpl
KToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6bG93QWRkcmVzcyk6CisgICAgICAgIChKU0M6OkpT
U3RhY2s6OmhpZ2hBZGRyZXNzKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6Y29tbWl0dGVkQnl0
ZUNvdW50KToKKyAgICAgICAgKiBpbnRlcnByZXRlci9KU1N0YWNrLmg6CisgICAgICAgIChKU0M6
OkpTU3RhY2s6OmNvbnRhaW5zQWRkcmVzcyk6CisgICAgICAgIChKU0M6OkpTU3RhY2s6OmdhdGhl
ckNvbnNlcnZhdGl2ZVJvb3RzKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6c2FuaXRpemVTdGFj
ayk6CisgICAgICAgIChKU0M6OkpTU3RhY2s6OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAg
ICAoSlNDOjpKU1N0YWNrOjpiYXNlT2ZTdGFjayk6CisgICAgICAgIChKU0M6OkpTU3RhY2s6Omxv
d0FkZHJlc3MpOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjpyZXNlcnZhdGlvblRvcCk6CisgICAg
ICAgICogaW50ZXJwcmV0ZXIvSlNTdGFja0lubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNTdGFj
azo6ZW5zdXJlQ2FwYWNpdHlGb3IpOgorICAgICAgICAoSlNDOjpKU1N0YWNrOjp0b3BPZkZyYW1l
Rm9yKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6dG9wT2ZTdGFjayk6CisgICAgICAgIChKU0M6
OkpTU3RhY2s6OnNocmluayk6CisgICAgICAgIChKU0M6OkpTU3RhY2s6Omdyb3cpOgorICAgICAg
ICAoSlNDOjpKU1N0YWNrOjpzZXRTdGFja0xpbWl0KToKKyAgICAgICAgKiBpbnRlcnByZXRlci9Q
cm90b0NhbGxGcmFtZS5jcHA6CisgICAgICAgIChKU0M6OlByb3RvQ2FsbEZyYW1lOjppbml0KToK
KyAgICAgICAgKiBpbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5oOgorICAgICAgICAoSlNDOjpQ
cm90b0NhbGxGcmFtZTo6c2V0UGFkZGVkQXJnQ291bnQpOgorICAgICAgICAqIGppdC9Bcml0eUNo
ZWNrRmFpbFJldHVyblRodW5rcy5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpBcml0eUNoZWNr
RmFpbFJldHVyblRodW5rczo6QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MpOgorICAgICAgICAo
SlNDOjpBcml0eUNoZWNrRmFpbFJldHVyblRodW5rczo6fkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1
bmtzKToKKyAgICAgICAgKEpTQzo6QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3M6OnJldHVyblBD
c0Zvcik6CisgICAgICAgIChKU0M6OkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOjpyZXR1cm5Q
Q0Zvcik6CisgICAgICAgICogaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmg6IEFkZGVk
LgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjpBc3Nl
bWJseUhlbHBlcnM6OmppdEFzc2VydFRhZ3NJblBsYWNlKToKKyAgICAgICAgKEpTQzo6QXNzZW1i
bHlIZWxwZXJzOjpqaXRBc3NlcnRBcmd1bWVudENvdW50U2FuZSk6CisgICAgICAgICogaml0L0Fz
c2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmNoZWNrU3Rh
Y2tQb2ludGVyQWxpZ25tZW50KToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpwcm9s
b2d1ZVN0YWNrUG9pbnRlckRlbHRhKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpl
bWl0RnVuY3Rpb25Qcm9sb2d1ZSk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1p
dEZ1bmN0aW9uRXBpbG9ndWUpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRQ
dXRUb0NhbGxGcmFtZUhlYWRlckJlZm9yZVByb2xvZ3VlKToKKyAgICAgICAgKEpTQzo6QXNzZW1i
bHlIZWxwZXJzOjplbWl0UHV0UGF5bG9hZFRvQ2FsbEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUp
OgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRQdXRUYWdUb0NhbGxGcmFtZUhl
YWRlckJlZm9yZVByb2xvZ3VlKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjp0YWdG
b3IpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3IpOgorICAgICAg
ICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydFRhZ3NJblBsYWNlKToKKyAgICAgICAg
KEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRBcmd1bWVudENvdW50U2FuZSk6CisgICAg
ICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNl
dHVwQXJndW1lbnRzKToKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oOgorICAg
ICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRFbnRlck9wdGltaXph
dGlvbkNoZWNrKToKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKToK
KyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZSk6CisgICAgICAgIChKU0M6OkpJVDo6
cHJpdmF0ZUNvbXBpbGVFeGNlcHRpb25IYW5kbGVycyk6CisgICAgICAgIChKU0M6OkpJVDo6ZnJh
bWVSZWdpc3RlckNvdW50Rm9yKToKKyAgICAgICAgKEpTQzo6SklUOjpzdGFja1BvaW50ZXJPZmZz
ZXRGb3IpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUQ2FsbC5jcHA6
CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZUxvYWRWYXJhcmdzKToKKyAgICAgICAgKEpTQzo6
SklUOjpjb21waWxlQ2FsbEV2YWwpOgorICAgICAgICAoSlNDOjpKSVQ6OmNvbXBpbGVDYWxsRXZh
bFNsb3dDYXNlKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlT3BDYWxsKToKKyAgICAgICAg
KEpTQzo6SklUOjpjb21waWxlT3BDYWxsU2xvd0Nhc2UpOgorICAgICAgICAoSlNDOjpKSVQ6OnBy
aXZhdGVDb21waWxlQ2xvc3VyZUNhbGwpOgorICAgICAgICAqIGppdC9KSVRDYWxsMzJfNjQuY3Bw
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcmV0KToKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0X29wX3JldF9vYmplY3Rfb3JfdGhpcyk6CisgICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZUxv
YWRWYXJhcmdzKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlQ2FsbEV2YWwpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmNvbXBpbGVDYWxsRXZhbFNsb3dDYXNlKToKKyAgICAgICAgKEpTQzo6SklU
Ojpjb21waWxlT3BDYWxsKToKKyAgICAgICAgKEpTQzo6SklUOjpjb21waWxlT3BDYWxsU2xvd0Nh
c2UpOgorICAgICAgICAqIGppdC9KSVRDb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6SklUQ29kZTo6
ZXhlY3V0ZSk6CisgICAgICAgIChKU0M6OkpJVENvZGVXaXRoQ29kZVJlZjo6SklUQ29kZVdpdGhD
b2RlUmVmKToKKyAgICAgICAgKEpTQzo6SklUQ29kZVdpdGhDb2RlUmVmOjp+SklUQ29kZVdpdGhD
b2RlUmVmKToKKyAgICAgICAgKEpTQzo6SklUQ29kZVdpdGhDb2RlUmVmOjpleGVjdXRhYmxlQWRk
cmVzc0F0T2Zmc2V0KToKKyAgICAgICAgKEpTQzo6SklUQ29kZVdpdGhDb2RlUmVmOjpkYXRhQWRk
cmVzc0F0T2Zmc2V0KToKKyAgICAgICAgKEpTQzo6SklUQ29kZVdpdGhDb2RlUmVmOjpvZmZzZXRP
Zik6CisgICAgICAgIChKU0M6OkpJVENvZGVXaXRoQ29kZVJlZjo6c2l6ZSk6CisgICAgICAgIChK
U0M6OkpJVENvZGVXaXRoQ29kZVJlZjo6Y29udGFpbnMpOgorICAgICAgICAoSlNDOjpEaXJlY3RK
SVRDb2RlOjpEaXJlY3RKSVRDb2RlKToKKyAgICAgICAgKEpTQzo6RGlyZWN0SklUQ29kZTo6fkRp
cmVjdEpJVENvZGUpOgorICAgICAgICAoSlNDOjpEaXJlY3RKSVRDb2RlOjppbml0aWFsaXplQ29k
ZVJlZik6CisgICAgICAgIChKU0M6OkRpcmVjdEpJVENvZGU6OmVuc3VyZVdyYXBwZXJzKToKKyAg
ICAgICAgKEpTQzo6RGlyZWN0SklUQ29kZTo6YWRkcmVzc0ZvckNhbGwpOgorICAgICAgICAoSlND
OjpOYXRpdmVKSVRDb2RlOjpOYXRpdmVKSVRDb2RlKToKKyAgICAgICAgKEpTQzo6TmF0aXZlSklU
Q29kZTo6fk5hdGl2ZUpJVENvZGUpOgorICAgICAgICAoSlNDOjpOYXRpdmVKSVRDb2RlOjppbml0
aWFsaXplQ29kZVJlZik6CisgICAgICAgIChKU0M6Ok5hdGl2ZUpJVENvZGU6OmFkZHJlc3NGb3JD
YWxsKToKKyAgICAgICAgKiBqaXQvSklUQ29kZS5oOgorICAgICAgICAqIGppdC9KSVRFeGNlcHRp
b25zLmNwcDoKKyAgICAgICAgKEpTQzo6Z2VuZXJpY1Vud2luZCk6CisgICAgICAgICogaml0L0pJ
VElubGluZUNhY2hlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SklUQnlJZEdlbmVyYXRv
cjo6SklUQnlJZEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkpJVFB1dEJ5SWRHZW5lcmF0b3I6
OkpJVFB1dEJ5SWRHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVDYWNoZUdlbmVy
YXRvci5oOgorICAgICAgICAoSlNDOjpKSVRHZXRCeUlkR2VuZXJhdG9yOjpKSVRHZXRCeUlkR2Vu
ZXJhdG9yKToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXROYWtlZENhbGwpOgorICAgICAgICAoSlNDOjpKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAg
ICAgICAoSlNDOjpKSVQ6OmNhbGxPcGVyYXRpb25Ob0V4Y2VwdGlvbkNoZWNrKToKKyAgICAgICAg
KiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9lbmQpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcmV0KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX3JldF9vYmplY3Rfb3JfdGhpcyk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9jYXRj
aCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9sb29wX2hpbnQpOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRTbG93X29wX2xvb3BfaGludCk6CisgICAgICAgICogaml0L0pJVE9wY29kZXMz
Ml82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxs
KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2VuZCk6CisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdF9vcF9jYXRjaCk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgIChKU0M6Om9wZXJhdGlvbkxpbmtGb3Ip
OgorICAgICAgICAoSlNDOjpvcGVyYXRpb25WaXJ0dWFsRm9yKToKKyAgICAgICAgKEpTQzo6b3Bl
cmF0aW9uTGlua0Nsb3N1cmVDYWxsRm9yKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nl
c3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkKToKKyAgICAgICAg
KEpTQzo6SklUOjplbWl0X29wX3B1dF9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0
ZUNvbXBpbGVHZXRCeVZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVQdXRC
eVZhbCk6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX3B1dF9ieV9pZCk6CisgICAgICAgICogaml0L0pJVFN0dWJSb3V0aW5lLmg6CisgICAgICAg
ICogaml0L0pJVFN0dWJzLmg6CisgICAgICAgICogaml0L0pJVFN0dWJzTVNWQzY0LmFzbToKKyAg
ICAgICAgKiBqaXQvSklUU3R1YnNYODYuaDoKKyAgICAgICAgKiBqaXQvSklUVGh1bmtzLmNwcDoK
KyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpjdGlOYXRpdmVUYWlsQ2FsbCk6CisgICAgICAgIChK
U0M6OkpJVFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1Yik6CisgICAgICAgICogaml0L0pJVFRodW5r
cy5oOgorICAgICAgICAqIGppdC9SZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3Iu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6cmVnaXN0ZXJzVG9QcmVzZXJ2ZSk6CisgICAgICAg
IChKU0M6OnJlZ2lzdGVyUHJlc2VydmF0aW9uT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6Z2VuZXJh
dGVSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXIpOgorICAgICAgICAoSlNDOjpnZW5lcmF0ZVJl
Z2lzdGVyUmVzdG9yYXRpb24pOgorICAgICAgICAoSlNDOjpyZWdpc3RlclJlc3RvcmF0aW9uVGh1
bmtHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9SZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJH
ZW5lcmF0b3IuaDogQWRkZWQuCisgICAgICAgICogaml0L1JlcGF0Y2guY3BwOgorICAgICAgICAo
SlNDOjpnZW5lcmF0ZVByb3RvQ2hhaW5BY2Nlc3NTdHViKToKKyAgICAgICAgKEpTQzo6dHJ5Q2Fj
aGVHZXRCeUlEKToKKyAgICAgICAgKEpTQzo6dHJ5QnVpbGRHZXRCeUlETGlzdCk6CisgICAgICAg
IChKU0M6OnN0b3JlVG9Xcml0ZUJhcnJpZXJCdWZmZXIpOgorICAgICAgICAoSlNDOjp3cml0ZUJh
cnJpZXIpOgorICAgICAgICAoSlNDOjplbWl0UHV0UmVwbGFjZVN0dWIpOgorICAgICAgICAoSlND
OjplbWl0UHV0VHJhbnNpdGlvblN0dWIpOgorICAgICAgICAoSlNDOjp0cnlSZXBhdGNoSW4pOgor
ICAgICAgICAoSlNDOjpsaW5rU2xvd0Zvcik6CisgICAgICAgIChKU0M6OmxpbmtGb3IpOgorICAg
ICAgICAoSlNDOjpsaW5rQ2xvc3VyZUNhbGwpOgorICAgICAgICAqIGppdC9SZXBhdGNoLmg6Cisg
ICAgICAgICogaml0L1NwZWNpYWxpemVkVGh1bmtKSVQuaDoKKyAgICAgICAgKEpTQzo6U3BlY2lh
bGl6ZWRUaHVua0pJVDo6U3BlY2lhbGl6ZWRUaHVua0pJVCk6CisgICAgICAgIChKU0M6OlNwZWNp
YWxpemVkVGh1bmtKSVQ6OnJldHVybkpTVmFsdWUpOgorICAgICAgICAoSlNDOjpTcGVjaWFsaXpl
ZFRodW5rSklUOjpyZXR1cm5Eb3VibGUpOgorICAgICAgICAoSlNDOjpTcGVjaWFsaXplZFRodW5r
SklUOjpyZXR1cm5JbnQzMik6CisgICAgICAgIChKU0M6OlNwZWNpYWxpemVkVGh1bmtKSVQ6OnJl
dHVybkpTQ2VsbCk6CisgICAgICAgICogaml0L1RodW5rR2VuZXJhdG9ycy5jcHA6CisgICAgICAg
IChKU0M6OnRocm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVyYXRvcik6CisgICAgICAg
IChKU0M6OnNsb3dQYXRoRm9yKToKKyAgICAgICAgKEpTQzo6bGlua0ZvclRodW5rR2VuZXJhdG9y
KToKKyAgICAgICAgKEpTQzo6bGlua0NhbGxUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6
OmxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OmxpbmtDYWxsVGhh
dFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OmxpbmtDb25zdHJ1
Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6bGlua0Ns
b3N1cmVDYWxsRm9yVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpsaW5rQ2xvc3VyZUNh
bGxUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OmxpbmtDbG9zdXJlQ2FsbFRoYXRQcmVz
ZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjp2aXJ0dWFsRm9yVGh1bmtH
ZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjp2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKToKKyAg
ICAgICAgKEpTQzo6dmlydHVhbENvbnN0cnVjdFRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpT
Qzo6dmlydHVhbENhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKToKKyAgICAgICAg
KEpTQzo6dmlydHVhbENvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IpOgor
ICAgICAgICAoSlNDOjpuYXRpdmVGb3JHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpuYXRpdmVU
YWlsQ2FsbEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OmFyaXR5Rml4dXApOgorICAgICAgICAo
SlNDOjpjaGFyQ29kZUF0VGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpjaGFyQXRUaHVu
a0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OmZyb21DaGFyQ29kZVRodW5rR2VuZXJhdG9yKToK
KyAgICAgICAgKEpTQzo6c3FydFRodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6Zmxvb3JU
aHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OmNlaWxUaHVua0dlbmVyYXRvcik6CisgICAg
ICAgIChKU0M6OnJvdW5kVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpleHBUaHVua0dl
bmVyYXRvcik6CisgICAgICAgIChKU0M6OmxvZ1RodW5rR2VuZXJhdG9yKToKKyAgICAgICAgKEpT
Qzo6YWJzVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpwb3dUaHVua0dlbmVyYXRvcik6
CisgICAgICAgIChKU0M6OmltdWxUaHVua0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OmFycmF5
SXRlcmF0b3JOZXh0VGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9UaHVua0dlbmVyYXRv
cnMuaDoKKyAgICAgICAgKEpTQzo6bGlua1RodW5rR2VuZXJhdG9yRm9yKToKKyAgICAgICAgKEpT
Qzo6bGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3JGb3IpOgorICAgICAgICAoSlNDOjp2aXJ0
dWFsVGh1bmtHZW5lcmF0b3JGb3IpOgorICAgICAgICAqIGxsaW50L0xMSW50Q0xvb3AuY3BwOgor
ICAgICAgICAoSlNDOjpMTEludDo6Q0xvb3A6OmluaXRpYWxpemUpOgorICAgICAgICAqIGxsaW50
L0xMSW50Q0xvb3AuaDoKKyAgICAgICAgKiBsbGludC9MTEludERhdGEuY3BwOgorICAgICAgICAo
SlNDOjpMTEludDo6RGF0YTo6cGVyZm9ybUFzc2VydGlvbnMpOgorICAgICAgICAqIGxsaW50L0xM
SW50RW50cnlwb2ludC5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpzZXRGdW5jdGlvbkVudHJ5
cG9pbnQpOgorICAgICAgICAoSlNDOjpMTEludDo6c2V0RXZhbEVudHJ5cG9pbnQpOgorICAgICAg
ICAoSlNDOjpMTEludDo6c2V0UHJvZ3JhbUVudHJ5cG9pbnQpOgorICAgICAgICAoSlNDOjpMTElu
dDo6ZnJhbWVSZWdpc3RlckNvdW50Rm9yKToKKyAgICAgICAgKiBsbGludC9MTEludE9mZnNldHNF
eHRyYWN0b3IuY3BwOgorICAgICAgICAqIGxsaW50L0xMSW50T3Bjb2RlLmg6CisgICAgICAgICog
bGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xP
V19QQVRIX0RFQ0wpOgorICAgICAgICAoSlNDOjpMTEludDo6ZW50cnlPU1IpOgorICAgICAgICAo
SlNDOjpMTEludDo6c2V0VXBDYWxsKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OmxsaW50X3Rocm93
X3N0YWNrX292ZXJmbG93X2Vycm9yKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OmxsaW50X3N0YWNr
X2NoZWNrX2F0X3ZtX2VudHJ5KToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5oOgor
ICAgICAgICAqIGxsaW50L0xMSW50VGh1bmtzLmNwcDoKKyAgICAgICAgKEpTQzo6Y2FsbFRvSmF2
YVNjcmlwdCk6CisgICAgICAgIChKU0M6OmNhbGxUb05hdGl2ZUZ1bmN0aW9uKToKKyAgICAgICAg
KiBsbGludC9MTEludFRodW5rcy5oOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwOgorICAgICAg
ICAoSlNDOjpDTG9vcFJlZ2lzdGVyOjpvcGVyYXRvciBFeGVjU3RhdGUqKToKKyAgICAgICAgKEpT
Qzo6Q0xvb3BSZWdpc3Rlcjo6b3BlcmF0b3IgSW5zdHJ1Y3Rpb24qKToKKyAgICAgICAgKEpTQzo6
Q0xvb3BSZWdpc3Rlcjo6b3BlcmF0b3IgVk0qKToKKyAgICAgICAgKEpTQzo6Q0xvb3BSZWdpc3Rl
cjo6b3BlcmF0b3IgUHJvdG9DYWxsRnJhbWUqKToKKyAgICAgICAgKEpTQzo6Q0xvb3BSZWdpc3Rl
cjo6b3BlcmF0b3IgUmVnaXN0ZXIqKToKKyAgICAgICAgKEpTQzo6Q0xvb3A6OmV4ZWN1dGUpOgor
ICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAgICog
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBsbHZtL2xpYnJhcnkv
TExWTUV4cG9ydHMuY3BwOgorICAgICAgICAoaW5pdGlhbGl6ZUFuZEdldEpTQ0xMVk1BUEkpOgor
ICAgICAgICAqIG9mZmxpbmVhc20vYXJtLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYXJtNjQu
cmI6CisgICAgICAgICogb2ZmbGluZWFzbS9jbG9vcC5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNt
L2luc3RydWN0aW9ucy5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL3g4Ni5yYjoKKyAgICAgICAg
KiBwYXJzZXIvUGFyc2VyRXJyb3IuaDoKKyAgICAgICAgKEpTQzo6UGFyc2VyRXJyb3I6OnRvRXJy
b3JPYmplY3QpOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24uY3BwOgor
ICAgICAgICAoSlNDOjpQcm9maWxlcjo6Q29tcGlsYXRpb246OmFkZERlc2NyaXB0aW9uKToKKyAg
ICAgICAgKiBwcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmg6CisgICAgICAgICogcHJvZmls
ZXIvUHJvZmlsZXJDb21waWxhdGlvbktpbmQuY3BwOgorICAgICAgICAoV1RGOjpwcmludEludGVy
bmFsKToKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uS2luZC5oOgorICAg
ICAgICAqIHJ1bnRpbWUvQXJpdHlDaGVja01vZGUuaDogQWRkZWQuCisgICAgICAgICogcnVudGlt
ZS9Db21tb25TbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpzZXR1cEFyaXR5Q2hlY2tEYXRh
KToKKyAgICAgICAgKEpTQzo6U0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1bnRpbWUvQ29t
bW9uU2xvd1BhdGhzLmg6CisgICAgICAgIChKU0M6OkNvbW1vblNsb3dQYXRoczo6YXJpdHlDaGVj
a0Zvcik6CisgICAgICAgICogcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKEpTQzo6RXJyb3JIYW5kbGluZ1Njb3BlOjpFcnJvckhhbmRsaW5nU2NvcGUpOgor
ICAgICAgICAoSlNDOjpFcnJvckhhbmRsaW5nU2NvcGU6On5FcnJvckhhbmRsaW5nU2NvcGUpOgor
ICAgICAgICAqIHJ1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmg6IEFkZGVkLgorICAgICAgICAq
IHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHA6CisgICAgICAgIChKU0M6OnRocm93U3RhY2tP
dmVyZmxvd0Vycm9yKToKKyAgICAgICAgKEpTQzo6dGhyb3dUZXJtaW5hdGVkRXhlY3V0aW9uRXhj
ZXB0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuY3BwOgorICAgICAgICAoSlND
OjpTY3JpcHRFeGVjdXRhYmxlOjppbnN0YWxsQ29kZSk6CisgICAgICAgIChKU0M6OkV4ZWN1dGFi
bGVCYXNlOjpkdW1wKToKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAg
KEpTQzo6RXhlY3V0YWJsZUJhc2U6OmVudHJ5cG9pbnRGb3IpOgorICAgICAgICAoSlNDOjpFeGVj
dXRhYmxlQmFzZTo6b2Zmc2V0T2ZKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3IpOgorICAgICAgICAo
SlNDOjpOYXRpdmVFeGVjdXRhYmxlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpOYXRpdmVFeGVj
dXRhYmxlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmg6
CisgICAgICAgICogcnVudGltZS9KU0xvY2suY3BwOgorICAgICAgICAoSlNDOjpKU0xvY2s6OkRy
b3BBbGxMb2Nrczo6RHJvcEFsbExvY2tzKToKKyAgICAgICAgKEpTQzo6SlNMb2NrOjpEcm9wQWxs
TG9ja3M6On5Ecm9wQWxsTG9ja3MpOgorICAgICAgICAqIHJ1bnRpbWUvSlNMb2NrLmg6CisgICAg
ICAgICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6V2Fsa2VyOjp3YWxr
KToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpyZWNvbXB1
dGVEZXBlbmRlbnRPcHRpb25zKToKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6aW5pdGlhbGl6ZSk6
CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OnNldE9wdGlvbik6CisgICAgICAgICogcnVudGltZS9P
cHRpb25zLmg6CisgICAgICAgICogcnVudGltZS9SZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaDog
QWRkZWQuCisgICAgICAgICogcnVudGltZS9TdGFja0FsaWdubWVudC5oOgorICAgICAgICAoSlND
Ojpyb3VuZEFyZ3VtZW50Q291bnRUb0FsaWduRnJhbWUpOgorICAgICAgICAoSlNDOjpyb3VuZExv
Y2FsUmVnaXN0ZXJDb3VudEZvckZyYW1lUG9pbnRlck9mZnNldCk6CisgICAgICAgIChKU0M6Omxv
Z1N0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1JlY3Vy
c2lvbkNoZWNrZXIuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdSZWN1cnNpb25DaGVja2VyOjp0
aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcik6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3Bw
OgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmR1bXApOgorICAgICAgICAqIHJ1bnRpbWUvVk0u
Y3BwOgorICAgICAgICAoSlNDOjpWTTo6Vk0pOgorICAgICAgICAoSlNDOjpjbGVhbldvcmtsaXN0
KToKKyAgICAgICAgKEpTQzo6Vk06On5WTSk6CisgICAgICAgIChKU0M6OlZNOjpnZXRIb3N0RnVu
Y3Rpb24pOgorICAgICAgICAoSlNDOjpwcmVwYXJlVG9EaXNjYXJkQ29kZUZvcik6CisgICAgICAg
IChKU0M6OlZNOjpwcmVwYXJlVG9EaXNjYXJkQ29kZSk6CisgICAgICAgIChKU0M6OlZNOjp0aHJv
d0V4Y2VwdGlvbik6CisgICAgICAgIChKU0M6OlZNOjp1cGRhdGVTdGFja0xpbWl0V2l0aFJlc2Vy
dmVkWm9uZVNpemUpOgorICAgICAgICAoSlNDOjpsb2dTYW5pdGl6ZVN0YWNrKToKKyAgICAgICAg
KiBydW50aW1lL1ZNLmg6CisgICAgICAgIChKU0M6OlZNOjpyZXNlcnZlZFpvbmVTaXplKToKKyAg
ICAgICAgKEpTQzo6Vk06Omxhc3RTdGFja1RvcCk6CisgICAgICAgIChKU0M6OlZNOjpzZXRMYXN0
U3RhY2tUb3ApOgorICAgICAgICAoSlNDOjpWTTo6c2NyYXRjaEJ1ZmZlckZvclNpemUpOgorICAg
ICAgICAoSlNDOjpWTTo6c2V0U3RhY2tMaW1pdCk6CisgICAgICAgIChKU0M6OnNhbml0aXplU3Rh
Y2tGb3JWTSk6CisgICAgICAgICogcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwOgorICAgICAgICAo
SlNDOjpWTUVudHJ5U2NvcGU6OlZNRW50cnlTY29wZSk6CisgICAgICAgIChKU0M6OlZNRW50cnlT
Y29wZTo6flZNRW50cnlTY29wZSk6CisgICAgICAgICogcnVudGltZS9WTUVudHJ5U2NvcGUuaDoK
KyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvYWRkLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5Lmpz
OiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2FkZC1pbnQ1
Mi1jb25zdGFudC1vdmVyZmxvdy1yZWNvdmVyeS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgor
ICAgICAgICAqIHRlc3RzL3N0cmVzcy9hZGQtaW50NTItbGFyZ2UtY29uc3RhbnQtb3ZlcmZsb3ct
cmVjb3ZlcnkuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJl
c3MvYWRkLW92ZXJmbG93LXJlY292ZXJ5LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAg
ICAgICogdGVzdHMvc3RyZXNzL2FkZC1zbWFsbC1jb25zdGFudC1vdmVyZmxvdy1yZWNvdmVyeS5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9hcnJheS1w
dXNoLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Vt
cHR5LWZ1bmN0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVzdHMv
c3RyZXNzL2V4aXQtYWZ0ZXItaW50MzItdG8tZG91YmxlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZv
byk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItaW50NTItdG8tZG91YmxlLmpz
OiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2V4aXQtYWZ0
ZXItaW50NTItdG8tdmFsdWUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKG1h
a2VXZWlyZE9iamVjdCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItbGx2bS1m
b2xkcy1sYXJnZS1pbnQtY29uc3RhbnQuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAg
ICAgKiB0ZXN0cy9zdHJlc3MvZXhpdC1mcm9tLWZ0bC13aXRoLWFyaXR5LWNoZWNrLWZhaWwuanM6
IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKGJhcik6CisgICAgICAgICogdGVzdHMv
c3RyZXNzL2Z0bC1hcml0aGNvcy5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAq
IHRlc3RzL3N0cmVzcy9mdGwtYXJpdGhzaW4uanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAg
ICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLWFyaXRoc3FydC5qczogQWRkZWQuCisgICAgICAgIChm
b28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9mdGwtcHV0YnlpZC5qczogQWRkZWQuCisgICAg
ICAgICogdGVzdHMvc3RyZXNzL2Z0bC1wdXRieWlkZGlyZWN0LmpzOiBBZGRlZC4KKyAgICAgICAg
KGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLWdldHRl
ci10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAg
ICAgIChtYWtlV2l0aEdldHRlci5yZXR1cm4pOgorICAgICAgICAobWFrZVdpdGhHZXR0ZXIpOgor
ICAgICAgICAqIHRlc3RzL3N0cmVzcy9nZXQtYnktaWQtdGhyb3ctZnJvbS11bmV4cGVjdGVkLWdl
dHRlci10aHJvdWdoLW9wdGltaXplZC1jb2RlLXRoYXQtZG9lcy1ub3QtZXhpdC5qczogQWRkZWQu
CisgICAgICAgIChmb28pOgorICAgICAgICAobWFrZVdpdGhHZXR0ZXIucmV0dXJuKToKKyAgICAg
ICAgKG1ha2VXaXRoR2V0dGVyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRo
cm93LWZyb20tdW5leHBlY3RlZC1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qczogQWRk
ZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAobWFrZVdpdGhHZXR0ZXIucmV0dXJuKToKKyAg
ICAgICAgKG1ha2VXaXRoR2V0dGVyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvaWMtdGhyb3ct
dGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAg
ICAqIHRlc3RzL3N0cmVzcy9pbmxpbmUtY2FsbC12YXJhcmdzLWFuZC1jYWxsLmpzOiBBZGRlZC4K
KyAgICAgICAgKGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAgICAoYmF6KToKKyAgICAgICAg
KiB0ZXN0cy9zdHJlc3MvaW5saW5lLWNhbGwtdmFyYXJncy5qczogQWRkZWQuCisgICAgICAgIChm
b28pOgorICAgICAgICAoYmFyKToKKyAgICAgICAgKGJheik6CisgICAgICAgICogdGVzdHMvc3Ry
ZXNzL2lubGluZS1jbG9zdXJlLWNhbGwuanM6IEFkZGVkLgorICAgICAgICAoYmFyKToKKyAgICAg
ICAgKiB0ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZhbC1pbi1hbmQtb3V0LW9mLWJvdW5kcy5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVz
dHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtaW4tYm91bmRzLXRoZW4tZXhpdC1vdXQtb2YtYm91
bmRzLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAg
KiB0ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZhbC1vdXQtb2YtYm91bmRzLWJvdW5kcy10aGVu
LWRvLWluLWJvdW5kcy5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAodGVzdCk6
CisgICAgICAgICogdGVzdHMvc3RyZXNzL2ludmFsaWRhdGlvbi1wb2ludC5qczogQWRkZWQuCisg
ICAgICAgIChmb28pOgorICAgICAgICAoVGhpbmd5KToKKyAgICAgICAgKFRoaW5neS5wcm90b3R5
cGUuZik6CisgICAgICAgIChwb3NzaWJseURvQmFkVGhpbmdzLlRoaW5neS5wcm90b3R5cGUuZik6
CisgICAgICAgIChwb3NzaWJseURvQmFkVGhpbmdzKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mv
bWFrZS1yb3BlLTIuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9z
dHJlc3MvbWFrZS1yb3BlLTMuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0
ZXN0cy9zdHJlc3MvbmV3LWFycmF5LXN0b3JhZ2UtYXJyYXktd2l0aC1zaXplLmpzOiBBZGRlZC4K
KyAgICAgICAgKGZvbyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mv
bmV3LWFycmF5LXdpdGgtc2l6ZS13aXRoLWJhZC10aW1lLmpzOiBBZGRlZC4KKyAgICAgICAgKGZv
byk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL25ldy1jb250aWd1b3VzLWFycmF5LXdpdGgtc2l6
ZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAodGVzdCk6CisgICAgICAgICog
dGVzdHMvc3RyZXNzL25ldy1kb3VibGUtYXJyYXktd2l0aC1zaXplLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGZvbyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvbmV3LWlu
dDMyLWFycmF5LXdpdGgtc2l6ZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAo
dGVzdCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL25ldy11bmRlY2lkZWQtYXJyYXktd2l0aC1z
aXplLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAg
KiB0ZXN0cy9zdHJlc3MvcHV0LWJ5LWlkLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanM6
IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvcmVjdXJzZS1p
bmZpbml0ZWx5LW9uLWdldHRlci5qczogQWRkZWQuCisgICAgICAgICgudmFyKToKKyAgICAgICAg
KiB0ZXN0cy9zdHJlc3MvcmVwZWF0ZWQtYXJpdHktY2hlY2stZmFpbC5qczogQWRkZWQuCisgICAg
ICAgIChiYXIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9ydW50aW1lLXRocm93LXRocm91Z2gt
b3B0aW1pemVkLWNvZGUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKGJhcik6
CisgICAgICAgICogdGVzdHMvc3RyZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1jYWxsLWlubGluaW5n
LWV4YW1wbGUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKGZ1enopOgorICAg
ICAgICAoYmFyKToKKyAgICAgICAgKGJhejEpOgorICAgICAgICAoYmF6Mik6CisgICAgICAgICog
dGVzdHMvc3RyZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1nZXQtYnktaWQtaW5saW5pbmctZXhhbXBs
ZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoZnV6eik6CisgICAgICAgIChi
YXIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtcHV0LWJ5LWlk
LWlubGluaW5nLWV4YW1wbGUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKGZ1
enopOgorICAgICAgICAoYmFyKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvdGhyb3ctdGhyb3Vn
aC1vcHRpbWl6ZWQtY29kZS5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoYmFy
KToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLW9iamVjdC1vci1zdHJpbmcu
anM6IEFkZGVkLgorICAgICAgICAoRm9vKToKKyAgICAgICAgKEZvby5wcm90b3R5cGUudG9TdHJp
bmcpOgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9u
LW9iamVjdC5qczogQWRkZWQuCisgICAgICAgIChGb28pOgorICAgICAgICAoRm9vLnByb3RvdHlw
ZS50b1N0cmluZyk6CisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy90by1z
dHJpbmctb24tc3RyaW5nLW9iamVjdC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAg
ICAqIHRlc3RzL3N0cmVzcy90by1zdHJpbmctb24tc3RyaW5nLW9yLXN0cmluZy1vYmplY3QtdGhl
bi1vYmplY3QuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKEZvbyk6CisgICAg
ICAgIChGb28ucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvdG8t
c3RyaW5nLW9uLXN0cmluZy1vci1zdHJpbmctb2JqZWN0LmpzOiBBZGRlZC4KKyAgICAgICAgKGZv
byk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi12YWx1ZS1vci1zdHJpbmcu
anM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvdG8tc3Ry
aW5nLW9uLXZhbHVlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisKIDIwMTQtMDEtMjcgIEpv
c2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICAtW0pTQ29udGV4
dCBldmFsdXRlU2NyaXB0Ol0gY2FsbHMgSlNFdmFsdXRlU2NyaXB0IHdpdGggc3RhcnRpbmdMaW5l
TnVtYmVyIDAsIGxhdGVyIGludGVycHJldGVkIGFzIGEgb25lQmFzZWRJbnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggZWQ4NjRi
NzNjZWZmNGI0NWMwMWZmYWNlZTYyODE2ZDMwZTZjYTUxNS4uMGZjNDQ5OTY1MTFiMTc1NTQ3MDll
YTYwZTdmN2ZlYzhiYWYyNmRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0wMS0yOCAgTWFy
ayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIE1lcmdlIHRo
ZSBqc0NTdGFjayBicmFuY2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyNzc2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd3RmL0JhZ1RvSGFzaE1hcC5oOgorICAgICAgICAoV1RGOjp0b0hhc2hNYXAp
OgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAgICAgICAqIHd0Zi9TdGFja0JvdW5kcy5o
OgorICAgICAgICAoV1RGOjpTdGFja0JvdW5kczo6cmVjdXJzaW9uTGltaXQpOgorCiAyMDE0LTAx
LTI3ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
Q29yZTogRW5hYmxlIC1XaW1wbGljaXQtZmFsbHRocm91Z2ggYW5kIGFkZCBGQUxMVEhST1VHSCBh
bm5vdGF0aW9uIHdoZXJlIG5lZWRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRhZGJjYWY1ZWM5MGUzZTZjMWY1
MzQ0YjhhNzUxYTcwOTFjMGQ2ZTYuLjNjZmMyZmU2NDFiOTI5NzJiNzk1Y2VhMDk4Njc5NmU2YWZi
OTI5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNC0wMS0yOCAgTWFyayBIYWhu
ZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIE1lcmdlIHRoZSBqc0NT
dGFjayBicmFuY2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNzc2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMv
aW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuaDoKKyAgICAgICAgKiBGb3J3YXJkaW5n
SGVhZGVycy9pbnNwZWN0b3IvU2NyaXB0QnJlYWtwb2ludC5oOgorICAgICAgICAqIEZvcndhcmRp
bmdIZWFkZXJzL2luc3BlY3Rvci9TY3JpcHREZWJ1Z0xpc3RlbmVyLmg6CisgICAgICAgICogRm9y
d2FyZGluZ0hlYWRlcnMvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuaDogQWRkZWQuCisgICAg
ICAgICogRm9yd2FyZGluZ0hlYWRlcnMveWFyci9SZWd1bGFyRXhwcmVzc2lvbi5oOgorICAgICAg
ICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24pOgorCiAy
MDE0LTAxLTI4ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzEyNzc2Nz4gRGlzYWJsZSBzb21lIGRlcHJlY2F0aW9uIHdhcm5pbmdz
IHRvIGZpeCB0aGUgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
ZjQyYTM5ZGFmZDkzY2U0MGIyZGQ3YWU2OGVmZjA3NTVmYzE0MzhkOC4uYWVkZDgyZWExYmMyMTIx
Y2JjNDZkMGQzYjg2YTdiOTA1N2FhZWZkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtMjU0LDYgKzI1NCw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAg
aW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcAogICAgIGludGVycHJldGVyL1ZNSW5zcGVjdG9y
LmNwcAogCisgICAgaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcAogICAgIGppdC9B
c3NlbWJseUhlbHBlcnMuY3BwCiAgICAgaml0L0Nsb3N1cmVDYWxsU3R1YlJvdXRpbmUuY3BwCiAg
ICAgaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCkBAIC0yNzgsNiArMjc5LDcgQEAgc2V0KEph
dmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBqaXQvSklUU3R1YnMuY3BwCiAgICAgaml0L0pJVFRo
dW5rcy5jcHAKICAgICBqaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3Bw
CisgICAgaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAKICAgICBq
aXQvUmVnaXN0ZXJTZXQuY3BwCiAgICAgaml0L1JlcGF0Y2guY3BwCiAgICAgaml0L1RlbXBSZWdp
c3RlclNldC5jcHAKQEAgLTM0MCw2ICszNDIsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNF
UwogICAgIHJ1bnRpbWUvRHVtcENvbnRleHQuY3BwCiAgICAgcnVudGltZS9FcnJvci5jcHAKICAg
ICBydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCisgICAgcnVudGltZS9FcnJvckhhbmRsaW5n
U2NvcGUuY3BwCiAgICAgcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAogICAgIHJ1bnRpbWUvRXJy
b3JQcm90b3R5cGUuY3BwCiAgICAgcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBkMDYwYjZhOGVhMzdjZWUy
NzkxNDdmMzAzOTY1NzcyZDBiZDJmNjQ3Li43ZDVkZjNjNjE4ODc5MTg0MWY5ZjZiZDEwYTZlODhl
NzliNzY3YTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtOTEsNiArOTEsNyBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmNwcCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0Lmgg
XAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NSVBTQXNzZW1i
bGVyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvUmVwYXRjaEJ1ZmZlci5o
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1NINEFzc2VtYmxlci5oIFwKQEAg
LTY5MSw2ICs2OTIsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvVk1JbnNwZWN0b3IuY3BwIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvVk1JbnNwZWN0b3IuaCBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlUHJlZml4LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9B
c3NlbWJseUhlbHBlcnMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBl
cnMuaCBcCkBAIC03NDQsNiArNzQ3LDggQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxs
YmFjay5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdyaXRlQmFycmllci5oIFwK
IAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklULmggXAorCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmgg
XAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVy
R2VuZXJhdG9yLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5j
cHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuaCBcCiAJU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcCBcCkBAIC05MDQsNiArOTA5LDggQEAgamF2
YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JDb25zdHJ1Y3Rvci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
ci5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmggXAorCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5jcHAgXAorCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5oIFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLm9yZGVyCmluZGV4IDVkMzQyMThkNjE5NWEwZjExODQ5NmUzOTA2ZGZjYTY5
MjNmNmY0OGQuLjJmMjI1YjUyOGRjOWQwOWM0YTcyOWE1YWRiM2IzYzZlODJmN2NmNTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIKQEAgLTQ5ODEsNyArNDk4
MSw2IEBAIF9sbGludF9zbG93X3BhdGhfaGFuZGxlX3dhdGNoZG9nX3RpbWVyCiBfbGxpbnRfc2xv
d19wYXRoX2RlYnVnCiBfbGxpbnRfc2xvd19wYXRoX3Byb2ZpbGVfd2lsbF9jYWxsCiBfbGxpbnRf
c2xvd19wYXRoX3Byb2ZpbGVfZGlkX2NhbGwKLV9sbGludF90aHJvd19mcm9tX25hdGl2ZV9jYWxs
CiBfbGxpbnRfYmVnaW4KIF9sbGludF9wcm9ncmFtX3Byb2xvZ3VlCiBfbGxpbnRfZXZhbF9wcm9s
b2d1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKaW5kZXggY2Y0YzJlYzI0
M2I1ODQ4ZGQxYmEzMDg2OWZlN2RmNGU3OGEyOTczNS4uM2NkNmVhOTBhMTFhN2ViZmUzYTRlZWRh
ZTNkMzQ4MDdjMjdjZGNiMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
CkBAIC01ODksNiArNTg5LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVc
RHVtcENvbnRleHQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxF
cnJvci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9yQ29u
c3RydWN0b3IuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJv
ckhhbmRsaW5nU2NvcGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGlt
ZVxFcnJvckluc3RhbmNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRp
bWVcRXJyb3JQcm90b3R5cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVu
dGltZVxFeGNlcHRpb25IZWxwZXJzLmNwcCIgLz4KQEAgLTc5MSw2ICs3OTIsNyBAQAogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVyXE1hY3JvQXNzZW1ibGVyWDg2LmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJsZXJcTWFjcm9Bc3NlbWJsZXJYODZDb21t
b24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFzc2VtYmxlclxNYWNyb0Fzc2Vt
Ymxlclg4Nl82NC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVyXE1h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmggLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGFzc2VtYmxlclxSZXBhdGNoQnVmZmVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxhc3NlbWJsZXJcWDg2QXNzZW1ibGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxiaW5kaW5nc1xTY3JpcHRGdW5jdGlvbkNhbGwuaCIgLz4KQEAgLTEyMDQsNiArMTIwNiw3
IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXER1bXBDb250ZXh0LmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9yLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9yQ29uc3RydWN0b3IuaCIgLz4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JIYW5kbGluZ1Njb3BlLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9ySW5zdGFuY2UuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JQcm90b3R5cGUuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXhjZXB0aW9uSGVscGVycy5oIiAvPgpA
QCAtMTQwNiwyMiArMTQwOSw2IEBACiAgICAgICA8RmlsZVR5cGU+RG9jdW1lbnQ8L0ZpbGVUeXBl
PgogICAgIDwvTm9uZT4KICAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPE1BU00g
SW5jbHVkZT0iLi5caml0XEpJVFN0dWJzTVNWQzY0LmFzbSI+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl
X1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1
Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1
Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19X
aW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVi
dWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQg
Q29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9NQVNNPgotICA8L0l0ZW1Hcm91
cD4KICAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFy
Z2V0cyIgLz4KICAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KICAgICA8
SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcQnVpbGRDdXN0b21pemF0aW9uc1xtYXNt
LnRhcmdldHMiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
LmZpbHRlcnMKaW5kZXggZTgxOWNlZDg4MmVhZmM4MDZkYzdjYTMyZGRhMDAwMDUyNzNiM2EwOC4u
ODdlMTJhNDcxNThiYjYyMjRkNDlmZDYyMjk3OGM0YTljNDQzNWE2NSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNTM3LDYgKzUzNyw5
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9yQ29uc3RydWN0b3Iu
Y3BwIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckhhbmRsaW5nU2NvcGUuY3Bw
Ij4KKyAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckluc3RhbmNlLmNwcCI+CiAgICAg
ICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTE0NDIsNiAr
MTQ0NSw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJsZXJcTWFjcm9Bc3Nl
bWJsZXJYODZfNjQuaCI+CiAgICAgICA8RmlsdGVyPmFzc2VtYmxlcjwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVyXE1heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiPgorICAgICAgPEZpbHRlcj5hc3NlbWJsZXI8L0ZpbHRl
cj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFzc2VtYmxl
clxSZXBhdGNoQnVmZmVyLmgiPgogICAgICAgPEZpbHRlcj5hc3NlbWJsZXI8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KQEAgLTIxMjksNiArMjEzNSw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxydW50aW1lXEVycm9yQ29uc3RydWN0b3IuaCI+CiAgICAgICA8RmlsdGVyPnJ1bnRp
bWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcRXJyb3JIYW5kbGluZ1Njb3BlLmgiPgorICAgICAgPEZpbHRlcj5ydW50aW1lPC9G
aWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50
aW1lXEVycm9ySW5zdGFuY2UuaCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KQEAgLTMyOTUsOSArMzMwNCw0IEBACiAgICAgPE5vbmUgSW5jbHVkZT0i
SmF2YVNjcmlwdENvcmVQb3N0QnVpbGQuY21kIiAvPgogICAgIDxOb25lIEluY2x1ZGU9IkphdmFT
Y3JpcHRDb3JlUHJlQnVpbGQuY21kIiAvPgogICA8L0l0ZW1Hcm91cD4KLSAgPEl0ZW1Hcm91cD4K
LSAgICA8TUFTTSBJbmNsdWRlPSIuLlxqaXRcSklUU3R1YnNNU1ZDNjQuYXNtIj4KLSAgICAgIDxG
aWx0ZXI+aml0PC9GaWx0ZXI+Ci0gICAgPC9NQVNNPgotICA8L0l0ZW1Hcm91cD4KIDwvUHJvamVj
dD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDcwNzNkNzhmM2Y1Mzk5N2RhNmNi
NWFjZDJjMzhjZjlmMDYwZDYyOC4uMjdlODc2NzQwYTk2NGIwMjg5ODRlZDY3ODE2MTgyMGE1ZGNm
NzdjNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIxMCw2ICsyMTAsNyBAQAog
CQkwRjM4QjAxOTE3Q0ZFNzU1MDBCMTQ0RDMgLyogREZHQ29tcGlsYXRpb25Nb2RlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzhCMDE1MTdDRkU3
NTUwMEIxNDREMyAvKiBERkdDb21waWxhdGlvbk1vZGUuY3BwICovOyB9OwogCQkwRjM4QjAxQTE3
Q0ZFNzU1MDBCMTQ0RDMgLyogREZHQ29tcGlsYXRpb25Nb2RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM4QjAxNjE3Q0ZFNzU1MDBCMTQ0RDMgLyog
REZHQ29tcGlsYXRpb25Nb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEYzQUM3NTIxODNFQTEwNDAwMzIwMjlGIC8qIFN0YWNrQWxpZ25tZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNBQzc1
MTE4M0VBMTA0MDAzMjAyOUYgLyogU3RhY2tBbGlnbm1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjNBQzc1NDE4OEU1RUM4MDAzMjAyOUYg
LyogRXhpdGluZ0pJVFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGM0FDNzUzMTg4RTVFQzgwMDMyMDI5RiAvKiBFeGl0aW5nSklUVHlwZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGM0IzQTFB
MTUzRTY4RjIwMDNFRDBGRiAvKiBERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNCM0ExNzE1M0U2OEVGMDAz
RUQwRkYgLyogREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwICovOyB9OwogCQkwRjNCM0ExQjE1
M0U2OEY0MDAzRUQwRkYgLyogREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGM0IzQTE4MTUzRTY4RUYwMDNFRDBG
RiAvKiBERkdDb25zdGFudEZvbGRpbmdQaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGM0IzQTI3MTU0NEM5OTUwMDNFRDBGRiAvKiBERkdD
RkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGM0IzQTI0MTU0NEM5OTEwMDNFRDBGRiAvKiBERkdDRkdTaW1wbGlm
aWNhdGlvblBoYXNlLmNwcCAqLzsgfTsKQEAgLTIzNiw2ICsyMzcsMTAgQEAKIAkJMEY0NjgwRDUx
NEJCRDI0QjAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEQxMTRCQkM1RjgwMEJGRTI3MiAv
KiBIb3N0Q2FsbFJldHVyblZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMEY0ODUzMjExODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9k
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ4
NTMxRjE4Nzc1MDU2MDA4M0I2ODcgLyogREZHQXJpdGhNb2RlLmNwcCAqLzsgfTsKIAkJMEY0ODUz
MjIxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0ODUzMjAxODc3NTA1NjAwODNCNjg3IC8qIERG
R0FyaXRoTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTBGNDg1MzI3MTg3REZERUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ4NTMy
MzE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwICovOyB9OworCQkw
RjQ4NTMyODE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1MzI0MTg3REZERUMw
MDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNDg1MzI5MTg3REZERUMwMDgzQjY4NyAvKiBG
VExSZWNvdmVyeU9wY29kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjQ4NTMyNTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNvZGUu
Y3BwICovOyB9OworCQkwRjQ4NTMyQTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNv
ZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1
MzI2MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNDkzQUZBMTZEMENBRDMwMDg0
NTA4QiAvKiBTb3VyY2VQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjQ5M0FGODE2RDBDQUQxMDA4NDUwOEIgLyogU291cmNlUHJvdmlk
ZXIuY3BwICovOyB9OwogCQkwRjRCOTREQzE3QjlGMDc1MDBERDAzQTQgLyogVHlwZWRBcnJheUlu
bGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
NEI5NERCMTdCOUYwNzUwMEREMDNBNCAvKiBUeXBlZEFycmF5SW5saW5lcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNTU0MUIxMTYxM0MxRkIw
MENFM0UyNSAvKiBTcGVjaWFsUG9pbnRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU1NDFBRjE2MTNDMUZCMDBDRTNFMjUgLyogU3BlY2lhbFBv
aW50ZXIuY3BwICovOyB9OwpAQCAtMjQ4LDYgKzI1Myw4IEBACiAJCTBGNTZBMUQ1MTUwMDFDRjQw
MDI5OTJCMSAvKiBFeGVjdXRpb25Db3VudGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTZBMUQ0MTUwMDFDRjIwMDI5OTJCMSAvKiBFeGVjdXRp
b25Db3VudGVyLmNwcCAqLzsgfTsKIAkJMEY1NzJENEYxNjg3OUZERDAwRTU3RkJEIC8qIFRodW5r
R2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjU3MkQ0RDE2ODc5RkRCMDBFNTdGQkQgLyogVGh1bmtHZW5lcmF0b3IuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjVBNTJEMDE3QURENzE3
MDA4RUNCMkQgLyogQ29weVRva2VuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjVBNTJDRjE3QURENzE3MDA4RUNCMkQgLyogQ29weVRva2VuLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY1QTYyODMx
ODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1QTYyODExODhDOThENDAwNzJDOURGIC8qIEZU
TFZhbHVlUmFuZ2UuY3BwICovOyB9OworCQkwRjVBNjI4NDE4OEM5OEQ0MDA3MkM5REYgLyogRlRM
VmFsdWVSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY1QTYyODIxODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2UuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjVFRjkxRTE2ODc4RjdB
MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGNUVGOTFCMTY4NzhGNzgwMDNFNUMyNSAvKiBKSVRUaHVua3MuY3Bw
ICovOyB9OwogCQkwRjVFRjkxRjE2ODc4RjdEMDAzRTVDMjUgLyogSklUVGh1bmtzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVFRjkxQzE2ODc4Rjc4
MDAzRTVDMjUgLyogSklUVGh1bmtzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMEY1RjA4Q0YxNDZDNzYzMzAwMDQ3MkE5IC8qIFVuY29uZGl0aW9u
YWxGaW5hbGl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGNUYwOENFMTQ2Qzc2MkYwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI2OSw2
ICsyNzYsMTggQEAKIAkJMEY2NjZFQ0QxODM2QjM3RTAwRDAxN0YxIC8qIERGR1Jlc3VycmVjdGlv
bkZvclZhbGlkYXRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY2NjZFQ0IxODM2QjM3RTAwRDAxN0YxIC8qIERGR1Jlc3VycmVjdGlvbkZv
clZhbGlkYXRpb25QaGFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTBGNjZFMTZCMTRERjNGMTYwMEI3QjJFNCAvKiBERkdBZGphY2VuY3lMaXN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjY2RTE2
ODE0REYzRjEzMDBCN0IyRTQgLyogREZHQWRqYWNlbmN5TGlzdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNjZFMTZDMTRERjNGMTYwMEI3QjJF
NCAvKiBERkdFZGdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjY2RTE2OTE0REYzRjEzMDBCN0IyRTQgLyogREZHRWRnZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNkIxQ0I1MTg1RkM5RTkwMDg0
NUQ5NyAvKiBGVExKU0NhbGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY2QjFDQjMxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5jcHAgKi87
IH07CisJCTBGNkIxQ0I2MTg1RkM5RTkwMDg0NUQ5NyAvKiBGVExKU0NhbGwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0I0MTg1RkM5RTkwMDg0
NUQ5NyAvKiBGVExKU0NhbGwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQkwRjZCMUNCOTE4NjEyNDRDMDA4NDVEOTcgLyogQXJpdHlDaGVja01vZGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0I3
MTg2MTI0NEMwMDg0NUQ5NyAvKiBBcml0eUNoZWNrTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNkIxQ0JBMTg2MTI0NEMwMDg0NUQ5NyAv
KiBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0I4MTg2MTI0NEMwMDg0NUQ5NyAvKiBSZWdpc3RlclBy
ZXNlcnZhdGlvbk1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQkwRjZCMUNCRDE4NjEyNDZBMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRp
b25XcmFwcGVyR2VuZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGNkIxQ0JCMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZh
dGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwICovOyB9OworCQkwRjZCMUNCRTE4NjEyNDZBMDA4NDVE
OTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNCQzE4NjEyNDZBMDA4NDVE
OTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQzMxODYyQzQ3ODAw
ODQ1RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQkYxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJl
Z2lzdGVyQXRPZmZzZXQuY3BwICovOyB9OworCQkwRjZCMUNDNDE4NjJDNDc4MDA4NDVEOTcgLyog
RlRMUmVnaXN0ZXJBdE9mZnNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY2QjFDQzAxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZz
ZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkw
RjZCMUNDNTE4NjJDNDc4MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNDMTE4NjJDNDc4MDA4NDVE
OTcgLyogRlRMVW53aW5kSW5mby5jcHAgKi87IH07CisJCTBGNkIxQ0M2MTg2MkM0NzgwMDg0NUQ5
NyAvKiBGVExVbndpbmRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjZCMUNDMjE4NjJDNDc4MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNkIxQ0M5
MTg2NDFERjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNDNzE4NjQxREY4
MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwICovOyB9OworCQkwRjZC
MUNDQTE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0M4MTg2NDFE
RjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNzAyNUE5MTcxNEIwRkEwMDM4
MkMwRSAvKiBERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3MDI1QTcxNzE0QjBGODAwMzgyQzBFIC8qIERG
R09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAgKi87IH07CiAJCTBGNzAyNUFBMTcxNEIwRkMwMDM4
MkMwRSAvKiBERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzAyNUE4MTcxNEIwRjgwMDM4MkMwRSAvKiBERkdP
U1JFeGl0Q29tcGlsZXJDb21tb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjcxNENBNDE2RUE5MkYwMDBGM0VCRUIgLyogREZHQmFja3dhcmRz
UHJvcGFnYXRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjcxNENBMTE2RUE5MkVEMDBGM0VCRUIgLyogREZHQmFja3dhcmRzUHJvcGFn
YXRpb25QaGFzZS5jcHAgKi87IH07CkBAIC0xMzQ2LDYgKzEzNjUsOCBAQAogCQlGRTU5MzJBODE4
M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTU5MzJBNjE4M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRy
eVNjb3BlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRkVBMDg2MjAxODJCN0EwNDAwRjZEODUxIC8qIEJyZWFrcG9pbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFQTA4NjFFMTgyQjdBMDQwMEY2RDg1
MSAvKiBCcmVha3BvaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRkVBMDg2MjExODJCN0EwNDAwRjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVBMDg2
MUYxODJCN0EwNDAwRjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUZFQjU4QzE0MTg3QjhCMTYwMDk4
RUYwQiAvKiBFcnJvckhhbmRsaW5nU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkVCNThDMTIxODdCOEIxNjAwOThFRjBCIC8qIEVycm9ySGFu
ZGxpbmdTY29wZS5jcHAgKi87IH07CisJCUZFQjU4QzE1MTg3QjhCMTYwMDk4RUYwQiAvKiBFcnJv
ckhhbmRsaW5nU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZFQjU4QzEzMTg3QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRsaW5nU2NvcGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUQyODdC
MjE1RUM5QTU3MDBEQTgxNjEgLyogTExJbnRPcGNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRDI4N0IxMTVFQzlBNTcwMERBODE2MSAvKiBMTElu
dE9wY29kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUZFRDk0RjJFMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQ5NEYyQjE3MUUzRTIzMDBCRTc3
QTQgLyogV2F0Y2hkb2cuY3BwICovOyB9OwogCQlGRUQ5NEYyRjE3MUUzRTIzMDBCRTc3QTQgLyog
V2F0Y2hkb2cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZFRDk0RjJDMTcxRTNFMjMwMEJFNzdBNCAvKiBXYXRjaGRvZy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNjA1LDYgKzE2MjYsNyBAQAogCQkw
RjM4QjAxNTE3Q0ZFNzU1MDBCMTQ0RDMgLyogREZHQ29tcGlsYXRpb25Nb2RlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0NvbXBpbGF0aW9uTW9kZS5jcHA7IHBh
dGggPSBkZmcvREZHQ29tcGlsYXRpb25Nb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEYzOEIwMTYxN0NGRTc1NTAwQjE0NEQzIC8qIERGR0NvbXBpbGF0aW9uTW9kZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdDb21waWxhdGlvbk1vZGUuaDsgcGF0
aCA9IGRmZy9ERkdDb21waWxhdGlvbk1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEYzQUM3NTExODNFQTEwNDAwMzIwMjlGIC8qIFN0YWNrQWxpZ25tZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0YWNrQWxpZ25tZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGM0FDNzUzMTg4RTVFQzgwMDMyMDI5RiAvKiBFeGl0aW5nSklUVHlw
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGl0aW5nSklUVHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjNCM0ExNzE1M0U2OEVGMDAzRUQwRkYgLyog
REZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOyBwYXRoID0gZGZnL0RGR0NvbnN0
YW50Rm9sZGluZ1BoYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYzQjNB
MTgxNTNFNjhFRjAwM0VEMEZGIC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmg7IHBhdGgg
PSBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEYzQjNBMjQxNTQ0Qzk5MTAwM0VEMEZGIC8qIERGR0NGR1NpbXBsaWZpY2F0aW9uUGhh
c2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHQ0ZHU2ltcGxp
ZmljYXRpb25QaGFzZS5jcHA7IHBhdGggPSBkZmcvREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjMyLDYgKzE2NTQsMTAgQEAKIAkJ
MEY0NjgwRDExNEJCQzVGODAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSG9zdENhbGxSZXR1cm5WYWx1ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ4NTMxRjE4Nzc1MDU2MDA4M0I2ODcgLyogREZHQXJp
dGhNb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0FyaXRo
TW9kZS5jcHA7IHBhdGggPSBkZmcvREZHQXJpdGhNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY0ODUzMjAxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdBcml0aE1vZGUuaDsgcGF0aCA9IGRm
Zy9ERkdBcml0aE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0ODUzMjMx
ODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcDsgcGF0aCA9
IGZ0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTBGNDg1MzI0MTg3REZERUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExBdmFpbGFibGVSZWNvdmVyeS5oOyBw
YXRoID0gZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTBGNDg1MzI1MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGVExSZWNvdmVyeU9wY29kZS5j
cHA7IHBhdGggPSBmdGwvRlRMUmVjb3ZlcnlPcGNvZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwRjQ4NTMyNjE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNvZGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRlRMUmVjb3ZlcnlPcGNvZGUuaDsg
cGF0aCA9IGZ0bC9GVExSZWNvdmVyeU9wY29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjQ5M0FGODE2RDBDQUQxMDA4NDUwOEIgLyogU291cmNlUHJvdmlkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU291cmNlUHJvdmlkZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjRCOTREQjE3QjlGMDc1MDBERDAzQTQgLyogVHlw
ZWRBcnJheUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVHlwZWRB
cnJheUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NTQxQUYxNjEz
QzFGQjAwQ0UzRTI1IC8qIFNwZWNpYWxQb2ludGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNwZWNpYWxQb2ludGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE2NDQsNiArMTY3MCw4IEBACiAJCTBGNTZBMUQ0MTUwMDFDRjIwMDI5OTJCMSAv
KiBFeGVjdXRpb25Db3VudGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEV4ZWN1dGlvbkNvdW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjU3MkQ0RDE2ODc5RkRCMDBFNTdGQkQgLyogVGh1bmtHZW5lcmF0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGh1bmtHZW5lcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY1QTUyQ0YxN0FERDcxNzAwOEVDQjJEIC8qIENvcHlUb2tlbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3B5VG9rZW4uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMEY1QTYyODExODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRlRMVmFsdWVSYW5nZS5j
cHA7IHBhdGggPSBmdGwvRlRMVmFsdWVSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTBGNUE2MjgyMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZUTFZhbHVlUmFuZ2UuaDsgcGF0aCA9IGZ0bC9G
VExWYWx1ZVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUVGOTFCMTY4
NzhGNzgwMDNFNUMyNSAvKiBKSVRUaHVua3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSklUVGh1bmtzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY1RUY5MUMxNjg3OEY3ODAwM0U1QzI1IC8qIEpJVFRodW5rcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKSVRUaHVua3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY1RjA4Q0UxNDZDNzYyRjAwMDQ3MkE5IC8qIFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVW5jb25kaXRpb25hbEZpbmFsaXplci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY2NSw2ICsxNjkzLDE4IEBACiAJCTBG
NjY2RUNCMTgzNkIzN0UwMEQwMTdGMSAvKiBERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhh
c2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHUmVzdXJyZWN0aW9uRm9y
VmFsaWRhdGlvblBoYXNlLmg7IHBhdGggPSBkZmcvREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlv
blBoYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNjZFMTY4MTRERjNGMTMw
MEI3QjJFNCAvKiBERkdBZGphY2VuY3lMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IERGR0FkamFjZW5jeUxpc3QuaDsgcGF0aCA9IGRmZy9ERkdBZGphY2VuY3lMaXN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNjZFMTY5MTRERjNGMTMwMEI3QjJFNCAv
KiBERkdFZGdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0VkZ2UuaDsg
cGF0aCA9IGRmZy9ERkdFZGdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIx
Q0IzMTg1RkM5RTkwMDg0NUQ5NyAvKiBGVExKU0NhbGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gRlRMSlNDYWxsLmNwcDsgcGF0aCA9IGZ0bC9GVExKU0NhbGwuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjZCMUNCNDE4NUZDOUU5MDA4NDVEOTcg
LyogRlRMSlNDYWxsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZUTEpTQ2Fs
bC5oOyBwYXRoID0gZnRsL0ZUTEpTQ2FsbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkwRjZCMUNCNzE4NjEyNDRDMDA4NDVEOTcgLyogQXJpdHlDaGVja01vZGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJpdHlDaGVja01vZGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQjgxODYxMjQ0QzAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWdpc3RlclBy
ZXNlcnZhdGlvbk1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQkIx
ODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWdpc3RlclByZXNlcnZh
dGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
RjZCMUNCQzE4NjEyNDZBMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2Vu
ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uV3JhcHBlckdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
RjZCMUNCRjE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9mZnNldC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGVExSZWdpc3RlckF0T2Zmc2V0LmNwcDsg
cGF0aCA9IGZ0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEY2QjFDQzAxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZzZXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRlRMUmVnaXN0ZXJBdE9mZnNldC5o
OyBwYXRoID0gZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEY2QjFDQzExODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRlRMVW53aW5kSW5mby5jcHA7IHBh
dGggPSBmdGwvRlRMVW53aW5kSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGNkIxQ0MyMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExVbndpbmRJbmZvLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZUTFVud2luZEluZm8uaDsgcGF0aCA9IGZ0bC9GVExVbndp
bmRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0M3MTg2NDFERjgw
MDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0M4MTg2NDFERjgwMDg0NUQ5NyAvKiBB
cml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjcwMjVBNzE3MTRCMEY4MDAzODJDMEUgLyogREZHT1NSRXhpdENvbXBpbGVyQ29t
bW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR09TUkV4aXRD
b21waWxlckNvbW1vbi5jcHA7IHBhdGggPSBkZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3MDI1QTgxNzE0QjBGODAwMzgyQzBF
IC8qIERGR09TUkV4aXRDb21waWxlckNvbW1vbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uaDsgcGF0aCA9IGRmZy9ERkdPU1JFeGl0
Q29tcGlsZXJDb21tb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3MTRDQTEx
NkVBOTJFRDAwRjNFQkVCIC8qIERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHQmFja3dhcmRzUHJvcGFnYXRpb25Q
aGFzZS5jcHA7IHBhdGggPSBkZmcvREZHQmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTE2LDYgKzIxNTYsNyBAQAogCQk2NTYwQTRD
RjA0QjNCM0U3MDA4QUU5NTIgLyogQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7
IG5hbWUgPSBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9Db3JlRm91bmRhdGlvbi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29s
dXRlPiI7IH07CiAJCTY1NjIxRTZCMDg5RTg1OTcwMDc2MEYzNSAvKiBQcm9wZXJ0eVNsb3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRX
aWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UHJvcGVydHlTbG90LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9
OwogCQk2NTYyMUU2QzA4OUU4NTk3MDA3NjBGMzUgLyogUHJvcGVydHlTbG90LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb3BlcnR5U2xvdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CisJCTY1ODYwMTc3MTg1
QThGNUUwMDAzMEVFRSAvKiBNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTk4N0YyQzE2N0ZFODRCMDAzQzJGOEQg
LyogREZHT1NSRXhpdENvbXBpbGF0aW9uSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdPU1JFeGl0Q29tcGlsYXRpb25JbmZvLmg7IHBhdGggPSBkZmcvREZHT1NSRXhp
dENvbXBpbGF0aW9uSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTk4N0Yy
RjE2ODI4QTdFMDAzQzJGOEQgLyogVW51c2VkUG9pbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBVbnVzZWRQb2ludGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTY1QzAyODRGMTcxNzk1RTIwMDM1MUUzNSAvKiBBUk12N0Rpc2Fzc2VtYmxlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBUk12N0Rpc2Fzc2VtYmxlci5jcHA7
IHBhdGggPSBkaXNhc3NlbWJsZXIvQVJNdjdEaXNhc3NlbWJsZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjc4Myw2ICsyODI0LDggQEAKIAkJRkU1OTMyQTYxODNDNUEyNjAw
QTFFQ0NDIC8qIFZNRW50cnlTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBWTUVudHJ5U2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVBMDg2MUUx
ODJCN0EwNDAwRjZEODUxIC8qIEJyZWFrcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQnJlYWtwb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUEw
ODYxRjE4MkI3QTA0MDBGNkQ4NTEgLyogRGVidWdnZXJQcmltaXRpdmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlYnVnZ2VyUHJpbWl0aXZlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGRUI1OEMxMjE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGlu
Z1Njb3BlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVycm9ySGFu
ZGxpbmdTY29wZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFQjU4QzEzMTg3
QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRsaW5nU2NvcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRXJyb3JIYW5kbGluZ1Njb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUZFRDI4N0IxMTVFQzlBNTcwMERBODE2MSAvKiBMTEludE9wY29kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMTEludE9wY29kZS5oOyBwYXRoID0gbGxpbnQv
TExJbnRPcGNvZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVEOTRGMkIxNzFF
M0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdhdGNoZG9nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVE
OTRGMkMxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdhdGNoZG9nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0z
MDAxLDYgKzMwNDQsOCBAQAogCQkJCTBGRUEwQTE4MTcwOEIwMDcwMEJCNzIyQyAvKiBGVExBYnN0
cmFjdEhlYXAuaCAqLywKIAkJCQkwRkVBMEExOTE3MDhCMDA3MDBCQjcyMkMgLyogRlRMQWJzdHJh
Y3RIZWFwUmVwb3NpdG9yeS5jcHAgKi8sCiAJCQkJMEZFQTBBMUExNzA4QjAwNzAwQkI3MjJDIC8q
IEZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCAqLywKKwkJCQkwRjQ4NTMyMzE4N0RGREVDMDA4
M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwICovLAorCQkJCTBGNDg1MzI0MTg3REZE
RUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5oICovLAogCQkJCTBGRUEwOUZFMTcw
NTEzREIwMEJCNzIyQyAvKiBGVExDYXBhYmlsaXRpZXMuY3BwICovLAogCQkJCTBGRUEwOUZGMTcw
NTEzREIwMEJCNzIyQyAvKiBGVExDYXBhYmlsaXRpZXMuaCAqLywKIAkJCQkwRkVBMEEyNTE3MDk2
MjNCMDBCQjcyMkMgLyogRlRMQ29tbW9uVmFsdWVzLmNwcCAqLywKQEAgLTMwMzEsNiArMzA3Niw4
IEBACiAJCQkJMEZFQTBBMDMxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTEpJVENvZGUuaCAqLywKIAkJ
CQlBNzhBOTc3RDE3OTczOEQ1MDA5REY3NDQgLyogRlRMSklURmluYWxpemVyLmNwcCAqLywKIAkJ
CQlBNzhBOTc3RTE3OTczOEQ1MDA5REY3NDQgLyogRlRMSklURmluYWxpemVyLmggKi8sCisJCQkJ
MEY2QjFDQjMxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5jcHAgKi8sCisJCQkJMEY2QjFD
QjQxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5oICovLAogCQkJCTBGOEYyQjkzMTcyRTA0
OUUwMDdEQkRBNSAvKiBGVExMaW5rLmNwcCAqLywKIAkJCQkwRjhGMkI5NDE3MkUwNDlFMDA3REJE
QTUgLyogRlRMTGluay5oICovLAogCQkJCTBGQ0VGQUREMTgwNzM4QzAwMDQ3MkNFNCAvKiBGVExM
b2NhdGlvbi5jcHAgKi8sCkBAIC0zMDQ3LDYgKzMwOTQsMTAgQEAKIAkJCQkwRjIzNUJDQTE3MTc4
RTFDMDA2OTBDN0YgLyogRlRMT1NSRXhpdENvbXBpbGVyLmggKi8sCiAJCQkJMEZFQTBBMjkxNzA5
NjI5NjAwQkI3MjJDIC8qIEZUTE91dHB1dC5jcHAgKi8sCiAJCQkJMEZFQTBBMDYxNzA1MTNEQjAw
QkI3MjJDIC8qIEZUTE91dHB1dC5oICovLAorCQkJCTBGNDg1MzI1MTg3REZERUMwMDgzQjY4NyAv
KiBGVExSZWNvdmVyeU9wY29kZS5jcHAgKi8sCisJCQkJMEY0ODUzMjYxODdERkRFQzAwODNCNjg3
IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggKi8sCisJCQkJMEY2QjFDQkYxODYyQzQ3ODAwODQ1RDk3
IC8qIEZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwICovLAorCQkJCTBGNkIxQ0MwMTg2MkM0NzgwMDg0
NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmggKi8sCiAJCQkJMEZDRUZBQTkxODA0QzEzRTAw
NDcyQ0U0IC8qIEZUTFNhdmVSZXN0b3JlLmNwcCAqLywKIAkJCQkwRkNFRkFBQTE4MDRDMTNFMDA0
NzJDRTQgLyogRlRMU2F2ZVJlc3RvcmUuaCAqLywKIAkJCQkwRjI1RjFBQTE4MTYzNUYzMDA1MjJG
MzkgLyogRlRMU2xvd1BhdGhDYWxsLmNwcCAqLywKQEAgLTMwNjEsOSArMzExMiwxMyBAQAogCQkJ
CTBGMjM1QkNCMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExUaHVua3MuY3BwICovLAogCQkJCTBGMjM1
QkNDMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExUaHVua3MuaCAqLywKIAkJCQkwRkVBMEExQjE3MDhC
MDA3MDBCQjcyMkMgLyogRlRMVHlwZWRQb2ludGVyLmggKi8sCisJCQkJMEY2QjFDQzExODYyQzQ3
ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uY3BwICovLAorCQkJCTBGNkIxQ0MyMTg2MkM0Nzgw
MDg0NUQ5NyAvKiBGVExVbndpbmRJbmZvLmggKi8sCiAJCQkJMEYyMzVCQ0QxNzE3OEUxQzAwNjkw
QzdGIC8qIEZUTFZhbHVlRm9ybWF0LmNwcCAqLywKIAkJCQkwRjIzNUJDRTE3MTc4RTFDMDA2OTBD
N0YgLyogRlRMVmFsdWVGb3JtYXQuaCAqLywKIAkJCQkwRkRCMkNDODE3M0RBNTFFMDA3QjNDMUIg
LyogRlRMVmFsdWVGcm9tQmxvY2suaCAqLywKKwkJCQkwRjVBNjI4MTE4OEM5OEQ0MDA3MkM5REYg
LyogRlRMVmFsdWVSYW5nZS5jcHAgKi8sCisJCQkJMEY1QTYyODIxODhDOThENDAwNzJDOURGIC8q
IEZUTFZhbHVlUmFuZ2UuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gZnRsOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTMxNTIsNiArMzIwNyw4IEBACiAJCTE0MjlEOTJDMEVEMjJENzAw
MEI4OTYxOSAvKiBqaXQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCTBGNkIxQ0M3MTg2NDFERjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRo
dW5rcy5jcHAgKi8sCisJCQkJMEY2QjFDQzgxODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tG
YWlsUmV0dXJuVGh1bmtzLmggKi8sCiAJCQkJMEYyNEU1M0IxN0VBOUY1OTAwQUJCMjE3IC8qIEFz
c2VtYmx5SGVscGVycy5jcHAgKi8sCiAJCQkJMEYyNEU1M0MxN0VBOUY1OTAwQUJCMjE3IC8qIEFz
c2VtYmx5SGVscGVycy5oICovLAogCQkJCTBGMjRFNTNEMTdFQTlGNTkwMEFCQjIxNyAvKiBDQ2Fs
bEhlbHBlcnMuaCAqLywKQEAgLTMyMDUsNiArMzI2Miw4IEBACiAJCQkJMEZDNzEyRTExN0NEODc4
RjAwOENDOTNDIC8qIEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmggKi8sCiAJ
CQkJQTc2RjU0QTIxM0IyOEFBQjAwRUYyQkNFIC8qIEpJVFdyaXRlQmFycmllci5oICovLAogCQkJ
CUE3NkM1MTc0MTE4Mjc0OEQwMDcxNUIwNSAvKiBKU0ludGVyZmFjZUpJVC5oICovLAorCQkJCTBG
NkIxQ0JCMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5l
cmF0b3IuY3BwICovLAorCQkJCTBGNkIxQ0JDMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3RlclBy
ZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaCAqLywKIAkJCQkwRkMzMTQxNDE4MTQ2RDcwMDAw
MzMyMzIgLyogUmVnaXN0ZXJTZXQuY3BwICovLAogCQkJCTBGQzMxNDEwMTgxNDU1OTEwMDAzMzIz
MiAvKiBSZWdpc3RlclNldC5oICovLAogCQkJCTBGMjRFNTQ5MTdFRTI3NDkwMEFCQjIxNyAvKiBS
ZXBhdGNoLmNwcCAqLywKQEAgLTM1NTQsNiArMzYxMyw3IEBACiAJCQkJQTc2MTQwQzgxODI5ODJD
QjAwNzUwNjI0IC8qIEFyZ3VtZW50c0l0ZXJhdG9yQ29uc3RydWN0b3IuaCAqLywKIAkJCQlBNzYx
NDBDOTE4Mjk4MkNCMDA3NTA2MjQgLyogQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuY3BwICov
LAogCQkJCUE3NjE0MENBMTgyOTgyQ0IwMDc1MDYyNCAvKiBBcmd1bWVudHNJdGVyYXRvclByb3Rv
dHlwZS5oICovLAorCQkJCTBGNkIxQ0I3MTg2MTI0NEMwMDg0NUQ5NyAvKiBBcml0eUNoZWNrTW9k
ZS5oICovLAogCQkJCUE3QThBRjI1MTdBREI1RjIwMDVBQjE3NCAvKiBBcnJheUJ1ZmZlci5jcHAg
Ki8sCiAJCQkJQTdBOEFGMjYxN0FEQjVGMzAwNUFCMTc0IC8qIEFycmF5QnVmZmVyLmggKi8sCiAJ
CQkJMEZGQzk5RDIxODRFRTMxODAwOUMxMEFCIC8qIEFycmF5QnVmZmVyTmV1dGVyaW5nV2F0Y2hw
b2ludC5jcHAgKi8sCkBAIC0zNjE4LDYgKzM2NzgsOCBAQAogCQkJCUJDMzA0NjA2MEUxRjQ5N0Yw
MDMyMzJDRiAvKiBFcnJvci5oICovLAogCQkJCUJDMDJFOTA0MEUxODM5REIwMDBGOTI5NyAvKiBF
cnJvckNvbnN0cnVjdG9yLmNwcCAqLywKIAkJCQlCQzAyRTkwNTBFMTgzOURCMDAwRjkyOTcgLyog
RXJyb3JDb25zdHJ1Y3Rvci5oICovLAorCQkJCUZFQjU4QzEyMTg3QjhCMTYwMDk4RUYwQiAvKiBF
cnJvckhhbmRsaW5nU2NvcGUuY3BwICovLAorCQkJCUZFQjU4QzEzMTg3QjhCMTYwMDk4RUYwQiAv
KiBFcnJvckhhbmRsaW5nU2NvcGUuaCAqLywKIAkJCQlCQzAyRTk4QTBFMTgzRTM4MDAwRjkyOTcg
LyogRXJyb3JJbnN0YW5jZS5jcHAgKi8sCiAJCQkJQkMwMkU5OEIwRTE4M0UzODAwMEY5Mjk3IC8q
IEVycm9ySW5zdGFuY2UuaCAqLywKIAkJCQlCQzAyRTkwNjBFMTgzOURCMDAwRjkyOTcgLyogRXJy
b3JQcm90b3R5cGUuY3BwICovLApAQCAtMzg1MSw2ICszOTEzLDcgQEAKIAkJCQlGNjkyQTg3QzAy
NTU1OTdEMDFGRjYwRjcgLyogUmVnRXhwT2JqZWN0LmggKi8sCiAJCQkJQkNEMjAyQkYwRTE3MDZB
NzAwMkM3RTgyIC8qIFJlZ0V4cFByb3RvdHlwZS5jcHAgKi8sCiAJCQkJQkNEMjAyQzAwRTE3MDZB
NzAwMkM3RTgyIC8qIFJlZ0V4cFByb3RvdHlwZS5oICovLAorCQkJCTBGNkIxQ0I4MTg2MTI0NEMw
MDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaCAqLywKIAkJCQkwRkI3RjM5MTE1
RUQ4RTM4MDBGMTY3QjIgLyogUmVqZWN0LmggKi8sCiAJCQkJMEY3NzAwOTExNDAyRkYyODAwNzhF
QjM5IC8qIFNhbXBsaW5nQ291bnRlci5jcHAgKi8sCiAJCQkJMEY3NzAwOEUxNDAyRkRENjAwNzhF
QjM5IC8qIFNhbXBsaW5nQ291bnRlci5oICovLApAQCAtMzk2NSw2ICs0MDI4LDggQEAKIAkJODZF
QzlEQjMxMzI4REY0NDAwMkIyQUQ3IC8qIGRmZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJMkFDQ0YzREMxODVGRTI2QjAwODNFMkFEIC8qIERGR1N0b3Jl
QmFycmllckVsaXNpb25QaGFzZS5jcHAgKi8sCisJCQkJMkFDQ0YzREQxODVGRTI2QjAwODNFMkFE
IC8qIERGR1N0b3JlQmFycmllckVsaXNpb25QaGFzZS5oICovLAogCQkJCUE3N0E0MjM2MTdBMEJC
RkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhlYXAuY3BwICovLAogCQkJCUE3N0E0MjM3MTdBMEJC
RkQwMEE4REI4MSAvKiBERkdBYnN0cmFjdEhlYXAuaCAqLywKIAkJCQlBNzA0RDhGRTE3QTBCQUE4
MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRlcnByZXRlci5oICovLApAQCAtNDE1Myw4ICs0MjE4
LDYgQEAKIAkJCQkwRkMyMENCODE4NTU2QTM1MDBDOUU5NTQgLyogREZHU1NBTG93ZXJpbmdQaGFz
ZS5oICovLAogCQkJCTBGOUZCNEYyMTdGQ0I5MTcwMENCNjdGOCAvKiBERkdTdGFja0xheW91dFBo
YXNlLmNwcCAqLywKIAkJCQkwRjlGQjRGMzE3RkNCOTE3MDBDQjY3RjggLyogREZHU3RhY2tMYXlv
dXRQaGFzZS5oICovLAotCQkJCTJBQ0NGM0RDMTg1RkUyNkIwMDgzRTJBRCAvKiBERkdTdG9yZUJh
cnJpZXJFbGlzaW9uUGhhc2UuY3BwICovLAotCQkJCTJBQ0NGM0REMTg1RkUyNkIwMDgzRTJBRCAv
KiBERkdTdG9yZUJhcnJpZXJFbGlzaW9uUGhhc2UuaCAqLywKIAkJCQkwRkMyMENCMzE4NTJFMkM2
MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAgKi8sCiAJCQkJMEZDMjBD
QjQxODUyRTJDNjAwQzlFOTU0IC8qIERGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuaCAqLywKIAkJ
CQkwRjYzOTQ3NjE1RENFMzQ3MDA2QTU5N0MgLyogREZHU3RydWN0dXJlQWJzdHJhY3RWYWx1ZS5o
ICovLApAQCAtNDI1MCw2ICs0MzEzLDcgQEAKIAkJOTY4OENCMTIwRUQxMkI0RTAwMUQ2NDlGIC8q
IGFzc2VtYmxlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJNjU4NjAxNzcxODVBOEY1RTAwMDMwRUVFIC8qIE1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsLmggKi8sCiAJCQkJODYwMTYxREYwRjNBODNDMTAwRjg0NzEwIC8qIEFic3RyYWN0TWFjcm9B
c3NlbWJsZXIuaCAqLywKIAkJCQk4NjQwOTIzQjE1NkVFRDNCMDA1NjZDQjIgLyogQVJNNjRBc3Nl
bWJsZXIuaCAqLywKIAkJCQk4NkQzQjJCRjEwMTU2QkRFMDAyODY1RTcgLyogQVJNQXNzZW1ibGVy
LmNwcCAqLywKQEAgLTQzMjIsNiArNDM4Niw3IEBACiAJCQkJOTY5QTA3OTIwRUQxRDNBRTAwRjFG
NjgxIC8qIEV2YWxDb2RlQ2FjaGUuaCAqLywKIAkJCQkwRjU2QTFENDE1MDAxQ0YyMDAyOTkyQjEg
LyogRXhlY3V0aW9uQ291bnRlci5jcHAgKi8sCiAJCQkJMEY1NkExRDExNTAwMEYzMTAwMjk5MkIx
IC8qIEV4ZWN1dGlvbkNvdW50ZXIuaCAqLywKKwkJCQkwRjNBQzc1MzE4OEU1RUM4MDAzMjAyOUYg
LyogRXhpdGluZ0pJVFR5cGUuaCAqLywKIAkJCQkwRkIxMDU4MjE2NzU0ODBDMDBGOEFCNkUgLyog
RXhpdEtpbmQuY3BwICovLAogCQkJCTBGQjEwNTgzMTY3NTQ4MEMwMEY4QUI2RSAvKiBFeGl0S2lu
ZC5oICovLAogCQkJCTBGMEI4M0FBMTRCQ0Y1QjkwMDg4NUI0RiAvKiBFeHByZXNzaW9uUmFuZ2VJ
bmZvLmggKi8sCkBAIC00NTQxLDEzICs0NjA2LDE0IEBACiAJCQkJODZBREQxNDUwRkRERUE5ODAw
MDZFRUMyIC8qIEFSTXY3QXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUNFRUUxNTE4
N0YzQkFEMDBFNTVDOTkgLyogSW5zcGVjdG9yQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1
QzAyODVEMTcxNzk2NjgwMDM1MUUzNSAvKiBBUk12N0RPcGNvZGUuaCBpbiBIZWFkZXJzICovLAot
CQkJCTJBNjgyOTVCMTg3NUY4MDUwMEI2QzNFMiAvKiBDb3B5V3JpdGVCYXJyaWVyLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkyQTRFQzkwQzE4NjBENkMyMDA5NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVm
ZmVyLmggaW4gSGVhZGVycyAqLywKKyAJCQkJMkE2ODI5NUIxODc1RjgwNTAwQjZDM0UyIC8qIENv
cHlXcml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAgICAgICAgIDJBNEVDOTBD
MTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZmZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZFNTkzMkE4MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE1MzI0MzkzMTg1Njk3MDkwMDJFRDY5MiAvKiBDb2RlR2VuZXJhdG9ySW5zcGVj
dG9yU3RyaW5ncy5weSBpbiBIZWFkZXJzICovLAotCQkJCUE1MzI0MzkyMTg1Njk3MDkwMDJFRDY5
MiAvKiBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5IGluIEhlYWRlcnMgKi8sCisgCQkJCUE1MzI0
MzkyMTg1Njk3MDkwMDJFRDY5MiAvKiBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5IGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYyNEU1NEYxN0VFMjc0OTAwQUJCMjE3IC8qIFRlbXBSZWdpc3RlclNldC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTUwRTRCNjQxODgwOURENTAwNjhBNDZEIC8qIEpTR2xvYmFs
T2JqZWN0UnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGRUI1OEMxNTE4N0I4QjE2
MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0JG
RjNDMDE3OTg2ODk0MDAwMkY0NjIgLyogREZHRmlsdHJhdGlvblJlc3VsdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTU4NDBFMjcxODdDOTgxRTAwODQzQjEwIC8qIGNzc21pbi5weSBpbiBIZWFkZXJz
ICovLAogCQkJCUMyRkNBRTExMTdBOUMyNEUwMDM0QzczNSAvKiBCeXRlY29kZUJhc2ljQmxvY2su
aCBpbiBIZWFkZXJzICovLApAQCAtNDU1Niw3ICs0NjIyLDcgQEAKIAkJCQkwRjgzMzVCODE2MzlD
MUVBMDAxNDQzQjUgLyogQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTU4NDBFMjkxODdDQTVFNjAwODQzQjEwIC8qIGlubGluZS1hbmQtbWluaWZ5LXN0eWxlc2hl
ZXRzLWFuZC1zY3JpcHRzLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4NDBFMkIxODdDQTc1QjAw
ODQzQjEwIC8qIGpzbWluLnB5IGluIEhlYWRlcnMgKi8sCi0JCQkJQTUzMjQzOTgxODU2QTQ4OTAw
MkVENjkyIC8qIEluc3BlY3RvckpTLmpzb24gaW4gSGVhZGVycyAqLywKKyAJCQkJQTUzMjQzOTgx
ODU2QTQ4OTAwMkVENjkyIC8qIEluc3BlY3RvckpTLmpzb24gaW4gSGVhZGVycyAqLywKIAkJCQlB
NTg0MEUyQTE4N0NBNzU5MDA4NDNCMTAgLyogeHhkLnBsIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVB
MDg2MjAxODJCN0EwNDAwRjZEODUxIC8qIEJyZWFrcG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE3QThBRjM1MTdBREI1RjMwMDVBQjE3NCAvKiBBcnJheUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8s
CkBAIC00NjI0LDYgKzQ2OTAsNyBAQAogCQkJCUMyRUFBM0ZBMTQ5QTgzNUUwMEZDRTExMiAvKiBD
b3BpZWRTcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzJDOEQwMkQxNEEzQzZFMDAwNTc4RTY1
IC8qIENvcGllZFNwYWNlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1QTUyRDAxN0FE
RDcxNzAwOEVDQjJEIC8qIENvcHlUb2tlbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjFDQzYx
ODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUMy
MjM5RDE4MTYyNjJCREQwMDVBQzVGRCAvKiBDb3B5VmlzaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQzIyMzlEMTkxNjI2MkJERDAwNUFDNUZEIC8qIENvcHlWaXNpdG9ySW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQzIxOEQxNDAxNjU1Q0ZENTAwNjJCQjgxIC8qIENvcHlXb3JrTGlzdC5o
IGluIEhlYWRlcnMgKi8sCkBAIC00NjY1LDcgKzQ3MzIsOCBAQAogCQkJCTBGODM2NEI3MTY0QjBD
MTEwMDUzMzI5QSAvKiBERkdCcmFuY2hEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUEx
QTAwOUMwMTgzMUEyMkQwMENGODcxMSAvKiBNYWNyb0Fzc2VtYmxlckFSTTY0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NkVDOURDNTEzMjhERjgyMDAyQjJBRDcgLyogREZHQnl0ZUNvZGVQYXJzZXIu
aCBpbiBIZWFkZXJzICovLAotCQkJCUE1OTNDRjg3MTg0MDM4Q0EwMEJGQ0UyNyAvKiBJbnNwZWN0
b3JBZ2VudFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjQ4NTMyODE4N0RGREVDMDA4
M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCBpbiBIZWFkZXJzICovLAorICAgICAgICAg
ICAgICAgIEE1OTNDRjg3MTg0MDM4Q0EwMEJGQ0UyNyAvKiBJbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI1NkMzNjE2MjdCMEFEMDA3RjI3ODMgLyogREZHQ2Fs
bEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
N0IyOTRCMTRDM0NEMkYwMDdDM0RCMSAvKiBERkdDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRkZDOTU4MTRFRjkwQTIwMEM3MjUzMiAvKiBERkdDRkFQaGFzZS5oIGluIEhlYWRl
cnMgKi8sCkBAIC00Njk5LDYgKzQ3NjcsNyBAQAogCQkJCTBGQkMwQUU4MTQ5NkM3QzcwMEQ0RkJE
RCAvKiBERkdFeGl0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc4QTk3NzUxNzk3MzhC
ODAwOURGNzQ0IC8qIERGR0ZhaWxlZEZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc4
QTk3NzcxNzk3MzhCODAwOURGNzQ0IC8qIERGR0ZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEY2QjFDQjYxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEYyQkRDMTYxNTFDNUQ0RjAwQ0Q4OTEwIC8qIERGR0ZpeHVwUGhhc2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGOUQzMzk3MTdGRkM0RTYwMDczQzJCQyAvKiBERkdGbHVzaGVkQXQuaCBp
biBIZWFkZXJzICovLAogCQkJCUE3RDg5Q0Y4MTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdGbHVzaEZv
cm1hdC5oIGluIEhlYWRlcnMgKi8sCkBAIC00NzM1LDYgKzQ4MDQsNyBAQAogCQkJCTBGRDhBMzI2
MTdENTFGNTcwMENBMkM0MCAvKiBERkdPU1JFbnRyeXBvaW50Q3JlYXRpb25QaGFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDMDk3NkExNDY4QTZGNzAwQ0YyNDQyIC8qIERGR09TUkV4aXQuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRkM5OUQxMTg0RUM4QUQwMDlDMTBBQiAvKiBDb25zdGFudE1v
ZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkIxQ0JBMTg2MTI0NEMwMDg0NUQ5NyAvKiBSZWdp
c3RlclByZXNlcnZhdGlvbk1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjM1QkVDMTcxNzhF
NzMwMDY5MEM3RiAvKiBERkdPU1JFeGl0QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCQTE1
RUQxODIzNDBCNDAwQTgyRTY5IC8qIFJlbW90ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGRkI5MjFDMTZEMDJGMTEwMDU1QTVEQiAvKiBERkdPU1JFeGl0Q29t
cGlsYXRpb25JbmZvLmggaW4gSGVhZGVycyAqLywKQEAgLTQ4MDMsNiArNDg3Myw3IEBACiAJCQkJ
MEZFQTBBMUYxNzA4QjAwNzAwQkI3MjJDIC8qIEZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCBp
biBIZWFkZXJzICovLAogCQkJCUE1OTQ1NTkzMTgyNDc0NDcwMENDMzg0MyAvKiBKU0dsb2JhbE9i
amVjdERlYnVnZ2FibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTBBMTcwNTEzREIwMEJC
NzIyQyAvKiBGVExDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNDg1MzJBMTg3
REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVyeU9wY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZFQTBBMjMxNzA5NjA2OTAwQkI3MjJDIC8qIEZUTENvbW1vblZhbHVlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZFQTBBMEMxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTENvbXBpbGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMjM1QkQ0MTcxNzhFMUMwMDY5MEM3RiAvKiBGVExFeGl0QXJndW1lbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtNDgxOSw2ICs0ODkwLDcgQEAKIAkJCQkwRkVBMEEyNDE3MDk2
MDY5MDBCQjcyMkMgLyogRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZFQTBBMEUxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTEpJVENvZGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE3OEE5NzgxMTc5NzM4RDUwMDlERjc0NCAvKiBGVExKSVRGaW5hbGl6ZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGNUE2Mjg0MTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjhGMkI5NjE3MkUwNEEzMDA3REJEQTUgLyogRlRMTGlu
ay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDRUZBRTAxODA3MzhDMDAwNDcyQ0U0IC8qIEZUTExv
Y2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVBMEExMDE3MDUxM0RCMDBCQjcyMkMgLyog
RlRMTG93ZXJERkdUb0xMVk0uaCBpbiBIZWFkZXJzICovLApAQCAtNDkwMSw2ICs0OTczLDcgQEAK
IAkJCQkwRkMyMENCNjE4NTJFMkM2MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFz
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCMTRFMUYxODEyNEFDRTAwOUI2QjREIC8qIEpJVElu
bGluZUNhY2hlR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkNDODVBMTBFRTc5QTQ3
MDAyODg2ODIgLyogSklUSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjFDQkUxODYx
MjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEYyNEU1NEQxN0VFMjc0OTAwQUJCMjE3IC8qIEpJVE9wZXJhdGlv
bnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3OTBERDcwMTgyRjQ5OTcwMDU4ODgwNyAvKiBKU1Nl
dEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU0RTE3RUUyNzQ5MDBBQkIyMTcg
LyogSklUT3BlcmF0aW9uV3JhcHBlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtNDkxNiw2ICs0OTg5
LDcgQEAKIAkJCQkwRkM3MTJFMzE3Q0Q4NzkzMDA4Q0M5M0MgLyogSklUVG9ERkdEZWZlcnJlZENv
bXBpbGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NkY1NEEzMTNCMjhBQUIw
MEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDE2
MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0FjdGl2YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
NkIxQ0I5MTg2MTI0NEMwMDg0NUQ5NyAvKiBBcml0eUNoZWNrTW9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODQwNDgwMTMxMDIxQTFEOTAwOEU3RjAxIC8qIEpTQVBJVmFsdWVXcmFwcGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDMkNGMzlDMjE2RTE1QTgxMDBERDY5QkUgLyogSlNBUElXcmFwcGVy
T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzYxNDBEMjE4Mjk4MkNCMDA3NTA2MjQgLyog
SlNBcmd1bWVudHNJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCkBAIC00OTY5LDYgKzUwNDMsOCBA
QAogCQkJCUJDMThDNDIzMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0xvY2suaCBpbiBIZWFkZXJzICov
LAogCQkJCUMyNUQ3MDlDMTZERTk5RjQwMEZDQTZCQyAvKiBKU01hbmFnZWRWYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTcwMDg3NDIxN0NCRThFQjAwQzNFNjQzIC8qIEpTTWFwLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjNBQzc1NDE4OEU1RUM4MDAzMjAyOUYgLyogRXhpdGluZ0pJVFR5cGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkIxQ0M0MTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdp
c3RlckF0T2Zmc2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDg3NEFFNDE1RUJERTRBMDAyRTM1
ODcgLyogSlNOYW1lU2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDI0MEUxNkY1Q0Qw
MEIzNDQ2MCAvKiBKU09iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MjUwRTE2RjVD
RDAwQjM0NDYwIC8qIEpTT2JqZWN0UmVmLmggaW4gSGVhZGVycyAqLywKQEAgLTUyNzMsNiArNTM0
OSw3IEBACiAJCQkJOTY4OENCMTYwRUQxMkI0RTAwMUQ2NDlGIC8qIFg4NkFzc2VtYmxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDUxNTM5QjkxMkRDOTk0NTAwRUY3QUM0IC8qIFlhcnIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNjY2RUNEMTgzNkIzN0UwMEQwMTdGMSAvKiBERkdSZXN1cnJlY3Rp
b25Gb3JWYWxpZGF0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkIxQ0NBMTg2NDFE
RjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODY3MDRCODUxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJJbnRlcnByZXRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTU1RDkzQTYxODUwMTJBODAwNDAwREVEIC8qIFNjcmlwdEZ1bmN0aW9u
Q2FsbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODY3MDRCODcxMkRCQTMzNzAwQTlGRTdCIC8qIFlh
cnJKSVQuaCBpbiBIZWFkZXJzICovLApAQCAtNTcxNiw2ICs1NzkzLDcgQEAKIAkJCQkxNDI5RDhE
RDBFRDIyMDVCMDBCODk2MTkgLyogQ2FsbEZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
MEI4M0IwMTRCQ0Y3MTYwMDg4NUI0RiAvKiBDYWxsTGlua0luZm8uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTUxM0U1QjcxODVCOEJEMzAwN0U5NUFEIC8qIEluamVjdGVkU2NyaXB0LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTBGNUE2MjgzMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOTMzMjlEMTRDQTdEQzMwMDg1RjNDNiAvKiBDYWxs
TGlua1N0YXR1cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjczRDdBRTE2NUExNDJEMDBBQ0FC
NzEgLyogQ2xvc3VyZUNhbGxTdHViUm91dGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NjlB
MDc5NjBFRDFEM0FFMDBGMUY2ODEgLyogQ29kZUJsb2NrLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
NTc1NCw2ICs1ODMyLDcgQEAKIAkJCQkwRjYzOTQ4NDE1RTQ4MTE4MDA2QTU5N0MgLyogREZHQXJy
YXlNb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RDlBMjk0MTdBMEJDNzQwMEVFMjYxOCAv
KiBERkdBdFRhaWxBYnN0cmFjdFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNzE0Q0E0
MTZFQTkyRjAwMEYzRUJFQiAvKiBERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUZFQjU4QzE0MTg3QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRsaW5n
U2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdEODlDRjIxN0EwQjhDQzAwNzczQUQ4IC8q
IERGR0Jhc2ljQmxvY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcwQjA4MzIxN0EwQjc5QjAw
REFGMTRCIC8qIERGR0JpbmFyeVN3aXRjaC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0Q4OUNG
MzE3QTBCOENDMDA3NzNBRDggLyogREZHQmxvY2tJbnNlcnRpb25TZXQuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC01ODMxLDkgKzU5MTAsMTEgQEAKIAkJCQk4Njg4MEY0RDE0MzUzQjIxMDBCMDhENDIg
LyogREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0Q4OUNGRjE3
QTBCOENDMDA3NzNBRDggLyogREZHU1NBQ29udmVyc2lvblBoYXNlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGOUZCNEY0MTdGQ0I5MTcwMENCNjdGOCAvKiBERkdTdGFja0xheW91dFBoYXNlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTBGNkIxQ0JEMTg2MTI0NkEwMDg0NUQ5NyAvKiBSZWdpc3Rl
clByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZD
MDk3QTExNDZCMjhDQTAwQ0YyNDQyIC8qIERGR1RodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkQ4QTMyNzE3RDUxRjU3MDBDQTJDNDAgLyogREZHVGllclVwQ2hlY2tJbmplY3Rpb25QaGFz
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4QTMyOTE3RDUxRjU3MDBDQTJDNDAgLyogREZH
VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEY0ODUzMjcxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGRDhBMzJCMTdENTFGNTcwMENBMkM0MCAvKiBERkdUb0ZUTEZvck9T
UkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGNjM5NDQwMTVDNzVGMUQwMDZBNTk3QyAvKiBERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGQkUwRjc2MTZDMURCMEYwMDgyQzVFOCAvKiBERkdVbmlm
aWNhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNTg5Miw5ICs1OTczLDExIEBACiAJ
CQkJMEZDRUZBQUIxODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNhdmVSZXN0b3JlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGMjVGMUIxMTgxNjM1RjMwMDUyMkYzOSAvKiBGVExTbG93UGF0aENhbGwu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyNUYxQjMxODE2MzVGMzAwNTIyRjM5IC8qIEZUTFNs
b3dQYXRoQ2FsbEtleS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjZCMUNDNTE4NjJDNDc4MDA4
NDVEOTcgLyogRlRMVW53aW5kSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjlEMzM5QTE4
MDNBREI3MDA3M0MyQkMgLyogRlRMU3RhY2tNYXBzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
RUEwQTE2MTcwNkJCOTAwMEJCNzIyQyAvKiBGVExTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk3QzAwOENEMjE4NkY4QTkzMDA5NTVDMjQgLyogSlNQcm9taXNlRnVuY3Rpb25zLmNwcCBpbiBT
b3VyY2VzICovLAorIAkJCQk3QzAwOENEMjE4NkY4QTkzMDA5NTVDMjQgLyogSlNQcm9taXNlRnVu
Y3Rpb25zLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNkIxQ0I1MTg1RkM5RTkwMDg0NUQ5NyAv
KiBGVExKU0NhbGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyMzVCRTExNzE3OEUxQzAwNjkw
QzdGIC8qIEZUTFRodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTkzQ0Y3QzE4NDAzNjAz
MDBCRkNFMjcgLyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEYyMzVCRTMxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTFZhbHVlRm9ybWF0LmNwcCBpbiBT
b3VyY2VzICovLApAQCAtNTk4MCw2ICs2MDYzLDcgQEAKIAkJCQkxNDI4MDg3NTEwN0VDMTNFMDAx
M0U3QjIgLyogSlNMb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMyNUQ3MDlCMTZERTk5RjQw
MEZDQTZCQyAvKiBKU01hbmFnZWRWYWx1ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE3MDA4NzQx
MTdDQkU4RUIwMEMzRTY0MyAvKiBKU01hcC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjQ4NTMy
OTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNvZGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMTQ4NzRBRTMxNUVCREU0QTAwMkUzNTg3IC8qIEpTTmFtZVNjb3BlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE3MjcwMDkwMERBQzZCQkMwMEU1NDhENyAvKiBKU05vdEFuT2JqZWN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUQ0MTA3RUMzNzYwMDQyN0E0OCAvKiBKU09iamVj
dC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTYwOTYsNiArNjE4MCw3IEBACiAJCQkJMEY2NjZFQ0Mx
ODM2QjM3RTAwRDAxN0YxIC8qIERGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRkIxMDU4QjE2NzU0ODMxMDBGOEFCNkUgLyogUHJvZmlsZXJP
U1JFeGl0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQjEwNThEMTY3NTQ4MzcwMEY4QUI2RSAv
KiBQcm9maWxlck9TUkV4aXRTaXRlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNkIxQ0MzMTg2
MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGMTM5MTJCMTY3NzFDM0EwMDlDQ0IwNyAvKiBQcm9maWxlclByb2ZpbGVkQnl0ZWNvZGVz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RkI2MEE0MTAzRjdEQzIwMDE3QTI4NiAvKiBQcm9w
ZXJ0eURlc2NyaXB0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERTcxMDdFQzdFNzAw
NjUwNDQ2IC8qIFByb3BlcnR5TmFtZUFycmF5LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjEyNSw2
ICs2MjEwLDcgQEAKIAkJCQkwRjhGMkI5RTE3MzA2QzhEMDA3REJEQTUgLyogU291cmNlQ29kZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ5M0FGQTE2RDBDQUQzMDA4NDUwOEIgLyogU291cmNl
UHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ5REMxNkIxMkVGMjkzRTAwMTg0QTFG
IC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2QjFDQzkx
ODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGMENENEM0MTVGNkI2QkIwMDMyRjFDMCAvKiBTcGFyc2VBcnJheVZhbHVl
TWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNTU0MUIxMTYxM0MxRkIwMENFM0UyNSAvKiBT
cGVjaWFsUG9pbnRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4MkU4NjE0MUYzRkYxMDAx
NzlDOTQgLyogU3BlY3VsYXRlZFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgKaW5kZXggY2ZiZDhjZWM1
NmY3YjQ0Y2M1MzQ3MDA3ZDc2YWFmOTcyNTk3YmQ4Ni4uZTA5OThkNGI3YTc0NDdiMjBmZjRmNzcy
ZTk3MTUyY2FlYzAwZjg5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BUk02NEFzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvQVJNNjRBc3NlbWJsZXIuaApAQCAtNDAsMTQgKzQwLDI2IEBACiAjZGVmaW5lIERBVEFTSVpF
IERBVEFTSVpFX09GKGRhdGFzaXplKQogI2RlZmluZSBNRU1PUFNJWkUgTUVNT1BTSVpFX09GKGRh
dGFzaXplKQogI2RlZmluZSBDSEVDS19GUF9NRU1PUF9EQVRBU0laRSgpIEFTU0VSVChkYXRhc2l6
ZSA9PSA4IHx8IGRhdGFzaXplID09IDE2IHx8IGRhdGFzaXplID09IDMyIHx8IGRhdGFzaXplID09
IDY0IHx8IGRhdGFzaXplID09IDEyOCkKKyNkZWZpbmUgTUVNUEFJUk9QU0laRV9JTlQoZGF0YXNp
emUpICgoZGF0YXNpemUgPT0gNjQpID8gTWVtUGFpck9wXzY0IDogTWVtUGFpck9wXzMyKQorI2Rl
ZmluZSBNRU1QQUlST1BTSVpFX0ZQKGRhdGFzaXplKSAoKGRhdGFzaXplID09IDEyOCkgPyBNZW1Q
YWlyT3BfVjEyOCA6IChkYXRhc2l6ZSA9PSA2NCkgPyBNZW1QYWlyT3BfVjY0IDogTWVtUGFpck9w
XzMyKQogCiBuYW1lc3BhY2UgSlNDIHsKIAorQUxXQVlTX0lOTElORSBib29sIGlzSW50NyhpbnQz
Ml90IHZhbHVlKQoreworICAgIHJldHVybiB2YWx1ZSA9PSAoKHZhbHVlIDw8IDI1KSA+PiAyNSk7
Cit9CisKIEFMV0FZU19JTkxJTkUgYm9vbCBpc0ludDkoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBy
ZXR1cm4gdmFsdWUgPT0gKCh2YWx1ZSA8PCAyMykgPj4gMjMpOwogfQogCitBTFdBWVNfSU5MSU5F
IGJvb2wgaXNJbnQxMShpbnQzMl90IHZhbHVlKQoreworICAgIHJldHVybiB2YWx1ZSA9PSAoKHZh
bHVlIDw8IDIxKSA+PiAyMSk7Cit9CisKIEFMV0FZU19JTkxJTkUgYm9vbCBpc1VJbnQ1KGludDMy
X3QgdmFsdWUpCiB7CiAgICAgcmV0dXJuICEodmFsdWUgJiB+MHgxZik7CkBAIC0xMTksNiArMTMx
LDM0IEBAIHByaXZhdGU6CiAgICAgaW50IG1fdmFsdWU7CiB9OwogCitjbGFzcyBQYWlyUG9zdElu
ZGV4IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBQYWlyUG9zdEluZGV4KGludCB2YWx1ZSkKKyAg
ICAgICAgOiBtX3ZhbHVlKHZhbHVlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzSW50MTEodmFs
dWUpKTsKKyAgICB9CisKKyAgICBvcGVyYXRvciBpbnQoKSB7IHJldHVybiBtX3ZhbHVlOyB9CisK
K3ByaXZhdGU6CisgICAgaW50IG1fdmFsdWU7Cit9OworCitjbGFzcyBQYWlyUHJlSW5kZXggewor
cHVibGljOgorICAgIGV4cGxpY2l0IFBhaXJQcmVJbmRleChpbnQgdmFsdWUpCisgICAgICAgIDog
bV92YWx1ZSh2YWx1ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChpc0ludDExKHZhbHVlKSk7Cisg
ICAgfQorCisgICAgb3BlcmF0b3IgaW50KCkgeyByZXR1cm4gbV92YWx1ZTsgfQorCitwcml2YXRl
OgorICAgIGludCBtX3ZhbHVlOworfTsKKwogY2xhc3MgTG9naWNhbEltbWVkaWF0ZSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIExvZ2ljYWxJbW1lZGlhdGUgY3JlYXRlMzIodWludDMyX3QgdmFsdWUp
CkBAIC04MjMsNiArODYzLDE2IEBAIHByaXZhdGU6CiAgICAgICAgIE1lbU9wX0xPQURfc2lnbmVk
MzIgPSAzIC8vIHNpemUgbWF5IGJlIDAgb3IgMQogICAgIH07CiAKKyAgICBlbnVtIE1lbVBhaXJP
cFNpemUgeworICAgICAgICBNZW1QYWlyT3BfMzIgPSAwLAorICAgICAgICBNZW1QYWlyT3BfTG9h
ZFNpZ25lZF8zMiA9IDEsCisgICAgICAgIE1lbVBhaXJPcF82NCA9IDIsCisKKyAgICAgICAgTWVt
UGFpck9wX1YzMiA9IE1lbVBhaXJPcF8zMiwKKyAgICAgICAgTWVtUGFpck9wX1Y2NCA9IDEsCisg
ICAgICAgIE1lbVBhaXJPcF9WMTI4ID0gMgorICAgIH07CisKICAgICBlbnVtIE1vdmVXaWRlT3Ag
ewogICAgICAgICBNb3ZlV2lkZU9wX04gPSAwLAogICAgICAgICBNb3ZlV2lkZU9wX1ogPSAyLApA
QCAtODM2LDYgKzg4NiwxNCBAQCBwcml2YXRlOgogICAgICAgICBMZHJMaXRlcmFsT3BfMTI4QklU
ID0gMgogICAgIH07CiAKKyAgICBzdGF0aWMgdW5zaWduZWQgbWVtUGFpck9mZnNldFNoaWZ0KGJv
b2wgViwgTWVtUGFpck9wU2l6ZSBzaXplKQorICAgIHsKKyAgICAgICAgLy8gcmV0dXJuIHRoZSBs
b2cyIG9mIHRoZSBzaXplIGluIGJ5dGVzLCBlLmcuIDY0IGJpdCBzaXplIHJldHVybnMgMworICAg
ICAgICBpZiAoVikKKyAgICAgICAgICAgIHJldHVybiBzaXplICsgMjsKKyAgICAgICAgcmV0dXJu
IChzaXplID4+IDEpICsgMjsKKyAgICB9CisKIHB1YmxpYzoKICAgICAvLyBJbnRlZ2VyIEluc3Ry
dWN0aW9uczoKIApAQCAtODcxLDggKzkyOSw5IEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgYWRkKFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0sIFNo
aWZ0VHlwZSBzaGlmdCwgaW50IGFtb3VudCkKICAgICB7CiAgICAgICAgIENIRUNLX0RBVEFTSVpF
KCk7Ci0gICAgICAgIGlmIChpc1NwKHJuKSkgeworICAgICAgICBpZiAoaXNTcChyZCkgfHwgaXNT
cChybikpIHsKICAgICAgICAgICAgIEFTU0VSVChzaGlmdCA9PSBMU0wpOworICAgICAgICAgICAg
QVNTRVJUKCFpc1NwKHJtKSk7CiAgICAgICAgICAgICBhZGQ8ZGF0YXNpemUsIHNldEZsYWdzPihy
ZCwgcm4sIHJtLCBVWFRYLCBhbW91bnQpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGlu
c24oYWRkU3VidHJhY3RTaGlmdGVkUmVnaXN0ZXIoREFUQVNJWkUsIEFkZE9wX0FERCwgc2V0Rmxh
Z3MsIHNoaWZ0LCBybSwgYW1vdW50LCBybiwgcmQpKTsKQEAgLTEyMTYsNiArMTI3NSwyMCBAQCBw
dWJsaWM6CiAgICAgfQogCiAgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZU19J
TkxJTkUgdm9pZCBsZHAoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVySUQg
cm4sIFBhaXJQb3N0SW5kZXggc2ltbSkKKyAgICB7CisgICAgICAgIENIRUNLX0RBVEFTSVpFKCk7
CisgICAgICAgIGluc24obG9hZFN0b3JlUmVnaXN0ZXJQYWlyUG9zdEluZGV4KE1FTVBBSVJPUFNJ
WkVfSU5UKGRhdGFzaXplKSwgZmFsc2UsIE1lbU9wX0xPQUQsIHNpbW0sIHJuLCBydCwgcnQyKSk7
CisgICAgfQorCisgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZU19JTkxJTkUg
dm9pZCBsZHAoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVySUQgcm4sIFBh
aXJQcmVJbmRleCBzaW1tKQorICAgIHsKKyAgICAgICAgQ0hFQ0tfREFUQVNJWkUoKTsKKyAgICAg
ICAgaW5zbihsb2FkU3RvcmVSZWdpc3RlclBhaXJQcmVJbmRleChNRU1QQUlST1BTSVpFX0lOVChk
YXRhc2l6ZSksIGZhbHNlLCBNZW1PcF9MT0FELCBzaW1tLCBybiwgcnQsIHJ0MikpOworICAgIH0K
KworICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgbGRy
KFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewogICAg
ICAgICBsZHI8ZGF0YXNpemU+KHJ0LCBybiwgcm0sIFVYVFgsIDApOwpAQCAtMTc0OCw2ICsxODIx
LDIwIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+CisgICAg
QUxXQVlTX0lOTElORSB2b2lkIHN0cChSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJ0MiwgUmVn
aXN0ZXJJRCBybiwgUGFpclBvc3RJbmRleCBzaW1tKQorICAgIHsKKyAgICAgICAgQ0hFQ0tfREFU
QVNJWkUoKTsKKyAgICAgICAgaW5zbihsb2FkU3RvcmVSZWdpc3RlclBhaXJQb3N0SW5kZXgoTUVN
UEFJUk9QU0laRV9JTlQoZGF0YXNpemUpLCBmYWxzZSwgTWVtT3BfU1RPUkUsIHNpbW0sIHJuLCBy
dCwgcnQyKSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBzdHAoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVy
SUQgcm4sIFBhaXJQcmVJbmRleCBzaW1tKQorICAgIHsKKyAgICAgICAgQ0hFQ0tfREFUQVNJWkUo
KTsKKyAgICAgICAgaW5zbihsb2FkU3RvcmVSZWdpc3RlclBhaXJQcmVJbmRleChNRU1QQUlST1BT
SVpFX0lOVChkYXRhc2l6ZSksIGZhbHNlLCBNZW1PcF9TVE9SRSwgc2ltbSwgcm4sIHJ0LCBydDIp
KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+CiAgICAgQUxXQVlTX0lOTElO
RSB2b2lkIHN0cihSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtKQog
ICAgIHsKICAgICAgICAgc3RyPGRhdGFzaXplPihydCwgcm4sIHJtLCBVWFRYLCAwKTsKQEAgLTE4
NzYsOCArMTk2Myw5IEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc3ViKFJlZ2lz
dGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0sIFNoaWZ0VHlwZSBzaGlmdCwg
aW50IGFtb3VudCkKICAgICB7CiAgICAgICAgIENIRUNLX0RBVEFTSVpFKCk7Ci0gICAgICAgIGlm
IChpc1NwKHJuKSkgeworICAgICAgICBpZiAoaXNTcChyZCkgfHwgaXNTcChybikpIHsKICAgICAg
ICAgICAgIEFTU0VSVChzaGlmdCA9PSBMU0wpOworICAgICAgICAgICAgQVNTRVJUKCFpc1NwKHJt
KSk7CiAgICAgICAgICAgICBzdWI8ZGF0YXNpemUsIHNldEZsYWdzPihyZCwgcm4sIHJtLCBVWFRY
LCBhbW91bnQpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGluc24oYWRkU3VidHJhY3RT
aGlmdGVkUmVnaXN0ZXIoREFUQVNJWkUsIEFkZE9wX1NVQiwgc2V0RmxhZ3MsIHNoaWZ0LCBybSwg
YW1vdW50LCBybiwgcmQpKTsKQEAgLTMzNjEsNiArMzQ0OSwyMyBAQCBwcml2YXRlOgogICAgIH0K
IAogICAgIC8vICdWJyBtZWFucyB2ZWN0b3IKKyAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBpbnQg
bG9hZFN0b3JlUmVnaXN0ZXJQYWlyUG9zdEluZGV4KE1lbVBhaXJPcFNpemUgc2l6ZSwgYm9vbCBW
LCBNZW1PcCBvcGMsIGludCBpbW1lZGlhdGUsIFJlZ2lzdGVySUQgcm4sIEZQUmVnaXN0ZXJJRCBy
dCwgRlBSZWdpc3RlcklEIHJ0MikKKyAgICB7CisgICAgICAgIEFTU0VSVChzaXplIDwgMyk7Cisg
ICAgICAgIEFTU0VSVChvcGMgPT0gKG9wYyAmIDEpKTsgLy8gT25seSBsb2FkIG9yIHN0b3JlLCBs
b2FkIHNpZ25lZCA2NCBpcyBoYW5kbGVkIHZpYSBzaXplLgorICAgICAgICBBU1NFUlQoViB8fCAo
c2l6ZSAhPSBNZW1QYWlyT3BfTG9hZFNpZ25lZF8zMikgfHwgKG9wYyA9PSBNZW1PcF9MT0FEKSk7
IC8vIFRoZXJlIGlzbid0IGFuIGludGVnZXIgc3RvcmUgc2lnbmVkLgorICAgICAgICB1bnNpZ25l
ZCBpbW1lZFNoaWZ0QW1vdW50ID0gbWVtUGFpck9mZnNldFNoaWZ0KFYsIHNpemUpOworICAgICAg
ICBpbnQgaW1tNyA9IGltbWVkaWF0ZSA+PiBpbW1lZFNoaWZ0QW1vdW50OworICAgICAgICBBU1NF
UlQoKGltbTcgPDwgaW1tZWRTaGlmdEFtb3VudCkgPT0gaW1tZWRpYXRlICYmIGlzSW50NyhpbW03
KSk7CisgICAgICAgIHJldHVybiAoMHgyODgwMDAwMCB8IHNpemUgPDwgMzAgfCBWIDw8IDI2IHwg
b3BjIDw8IDIyIHwgKGltbTcgJiAweDdmKSA8PCAxNSB8IHJ0MiA8PCAxMCB8IHhPclNwKHJuKSA8
PCA1IHwgcnQpOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGludCBsb2FkU3Rv
cmVSZWdpc3RlclBhaXJQb3N0SW5kZXgoTWVtUGFpck9wU2l6ZSBzaXplLCBib29sIFYsIE1lbU9w
IG9wYywgaW50IGltbWVkaWF0ZSwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0ZXJJRCBydCwgUmVnaXN0
ZXJJRCBydDIpCisgICAgeworICAgICAgICByZXR1cm4gbG9hZFN0b3JlUmVnaXN0ZXJQYWlyUG9z
dEluZGV4KHNpemUsIFYsIG9wYywgaW1tZWRpYXRlLCBybiwgeE9yWnJBc0ZQUihydCksIHhPclpy
QXNGUFIocnQyKSk7CisgICAgfQorCisgICAgLy8gJ1YnIG1lYW5zIHZlY3RvcgogICAgIEFMV0FZ
U19JTkxJTkUgc3RhdGljIGludCBsb2FkU3RvcmVSZWdpc3RlclByZUluZGV4KE1lbU9wU2l6ZSBz
aXplLCBib29sIFYsIE1lbU9wIG9wYywgaW50IGltbTksIFJlZ2lzdGVySUQgcm4sIEZQUmVnaXN0
ZXJJRCBydCkKICAgICB7CiAgICAgICAgIEFTU0VSVCghKHNpemUgJiYgViAmJiAob3BjICYgMikp
KTsgLy8gTWF4aW11bSB2ZWN0b3Igc2l6ZSBpcyAxMjggYml0cy4KQEAgLTMzNzUsNiArMzQ4MCwy
MyBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIC8vICdWJyBtZWFucyB2ZWN0b3IKKyAgICBBTFdB
WVNfSU5MSU5FIHN0YXRpYyBpbnQgbG9hZFN0b3JlUmVnaXN0ZXJQYWlyUHJlSW5kZXgoTWVtUGFp
ck9wU2l6ZSBzaXplLCBib29sIFYsIE1lbU9wIG9wYywgaW50IGltbWVkaWF0ZSwgUmVnaXN0ZXJJ
RCBybiwgRlBSZWdpc3RlcklEIHJ0LCBGUFJlZ2lzdGVySUQgcnQyKQorICAgIHsKKyAgICAgICAg
QVNTRVJUKHNpemUgPCAzKTsKKyAgICAgICAgQVNTRVJUKG9wYyA9PSAob3BjICYgMSkpOyAvLyBP
bmx5IGxvYWQgb3Igc3RvcmUsIGxvYWQgc2lnbmVkIDY0IGlzIGhhbmRsZWQgdmlhIHNpemUuCisg
ICAgICAgIEFTU0VSVChWIHx8IChzaXplICE9IE1lbVBhaXJPcF9Mb2FkU2lnbmVkXzMyKSB8fCAo
b3BjID09IE1lbU9wX0xPQUQpKTsgLy8gVGhlcmUgaXNuJ3QgYW4gaW50ZWdlciBzdG9yZSBzaWdu
ZWQuCisgICAgICAgIHVuc2lnbmVkIGltbWVkU2hpZnRBbW91bnQgPSBtZW1QYWlyT2Zmc2V0U2hp
ZnQoViwgc2l6ZSk7CisgICAgICAgIGludCBpbW03ID0gaW1tZWRpYXRlID4+IGltbWVkU2hpZnRB
bW91bnQ7CisgICAgICAgIEFTU0VSVCgoaW1tNyA8PCBpbW1lZFNoaWZ0QW1vdW50KSA9PSBpbW1l
ZGlhdGUgJiYgaXNJbnQ3KGltbTcpKTsKKyAgICAgICAgcmV0dXJuICgweDI5ODAwMDAwIHwgc2l6
ZSA8PCAzMCB8IFYgPDwgMjYgfCBvcGMgPDwgMjIgfCAoaW1tNyAmIDB4N2YpIDw8IDE1IHwgcnQy
IDw8IDEwIHwgeE9yU3Aocm4pIDw8IDUgfCBydCk7CisgICAgfQorCisgICAgQUxXQVlTX0lOTElO
RSBzdGF0aWMgaW50IGxvYWRTdG9yZVJlZ2lzdGVyUGFpclByZUluZGV4KE1lbVBhaXJPcFNpemUg
c2l6ZSwgYm9vbCBWLCBNZW1PcCBvcGMsIGludCBpbW1lZGlhdGUsIFJlZ2lzdGVySUQgcm4sIFJl
Z2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnQyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxvYWRT
dG9yZVJlZ2lzdGVyUGFpclByZUluZGV4KHNpemUsIFYsIG9wYywgaW1tZWRpYXRlLCBybiwgeE9y
WnJBc0ZQUihydCksIHhPclpyQXNGUFIocnQyKSk7CisgICAgfQorCisgICAgLy8gJ1YnIG1lYW5z
IHZlY3RvcgogICAgIC8vICdTJyBtZWFucyBzaGlmdCBybQogICAgIEFMV0FZU19JTkxJTkUgc3Rh
dGljIGludCBsb2FkU3RvcmVSZWdpc3RlclJlZ2lzdGVyT2Zmc2V0KE1lbU9wU2l6ZSBzaXplLCBi
b29sIFYsIE1lbU9wIG9wYywgUmVnaXN0ZXJJRCBybSwgRXh0ZW5kVHlwZSBvcHRpb24sIGJvb2wg
UywgUmVnaXN0ZXJJRCBybiwgRlBSZWdpc3RlcklEIHJ0KQogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAppbmRleCA1MjU3ZjMyYTgz
Yjg0NjM3Y2Q2ODNmMGI4MWM5YzBmZTUwYzJiZjIxLi41OWJmMjQyNzU4OGYxMTBhMjEyYmZkM2I2
OWZkNmZlMjJjYmEzMWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL0FSTXY3QXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9BUk12N0Fzc2VtYmxlci5oCkBAIC02NTQsNiArNjU0LDggQEAgcHJpdmF0ZToKICAgICB0eXBl
ZGVmIGVudW0gewogICAgICAgICBPUF9CX1QxICAgICAgICAgPSAweEQwMDAsCiAgICAgICAgIE9Q
X0JfVDIgICAgICAgICA9IDB4RTAwMCwKKyAgICAgICAgT1BfUE9QX1QyICAgICAgID0gMHhFOEJE
LAorICAgICAgICBPUF9QVVNIX1QyICAgICAgPSAweEU5MkQsCiAgICAgICAgIE9QX0FORF9yZWdf
VDIgICA9IDB4RUEwMCwKICAgICAgICAgT1BfVFNUX3JlZ19UMiAgID0gMHhFQTEwLAogICAgICAg
ICBPUF9PUlJfcmVnX1QyICAgPSAweEVBNDAsCkBAIC04OTQsNiArODk2LDExIEBAIHB1YmxpYzoK
ICAgICAvLyBOT1RFOiBJbiBhbiBJVCBibG9jaywgYWRkIGRvZXNuJ3QgbW9kaWZ5IHRoZSBmbGFn
cyByZWdpc3Rlci4KICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgYWRkKFJlZ2lzdGVySUQgcmQsIFJl
Z2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgeworICAgICAgICBpZiAocmQgPT0gQVJN
UmVnaXN0ZXJzOjpzcCkgeworICAgICAgICAgICAgbW92KHJkLCBybik7CisgICAgICAgICAgICBy
biA9IHJkOworICAgICAgICB9CisKICAgICAgICAgaWYgKHJkID09IHJuKQogICAgICAgICAgICAg
bV9mb3JtYXR0ZXIub25lV29yZE9wOFJlZ1JlZzE0MyhPUF9BRERfcmVnX1QyLCBybSwgcmQpOwog
ICAgICAgICBlbHNlIGlmIChyZCA9PSBybSkKQEAgLTE0ODgsNiArMTQ5NSwyMiBAQCBwdWJsaWM6
CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3b1dvcmRPcDEyUmVnNEZvdXJGb3VycyhPUF9ST1JfcmVn
X1QyLCBybiwgRm91ckZvdXJzKDB4ZiwgcmQsIDAsIHJtKSk7CiAgICAgfQogCisgICAgQUxXQVlT
X0lOTElORSB2b2lkIHBvcCh1aW50MzJfdCByZWdpc3Rlckxpc3QpCisgICAgeworICAgICAgICBB
U1NFUlQoV1RGOjpiaXRDb3VudChyZWdpc3Rlckxpc3QpID4gMSk7CisgICAgICAgIEFTU0VSVCgh
KCgxIDw8IEFSTVJlZ2lzdGVyczo6cGMpICYgcmVnaXN0ZXJMaXN0KSB8fCAhKCgxIDw8IEFSTVJl
Z2lzdGVyczo6bHIpICYgcmVnaXN0ZXJMaXN0KSk7CisgICAgICAgIEFTU0VSVCghKCgxIDw8IEFS
TVJlZ2lzdGVyczo6c3ApICYgcmVnaXN0ZXJMaXN0KSk7CisgICAgICAgIG1fZm9ybWF0dGVyLnR3
b1dvcmRPcDE2SW1tMTYoT1BfUE9QX1QyLCByZWdpc3Rlckxpc3QpOworICAgIH0KKworICAgIEFM
V0FZU19JTkxJTkUgdm9pZCBwdXNoKHVpbnQzMl90IHJlZ2lzdGVyTGlzdCkKKyAgICB7CisgICAg
ICAgIEFTU0VSVChXVEY6OmJpdENvdW50KHJlZ2lzdGVyTGlzdCkgPiAxKTsKKyAgICAgICAgQVNT
RVJUKCEoKDEgPDwgQVJNUmVnaXN0ZXJzOjpwYykgJiByZWdpc3Rlckxpc3QpKTsKKyAgICAgICAg
QVNTRVJUKCEoKDEgPDwgQVJNUmVnaXN0ZXJzOjpzcCkgJiByZWdpc3Rlckxpc3QpKTsKKyAgICAg
ICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTZJbW0xNihPUF9QVVNIX1QyLCByZWdpc3Rlckxpc3Qp
OworICAgIH0KKwogI2lmIENQVShBUFBMRV9BUk1WN1MpCiAgICAgQUxXQVlTX0lOTElORSB2b2lk
IHNkaXYoUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0ZXJJRCBybSkKICAgICB7
CkBAIC0yNzkxLDYgKzI4MTQsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1fYnVmZmVyLnB1
dFNob3J0KG9wMik7CiAgICAgICAgIH0KIAorICAgICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgdHdv
V29yZE9wMTZJbW0xNihPcGNvZGVJRDEgb3AxLCB1aW50MTZfdCBpbW0pCisgICAgICAgIHsKKyAg
ICAgICAgICAgIG1fYnVmZmVyLnB1dFNob3J0KG9wMSk7CisgICAgICAgICAgICBtX2J1ZmZlci5w
dXRTaG9ydChpbW0pOworICAgICAgICB9CisgICAgICAgIAogICAgICAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgdHdvV29yZE9wNWk2SW1tNFJlZzRFbmNvZGVkSW1tKE9wY29kZUlEMSBvcCwgaW50IGlt
bTQsIFJlZ2lzdGVySUQgcmQsIEFSTVRodW1iSW1tZWRpYXRlIGltbSkKICAgICAgICAgewogICAg
ICAgICAgICAgQVJNVGh1bWJJbW1lZGlhdGUgbmV3SW1tID0gaW1tOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaApp
bmRleCAyODUzNzIwMWIzOWViMjMxZjUwNDg3NjM3N2I2NmRiM2FjM2VlMjgwLi43ZDdlZTc5MWE2
YzNlMTg1ZDYxOTJjNmUxM2NlMjY3YzM2YWQ5NWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaApAQCAtMTQw
LDcgKzE0MCw3IEBAIHB1YmxpYzoKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIEFkZHJl
c3MoYmFzZSwgb2Zmc2V0ICsgYWRkaXRpb25hbE9mZnNldCk7CiAgICAgICAgIH0KLQorICAgICAg
ICAKICAgICAgICAgUmVnaXN0ZXJJRCBiYXNlOwogICAgICAgICBpbnQzMl90IG9mZnNldDsKICAg
ICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVm
ZmVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAK
aW5kZXggYTdmNDY5ZGE4OTJmZjRkMzFkNDZkYTQ3NTJjOWIxYzI3YTBhZjNmMC4uYWYxNGUzM2Vh
YzA1OTdmMmQ3OGM0YjNjZDE2MzU0MTFkYWJhOTY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwxMiArMjgsMjEg
QEAKIAogI2lmIEVOQUJMRShBU1NFTUJMRVIpCiAKKyNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNp
bmNsdWRlICJKSVRDb2RlLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgi
CiAjaW5jbHVkZSA8d3RmL0NvbXBpbGF0aW9uVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBKU0Mgewog
Citib29sIHNob3VsZFNob3dEaXNhc3NlbWJseUZvcihDb2RlQmxvY2sqIGNvZGVCbG9jaykKK3sK
KyAgICBpZiAoSklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKGNvZGVCbG9jay0+aml0VHlwZSgpKSAm
JiBPcHRpb25zOjpzaG93REZHRGlzYXNzZW1ibHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgcmV0dXJuIE9wdGlvbnM6OnNob3dEaXNhc3NlbWJseSgpOworfQorCiBMaW5rQnVmZmVyOjpD
b2RlUmVmIExpbmtCdWZmZXI6OmZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJseSgpCiB7CiAg
ICAgcGVyZm9ybUZpbmFsaXphdGlvbigpOwpAQCAtNDcsOCArNTYsNiBAQCBMaW5rQnVmZmVyOjpD
b2RlUmVmIExpbmtCdWZmZXI6OmZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJseSgpCiAKIExp
bmtCdWZmZXI6OkNvZGVSZWYgTGlua0J1ZmZlcjo6ZmluYWxpemVDb2RlV2l0aERpc2Fzc2VtYmx5
KGNvbnN0IGNoYXIqIGZvcm1hdCwgLi4uKQogewotICAgIEFTU0VSVChPcHRpb25zOjpzaG93RGlz
YXNzZW1ibHkoKSB8fCBPcHRpb25zOjpzaG93REZHRGlzYXNzZW1ibHkoKSk7Ci0gICAgCiAgICAg
Q29kZVJlZiByZXN1bHQgPSBmaW5hbGl6ZUNvZGVXaXRob3V0RGlzYXNzZW1ibHkoKTsKIAogI2lm
IEVOQUJMRShESVNBU1NFTUJMRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL0xpbmtCdWZmZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TGlua0J1ZmZlci5oCmluZGV4IDhkNGNlNTIxZjI4NGU1ZGUzNDY5Y2VkODk2NGM5ZWNjMDhlZjM1
NzYuLjZhYmEwNzU4MmE0YzJmMjM0ZGY3OWUxM2YyNGM1M2NhNzE3ZmNhNzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAsIDIwMTIsIDIw
MTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC00Myw2ICs0Myw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitj
bGFzcyBDb2RlQmxvY2s7CiBjbGFzcyBWTTsKIAogLy8gTGlua0J1ZmZlcjoKQEAgLTE2NCw2ICsx
NjUsMTEgQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIHVzZWQg
dG8gb2J0YWluIGhhbmRsZXMgdG8gYWxsb3cgdGhlIGNvZGUgdG8gYmUgcmVsaW5rZWQgLyByZXBh
dGNoZWQgbGF0ZXIuCisgICAgCisgICAgQ29kZUxvY2F0aW9uTGFiZWwgZW50cnlwb2ludCgpCisg
ICAgeworICAgICAgICByZXR1cm4gQ29kZUxvY2F0aW9uTGFiZWwoY29kZSgpKTsKKyAgICB9CiAK
ICAgICBDb2RlTG9jYXRpb25DYWxsIGxvY2F0aW9uT2YoQ2FsbCBjYWxsKQogICAgIHsKQEAgLTMw
Myw2ICszMDksMTEgQEAgcHJpdmF0ZToKICAgICAgPyAoKGxpbmtCdWZmZXJSZWZlcmVuY2UpLmZp
bmFsaXplQ29kZVdpdGhEaXNhc3NlbWJseSBkYXRhTG9nRkFyZ3VtZW50c0ZvckhlYWRpbmcpIFwK
ICAgICAgOiAobGlua0J1ZmZlclJlZmVyZW5jZSkuZmluYWxpemVDb2RlV2l0aG91dERpc2Fzc2Vt
Ymx5KCkpCiAKK2Jvb2wgc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5Rm9yKENvZGVCbG9jayogY29kZUJs
b2NrKTsKKworI2RlZmluZSBGSU5BTElaRV9DT0RFX0ZPUihjb2RlQmxvY2ssIGxpbmtCdWZmZXJS
ZWZlcmVuY2UsIGRhdGFMb2dGQXJndW1lbnRzRm9ySGVhZGluZykgIFwKKyAgICBGSU5BTElaRV9D
T0RFX0lGKHNob3VsZFNob3dEaXNhc3NlbWJseUZvcihjb2RlQmxvY2spLCBsaW5rQnVmZmVyUmVm
ZXJlbmNlLCBkYXRhTG9nRkFyZ3VtZW50c0ZvckhlYWRpbmcpCisKIC8vIFVzZSB0aGlzIHRvIGZp
bmFsaXplIGNvZGUsIGxpa2Ugc286CiAvLwogLy8gQ29kZVJlZiBjb2RlID0gRklOQUxJWkVfQ09E
RShsaW5rQnVmZmVyLCAoIm15IHN1cGVyIHRoaW5neSBudW1iZXIgJWQiLCBudW1iZXIpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAppbmRl
eCA0YTQzZWI2MjVjZGMzOGUxZTE3Y2JiNjc0NzFjYzg5YmIyZDY4MTEwLi41ZWU1MjU1NzliN2Yw
MDg0YzViNTI1MmNiMDEzN2QzMzg0ZWJmNzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCkBAIC01OTUsNiArNTk1LDExIEBAIHB1Ymxp
YzoKICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoaW1tKSwgYWRkcmVzcyk7CiAgICAgfQog
CisgICAgdm9pZCBzdG9yZVB0cihUcnVzdGVkSW1tMzIgaW1tLCBJbXBsaWNpdEFkZHJlc3MgYWRk
cmVzcykKKyAgICB7CisgICAgICAgIHN0b3JlMzIoaW1tLCBhZGRyZXNzKTsKKyAgICB9CisKICAg
ICB2b2lkIHN0b3JlUHRyKFRydXN0ZWRJbW1QdHIgaW1tLCBCYXNlSW5kZXggYWRkcmVzcykKICAg
ICB7CiAgICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGltbSksIGFkZHJlc3MpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQu
aAppbmRleCAzMGFhZWU2NjFmNjEwOGZjM2M4ODk0YWRlZWM4NTc1NTVkNDg1NzdiLi40Mjg1N2I0
NDFkYWU3YzY5ODcxMGQzNTg5MTI3ZmJiNTA2YjZhY2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApAQCAtMjAxLDcg
KzIwMSwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZDY0KFJlZ2lzdGVySUQgc3JjLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KGRlc3QsIGRl
c3QsIHNyYyk7CisgICAgICAgIGlmIChzcmMgPT0gQVJNNjRSZWdpc3RlcnM6OnNwKQorICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuYWRkPDY0PihkZXN0LCBzcmMsIGRlc3QpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KGRlc3QsIGRlc3QsIHNyYyk7CiAgICAg
fQogCiAgICAgdm9pZCBhZGQ2NChUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCkBA
IC0xNDM3LDYgKzE0NDAsMTYgQEAgcHVibGljOgogICAgICAgICBDUkFTSCgpOwogICAgIH0KIAor
ICAgIHZvaWQgcG9wUGFpcihSZWdpc3RlcklEIGRlc3QxLCBSZWdpc3RlcklEIGRlc3QyKQorICAg
IHsKKyAgICAgICAgbV9hc3NlbWJsZXIubGRwPDY0PihkZXN0MSwgZGVzdDIsIEFSTTY0UmVnaXN0
ZXJzOjpzcCwgUGFpclBvc3RJbmRleCgxNikpOworICAgIH0KKworICAgIHZvaWQgcHVzaFBhaXIo
UmVnaXN0ZXJJRCBzcmMxLCBSZWdpc3RlcklEIHNyYzIpCisgICAgeworICAgICAgICBtX2Fzc2Vt
Ymxlci5zdHA8NjQ+KHNyYzEsIHNyYzIsIEFSTTY0UmVnaXN0ZXJzOjpzcCwgUGFpclByZUluZGV4
KC0xNikpOworICAgIH0KKwogICAgIHZvaWQgcG9wVG9SZXN0b3JlKFJlZ2lzdGVySUQgZGVzdCkK
ICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkcjw2ND4oZGVzdCwgQVJNNjRSZWdpc3RlcnM6
OnNwLCBQb3N0SW5kZXgoMTYpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKaW5kZXggMWE5ZTIyYmM4OWVhMzI3YTA1Zjhj
ZDRlOWRkMWZlY2MwYTYyMmQzNC4uOWU2NGRiZDcyMzViZmQ0MDFmOGM4ZmQ0M2ViZDE5NzU1ZWNi
ZTNjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTXY3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTXY3LmgKQEAgLTE3MCw2ICsxNzAsMTQgQEAgcHVibGljOgogICAgIHZvaWQg
YWRkMzIoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkK
ICAgICB7CiAgICAgICAgIEFSTVRodW1iSW1tZWRpYXRlIGFybUltbSA9IEFSTVRodW1iSW1tZWRp
YXRlOjptYWtlVUludDEyT3JFbmNvZGVkSW1tKGltbS5tX3ZhbHVlKTsKKworICAgICAgICAvLyBG
b3IgYWRkcyB3aXRoIHN0YWNrIHBvaW50ZXIgZGVzdGluYXRpb24sIG1vdmluZyB0aGUgc3JjIGZp
cnN0IHRvIHNwIGlzCisgICAgICAgIC8vIG5lZWRlZCB0byBhdm9pZCB1bnByZWRpY3RhYmxlIGlu
c3RydWN0aW9uCisgICAgICAgIGlmIChkZXN0ID09IEFSTVJlZ2lzdGVyczo6c3AgJiYgc3JjICE9
IGRlc3QpIHsKKyAgICAgICAgICAgIG1vdmUoc3JjLCBBUk1SZWdpc3RlcnM6OnNwKTsKKyAgICAg
ICAgICAgIHNyYyA9IEFSTVJlZ2lzdGVyczo6c3A7CisgICAgICAgIH0KKwogICAgICAgICBpZiAo
YXJtSW1tLmlzVmFsaWQoKSkKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFkZChkZXN0LCBzcmMs
IGFybUltbSk7CiAgICAgICAgIGVsc2UgewpAQCAtMTE2MCw2ICsxMTY4LDE2IEBAIHB1YmxpYzoK
ICAgICAgICAgcHVzaChkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICB9CiAKKyAgICB2b2lkIHBvcFBh
aXIoUmVnaXN0ZXJJRCBkZXN0MSwgUmVnaXN0ZXJJRCBkZXN0MikKKyAgICB7CisgICAgICAgIG1f
YXNzZW1ibGVyLnBvcCgxIDw8IGRlc3QxIHwgMSA8PCBkZXN0Mik7CisgICAgfQorICAgIAorICAg
IHZvaWQgcHVzaFBhaXIoUmVnaXN0ZXJJRCBzcmMxLCBSZWdpc3RlcklEIHNyYzIpCisgICAgewor
ICAgICAgICBtX2Fzc2VtYmxlci5wdXNoKDEgPDwgc3JjMSB8IDEgPDwgc3JjMik7CisgICAgfQor
ICAgIAogICAgIC8vIFJlZ2lzdGVyIG1vdmUgb3BlcmF0aW9uczoKICAgICAvLwogICAgIC8vIE1v
dmUgdmFsdWVzIGluIHJlZ2lzdGVycy4KQEAgLTEyODEsMTEgKzEyOTksMTkgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRzdChyZWcsIHJlZyk7CiAgICAgICAgIGVsc2Ugewog
ICAgICAgICAgICAgQVJNVGh1bWJJbW1lZGlhdGUgYXJtSW1tID0gQVJNVGh1bWJJbW1lZGlhdGU6
Om1ha2VFbmNvZGVkSW1tKGltbSk7Ci0gICAgICAgICAgICBpZiAoYXJtSW1tLmlzVmFsaWQoKSkK
LSAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci50c3QocmVnLCBhcm1JbW0pOwotICAgICAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoYXJtSW1tLmlzVmFsaWQoKSkgeworICAgICAgICAg
ICAgICAgIGlmIChyZWcgPT0gQVJNUmVnaXN0ZXJzOjpzcCkgeworICAgICAgICAgICAgICAgICAg
ICBtb3ZlKHJlZywgYWRkcmVzc1RlbXBSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgICAgIG1f
YXNzZW1ibGVyLnRzdChhZGRyZXNzVGVtcFJlZ2lzdGVyLCBhcm1JbW0pOworICAgICAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci50c3QocmVnLCBhcm1J
bW0pOworICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBtb3ZlKG1hc2ssIGRh
dGFUZW1wUmVnaXN0ZXIpOwotICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRzdChyZWcsIGRh
dGFUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgIGlmIChyZWcgPT0gQVJNUmVnaXN0ZXJz
OjpzcCkgeworICAgICAgICAgICAgICAgICAgICBtb3ZlKHJlZywgYWRkcmVzc1RlbXBSZWdpc3Rl
cik7CisgICAgICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRzdChhZGRyZXNzVGVtcFJlZ2lz
dGVyLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgbV9hc3NlbWJsZXIudHN0KHJlZywgZGF0YVRlbXBSZWdpc3Rlcik7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAppbmRleCA1ZjhiYThhOTJk
Mzc4MGM5NTc0MzU4MzAxN2I4Y2EwMmI2YjI5OTlmLi4yOGZjMTlkMjEzN2RhMDJlMzZjNzQxOWQ2
ZjhlYjE2MDA2ZTU4NGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgKQEAgLTI1NCw2ICsyNTQsMTEgQEAgcHVi
bGljOgogICAgIH0KIAogICAgIHZvaWQqIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsg
fQorICAgIAorICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAorICAgIHsKKyAg
ICAgICAgb3V0LnByaW50KFJhd1BvaW50ZXIobV92YWx1ZSkpOworICAgIH0KIAogcHJpdmF0ZToK
ICAgICB2b2lkKiBtX3ZhbHVlOwpAQCAtMzA5LDkgKzMxNCwxMCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCogZGF0YUxvY2F0aW9uKCkgY29uc3QgeyBBU1NFUlRfVkFMSURfQ09ERV9QT0lOVEVSKG1fdmFs
dWUpOyByZXR1cm4gbV92YWx1ZTsgfQogI2VuZGlmCiAKLSAgICBib29sIG9wZXJhdG9yISgpIGNv
bnN0CisgICAgdHlwZWRlZiB2b2lkKiAoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjoqVW5zcGVjaWZp
ZWRCb29sVHlwZSk7CisgICAgb3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSooKSBjb25zdAog
ICAgIHsKLSAgICAgICAgcmV0dXJuICFtX3ZhbHVlOworICAgICAgICByZXR1cm4gISFtX3ZhbHVl
ID8gcmVpbnRlcnByZXRfY2FzdDxVbnNwZWNpZmllZEJvb2xUeXBlKj4oMSkgOiAwOwogICAgIH0K
ICAgICAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyJiBv
dGhlcikgY29uc3QKQEAgLTQzNCw3ICs0NDAsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
SlNDOjp0cnlUb0Rpc2Fzc2VtYmxlKG1fY29kZVB0ciwgc2l6ZSgpLCBwcmVmaXgsIFdURjo6ZGF0
YUZpbGUoKSk7CiAgICAgfQogICAgIAotICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QgeyByZXR1
cm4gIW1fY29kZVB0cjsgfQorICAgIHR5cGVkZWYgdm9pZCogKE1hY3JvQXNzZW1ibGVyQ29kZVJl
Zjo6KlVuc3BlY2lmaWVkQm9vbFR5cGUpOworICAgIG9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5
cGUqKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAhIW1fY29kZVB0ciA/IHJlaW50ZXJw
cmV0X2Nhc3Q8VW5zcGVjaWZpZWRCb29sVHlwZSo+KDEpIDogMDsKKyAgICB9CiAgICAgCiAgICAg
dm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2Fs
bC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmM2ZkN2QwMGM4ZWI3ZmZlZTM1NzNhYjA5YjYxODQ4
Y2Q5NDhkYWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgKQEAgLTAsMCArMSw4NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIE1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsX2gKKyNkZWZpbmUgTWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGxfaAorCisjaW5jbHVkZSAiSlNTdGFjay5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyLmgi
CisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5o
PgorCituYW1lc3BhY2UgSlNDIHsKKworLy8gVGhlIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsIGlzIHRoZSBtYXggYW1vdW50IG9mIHN0YWNrIHNwYWNlIChpbiBieXRlcykKKy8vIHRoYXQg
Y2FuIGJlIHVzZWQgZm9yIG91dGdvaW5nIGFyZ3Mgd2hlbiBjYWxsaW5nIGEgc2xvdyBwYXRoIEMg
ZnVuY3Rpb24KKy8vIGZyb20gSlMgY29kZS4KKworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCitz
dGF0aWMgY29uc3Qgc2l6ZV90IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gMDsKKwor
I2VsaWYgQ1BVKFg4Nl82NCkgJiYgT1MoV0lORE9XUykKKy8vIDQgYXJncyBpbiByZWdpc3RlcnMs
IGJ1dCBzdGFjayBzcGFjZSBuZWVkcyB0byBiZSBhbGxvY2F0ZWQgZm9yIGFsbCBhcmdzLgorc3Rh
dGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDY0OworCisj
ZWxpZiBDUFUoWDg2XzY0KQorLy8gQWxsIGFyZ3MgaW4gcmVnaXN0ZXJzLgorc3RhdGljIGNvbnN0
IHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDA7CisKKyNlbGlmIENQVShY
ODYpCisvLyA3IGFyZ3Mgb24gc3RhY2sgKDI4IGJ5dGVzKS4KK3N0YXRpYyBjb25zdCBzaXplX3Qg
bWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSA0MDsKKworI2VsaWYgQ1BVKEFSTTY0KQor
Ly8gQWxsIGFyZ3MgaW4gcmVnaXN0ZXJzLgorc3RhdGljIGNvbnN0IHNpemVfdCBtYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbCA9IDA7CisKKyNlbGlmIENQVShBUk0pCisvLyBGaXJzdCBmb3Vy
IGFyZ3MgaW4gcmVnaXN0ZXJzLCByZW1haW5pbmcgNCBhcmdzIG9uIHN0YWNrLgorc3RhdGljIGNv
bnN0IHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDI0OworCisjZWxpZiBD
UFUoU0g0KQorLy8gRmlyc3QgZm91ciBhcmdzIGluIHJlZ2lzdGVycywgcmVtYWluaW5nIDQgYXJn
cyBvbiBzdGFjay4KK3N0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwgPSAyNDsKKworI2VsaWYgQ1BVKE1JUFMpCisvLyBUaG91Z2ggYXJncyBhcmUgaW4gcmVn
aXN0ZXJzLCB0aGVyZSBuZWVkIHRvIGJlIHNwYWNlIG9uIHRoZSBzdGFjayBmb3IgYWxsIGFyZ3Mu
CitzdGF0aWMgY29uc3Qgc2l6ZV90IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gNDA7
CisKKyNlbHNlCisjZXJyb3IgIlVuc3VwcG9ydGVkIENQVTogbmVlZCB2YWx1ZSBmb3IgbWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGwiCisKKyNlbmRpZgorCitDT01QSUxFX0FTU0VSVCghKG1h
eEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsICUgc2l6ZW9mKFJlZ2lzdGVyKSksIGV4dGVudF9t
dXN0X2JlX2luX211bHRpcGxlc19vZl9yZWdpc3RlcnMpOworLy8gTWFrZSBzdXJlIHRoYXQgY2Zy
IC0gbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgYnl0ZXMgd2lsbCBtYWtlIHRoZSBzdGFj
ayBwb2ludGVyIGFsaWduZWQKK0NPTVBJTEVfQVNTRVJUKChtYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbCAlIDE2KSA9PSAxNiAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSwgZXh0ZW50X211
c3RfYWxpZ25fc3RhY2tfZnJvbV9jYWxsZnJhbWVfcG9pbnRlcik7CisKK3N0YXRpYyBjb25zdCBz
aXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGxJblJlZ2lzdGVycyA9IG1heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsIC8gc2l6ZW9mKFJlZ2lzdGVyKTsKKworfSAvLyBuYW1lc3Bh
Y2UgSlNDCisKKyNlbmRpZiAvLyBNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbF9oCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKaW5kZXgg
YTRiYWE2MTAwODUyMjM2NmQ5NGNjODM2OTg3MWE1ZmI4YzViMjc2Ni4uNmE2MDA1NzZhMDAwYWRh
YzhhZjIxNGU5ODgxMzY0NjE5ZjI5YTAxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDE1ICszNywxNSBAQCB2b2lkIENhbGxMaW5r
SW5mbzo6dW5saW5rKFZNJiB2bSwgUmVwYXRjaEJ1ZmZlciYgcmVwYXRjaEJ1ZmZlcikKIHsKICAg
ICBBU1NFUlQoaXNMaW5rZWQoKSk7CiAgICAgCisgICAgaWYgKE9wdGlvbnM6OnNob3dEaXNhc3Nl
bWJseSgpKQorICAgICAgICBkYXRhTG9nKCJVbmxpbmtpbmcgY2FsbCBmcm9tICIsIGNhbGxSZXR1
cm5Mb2NhdGlvbiwgIiB0byAiLCBwb2ludGVyRHVtcChyZXBhdGNoQnVmZmVyLmNvZGVCbG9jaygp
KSwgIlxuIik7CisKICAgICByZXBhdGNoQnVmZmVyLnJldmVydEp1bXBSZXBsYWNlbWVudFRvQnJh
bmNoUHRyV2l0aFBhdGNoKFJlcGF0Y2hCdWZmZXI6OnN0YXJ0T2ZCcmFuY2hQdHJXaXRoUGF0Y2hP
blJlZ2lzdGVyKGhvdFBhdGhCZWdpbiksIHN0YXRpY19jYXN0PE1hY3JvQXNzZW1ibGVyOjpSZWdp
c3RlcklEPihjYWxsZWVHUFIpLCAwKTsKLSAgICBpZiAoaXNERkcpIHsKLSNpZiBFTkFCTEUoREZH
X0pJVCkKLSAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbFJldHVybkxvY2F0aW9uLCAo
Y2FsbFR5cGUgPT0gQ29uc3RydWN0ID8gdm0uZ2V0Q1RJU3R1YihsaW5rQ29uc3RydWN0VGh1bmtH
ZW5lcmF0b3IpIDogdm0uZ2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKSkuY29kZSgp
KTsKLSNlbHNlCi0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0jZW5kaWYK
LSAgICB9IGVsc2UKLSAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbFJldHVybkxvY2F0
aW9uLCBjYWxsVHlwZSA9PSBDb25zdHJ1Y3QgPyB2bS5nZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RU
aHVua0dlbmVyYXRvcikuY29kZSgpIDogdm0uZ2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2VuZXJh
dG9yKS5jb2RlKCkpOworICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKAorICAgICAgICBjYWxsUmV0
dXJuTG9jYXRpb24sCisgICAgICAgIHZtLmdldENUSVN0dWIobGlua1RodW5rR2VuZXJhdG9yRm9y
KAorICAgICAgICAgICAgY2FsbFR5cGUgPT0gQ29uc3RydWN0ID8gQ29kZUZvckNvbnN0cnVjdCA6
IENvZGVGb3JDYWxsLAorICAgICAgICAgICAgaXNGVEwgPyBNdXN0UHJlc2VydmVSZWdpc3RlcnMg
OiBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKSkuY29kZSgpKTsKICAgICBoYXNTZWVu
U2hvdWxkUmVwYXRjaCA9IGZhbHNlOwogICAgIGNhbGxlZS5jbGVhcigpOwogICAgIHN0dWIuY2xl
YXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlu
a0luZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaApp
bmRleCAwMjQ0NDk3ZGY0YzA1ZDEyNzM3ODFjNmY0ZWViZGM2MWZhZmZjZDQxLi5kNDM0ZTczNWQ4
ZWMyM2NiMDM5YjEzMDBjOTQwMTk1YzM1MTRiMWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCkBAIC01NSw4ICs1NSw4IEBAIHN0cnVjdCBDYWxs
TGlua0luZm8gOiBwdWJsaWMgQmFzaWNSYXdTZW50aW5lbE5vZGU8Q2FsbExpbmtJbmZvPiB7CiAg
ICAgfQogICAgICAgICAKICAgICBDYWxsTGlua0luZm8oKQotICAgICAgICA6IGhhc1NlZW5TaG91
bGRSZXBhdGNoKGZhbHNlKQotICAgICAgICAsIGlzREZHKGZhbHNlKQorICAgICAgICA6IGlzRlRM
KGZhbHNlKQorICAgICAgICAsIGhhc1NlZW5TaG91bGRSZXBhdGNoKGZhbHNlKQogICAgICAgICAs
IGhhc1NlZW5DbG9zdXJlKGZhbHNlKQogICAgICAgICAsIGNhbGxUeXBlKE5vbmUpCiAgICAgewpA
QCAtNzksOCArNzksOCBAQCBzdHJ1Y3QgQ2FsbExpbmtJbmZvIDogcHVibGljIEJhc2ljUmF3U2Vu
dGluZWxOb2RlPENhbGxMaW5rSW5mbz4gewogICAgIEpJVFdyaXRlQmFycmllcjxKU0Z1bmN0aW9u
PiBjYWxsZWU7CiAgICAgV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IGxhc3RTZWVuQ2FsbGVlOwog
ICAgIFJlZlB0cjxDbG9zdXJlQ2FsbFN0dWJSb3V0aW5lPiBzdHViOworICAgIGJvb2wgaXNGVEwg
OiAxOwogICAgIGJvb2wgaGFzU2VlblNob3VsZFJlcGF0Y2ggOiAxOwotICAgIGJvb2wgaXNERkcg
OiAxOwogICAgIGJvb2wgaGFzU2VlbkNsb3N1cmUgOiAxOwogICAgIHVuc2lnbmVkIGNhbGxUeXBl
IDogNTsgLy8gQ2FsbFR5cGUKICAgICB1bnNpZ25lZCBjYWxsZWVHUFIgOiA4OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAKaW5kZXggYjY0
Yzk2N2U5MjllZTcxNDg4NTMyODQ3ZDljNzljOGYzMTE4NWZkMi4uYTQyNmM4NzQwN2ZmMjdiNGMz
MzcyODVlMWRiNmUwYTE0ZjYxNGE3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxMyArMjYsMTcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDYWxsTGlua1N0YXR1cy5oIgogCisjaW5j
bHVkZSAiQ2FsbExpbmtJbmZvLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAi
REZHSklUQ29kZS5oIgogI2luY2x1ZGUgIkxMSW50Q2FsbExpbmtJbmZvLmgiCiAjaW5jbHVkZSAi
T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KIAogbmFtZXNwYWNl
IEpTQyB7CiAKK3N0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKwogQ2FsbExpbmtT
dGF0dXM6OkNhbGxMaW5rU3RhdHVzKEpTVmFsdWUgdmFsdWUpCiAgICAgOiBtX2NhbGxUYXJnZXQo
dmFsdWUpCiAgICAgLCBtX2V4ZWN1dGFibGUoMCkKQEAgLTgxLDEyICs4NSwyNCBAQCBJbnRyaW5z
aWMgQ2FsbExpbmtTdGF0dXM6OmludHJpbnNpY0ZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtp
bmQpIGNvbnN0CiAgICAgcmV0dXJuIG1fZXhlY3V0YWJsZS0+aW50cmluc2ljRm9yKGtpbmQpOwog
fQogCi1DYWxsTGlua1N0YXR1cyBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZyb21MTEludChDb2Rl
QmxvY2sqIHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgpCitDYWxsTGlua1N0
YXR1cyBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZyb21MTEludChjb25zdCBDb25jdXJyZW50SklU
TG9ja2VyJiBsb2NrZXIsIENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgdW5zaWduZWQgYnl0ZWNv
ZGVJbmRleCkKIHsKICAgICBVTlVTRURfUEFSQU0ocHJvZmlsZWRCbG9jayk7CiAgICAgVU5VU0VE
X1BBUkFNKGJ5dGVjb2RlSW5kZXgpOwogI2lmIEVOQUJMRShMTElOVCkKKyAgICBpZiAocHJvZmls
ZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNv
ZGVJbmRleCwgQmFkRnVuY3Rpb24pKSkgeworICAgICAgICAvLyBXZSBjb3VsZCBmb3JjZSB0aGlz
IHRvIGJlIGEgY2xvc3VyZSBjYWxsLCBidXQgaW5zdGVhZCB3ZSdsbCBqdXN0IGFzc3VtZSB0aGF0
IGl0CisgICAgICAgIC8vIHRha2VzIHNsb3cgcGF0aC4KKyAgICAgICAgcmV0dXJuIHRha2VzU2xv
d1BhdGgoKTsKKyAgICB9CisgICAgCisgICAgVk0mIHZtID0gKnByb2ZpbGVkQmxvY2stPnZtKCk7
CisgICAgCiAgICAgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uID0gcHJvZmlsZWRCbG9jay0+aW5z
dHJ1Y3Rpb25zKCkuYmVnaW4oKSArIGJ5dGVjb2RlSW5kZXg7CisgICAgT3Bjb2RlSUQgb3AgPSB2
bS5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQoaW5zdHJ1Y3Rpb25bMF0udS5vcGNvZGUpOworICAg
IGlmIChvcCAhPSBvcF9jYWxsICYmIG9wICE9IG9wX2NvbnN0cnVjdCkKKyAgICAgICAgcmV0dXJu
IENhbGxMaW5rU3RhdHVzKCk7CisgICAgCiAgICAgTExJbnRDYWxsTGlua0luZm8qIGNhbGxMaW5r
SW5mbyA9IGluc3RydWN0aW9uWzVdLnUuY2FsbExpbmtJbmZvOwogICAgIAogICAgIHJldHVybiBD
YWxsTGlua1N0YXR1cyhjYWxsTGlua0luZm8tPmxhc3RTZWVuQ2FsbGVlLmdldCgpKTsKQEAgLTEw
MiwyNyArMTE4LDExNyBAQCBDYWxsTGlua1N0YXR1cyBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZv
cihDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVkIGJ5dAogICAgIFVOVVNFRF9QQVJB
TShwcm9maWxlZEJsb2NrKTsKICAgICBVTlVTRURfUEFSQU0oYnl0ZWNvZGVJbmRleCk7CiAjaWYg
RU5BQkxFKEpJVCkKKyAgICBpZiAocHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBE
Rkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkQ2FjaGUpKQorICAgICAgICB8
fCBwcm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0
ZShieXRlY29kZUluZGV4LCBCYWRDYWNoZVdhdGNocG9pbnQpKQorICAgICAgICB8fCBwcm9maWxl
ZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29k
ZUluZGV4LCBCYWRFeGVjdXRhYmxlKSkpCisgICAgICAgIHJldHVybiB0YWtlc1Nsb3dQYXRoKCk7
CisgICAgCiAgICAgaWYgKCFwcm9maWxlZEJsb2NrLT5oYXNCYXNlbGluZUpJVFByb2ZpbGluZygp
KQotICAgICAgICByZXR1cm4gY29tcHV0ZUZyb21MTEludChwcm9maWxlZEJsb2NrLCBieXRlY29k
ZUluZGV4KTsKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQobG9ja2VyLCBwcm9maWxl
ZEJsb2NrLCBieXRlY29kZUluZGV4KTsKICAgICAKICAgICBpZiAocHJvZmlsZWRCbG9jay0+Y291
bGRUYWtlU2xvd0Nhc2UoYnl0ZWNvZGVJbmRleCkpCi0gICAgICAgIHJldHVybiBDYWxsTGlua1N0
YXR1czo6dGFrZXNTbG93UGF0aCgpOworICAgICAgICByZXR1cm4gdGFrZXNTbG93UGF0aCgpOwog
ICAgIAogICAgIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvID0gcHJvZmlsZWRCbG9jay0+Z2V0
Q2FsbExpbmtJbmZvKGJ5dGVjb2RlSW5kZXgpOworICAgIAorICAgIENhbGxMaW5rU3RhdHVzIHJl
c3VsdCA9IGNvbXB1dGVGb3IobG9ja2VyLCBjYWxsTGlua0luZm8pOworICAgIGlmICghcmVzdWx0
KQorICAgICAgICByZXR1cm4gY29tcHV0ZUZyb21MTEludChsb2NrZXIsIHByb2ZpbGVkQmxvY2ss
IGJ5dGVjb2RlSW5kZXgpOworICAgIAorICAgIGlmIChwcm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0
ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRGdW5jdGlv
bikpKQorICAgICAgICByZXN1bHQubWFrZUNsb3N1cmVDYWxsKCk7CisgICAgCisgICAgcmV0dXJu
IHJlc3VsdDsKKyNlbHNlCisgICAgcmV0dXJuIENhbGxMaW5rU3RhdHVzKCk7CisjZW5kaWYKK30K
KworQ2FsbExpbmtTdGF0dXMgQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGb3IoY29uc3QgQ29uY3Vy
cmVudEpJVExvY2tlciYsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvKQorewogICAgIGlmIChj
YWxsTGlua0luZm8uc3R1YikKICAgICAgICAgcmV0dXJuIENhbGxMaW5rU3RhdHVzKGNhbGxMaW5r
SW5mby5zdHViLT5leGVjdXRhYmxlKCksIGNhbGxMaW5rSW5mby5zdHViLT5zdHJ1Y3R1cmUoKSk7
CiAgICAgCiAgICAgSlNGdW5jdGlvbiogdGFyZ2V0ID0gY2FsbExpbmtJbmZvLmxhc3RTZWVuQ2Fs
bGVlLmdldCgpOwogICAgIGlmICghdGFyZ2V0KQotICAgICAgICByZXR1cm4gY29tcHV0ZUZyb21M
TEludChwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4KTsKKyAgICAgICAgcmV0dXJuIENhbGxM
aW5rU3RhdHVzKCk7CiAgICAgCiAgICAgaWYgKGNhbGxMaW5rSW5mby5oYXNTZWVuQ2xvc3VyZSkK
ICAgICAgICAgcmV0dXJuIENhbGxMaW5rU3RhdHVzKHRhcmdldC0+ZXhlY3V0YWJsZSgpLCB0YXJn
ZXQtPnN0cnVjdHVyZSgpKTsKIAogICAgIHJldHVybiBDYWxsTGlua1N0YXR1cyh0YXJnZXQpOwot
I2Vsc2UKLSAgICByZXR1cm4gQ2FsbExpbmtTdGF0dXMoKTsKLSNlbmRpZgorfQorCit2b2lkIENh
bGxMaW5rU3RhdHVzOjpjb21wdXRlREZHU3RhdHVzZXMoCisgICAgQ29kZUJsb2NrKiBkZmdDb2Rl
QmxvY2ssIENhbGxMaW5rU3RhdHVzOjpDb250ZXh0TWFwJiBtYXApCit7CisjaWYgRU5BQkxFKERG
R19KSVQpCisgICAgUkVMRUFTRV9BU1NFUlQoZGZnQ29kZUJsb2NrLT5qaXRUeXBlKCkgPT0gSklU
Q29kZTo6REZHSklUKTsKKyAgICBDb2RlQmxvY2sqIGJhc2VsaW5lQ29kZUJsb2NrID0gZGZnQ29k
ZUJsb2NrLT5hbHRlcm5hdGl2ZSgpOworICAgIERGRzo6SklUQ29kZSogaml0Q29kZSA9IGRmZ0Nv
ZGVCbG9jay0+aml0Q29kZSgpLT5kZmcoKTsKKyAgICBSRUxFQVNFX0FTU0VSVChkZmdDb2RlQmxv
Y2stPm51bWJlck9mQ2FsbExpbmtJbmZvcygpIDw9IGppdENvZGUtPnNsb3dQYXRoQ2FsbHMuc2l6
ZSgpKTsKKyAgICAKKyAgICBmb3IgKHNpemVfdCBpID0gZGZnQ29kZUJsb2NrLT5udW1iZXJPZkNh
bGxMaW5rSW5mb3MoKTsgaS0tOykgeworICAgICAgICBDYWxsTGlua0luZm8mIGluZm8gPSBkZmdD
b2RlQmxvY2stPmNhbGxMaW5rSW5mbyhpKTsKKyAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2lu
ID0gaW5mby5jb2RlT3JpZ2luOworICAgICAgICAKKyAgICAgICAgYm9vbCB0YWtlU2xvd1BhdGg7
CisgICAgICAgIGJvb2wgYmFkRnVuY3Rpb247CisgICAgICAgIAorICAgICAgICAvLyBDaGVjayBp
ZiB3ZSBoYWQgYWxyZWFkeSBwcmV2aW91c2x5IG1hZGUgYSB0ZXJyaWJsZSBtaXN0YWtlIGluIHRo
ZSBGVEwgZm9yIHRoaXMKKyAgICAgICAgLy8gY29kZSBvcmlnaW4uIE5vdGUgdGhhdCB0aGlzIGlz
IGFwcHJveGltYXRlIGJlY2F1c2Ugd2UgY291bGQgaGF2ZSBhIG1vbm92YXJpYW50CisgICAgICAg
IC8vIGlubGluZSBpbiB0aGUgRlRMIHRoYXQgZW5kZWQgdXAgZmFpbGluZy4gV2Ugc2hvdWxkIGZp
eCB0aGF0IGF0IHNvbWUgcG9pbnQgYnkKKyAgICAgICAgLy8gaGF2aW5nIGRhdGEgc3RydWN0dXJl
cyB0byB0cmFjayB0aGUgY29udGV4dCBvZiBmcmVxdWVudCBleGl0cy4gVGhpcyBpcyBjdXJyZW50
bHkKKyAgICAgICAgLy8gY2hhbGxlbmdpbmcgYmVjYXVzZSBpdCB3b3VsZCByZXF1aXJlIGNyZWF0
aW5nIGEgQ29kZU9yaWdpbi1iYXNlZCBkYXRhYmFzZSBpbgorICAgICAgICAvLyBiYXNlbGluZSBD
b2RlQmxvY2tzLCBidXQgdGhvc2UgQ29kZUJsb2NrcyBkb24ndCByZWFsbHkgaGF2ZSBhIHBsYWNl
IHRvIHB1dCB0aGUKKyAgICAgICAgLy8gSW5saW5lQ2FsbEZyYW1lcy4KKyAgICAgICAgQ29kZUJs
b2NrKiBjdXJyZW50QmFzZWxpbmUgPQorICAgICAgICAgICAgYmFzZWxpbmVDb2RlQmxvY2tGb3JP
cmlnaW5BbmRCYXNlbGluZUNvZGVCbG9jayhjb2RlT3JpZ2luLCBiYXNlbGluZUNvZGVCbG9jayk7
CisgICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGN1cnJl
bnRCYXNlbGluZS0+bV9sb2NrKTsKKyAgICAgICAgICAgIHRha2VTbG93UGF0aCA9CisgICAgICAg
ICAgICAgICAgY3VycmVudEJhc2VsaW5lLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVl
bnRFeGl0U2l0ZShjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlLCBFeGl0RnJvbUZU
TCkpCisgICAgICAgICAgICAgICAgfHwgY3VycmVudEJhc2VsaW5lLT5oYXNFeGl0U2l0ZShsb2Nr
ZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIEJhZENh
Y2hlV2F0Y2hwb2ludCwgRXhpdEZyb21GVEwpKQorICAgICAgICAgICAgICAgIHx8IGN1cnJlbnRC
YXNlbGluZS0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoY29kZU9y
aWdpbi5ieXRlY29kZUluZGV4LCBCYWRFeGVjdXRhYmxlLCBFeGl0RnJvbUZUTCkpOworICAgICAg
ICAgICAgYmFkRnVuY3Rpb24gPQorICAgICAgICAgICAgICAgIGN1cnJlbnRCYXNlbGluZS0+aGFz
RXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoY29kZU9yaWdpbi5ieXRlY29k
ZUluZGV4LCBCYWRGdW5jdGlvbiwgRXhpdEZyb21GVEwpKTsKKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgeworICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoZGZnQ29k
ZUJsb2NrLT5tX2xvY2spOworICAgICAgICAgICAgaWYgKHRha2VTbG93UGF0aCB8fCBqaXRDb2Rl
LT5zbG93UGF0aENhbGxzW2ldID49IE9wdGlvbnM6OmNvdWxkVGFrZVNsb3dDYXNlTWluaW11bUNv
dW50KCkpCisgICAgICAgICAgICAgICAgbWFwLmFkZChpbmZvLmNvZGVPcmlnaW4sIHRha2VzU2xv
d1BhdGgoKSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBDYWxsTGlua1N0
YXR1cyBzdGF0dXMgPSBjb21wdXRlRm9yKGxvY2tlciwgaW5mbyk7CisgICAgICAgICAgICAgICAg
aWYgKHN0YXR1cy5pc1NldCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChiYWRGdW5jdGlv
bikKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cy5tYWtlQ2xvc3VyZUNhbGwoKTsKKyAg
ICAgICAgICAgICAgICAgICAgbWFwLmFkZChpbmZvLmNvZGVPcmlnaW4sIHN0YXR1cyk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorI2VuZGlmIC8v
IEVOQUJMRShERkdfSklUKQorICAgIAorICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgIGRhdGFM
b2coIkNvbnRleHQgbWFwOlxuIik7CisgICAgICAgIENvbnRleHRNYXA6Oml0ZXJhdG9yIGl0ZXIg
PSBtYXAuYmVnaW4oKTsKKyAgICAgICAgQ29udGV4dE1hcDo6aXRlcmF0b3IgZW5kID0gbWFwLmVu
ZCgpOworICAgICAgICBmb3IgKDsgaXRlciAhPSBlbmQ7ICsraXRlcikgeworICAgICAgICAgICAg
ZGF0YUxvZygiICAgICIsIGl0ZXItPmtleSwgIjpcbiIpOworICAgICAgICAgICAgZGF0YUxvZygi
ICAgICAgICAiLCBpdGVyLT52YWx1ZSwgIlxuIik7CisgICAgICAgIH0KKyAgICB9Cit9CisKK0Nh
bGxMaW5rU3RhdHVzIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRm9yKAorICAgIENvZGVCbG9jayog
cHJvZmlsZWRCbG9jaywgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBjb25zdCBDYWxsTGlua1N0YXR1
czo6Q29udGV4dE1hcCYgbWFwKQoreworICAgIENvbnRleHRNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0
ZXIgPSBtYXAuZmluZChjb2RlT3JpZ2luKTsKKyAgICBpZiAoaXRlciAhPSBtYXAuZW5kKCkpCisg
ICAgICAgIHJldHVybiBpdGVyLT52YWx1ZTsKKyAgICAKKyAgICByZXR1cm4gY29tcHV0ZUZvcihw
cm9maWxlZEJsb2NrLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpOwogfQogCiB2b2lkIENhbGxM
aW5rU3RhdHVzOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5oCmluZGV4IDUxOTY1ZmU0YThiOTk3
NDFhM2I5M2ZlM2IxNGY0YzJkN2FiZjVkNTYuLmY5YTlhMjY0Nzc2YTUzN2Q5M2U4NWViMzYxZWQx
NTdjNzY4YmNjM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
YWxsTGlua1N0YXR1cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxs
TGlua1N0YXR1cy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw3ICsyNiw5IEBACiAjaWZuZGVmIENhbGxMaW5r
U3RhdHVzX2gKICNkZWZpbmUgQ2FsbExpbmtTdGF0dXNfaAogCisjaW5jbHVkZSAiQ29kZU9yaWdp
bi5oIgogI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKKyNpbmNsdWRlICJDb25j
dXJyZW50SklUTG9jay5oIgogI2luY2x1ZGUgIkludHJpbnNpYy5oIgogI2luY2x1ZGUgIkpTQ0pT
VmFsdWUuaCIKIApAQCAtMzcsNiArMzksNyBAQCBjbGFzcyBFeGVjdXRhYmxlQmFzZTsKIGNsYXNz
IEludGVybmFsRnVuY3Rpb247CiBjbGFzcyBKU0Z1bmN0aW9uOwogY2xhc3MgU3RydWN0dXJlOwor
c3RydWN0IENhbGxMaW5rSW5mbzsKIAogY2xhc3MgQ2FsbExpbmtTdGF0dXMgewogcHVibGljOgpA
QCAtNzQsMzEgKzc3LDE5IEBAIHB1YmxpYzoKICAgICAKICAgICBzdGF0aWMgQ2FsbExpbmtTdGF0
dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4KTsKICAgICAK
LSAgICBDYWxsTGlua1N0YXR1cyYgc2V0SGFzQmFkRnVuY3Rpb25FeGl0U2l0ZShib29sIGRpZEhh
dmVFeGl0U2l0ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9pc1Byb3ZlZCk7Ci0gICAgICAg
IGlmIChkaWRIYXZlRXhpdFNpdGUpIHsKLSAgICAgICAgICAgIC8vIFR1cm4gdGhpcyBpbnRvIGEg
Y2xvc3VyZSBjYWxsLgotICAgICAgICAgICAgbV9jYWxsVGFyZ2V0ID0gSlNWYWx1ZSgpOwotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9CisgICAgLy8gQ29tcHV0ZXMgdGhl
IHN0YXR1cyBhc3N1bWluZyB0aGF0IHdlIG5ldmVyIHRvb2sgc2xvdyBwYXRoIGFuZCBuZXZlciBw
cmV2aW91c2x5CisgICAgLy8gZXhpdGVkLgorICAgIHN0YXRpYyBDYWxsTGlua1N0YXR1cyBjb21w
dXRlRm9yKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDYWxsTGlua0luZm8mKTsKICAgICAK
LSAgICBDYWxsTGlua1N0YXR1cyYgc2V0SGFzQmFkQ2FjaGVFeGl0U2l0ZShib29sIGRpZEhhdmVF
eGl0U2l0ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9pc1Byb3ZlZCk7Ci0gICAgICAgIGlm
IChkaWRIYXZlRXhpdFNpdGUpCi0gICAgICAgICAgICAqdGhpcyA9IHRha2VzU2xvd1BhdGgoKTsK
LSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KKyAgICB0eXBlZGVmIEhhc2hNYXA8Q29kZU9y
aWdpbiwgQ2FsbExpbmtTdGF0dXMsIENvZGVPcmlnaW5BcHByb3hpbWF0ZUhhc2g+IENvbnRleHRN
YXA7CiAgICAgCi0gICAgQ2FsbExpbmtTdGF0dXMmIHNldEhhc0JhZEV4ZWN1dGFibGVFeGl0U2l0
ZShib29sIGRpZEhhdmVFeGl0U2l0ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9pc1Byb3Zl
ZCk7Ci0gICAgICAgIGlmIChkaWRIYXZlRXhpdFNpdGUpCi0gICAgICAgICAgICAqdGhpcyA9IHRh
a2VzU2xvd1BhdGgoKTsKLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KKyAgICAvLyBDb21w
dXRlcyBhbGwgb2YgdGhlIHN0YXR1c2VzIG9mIHRoZSBERkcgY29kZSBibG9jay4gRG9lc24ndCBp
bmNsdWRlIHN0YXR1c2VzIHRoYXQgaGFkCisgICAgLy8gbm8gaW5mb3JtYXRpb24uIEN1cnJlbnRs
eSB3ZSB1c2UgdGhpcyB3aGVuIGNvbXBpbGluZyBGVEwgY29kZSwgdG8gZW5hYmxlIHBvbHl2YXJp
YW50CisgICAgLy8gaW5saW5pbmcuCisgICAgc3RhdGljIHZvaWQgY29tcHV0ZURGR1N0YXR1c2Vz
KENvZGVCbG9jayogZGZnQ29kZUJsb2NrLCBDb250ZXh0TWFwJik7CisgICAgCisgICAgLy8gSGVs
cGVyIHRoYXQgZmlyc3QgY29uc3VsdHMgdGhlIENvbnRleHRNYXAgYW5kIHRoZW4gZG9lcyBjb21w
dXRlRm9yKCkuCisgICAgc3RhdGljIENhbGxMaW5rU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2Nr
KiwgQ29kZU9yaWdpbiwgY29uc3QgQ29udGV4dE1hcCYpOwogICAgIAogICAgIGJvb2wgaXNTZXQo
KSBjb25zdCB7IHJldHVybiBtX2NhbGxUYXJnZXQgfHwgbV9leGVjdXRhYmxlIHx8IG1fY291bGRU
YWtlU2xvd1BhdGg7IH0KICAgICAKQEAgLTExOSw3ICsxMTAsMTQgQEAgcHVibGljOgogICAgIHZv
aWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIAogcHJpdmF0ZToKLSAgICBzdGF0aWMg
Q2FsbExpbmtTdGF0dXMgY29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRl
Y29kZUluZGV4KTsKKyAgICB2b2lkIG1ha2VDbG9zdXJlQ2FsbCgpCisgICAgeworICAgICAgICBB
U1NFUlQoIW1faXNQcm92ZWQpOworICAgICAgICAvLyBUdXJuIHRoaXMgaW50byBhIGNsb3N1cmUg
Y2FsbC4KKyAgICAgICAgbV9jYWxsVGFyZ2V0ID0gSlNWYWx1ZSgpOworICAgIH0KKyAgICAKKyAg
ICBzdGF0aWMgQ2FsbExpbmtTdGF0dXMgY29tcHV0ZUZyb21MTEludChjb25zdCBDb25jdXJyZW50
SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCk7CiAgICAgCiAg
ICAgSlNWYWx1ZSBtX2NhbGxUYXJnZXQ7CiAgICAgRXhlY3V0YWJsZUJhc2UqIG1fZXhlY3V0YWJs
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXgg
ZGE4MTQzMzY5MzljOGEzOGYyZDY3Mzk4NWI2ODI5ZTY3YmY2MGMxOS4uNzg2M2E2NjhhYjczMDAz
M2Q2YmI2NGYwZDliMDMwYzI4NWE0ZGFiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTEyOSwxMCArMTI5LDE1IEBAIENTdHJpbmcgQ29kZUJs
b2NrOjpzb3VyY2VDb2RlT25PbmVMaW5lKCkgY29uc3QKIAogdm9pZCBDb2RlQmxvY2s6OmR1bXBB
c3N1bWluZ0pJVFR5cGUoUHJpbnRTdHJlYW0mIG91dCwgSklUQ29kZTo6SklUVHlwZSBqaXRUeXBl
KSBjb25zdAogeworICAgIG91dC5wcmludChpbmZlcnJlZE5hbWUoKSwgIiMiKTsKICAgICBpZiAo
aGFzSGFzaCgpIHx8IGlzU2FmZVRvQ29tcHV0ZUhhc2goKSkKLSAgICAgICAgb3V0LnByaW50KGlu
ZmVycmVkTmFtZSgpLCAiIyIsIGhhc2goKSwgIjpbIiwgUmF3UG9pbnRlcih0aGlzKSwgIi0+Iiwg
UmF3UG9pbnRlcihvd25lckV4ZWN1dGFibGUoKSksICIsICIsIGppdFR5cGUsIGNvZGVUeXBlKCkp
OworICAgICAgICBvdXQucHJpbnQoaGFzaCgpKTsKICAgICBlbHNlCi0gICAgICAgIG91dC5wcmlu
dChpbmZlcnJlZE5hbWUoKSwgIiM8bm8taGFzaD46WyIsIFJhd1BvaW50ZXIodGhpcyksICItPiIs
IFJhd1BvaW50ZXIob3duZXJFeGVjdXRhYmxlKCkpLCAiLCAiLCBqaXRUeXBlLCBjb2RlVHlwZSgp
KTsKKyAgICAgICAgb3V0LnByaW50KCI8bm8taGFzaD4iKTsKKyAgICBvdXQucHJpbnQoIjpbIiwg
UmF3UG9pbnRlcih0aGlzKSwgIi0+Iik7CisgICAgaWYgKCEhbV9hbHRlcm5hdGl2ZSkKKyAgICAg
ICAgb3V0LnByaW50KFJhd1BvaW50ZXIobV9hbHRlcm5hdGl2ZS5nZXQoKSksICItPiIpOworICAg
IG91dC5wcmludChSYXdQb2ludGVyKG93bmVyRXhlY3V0YWJsZSgpKSwgIiwgIiwgaml0VHlwZSwg
Y29kZVR5cGUoKSk7CiAKICAgICBpZiAoY29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUpCiAgICAg
ICAgIG91dC5wcmludChzcGVjaWFsaXphdGlvbktpbmQoKSk7CkBAIC0xNDMsNiArMTQ4LDEwIEBA
IHZvaWQgQ29kZUJsb2NrOjpkdW1wQXNzdW1pbmdKSVRUeXBlKFByaW50U3RyZWFtJiBvdXQsIEpJ
VENvZGU6OkpJVFR5cGUgaml0VHlwZSkKICAgICAgICAgb3V0LnByaW50KCIgKE5ldmVySW5saW5l
KSIpOwogICAgIGlmIChvd25lckV4ZWN1dGFibGUoKS0+aXNTdHJpY3RNb2RlKCkpCiAgICAgICAg
IG91dC5wcmludCgiIChTdHJpY3RNb2RlKSIpOworICAgIGlmICh0aGlzLT5qaXRUeXBlKCkgPT0g
SklUQ29kZTo6QmFzZWxpbmVKSVQgJiYgbV9kaWRGYWlsRlRMQ29tcGlsYXRpb24pCisgICAgICAg
IG91dC5wcmludCgiIChGVExGYWlsKSIpOworICAgIGlmICh0aGlzLT5qaXRUeXBlKCkgPT0gSklU
Q29kZTo6QmFzZWxpbmVKSVQgJiYgbV9oYXNCZWVuQ29tcGlsZWRXaXRoRlRMKQorICAgICAgICBv
dXQucHJpbnQoIiAoSGFkRlRMUmVwbGFjZW1lbnQpIik7CiAgICAgb3V0LnByaW50KCJdIik7CiB9
CiAKQEAgLTUyNiwxMiArNTM1LDcgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmlu
dFN0cmVhbSYgb3V0KQogICAgIG91dC5wcmludGYoIlxuIik7CiAgICAgCiAgICAgU3R1YkluZm9N
YXAgc3R1YkluZm9zOwotI2lmIEVOQUJMRShKSVQpCi0gICAgewotICAgICAgICBDb25jdXJyZW50
SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgICAgICBnZXRTdHViSW5mb01hcChsb2NrZXIs
IHN0dWJJbmZvcyk7Ci0gICAgfQotI2VuZGlmCisgICAgZ2V0U3R1YkluZm9NYXAoc3R1YkluZm9z
KTsKICAgICAKICAgICBjb25zdCBJbnN0cnVjdGlvbiogYmVnaW4gPSBpbnN0cnVjdGlvbnMoKS5i
ZWdpbigpOwogICAgIGNvbnN0IEluc3RydWN0aW9uKiBlbmQgPSBpbnN0cnVjdGlvbnMoKS5lbmQo
KTsKQEAgLTE0NjksNiArMTQ3Myw3IEBAIENvZGVCbG9jazo6Q29kZUJsb2NrKENvcHlQYXJzZWRC
bG9ja1RhZywgQ29kZUJsb2NrJiBvdGhlcikKICAgICAsIG1faXNDb25zdHJ1Y3RvcihvdGhlci5t
X2lzQ29uc3RydWN0b3IpCiAgICAgLCBtX3Nob3VsZEFsd2F5c0JlSW5saW5lZCh0cnVlKQogICAg
ICwgbV9kaWRGYWlsRlRMQ29tcGlsYXRpb24oZmFsc2UpCisgICAgLCBtX2hhc0JlZW5Db21waWxl
ZFdpdGhGVEwoZmFsc2UpCiAgICAgLCBtX3VubGlua2VkQ29kZSgqb3RoZXIubV92bSwgb3RoZXIu
bV9vd25lckV4ZWN1dGFibGUuZ2V0KCksIG90aGVyLm1fdW5saW5rZWRDb2RlLmdldCgpKQogICAg
ICwgbV9zdGVwcGluZ01vZGUoU3RlcHBpbmdNb2RlRGlzYWJsZWQpCiAgICAgLCBtX251bUJyZWFr
cG9pbnRzKDApCkBAIC0xNTI1LDYgKzE1MzAsNyBAQCBDb2RlQmxvY2s6OkNvZGVCbG9jayhTY3Jp
cHRFeGVjdXRhYmxlKiBvd25lckV4ZWN1dGFibGUsIFVubGlua2VkQ29kZUJsb2NrKiB1bmxpbgog
ICAgICwgbV9pc0NvbnN0cnVjdG9yKHVubGlua2VkQ29kZUJsb2NrLT5pc0NvbnN0cnVjdG9yKCkp
CiAgICAgLCBtX3Nob3VsZEFsd2F5c0JlSW5saW5lZCh0cnVlKQogICAgICwgbV9kaWRGYWlsRlRM
Q29tcGlsYXRpb24oZmFsc2UpCisgICAgLCBtX2hhc0JlZW5Db21waWxlZFdpdGhGVEwoZmFsc2Up
CiAgICAgLCBtX3VubGlua2VkQ29kZShtX2dsb2JhbE9iamVjdC0+dm0oKSwgb3duZXJFeGVjdXRh
YmxlLCB1bmxpbmtlZENvZGVCbG9jaykKICAgICAsIG1fc3RlcHBpbmdNb2RlKFN0ZXBwaW5nTW9k
ZURpc2FibGVkKQogICAgICwgbV9udW1CcmVha3BvaW50cygwKQpAQCAtMTg1NCwyMyArMTg2MCwx
MyBAQCBDb2RlQmxvY2s6OkNvZGVCbG9jayhTY3JpcHRFeGVjdXRhYmxlKiBvd25lckV4ZWN1dGFi
bGUsIFVubGlua2VkQ29kZUJsb2NrKiB1bmxpbgogCiAgICAgLy8gSWYgdGhlIGNvbmN1cnJlbnQg
dGhyZWFkIHdpbGwgd2FudCB0aGUgY29kZSBibG9jaydzIGhhc2gsIHRoZW4gY29tcHV0ZSBpdCBo
ZXJlCiAgICAgLy8gc3luY2hyb25vdXNseS4KLSAgICBpZiAoT3B0aW9uczo6c2hvd0Rpc2Fzc2Vt
Ymx5KCkKLSAgICAgICAgfHwgT3B0aW9uczo6c2hvd0RGR0Rpc2Fzc2VtYmx5KCkKLSAgICAgICAg
fHwgT3B0aW9uczo6ZHVtcEJ5dGVjb2RlQXRERkdUaW1lKCkKLSAgICAgICAgfHwgT3B0aW9uczo6
ZHVtcEdyYXBoQXRFYWNoUGhhc2UoKQotICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3NlQ29tcGls
YXRpb24oKQotICAgICAgICB8fCBPcHRpb25zOjpsb2dDb21waWxhdGlvbkNoYW5nZXMoKQotICAg
ICAgICB8fCBPcHRpb25zOjp2YWxpZGF0ZUdyYXBoKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmFs
aWRhdGVHcmFwaEF0RWFjaFBoYXNlKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZU9TUigp
Ci0gICAgICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvblF1ZXVlKCkKLSAgICAgICAg
fHwgT3B0aW9uczo6cmVwb3J0Q29tcGlsZVRpbWVzKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmVy
Ym9zZUNGQSgpKQorICAgIGlmIChPcHRpb25zOjphbHdheXNDb21wdXRlSGFzaCgpKQogICAgICAg
ICBoYXNoKCk7CiAKICAgICBpZiAoT3B0aW9uczo6ZHVtcEdlbmVyYXRlZEJ5dGVjb2RlcygpKQog
ICAgICAgICBkdW1wQnl0ZWNvZGUoKTsKIAorICAgIAogICAgIG1faGVhcC0+bV9jb2RlQmxvY2tz
LmFkZCh0aGlzKTsKICAgICBtX2hlYXAtPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChzaXplb2YoQ29k
ZUJsb2NrKSArIG1faW5zdHJ1Y3Rpb25zLnNpemUoKSAqIHNpemVvZihJbnN0cnVjdGlvbikpOwog
fQpAQCAtMjMzNCwxNiArMjMzMCwyNiBAQCB2b2lkIENvZGVCbG9jazo6ZmluYWxpemVVbmNvbmRp
dGlvbmFsbHkoKQogI2VuZGlmCiB9CiAKK3ZvaWQgQ29kZUJsb2NrOjpnZXRTdHViSW5mb01hcChj
b25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgU3R1YkluZm9NYXAmIHJlc3VsdCkKK3sKICNpZiBF
TkFCTEUoSklUKQotU3RydWN0dXJlU3R1YkluZm8qIENvZGVCbG9jazo6YWRkU3R1YkluZm8oKQor
ICAgIHRvSGFzaE1hcChtX3N0dWJJbmZvcywgZ2V0U3RydWN0dXJlU3R1YkluZm9Db2RlT3JpZ2lu
LCByZXN1bHQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocmVzdWx0KTsKKyNlbmRpZgorfQor
Cit2b2lkIENvZGVCbG9jazo6Z2V0U3R1YkluZm9NYXAoU3R1YkluZm9NYXAmIHJlc3VsdCkKIHsK
ICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAgIHJldHVybiBtX3N0
dWJJbmZvcy5hZGQoKTsKKyAgICBnZXRTdHViSW5mb01hcChsb2NrZXIsIHJlc3VsdCk7CiB9CiAK
LXZvaWQgQ29kZUJsb2NrOjpnZXRTdHViSW5mb01hcChjb25zdCBDb25jdXJyZW50SklUTG9ja2Vy
JiwgU3R1YkluZm9NYXAmIHJlc3VsdCkKKyNpZiBFTkFCTEUoSklUKQorU3RydWN0dXJlU3R1Yklu
Zm8qIENvZGVCbG9jazo6YWRkU3R1YkluZm8oKQogewotICAgIHRvSGFzaE1hcChtX3N0dWJJbmZv
cywgZ2V0U3RydWN0dXJlU3R1YkluZm9Db2RlT3JpZ2luLCByZXN1bHQpOworICAgIENvbmN1cnJl
bnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgcmV0dXJuIG1fc3R1YkluZm9zLmFkZCgp
OwogfQogCiB2b2lkIENvZGVCbG9jazo6cmVzZXRTdHViKFN0cnVjdHVyZVN0dWJJbmZvJiBzdHVi
SW5mbykKQEAgLTI4OTksNiArMjkwNSwxMSBAQCB2b2lkIENvZGVCbG9jazo6Y291bnRSZW9wdGlt
aXphdGlvbigpCiB1bnNpZ25lZCBDb2RlQmxvY2s6Om51bWJlck9mREZHQ29tcGlsZXMoKQogewog
ICAgIEFTU0VSVChKSVRDb2RlOjppc0Jhc2VsaW5lQ29kZShqaXRUeXBlKCkpKTsKKyAgICBpZiAo
T3B0aW9uczo6dGVzdFRoZUZUTCgpKSB7CisgICAgICAgIGlmIChtX2RpZEZhaWxGVExDb21waWxh
dGlvbikKKyAgICAgICAgICAgIHJldHVybiAxMDAwMDAwOworICAgICAgICByZXR1cm4gKG1faGFz
QmVlbkNvbXBpbGVkV2l0aEZUTCA/IDEgOiAwKSArIG1fcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50
ZXI7CisgICAgfQogICAgIHJldHVybiAoSklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKHJlcGxhY2Vt
ZW50KCktPmppdFR5cGUoKSkgPyAxIDogMCkgKyBtX3Jlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVy
OwogfQogCkBAIC0zMDEwLDcgKzMwMjEsNyBAQCBpbnQzMl90IENvZGVCbG9jazo6YWRqdXN0ZWRD
b3VudGVyVmFsdWUoaW50MzJfdCBkZXNpcmVkVGhyZXNob2xkKQogYm9vbCBDb2RlQmxvY2s6OmNo
ZWNrSWZPcHRpbWl6YXRpb25UaHJlc2hvbGRSZWFjaGVkKCkKIHsKICNpZiBFTkFCTEUoREZHX0pJ
VCkKLSAgICBpZiAoREZHOjpXb3JrbGlzdCogd29ya2xpc3QgPSBtX3ZtLT53b3JrbGlzdC5nZXQo
KSkgeworICAgIGlmIChERkc6OldvcmtsaXN0KiB3b3JrbGlzdCA9IERGRzo6ZXhpc3RpbmdHbG9i
YWxERkdXb3JrbGlzdE9yTnVsbCgpKSB7CiAgICAgICAgIGlmICh3b3JrbGlzdC0+Y29tcGlsYXRp
b25TdGF0ZShERkc6OkNvbXBpbGF0aW9uS2V5KHRoaXMsIERGRzo6REZHTW9kZSkpCiAgICAgICAg
ICAgICA9PSBERkc6OldvcmtsaXN0OjpDb21waWxlZCkgewogICAgICAgICAgICAgb3B0aW1pemVO
ZXh0SW52b2NhdGlvbigpOwpAQCAtMzM0MSw2ICszMzUyLDExIEBAIHVuc2lnbmVkIENvZGVCbG9j
azo6ZnJhbWVSZWdpc3RlckNvdW50KCkKICAgICB9CiB9CiAKK2ludCBDb2RlQmxvY2s6OnN0YWNr
UG9pbnRlck9mZnNldCgpCit7CisgICAgcmV0dXJuIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGZy
YW1lUmVnaXN0ZXJDb3VudCgpIC0gMSkub2Zmc2V0KCk7Cit9CisKIHNpemVfdCBDb2RlQmxvY2s6
OnByZWRpY3RlZE1hY2hpbmVDb2RlU2l6ZSgpCiB7CiAgICAgLy8gVGhpcyB3aWxsIGJlIGNhbGxl
ZCBmcm9tIENvZGVCbG9jazo6Q29kZUJsb2NrIGJlZm9yZSBlaXRoZXIgbV92bSBvciB0aGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAppbmRleCA2OWY0MjE4NGVk
YTEwZmNkZWY0YmQzNjEzNmFiMzk4OTg0YzJmZGRjLi5jYmRjMzgxN2M4ZWZhNGIyZGUxODM3NDFl
OWFlMmJhZDg3YjMzMzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9jay5oCkBAIC0xNzUsNiArMTc1LDkgQEAgcHVibGljOgogICAgIHZvaWQgZXhwcmVzc2lvblJh
bmdlRm9yQnl0ZWNvZGVPZmZzZXQodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQsIGludCYgZGl2b3Qs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmIHN0YXJ0T2Zm
c2V0LCBpbnQmIGVuZE9mZnNldCwgdW5zaWduZWQmIGxpbmUsIHVuc2lnbmVkJiBjb2x1bW4pOwog
CisgICAgdm9pZCBnZXRTdHViSW5mb01hcChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgU3R1
YkluZm9NYXAmIHJlc3VsdCk7CisgICAgdm9pZCBnZXRTdHViSW5mb01hcChTdHViSW5mb01hcCYg
cmVzdWx0KTsKKwogI2lmIEVOQUJMRShKSVQpCiAgICAgU3RydWN0dXJlU3R1YkluZm8qIGFkZFN0
dWJJbmZvKCk7CiAgICAgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPjo6aXRlcmF0b3IgYmVnaW4oKSB7
IHJldHVybiBtX3N0dWJJbmZvcy5iZWdpbigpOyB9CkBAIC0xODIsOCArMTg1LDYgQEAgcHVibGlj
OgogCiAgICAgdm9pZCByZXNldFN0dWIoU3RydWN0dXJlU3R1YkluZm8mKTsKICAgICAKLSAgICB2
b2lkIGdldFN0dWJJbmZvTWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBTdHViSW5mb01h
cCYgcmVzdWx0KTsKLQogICAgIEJ5VmFsSW5mbyYgZ2V0QnlWYWxJbmZvKHVuc2lnbmVkIGJ5dGVj
b2RlSW5kZXgpCiAgICAgewogICAgICAgICByZXR1cm4gKihiaW5hcnlTZWFyY2g8QnlWYWxJbmZv
LCB1bnNpZ25lZD4obV9ieVZhbEluZm9zLCBtX2J5VmFsSW5mb3Muc2l6ZSgpLCBieXRlY29kZUlu
ZGV4LCBnZXRCeVZhbEluZm9CeXRlY29kZUluZGV4KSk7CkBAIC0yNTYsMTcgKzI1NywxNSBAQCBw
dWJsaWM6CiAgICAgLy8gRXhhY3RseSBlcXVpdmFsZW50IHRvIGNvZGVCbG9jay0+b3duZXJFeGVj
dXRhYmxlKCktPm5ld1JlcGxhY2VtZW50Q29kZUJsb2NrRm9yKGNvZGVCbG9jay0+c3BlY2lhbGl6
YXRpb25LaW5kKCkpCiAgICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+IG5ld1JlcGxhY2VtZW50KCk7
CiAgICAgCi0gICAgdm9pZCBzZXRKSVRDb2RlKFBhc3NSZWZQdHI8SklUQ29kZT4gY29kZSwgTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVXaXRoQXJpdHlDaGVjaykKKyAgICB2b2lkIHNldEpJVENv
ZGUoUGFzc1JlZlB0cjxKSVRDb2RlPiBjb2RlKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1faGVh
cC0+aXNEZWZlcnJlZCgpKTsKICAgICAgICAgbV9oZWFwLT5yZXBvcnRFeHRyYU1lbW9yeUNvc3Qo
Y29kZS0+c2l6ZSgpKTsKICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2Nr
KTsKICAgICAgICAgV1RGOjpzdG9yZVN0b3JlRmVuY2UoKTsgLy8gVGhpcyBpcyBwcm9iYWJseSBu
b3QgbmVlZGVkIGJlY2F1c2UgdGhlIGxvY2sgd2lsbCBhbHNvIGRvIHNvbWV0aGluZyBzaW1pbGFy
LCBidXQgaXQncyBnb29kIHRvIGJlIHBhcmFub2lkLgogICAgICAgICBtX2ppdENvZGUgPSBjb2Rl
OwotICAgICAgICBtX2ppdENvZGVXaXRoQXJpdHlDaGVjayA9IGNvZGVXaXRoQXJpdHlDaGVjazsK
ICAgICB9CiAgICAgUGFzc1JlZlB0cjxKSVRDb2RlPiBqaXRDb2RlKCkgeyByZXR1cm4gbV9qaXRD
b2RlOyB9Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGppdENvZGVXaXRoQXJpdHlDaGVjaygp
IHsgcmV0dXJuIG1faml0Q29kZVdpdGhBcml0eUNoZWNrOyB9CiAgICAgSklUQ29kZTo6SklUVHlw
ZSBqaXRUeXBlKCkgY29uc3QKICAgICB7CiAgICAgICAgIEpJVENvZGUqIGppdENvZGUgPSBtX2pp
dENvZGUuZ2V0KCk7CkBAIC00ODksOCArNDg4LDggQEAgcHVibGljOgogICAgIFJhcmVDYXNlUHJv
ZmlsZSogc3BlY2lhbEZhc3RDYXNlUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29k
ZU9mZnNldCkKICAgICB7CiAgICAgICAgIHJldHVybiB0cnlCaW5hcnlTZWFyY2g8UmFyZUNhc2VQ
cm9maWxlLCBpbnQ+KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX3NwZWNpYWxGYXN0Q2FzZVByb2ZpbGVzLCBtX3NwZWNpYWxGYXN0Q2FzZVBy
b2ZpbGVzLnNpemUoKSwgYnl0ZWNvZGVPZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFJhcmVDYXNlUHJvZmlsZUJ5dGVjb2RlT2Zm
c2V0KTsKKyAgICAgICAgICAgIG1fc3BlY2lhbEZhc3RDYXNlUHJvZmlsZXMsIG1fc3BlY2lhbEZh
c3RDYXNlUHJvZmlsZXMuc2l6ZSgpLCBieXRlY29kZU9mZnNldCwKKyAgICAgICAgICAgIGdldFJh
cmVDYXNlUHJvZmlsZUJ5dGVjb2RlT2Zmc2V0KTsKICAgICB9CiAKICAgICBib29sIGxpa2VseVRv
VGFrZVNwZWNpYWxGYXN0Q2FzZShpbnQgYnl0ZWNvZGVPZmZzZXQpCkBAIC01NzYsMTEgKzU3NSwx
NSBAQCBwdWJsaWM6CiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7
CiAgICAgICAgIHJldHVybiBtX2V4aXRQcm9maWxlLmFkZChsb2NrZXIsIHNpdGUpOwogICAgIH0K
LSAgICAgICAgCisgICAgIAorICAgIGJvb2wgaGFzRXhpdFNpdGUoY29uc3QgQ29uY3VycmVudEpJ
VExvY2tlciYgbG9ja2VyLCBjb25zdCBERkc6OkZyZXF1ZW50RXhpdFNpdGUmIHNpdGUpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gbV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShsb2NrZXIs
IHNpdGUpOworICAgIH0KICAgICBib29sIGhhc0V4aXRTaXRlKGNvbnN0IERGRzo6RnJlcXVlbnRF
eGl0U2l0ZSYgc2l0ZSkgY29uc3QKICAgICB7CiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIg
bG9ja2VyKG1fbG9jayk7Ci0gICAgICAgIHJldHVybiBtX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRl
KGxvY2tlciwgc2l0ZSk7CisgICAgICAgIHJldHVybiBoYXNFeGl0U2l0ZShsb2NrZXIsIHNpdGUp
OwogICAgIH0KIAogICAgIERGRzo6RXhpdFByb2ZpbGUmIGV4aXRQcm9maWxlKCkgeyByZXR1cm4g
bV9leGl0UHJvZmlsZTsgfQpAQCAtNjc5LDkgKzY4MiwxOSBAQCBwdWJsaWM6CiAKICAgICBCeXRl
Y29kZUxpdmVuZXNzQW5hbHlzaXMmIGxpdmVuZXNzQW5hbHlzaXMoKQogICAgIHsKLSAgICAgICAg
aWYgKCFtX2xpdmVuZXNzQW5hbHlzaXMpCi0gICAgICAgICAgICBtX2xpdmVuZXNzQW5hbHlzaXMg
PSBzdGQ6Om1ha2VfdW5pcXVlPEJ5dGVjb2RlTGl2ZW5lc3NBbmFseXNpcz4odGhpcyk7Ci0gICAg
ICAgIHJldHVybiAqbV9saXZlbmVzc0FuYWx5c2lzOworICAgICAgICB7CisgICAgICAgICAgICBD
b25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAgICAgICAgaWYgKCEhbV9s
aXZlbmVzc0FuYWx5c2lzKQorICAgICAgICAgICAgICAgIHJldHVybiAqbV9saXZlbmVzc0FuYWx5
c2lzOworICAgICAgICB9CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxCeXRlY29kZUxpdmVuZXNz
QW5hbHlzaXM+IGFuYWx5c2lzID0KKyAgICAgICAgICAgIHN0ZDo6bWFrZV91bmlxdWU8Qnl0ZWNv
ZGVMaXZlbmVzc0FuYWx5c2lzPih0aGlzKTsKKyAgICAgICAgeworICAgICAgICAgICAgQ29uY3Vy
cmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgICAgIGlmICghbV9saXZlbmVz
c0FuYWx5c2lzKQorICAgICAgICAgICAgICAgIG1fbGl2ZW5lc3NBbmFseXNpcyA9IHN0ZDo6bW92
ZShhbmFseXNpcyk7CisgICAgICAgICAgICByZXR1cm4gKm1fbGl2ZW5lc3NBbmFseXNpczsKKyAg
ICAgICAgfQogICAgIH0KICAgICAKICAgICB2b2lkIHZhbGlkYXRlKCk7CkBAIC04NjYsNiArODc5
LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlQWxsUHJlZGljdGlvbnMoKTsKIAogICAgIHVu
c2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudCgpOworICAgIGludCBzdGFja1BvaW50ZXJPZmZzZXQo
KTsKIAogICAgIGJvb2wgaGFzT3BEZWJ1Z0ZvckxpbmVBbmRDb2x1bW4odW5zaWduZWQgbGluZSwg
dW5zaWduZWQgY29sdW1uKTsKIApAQCAtODkxLDcgKzkwNSw3IEBAIHB1YmxpYzoKIAogICAgIGlu
dCBtX251bUNhbGxlZVJlZ2lzdGVyczsKICAgICBpbnQgbV9udW1WYXJzOwotICAgIGJvb2wgbV9p
c0NvbnN0cnVjdG9yOworICAgIGJvb2wgbV9pc0NvbnN0cnVjdG9yIDogMTsKICAgICAKICAgICAv
LyBUaGlzIGlzIGludGVudGlvbmFsbHkgcHVibGljOyBpdCdzIHRoZSByZXNwb25zaWJpbGl0eSBv
ZiBhbnlvbmUgZG9pbmcgYW55CiAgICAgLy8gb2YgdGhlIGZvbGxvd2luZyB0byBob2xkIHRoZSBs
b2NrOgpAQCAtOTExLDEwICs5MjUsMTEgQEAgcHVibGljOgogICAgIC8vIGNvbmN1cnJlbnQgY29t
cGlsYXRpb24gdGhyZWFkcyBmaW5pc2ggd2hhdCB0aGV5J3JlIGRvaW5nLgogICAgIG11dGFibGUg
Q29uY3VycmVudEpJVExvY2sgbV9sb2NrOwogICAgIAotICAgIGJvb2wgbV9zaG91bGRBbHdheXNC
ZUlubGluZWQ7Ci0gICAgYm9vbCBtX2FsbFRyYW5zaXRpb25zSGF2ZUJlZW5NYXJrZWQ7IC8vIElu
aXRpYWxpemVkIGFuZCB1c2VkIG9uIGV2ZXJ5IEdDLgorICAgIGJvb2wgbV9zaG91bGRBbHdheXNC
ZUlubGluZWQ7IC8vIE5vdCBhIGJpdGZpZWxkIGJlY2F1c2UgdGhlIEpJVCB3YW50cyB0byBzdG9y
ZSB0byBpdC4KKyAgICBib29sIG1fYWxsVHJhbnNpdGlvbnNIYXZlQmVlbk1hcmtlZCA6IDE7IC8v
IEluaXRpYWxpemVkIGFuZCB1c2VkIG9uIGV2ZXJ5IEdDLgogICAgIAotICAgIGJvb2wgbV9kaWRG
YWlsRlRMQ29tcGlsYXRpb247CisgICAgYm9vbCBtX2RpZEZhaWxGVExDb21waWxhdGlvbiA6IDE7
CisgICAgYm9vbCBtX2hhc0JlZW5Db21waWxlZFdpdGhGVEwgOiAxOwogCiAgICAgLy8gSW50ZXJu
YWwgbWV0aG9kcyBmb3IgdXNlIGJ5IHZhbGlkYXRpb24gY29kZS4gSXQgd291bGQgYmUgcHJpdmF0
ZSBpZiBpdCB3YXNuJ3QKICAgICAvLyBmb3IgdGhlIGZhY3QgdGhhdCB3ZSB1c2UgaXQgZnJvbSBh
bm9ueW1vdXMgbmFtZXNwYWNlcy4KQEAgLTEwNTQsNyArMTA2OSw2IEBAIHByaXZhdGU6CiAgICAg
U2VudGluZWxMaW5rZWRMaXN0PExMSW50Q2FsbExpbmtJbmZvLCBCYXNpY1Jhd1NlbnRpbmVsTm9k
ZTxMTEludENhbGxMaW5rSW5mbz4+IG1faW5jb21pbmdMTEludENhbGxzOwogI2VuZGlmCiAgICAg
UmVmUHRyPEpJVENvZGU+IG1faml0Q29kZTsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgbV9q
aXRDb2RlV2l0aEFyaXR5Q2hlY2s7CiAjaWYgRU5BQkxFKEpJVCkKICAgICBCYWc8U3RydWN0dXJl
U3R1YkluZm8+IG1fc3R1YkluZm9zOwogICAgIFZlY3RvcjxCeVZhbEluZm8+IG1fYnlWYWxJbmZv
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2lu
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmNwcAppbmRl
eCAzOWI4M2ZlYWRjNTI1ZGM2MWM4ZWZhYmY0MDE2ZjFkYzNiODJlZDczLi42OGRjNmIwNTMzNTU5
MGVjNGM4MWM0MjM0NmJiNzRkYmJkOGZhYzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVPcmlnaW4uY3BwCkBAIC00NSw3ICs0NSw2NCBAQCB1bnNpZ25lZCBDb2Rl
T3JpZ2luOjppbmxpbmVEZXB0aCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlubGluZURlcHRoRm9y
Q2FsbEZyYW1lKGlubGluZUNhbGxGcmFtZSk7CiB9CisKK2Jvb2wgQ29kZU9yaWdpbjo6aXNBcHBy
b3hpbWF0ZWx5RXF1YWxUbyhjb25zdCBDb2RlT3JpZ2luJiBvdGhlcikgY29uc3QKK3sKKyAgICBD
b2RlT3JpZ2luIGEgPSAqdGhpczsKKyAgICBDb2RlT3JpZ2luIGIgPSBvdGhlcjsKKworICAgIGlm
ICghYS5pc1NldCgpKQorICAgICAgICByZXR1cm4gIWIuaXNTZXQoKTsKKyAgICBpZiAoIWIuaXNT
ZXQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGlmIChhLmlzSGFzaFRhYmxl
RGVsZXRlZFZhbHVlKCkpCisgICAgICAgIHJldHVybiBiLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVl
KCk7CisgICAgaWYgKGIuaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIAorICAgIGZvciAoOzspIHsKKyAgICAgICAgQVNTRVJUKGEuaXNTZXQoKSk7
CisgICAgICAgIEFTU0VSVChiLmlzU2V0KCkpOworICAgICAgICAKKyAgICAgICAgaWYgKGEuYnl0
ZWNvZGVJbmRleCAhPSBiLmJ5dGVjb2RlSW5kZXgpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIAorICAgICAgICBpZiAoKCEhYS5pbmxpbmVDYWxsRnJhbWUpICE9ICghIWIuaW5s
aW5lQ2FsbEZyYW1lKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAg
ICAgIGlmICghYS5pbmxpbmVDYWxsRnJhbWUpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgCisgICAgICAgIGlmIChhLmlubGluZUNhbGxGcmFtZS0+ZXhlY3V0YWJsZSAhPSBiLmlu
bGluZUNhbGxGcmFtZS0+ZXhlY3V0YWJsZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgCisgICAgICAgIGEgPSBhLmlubGluZUNhbGxGcmFtZS0+Y2FsbGVyOworICAgICAgICBi
ID0gYi5pbmxpbmVDYWxsRnJhbWUtPmNhbGxlcjsKKyAgICB9Cit9CisKK3Vuc2lnbmVkIENvZGVP
cmlnaW46OmFwcHJveGltYXRlSGFzaCgpIGNvbnN0Cit7CisgICAgaWYgKCFpc1NldCgpKQorICAg
ICAgICByZXR1cm4gMDsKKyAgICBpZiAoaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSkKKyAgICAg
ICAgcmV0dXJuIDE7CiAgICAgCisgICAgdW5zaWduZWQgcmVzdWx0ID0gMjsKKyAgICBDb2RlT3Jp
Z2luIGNvZGVPcmlnaW4gPSAqdGhpczsKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIHJlc3VsdCAr
PSBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXg7CisgICAgICAgIAorICAgICAgICBpZiAoIWNvZGVP
cmlnaW4uaW5saW5lQ2FsbEZyYW1lKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAg
ICAgCisgICAgICAgIHJlc3VsdCArPSBXVEY6OlB0ckhhc2g8SlNDZWxsKj46Omhhc2goY29kZU9y
aWdpbi5pbmxpbmVDYWxsRnJhbWUtPmV4ZWN1dGFibGUuZ2V0KCkpOworICAgICAgICAKKyAgICAg
ICAgY29kZU9yaWdpbiA9IGNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lLT5jYWxsZXI7CisgICAg
fQorfQorCiBWZWN0b3I8Q29kZU9yaWdpbj4gQ29kZU9yaWdpbjo6aW5saW5lU3RhY2soKSBjb25z
dAogewogICAgIFZlY3RvcjxDb2RlT3JpZ2luPiByZXN1bHQoaW5saW5lRGVwdGgoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmlnaW4uaAppbmRleCBlZDY2MGMyNDc5
NWRlNjE4MjcxYmU5OTgwNzllYWZiMmQwNGE5YmMxLi5jNTI1MTc5YjY3YWNiMzc0MjAyNzkzZDVi
ZWEyYzBiODkwMTM1MzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZU9yaWdpbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
T3JpZ2luLmgKQEAgLTYzLDcgKzYzLDcgQEAgc3RydWN0IENvZGVPcmlnaW4gewogICAgIAogICAg
IENvZGVPcmlnaW4oV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQogICAgICAgICA6IGJ5
dGVjb2RlSW5kZXgoaW52YWxpZEJ5dGVjb2RlSW5kZXgpCi0gICAgICAgICwgaW5saW5lQ2FsbEZy
YW1lKGJpdHdpc2VfY2FzdDxJbmxpbmVDYWxsRnJhbWUqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+
KDEpKSkKKyAgICAgICAgLCBpbmxpbmVDYWxsRnJhbWUoZGVsZXRlZE1hcmtlcigpKQogICAgIHsK
ICAgICB9CiAgICAgCkBAIC05NywxNSArOTcsMjcgQEAgc3RydWN0IENvZGVPcmlnaW4gewogICAg
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBDb2RlT3JpZ2luJiBvdGhlcikgY29uc3Q7CiAgICAgYm9v
bCBvcGVyYXRvciE9KGNvbnN0IENvZGVPcmlnaW4mIG90aGVyKSBjb25zdCB7IHJldHVybiAhKCp0
aGlzID09IG90aGVyKTsgfQogICAgIAorICAgIC8vIFRoaXMgY2hlY2tzIGlmIHRoZSB0d28gY29k
ZSBvcmlnaW5zIGNvcnJlc3BvbmQgdG8gdGhlIHNhbWUgc3RhY2sgdHJhY2Ugc25pcHBldHMsCisg
ICAgLy8gYnV0IGlnbm9yZSB3aGV0aGVyIHRoZSBJbmxpbmVDYWxsRnJhbWUncyBhcmUgaWRlbnRp
Y2FsLgorICAgIGJvb2wgaXNBcHByb3hpbWF0ZWx5RXF1YWxUbyhjb25zdCBDb2RlT3JpZ2luJiBv
dGhlcikgY29uc3Q7CisgICAgCisgICAgdW5zaWduZWQgYXBwcm94aW1hdGVIYXNoKCkgY29uc3Q7
CisgICAgCiAgICAgLy8gR2V0IHRoZSBpbmxpbmUgc3RhY2suIFRoaXMgaXMgc2xvdywgYW5kIGlz
IGludGVuZGVkIGZvciBkZWJ1Z2dpbmcgb25seS4KICAgICBWZWN0b3I8Q29kZU9yaWdpbj4gaW5s
aW5lU3RhY2soKSBjb25zdDsKICAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25z
dDsKICAgICB2b2lkIGR1bXBJbkNvbnRleHQoUHJpbnRTdHJlYW0mLCBEdW1wQ29udGV4dCopIGNv
bnN0OworCitwcml2YXRlOgorICAgIHN0YXRpYyBJbmxpbmVDYWxsRnJhbWUqIGRlbGV0ZWRNYXJr
ZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxJbmxpbmVDYWxsRnJhbWUq
PihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KDEpKTsKKyAgICB9CiB9OwogCiBzdHJ1Y3QgSW5saW5l
Q2FsbEZyYW1lIHsKLSAgICBWZWN0b3I8VmFsdWVSZWNvdmVyeT4gYXJndW1lbnRzOworICAgIFZl
Y3RvcjxWYWx1ZVJlY292ZXJ5PiBhcmd1bWVudHM7IC8vIEluY2x1ZGVzICd0aGlzJy4KICAgICBX
cml0ZUJhcnJpZXI8U2NyaXB0RXhlY3V0YWJsZT4gZXhlY3V0YWJsZTsKICAgICBWYWx1ZVJlY292
ZXJ5IGNhbGxlZVJlY292ZXJ5OwogICAgIENvZGVPcmlnaW4gY2FsbGVyOwpAQCAtMTg1LDYgKzE5
NywxMiBAQCBzdHJ1Y3QgQ29kZU9yaWdpbkhhc2ggewogICAgIHN0YXRpYyBjb25zdCBib29sIHNh
ZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKIH07CiAKK3N0cnVjdCBDb2RlT3Jp
Z2luQXBwcm94aW1hdGVIYXNoIHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBDb2Rl
T3JpZ2luJiBrZXkpIHsgcmV0dXJuIGtleS5hcHByb3hpbWF0ZUhhc2goKTsgfQorICAgIHN0YXRp
YyBib29sIGVxdWFsKGNvbnN0IENvZGVPcmlnaW4mIGEsIGNvbnN0IENvZGVPcmlnaW4mIGIpIHsg
cmV0dXJuIGEuaXNBcHByb3hpbWF0ZWx5RXF1YWxUbyhiKTsgfQorICAgIHN0YXRpYyBjb25zdCBi
b29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKK307CisKIH0gLy8gbmFt
ZXNwYWNlIEpTQwogCiBuYW1lc3BhY2UgV1RGIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuY3BwCmluZGV4IDVkMDViYmIyZjA3OTgxNjczYzc3
NGUzNWRmMGYzZDRmMGUxNzU1MDcuLjczYmE4OGNkMDM0MmEzZmJhMzAyYzMwZDM3NjAyM2I3Y2Jl
NDk3MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0
UHJvZmlsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQ
cm9maWxlLmNwcApAQCAtMzcsNiArMzcsOCBAQCBFeGl0UHJvZmlsZTo6fkV4aXRQcm9maWxlKCkg
eyB9CiAKIGJvb2wgRXhpdFByb2ZpbGU6OmFkZChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwg
Y29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYgc2l0ZSkKIHsKKyAgICBBU1NFUlQoc2l0ZS5qaXRUeXBl
KCkgIT0gRXhpdEZyb21Bbnl0aGluZyk7CisgICAgCiAgICAgLy8gSWYgd2UndmUgbmV2ZXIgc2Vl
biBhbnkgZnJlcXVlbnQgZXhpdHMgdGhlbiBjcmVhdGUgdGhlIGxpc3QgYW5kIHB1dCB0aGlzIHNp
dGUKICAgICAvLyBpbnRvIGl0LgogICAgIGlmICghbV9mcmVxdWVudEV4aXRTaXRlcykgewpAQCAt
NzgsNyArODAsNyBAQCBib29sIEV4aXRQcm9maWxlOjpoYXNFeGl0U2l0ZShjb25zdCBDb25jdXJy
ZW50SklUTG9ja2VyJiwgY29uc3QgRnJlcXVlbnRFeGl0U2l0ZQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgCiAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9mcmVxdWVudEV4aXRTaXRlcy0+c2l6
ZSgpOyBpLS07KSB7Ci0gICAgICAgIGlmIChtX2ZyZXF1ZW50RXhpdFNpdGVzLT5hdChpKSA9PSBz
aXRlKQorICAgICAgICBpZiAoc2l0ZS5zdWJzdW1lcyhtX2ZyZXF1ZW50RXhpdFNpdGVzLT5hdChp
KSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuaAppbmRl
eCBhYjFhNjBkNThkMWViNmM2YTY1ZjI0ZTA4NTgzZTU5NWI2NWM0OTlmLi4zNGI4YTliODhmNjFm
MDU5YmVkYmRiMzAyZmQ1NWM2Yjc4ZDAyMzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgs
NiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ29uY3VycmVudEpJVExvY2suaCIKICNpbmNsdWRlICJF
eGl0S2luZC5oIgorI2luY2x1ZGUgIkV4aXRpbmdKSVRUeXBlLmgiCiAjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgpAQCAtMzksMTggKzQwLDIyIEBAIHB1YmxpYzoKICAgICBGcmVxdWVudEV4aXRTaXRlKCkKICAg
ICAgICAgOiBtX2J5dGVjb2RlT2Zmc2V0KDApIC8vIDAgPSBlbXB0eSB2YWx1ZQogICAgICAgICAs
IG1fa2luZChFeGl0S2luZFVuc2V0KQorICAgICAgICAsIG1faml0VHlwZShFeGl0RnJvbUFueXRo
aW5nKQogICAgIHsKICAgICB9CiAgICAgCiAgICAgRnJlcXVlbnRFeGl0U2l0ZShXVEY6Okhhc2hU
YWJsZURlbGV0ZWRWYWx1ZVR5cGUpCiAgICAgICAgIDogbV9ieXRlY29kZU9mZnNldCgxKSAvLyAx
ID0gZGVsZXRlZCB2YWx1ZQogICAgICAgICAsIG1fa2luZChFeGl0S2luZFVuc2V0KQorICAgICAg
ICAsIG1faml0VHlwZShFeGl0RnJvbUFueXRoaW5nKQogICAgIHsKICAgICB9CiAgICAgCi0gICAg
ZXhwbGljaXQgRnJlcXVlbnRFeGl0U2l0ZSh1bnNpZ25lZCBieXRlY29kZU9mZnNldCwgRXhpdEtp
bmQga2luZCkKKyAgICBleHBsaWNpdCBGcmVxdWVudEV4aXRTaXRlKAorICAgICAgICB1bnNpZ25l
ZCBieXRlY29kZU9mZnNldCwgRXhpdEtpbmQga2luZCwgRXhpdGluZ0pJVFR5cGUgaml0VHlwZSA9
IEV4aXRGcm9tQW55dGhpbmcpCiAgICAgICAgIDogbV9ieXRlY29kZU9mZnNldChieXRlY29kZU9m
ZnNldCkKICAgICAgICAgLCBtX2tpbmQoa2luZCkKKyAgICAgICAgLCBtX2ppdFR5cGUoaml0VHlw
ZSkKICAgICB7CiAgICAgICAgIGlmIChtX2tpbmQgPT0gQXJndW1lbnRzRXNjYXBlZCkgewogICAg
ICAgICAgICAgLy8gQ291bnQgdGhpcyBvbmUgZ2xvYmFsbHkuIEl0IGRvZXNuJ3QgbWF0dGVyIHdo
ZXJlIGluIHRoZSBjb2RlIGJsb2NrIHRoZSBhcmd1bWVudHMgZXhjYXBlZDsKQEAgLTYxLDkgKzY2
LDEwIEBAIHB1YmxpYzoKICAgICAKICAgICAvLyBVc2UgdGhpcyBjb25zdHJ1Y3RvciBpZiB5b3Ug
d2lzaCBmb3IgdGhlIGV4aXQgc2l0ZSB0byBiZSBjb3VudGVkIGdsb2JhbGx5IHdpdGhpbiBpdHMK
ICAgICAvLyBjb2RlIGJsb2NrLgotICAgIGV4cGxpY2l0IEZyZXF1ZW50RXhpdFNpdGUoRXhpdEtp
bmQga2luZCkKKyAgICBleHBsaWNpdCBGcmVxdWVudEV4aXRTaXRlKEV4aXRLaW5kIGtpbmQsIEV4
aXRpbmdKSVRUeXBlIGppdFR5cGUgPSBFeGl0RnJvbUFueXRoaW5nKQogICAgICAgICA6IG1fYnl0
ZWNvZGVPZmZzZXQoMCkKICAgICAgICAgLCBtX2tpbmQoa2luZCkKKyAgICAgICAgLCBtX2ppdFR5
cGUoaml0VHlwZSkKICAgICB7CiAgICAgfQogICAgIApAQCAtNzUsMTYgKzgxLDM2IEBAIHB1Ymxp
YzoKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRnJlcXVlbnRFeGl0U2l0ZSYgb3RoZXIpIGNv
bnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9ieXRlY29kZU9mZnNldCA9PSBvdGhlci5tX2J5
dGVjb2RlT2Zmc2V0Ci0gICAgICAgICAgICAmJiBtX2tpbmQgPT0gb3RoZXIubV9raW5kOworICAg
ICAgICAgICAgJiYgbV9raW5kID09IG90aGVyLm1fa2luZAorICAgICAgICAgICAgJiYgbV9qaXRU
eXBlID09IG90aGVyLm1faml0VHlwZTsKKyAgICB9CisgICAgCisgICAgYm9vbCBzdWJzdW1lcyhj
b25zdCBGcmVxdWVudEV4aXRTaXRlJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIGlmICht
X2J5dGVjb2RlT2Zmc2V0ICE9IG90aGVyLm1fYnl0ZWNvZGVPZmZzZXQpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChtX2tpbmQgIT0gb3RoZXIubV9raW5kKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAobV9qaXRUeXBlID09IEV4aXRGcm9tQW55
dGhpbmcpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIG1faml0VHlw
ZSA9PSBvdGhlci5tX2ppdFR5cGU7CiAgICAgfQogICAgIAogICAgIHVuc2lnbmVkIGhhc2goKSBj
b25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIFdURjo6aW50SGFzaChtX2J5dGVjb2RlT2Zmc2V0
KSArIG1fa2luZDsKKyAgICAgICAgcmV0dXJuIFdURjo6aW50SGFzaChtX2J5dGVjb2RlT2Zmc2V0
KSArIG1fa2luZCArIG1faml0VHlwZSAqIDc7CiAgICAgfQogICAgIAogICAgIHVuc2lnbmVkIGJ5
dGVjb2RlT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9ieXRlY29kZU9mZnNldDsgfQogICAgIEV4
aXRLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0KKyAgICBFeGl0aW5nSklUVHlw
ZSBqaXRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9qaXRUeXBlOyB9CisgICAgCisgICAgRnJlcXVl
bnRFeGl0U2l0ZSB3aXRoSklUVHlwZShFeGl0aW5nSklUVHlwZSBqaXRUeXBlKSBjb25zdAorICAg
IHsKKyAgICAgICAgRnJlcXVlbnRFeGl0U2l0ZSByZXN1bHQgPSAqdGhpczsKKyAgICAgICAgcmVz
dWx0Lm1faml0VHlwZSA9IGppdFR5cGU7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQog
CiAgICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0CiAgICAgewpAQCAtOTQs
NiArMTIwLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2J5dGVjb2RlT2Zm
c2V0OwogICAgIEV4aXRLaW5kIG1fa2luZDsKKyAgICBFeGl0aW5nSklUVHlwZSBtX2ppdFR5cGU7
CiB9OwogCiBzdHJ1Y3QgRnJlcXVlbnRFeGl0U2l0ZUhhc2ggewpAQCAtMTY2LDYgKzE5MywxMCBA
QCBwdWJsaWM6CiAKICAgICBib29sIGhhc0V4aXRTaXRlKGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUm
IHNpdGUpIGNvbnN0CiAgICAgeworICAgICAgICBpZiAoc2l0ZS5qaXRUeXBlKCkgPT0gRXhpdEZy
b21Bbnl0aGluZykgeworICAgICAgICAgICAgcmV0dXJuIGhhc0V4aXRTaXRlKHNpdGUud2l0aEpJ
VFR5cGUoRXhpdEZyb21ERkcpKQorICAgICAgICAgICAgICAgIHx8IGhhc0V4aXRTaXRlKHNpdGUu
d2l0aEpJVFR5cGUoRXhpdEZyb21GVEwpKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9m
cmVxdWVudEV4aXRTaXRlcy5maW5kKHNpdGUpICE9IG1fZnJlcXVlbnRFeGl0U2l0ZXMuZW5kKCk7
CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0V4aXRLaW5kLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaApp
bmRleCBhOWY2ZGY2ZDRjMzExMjE3ZDQyNGQ2YjA1ZTRmMDdhNGYzODc1ZGVlLi42YWM3OGEyNTQz
N2IwNGE3ZDY0ZTUwMWMyMGM4NWU1NTM3NDI2Yjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvRXhpdEtpbmQuaApAQCAtMjgsNyArMjgsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAotZW51bSBFeGl0S2luZCB7CitlbnVtIEV4aXRLaW5kIDogdWludDhfdCB7CiAgICAgRXhpdEtp
bmRVbnNldCwKICAgICBCYWRUeXBlLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSBhIHR5cGUgcHJlZGlj
dGlvbiB3YXMgd3JvbmcuCiAgICAgQmFkRnVuY3Rpb24sIC8vIFdlIGV4aXRlZCBiZWNhdXNlIHdl
IG1hZGUgYW4gaW5jb3JyZWN0IGFzc3VtcHRpb24gYWJvdXQgd2hhdCBmdW5jdGlvbiB3ZSB3b3Vs
ZCBzZWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdGlu
Z0pJVFR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0aW5nSklUVHlw
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZiZGMyOGU0NWQxNzY5NjE4MmY5NDQwMzgwNDg1YmU0ZTk2NzU3YzYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdGlu
Z0pJVFR5cGUuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRXhpdGluZ0pJVFR5cGVfaAorI2RlZmluZSBFeGl0
aW5nSklUVHlwZV9oCisKKyNpbmNsdWRlICJKSVRDb2RlLmgiCisKK25hbWVzcGFjZSBKU0Mgewor
CitlbnVtIEV4aXRpbmdKSVRUeXBlIDogdWludDhfdCB7CisgICAgRXhpdEZyb21Bbnl0aGluZywK
KyAgICBFeGl0RnJvbURGRywKKyAgICBFeGl0RnJvbUZUTAorfTsKKworaW5saW5lIEV4aXRpbmdK
SVRUeXBlIGV4aXRpbmdKSVRUeXBlRm9yKEpJVENvZGU6OkpJVFR5cGUgdHlwZSkKK3sKKyAgICBz
d2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEpJVENvZGU6OkRGR0pJVDoKKyAgICAgICAgcmV0dXJu
IEV4aXRGcm9tREZHOworICAgIGNhc2UgSklUQ29kZTo6RlRMSklUOgorICAgICAgICByZXR1cm4g
RXhpdEZyb21GVEw7CisgICAgZGVmYXVsdDoKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIEV4aXRGcm9tQW55dGhpbmc7CisgICAgfQorfQorCit9
IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEV4aXRpbmdKSVRUeXBlX2gKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCmluZGV4IGZi
YjNkYTFhNTE3MWRiMmFhMmZjOThiMTYzNzc5NjI2NjNhZmUxNDAuLmVkODVkNjJkNGYyZmM1NjAw
YTNkNmVjNjcwNmE1ZDExYjExMjlhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDYgKzM0LDE0IEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCitib29sIEdldEJ5SWRTdGF0dXM6Omhhc0V4aXRTaXRlKGNvbnN0
IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCB1
bnNpZ25lZCBieXRlY29kZUluZGV4LCBFeGl0aW5nSklUVHlwZSBqaXRUeXBlKQoreworICAgIHJl
dHVybiBwcm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0
U2l0ZShieXRlY29kZUluZGV4LCBCYWRDYWNoZSwgaml0VHlwZSkpCisgICAgICAgIHx8IHByb2Zp
bGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVj
b2RlSW5kZXgsIEJhZENhY2hlV2F0Y2hwb2ludCwgaml0VHlwZSkpCisgICAgICAgIHx8IHByb2Zp
bGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVj
b2RlSW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlLCBqaXRUeXBlKSkKKyAgICAgICAgfHwgcHJv
ZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0
ZWNvZGVJbmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGVXYXRjaHBvaW50LCBqaXRUeXBlKSk7Cit9
CisKIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZyb21MTEludChDb2RlQmxv
Y2sqIHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIFN0cmluZ0ltcGwqIHVp
ZCkKIHsKICAgICBVTlVTRURfUEFSQU0ocHJvZmlsZWRCbG9jayk7CkBAIC0xMjAsMTMgKzEyOCwy
NyBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoQ29kZUJsb2NrKiBw
cm9maWxlZEJsb2NrLCBTdHViSW5mb01hcCYgbQogewogICAgIENvbmN1cnJlbnRKSVRMb2NrZXIg
bG9ja2VyKHByb2ZpbGVkQmxvY2stPm1fbG9jayk7CiAgICAgCi0gICAgVU5VU0VEX1BBUkFNKHBy
b2ZpbGVkQmxvY2spOwotICAgIFVOVVNFRF9QQVJBTShieXRlY29kZUluZGV4KTsKLSAgICBVTlVT
RURfUEFSQU0odWlkKTsKKyAgICBHZXRCeUlkU3RhdHVzIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHVi
SW5mbygKKyAgICAgICAgbG9ja2VyLCBwcm9maWxlZEJsb2NrLCBtYXAuZ2V0KENvZGVPcmlnaW4o
Ynl0ZWNvZGVJbmRleCkpLCB1aWQpOworICAgIAorICAgIGlmICghcmVzdWx0LnRha2VzU2xvd1Bh
dGgoKQorICAgICAgICAmJiAoaGFzRXhpdFNpdGUobG9ja2VyLCBwcm9maWxlZEJsb2NrLCBieXRl
Y29kZUluZGV4KQorICAgICAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+bGlrZWx5VG9UYWtlU2xv
d0Nhc2UoYnl0ZWNvZGVJbmRleCkpKQorICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhUYWtl
c1Nsb3dQYXRoLCB0cnVlKTsKKworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gY29t
cHV0ZUZyb21MTEludChwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4LCB1aWQpOworICAgIAor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0dldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29t
cHV0ZUZvclN0dWJJbmZvKAorICAgIGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxv
Y2sqIHByb2ZpbGVkQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywKKyAgICBTdHJp
bmdJbXBsKiB1aWQpCit7CiAjaWYgRU5BQkxFKEpJVCkKLSAgICBTdHJ1Y3R1cmVTdHViSW5mbyog
c3R1YkluZm8gPSBtYXAuZ2V0KENvZGVPcmlnaW4oYnl0ZWNvZGVJbmRleCkpOwogICAgIGlmICgh
c3R1YkluZm8gfHwgIXN0dWJJbmZvLT5zZWVuKQotICAgICAgICByZXR1cm4gY29tcHV0ZUZyb21M
TEludChwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4LCB1aWQpOworICAgICAgICByZXR1cm4g
R2V0QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9uKTsKICAgICAKICAgICBpZiAoc3R1YkluZm8tPnJl
c2V0QnlHQykKICAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoVGFrZXNTbG93UGF0aCwgdHJ1
ZSk7CkBAIC0xNTIsMTYgKzE3NCwxMiBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNv
bXB1dGVGb3IoQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHViSW5mb01hcCYgbQogICAgICAg
ICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoTWFrZXNDYWxscywgdHJ1ZSk7CiAgICAgfQogICAg
IAotICAgIC8vIE5leHQgY2hlY2sgaWYgaXQgdGFrZXMgc2xvdyBjYXNlLCBpbiB3aGljaCBjYXNl
IHdlIHdhbnQgdG8gYmUga2luZCBvZiBjYXJlZnVsLgotICAgIGlmIChwcm9maWxlZEJsb2NrLT5s
aWtlbHlUb1Rha2VTbG93Q2FzZShieXRlY29kZUluZGV4KSkKLSAgICAgICAgcmV0dXJuIEdldEJ5
SWRTdGF0dXMoVGFrZXNTbG93UGF0aCwgdHJ1ZSk7Ci0gICAgCiAgICAgLy8gRmluYWxseSBmaWd1
cmUgb3V0IGlmIHdlIGNhbiBkZXJpdmUgYW4gYWNjZXNzIHN0cmF0ZWd5LgogICAgIEdldEJ5SWRT
dGF0dXMgcmVzdWx0OwogICAgIHJlc3VsdC5tX3dhc1NlZW5JbkpJVCA9IHRydWU7IC8vIFRoaXMg
aXMgaW50ZXJlc3RpbmcgZm9yIGJ5dGVjb2RlIGR1bXBpbmcgb25seS4KICAgICBzd2l0Y2ggKHN0
dWJJbmZvLT5hY2Nlc3NUeXBlKSB7CiAgICAgY2FzZSBhY2Nlc3NfdW5zZXQ6Ci0gICAgICAgIHJl
dHVybiBjb21wdXRlRnJvbUxMSW50KHByb2ZpbGVkQmxvY2ssIGJ5dGVjb2RlSW5kZXgsIHVpZCk7
CisgICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKE5vSW5mb3JtYXRpb24pOwogICAgICAgICAK
ICAgICBjYXNlIGFjY2Vzc19nZXRfYnlfaWRfc2VsZjogewogICAgICAgICBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSA9IHN0dWJJbmZvLT51LmdldEJ5SWRTZWxmLmJhc2VPYmplY3RTdHJ1Y3R1cmUuZ2V0
KCk7CkBAIC0yNjIsMTEgKzI4MCw0MCBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNv
bXB1dGVGb3IoQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHViSW5mb01hcCYgbQogICAgIAog
ICAgIHJldHVybiByZXN1bHQ7CiAjZWxzZSAvLyBFTkFCTEUoSklUKQotICAgIFVOVVNFRF9QQVJB
TShtYXApOworICAgIFVOVVNFRF9QQVJBTShwcm9maWxlZEJsb2NrKTsKKyAgICBVTlVTRURfUEFS
QU0oc3R1YkluZm8pOworICAgIFVOVVNFRF9QQVJBTSh1aWQpOwogICAgIHJldHVybiBHZXRCeUlk
U3RhdHVzKE5vSW5mb3JtYXRpb24sIGZhbHNlKTsKICNlbmRpZiAvLyBFTkFCTEUoSklUKQogfQog
CitHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoCisgICAgQ29kZUJsb2Nr
KiBwcm9maWxlZEJsb2NrLCBDb2RlQmxvY2sqIGRmZ0Jsb2NrLCBTdHViSW5mb01hcCYgYmFzZWxp
bmVNYXAsCisgICAgU3R1YkluZm9NYXAmIGRmZ01hcCwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBT
dHJpbmdJbXBsKiB1aWQpCit7CisgICAgaWYgKGRmZ0Jsb2NrKSB7CisgICAgICAgIEdldEJ5SWRT
dGF0dXMgcmVzdWx0OworICAgICAgICB7CisgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2Vy
IGxvY2tlcihkZmdCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGNvbXB1dGVG
b3JTdHViSW5mbyhsb2NrZXIsIGRmZ0Jsb2NrLCBkZmdNYXAuZ2V0KGNvZGVPcmlnaW4pLCB1aWQp
OworICAgICAgICB9CisgICAgCisgICAgICAgIGlmIChyZXN1bHQudGFrZXNTbG93UGF0aCgpKQor
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAKKyAgICAgICAgeworICAgICAgICAgICAg
Q29uY3VycmVudEpJVExvY2tlciBsb2NrZXIocHJvZmlsZWRCbG9jay0+bV9sb2NrKTsKKyAgICAg
ICAgICAgIGlmIChoYXNFeGl0U2l0ZShsb2NrZXIsIHByb2ZpbGVkQmxvY2ssIGNvZGVPcmlnaW4u
Ynl0ZWNvZGVJbmRleCwgRXhpdEZyb21GVEwpKQorICAgICAgICAgICAgICAgIHJldHVybiBHZXRC
eUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIHRydWUpOworICAgICAgICB9CisgICAgICAgIAorICAg
ICAgICBpZiAocmVzdWx0LmlzU2V0KCkpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
IH0KKworICAgIHJldHVybiBjb21wdXRlRm9yKHByb2ZpbGVkQmxvY2ssIGJhc2VsaW5lTWFwLCBj
b2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIHVpZCk7Cit9CisKIEdldEJ5SWRTdGF0dXMgR2V0QnlJ
ZFN0YXR1czo6Y29tcHV0ZUZvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBTdHJpbmdJ
bXBsKiB1aWQpCiB7CiAgICAgLy8gRm9yIG5vdyB3ZSBvbmx5IGhhbmRsZSB0aGUgc3VwZXIgc2lt
cGxlIHNlbGYgYWNjZXNzIGNhc2UuIFdlIGNvdWxkIGhhbmRsZSB0aGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oCmluZGV4IGExZTgwMWNjYTg4NTA4
ODkzN2QwNjI2ZWI5ZWExNmY1Y2QxYzgyYzQuLmUwMjA5OTQxZTFhMGQ1N2ZjNWIzZDAzYjE2NWYz
MDZkNzMxNWIxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9H
ZXRCeUlkU3RhdHVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5
SWRTdGF0dXMuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEy
LCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYsOSBAQAogI2lmbmRlZiBHZXRCeUlkU3Rh
dHVzX2gKICNkZWZpbmUgR2V0QnlJZFN0YXR1c19oCiAKKyNpbmNsdWRlICJDb2RlT3JpZ2luLmgi
CisjaW5jbHVkZSAiQ29uY3VycmVudEpJVExvY2suaCIKKyNpbmNsdWRlICJFeGl0aW5nSklUVHlw
ZS5oIgogI2luY2x1ZGUgIkludGVuZGVkU3RydWN0dXJlQ2hhaW4uaCIKICNpbmNsdWRlICJQcm9w
ZXJ0eU9mZnNldC5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZVNldC5oIgpAQCAtNzQsNiArNzcsOCBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sq
LCBTdHViSW5mb01hcCYsIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIFN0cmluZ0ltcGwqIHVpZCk7
CiAgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihWTSYsIFN0cnVjdHVyZSosIFN0
cmluZ0ltcGwqIHVpZCk7CiAgICAgCisgICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZv
cihDb2RlQmxvY2sqIGJhc2VsaW5lQmxvY2ssIENvZGVCbG9jayogZGZnQmxvY2ssIFN0dWJJbmZv
TWFwJiBiYXNlbGluZU1hcCwgU3R1YkluZm9NYXAmIGRmZ01hcCwgQ29kZU9yaWdpbiwgU3RyaW5n
SW1wbCogdWlkKTsKKyAgICAKICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Rh
dGU7IH0KICAgICAKICAgICBib29sIGlzU2V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZSAhPSBO
b0luZm9ybWF0aW9uOyB9CkBAIC05MCw2ICs5NSw4IEBAIHB1YmxpYzoKICAgICBib29sIHdhc1Nl
ZW5JbkpJVCgpIGNvbnN0IHsgcmV0dXJuIG1fd2FzU2VlbkluSklUOyB9CiAgICAgCiBwcml2YXRl
OgorICAgIHN0YXRpYyBib29sIGhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXIm
LCBDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBFeGl0aW5nSklUVHlwZSA9IEV4
aXRGcm9tQW55dGhpbmcpOworICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3JTdHVi
SW5mbyhjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgU3RydWN0dXJlU3R1
YkluZm8qLCBTdHJpbmdJbXBsKiB1aWQpOwogICAgIHN0YXRpYyB2b2lkIGNvbXB1dGVGb3JDaGFp
bihHZXRCeUlkU3RhdHVzJiByZXN1bHQsIENvZGVCbG9jayosIFN0cmluZ0ltcGwqIHVpZCk7CiAg
ICAgc3RhdGljIEdldEJ5SWRTdGF0dXMgY29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sqLCB1bnNp
Z25lZCBieXRlY29kZUluZGV4LCBTdHJpbmdJbXBsKiB1aWQpOwogICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25p
bmdXYXRjaHBvaW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9maWxl
ZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5jcHAKaW5kZXggZWRmOGUyMjhkNmQxYzlh
ZDcxNTdhYmQ3MmE4NWRhOWVkZjc5ZWNhNy4uMDI2YWEzZGFiODM3N2Y3MjIzMmM3NDE5MjczNTMy
NWE5NjNlYzk5YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1By
b2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9p
bnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC00OSw3ICs0OSw5IEBAIHZvaWQgUHJvZmlsZWRDb2RlQmxvY2tKZXR0aXNvbmluZ1dh
dGNocG9pbnQ6OmZpcmVJbnRlcm5hbCgpCiAgICAgCiAgICAgaWYgKHNvdXJjZUJhc2VsaW5lQ29k
ZUJsb2NrKSB7CiAgICAgICAgIHNvdXJjZUJhc2VsaW5lQ29kZUJsb2NrLT5hZGRGcmVxdWVudEV4
aXRTaXRlKAotICAgICAgICAgICAgREZHOjpGcmVxdWVudEV4aXRTaXRlKG1fY29kZU9yaWdpbi5i
eXRlY29kZUluZGV4LCBtX2V4aXRLaW5kKSk7CisgICAgICAgICAgICBERkc6OkZyZXF1ZW50RXhp
dFNpdGUoCisgICAgICAgICAgICAgICAgbV9jb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIG1fZXhp
dEtpbmQsCisgICAgICAgICAgICAgICAgZXhpdGluZ0pJVFR5cGVGb3IobV9jb2RlQmxvY2stPmpp
dFR5cGUoKSkpKTsKICAgICB9CiAgICAgCiAgICAgbV9jb2RlQmxvY2stPmpldHRpc29uKENvdW50
UmVvcHRpbWl6YXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1B1dEJ5SWRTdGF0dXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1
dEJ5SWRTdGF0dXMuY3BwCmluZGV4IDE3Y2Y3MDg5NzMzZjBmMGFhZWQxZTAzNjRjNWYzOTg5Y2I4
NzE0MDcuLjExNjAxMzA5NTcwZWIwMGFhMjkxN2U4OTg2Y2U4NWMwNWIyMzg4Y2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHAKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTM1LDYgKzM1LDE0IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitib29sIFB1dEJ5SWRT
dGF0dXM6Omhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQ29k
ZUJsb2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBFeGl0aW5nSklU
VHlwZSBleGl0VHlwZSkKK3sKKyAgICByZXR1cm4gcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUo
bG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkQ2FjaGUsIGV4
aXRUeXBlKSkKKyAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBE
Rkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkQ2FjaGVXYXRjaHBvaW50LCBl
eGl0VHlwZSkpCisgICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwg
REZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hl
LCBleGl0VHlwZSkpCisgICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tl
ciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZFdlYWtDb25zdGFudENh
Y2hlV2F0Y2hwb2ludCwgZXhpdFR5cGUpKTsKK30KKwogUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3Rh
dHVzOjpjb21wdXRlRnJvbUxMSW50KENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgdW5zaWduZWQg
Ynl0ZWNvZGVJbmRleCwgU3RyaW5nSW1wbCogdWlkKQogewogICAgIFVOVVNFRF9QQVJBTShwcm9m
aWxlZEJsb2NrKTsKQEAgLTg5LDEzICs5NywyNyBAQCBQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0
dXM6OmNvbXB1dGVGb3IoQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHViSW5mb01hcCYgbQog
ICAgIFVOVVNFRF9QQVJBTShieXRlY29kZUluZGV4KTsKICAgICBVTlVTRURfUEFSQU0odWlkKTsK
ICNpZiBFTkFCTEUoSklUKQotICAgIGlmIChwcm9maWxlZEJsb2NrLT5saWtlbHlUb1Rha2VTbG93
Q2FzZShieXRlY29kZUluZGV4KSkKKyAgICBpZiAocHJvZmlsZWRCbG9jay0+bGlrZWx5VG9UYWtl
U2xvd0Nhc2UoYnl0ZWNvZGVJbmRleCkKKyAgICAgICAgfHwgaGFzRXhpdFNpdGUobG9ja2VyLCBw
cm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4KSkKICAgICAgICAgcmV0dXJuIFB1dEJ5SWRTdGF0
dXMoVGFrZXNTbG93UGF0aCwgMCwgMCwgMCwgaW52YWxpZE9mZnNldCk7CiAgICAgCiAgICAgU3Ry
dWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gbWFwLmdldChDb2RlT3JpZ2luKGJ5dGVjb2RlSW5k
ZXgpKTsKLSAgICBpZiAoIXN0dWJJbmZvIHx8ICFzdHViSW5mby0+c2VlbikKKyAgICBQdXRCeUlk
U3RhdHVzIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mbyhsb2NrZXIsIHByb2ZpbGVkQmxvY2ss
IHN0dWJJbmZvLCB1aWQpOworICAgIGlmICghcmVzdWx0KQogICAgICAgICByZXR1cm4gY29tcHV0
ZUZyb21MTEludChwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4LCB1aWQpOwogICAgIAorICAg
IHJldHVybiByZXN1bHQ7CisjZWxzZSAvLyBFTkFCTEUoSklUKQorICAgIFVOVVNFRF9QQVJBTSht
YXApOworICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKE5vSW5mb3JtYXRpb24sIDAsIDAsIDAsIGlu
dmFsaWRPZmZzZXQpOworI2VuZGlmIC8vIEVOQUJMRShKSVQpCit9CisKK1B1dEJ5SWRTdGF0dXMg
UHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvKGNvbnN0IENvbmN1cnJlbnRKSVRMb2Nr
ZXImLCBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5m
bywgU3RyaW5nSW1wbCogdWlkKQoreworICAgIGlmICghc3R1YkluZm8gfHwgIXN0dWJJbmZvLT5z
ZWVuKQorICAgICAgICByZXR1cm4gUHV0QnlJZFN0YXR1cygpOworICAgIAogICAgIGlmIChzdHVi
SW5mby0+cmVzZXRCeUdDKQogICAgICAgICByZXR1cm4gUHV0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQ
YXRoLCAwLCAwLCAwLCBpbnZhbGlkT2Zmc2V0KTsKIApAQCAtMTQyLDEwICsxNjQsMjggQEAgUHV0
QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKENvZGVCbG9jayogcHJvZmlsZWRC
bG9jaywgU3R1YkluZm9NYXAmIG0KICAgICAgICAgLy8gd2UgY291bGQgZG8gYWJvdXQgaXQuCiAg
ICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIDAsIDAsIDAsIGludmFs
aWRPZmZzZXQpOwogICAgIH0KLSNlbHNlIC8vIEVOQUJMRShKSVQpCi0gICAgVU5VU0VEX1BBUkFN
KG1hcCk7Ci0gICAgcmV0dXJuIFB1dEJ5SWRTdGF0dXMoTm9JbmZvcm1hdGlvbiwgMCwgMCwgMCwg
aW52YWxpZE9mZnNldCk7Ci0jZW5kaWYgLy8gRU5BQkxFKEpJVCkKK30KKworUHV0QnlJZFN0YXR1
cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKENvZGVCbG9jayogYmFzZWxpbmVCbG9jaywgQ29k
ZUJsb2NrKiBkZmdCbG9jaywgU3R1YkluZm9NYXAmIGJhc2VsaW5lTWFwLCBTdHViSW5mb01hcCYg
ZGZnTWFwLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIFN0cmluZ0ltcGwqIHVpZCkKK3sKKyAgICBp
ZiAoZGZnQmxvY2spIHsKKyAgICAgICAgeworICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tl
ciBsb2NrZXIoYmFzZWxpbmVCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgIGlmIChoYXNFeGl0
U2l0ZShsb2NrZXIsIGJhc2VsaW5lQmxvY2ssIGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwgRXhp
dEZyb21GVEwpKQorICAgICAgICAgICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKFRha2VzU2xv
d1BhdGgpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgUHV0QnlJZFN0YXR1cyBy
ZXN1bHQ7CisgICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2Vy
KGRmZ0Jsb2NrLT5tX2xvY2spOworICAgICAgICAgICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJ
bmZvKGxvY2tlciwgZGZnQmxvY2ssIGRmZ01hcC5nZXQoY29kZU9yaWdpbiksIHVpZCk7CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChyZXN1bHQuaXNTZXQoKSkKKyAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHJldHVybiBjb21wdXRlRm9yKGJhc2Vs
aW5lQmxvY2ssIGJhc2VsaW5lTWFwLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIHVpZCk7CiB9
CiAKIFB1dEJ5SWRTdGF0dXMgUHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBTdHJpbmdJbXBs
KiB1aWQsIGJvb2wgaXNEaXJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1B1dEJ5SWRTdGF0dXMuaAppbmRleCBjMGExYmMzNWNiZjAyYzdjNTlkZDA4NWI3ZjZkMGM1ZDQz
ZDI3NzFmLi4xZmE2OWI2ZjI0NzkzOWY0NjdlMDYwOTQ1YmFiYjNlYWJhNjg5ZjM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmgKQEAgLTI2LDYg
KzI2LDcgQEAKICNpZm5kZWYgUHV0QnlJZFN0YXR1c19oCiAjZGVmaW5lIFB1dEJ5SWRTdGF0dXNf
aAogCisjaW5jbHVkZSAiRXhpdGluZ0pJVFR5cGUuaCIKICNpbmNsdWRlICJJbnRlbmRlZFN0cnVj
dHVyZUNoYWluLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlPZmZzZXQuaCIKICNpbmNsdWRlICJTdHJ1
Y3R1cmVTdHViSW5mby5oIgpAQCAtOTQsNiArOTUsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFB1
dEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihDb2RlQmxvY2sqLCBTdHViSW5mb01hcCYsIHVuc2lnbmVk
IGJ5dGVjb2RlSW5kZXgsIFN0cmluZ0ltcGwqIHVpZCk7CiAgICAgc3RhdGljIFB1dEJ5SWRTdGF0
dXMgY29tcHV0ZUZvcihWTSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgU3RyaW5nSW1w
bCogdWlkLCBib29sIGlzRGlyZWN0KTsKICAgICAKKyAgICBzdGF0aWMgUHV0QnlJZFN0YXR1cyBj
b21wdXRlRm9yKENvZGVCbG9jayogYmFzZWxpbmVCbG9jaywgQ29kZUJsb2NrKiBkZmdCbG9jaywg
U3R1YkluZm9NYXAmIGJhc2VsaW5lTWFwLCBTdHViSW5mb01hcCYgZGZnTWFwLCBDb2RlT3JpZ2lu
LCBTdHJpbmdJbXBsKiB1aWQpOworICAgIAogICAgIFN0YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1
cm4gbV9zdGF0ZTsgfQogICAgIAogICAgIGJvb2wgaXNTZXQoKSBjb25zdCB7IHJldHVybiBtX3N0
YXRlICE9IE5vSW5mb3JtYXRpb247IH0KQEAgLTEwOCw2ICsxMTEsOCBAQCBwdWJsaWM6CiAgICAg
UHJvcGVydHlPZmZzZXQgb2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXQ7IH0KICAgICAK
IHByaXZhdGU6CisgICAgc3RhdGljIGJvb2wgaGFzRXhpdFNpdGUoY29uc3QgQ29uY3VycmVudEpJ
VExvY2tlciYsIENvZGVCbG9jayosIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIEV4aXRpbmdKSVRU
eXBlID0gRXhpdEZyb21Bbnl0aGluZyk7CisgICAgc3RhdGljIFB1dEJ5SWRTdGF0dXMgY29tcHV0
ZUZvclN0dWJJbmZvKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqLCBTdHJ1
Y3R1cmVTdHViSW5mbyosIFN0cmluZ0ltcGwqIHVpZCk7CiAgICAgc3RhdGljIFB1dEJ5SWRTdGF0
dXMgY29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBT
dHJpbmdJbXBsKiB1aWQpOwogICAgIAogICAgIFN0YXRlIG1fc3RhdGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU2V0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU2V0LmgKaW5kZXggNGNkY2QwMWNiZTNkOTZm
NjNkN2I3ZWRjZjI5MDkzZDA4ZjRhNjk3Ni4uZjg5Njg0ZjcxMWMzODg5ZDU2NDJmZTJjYjAwMDcz
NGRjNTdmMDNhYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0
cnVjdHVyZVNldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1
cmVTZXQuaApAQCAtNDUsNiArNDUsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgU3RydWN0dXJlU2V0
KFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIHsKKyAgICAgICAgQVNTRVJUKHN0cnVjdHVyZSk7
CiAgICAgICAgIG1fc3RydWN0dXJlcy5hcHBlbmQoc3RydWN0dXJlKTsKICAgICB9CiAgICAgCkBA
IC01NSw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIGFkZChTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKICAgICB7CisgICAgICAgIEFTU0VSVChzdHJ1Y3R1cmUpOwogICAgICAgICBBU1NF
UlQoIWNvbnRhaW5zKHN0cnVjdHVyZSkpOwogICAgICAgICBtX3N0cnVjdHVyZXMuYXBwZW5kKHN0
cnVjdHVyZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1N0cnVjdHVyZVN0dWJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
U3RydWN0dXJlU3R1YkluZm8uaAppbmRleCA1NDYzZjNlOTU2ZWMwZmQ5MzU5ODUwMmE0YWI5MjEy
NjAyYzQwNzlhLi45MjE3Y2I4MDA0ZTg2MzEwNGM2YmMxZDk0MjBmNzQwYTBiZDg5ZGIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8u
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8u
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTIsIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAy
MDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjE2LDcgKzIxNiw2IEBAIHN0cnVjdCBTdHJ1Y3R1
cmVTdHViSW5mbyB7CiAKICAgICBzdHJ1Y3QgewogICAgICAgICBpbnQ4X3QgcmVnaXN0ZXJzRmx1
c2hlZDsKLSAgICAgICAgaW50OF90IGNhbGxGcmFtZVJlZ2lzdGVyOwogICAgICAgICBpbnQ4X3Qg
YmFzZUdQUjsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgICAgICBpbnQ4X3QgdmFsdWVUYWdH
UFI7CkBAIC0yOTAsNyArMjg5LDcgQEAgaW5saW5lIENvZGVPcmlnaW4gZ2V0U3RydWN0dXJlU3R1
YkluZm9Db2RlT3JpZ2luKFN0cnVjdHVyZVN0dWJJbmZvJiBzdHJ1Y3R1cmVTdHUKICAgICByZXR1
cm4gc3RydWN0dXJlU3R1YkluZm8uY29kZU9yaWdpbjsKIH0KIAotdHlwZWRlZiBIYXNoTWFwPENv
ZGVPcmlnaW4sIFN0cnVjdHVyZVN0dWJJbmZvKj4gU3R1YkluZm9NYXA7Cit0eXBlZGVmIEhhc2hN
YXA8Q29kZU9yaWdpbiwgU3RydWN0dXJlU3R1YkluZm8qLCBDb2RlT3JpZ2luQXBwcm94aW1hdGVI
YXNoPiBTdHViSW5mb01hcDsKIAogI2Vsc2UKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9WYWx1ZVJlY292ZXJ5LmgKaW5kZXggM2FmMmMzNDA5NjMxZWY4NDBhZGRkZjNkOTgy
OWIxMGQxZmQxNWI3MC4uNDAzMTI1MjVkZDI3YzM2ZGVjZGU3NmM1MmI3NDZhODIwMjM3MDNlOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUmVjb3Zlcnku
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCkBA
IC0yMzAsNiArMjMwLDI3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFZpcnR1YWxSZWdpc3Rl
cihtX3NvdXJjZS52aXJ0dWFsUmVnKTsKICAgICB9CiAgICAgCisgICAgVmFsdWVSZWNvdmVyeSB3
aXRoTG9jYWxzT2Zmc2V0KGludCBvZmZzZXQpIGNvbnN0CisgICAgeworICAgICAgICBzd2l0Y2gg
KG1fdGVjaG5pcXVlKSB7CisgICAgICAgIGNhc2UgRGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAg
ICBjYXNlIEludDMyRGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAgICBjYXNlIERvdWJsZURpc3Bs
YWNlZEluSlNTdGFjazoKKyAgICAgICAgY2FzZSBDZWxsRGlzcGxhY2VkSW5KU1N0YWNrOgorICAg
ICAgICBjYXNlIEJvb2xlYW5EaXNwbGFjZWRJbkpTU3RhY2s6CisgICAgICAgIGNhc2UgSW50NTJE
aXNwbGFjZWRJbkpTU3RhY2s6CisgICAgICAgIGNhc2UgU3RyaWN0SW50NTJEaXNwbGFjZWRJbkpT
U3RhY2s6IHsKKyAgICAgICAgICAgIFZhbHVlUmVjb3ZlcnkgcmVzdWx0OworICAgICAgICAgICAg
cmVzdWx0Lm1fdGVjaG5pcXVlID0gbV90ZWNobmlxdWU7CisgICAgICAgICAgICByZXN1bHQubV9z
b3VyY2UudmlydHVhbFJlZyA9IG1fc291cmNlLnZpcnR1YWxSZWcgKyBvZmZzZXQ7CisgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorICAgIH0KKyAgICAK
ICAgICBKU1ZhbHVlIGNvbnN0YW50KCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3Rl
Y2huaXF1ZSA9PSBDb25zdGFudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvVmlydHVhbFJlZ2lzdGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvVmlydHVhbFJlZ2lzdGVyLmgKaW5kZXggYzYzYWVlODVmZGY4MDAwM2M4ZDllYjZkZTMwYjcz
YjQ4YTZjYTE4NS4uNjFiMDRiNWJjODFmMDE5MWM4NDMyMGZjNGEyZDlmNWU4ZjU0ZWEyYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZpcnR1YWxSZWdpc3Rlci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WaXJ0dWFsUmVnaXN0ZXIuaApA
QCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAgaW50IHRvQXJndW1lbnQoKSBjb25zdCB7IEFT
U0VSVChpc0FyZ3VtZW50KCkpOyByZXR1cm4gb3BlcmFuZFRvQXJndW1lbnQobV92aXJ0dWFsUmVn
aXN0ZXIpOyB9CiAgICAgaW50IHRvQ29uc3RhbnRJbmRleCgpIGNvbnN0IHsgQVNTRVJUKGlzQ29u
c3RhbnQoKSk7IHJldHVybiBtX3ZpcnR1YWxSZWdpc3RlciAtIHNfZmlyc3RDb25zdGFudFJlZ2lz
dGVySW5kZXg7IH0KICAgICBpbnQgb2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV92aXJ0dWFsUmVn
aXN0ZXI7IH0KKyAgICBpbnQgb2Zmc2V0SW5CeXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fdmlydHVh
bFJlZ2lzdGVyICogc2l6ZW9mKFJlZ2lzdGVyKTsgfQogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IFZpcnR1YWxSZWdpc3RlciBvdGhlcikgY29uc3QgeyByZXR1cm4gbV92aXJ0dWFsUmVnaXN0
ZXIgPT0gb3RoZXIubV92aXJ0dWFsUmVnaXN0ZXI7IH0KICAgICBib29sIG9wZXJhdG9yIT0oY29u
c3QgVmlydHVhbFJlZ2lzdGVyIG90aGVyKSBjb25zdCB7IHJldHVybiBtX3ZpcnR1YWxSZWdpc3Rl
ciAhPSBvdGhlci5tX3ZpcnR1YWxSZWdpc3RlcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAKaW5kZXggOTBjZWU4YzIzNjU4
YTI0YzJjZGM4ZWYxZTA1YzJkZWJiZDU3NTdmOC4uNTQwNzMwYmEzYTYyYmYyNzFhZmYxYTJhYmZh
NTU4MjQ3ZjAyNWQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVkZSAiT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgIlN0YWNrVmlzaXRvci5o
IgotI2luY2x1ZGUgIlZNRW50cnlTY29wZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwCmluZGV4IGVmOWIxYzQ5NGFiYTM4
MDQ1YzlkOWRlYjUwYzA5Mjk1N2IyMzRlMjUuLjczNjhlYWViNjlhY2U0YWZlYzZmNDM0NGE3ZmEx
NThjZWY0MmMxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJy
YXlNb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5j
cHAKQEAgLTEzMSw3ICsxMzEsMTAgQEAgQXJyYXlNb2RlIEFycmF5TW9kZTo6ZnJvbU9ic2VydmVk
KGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tlciwgQXJyYXlQcm9maWwKICAgICB9CiB9
CiAKLUFycmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZShTcGVjdWxhdGVkVHlwZSBiYXNlLCBTcGVj
dWxhdGVkVHlwZSBpbmRleCwgU3BlY3VsYXRlZFR5cGUgdmFsdWUsIE5vZGVGbGFncyBmbGFncykg
Y29uc3QKK0FycmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZSgKKyAgICBHcmFwaCYgZ3JhcGgsIENv
ZGVPcmlnaW4gY29kZU9yaWdpbiwKKyAgICBTcGVjdWxhdGVkVHlwZSBiYXNlLCBTcGVjdWxhdGVk
VHlwZSBpbmRleCwgU3BlY3VsYXRlZFR5cGUgdmFsdWUsCisgICAgTm9kZUZsYWdzIGZsYWdzKSBj
b25zdAogewogICAgIGlmICghYmFzZSB8fCAhaW5kZXgpIHsKICAgICAgICAgLy8gSXQgY2FuIGJl
IHRoYXQgd2UgaGFkIGEgbGVnaXRpbWF0ZSBhcnJheU1vZGUgYnV0IG5vIGluY29taW5nIHByZWRp
Y3Rpb25zLiBUaGF0J2xsCkBAIC0xODYsNyArMTg5LDcgQEAgQXJyYXlNb2RlIEFycmF5TW9kZTo6
cmVmaW5lKFNwZWN1bGF0ZWRUeXBlIGJhc2UsIFNwZWN1bGF0ZWRUeXBlIGluZGV4LCBTcGVjdWxh
dGUKICAgICAgICAgICAgIHJldHVybiB3aXRoQ29udmVyc2lvbihBcnJheTo6UmFnZUNvbnZlcnQp
OwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgICAgIAotICAgIGNhc2UgQXJyYXk6OlNlbGVj
dFVzaW5nUHJlZGljdGlvbnM6CisgICAgY2FzZSBBcnJheTo6U2VsZWN0VXNpbmdQcmVkaWN0aW9u
czogewogICAgICAgICBiYXNlICY9IH5TcGVjT3RoZXI7CiAgICAgICAgIAogICAgICAgICBpZiAo
aXNTdHJpbmdTcGVjdWxhdGlvbihiYXNlKSkKQEAgLTE5NSwzNCArMTk4LDQxIEBAIEFycmF5TW9k
ZSBBcnJheU1vZGU6OnJlZmluZShTcGVjdWxhdGVkVHlwZSBiYXNlLCBTcGVjdWxhdGVkVHlwZSBp
bmRleCwgU3BlY3VsYXRlCiAgICAgICAgIGlmIChpc0FyZ3VtZW50c1NwZWN1bGF0aW9uKGJhc2Up
KQogICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpBcmd1bWVudHMpOwogICAgICAg
ICAKKyAgICAgICAgQXJyYXlNb2RlIHJlc3VsdDsKKyAgICAgICAgaWYgKGdyYXBoLmhhc0V4aXRT
aXRlKGNvZGVPcmlnaW4sIE91dE9mQm91bmRzKSkKKyAgICAgICAgICAgIHJlc3VsdCA9IHdpdGhT
cGVjdWxhdGlvbihBcnJheTo6T3V0T2ZCb3VuZHMpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICByZXN1bHQgPSAqdGhpczsKKyAgICAgICAgCiAgICAgICAgIGlmIChpc0ludDhBcnJheVNwZWN1
bGF0aW9uKGJhc2UpKQotICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpJbnQ4QXJy
YXkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6SW50OEFycmF5
KTsKICAgICAgICAgCiAgICAgICAgIGlmIChpc0ludDE2QXJyYXlTcGVjdWxhdGlvbihiYXNlKSkK
LSAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZShBcnJheTo6SW50MTZBcnJheSk7CisgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpJbnQxNkFycmF5KTsKICAgICAgICAg
CiAgICAgICAgIGlmIChpc0ludDMyQXJyYXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAg
IHJldHVybiB3aXRoVHlwZShBcnJheTo6SW50MzJBcnJheSk7CisgICAgICAgICAgICByZXR1cm4g
cmVzdWx0LndpdGhUeXBlKEFycmF5OjpJbnQzMkFycmF5KTsKICAgICAgICAgCiAgICAgICAgIGlm
IChpc1VpbnQ4QXJyYXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAgICAgICAgIHJldHVybiB3aXRo
VHlwZShBcnJheTo6VWludDhBcnJheSk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LndpdGhU
eXBlKEFycmF5OjpVaW50OEFycmF5KTsKICAgICAgICAgCiAgICAgICAgIGlmIChpc1VpbnQ4Q2xh
bXBlZEFycmF5U3BlY3VsYXRpb24oYmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUo
QXJyYXk6OlVpbnQ4Q2xhbXBlZEFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQud2l0
aFR5cGUoQXJyYXk6OlVpbnQ4Q2xhbXBlZEFycmF5KTsKICAgICAgICAgCiAgICAgICAgIGlmIChp
c1VpbnQxNkFycmF5U3BlY3VsYXRpb24oYmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5
cGUoQXJyYXk6OlVpbnQxNkFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQud2l0aFR5
cGUoQXJyYXk6OlVpbnQxNkFycmF5KTsKICAgICAgICAgCiAgICAgICAgIGlmIChpc1VpbnQzMkFy
cmF5U3BlY3VsYXRpb24oYmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6
OlVpbnQzMkFycmF5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQud2l0aFR5cGUoQXJyYXk6
OlVpbnQzMkFycmF5KTsKICAgICAgICAgCiAgICAgICAgIGlmIChpc0Zsb2F0MzJBcnJheVNwZWN1
bGF0aW9uKGJhc2UpKQotICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpGbG9hdDMy
QXJyYXkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6RmxvYXQz
MkFycmF5KTsKICAgICAgICAgCiAgICAgICAgIGlmIChpc0Zsb2F0NjRBcnJheVNwZWN1bGF0aW9u
KGJhc2UpKQotICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpGbG9hdDY0QXJyYXkp
OworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6RmxvYXQ2NEFycmF5
KTsKIAogICAgICAgICByZXR1cm4gQXJyYXlNb2RlKEFycmF5OjpHZW5lcmljKTsKKyAgICB9CiAK
ICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gKnRoaXM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBcnJheU1vZGUuaAppbmRleCBjYmI4N2JkOTM1MGVmYzNkZGVjYzEwMjNhNGNmMjVj
MDNmZjJhMWZiLi4yYmE2YjA2Y2E4ZDgyZTdhNjU3MTc5N2Q5MWUxNTdjYzViYjQ5ZDFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmgKQEAgLTIxMSw3ICsyMTEsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBBcnJheU1vZGUodHlwZSwgYXJyYXlDbGFzcygpLCBz
cGVjdWxhdGlvbigpLCBjb252ZXJzaW9uKTsKICAgICB9CiAgICAgCi0gICAgQXJyYXlNb2RlIHJl
ZmluZShTcGVjdWxhdGVkVHlwZSBiYXNlLCBTcGVjdWxhdGVkVHlwZSBpbmRleCwgU3BlY3VsYXRl
ZFR5cGUgdmFsdWUgPSBTcGVjTm9uZSwgTm9kZUZsYWdzID0gMCkgY29uc3Q7CisgICAgQXJyYXlN
b2RlIHJlZmluZShHcmFwaCYsIENvZGVPcmlnaW4sIFNwZWN1bGF0ZWRUeXBlIGJhc2UsIFNwZWN1
bGF0ZWRUeXBlIGluZGV4LCBTcGVjdWxhdGVkVHlwZSB2YWx1ZSA9IFNwZWNOb25lLCBOb2RlRmxh
Z3MgPSAwKSBjb25zdDsKICAgICAKICAgICBib29sIGFscmVhZHlDaGVja2VkKEdyYXBoJiwgTm9k
ZSosIEFic3RyYWN0VmFsdWUmKSBjb25zdDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggYzU3MmU3YTNlMGZiMmI3NzE2NjVl
M2Y5OGUyYmNhZjE1NWI4Y2I1Yi4uZjRhMzU2MzZmZTg4ZDdiYzcyZmIwYzNhZGQ5ZTY2ZTNiNTdi
Y2EzZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNl
ci5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVk
ZSAiUHJlY2lzZUp1bXBUYXJnZXRzLmgiCiAjaW5jbHVkZSAiUHV0QnlJZFN0YXR1cy5oIgorI2lu
Y2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAjaW5jbHVkZSAiU3RyaW5nQ29uc3RydWN0b3IuaCIK
ICNpbmNsdWRlIDx3dGYvQ29tbWFQcmludGVyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
QEAgLTE2MCw3ICsxNjEsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFuZGxlTWluTWF4KGludCBy
ZXN1bHRPcGVyYW5kLCBOb2RlVHlwZSBvcCwgaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJndW1l
bnRDb3VudEluY2x1ZGluZ1RoaXMpOwogICAgIAogICAgIC8vIEhhbmRsZSBjYWxscy4gVGhpcyBy
ZXNvbHZlcyBpc3N1ZXMgc3Vycm91bmRpbmcgaW5saW5pbmcgYW5kIGludHJpbnNpY3MuCi0gICAg
dm9pZCBoYW5kbGVDYWxsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIE5vZGVUeXBl
IG9wLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kKTsKKyAgICB2b2lkIGhhbmRsZUNhbGwoaW50IHJl
c3VsdCwgTm9kZVR5cGUgb3AsIENvZGVTcGVjaWFsaXphdGlvbktpbmQsIHVuc2lnbmVkIGluc3Ry
dWN0aW9uU2l6ZSwgaW50IGNhbGxlZSwgaW50IGFyZ0NvdW50LCBpbnQgcmVnaXN0ZXJPZmZzZXQp
OworICAgIHZvaWQgaGFuZGxlQ2FsbChJbnN0cnVjdGlvbiogcGMsIE5vZGVUeXBlIG9wLCBDb2Rl
U3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpOwogICAgIHZvaWQgZW1pdEZ1bmN0aW9uQ2hlY2tzKGNv
bnN0IENhbGxMaW5rU3RhdHVzJiwgTm9kZSogY2FsbFRhcmdldCwgaW50IHJlZ2lzdGVyT2Zmc2V0
LCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kKTsKICAgICB2b2lkIGVtaXRBcmd1bWVudFBoYW50b21z
KGludCByZWdpc3Rlck9mZnNldCwgaW50IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCBDb2Rl
U3BlY2lhbGl6YXRpb25LaW5kKTsKICAgICAvLyBIYW5kbGUgaW5saW5pbmcuIFJldHVybiB0cnVl
IGlmIGl0IHN1Y2NlZWRlZCwgZmFsc2UgaWYgd2UgbmVlZCB0byBwbGFudCBhIGNhbGwuCkBAIC03
NzMsMjIgKzc3NSwyMSBAQCBwcml2YXRlOgogICAgICAgICBtX251bVBhc3NlZFZhckFyZ3MrKzsK
ICAgICB9CiAgICAgCi0gICAgTm9kZSogYWRkQ2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uLCBOb2RlVHlwZSBvcCkKKyAgICBOb2RlKiBhZGRDYWxsKGludCByZXN1bHQsIE5vZGVU
eXBlIG9wLCBpbnQgY2FsbGVlLCBpbnQgYXJnQ291bnQsIGludCByZWdpc3Rlck9mZnNldCkKICAg
ICB7CiAgICAgICAgIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVkaWN0aW9uKCk7
CiAgICAgICAgIAotICAgICAgICBhZGRWYXJBcmdDaGlsZChnZXQoVmlydHVhbFJlZ2lzdGVyKGN1
cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKSk7Ci0gICAgICAgIGludCBhcmdDb3VudCA9
IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgICAgIGlmIChKU1N0YWNrOjpU
aGlzQXJndW1lbnQgKyAodW5zaWduZWQpYXJnQ291bnQgPiBtX3BhcmFtZXRlclNsb3RzKQotICAg
ICAgICAgICAgbV9wYXJhbWV0ZXJTbG90cyA9IEpTU3RhY2s6OlRoaXNBcmd1bWVudCArIGFyZ0Nv
dW50OworICAgICAgICBhZGRWYXJBcmdDaGlsZChnZXQoVmlydHVhbFJlZ2lzdGVyKGNhbGxlZSkp
KTsKKyAgICAgICAgc2l6ZV90IHBhcmFtZXRlclNsb3RzID0gSlNTdGFjazo6Q2FsbEZyYW1lSGVh
ZGVyU2l6ZSAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplICsgYXJnQ291bnQ7CisgICAg
ICAgIGlmIChwYXJhbWV0ZXJTbG90cyA+IG1fcGFyYW1ldGVyU2xvdHMpCisgICAgICAgICAgICBt
X3BhcmFtZXRlclNsb3RzID0gcGFyYW1ldGVyU2xvdHM7CiAKLSAgICAgICAgaW50IHJlZ2lzdGVy
T2Zmc2V0ID0gLWN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQ7CiAgICAgICAgIGludCBk
dW1teVRoaXNBcmd1bWVudCA9IG9wID09IENhbGwgPyAwIDogMTsKICAgICAgICAgZm9yIChpbnQg
aSA9IDAgKyBkdW1teVRoaXNBcmd1bWVudDsgaSA8IGFyZ0NvdW50OyArK2kpCiAgICAgICAgICAg
ICBhZGRWYXJBcmdDaGlsZChnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoaSwgcmVnaXN0
ZXJPZmZzZXQpKSk7CiAKICAgICAgICAgTm9kZSogY2FsbCA9IGFkZFRvR3JhcGgoTm9kZTo6VmFy
QXJnLCBvcCwgT3BJbmZvKDApLCBPcEluZm8ocHJlZGljdGlvbikpOwotICAgICAgICBzZXQoVmly
dHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBjYWxsKTsKKyAg
ICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihyZXN1bHQpLCBjYWxsKTsKICAgICAgICAgcmV0dXJu
IGNhbGw7CiAgICAgfQogICAgIApAQCAtOTkzLDkgKzk5NCwxMCBAQCBwcml2YXRlOgogICAgIC8v
IFRoZSBudW1iZXIgb2YgbG9jYWxzICh2YXJzICsgdGVtcG9yYXJpZXMpIHVzZWQgaW4gdGhlIGZ1
bmN0aW9uLgogICAgIHVuc2lnbmVkIG1fbnVtTG9jYWxzOwogICAgIC8vIFRoZSBudW1iZXIgb2Yg
c2xvdHMgKGluIHVuaXRzIG9mIHNpemVvZihSZWdpc3RlcikpIHRoYXQgd2UgbmVlZCB0bwotICAg
IC8vIHByZWFsbG9jYXRlIGZvciBjYWxscyBlbWFuYXRpbmcgZnJvbSB0aGlzIGZyYW1lLiBUaGlz
IGluY2x1ZGVzIHRoZQotICAgIC8vIHNpemUgb2YgdGhlIENhbGxGcmFtZSwgb25seSBpZiB0aGlz
IGlzIG5vdCBhIGxlYWYgZnVuY3Rpb24uICAoSS5lLgotICAgIC8vIHRoaXMgaXMgMCBpZiBhbmQg
b25seSBpZiB0aGlzIGZ1bmN0aW9uIGlzIGEgbGVhZi4pCisgICAgLy8gcHJlYWxsb2NhdGUgZm9y
IGFyZ3VtZW50cyB0byBvdXRnb2luZyBjYWxscyBmcm9tIHRoaXMgZnJhbWUuIFRoaXMKKyAgICAv
LyBudW1iZXIgaW5jbHVkZXMgdGhlIENhbGxGcmFtZSBzbG90cyB0aGF0IHdlIGluaXRpYWxpemUg
Zm9yIHRoZSBjYWxsZWUKKyAgICAvLyAoYnV0IG5vdCB0aGUgY2FsbGVlLWluaXRpYWxpemVkIENh
bGxlckZyYW1lIGFuZCBSZXR1cm5QQyBzbG90cykuCisgICAgLy8gVGhpcyBudW1iZXIgaXMgMCBp
ZiBhbmQgb25seSBpZiB0aGlzIGZ1bmN0aW9uIGlzIGEgbGVhZi4KICAgICB1bnNpZ25lZCBtX3Bh
cmFtZXRlclNsb3RzOwogICAgIC8vIFRoZSBudW1iZXIgb2YgdmFyIGFyZ3MgcGFzc2VkIHRvIHRo
ZSBuZXh0IHZhciBhcmcgbm9kZS4KICAgICB1bnNpZ25lZCBtX251bVBhc3NlZFZhckFyZ3M7CkBA
IC0xMTM0LDYgKzExMzYsMTAgQEAgcHJpdmF0ZToKICAgICAvLyB3b3JrLWFyb3VuZCBmb3IgdGhl
IGZhY3QgdGhhdCBKU1ZhbHVlTWFwIGNhbid0IGhhbmRsZSAiZW1wdHkiIHZhbHVlcy4KICAgICB1
bnNpZ25lZCBtX2VtcHR5SlNWYWx1ZUluZGV4OwogICAgIAorICAgIENvZGVCbG9jayogbV9kZmdD
b2RlQmxvY2s7CisgICAgQ2FsbExpbmtTdGF0dXM6OkNvbnRleHRNYXAgbV9jYWxsQ29udGV4dE1h
cDsKKyAgICBTdHViSW5mb01hcCBtX2RmZ1N0dWJJbmZvczsKKyAgICAKICAgICBJbnN0cnVjdGlv
biogbV9jdXJyZW50SW5zdHJ1Y3Rpb247CiB9OwogCkBAIC0xMTQ1LDQzICsxMTUxLDQ1IEBAIHBy
aXZhdGU6CiAgICAgbV9jdXJyZW50SW5kZXggKz0gT1BDT0RFX0xFTkdUSChuYW1lKTsgXAogICAg
IHJldHVybiBzaG91bGRDb250aW51ZVBhcnNpbmcKIAotCi12b2lkIEJ5dGVDb2RlUGFyc2VyOjpo
YW5kbGVDYWxsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIE5vZGVUeXBlIG9wLCBD
b2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCit2b2lkIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVD
YWxsKEluc3RydWN0aW9uKiBwYywgTm9kZVR5cGUgb3AsIENvZGVTcGVjaWFsaXphdGlvbktpbmQg
a2luZCkKIHsKICAgICBBU1NFUlQoT1BDT0RFX0xFTkdUSChvcF9jYWxsKSA9PSBPUENPREVfTEVO
R1RIKG9wX2NvbnN0cnVjdCkpOworICAgIGhhbmRsZUNhbGwoCisgICAgICAgIHBjWzFdLnUub3Bl
cmFuZCwgb3AsIGtpbmQsIE9QQ09ERV9MRU5HVEgob3BfY2FsbCksCisgICAgICAgIHBjWzJdLnUu
b3BlcmFuZCwgcGNbM10udS5vcGVyYW5kLCAtcGNbNF0udS5vcGVyYW5kKTsKK30KKwordm9pZCBC
eXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbCgKKyAgICBpbnQgcmVzdWx0LCBOb2RlVHlwZSBvcCwg
Q29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCB1bnNpZ25lZCBpbnN0cnVjdGlvblNpemUsCisg
ICAgaW50IGNhbGxlZSwgaW50IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCBpbnQgcmVnaXN0
ZXJPZmZzZXQpCit7CisgICAgQVNTRVJUKHJlZ2lzdGVyT2Zmc2V0IDw9IDApOwogICAgIAotICAg
IE5vZGUqIGNhbGxUYXJnZXQgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlv
blsyXS51Lm9wZXJhbmQpKTsKKyAgICBOb2RlKiBjYWxsVGFyZ2V0ID0gZ2V0KFZpcnR1YWxSZWdp
c3RlcihjYWxsZWUpKTsKICAgICAKICAgICBDYWxsTGlua1N0YXR1cyBjYWxsTGlua1N0YXR1czsK
IAotICAgIGlmIChtX2dyYXBoLmlzQ29uc3RhbnQoY2FsbFRhcmdldCkpCi0gICAgICAgIGNhbGxM
aW5rU3RhdHVzID0gQ2FsbExpbmtTdGF0dXMobV9ncmFwaC52YWx1ZU9mSlNDb25zdGFudChjYWxs
VGFyZ2V0KSkuc2V0SXNQcm92ZWQodHJ1ZSk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGNhbGxMaW5r
U3RhdHVzID0gQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGb3IobV9pbmxpbmVTdGFja1RvcC0+bV9w
cm9maWxlZEJsb2NrLCBtX2N1cnJlbnRJbmRleCk7Ci0gICAgICAgIGNhbGxMaW5rU3RhdHVzLnNl
dEhhc0JhZEZ1bmN0aW9uRXhpdFNpdGUobV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5o
YXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkRnVuY3Rpb24pKTsKLSAgICAgICAgY2FsbExp
bmtTdGF0dXMuc2V0SGFzQmFkQ2FjaGVFeGl0U2l0ZSgKLSAgICAgICAgICAgIG1faW5saW5lU3Rh
Y2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZENhY2hl
KQotICAgICAgICAgICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0
U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2FjaGVXYXRjaHBvaW50KSk7Ci0gICAgICAgIGNhbGxM
aW5rU3RhdHVzLnNldEhhc0JhZEV4ZWN1dGFibGVFeGl0U2l0ZShtX2lubGluZVN0YWNrVG9wLT5t
X2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRFeGVjdXRhYmxlKSk7
CisgICAgaWYgKG1fZ3JhcGguaXNDb25zdGFudChjYWxsVGFyZ2V0KSkgeworICAgICAgICBjYWxs
TGlua1N0YXR1cyA9IENhbGxMaW5rU3RhdHVzKAorICAgICAgICAgICAgbV9ncmFwaC52YWx1ZU9m
SlNDb25zdGFudChjYWxsVGFyZ2V0KSkuc2V0SXNQcm92ZWQodHJ1ZSk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgY2FsbExpbmtTdGF0dXMgPSBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZvcigKKyAg
ICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywgY3VycmVudENvZGVP
cmlnaW4oKSwgbV9jYWxsQ29udGV4dE1hcCk7CiAgICAgfQogICAgIAogICAgIGlmICghY2FsbExp
bmtTdGF0dXMuY2FuT3B0aW1pemUoKSkgewogICAgICAgICAvLyBPZGRseSwgdGhpcyBjb25mbGF0
ZXMgY2FsbHMgdGhhdCBoYXZlbid0IGV4ZWN1dGVkIHdpdGggY2FsbHMgdGhhdCBiZWhhdmVkIHN1
ZmZpY2llbnRseSBwb2x5bW9ycGhpY2FsbHkKICAgICAgICAgLy8gdGhhdCB3ZSBjYW5ub3Qgb3B0
aW1pemUgdGhlbS4KICAgICAgICAgCi0gICAgICAgIGFkZENhbGwoY3VycmVudEluc3RydWN0aW9u
LCBvcCk7CisgICAgICAgIGFkZENhbGwocmVzdWx0LCBvcCwgY2FsbGVlLCBhcmd1bWVudENvdW50
SW5jbHVkaW5nVGhpcywgcmVnaXN0ZXJPZmZzZXQpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIAotICAgIGludCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyA9IGN1cnJlbnRJbnN0cnVj
dGlvblszXS51Lm9wZXJhbmQ7Ci0gICAgaW50IHJlZ2lzdGVyT2Zmc2V0ID0gLWN1cnJlbnRJbnN0
cnVjdGlvbls0XS51Lm9wZXJhbmQ7Ci0KLSAgICBpbnQgcmVzdWx0T3BlcmFuZCA9IGN1cnJlbnRJ
bnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7Ci0gICAgdW5zaWduZWQgbmV4dE9mZnNldCA9IG1fY3Vy
cmVudEluZGV4ICsgT1BDT0RFX0xFTkdUSChvcF9jYWxsKTsKKyAgICB1bnNpZ25lZCBuZXh0T2Zm
c2V0ID0gbV9jdXJyZW50SW5kZXggKyBpbnN0cnVjdGlvblNpemU7CiAgICAgU3BlY3VsYXRlZFR5
cGUgcHJlZGljdGlvbiA9IGdldFByZWRpY3Rpb24oKTsKIAogICAgIGlmIChJbnRlcm5hbEZ1bmN0
aW9uKiBmdW5jdGlvbiA9IGNhbGxMaW5rU3RhdHVzLmludGVybmFsRnVuY3Rpb24oKSkgewotICAg
ICAgICBpZiAoaGFuZGxlQ29uc3RhbnRJbnRlcm5hbEZ1bmN0aW9uKHJlc3VsdE9wZXJhbmQsIGZ1
bmN0aW9uLCByZWdpc3Rlck9mZnNldCwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIHByZWRp
Y3Rpb24sIGtpbmQpKSB7CisgICAgICAgIGlmIChoYW5kbGVDb25zdGFudEludGVybmFsRnVuY3Rp
b24ocmVzdWx0LCBmdW5jdGlvbiwgcmVnaXN0ZXJPZmZzZXQsIGFyZ3VtZW50Q291bnRJbmNsdWRp
bmdUaGlzLCBwcmVkaWN0aW9uLCBraW5kKSkgewogICAgICAgICAgICAgLy8gVGhpcyBwaGFudG9t
aW5nIGhhcyB0byBiZSAqYWZ0ZXIqIHRoZSBjb2RlIGZvciB0aGUgaW50cmluc2ljLCB0byBzaWdu
aWZ5IHRoYXQKICAgICAgICAgICAgIC8vIHRoZSBpbnB1dHMgbXVzdCBiZSBrZXB0IGFsaXZlIHdo
YXRldmVyIGV4aXRzIHRoZSBpbnRyaW5zaWMgbWF5IGRvLgogICAgICAgICAgICAgYWRkVG9HcmFw
aChQaGFudG9tLCBjYWxsVGFyZ2V0KTsKQEAgLTExOTAsNyArMTE5OCw3IEBAIHZvaWQgQnl0ZUNv
ZGVQYXJzZXI6OmhhbmRsZUNhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgTm9k
ZVR5cGUgb3AsIENvCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIENhbiBvbmx5IGhh
bmRsZSB0aGlzIHVzaW5nIHRoZSBnZW5lcmljIGNhbGwgaGFuZGxlci4KLSAgICAgICAgYWRkQ2Fs
bChjdXJyZW50SW5zdHJ1Y3Rpb24sIG9wKTsKKyAgICAgICAgYWRkQ2FsbChyZXN1bHQsIG9wLCBj
YWxsZWUsIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCByZWdpc3Rlck9mZnNldCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgICAgIApAQCAtMTE5OCw3ICsxMjA2LDcgQEAgdm9pZCBC
eXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
LCBOb2RlVHlwZSBvcCwgQ28KICAgICBpZiAoaW50cmluc2ljICE9IE5vSW50cmluc2ljKSB7CiAg
ICAgICAgIGVtaXRGdW5jdGlvbkNoZWNrcyhjYWxsTGlua1N0YXR1cywgY2FsbFRhcmdldCwgcmVn
aXN0ZXJPZmZzZXQsIGtpbmQpOwogICAgICAgICAgICAgCi0gICAgICAgIGlmIChoYW5kbGVJbnRy
aW5zaWMocmVzdWx0T3BlcmFuZCwgaW50cmluc2ljLCByZWdpc3Rlck9mZnNldCwgYXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMsIHByZWRpY3Rpb24pKSB7CisgICAgICAgIGlmIChoYW5kbGVJbnRy
aW5zaWMocmVzdWx0LCBpbnRyaW5zaWMsIHJlZ2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50SW5j
bHVkaW5nVGhpcywgcHJlZGljdGlvbikpIHsKICAgICAgICAgICAgIC8vIFRoaXMgcGhhbnRvbWlu
ZyBoYXMgdG8gYmUgKmFmdGVyKiB0aGUgY29kZSBmb3IgdGhlIGludHJpbnNpYywgdG8gc2lnbmlm
eSB0aGF0CiAgICAgICAgICAgICAvLyB0aGUgaW5wdXRzIG11c3QgYmUga2VwdCBhbGl2ZSB3aGF0
ZXZlciBleGl0cyB0aGUgaW50cmluc2ljIG1heSBkby4KICAgICAgICAgICAgIGFkZFRvR3JhcGgo
UGhhbnRvbSwgY2FsbFRhcmdldCk7CkBAIC0xMjA3LDEzICsxMjE1LDEzIEBAIHZvaWQgQnl0ZUNv
ZGVQYXJzZXI6OmhhbmRsZUNhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgTm9k
ZVR5cGUgb3AsIENvCiAgICAgICAgICAgICAgICAgbV9ncmFwaC5jb21waWxhdGlvbigpLT5ub3Rp
Y2VJbmxpbmVkQ2FsbCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgfSBl
bHNlIGlmIChoYW5kbGVJbmxpbmluZyhjYWxsVGFyZ2V0LCByZXN1bHRPcGVyYW5kLCBjYWxsTGlu
a1N0YXR1cywgcmVnaXN0ZXJPZmZzZXQsIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCBuZXh0
T2Zmc2V0LCBraW5kKSkgeworICAgIH0gZWxzZSBpZiAoaGFuZGxlSW5saW5pbmcoY2FsbFRhcmdl
dCwgcmVzdWx0LCBjYWxsTGlua1N0YXR1cywgcmVnaXN0ZXJPZmZzZXQsIGFyZ3VtZW50Q291bnRJ
bmNsdWRpbmdUaGlzLCBuZXh0T2Zmc2V0LCBraW5kKSkgewogICAgICAgICBpZiAobV9ncmFwaC5j
b21waWxhdGlvbigpKQogICAgICAgICAgICAgbV9ncmFwaC5jb21waWxhdGlvbigpLT5ub3RpY2VJ
bmxpbmVkQ2FsbCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIGFkZENhbGwo
Y3VycmVudEluc3RydWN0aW9uLCBvcCk7CisgICAgYWRkQ2FsbChyZXN1bHQsIG9wLCBjYWxsZWUs
IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCByZWdpc3Rlck9mZnNldCk7CiB9CiAKIHZvaWQg
Qnl0ZUNvZGVQYXJzZXI6OmVtaXRGdW5jdGlvbkNoZWNrcyhjb25zdCBDYWxsTGlua1N0YXR1cyYg
Y2FsbExpbmtTdGF0dXMsIE5vZGUqIGNhbGxUYXJnZXQsIGludCByZWdpc3Rlck9mZnNldCwgQ29k
ZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQpAQCAtMTI1MCwzMCArMTI1OCwzMiBAQCB2b2lkIEJ5
dGVDb2RlUGFyc2VyOjplbWl0QXJndW1lbnRQaGFudG9tcyhpbnQgcmVnaXN0ZXJPZmZzZXQsIGlu
dCBhcmd1bWVudENvdW50SQogCiBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyhO
b2RlKiBjYWxsVGFyZ2V0Tm9kZSwgaW50IHJlc3VsdE9wZXJhbmQsIGNvbnN0IENhbGxMaW5rU3Rh
dHVzJiBjYWxsTGlua1N0YXR1cywgaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXMsIHVuc2lnbmVkIG5leHRPZmZzZXQsIENvZGVTcGVjaWFsaXphdGlvbktp
bmQga2luZCkKIHsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAg
CisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIGRhdGFMb2coIkNvbnNpZGVyaW5nIGlubGluaW5n
ICIsIGNhbGxMaW5rU3RhdHVzLCAiIGludG8gIiwgY3VycmVudENvZGVPcmlnaW4oKSwgIlxuIik7
CisgICAgCiAgICAgLy8gRmlyc3QsIHRoZSByZWFsbHkgc2ltcGxlIGNoZWNrczogZG8gd2UgaGF2
ZSBhbiBhY3R1YWwgSlMgZnVuY3Rpb24/Ci0gICAgaWYgKCFjYWxsTGlua1N0YXR1cy5leGVjdXRh
YmxlKCkpCisgICAgaWYgKCFjYWxsTGlua1N0YXR1cy5leGVjdXRhYmxlKCkpIHsKKyAgICAgICAg
aWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBiZWNhdXNlIHRo
ZXJlIGlzIG5vIGV4ZWN1dGFibGUuXG4iKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
IChjYWxsTGlua1N0YXR1cy5leGVjdXRhYmxlKCktPmlzSG9zdEZ1bmN0aW9uKCkpCisgICAgfQor
ICAgIGlmIChjYWxsTGlua1N0YXR1cy5leGVjdXRhYmxlKCktPmlzSG9zdEZ1bmN0aW9uKCkpIHsK
KyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBi
ZWNhdXNlIGl0J3MgYSBob3N0IGZ1bmN0aW9uLlxuIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CiAgICAgCiAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0ganNDYXN0
PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGNhbGxMaW5rU3RhdHVzLmV4ZWN1dGFibGUoKSk7CiAgICAg
CiAgICAgLy8gRG9lcyB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyB3ZSdyZSBwYXNzaW5nIG1hdGNo
IHRoZSBhcml0eSBvZiB0aGUgdGFyZ2V0PyBXZSBjdXJyZW50bHkKICAgICAvLyBpbmxpbmUgb25s
eSBpZiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBwYXNzZWQgaXMgZ3JlYXRlciB0aGFuIG9yIGVx
dWFsIHRvIHRoZSBudW1iZXIKICAgICAvLyBhcmd1bWVudHMgZXhwZWN0ZWQuCi0gICAgaWYgKHN0
YXRpY19jYXN0PGludD4oZXhlY3V0YWJsZS0+cGFyYW1ldGVyQ291bnQoKSkgKyAxID4gYXJndW1l
bnRDb3VudEluY2x1ZGluZ1RoaXMpCisgICAgaWYgKHN0YXRpY19jYXN0PGludD4oZXhlY3V0YWJs
ZS0+cGFyYW1ldGVyQ291bnQoKSkgKyAxID4gYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpIHsK
KyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCIgICAgRmFpbGluZyBi
ZWNhdXNlIG9mIGFyaXR5IG1pc21hdGNoLlxuIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAKLSAgICAvLyBIYXZlIHdlIGV4Y2VlZGVkIGlubGluZSBzdGFjayBkZXB0aCwgb3IgYXJlIHdl
IHRyeWluZyB0byBpbmxpbmUgYSByZWN1cnNpdmUgY2FsbD8KLSAgICAvLyBJZiBlaXRoZXIgb2Yg
dGhlc2UgYXJlIGRldGVjdGVkLCB0aGVuIGRvbid0IGlubGluZS4KLSAgICB1bnNpZ25lZCBkZXB0
aCA9IDA7Ci0gICAgZm9yIChJbmxpbmVTdGFja0VudHJ5KiBlbnRyeSA9IG1faW5saW5lU3RhY2tU
b3A7IGVudHJ5OyBlbnRyeSA9IGVudHJ5LT5tX2NhbGxlcikgewotICAgICAgICArK2RlcHRoOwot
ICAgICAgICBpZiAoZGVwdGggPj0gT3B0aW9uczo6bWF4aW11bUlubGluaW5nRGVwdGgoKSkKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gRGVwdGggZXhjZWVkZWQuCi0gICAgICAgIAotICAg
ICAgICBpZiAoZW50cnktPmV4ZWN1dGFibGUoKSA9PSBleGVjdXRhYmxlKQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOyAvLyBSZWN1cnNpb24gZGV0ZWN0ZWQuCiAgICAgfQogICAgIAogICAgIC8v
IERvIHdlIGhhdmUgYSBjb2RlIGJsb2NrLCBhbmQgZG9lcyB0aGUgY29kZSBibG9jaydzIHNpemUg
bWF0Y2ggdGhlIGhldXJpc3RpY3MvcmVxdWlyZW1lbnRzIGZvcgpAQCAtMTI4MywxMCArMTI5Myw2
MCBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyhOb2RlKiBjYWxsVGFyZ2V0
Tm9kZSwgaW50IHJlc3VsdE9wZXJhbmQsIGNvbgogICAgIC8vIGdsb2JhbCBmdW5jdGlvbiwgd2hl
cmUgd2F0Y2hwb2ludGluZyBnaXZlcyB1cyBzdGF0aWMgaW5mb3JtYXRpb24uIE92ZXJhbGwsIGl0
J3MgYSByYXJlIGNhc2UKICAgICAvLyBiZWNhdXNlIHdlIGV4cGVjdCB0aGF0IGFueSBob3QgY2Fs
bGVlcyB3b3VsZCBoYXZlIGFscmVhZHkgYmVlbiBjb21waWxlZC4KICAgICBDb2RlQmxvY2sqIGNv
ZGVCbG9jayA9IGV4ZWN1dGFibGUtPmJhc2VsaW5lQ29kZUJsb2NrRm9yKGtpbmQpOwotICAgIGlm
ICghY29kZUJsb2NrKQorICAgIGlmICghY29kZUJsb2NrKSB7CisgICAgICAgIGlmICh2ZXJib3Nl
KQorICAgICAgICAgICAgZGF0YUxvZygiICAgIEZhaWxpbmcgYmVjYXVzZSBubyBjb2RlIGJsb2Nr
IGF2YWlsYWJsZS5cbiIpOwogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFjYW5Jbmxp
bmVGdW5jdGlvbkZvcihjb2RlQmxvY2ssIGtpbmQsIGNhbGxMaW5rU3RhdHVzLmlzQ2xvc3VyZUNh
bGwoKSkpCisgICAgfQorICAgIENhcGFiaWxpdHlMZXZlbCBjYXBhYmlsaXR5TGV2ZWwgPSBpbmxp
bmVGdW5jdGlvbkZvckNhcGFiaWxpdHlMZXZlbCgKKyAgICAgICAgY29kZUJsb2NrLCBraW5kLCBj
YWxsTGlua1N0YXR1cy5pc0Nsb3N1cmVDYWxsKCkpOworICAgIGlmICghY2FuSW5saW5lKGNhcGFi
aWxpdHlMZXZlbCkpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9n
KCIgICAgRmFpbGluZyBiZWNhdXNlIHRoZSBmdW5jdGlvbiBpcyBub3QgaW5saW5lYWJsZS5cbiIp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIC8vIEZJWE1FOiB0aGlz
IHNob3VsZCBiZSBiZXR0ZXIgYXQgcHJlZGljdGluZyBob3cgbXVjaCBibG9hdCB3ZSB3aWxsIGlu
dHJvZHVjZSBieSBpbmxpbmluZworICAgIC8vIHRoaXMgZnVuY3Rpb24uCisgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzYyNworICAgIAorICAgIC8vIEhh
dmUgd2UgZXhjZWVkZWQgaW5saW5lIHN0YWNrIGRlcHRoLCBvciBhcmUgd2UgdHJ5aW5nIHRvIGlu
bGluZSBhIHJlY3Vyc2l2ZSBjYWxsIHRvCisgICAgLy8gdG9vIG1hbnkgbGV2ZWxzPyBJZiBlaXRo
ZXIgb2YgdGhlc2UgYXJlIGRldGVjdGVkLCB0aGVuIGRvbid0IGlubGluZS4gV2UgYWRqdXN0IG91
cgorICAgIC8vIGhldXJpc3RpY3MgaWYgd2UgYXJlIGRlYWxpbmcgd2l0aCBhIGZ1bmN0aW9uIHRo
YXQgY2Fubm90IG90aGVyd2lzZSBiZSBjb21waWxlZC4KKyAgICAKKyAgICB1bnNpZ25lZCBkZXB0
aExpbWl0OworICAgIHVuc2lnbmVkIHJlY3Vyc2lvbkxpbWl0OworICAgIGlmIChjYW5Db21waWxl
KGNhcGFiaWxpdHlMZXZlbCkpIHsKKyAgICAgICAgZGVwdGhMaW1pdCA9IE9wdGlvbnM6Om1heGlt
dW1JbmxpbmluZ0RlcHRoKCk7CisgICAgICAgIHJlY3Vyc2lvbkxpbWl0ID0gT3B0aW9uczo6bWF4
aW11bUlubGluaW5nUmVjdXJzaW9uKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGVwdGhMaW1p
dCA9IE9wdGlvbnM6Om1heGltdW1JbmxpbmluZ0RlcHRoRm9yTXVzdElubGluZSgpOworICAgICAg
ICByZWN1cnNpb25MaW1pdCA9IE9wdGlvbnM6Om1heGltdW1JbmxpbmluZ1JlY3Vyc2lvbkZvck11
c3RJbmxpbmUoKTsKKyAgICB9CisgICAgCisgICAgdW5zaWduZWQgZGVwdGggPSAwOworICAgIHVu
c2lnbmVkIHJlY3Vyc2lvbiA9IDA7CisgICAgCisgICAgZm9yIChJbmxpbmVTdGFja0VudHJ5KiBl
bnRyeSA9IG1faW5saW5lU3RhY2tUb3A7IGVudHJ5OyBlbnRyeSA9IGVudHJ5LT5tX2NhbGxlcikg
eworICAgICAgICArK2RlcHRoOworICAgICAgICBpZiAoZGVwdGggPj0gT3B0aW9uczo6bWF4aW11
bUlubGluaW5nRGVwdGgoKSkgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAg
ICAgICAgZGF0YUxvZygiICAgIEZhaWxpbmcgYmVjYXVzZSBkZXB0aCBleGNlZWRlZC5cbiIpOwor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBp
ZiAoZW50cnktPmV4ZWN1dGFibGUoKSA9PSBleGVjdXRhYmxlKSB7CisgICAgICAgICAgICArK3Jl
Y3Vyc2lvbjsKKyAgICAgICAgICAgIGlmIChyZWN1cnNpb24gPj0gT3B0aW9uczo6bWF4aW11bUlu
bGluaW5nUmVjdXJzaW9uKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAg
ICAgICAgICAgICAgICAgZGF0YUxvZygiICAgIEZhaWxpbmcgYmVjYXVzZSByZWN1cnNpb24gZGV0
ZWN0ZWQuXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIGRhdGFM
b2coIiAgICBDb21taXR0aW5nIHRvIGlubGluaW5nLlxuIik7CiAgICAgCiAgICAgLy8gTm93IHdl
IGtub3cgd2l0aG91dCBhIGRvdWJ0IHRoYXQgd2UgYXJlIGNvbW1pdHRlZCB0byBpbmxpbmluZy4g
U28gYmVnaW4gdGhlIHByb2Nlc3MKICAgICAvLyBieSBjaGVja2luZyB0aGUgY2FsbGVlIChpZiBu
ZWNlc3NhcnkpIGFuZCBtYWtpbmcgc3VyZSB0aGF0IGFyZ3VtZW50cyBhbmQgdGhlIGNhbGxlZQpA
QCAtMTc3MywxMSArMTgzMyw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUdldEJ5SWQo
CiAgICAgaW50IGRlc3RpbmF0aW9uT3BlcmFuZCwgU3BlY3VsYXRlZFR5cGUgcHJlZGljdGlvbiwg
Tm9kZSogYmFzZSwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwKICAgICBjb25zdCBHZXRCeUlk
U3RhdHVzJiBnZXRCeUlkU3RhdHVzKQogewotICAgIGlmICghZ2V0QnlJZFN0YXR1cy5pc1NpbXBs
ZSgpCi0gICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNp
dGUobV9jdXJyZW50SW5kZXgsIEJhZENhY2hlKQotICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9w
LT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZVdhdGNo
cG9pbnQpCi0gICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhp
dFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlKQotICAgICAgICB8fCBt
X2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4
LCBCYWRXZWFrQ29uc3RhbnRDYWNoZVdhdGNocG9pbnQpKSB7CisgICAgaWYgKCFnZXRCeUlkU3Rh
dHVzLmlzU2ltcGxlKCkpIHsKICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihkZXN0aW5hdGlv
bk9wZXJhbmQpLAogICAgICAgICAgICAgYWRkVG9HcmFwaCgKICAgICAgICAgICAgICAgICBnZXRC
eUlkU3RhdHVzLm1ha2VzQ2FsbHMoKSA/IEdldEJ5SWRGbHVzaCA6IEdldEJ5SWQsCkBAIC0yNDQ0
LDYgKzI1MDAsNyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxp
bWl0KQogICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQocHJvcGVydHkpOwogICAgICAgICAgICAg
YWRkVmFyQXJnQ2hpbGQodmFsdWUpOwogICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQoMCk7IC8v
IExlYXZlIHJvb20gZm9yIHByb3BlcnR5IHN0b3JhZ2UuCisgICAgICAgICAgICBhZGRWYXJBcmdD
aGlsZCgwKTsgLy8gTGVhdmUgcm9vbSBmb3IgbGVuZ3RoLgogICAgICAgICAgICAgYWRkVG9HcmFw
aChOb2RlOjpWYXJBcmcsIG9wY29kZUlEID09IG9wX3B1dF9ieV92YWxfZGlyZWN0ID8gUHV0QnlW
YWxEaXJlY3QgOiBQdXRCeVZhbCwgT3BJbmZvKGFycmF5TW9kZS5hc1dvcmQoKSksIE9wSW5mbygw
KSk7CiAKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3B1dF9ieV92YWwpOwpAQCAtMjQ1OSw4
ICsyNTE2LDkgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1p
dCkKICAgICAgICAgICAgIAogICAgICAgICAgICAgU3RyaW5nSW1wbCogdWlkID0gbV9ncmFwaC5p
ZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdOwogICAgICAgICAgICAgR2V0QnlJZFN0YXR1
cyBnZXRCeUlkU3RhdHVzID0gR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcigKLSAgICAgICAgICAg
ICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2ssIG1faW5saW5lU3RhY2tUb3At
Pm1fc3R1YkluZm9zLAotICAgICAgICAgICAgICAgIG1fY3VycmVudEluZGV4LCB1aWQpOworICAg
ICAgICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywgbV9kZmdDb2Rl
QmxvY2ssCisgICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9zdHViSW5mb3MsIG1f
ZGZnU3R1YkluZm9zLAorICAgICAgICAgICAgICAgIGN1cnJlbnRDb2RlT3JpZ2luKCksIHVpZCk7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGhhbmRsZUdldEJ5SWQoCiAgICAgICAgICAgICAg
ICAgY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcHJlZGljdGlvbiwgYmFzZSwgaWRl
bnRpZmllck51bWJlciwgZ2V0QnlJZFN0YXR1cyk7CkBAIC0yNDc5LDI2ICsyNTM3LDIwIEBAIGJv
b2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAg
ICBib29sIGRpcmVjdCA9IGN1cnJlbnRJbnN0cnVjdGlvbls4XS51Lm9wZXJhbmQ7CiAKICAgICAg
ICAgICAgIFB1dEJ5SWRTdGF0dXMgcHV0QnlJZFN0YXR1cyA9IFB1dEJ5SWRTdGF0dXM6OmNvbXB1
dGVGb3IoCi0gICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2Nr
LCBtX2lubGluZVN0YWNrVG9wLT5tX3N0dWJJbmZvcywKLSAgICAgICAgICAgICAgICBtX2N1cnJl
bnRJbmRleCwgbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdKTsKKyAgICAg
ICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2ssIG1fZGZnQ29kZUJs
b2NrLAorICAgICAgICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fc3R1YkluZm9zLCBtX2Rm
Z1N0dWJJbmZvcywKKyAgICAgICAgICAgICAgICBjdXJyZW50Q29kZU9yaWdpbigpLCBtX2dyYXBo
LmlkZW50aWZpZXJzKClbaWRlbnRpZmllck51bWJlcl0pOwogICAgICAgICAgICAgYm9vbCBjYW5D
b3VudEFzSW5saW5lZCA9IHRydWU7CiAgICAgICAgICAgICBpZiAoIXB1dEJ5SWRTdGF0dXMuaXNT
ZXQoKSkgewogICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoRm9yY2VPU1JFeGl0KTsKICAgICAg
ICAgICAgICAgICBjYW5Db3VudEFzSW5saW5lZCA9IGZhbHNlOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgCi0gICAgICAgICAgICBib29sIGhhc0V4aXRTaXRlID0KLSAgICAgICAgICAgICAg
ICBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudElu
ZGV4LCBCYWRDYWNoZSkKLSAgICAgICAgICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4
aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZVdhdGNocG9pbnQp
Ci0gICAgICAgICAgICAgICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNF
eGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGUpCi0gICAgICAgICAg
ICAgICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1
cnJlbnRJbmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGVXYXRjaHBvaW50KTsKLSAgICAgICAgICAg
IAotICAgICAgICAgICAgaWYgKCFoYXNFeGl0U2l0ZSAmJiBwdXRCeUlkU3RhdHVzLmlzU2ltcGxl
UmVwbGFjZSgpKSB7CisgICAgICAgICAgICBpZiAocHV0QnlJZFN0YXR1cy5pc1NpbXBsZVJlcGxh
Y2UoKSkgewogICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tTdHJ1Y3R1cmUsIE9wSW5m
byhtX2dyYXBoLmFkZFN0cnVjdHVyZVNldChwdXRCeUlkU3RhdHVzLm9sZFN0cnVjdHVyZSgpKSks
IGJhc2UpOwogICAgICAgICAgICAgICAgIGhhbmRsZVB1dEJ5T2Zmc2V0KGJhc2UsIGlkZW50aWZp
ZXJOdW1iZXIsIHB1dEJ5SWRTdGF0dXMub2Zmc2V0KCksIHZhbHVlKTsKICAgICAgICAgICAgIH0g
ZWxzZSBpZiAoCi0gICAgICAgICAgICAgICAgIWhhc0V4aXRTaXRlCi0gICAgICAgICAgICAgICAg
JiYgcHV0QnlJZFN0YXR1cy5pc1NpbXBsZVRyYW5zaXRpb24oKQorICAgICAgICAgICAgICAgIHB1
dEJ5SWRTdGF0dXMuaXNTaW1wbGVUcmFuc2l0aW9uKCkKICAgICAgICAgICAgICAgICAmJiAoIXB1
dEJ5SWRTdGF0dXMuc3RydWN0dXJlQ2hhaW4oKQogICAgICAgICAgICAgICAgICAgICB8fCBwdXRC
eUlkU3RhdHVzLnN0cnVjdHVyZUNoYWluKCktPmlzU3RpbGxWYWxpZCgpKSkgewogICAgICAgICAg
ICAgICAgIApAQCAtMjk3MywzMCArMzAyNSw0MSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJz
ZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfY29uc3Ry
dWN0KTsKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIG9wX2NhbGxfdmFyYXJnczogeworICAg
ICAgICAgICAgaW50IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7Cisg
ICAgICAgICAgICBpbnQgY2FsbGVlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsK
KyAgICAgICAgICAgIGludCB0aGlzUmVnID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFu
ZDsKKyAgICAgICAgICAgIGludCBhcmd1bWVudHMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5v
cGVyYW5kOworICAgICAgICAgICAgaW50IGZpcnN0RnJlZVJlZyA9IGN1cnJlbnRJbnN0cnVjdGlv
bls1XS51Lm9wZXJhbmQ7CisgICAgICAgICAgICAKICAgICAgICAgICAgIEFTU0VSVChpbmxpbmVD
YWxsRnJhbWUoKSk7Ci0gICAgICAgICAgICBBU1NFUlQoY3VycmVudEluc3RydWN0aW9uWzRdLnUu
b3BlcmFuZCA9PSBtX2lubGluZVN0YWNrVG9wLT5tX2NvZGVCbG9jay0+YXJndW1lbnRzUmVnaXN0
ZXIoKS5vZmZzZXQoKSk7CisgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGFyZ3VtZW50cywgYXJn
dW1lbnRzID09IG1faW5saW5lU3RhY2tUb3AtPm1fY29kZUJsb2NrLT5hcmd1bWVudHNSZWdpc3Rl
cigpLm9mZnNldCgpKTsKICAgICAgICAgICAgIEFTU0VSVCghbV9pbmxpbmVTdGFja1RvcC0+bV9j
b2RlQmxvY2stPnN5bWJvbFRhYmxlKCktPnNsb3dBcmd1bWVudHMoKSk7Ci0gICAgICAgICAgICAv
LyBJdCB3b3VsZCBiZSBjb29sIHRvIGZ1bm5lbCB0aGlzIGludG8gaGFuZGxlQ2FsbCgpIHNvIHRo
YXQgaXQgY2FuIGhhbmRsZQotICAgICAgICAgICAgLy8gaW5saW5pbmcuIEJ1dCBjdXJyZW50bHkg
dGhhdCB3b24ndCBiZSBwcm9maXRhYmxlIGFueXdheSwgc2luY2Ugbm9uZSBvZiB0aGUKLSAgICAg
ICAgICAgIC8vIHVzZXMgb2YgY2FsbF92YXJhcmdzIHdpbGwgYmUgaW5saW5lYWJsZS4gU28gd2Ug
c2V0IHRoaXMgdXAgbWFudWFsbHkgYW5kCi0gICAgICAgICAgICAvLyB3aXRob3V0IGlubGluZS9p
bnRyaW5zaWMgZGV0ZWN0aW9uLgotICAgICAgICAgICAgCi0gICAgICAgICAgICBTcGVjdWxhdGVk
VHlwZSBwcmVkaWN0aW9uID0gZ2V0UHJlZGljdGlvbigpOwotICAgICAgICAgICAgCisKICAgICAg
ICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tBcmd1bWVudHNOb3RDcmVhdGVkKTsKLSAgICAgICAgICAg
IAorCiAgICAgICAgICAgICB1bnNpZ25lZCBhcmdDb3VudCA9IGlubGluZUNhbGxGcmFtZSgpLT5h
cmd1bWVudHMuc2l6ZSgpOwotICAgICAgICAgICAgaWYgKEpTU3RhY2s6OlRoaXNBcmd1bWVudCAr
IGFyZ0NvdW50ID4gbV9wYXJhbWV0ZXJTbG90cykKLSAgICAgICAgICAgICAgICBtX3BhcmFtZXRl
clNsb3RzID0gSlNTdGFjazo6VGhpc0FyZ3VtZW50ICsgYXJnQ291bnQ7CiAgICAgICAgICAgICAK
LSAgICAgICAgICAgIGFkZFZhckFyZ0NoaWxkKGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudElu
c3RydWN0aW9uWzJdLnUub3BlcmFuZCkpKTsgLy8gY2FsbGVlCi0gICAgICAgICAgICBhZGRWYXJB
cmdDaGlsZChnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJh
bmQpKSk7IC8vIHRoaXMKKyAgICAgICAgICAgIC8vIExldCdzIGNvbXB1dGUgdGhlIHJlZ2lzdGVy
IG9mZnNldC4gV2Ugc3RhcnQgd2l0aCB0aGUgbGFzdCB1c2VkIHJlZ2lzdGVyLCBhbmQKKyAgICAg
ICAgICAgIC8vIHRoZW4gYWRqdXN0IGZvciB0aGUgdGhpbmdzIHdlIHdhbnQgaW4gdGhlIGNhbGwg
ZnJhbWUuCisgICAgICAgICAgICBpbnQgcmVnaXN0ZXJPZmZzZXQgPSBmaXJzdEZyZWVSZWcgKyAx
OworICAgICAgICAgICAgcmVnaXN0ZXJPZmZzZXQgLT0gYXJnQ291bnQ7IC8vIFdlIHdpbGwgYmUg
cGFzc2luZyBzb21lIGFyZ3VtZW50cy4KKyAgICAgICAgICAgIHJlZ2lzdGVyT2Zmc2V0IC09IEpT
U3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemU7IC8vIFdlIHdpbGwgcHJldGVuZCB0byBoYXZlIGEg
Y2FsbCBmcmFtZSBoZWFkZXIuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEdldCB0aGUg
YWxpZ25tZW50IHJpZ2h0LgorICAgICAgICAgICAgcmVnaXN0ZXJPZmZzZXQgPSAtV1RGOjpyb3Vu
ZFVwVG9NdWx0aXBsZU9mKAorICAgICAgICAgICAgICAgIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJz
KCksCisgICAgICAgICAgICAgICAgLXJlZ2lzdGVyT2Zmc2V0KTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgLy8gVGhlIGJ5dGVjb2RlIHdvdWxkbid0IGhhdmUgc2V0IHVwIHRoZSBhcmd1bWVu
dHMuIEJ1dCB3ZSdsbCBkbyBpdCBhbmQgbWFrZSBpdAorICAgICAgICAgICAgLy8gbG9vayBsaWtl
IHRoZSBieXRlY29kZSBoYWQgZG9uZSBpdC4KKyAgICAgICAgICAgIGludCBuZXh0UmVnaXN0ZXIg
PSByZWdpc3Rlck9mZnNldCArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemU7CisgICAgICAg
ICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKG5leHRSZWdpc3RlcisrKSwgZ2V0KFZpcnR1YWxSZWdp
c3Rlcih0aGlzUmVnKSksIEltbWVkaWF0ZVNldCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGFyZ3VtZW50ID0gMTsgYXJndW1lbnQgPCBhcmdDb3VudDsgKythcmd1bWVudCkKLSAgICAgICAg
ICAgICAgICBhZGRWYXJBcmdDaGlsZChnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoYXJn
dW1lbnQpKSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIo
Y3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksCi0gICAgICAgICAgICAgICAgYWRkVG9H
cmFwaChOb2RlOjpWYXJBcmcsIENhbGwsIE9wSW5mbygwKSwgT3BJbmZvKHByZWRpY3Rpb24pKSk7
CisgICAgICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihuZXh0UmVnaXN0ZXIrKyksIGdl
dCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudChhcmd1bWVudCkpLCBJbW1lZGlhdGVTZXQpOwog
ICAgICAgICAgICAgCisgICAgICAgICAgICBoYW5kbGVDYWxsKAorICAgICAgICAgICAgICAgIHJl
c3VsdCwgQ2FsbCwgQ29kZUZvckNhbGwsIE9QQ09ERV9MRU5HVEgob3BfY2FsbF92YXJhcmdzKSwK
KyAgICAgICAgICAgICAgICBjYWxsZWUsIGFyZ0NvdW50LCByZWdpc3Rlck9mZnNldCk7CiAgICAg
ICAgICAgICBORVhUX09QQ09ERShvcF9jYWxsX3ZhcmFyZ3MpOwogICAgICAgICB9CiAgICAgICAg
ICAgICAKQEAgLTM2NTQsNiArMzcxNywxNiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZSgp
CiAgICAgLy8gU2V0IGR1cmluZyBjb25zdHJ1Y3Rpb24uCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRJ
bmRleCk7CiAgICAgCisgICAgaWYgKGlzRlRMKG1fZ3JhcGgubV9wbGFuLm1vZGUpKSB7CisgICAg
ICAgIG1fZGZnQ29kZUJsb2NrID0gbV9ncmFwaC5tX3BsYW4ucHJvZmlsZWRERkdDb2RlQmxvY2su
Z2V0KCk7CisgICAgICAgIGlmIChtX2RmZ0NvZGVCbG9jaykgeworICAgICAgICAgICAgaWYgKE9w
dGlvbnM6OmVuYWJsZVBvbHl2YXJpYW50Q2FsbElubGluaW5nKCkpCisgICAgICAgICAgICAgICAg
Q2FsbExpbmtTdGF0dXM6OmNvbXB1dGVERkdTdGF0dXNlcyhtX2RmZ0NvZGVCbG9jaywgbV9jYWxs
Q29udGV4dE1hcCk7CisgICAgICAgICAgICBpZiAoT3B0aW9uczo6ZW5hYmxlUG9seXZhcmlhbnRC
eUlkSW5saW5pbmcoKSkKKyAgICAgICAgICAgICAgICBtX2RmZ0NvZGVCbG9jay0+Z2V0U3R1Yklu
Zm9NYXAobV9kZmdTdHViSW5mb3MpOworICAgICAgICB9CisgICAgfQorICAgIAogICAgIGlmICht
X2NvZGVCbG9jay0+Y2FwdHVyZUNvdW50KCkpIHsKICAgICAgICAgU3ltYm9sVGFibGUqIHN5bWJv
bFRhYmxlID0gbV9jb2RlQmxvY2stPnN5bWJvbFRhYmxlKCk7CiAgICAgICAgIENvbmN1cnJlbnRK
SVRMb2NrZXIgbG9ja2VyKHN5bWJvbFRhYmxlLT5tX2xvY2spOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5jcHAKaW5kZXgg
NWRlMzZhMGRhMmNlNDliY2Y0ODczNzI4ODhiOTY5ZmJjODM4OTUyMi4uNjNmMWU5OGI3ZjNhYTcx
NDU1OWJiYmUwZWFlOTFkZTU0M2U1NWMyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwCkBAIC03OSw2ICs3OSw4
IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgLy8gc3Vib3B0aW1hbCwgYmVjYXVzZSBp
ZiBteSBzdWNjZXNzb3IgaGFzIG11bHRpcGxlIHByZWRlY2Vzc29ycyB0aGVuIHdlJ2xsCiAgICAg
ICAgICAgICAgICAgICAgIC8vIGJlIGtlZXBpbmcgYWxpdmUgdGhpbmdzIG9uIG90aGVyIHByZWRl
Y2Vzc29yIGVkZ2VzIHVubmVjZXNzYXJpbHkuCiAgICAgICAgICAgICAgICAgICAgIC8vIFdoYXQg
d2UgcmVhbGx5IG5lZWQgaXMgdGhlIG5vdGlvbiBvZiBlbmQtb2YtYmxvY2sgZ2hvc3RpZXMhCisg
ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBBbGxvdyBwdXR0aW5nIHBoYW50b21zIGFmdGVy
IHRlcm1pbmFscy4KKyAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNjc3OAogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NTRVBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ1NFUGhhc2UuY3BwCmluZGV4IGE0ZTE1OWU3M2IzMzhmYzBiMTlmZTk5YTZlODgwYzEy
ZDdiZmM3NjkuLmQzYmZjNTBiZGU4ZDZkNzg0NjhkZmQwN2RlMzZiOWVmYWE1ZGIxYjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwCkBAIC0yOCw2ICsyOCw4IEBA
CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkRGR0Fic3RyYWN0SGVhcC5oIgor
I2luY2x1ZGUgIkRGR0Nsb2JiZXJpemUuaCIKICNpbmNsdWRlICJERkdFZGdlVXNlc1N0cnVjdHVy
ZS5oIgogI2luY2x1ZGUgIkRGR0dyYXBoLmgiCiAjaW5jbHVkZSAiREZHUGhhc2UuaCIKQEAgLTEw
MDYsNiArMTAwOCwxOCBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0K
ICAgICAKKyAgICBib29sIGludmFsaWRhdGlvblBvaW50RWxpbWluYXRpb24oKQorICAgIHsKKyAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9pbmRleEluQmxvY2s7IGktLTspIHsKKyAgICAgICAg
ICAgIE5vZGUqIG5vZGUgPSBtX2N1cnJlbnRCbG9jay0+YXQoaSk7CisgICAgICAgICAgICBpZiAo
bm9kZS0+b3AoKSA9PSBJbnZhbGlkYXRpb25Qb2ludCkKKyAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgICAgIGlmICh3cml0ZXNPdmVybGFwKG1fZ3JhcGgsIG5vZGUsIFdhdGNo
cG9pbnRfZmlyZSkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKICAgICB2b2lkIGVsaW1pbmF0ZUlycmVsZXZhbnRQ
aGFudG9tQ2hpbGRyZW4oTm9kZSogbm9kZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChub2RlLT5v
cCgpID09IFBoYW50b20pOwpAQCAtMTM4NSw5ICsxMzk5LDEzIEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICBlbGltaW5hdGUocHV0QnlPZmZzZXRTdG9yZUVsaW1pbmF0aW9uKG1fZ3JhcGgubV9zdG9y
YWdlQWNjZXNzRGF0YVtub2RlLT5zdG9yYWdlQWNjZXNzRGF0YUluZGV4KCldLmlkZW50aWZpZXJO
dW1iZXIsIG5vZGUtPmNoaWxkMSgpLm5vZGUoKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAKKyAgICAgICAgY2FzZSBJbnZhbGlkYXRpb25Qb2ludDoKKyAgICAgICAgICAgIGlm
IChpbnZhbGlkYXRpb25Qb2ludEVsaW1pbmF0aW9uKCkpCisgICAgICAgICAgICAgICAgZWxpbWlu
YXRlKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAogICAgICAgICBjYXNlIFBo
YW50b206CiAgICAgICAgICAgICAvLyBGSVhNRTogd2Ugb3VnaHQgdG8gcmVtb3ZlIFBoYW50b20n
cyB0aGF0IGhhdmUgbm8gY2hpbGRyZW4uCi0gICAgICAgICAgICAKICAgICAgICAgICAgIGVsaW1p
bmF0ZUlycmVsZXZhbnRQaGFudG9tQ2hpbGRyZW4obm9kZSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
YXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRp
ZXMuY3BwCmluZGV4IGU2ZmNkOGMxMWM4YmIwMTU3NDRjNjk2ZTlmMjQzZWE4NTI0Y2Y1YmEuLmQx
YmViOTMxMjQ1OGI1MjliODg4YjFjMTllZmU1Y2NiYzZiMTRiZmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTE5OCw2ICsxOTgsOCBAQCBD
YXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxv
Y2sqIGNvZGVCbG9jaywgSW5zdHJ1YwogICAgIGNhc2Ugb3BfY2FsbF92YXJhcmdzOgogICAgICAg
ICBpZiAoY29kZUJsb2NrLT51c2VzQXJndW1lbnRzKCkgJiYgcGNbNF0udS5vcGVyYW5kID09IGNv
ZGVCbG9jay0+YXJndW1lbnRzUmVnaXN0ZXIoKS5vZmZzZXQoKSkKICAgICAgICAgICAgIHJldHVy
biBDYW5JbmxpbmU7CisgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaGFuZGxlIHRoaXMuCisg
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc2MjYK
ICAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CiAKICAgICBjYXNlIG9wX25ld19yZWdleHA6
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmgKaW5kZXggNWJk
ODBjNTE3Y2E0OGYwOTU3OTgyMzQwNDRhMTY4NTY1YTNkNTRlYy4uM2NiOTI0NzIyMDEyNThlZjk4
MWJjZWRmMzYyNzQxZGE2MmMwN2QwNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDYXBhYmlsaXRpZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NhcGFiaWxpdGllcy5oCkBAIC05NiwxOSArOTYsMjggQEAgaW5saW5lIENhcGFiaWxpdHlMZXZl
bCBmdW5jdGlvbkZvckNvbnN0cnVjdENhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVCbG9j
aykKICAgICByZXR1cm4gY2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jayk7CiB9CiAKLWlubGluZSBi
b29sIGNhbklubGluZUZ1bmN0aW9uRm9yQ2FsbChDb2RlQmxvY2sqIGNvZGVCbG9jaykKK2lubGlu
ZSBDYXBhYmlsaXR5TGV2ZWwgaW5saW5lRnVuY3Rpb25Gb3JDYWxsQ2FwYWJpbGl0eUxldmVsKENv
ZGVCbG9jayogY29kZUJsb2NrKQogewotICAgIHJldHVybiBtaWdodElubGluZUZ1bmN0aW9uRm9y
Q2FsbChjb2RlQmxvY2spICYmIGNhbklubGluZShjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKSk7
CisgICAgaWYgKCFtaWdodElubGluZUZ1bmN0aW9uRm9yQ2FsbChjb2RlQmxvY2spKQorICAgICAg
ICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKKyAgICAKKyAgICByZXR1cm4gY2FwYWJpbGl0eUxldmVs
KGNvZGVCbG9jayk7CiB9CiAKLWlubGluZSBib29sIGNhbklubGluZUZ1bmN0aW9uRm9yQ2xvc3Vy
ZUNhbGwoQ29kZUJsb2NrKiBjb2RlQmxvY2spCitpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGlubGlu
ZUZ1bmN0aW9uRm9yQ2xvc3VyZUNhbGxDYXBhYmlsaXR5TGV2ZWwoQ29kZUJsb2NrKiBjb2RlQmxv
Y2spCiB7Ci0gICAgcmV0dXJuIG1pZ2h0SW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbChjb2Rl
QmxvY2spICYmIGNhbklubGluZShjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKSk7CisgICAgaWYg
KCFtaWdodElubGluZUZ1bmN0aW9uRm9yQ2xvc3VyZUNhbGwoY29kZUJsb2NrKSkKKyAgICAgICAg
cmV0dXJuIENhbm5vdENvbXBpbGU7CisgICAgCisgICAgcmV0dXJuIGNhcGFiaWxpdHlMZXZlbChj
b2RlQmxvY2spOwogfQogCi1pbmxpbmUgYm9vbCBjYW5JbmxpbmVGdW5jdGlvbkZvckNvbnN0cnVj
dChDb2RlQmxvY2sqIGNvZGVCbG9jaykKK2lubGluZSBDYXBhYmlsaXR5TGV2ZWwgaW5saW5lRnVu
Y3Rpb25Gb3JDb25zdHJ1Y3RDYXBhYmlsaXR5TGV2ZWwoQ29kZUJsb2NrKiBjb2RlQmxvY2spCiB7
Ci0gICAgcmV0dXJuIG1pZ2h0SW5saW5lRnVuY3Rpb25Gb3JDb25zdHJ1Y3QoY29kZUJsb2NrKSAm
JiBjYW5JbmxpbmUoY2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jaykpOworICAgIGlmICghbWlnaHRJ
bmxpbmVGdW5jdGlvbkZvckNvbnN0cnVjdChjb2RlQmxvY2spKQorICAgICAgICByZXR1cm4gQ2Fu
bm90Q29tcGlsZTsKKyAgICAKKyAgICByZXR1cm4gY2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jayk7
CiB9CiAKIGlubGluZSBib29sIG1pZ2h0SW5saW5lRnVuY3Rpb25Gb3IoQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKQEAgLTEyNCwxNiArMTMzLDE2IEBA
IGlubGluZSBib29sIG1pZ2h0SW5saW5lRnVuY3Rpb24oQ29kZUJsb2NrKiBjb2RlQmxvY2spCiAg
ICAgcmV0dXJuIG1pZ2h0SW5saW5lRnVuY3Rpb25Gb3IoY29kZUJsb2NrLCBjb2RlQmxvY2stPnNw
ZWNpYWxpemF0aW9uS2luZCgpKTsKIH0KIAotaW5saW5lIGJvb2wgY2FuSW5saW5lRnVuY3Rpb25G
b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgYm9v
bCBpc0Nsb3N1cmVDYWxsKQoraW5saW5lIENhcGFiaWxpdHlMZXZlbCBpbmxpbmVGdW5jdGlvbkZv
ckNhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZVNwZWNpYWxpemF0aW9u
S2luZCBraW5kLCBib29sIGlzQ2xvc3VyZUNhbGwpCiB7CiAgICAgaWYgKGlzQ2xvc3VyZUNhbGwp
IHsKICAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNhbGwpOwotICAgICAgICByZXR1cm4g
Y2FuSW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbChjb2RlQmxvY2spOworICAgICAgICByZXR1
cm4gaW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbENhcGFiaWxpdHlMZXZlbChjb2RlQmxvY2sp
OwogICAgIH0KICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkKLSAgICAgICAgcmV0dXJuIGNh
bklubGluZUZ1bmN0aW9uRm9yQ2FsbChjb2RlQmxvY2spOworICAgICAgICByZXR1cm4gaW5saW5l
RnVuY3Rpb25Gb3JDYWxsQ2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jayk7CiAgICAgQVNTRVJUKGtp
bmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgcmV0dXJuIGNhbklubGluZUZ1bmN0aW9uRm9y
Q29uc3RydWN0KGNvZGVCbG9jayk7CisgICAgcmV0dXJuIGlubGluZUZ1bmN0aW9uRm9yQ29uc3Ry
dWN0Q2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jayk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlND
OjpERkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5oCmluZGV4IDdiNGIxZGI1ZjA4
ZTdjNDljNGY2N2NlMmY0N2IzNTM3ZGY0ZTEyZWIuLmU5ZWFjYmQ1YzRiOWEyZDM3NDFkN2U5ODhh
NDNiOTRiZDBlMmY2ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q29tbW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uaApAQCAt
ODcsMTUgKzg3LDYgQEAgaW5saW5lIGJvb2wgdmFsaWRhdGlvbkVuYWJsZWQoKQogI2VuZGlmCiB9
CiAKLWlubGluZSBib29sIGVuYWJsZUNvbmN1cnJlbnRKSVQoKQotewotI2lmIEVOQUJMRShDT05D
VVJSRU5UX0pJVCkKLSAgICByZXR1cm4gT3B0aW9uczo6ZW5hYmxlQ29uY3VycmVudEpJVCgpICYm
IE9wdGlvbnM6Om51bWJlck9mQ29tcGlsZXJUaHJlYWRzKCk7Ci0jZWxzZQotICAgIHJldHVybiBm
YWxzZTsKLSNlbmRpZgotfQotCiBpbmxpbmUgYm9vbCBlbmFibGVJbnQ1MigpCiB7CiAjaWYgVVNF
KEpTVkFMVUU2NCkKQEAgLTIzNSw3ICsyMjYsMTMgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBERkcgewogCiAvLyBQdXQgdGhpbmdzIGhlcmUgdGhhdCBtdXN0IGJlIGRlZmluZWQgZXZlbiBp
ZiBFTkFCTEUoREZHX0pJVCkgaXMgZmFsc2UuCiAKLWVudW0gQ2FwYWJpbGl0eUxldmVsIHsgQ2Fu
bm90Q29tcGlsZSwgQ2FuSW5saW5lLCBDYW5Db21waWxlLCBDYW5Db21waWxlQW5kSW5saW5lLCBD
YXBhYmlsaXR5TGV2ZWxOb3RTZXQgfTsKK2VudW0gQ2FwYWJpbGl0eUxldmVsIHsKKyAgICBDYW5u
b3RDb21waWxlLAorICAgIENhbklubGluZSwKKyAgICBDYW5Db21waWxlLAorICAgIENhbkNvbXBp
bGVBbmRJbmxpbmUsCisgICAgQ2FwYWJpbGl0eUxldmVsTm90U2V0Cit9OwogCiBpbmxpbmUgYm9v
bCBjYW5Db21waWxlKENhcGFiaWxpdHlMZXZlbCBsZXZlbCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tcGlsYXRpb25Nb2RlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbXBpbGF0aW9uTW9kZS5oCmluZGV4IDEwMzVmNjBiYzlkOWZiYjAy
MmEwNTIzN2U4N2U2OGU5Y2I4NGRhNDUuLjJkNmU0OWFkNTgzZTIxYmUwOGE3YzZhNzUwNWFmNmFj
MWU2NmI4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tcGls
YXRpb25Nb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21waWxhdGlv
bk1vZGUuaApAQCAtMzcsNiArMzcsMTcgQEAgZW51bSBDb21waWxhdGlvbk1vZGUgewogICAgIEZU
TEZvck9TUkVudHJ5TW9kZQogfTsKIAoraW5saW5lIGJvb2wgaXNGVEwoQ29tcGlsYXRpb25Nb2Rl
IG1vZGUpCit7CisgICAgc3dpdGNoIChtb2RlKSB7CisgICAgY2FzZSBGVExNb2RlOgorICAgIGNh
c2UgRlRMRm9yT1NSRW50cnlNb2RlOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0
OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCiB9IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6REZHCiAKIG5hbWVzcGFjZSBXVEYgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEcml2ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2
ZXIuY3BwCmluZGV4IGE4MWY3ZjJmOTZlOTljODA4ZGQ1NmI1NWY4NzRjMTk3NmE0YzZkMTMuLjVk
MjdjMTAxYjkzZTZkZTE1MjFkYWMxNjI5YTNjYjFlZjY1ZTYzOTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RyaXZlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1LDkgKzU1
LDkgQEAgdW5zaWduZWQgZ2V0TnVtQ29tcGlsYXRpb25zKCkKIAogI2lmIEVOQUJMRShERkdfSklU
KQogc3RhdGljIENvbXBpbGF0aW9uUmVzdWx0IGNvbXBpbGVJbXBsKAotICAgIFZNJiB2bSwgQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIENvbXBpbGF0aW9uTW9kZSBtb2RlLCB1bnNpZ25lZCBvc3JFbnRy
eUJ5dGVjb2RlSW5kZXgsCi0gICAgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVW
YWx1ZXMsCi0gICAgUGFzc1JlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IGNhbGxi
YWNrLCBXb3JrbGlzdCogd29ya2xpc3QpCisgICAgVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9j
aywgQ29kZUJsb2NrKiBwcm9maWxlZERGR0NvZGVCbG9jaywgQ29tcGlsYXRpb25Nb2RlIG1vZGUs
CisgICAgdW5zaWduZWQgb3NyRW50cnlCeXRlY29kZUluZGV4LCBjb25zdCBPcGVyYW5kczxKU1Zh
bHVlPiYgbXVzdEhhbmRsZVZhbHVlcywKKyAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRp
b25DYWxsYmFjaz4gY2FsbGJhY2spCiB7CiAgICAgU2FtcGxpbmdSZWdpb24gc2FtcGxpbmdSZWdp
b24oIkRGRyBDb21waWxhdGlvbiAoRHJpdmVyKSIpOwogICAgIApAQCAtNjYsNiArNjYsNyBAQCBz
dGF0aWMgQ29tcGlsYXRpb25SZXN1bHQgY29tcGlsZUltcGwoCiAgICAgQVNTRVJUKGNvZGVCbG9j
ayk7CiAgICAgQVNTRVJUKGNvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKSk7CiAgICAgQVNTRVJUKGNv
ZGVCbG9jay0+YWx0ZXJuYXRpdmUoKS0+aml0VHlwZSgpID09IEpJVENvZGU6OkJhc2VsaW5lSklU
KTsKKyAgICBBU1NFUlQoIXByb2ZpbGVkREZHQ29kZUJsb2NrIHx8IHByb2ZpbGVkREZHQ29kZUJs
b2NrLT5qaXRUeXBlKCkgPT0gSklUQ29kZTo6REZHSklUKTsKICAgICAKICAgICBpZiAoIU9wdGlv
bnM6OnVzZURGR0pJVCgpIHx8ICFNYWNyb0Fzc2VtYmxlcjo6c3VwcG9ydHNGbG9hdGluZ1BvaW50
KCkpCiAgICAgICAgIHJldHVybiBDb21waWxhdGlvbkZhaWxlZDsKQEAgLTgwLDE2ICs4MSwzMSBA
QCBzdGF0aWMgQ29tcGlsYXRpb25SZXN1bHQgY29tcGlsZUltcGwoCiAgICAgLy8gbWFrZSBzdXJl
IHRoYXQgYWxsIEpJVCBjb2RlIGdlbmVyYXRpb24gZG9lcyBmaW5hbGl6YXRpb24gb24gdGhlIG1h
aW4gdGhyZWFkLgogICAgIHZtLmdldENUSVN0dWIob3NyRXhpdEdlbmVyYXRpb25UaHVua0dlbmVy
YXRvcik7CiAgICAgdm0uZ2V0Q1RJU3R1Yih0aHJvd0V4Y2VwdGlvbkZyb21DYWxsU2xvd1BhdGhH
ZW5lcmF0b3IpOwotICAgIHZtLmdldENUSVN0dWIobGlua0NhbGxUaHVua0dlbmVyYXRvcik7Ci0g
ICAgdm0uZ2V0Q1RJU3R1YihsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IpOwotICAgIHZtLmdl
dENUSVN0dWIobGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IpOwotICAgIHZtLmdldENUSVN0
dWIodmlydHVhbENhbGxUaHVua0dlbmVyYXRvcik7Ci0gICAgdm0uZ2V0Q1RJU3R1Yih2aXJ0dWFs
Q29uc3RydWN0VGh1bmtHZW5lcmF0b3IpOworICAgIGlmIChtb2RlID09IERGR01vZGUpIHsKKyAg
ICAgICAgdm0uZ2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKTsKKyAgICAgICAgdm0u
Z2V0Q1RJU3R1YihsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2bS5nZXRD
VElTdHViKGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yKTsKKyAgICAgICAgdm0uZ2V0Q1RJ
U3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKTsKKyAgICAgICAgdm0uZ2V0Q1RJU3R1Yih2
aXJ0dWFsQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IpOworICAgIH0gZWxzZSB7CisgICAgICAgIHZt
LmdldENUSVN0dWIobGlua0NhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKTsKKyAg
ICAgICAgdm0uZ2V0Q1RJU3R1YihsaW5rQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3NUaHVua0dl
bmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0dWIobGlua0Nsb3N1cmVDYWxsVGhhdFByZXNl
cnZlc1JlZ3NUaHVua0dlbmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0dWIodmlydHVhbENh
bGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKTsKKyAgICAgICAgdm0uZ2V0Q1RJU3R1
Yih2aXJ0dWFsQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcik7CisgICAg
fQogICAgIAogICAgIFJlZlB0cjxQbGFuPiBwbGFuID0gYWRvcHRSZWYoCi0gICAgICAgIG5ldyBQ
bGFuKGNvZGVCbG9jaywgbW9kZSwgb3NyRW50cnlCeXRlY29kZUluZGV4LCBtdXN0SGFuZGxlVmFs
dWVzKSk7CisgICAgICAgIG5ldyBQbGFuKGNvZGVCbG9jaywgcHJvZmlsZWRERkdDb2RlQmxvY2ss
IG1vZGUsIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgbXVzdEhhbmRsZVZhbHVlcykpOwogICAgIAot
ICAgIGlmICh3b3JrbGlzdCkgeworICAgIGJvb2wgZW5hYmxlQ29uY3VycmVudEpJVDsKKyNpZiBF
TkFCTEUoQ09OQ1VSUkVOVF9KSVQpCisgICAgZW5hYmxlQ29uY3VycmVudEpJVCA9IE9wdGlvbnM6
OmVuYWJsZUNvbmN1cnJlbnRKSVQoKTsKKyNlbHNlIC8vIEVOQUJMRShDT05DVVJSRU5UX0pJVCkK
KyAgICBlbmFibGVDb25jdXJyZW50SklUID0gZmFsc2U7CisjZW5kaWYgLy8gRU5BQkxFKENPTkNV
UlJFTlRfSklUKQorICAgIGlmIChlbmFibGVDb25jdXJyZW50SklUKSB7CisgICAgICAgIFdvcmts
aXN0KiB3b3JrbGlzdCA9IGVuc3VyZUdsb2JhbFdvcmtsaXN0Rm9yKG1vZGUpOwogICAgICAgICBw
bGFuLT5jYWxsYmFjayA9IGNhbGxiYWNrOwogICAgICAgICBpZiAobG9nQ29tcGlsYXRpb25DaGFu
Z2VzKCkpCiAgICAgICAgICAgICBkYXRhTG9nKCJEZWZlcnJpbmcgREZHIGNvbXBpbGF0aW9uIG9m
ICIsICpjb2RlQmxvY2ssICIgd2l0aCBxdWV1ZSBsZW5ndGggIiwgd29ya2xpc3QtPnF1ZXVlTGVu
Z3RoKCksICIuXG4iKTsKQEAgLTEwMiwyMSArMTE4LDIyIEBAIHN0YXRpYyBDb21waWxhdGlvblJl
c3VsdCBjb21waWxlSW1wbCgKIH0KICNlbHNlIC8vIEVOQUJMRShERkdfSklUKQogc3RhdGljIENv
bXBpbGF0aW9uUmVzdWx0IGNvbXBpbGVJbXBsKAotICAgIFZNJiwgQ29kZUJsb2NrKiwgQ29tcGls
YXRpb25Nb2RlLCB1bnNpZ25lZCwgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mLAotICAgIFBhc3NS
ZWZQdHI8RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiwgV29ya2xpc3QqKQorICAgIFZNJiwg
Q29kZUJsb2NrKiwgQ29kZUJsb2NrKiwgQ29tcGlsYXRpb25Nb2RlLCB1bnNpZ25lZCwgY29uc3Qg
T3BlcmFuZHM8SlNWYWx1ZT4mLAorICAgIFBhc3NSZWZQdHI8RGVmZXJyZWRDb21waWxhdGlvbkNh
bGxiYWNrPikKIHsKICAgICByZXR1cm4gQ29tcGlsYXRpb25GYWlsZWQ7CiB9CiAjZW5kaWYgLy8g
RU5BQkxFKERGR19KSVQpCiAKIENvbXBpbGF0aW9uUmVzdWx0IGNvbXBpbGUoCi0gICAgVk0mIHZt
LCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29tcGlsYXRpb25Nb2RlIG1vZGUsIHVuc2lnbmVkIG9z
ckVudHJ5Qnl0ZWNvZGVJbmRleCwKLSAgICBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhh
bmRsZVZhbHVlcywKLSAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4g
cGFzc2VkQ2FsbGJhY2ssIFdvcmtsaXN0KiB3b3JrbGlzdCkKKyAgICBWTSYgdm0sIENvZGVCbG9j
ayogY29kZUJsb2NrLCBDb2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLCBDb21waWxhdGlv
bk1vZGUgbW9kZSwKKyAgICB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIGNvbnN0IE9w
ZXJhbmRzPEpTVmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzLAorICAgIFBhc3NSZWZQdHI8RGVmZXJy
ZWRDb21waWxhdGlvbkNhbGxiYWNrPiBwYXNzZWRDYWxsYmFjaykKIHsKICAgICBSZWZQdHI8RGVm
ZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjYWxsYmFjayA9IHBhc3NlZENhbGxiYWNrOwogICAg
IENvbXBpbGF0aW9uUmVzdWx0IHJlc3VsdCA9IGNvbXBpbGVJbXBsKAotICAgICAgICB2bSwgY29k
ZUJsb2NrLCBtb2RlLCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIG11c3RIYW5kbGVWYWx1ZXMsIGNh
bGxiYWNrLCB3b3JrbGlzdCk7CisgICAgICAgIHZtLCBjb2RlQmxvY2ssIHByb2ZpbGVkREZHQ29k
ZUJsb2NrLCBtb2RlLCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIG11c3RIYW5kbGVWYWx1ZXMsCisg
ICAgICAgIGNhbGxiYWNrKTsKICAgICBpZiAocmVzdWx0ICE9IENvbXBpbGF0aW9uRGVmZXJyZWQp
CiAgICAgICAgIGNhbGxiYWNrLT5jb21waWxhdGlvbkRpZENvbXBsZXRlKGNvZGVCbG9jaywgcmVz
dWx0KTsKICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEcml2ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVy
LmgKaW5kZXggOWQ0MzYzOGRmNzAwY2JlODM4YWU1NmJhNGVkMzc1Y2Q1YzVlNDExMC4uYzk2Yjhk
YzY2NTc5MDk2NjEzMTExZmYxN2YyOThjYTc3Yzg3NDJkYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0RyaXZlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MCwxNiArNDAsMTQgQEAgY2xhc3MgVk07CiAK
IG5hbWVzcGFjZSBERkcgewogCi1jbGFzcyBXb3JrbGlzdDsKLQogSlNfRVhQT1JUX1BSSVZBVEUg
dW5zaWduZWQgZ2V0TnVtQ29tcGlsYXRpb25zKCk7CiAKIC8vIElmIHRoZSB3b3JrbGlzdCBpcyBu
b24tbnVsbCwgd2UgZG8gYSBjb25jdXJyZW50IGNvbXBpbGUuIE90aGVyd2lzZSB3ZSBkbyBhIHN5
bmNocm9ub3VzCiAvLyBjb21waWxlLiBFdmVuIGlmIHdlIGRvIGEgc3luY2hyb25vdXMgY29tcGls
ZSwgd2UgY2FsbCB0aGUgY2FsbGJhY2sgd2l0aCB0aGUgcmVzdWx0LgogQ29tcGlsYXRpb25SZXN1
bHQgY29tcGlsZSgKLSAgICBWTSYsIENvZGVCbG9jayosIENvbXBpbGF0aW9uTW9kZSwgdW5zaWdu
ZWQgb3NyRW50cnlCeXRlY29kZUluZGV4LAotICAgIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBt
dXN0SGFuZGxlVmFsdWVzLAotICAgIFBhc3NSZWZQdHI8RGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrPiwgV29ya2xpc3QqKTsKKyAgICBWTSYsIENvZGVCbG9jayosIENvZGVCbG9jayogcHJvZmls
ZWRERkdDb2RlQmxvY2ssIENvbXBpbGF0aW9uTW9kZSwKKyAgICB1bnNpZ25lZCBvc3JFbnRyeUJ5
dGVjb2RlSW5kZXgsIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzLAor
ICAgIFBhc3NSZWZQdHI8RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPik7CiAKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpERkcKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdGYWlsZWRGaW5hbGl6ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
YWlsZWRGaW5hbGl6ZXIuY3BwCmluZGV4IGZiMDBlMjAyMWQzYWVhY2NjMTVkNjY5ODMwOTQyYzE1
YTEwMzViNDAuLjgwYTRjNjQ3MjE4NmVlYzUxZWMxYjg2YzNkZjdjMTA2MDg3MTEwYTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5jcHAKQEAg
LTM5LDYgKzM5LDExIEBAIEZhaWxlZEZpbmFsaXplcjo6fkZhaWxlZEZpbmFsaXplcigpCiB7CiB9
CiAKK3NpemVfdCBGYWlsZWRGaW5hbGl6ZXI6OmNvZGVTaXplKCkKK3sKKyAgICByZXR1cm4gMDsK
K30KKwogYm9vbCBGYWlsZWRGaW5hbGl6ZXI6OmZpbmFsaXplKCkKIHsKICAgICByZXR1cm4gZmFs
c2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZhaWxlZEZpbmFs
aXplci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGYWlsZWRGaW5hbGl6ZXIuaApp
bmRleCA2ZGY1YTMwYWRlMzQ5YjE3ZjVmMzFjZWEwZTE5MWRlZmE5ZWNhYWIyLi40NjQ4NmU3ZWQ3
YTEyZGEwN2UxN2U1ZTFjZGQxZTk4MWM5YzFlYTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVyLmgKQEAgLTM5LDYgKzM5LDcgQEAgcHVibGljOgog
ICAgIEZhaWxlZEZpbmFsaXplcihQbGFuJik7CiAgICAgdmlydHVhbCB+RmFpbGVkRmluYWxpemVy
KCk7CiAgICAgCisgICAgdmlydHVhbCBzaXplX3QgY29kZVNpemUoKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIGJvb2wgZmluYWxpemUoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZmluYWxp
emVGdW5jdGlvbigpIG92ZXJyaWRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRmluYWxpemVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Zp
bmFsaXplci5oCmluZGV4IDc4MmM3NDRiMWY2YzliYjcxY2U4ZTljOWI0ZjE1MDZjM2ExMjRkNWQu
LjgyYmMwN2RmNWI0OTE5MjVlZTdkNzg1N2RlNDRlZTQwNmY2YmUyNTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmluYWxpemVyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaW5hbGl6ZXIuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAg
ICAgRmluYWxpemVyKFBsYW4mKTsKICAgICB2aXJ0dWFsIH5GaW5hbGl6ZXIoKTsKICAgICAKKyAg
ICB2aXJ0dWFsIHNpemVfdCBjb2RlU2l6ZSgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZmluYWxp
emUoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGZpbmFsaXplRnVuY3Rpb24oKSA9IDA7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IDE4NWYwMzU5
MTIxMjk0ZTBiZTVjOGViNDg3Mzg5NjQwMGVmYzg1MTIuLjBlYzEzMTk3MTQ4YTY0YWRiNzEyNTcx
MDFhNzM3MzNhNGFkOTZjNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcApAQCAtMTAwLDEyICsxMDAsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBC
aXRSU2hpZnQ6CiAgICAgICAgIGNhc2UgQml0TFNoaWZ0OgogICAgICAgICBjYXNlIEJpdFVSU2hp
ZnQ6IHsKLSAgICAgICAgICAgIGZpeEJpbmFyeUludEVkZ2VzKCk7CisgICAgICAgICAgICBmaXhJ
bnRFZGdlKG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGZpeEludEVkZ2Uobm9kZS0+Y2hp
bGQyKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIEFy
aXRoSU11bDogewotICAgICAgICAgICAgZml4QmluYXJ5SW50RWRnZXMoKTsKKyAgICAgICAgICAg
IGZpeEludEVkZ2Uobm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZml4SW50RWRnZShub2Rl
LT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBub2RlLT5zZXRPcChBcml0aE11bCk7CiAgICAgICAg
ICAgICBub2RlLT5zZXRBcml0aE1vZGUoQXJpdGg6OlVuY2hlY2tlZCk7CiAgICAgICAgICAgICBu
b2RlLT5jaGlsZDEoKS5zZXRVc2VLaW5kKEludDMyVXNlKTsKQEAgLTQ1MCw2ICs0NTIsNyBAQCBw
cml2YXRlOgogICAgICAgICBjYXNlIEdldEJ5VmFsOiB7CiAgICAgICAgICAgICBub2RlLT5zZXRB
cnJheU1vZGUoCiAgICAgICAgICAgICAgICAgbm9kZS0+YXJyYXlNb2RlKCkucmVmaW5lKAorICAg
ICAgICAgICAgICAgICAgICBtX2dyYXBoLCBub2RlLT5jb2RlT3JpZ2luLAogICAgICAgICAgICAg
ICAgICAgICBub2RlLT5jaGlsZDEoKS0+cHJlZGljdGlvbigpLAogICAgICAgICAgICAgICAgICAg
ICBub2RlLT5jaGlsZDIoKS0+cHJlZGljdGlvbigpLAogICAgICAgICAgICAgICAgICAgICBTcGVj
Tm9uZSwgbm9kZS0+ZmxhZ3MoKSkpOwpAQCAtNTA3LDYgKzUxMCw3IEBAIHByaXZhdGU6CiAKICAg
ICAgICAgICAgIG5vZGUtPnNldEFycmF5TW9kZSgKICAgICAgICAgICAgICAgICBub2RlLT5hcnJh
eU1vZGUoKS5yZWZpbmUoCisgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUtPmNvZGVP
cmlnaW4sCiAgICAgICAgICAgICAgICAgICAgIGNoaWxkMS0+cHJlZGljdGlvbigpLAogICAgICAg
ICAgICAgICAgICAgICBjaGlsZDItPnByZWRpY3Rpb24oKSwKICAgICAgICAgICAgICAgICAgICAg
Y2hpbGQzLT5wcmVkaWN0aW9uKCkpKTsKQEAgLTU5Miw2ICs1OTYsNyBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgLy8gdGhhdCB3b3VsZCBicmVhayB0aGluZ3MuCiAgICAgICAgICAgICBub2RlLT5z
ZXRBcnJheU1vZGUoCiAgICAgICAgICAgICAgICAgbm9kZS0+YXJyYXlNb2RlKCkucmVmaW5lKAor
ICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLCBub2RlLT5jb2RlT3JpZ2luLAogICAgICAgICAg
ICAgICAgICAgICBub2RlLT5jaGlsZDEoKS0+cHJlZGljdGlvbigpICYgU3BlY0NlbGwsCiAgICAg
ICAgICAgICAgICAgICAgIFNwZWNJbnQzMiwKICAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hp
bGQyKCktPnByZWRpY3Rpb24oKSkpOwpAQCAtOTQ2LDcgKzk1MSw2IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAgICAgT3BJbmZvKG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPmNvZGVPcmln
aW4pKSk7CiAgICAgICAgICAgICBOb2RlKiBiYXJyaWVyTm9kZSA9IG1fZ3JhcGguYWRkTm9kZShT
cGVjTm9uZSwgQ29uZGl0aW9uYWxTdG9yZUJhcnJpZXIsIG1fY3VycmVudE5vZGUtPmNvZGVPcmln
aW4sIAogICAgICAgICAgICAgICAgIEVkZ2UoZ2xvYmFsT2JqZWN0Tm9kZSwgS25vd25DZWxsVXNl
KSwgRWRnZShub2RlLT5jaGlsZDEoKS5ub2RlKCksIFVudHlwZWRVc2UpKTsKLSAgICAgICAgICAg
IGZpeHVwTm9kZShiYXJyaWVyTm9kZSk7CiAgICAgICAgICAgICBtX2luc2VydGlvblNldC5pbnNl
cnQobV9pbmRleEluQmxvY2ssIGJhcnJpZXJOb2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CkBAIC05NTQsNyArOTU4LDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBUZWFyT2Zm
QWN0aXZhdGlvbjogewogICAgICAgICAgICAgTm9kZSogYmFycmllck5vZGUgPSBtX2dyYXBoLmFk
ZE5vZGUoU3BlY05vbmUsIFN0b3JlQmFycmllcldpdGhOdWxsQ2hlY2ssIG1fY3VycmVudE5vZGUt
PmNvZGVPcmlnaW4sIAogICAgICAgICAgICAgICAgIEVkZ2Uobm9kZS0+Y2hpbGQxKCkubm9kZSgp
LCBVbnR5cGVkVXNlKSk7Ci0gICAgICAgICAgICBmaXh1cE5vZGUoYmFycmllck5vZGUpOwogICAg
ICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0KG1faW5kZXhJbkJsb2NrLCBiYXJyaWVyTm9k
ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTAzNCw2ICsxMDM3LDI0IEBA
IHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICBpZiAoIW5vZGUtPmNvbnRhaW5zTW92SGludCgp
KQogICAgICAgICAgICAgREZHX05PREVfRE9fVE9fQ0hJTERSRU4obV9ncmFwaCwgbm9kZSwgb2Jz
ZXJ2ZVVudHlwZWRFZGdlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChub2RlLT5pc1Rlcm1pbmFs
KCkpIHsKKyAgICAgICAgICAgIC8vIFRlcm1pbmFsIG5vZGVzIGRvbid0IG5lZWQgcG9zdC1waGFu
dG9tcywgYW5kIGluc2VydGluZyB0aGVtIHdvdWxkIHZpb2xhdGUKKyAgICAgICAgICAgIC8vIHRo
ZSBjdXJyZW50IHJlcXVpcmVtZW50IHRoYXQgYSB0ZXJtaW5hbCBpcyB0aGUgbGFzdCB0aGluZyBp
biBhIGJsb2NrLiBXZQorICAgICAgICAgICAgLy8gc2hvdWxkIGV2ZW50dWFsbHkgY2hhbmdlIHRo
YXQgcmVxdWlyZW1lbnQgYnV0IGV2ZW4gaWYgd2UgZGlkLCB0aGlzIHdvdWxkCisgICAgICAgICAg
ICAvLyBzdGlsbCBiZSBhIHZhbGlkIG9wdGltaXphdGlvbi4gQWxsIHRlcm1pbmFscyBhY2NlcHQg
anVzdCBvbmUgaW5wdXQsIGFuZAorICAgICAgICAgICAgLy8gaWYgdGhhdCBpbnB1dCBpcyBhIGNv
bnZlcnNpb24gbm9kZSB0aGVuIG5vIGZ1cnRoZXIgc3BlY3VsYXRpb25zIHdpbGwgYmUKKyAgICAg
ICAgICAgIC8vIHBlcmZvcm1lZC4KKyAgICAgICAgICAgIC8vIEZJWE1FOiBHZXQgcmlkIG9mIHRo
aXMgYnkgYWxsb3dpbmcgUGhhbnRvbXMgYWZ0ZXIgdGVybWluYWxzLgorICAgICAgICAgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjc3OAorICAgICAgICAg
ICAgbV9yZXF1aXJlZFBoYW50b21zLnJlc2l6ZSgwKTsKKyAgICAgICAgLy8gU2luY2UgU3RvcmVC
YXJyaWVycyBhcmUgcmVjdXJzaXZlbHkgZml4ZWQgdXAgc28gdGhhdCB0aGVpciBjaGlsZHJlbiBs
b29rIAorICAgICAgICAvLyBpZGVudGljYWwgdG8gdGhhdCBvZiB0aGUgbm9kZSB0aGV5J3JlIGJh
cnJpZXItaW5nLCB3ZSBuZWVkIHRvIGF2b2lkIGFkZGluZworICAgICAgICAvLyBhbnkgUGhhbnRv
bXMgd2hlbiBwcm9jZXNzaW5nIHRoZW0gYmVjYXVzZSB0aGlzIHdvdWxkIGludmFsaWRhdGUgdGhl
IAorICAgICAgICAvLyBJbnNlcnRpb25TZXQncyBpbnZhcmlhbnQgb2YgaW5zZXJ0aW5nIHRoaW5n
cyBpbiBhIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZworICAgICAgICAvLyBvcmRlci4gVGhpcyBz
aG91bGQgYmUgb2theSBhbnl3YXlzIGJlY2F1c2UgU3RvcmVCYXJyaWVycyBjYW4ndCBleGl0LiAK
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBhZGRQaGFudG9tc0lmTmVjZXNzYXJ5KCk7CiAg
ICAgfQogICAgIAogICAgIHZvaWQgb2JzZXJ2ZVVudHlwZWRFZGdlKE5vZGUqLCBFZGdlJiBlZGdl
KQpAQCAtMTMxOSw2ICsxMzQwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgfQorICAgICAgICAgICAgYWRkUGhhbnRvbXNJZk5lY2Vzc2FyeSgpOwogICAgICAgICB9CiAg
ICAgICAgIG1faW5zZXJ0aW9uU2V0LmV4ZWN1dGUoYmxvY2spOwogICAgIH0KQEAgLTEzMzQsOCAr
MTM1NiwxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgIT0gU2V0TG9j
YWwpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAKLSAgICAgICAgICAg
IGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSkKKyAgICAgICAgICAg
IGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSkgewogICAgICAgICAg
ICAgICAgIGZpeEVkZ2U8VW50eXBlZFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAg
ICAgIGFkZFBoYW50b21zSWZOZWNlc3NhcnkoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgICAgICBtX2luc2VydGlvblNldC5leGVjdXRlKGJsb2NrKTsKICAgICB9CkBAIC0xNTA5LDYg
KzE1MzMsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIC8vIEludDhUb0RvdWJsZSB3aWxs
IGNvbnZlcnQgaW50NTIncyB0aGF0IGZpdCBpbiBhbiBpbnQzMiBpbnRvIGEgZG91YmxlCiAgICAg
ICAgICAgICAgICAgLy8gcmF0aGVyIHRoYW4gdHJ5aW5nIHRvIGNyZWF0ZSBhIGJveGVkIGludDMy
IGxpa2UgSW50NTJUb1ZhbHVlIGRvZXMuCiAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgbV9yZXF1aXJlZFBoYW50b21zLmFwcGVuZChlZGdlLm5vZGUoKSk7CiAgICAgICAgICAgICAg
ICAgTm9kZSogcmVzdWx0ID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKICAgICAgICAgICAg
ICAgICAgICAgbV9pbmRleEluQmxvY2ssIFNwZWNJbnQ1MkFzRG91YmxlLCBJbnQ1MlRvRG91Ymxl
LAogICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luLCBFZGdlKGVk
Z2Uubm9kZSgpLCBOdW1iZXJVc2UpKTsKQEAgLTE1NjIsNiArMTU4Nyw3IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAvLwogICAgICAgICAgICAgLy8gQnV0IHRoZSBzb2x1dGlvbiB3ZSB1c2UgaGFu
ZGxlcyB0aGUgYWJvdmUgZ3JhY2VmdWxseS4KICAgICAgICAgICAgIAorICAgICAgICAgICAgbV9y
ZXF1aXJlZFBoYW50b21zLmFwcGVuZChlZGdlLm5vZGUoKSk7CiAgICAgICAgICAgICBOb2RlKiBy
ZXN1bHQgPSBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAgICAgICAgIG1faW5k
ZXhJbkJsb2NrLCBTcGVjSW50NTIsIEludDUyVG9WYWx1ZSwKICAgICAgICAgICAgICAgICBtX2N1
cnJlbnROb2RlLT5jb2RlT3JpZ2luLCBFZGdlKGVkZ2Uubm9kZSgpLCBVbnR5cGVkVXNlKSk7CkBA
IC0xNTgzLDE2ICsxNjA5LDE1IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBiYXJyaWVyTm9kZSA9
IG1fZ3JhcGguYWRkTm9kZShTcGVjTm9uZSwgQ29uZGl0aW9uYWxTdG9yZUJhcnJpZXIsIG1fY3Vy
cmVudE5vZGUtPmNvZGVPcmlnaW4sIAogICAgICAgICAgICAgICAgIEVkZ2UoY2hpbGQxLm5vZGUo
KSwgY2hpbGQxLnVzZUtpbmQoKSksIEVkZ2UoY2hpbGQyLm5vZGUoKSwgY2hpbGQyLnVzZUtpbmQo
KSkpOwogICAgICAgICB9Ci0gICAgICAgIGZpeHVwTm9kZShiYXJyaWVyTm9kZSk7CiAgICAgICAg
IG1faW5zZXJ0aW9uU2V0Lmluc2VydChpbmRleEluQmxvY2ssIGJhcnJpZXJOb2RlKTsKICAgICB9
CiAKLSAgICBib29sIGZpeEludEVkZ2UoRWRnZSYgZWRnZSkKKyAgICB2b2lkIGZpeEludEVkZ2Uo
RWRnZSYgZWRnZSkKICAgICB7CiAgICAgICAgIE5vZGUqIG5vZGUgPSBlZGdlLm5vZGUoKTsKICAg
ICAgICAgaWYgKG5vZGUtPnNob3VsZFNwZWN1bGF0ZUludDMyKCkpIHsKICAgICAgICAgICAgIGZp
eEVkZ2U8SW50MzJVc2U+KGVkZ2UpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBVc2VLaW5kIHVzZUtp
bmQ7CkBAIC0xNjEwLDI0ICsxNjM1LDEzIEBAIHByaXZhdGU6CiAgICAgICAgIG9ic2VydmVVc2VL
aW5kT25Ob2RlKG5vZGUsIHVzZUtpbmQpOwogICAgICAgICAKICAgICAgICAgZWRnZSA9IEVkZ2Uo
bmV3Tm9kZSwgS25vd25JbnQzMlVzZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAg
ICAKLSAgICB2b2lkIGZpeEJpbmFyeUludEVkZ2VzKCkKLSAgICB7Ci0gICAgICAgIEFkamFjZW5j
eUxpc3QgY2hpbGRyZW4gPSBtX2N1cnJlbnROb2RlLT5jaGlsZHJlbjsKLSAgICAgICAgCi0gICAg
ICAgIC8vIENhbGwgZml4SW50RWRnZSgpIG9uIGJvdGggZWRnZXMuCi0gICAgICAgIGJvb2wgbmVl
ZFBoYW50b20gPQotICAgICAgICAgICAgZml4SW50RWRnZShtX2N1cnJlbnROb2RlLT5jaGlsZDEo
KSkgfCBmaXhJbnRFZGdlKG1fY3VycmVudE5vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgCi0gICAg
ICAgIGlmICghbmVlZFBoYW50b20pCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1faW5z
ZXJ0aW9uU2V0Lmluc2VydE5vZGUobV9pbmRleEluQmxvY2sgKyAxLCBTcGVjTm9uZSwgUGhhbnRv
bSwgbV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiwgY2hpbGRyZW4pOworICAgICAgICBtX3JlcXVp
cmVkUGhhbnRvbXMuYXBwZW5kKG5vZGUpOwogICAgIH0KICAgICAKICAgICB2b2lkIGluamVjdElu
dDMyVG9Eb3VibGVOb2RlKEVkZ2UmIGVkZ2UsIFVzZUtpbmQgdXNlS2luZCA9IE51bWJlclVzZSkK
ICAgICB7CisgICAgICAgIG1fcmVxdWlyZWRQaGFudG9tcy5hcHBlbmQoZWRnZS5ub2RlKCkpOwor
ICAgICAgICAKICAgICAgICAgTm9kZSogcmVzdWx0ID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9k
ZSgKICAgICAgICAgICAgIG1faW5kZXhJbkJsb2NrLCBTcGVjSW50NTJBc0RvdWJsZSwgSW50MzJU
b0RvdWJsZSwKICAgICAgICAgICAgIG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4sIEVkZ2UoZWRn
ZS5ub2RlKCksIE51bWJlclVzZSkpOwpAQCAtMTcyMiw3ICsxNzM2LDggQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgIGFycmF5TW9kZSA9
IGFycmF5TW9kZS5yZWZpbmUobm9kZS0+Y2hpbGQxKCktPnByZWRpY3Rpb24oKSwgbm9kZS0+cHJl
ZGljdGlvbigpKTsKKyAgICAgICAgYXJyYXlNb2RlID0gYXJyYXlNb2RlLnJlZmluZSgKKyAgICAg
ICAgICAgIG1fZ3JhcGgsIG5vZGUtPmNvZGVPcmlnaW4sIG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0
aW9uKCksIG5vZGUtPnByZWRpY3Rpb24oKSk7CiAgICAgICAgICAgICAKICAgICAgICAgaWYgKGFy
cmF5TW9kZS50eXBlKCkgPT0gQXJyYXk6OkdlbmVyaWMpIHsKICAgICAgICAgICAgIC8vIENoZWNr
IGlmIHRoZSBpbnB1dCBpcyBzb21ldGhpbmcgdGhhdCB3ZSBjYW4ndCBnZXQgYXJyYXkgbGVuZ3Ro
IGZvciwgYnV0IGZvciB3aGljaCB3ZQpAQCAtMTgxMywxMiArMTgyOCwyNyBAQCBwcml2YXRlOgog
ICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CisgICAgCisgICAgdm9pZCBhZGRQaGFudG9tc0lmTmVjZXNzYXJ5
KCkKKyAgICB7CisgICAgICAgIGlmIChtX3JlcXVpcmVkUGhhbnRvbXMuaXNFbXB0eSgpKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9y
ZXF1aXJlZFBoYW50b21zLnNpemUoKTsgaS0tOykgeworICAgICAgICAgICAgbV9pbnNlcnRpb25T
ZXQuaW5zZXJ0Tm9kZSgKKyAgICAgICAgICAgICAgICBtX2luZGV4SW5CbG9jayArIDEsIFNwZWNO
b25lLCBQaGFudG9tLCBtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAg
IEVkZ2UobV9yZXF1aXJlZFBoYW50b21zW2ldLCBVbnR5cGVkVXNlKSk7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIG1fcmVxdWlyZWRQaGFudG9tcy5yZXNpemUoMCk7CisgICAgfQogCiAg
ICAgQmFzaWNCbG9jayogbV9ibG9jazsKICAgICB1bnNpZ25lZCBtX2luZGV4SW5CbG9jazsKICAg
ICBOb2RlKiBtX2N1cnJlbnROb2RlOwogICAgIEluc2VydGlvblNldCBtX2luc2VydGlvblNldDsK
ICAgICBib29sIG1fcHJvZml0YWJpbGl0eUNoYW5nZWQ7CisgICAgVmVjdG9yPE5vZGUqLCAzPiBt
X3JlcXVpcmVkUGhhbnRvbXM7CiB9OwogICAgIAogYm9vbCBwZXJmb3JtRml4dXAoR3JhcGgmIGdy
YXBoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAppbmRleCA4MjU2MDA3ZTlj
NDAxNDIzNzhkMmZiMjZkNGU5OWZhYzI2NDhlMGJjLi4xMzVjYTg1ZmM5MTc3MDFlMzU1MjQ1Yzli
MDEwMGMyMGZlZWI5YTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0dyYXBoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcApA
QCAtMzYsOCArMzYsMTAgQEAKICNpbmNsdWRlICJGdW5jdGlvbkV4ZWN1dGFibGVEdW1wLmgiCiAj
aW5jbHVkZSAiSklULmgiCiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCisjaW5jbHVkZSAiTWF4
RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIKICNpbmNsdWRlICJPcGVyYW5kc0lubGluZXMu
aCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIK
ICNpbmNsdWRlIDx3dGYvQ29tbWFQcmludGVyLmg+CiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+
CiAKQEAgLTY3OCwxMCArNjgwLDEwIEBAIEZ1bGxCeXRlY29kZUxpdmVuZXNzJiBHcmFwaDo6bGl2
ZW5lc3NGb3IoSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUpCiBib29sIEdyYXBoOjpp
c0xpdmVJbkJ5dGVjb2RlKFZpcnR1YWxSZWdpc3RlciBvcGVyYW5kLCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4pCiB7CiAgICAgZm9yICg7OykgeworICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgcmVnID0g
VmlydHVhbFJlZ2lzdGVyKAorICAgICAgICAgICAgb3BlcmFuZC5vZmZzZXQoKSAtIGNvZGVPcmln
aW4uc3RhY2tPZmZzZXQoKSk7CisgICAgICAgIAogICAgICAgICBpZiAob3BlcmFuZC5vZmZzZXQo
KSA8IGNvZGVPcmlnaW4uc3RhY2tPZmZzZXQoKSArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNp
emUpIHsKLSAgICAgICAgICAgIFZpcnR1YWxSZWdpc3RlciByZWcgPSBWaXJ0dWFsUmVnaXN0ZXIo
Ci0gICAgICAgICAgICAgICAgb3BlcmFuZC5vZmZzZXQoKSAtIGNvZGVPcmlnaW4uc3RhY2tPZmZz
ZXQoKSk7Ci0gICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChyZWcuaXNBcmd1bWVudCgpKSB7
CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQocmVnLm9mZnNldCgpIDwgSlNTdGFjazo6
Q2FsbEZyYW1lSGVhZGVyU2l6ZSk7CiAgICAgICAgICAgICAgICAgCkBAIC03MDAsMTAgKzcwMiwx
OCBAQCBib29sIEdyYXBoOjppc0xpdmVJbkJ5dGVjb2RlKFZpcnR1YWxSZWdpc3RlciBvcGVyYW5k
LCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiAgICAgICAgICAgICAgICAgcmVnLm9mZnNldCgpLCBj
b2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBp
ZiAoIWNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lKQorICAgICAgICBJbmxpbmVDYWxsRnJhbWUq
IGlubGluZUNhbGxGcmFtZSA9IGNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lOworICAgICAgICBp
ZiAoIWlubGluZUNhbGxGcmFtZSkKICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIC8vIEFy
Z3VtZW50cyBhcmUgYWx3YXlzIGxpdmUuIFRoaXMgd291bGQgYmUgcmVkdW5kYW50IGlmIGl0IHdh
c24ndCBmb3Igb3VyCisgICAgICAgIC8vIG9wX2NhbGxfdmFyYXJncyBpbmxpbmluZy4KKyAgICAg
ICAgaWYgKHJlZy5pc0FyZ3VtZW50KCkKKyAgICAgICAgICAgICYmIHJlZy50b0FyZ3VtZW50KCkK
KyAgICAgICAgICAgICYmIHN0YXRpY19jYXN0PHNpemVfdD4ocmVnLnRvQXJndW1lbnQoKSkgPCBp
bmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgCi0gICAgICAgIGNvZGVPcmlnaW4gPSBjb2RlT3JpZ2luLmlubGluZUNhbGxG
cmFtZS0+Y2FsbGVyOworICAgICAgICBjb2RlT3JpZ2luID0gaW5saW5lQ2FsbEZyYW1lLT5jYWxs
ZXI7CiAgICAgfQogICAgIAogICAgIHJldHVybiB0cnVlOwpAQCAtNzExLDcgKzcyMSwxMyBAQCBi
b29sIEdyYXBoOjppc0xpdmVJbkJ5dGVjb2RlKFZpcnR1YWxSZWdpc3RlciBvcGVyYW5kLCBDb2Rl
T3JpZ2luIGNvZGVPcmlnaW4pCiAKIHVuc2lnbmVkIEdyYXBoOjpmcmFtZVJlZ2lzdGVyQ291bnQo
KQogewotICAgIHJldHVybiBtX25leHRNYWNoaW5lTG9jYWwgKyBtX3BhcmFtZXRlclNsb3RzOwor
ICAgIHVuc2lnbmVkIHJlc3VsdCA9IG1fbmV4dE1hY2hpbmVMb2NhbCArIHN0ZDo6bWF4KG1fcGFy
YW1ldGVyU2xvdHMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihtYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbEluUmVnaXN0ZXJzKSk7CisgICAgcmV0dXJuIHJvdW5kTG9jYWxSZWdpc3RlckNvdW50
Rm9yRnJhbWVQb2ludGVyT2Zmc2V0KHJlc3VsdCk7Cit9CisKK3Vuc2lnbmVkIEdyYXBoOjpzdGFj
a1BvaW50ZXJPZmZzZXQoKQoreworICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChm
cmFtZVJlZ2lzdGVyQ291bnQoKSAtIDEpLm9mZnNldCgpOwogfQogCiB1bnNpZ25lZCBHcmFwaDo6
cmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0dyYXBoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dy
YXBoLmgKaW5kZXggN2E1MTcwMDQ4NzFiNzc1ODc3MDk2OTJmMDQ3MmUzMmI5ZDlkMDFhMC4uMjkx
OWFmNDg3NjJiZjI1MzliMDhmMjBkZWRhNjVhZTU1NjNiNmU0ZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHR3JhcGguaApAQCAtNzkzLDYgKzc5Myw3IEBAIHB1YmxpYzoKICAgICBib29sIGlz
TGl2ZUluQnl0ZWNvZGUoVmlydHVhbFJlZ2lzdGVyLCBDb2RlT3JpZ2luKTsKICAgICAKICAgICB1
bnNpZ25lZCBmcmFtZVJlZ2lzdGVyQ291bnQoKTsKKyAgICB1bnNpZ25lZCBzdGFja1BvaW50ZXJP
ZmZzZXQoKTsKICAgICB1bnNpZ25lZCByZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0KCk7CiAg
ICAgdW5zaWduZWQgcmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhlY3V0aW9uQW5kRXhpdCgpOwog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAKaW5kZXggYzUzNjUz
ZjhmYWI1MzQ1OTc3MTJiMDAwY2QwMmQxNGE1MzNiMTAzMC4uMDYyNzVkM2E0YTE4ZmEzZDU3MWI5
NDMyNjJiODY5Y2MwODAxN2M4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdKSVRDb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENv
ZGUuY3BwCkBAIC0xNTYsNiArMTU2LDcgQEAgdm9pZCBKSVRDb2RlOjpzZXRPcHRpbWl6YXRpb25U
aHJlc2hvbGRCYXNlZE9uQ29tcGlsYXRpb25SZXN1bHQoCiAgICAgc3dpdGNoIChyZXN1bHQpIHsK
ICAgICBjYXNlIENvbXBpbGF0aW9uU3VjY2Vzc2Z1bDoKICAgICAgICAgb3B0aW1pemVOZXh0SW52
b2NhdGlvbihjb2RlQmxvY2spOworICAgICAgICBjb2RlQmxvY2stPmJhc2VsaW5lVmVyc2lvbigp
LT5tX2hhc0JlZW5Db21waWxlZFdpdGhGVEwgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAg
Y2FzZSBDb21waWxhdGlvbkZhaWxlZDoKICAgICAgICAgZG9udE9wdGltaXplQW55dGltZVNvb24o
Y29kZUJsb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklU
Q29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgKaW5kZXggMGU3
NzFlMDQ2NWI3M2Y1OGJmZmFmM2Y0OTU1ZjBjOTA5MzYyMzQ3OS4uMDJkNDc4ZWIyYjM2YTllZTE0
Y2Q3MGY2YmIyYzIwZDg1MTAyMjUzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdKSVRDb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRD
b2RlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTExOSw2ICsxMTksNyBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPERGRzo6T1NSRW50cnlE
YXRhPiBvc3JFbnRyeTsKICAgICBTZWdtZW50ZWRWZWN0b3I8REZHOjpPU1JFeGl0LCA4PiBvc3JF
eGl0OwogICAgIFZlY3RvcjxERkc6OlNwZWN1bGF0aW9uUmVjb3Zlcnk+IHNwZWN1bGF0aW9uUmVj
b3Zlcnk7CisgICAgVmVjdG9yPHVuc2lnbmVkPiBzbG93UGF0aENhbGxzOwogICAgIERGRzo6VmFy
aWFibGVFdmVudFN0cmVhbSB2YXJpYWJsZUV2ZW50U3RyZWFtOwogICAgIERGRzo6TWluaWZpZWRH
cmFwaCBtaW5pZmllZERGRzsKICNpZiBFTkFCTEUoRlRMX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKaW5kZXggMjkzNGQyYmE5YjA3MmYzOWI3N2U3
MTRlZTFjNjg3YTlkMWUxYTBkNi4uYTljMGYwZjIxZTI0YWExNDRjZWY0MjQyYWUxMzUxZmRlODRk
NDQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAK
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQXJp
dHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNs
dWRlICJERkdGYWlsZWRGaW5hbGl6ZXIuaCIKICNpbmNsdWRlICJERkdJbmxpbmVDYWNoZVdyYXBw
ZXJJbmxpbmVzLmgiCkBAIC00MCw2ICs0MSw3IEBACiAjaW5jbHVkZSAiREZHU3BlY3VsYXRpdmVK
SVQuaCIKICNpbmNsdWRlICJERkdUaHVua3MuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5l
cy5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVk
ZSAiVk0uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKQEAgLTkyLDE1ICs5NCwxNCBAQCB2
b2lkIEpJVENvbXBpbGVyOjpsaW5rT1NSRXhpdHMoKQogdm9pZCBKSVRDb21waWxlcjo6Y29tcGls
ZUVudHJ5KCkKIHsKICAgICAvLyBUaGlzIGNvZGUgY3VycmVudGx5IG1hdGNoZXMgdGhlIG9sZCBK
SVQuIEluIHRoZSBmdW5jdGlvbiBoZWFkZXIgd2UgbmVlZCB0bwotICAgIC8vIHBvcCB0aGUgcmV0
dXJuIGFkZHJlc3MgKHNpbmNlIHdlIGRvIG5vdCBhbGxvdyBhbnkgcmVjdXJzaW9uIG9uIHRoZSBt
YWNoaW5lCi0gICAgLy8gc3RhY2spLCBhbmQgcGVyZm9ybSBhIGZhc3Qgc3RhY2sgY2hlY2suCisg
ICAgLy8gc2F2ZSByZXR1cm4gYWRkcmVzcyBhbmQgY2FsbCBmcmFtZSB2aWEgdGhlIHByb2xvZ3Vl
IGFuZCBwZXJmb3JtIGEgZmFzdCBzdGFjayBjaGVjay4KICAgICAvLyBGSVhNRTogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MjkyCiAgICAgLy8gV2UnbGwgbmVlZCB0
byBjb252ZXJ0IHRoZSByZW1haW5pbmcgY3RpXyBzdHlsZSBjYWxscyAoc3BlY2lmaWNhbGx5IHRo
ZSBzdGFjawogICAgIC8vIGNoZWNrKSB3aGljaCB3aWxsIGJlIGRlcGVuZGVudCBvbiBzdGFjayBs
YXlvdXQuIChXZSdkIG5lZWQgdG8gYWNjb3VudCBmb3IgdGhpcyBpbgogICAgIC8vIGJvdGggbm9y
bWFsIHJldHVybiBjb2RlIGFuZCB3aGVuIGp1bXBpbmcgdG8gYW4gZXhjZXB0aW9uIGhhbmRsZXIp
LgotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpyZWdUMik7Ci0g
ICAgZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoR1BSSW5mbzo6cmVnVDIpOworICAg
IGVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1l
SGVhZGVyKG1fY29kZUJsb2NrLCBKU1N0YWNrOjpDb2RlQmxvY2spOworICAgIGppdEFzc2VydFRh
Z3NJblBsYWNlKCk7CiB9CiAKIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGVCb2R5KCkKQEAgLTEy
MSwyMiArMTIyLDI1IEBAIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGVFeGNlcHRpb25IYW5kbGVy
cygpCiAKICAgICBpZiAoIW1fZXhjZXB0aW9uQ2hlY2tzV2l0aENhbGxGcmFtZVJvbGxiYWNrLmVt
cHR5KCkpIHsKICAgICAgICAgbV9leGNlcHRpb25DaGVja3NXaXRoQ2FsbEZyYW1lUm9sbGJhY2su
bGluayh0aGlzKTsKLSAgICAgICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRl
clB0cihHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICBlbWl0R2V0Q2FsbGVyRnJhbWVG
cm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgICAgIGRv
TG9va3VwID0ganVtcCgpOwogICAgIH0KIAogICAgIGlmICghbV9leGNlcHRpb25DaGVja3MuZW1w
dHkoKSkKICAgICAgICAgbV9leGNlcHRpb25DaGVja3MubGluayh0aGlzKTsKIAotICAgIC8vIGxv
b2t1cEV4Y2VwdGlvbkhhbmRsZXIgaXMgcGFzc2VkIG9uZSBhcmd1bWVudCwgdGhlIGV4ZWMgKHRo
ZSBDYWxsRnJhbWUqKS4KLSAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOworICAgIC8vIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIgaXMgcGFz
c2VkIHR3byBhcmd1bWVudHMsIHRoZSBWTSBhbmQgdGhlIGV4ZWMgKHRoZSBDYWxsRnJhbWUqKS4K
KyAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjEpOwogCiAgICAgaWYgKGRvTG9va3VwLmlzU2V0KCkpCiAgICAgICAgIGRvTG9va3VwLmxpbmso
dGhpcyk7CiAKKyAgICBtb3ZlKFRydXN0ZWRJbW1QdHIodm0oKSksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CisKICNpZiBDUFUoWDg2KQogICAgIC8vIEZJWE1FOiBzaG91bGQgdXNlIHRoZSBjYWxs
IGFic3RyYWN0aW9uLCBidXQgdGhpcyBpcyBjdXJyZW50bHkgaW4gdGhlIFNwZWN1bGF0aXZlSklU
IGxheWVyIQogICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBwb2tlKEdQUklu
Zm86OmFyZ3VtZW50R1BSMSwgMSk7CiAjZW5kaWYKICAgICBtX2NhbGxzLmFwcGVuZChDYWxsTGlu
a1JlY29yZChjYWxsKCksIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIpKTsKICAgICBqdW1wVG9FeGNl
cHRpb25IYW5kbGVyKCk7CkBAIC0yMjgsMTMgKzIzMiwxNiBAQCB2b2lkIEpJVENvbXBpbGVyOjps
aW5rKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpCiAgICAgICAgIGluZm8ucGF0Y2guZGVsdGFDYWxs
VG9TbG93Q2FzZSA9IGRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cihjYWxsUmV0dXJuTG9jYXRpb24s
IGxpbmtCdWZmZXIubG9jYXRpb25PZihtX2luc1tpXS5tX3Nsb3dQYXRoR2VuZXJhdG9yLT5sYWJl
bCgpKSk7CiAgICAgfQogICAgIAorICAgIFJFTEVBU0VfQVNTRVJUKCFtX2dyYXBoLm1fcGxhbi53
aWxsVHJ5VG9UaWVyVXAgfHwgbV9qaXRDb2RlLT5zbG93UGF0aENhbGxzLnNpemUoKSA+PSBtX2pz
Q2FsbHMuc2l6ZSgpKTsKICAgICBtX2NvZGVCbG9jay0+c2V0TnVtYmVyT2ZDYWxsTGlua0luZm9z
KG1fanNDYWxscy5zaXplKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2pzQ2Fs
bHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgQ2FsbExpbmtJbmZvJiBpbmZvID0gbV9jb2RlQmxv
Y2stPmNhbGxMaW5rSW5mbyhpKTsKICAgICAgICAgaW5mby5jYWxsVHlwZSA9IG1fanNDYWxsc1tp
XS5tX2NhbGxUeXBlOwotICAgICAgICBpbmZvLmlzREZHID0gdHJ1ZTsKICAgICAgICAgaW5mby5j
b2RlT3JpZ2luID0gbV9qc0NhbGxzW2ldLm1fY29kZU9yaWdpbjsKLSAgICAgICAgbGlua0J1ZmZl
ci5saW5rKG1fanNDYWxsc1tpXS5tX3Nsb3dDYWxsLCBGdW5jdGlvblB0cigobV92bS0+Z2V0Q1RJ
U3R1YihpbmZvLmNhbGxUeXBlID09IENhbGxMaW5rSW5mbzo6Q29uc3RydWN0ID8gbGlua0NvbnN0
cnVjdFRodW5rR2VuZXJhdG9yIDogbGlua0NhbGxUaHVua0dlbmVyYXRvcikpLmNvZGUoKS5leGVj
dXRhYmxlQWRkcmVzcygpKSk7CisgICAgICAgIFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvciA9IGxp
bmtUaHVua0dlbmVyYXRvckZvcigKKyAgICAgICAgICAgIGluZm8uY2FsbFR5cGUgPT0gQ2FsbExp
bmtJbmZvOjpDb25zdHJ1Y3QgPyBDb2RlRm9yQ29uc3RydWN0IDogQ29kZUZvckNhbGwsCisgICAg
ICAgICAgICBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKKyAgICAgICAgbGlua0J1
ZmZlci5saW5rKG1fanNDYWxsc1tpXS5tX3Nsb3dDYWxsLCBGdW5jdGlvblB0cihtX3ZtLT5nZXRD
VElTdHViKGdlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKICAgICAgICAg
aW5mby5jYWxsUmV0dXJuTG9jYXRpb24gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2ZOZWFyQ2FsbCht
X2pzQ2FsbHNbaV0ubV9zbG93Q2FsbCk7CiAgICAgICAgIGluZm8uaG90UGF0aEJlZ2luID0gbGlu
a0J1ZmZlci5sb2NhdGlvbk9mKG1fanNDYWxsc1tpXS5tX3RhcmdldFRvQ2hlY2spOwogICAgICAg
ICBpbmZvLmhvdFBhdGhPdGhlciA9IGxpbmtCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsKG1fanND
YWxsc1tpXS5tX2Zhc3RDYWxsKTsKQEAgLTI3OCw2ICsyODUsOCBAQCB2b2lkIEpJVENvbXBpbGVy
Ojpjb21waWxlKCkKICAgICBzZXRTdGFydE9mQ29kZSgpOwogICAgIGNvbXBpbGVFbnRyeSgpOwog
ICAgIG1fc3BlY3VsYXRpdmUgPSBhZG9wdFB0cihuZXcgU3BlY3VsYXRpdmVKSVQoKnRoaXMpKTsK
KyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKG1fZ3JhcGguc3RhY2tQb2ludGVyT2Zmc2V0KCkgKiBz
aXplb2YoUmVnaXN0ZXIpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogICAgIGNvbXBp
bGVCb2R5KCk7CiAgICAgc2V0RW5kT2ZNYWluUGF0aCgpOwogCkBAIC0zMjUsMTEgKzMzNCwxMiBA
QCB2b2lkIEpJVENvbXBpbGVyOjpjb21waWxlRnVuY3Rpb24oKQogICAgIC8vIHNvIGVudGVyIGFm
dGVyIHRoaXMuCiAgICAgTGFiZWwgZnJvbUFyaXR5Q2hlY2sodGhpcyk7CiAgICAgLy8gUGxhbnQg
YSBjaGVjayB0aGF0IHN1ZmZpY2llbnQgc3BhY2UgaXMgYXZhaWxhYmxlIGluIHRoZSBKU1N0YWNr
LgotICAgIGFkZFB0cihUcnVzdGVkSW1tMzIodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwobV9ncmFw
aC5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCkpLm9mZnNldCgpICog
c2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjpy
ZWdUMSk7Ci0gICAgSnVtcCBzdGFja0NoZWNrID0gYnJhbmNoUHRyKEFib3ZlLCBBYnNvbHV0ZUFk
ZHJlc3MobV92bS0+YWRkcmVzc09mSlNTdGFja0xpbWl0KCkpLCBHUFJJbmZvOjpyZWdUMSk7Ci0g
ICAgLy8gUmV0dXJuIGhlcmUgYWZ0ZXIgc3RhY2sgY2hlY2suCi0gICAgTGFiZWwgZnJvbVN0YWNr
Q2hlY2sgPSBsYWJlbCgpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIodmlydHVhbFJlZ2lzdGVy
Rm9yTG9jYWwobV9ncmFwaC5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0
KCkgLSAxKS5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLCBHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3RlciwgR1BSSW5mbzo6cmVnVDEpOworICAgIEp1bXAgc3RhY2tPdmVyZmxvdyA9IGJyYW5j
aFB0cihBYm92ZSwgQWJzb2x1dGVBZGRyZXNzKG1fdm0tPmFkZHJlc3NPZkpTU3RhY2tMaW1pdCgp
KSwgR1BSSW5mbzo6cmVnVDEpOwogCisgICAgLy8gTW92ZSB0aGUgc3RhY2sgcG9pbnRlciBkb3du
IHRvIGFjY29tbW9kYXRlIGxvY2FscworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIobV9ncmFwaC5z
dGFja1BvaW50ZXJPZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLCBHUFJJbmZvOjpjYWxsRnJh
bWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVy
QWxpZ25tZW50KCk7CiAKICAgICAvLyA9PT0gRnVuY3Rpb24gYm9keSBjb2RlIGdlbmVyYXRpb24g
PT09CiAgICAgbV9zcGVjdWxhdGl2ZSA9IGFkb3B0UHRyKG5ldyBTcGVjdWxhdGl2ZUpJVCgqdGhp
cykpOwpAQCAtMzM4LDE3ICszNDgsMTkgQEAgdm9pZCBKSVRDb21waWxlcjo6Y29tcGlsZUZ1bmN0
aW9uKCkKIAogICAgIC8vID09PSBGdW5jdGlvbiBmb290ZXIgY29kZSBnZW5lcmF0aW9uID09PQog
ICAgIC8vCi0gICAgLy8gR2VuZXJhdGUgY29kZSB0byBwZXJmb3JtIHRoZSBzbG93IHN0YWNrIGNo
ZWNrIChpZiB0aGUgZmFzdCBvbmUgaW4KKyAgICAvLyBHZW5lcmF0ZSBjb2RlIHRvIHBlcmZvcm0g
dGhlIHN0YWNrIG92ZXJmbG93IGhhbmRsaW5nIChpZiB0aGUgc3RhY2sgY2hlY2sgaW4KICAgICAv
LyB0aGUgZnVuY3Rpb24gaGVhZGVyIGZhaWxzKSwgYW5kIGdlbmVyYXRlIHRoZSBlbnRyeSBwb2lu
dCB3aXRoIGFyaXR5IGNoZWNrLgogICAgIC8vCi0gICAgLy8gR2VuZXJhdGUgdGhlIHN0YWNrIGNo
ZWNrOyBpZiB0aGUgZmFzdCBjaGVjayBpbiB0aGUgZnVuY3Rpb24gaGVhZCBmYWlscywKLSAgICAv
LyB3ZSBuZWVkIHRvIGNhbGwgb3V0IHRvIGEgaGVscGVyIGZ1bmN0aW9uIHRvIGNoZWNrIHdoZXRo
ZXIgbW9yZSBzcGFjZSBpcyBhdmFpbGFibGUuCi0gICAgLy8gRklYTUU6IGNoYW5nZSB0aGlzIGZy
b20gYSBjdGkgY2FsbCB0byBhIERGRyBzdHlsZSBvcGVyYXRpb24gKG5vcm1hbCBDIGNhbGxpbmcg
Y29udmVudGlvbnMpLgotICAgIHN0YWNrQ2hlY2subGluayh0aGlzKTsKKyAgICAvLyBHZW5lcmF0
ZSB0aGUgc3RhY2sgb3ZlcmZsb3cgaGFuZGxpbmc7IGlmIHRoZSBzdGFjayBjaGVjayBpbiB0aGUg
ZnVuY3Rpb24gaGVhZCBmYWlscywKKyAgICAvLyB3ZSBuZWVkIHRvIGNhbGwgb3V0IHRvIGEgaGVs
cGVyIGZ1bmN0aW9uIHRvIHRocm93IHRoZSBTdGFja092ZXJmbG93RXJyb3IuCisgICAgc3RhY2tP
dmVyZmxvdy5saW5rKHRoaXMpOwogCiAgICAgZW1pdFN0b3JlQ29kZU9yaWdpbihDb2RlT3JpZ2lu
KDApKTsKLSAgICBtX3NwZWN1bGF0aXZlLT5jYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxi
YWNrT25FeGNlcHRpb24ob3BlcmF0aW9uU3RhY2tDaGVjaywgbV9jb2RlQmxvY2spOwotICAgIGp1
bXAoZnJvbVN0YWNrQ2hlY2spOworCisgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsKQorICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1tYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKworICAgIG1fc3BlY3VsYXRpdmUtPmNh
bGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb25UaHJv
d1N0YWNrT3ZlcmZsb3dFcnJvciwgbV9jb2RlQmxvY2spOwogICAgIAogICAgIC8vIFRoZSBmYXN0
IGVudHJ5IHBvaW50IGludG8gYSBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB0aGUgY29ycmVjdCBu
dW1iZXIgb2YgYXJndW1lbnRzCiAgICAgLy8gaGF2ZSBiZWVuIHBhc3NlZCB0byB0aGUgY2FsbCAo
d2Ugb25seSB1c2UgdGhlIGZhc3QgZW50cnkgcG9pbnQgd2hlcmUgd2UgY2FuIHN0YXRpY2FsbHkK
QEAgLTM2MSw5ICszNzMsMTUgQEAgdm9pZCBKSVRDb21waWxlcjo6Y29tcGlsZUZ1bmN0aW9uKCkK
ICAgICBsb2FkMzIoQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKChWaXJ0dWFsUmVnaXN0ZXIp
SlNTdGFjazo6QXJndW1lbnRDb3VudCksIEdQUkluZm86OnJlZ1QxKTsKICAgICBicmFuY2gzMihB
Ym92ZU9yRXF1YWwsIEdQUkluZm86OnJlZ1QxLCBUcnVzdGVkSW1tMzIobV9jb2RlQmxvY2stPm51
bVBhcmFtZXRlcnMoKSkpLmxpbmtUbyhmcm9tQXJpdHlDaGVjaywgdGhpcyk7CiAgICAgZW1pdFN0
b3JlQ29kZU9yaWdpbihDb2RlT3JpZ2luKDApKTsKKyAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwpCisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgIG1fc3BlY3VsYXRp
dmUtPmNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihtX2NvZGVC
bG9jay0+bV9pc0NvbnN0cnVjdG9yID8gb3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjayA6IG9w
ZXJhdGlvbkNhbGxBcml0eUNoZWNrLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgaWYgKG1heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKG1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgIGJy
YW5jaFRlc3QzMihaZXJvLCBHUFJJbmZvOjpyZWdUMCkubGlua1RvKGZyb21Bcml0eUNoZWNrLCB0
aGlzKTsKICAgICBlbWl0U3RvcmVDb2RlT3JpZ2luKENvZGVPcmlnaW4oMCkpOworICAgIG1vdmUo
VHJ1c3RlZEltbVB0cihtX3ZtLT5hcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy0+cmV0dXJuUENz
Rm9yKCptX3ZtLCBtX2NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSksIEdQUkluZm86OnJlZ1Q1
KTsKKyAgICBsb2FkUHRyKEJhc2VJbmRleChHUFJJbmZvOjpyZWdUNSwgR1BSSW5mbzo6cmVnVDAs
IHRpbWVzUHRyKCkpLCBHUFJJbmZvOjpyZWdUNSk7CiAgICAgbV9jYWxsQXJpdHlGaXh1cCA9IGNh
bGwoKTsKICAgICBqdW1wKGZyb21Bcml0eUNoZWNrKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAppbmRleCA4MDJlNDdhZDg3MWI4NjViYTJlMmQxOGVh
MDFlMDllOGU0ZmVjNmFhLi44MmVhYzBmZDBmNDFjMDU0YzljODY5ODI4NzY4OWYyNTdkYjc0ZDZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oCkBAIC0yMjEs
NiArMjIxLDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1faW5zLmFwcGVuZChyZWNvcmQp
OwogICAgIH0KKyAgICAKKyAgICB1bnNpZ25lZCBjdXJyZW50SlNDYWxsSW5kZXgoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG1fanNDYWxscy5zaXplKCk7CisgICAgfQogCiAgICAgdm9p
ZCBhZGRKU0NhbGwoQ2FsbCBmYXN0Q2FsbCwgQ2FsbCBzbG93Q2FsbCwgRGF0YUxhYmVsUHRyIHRh
cmdldFRvQ2hlY2ssIENhbGxMaW5rSW5mbzo6Q2FsbFR5cGUgY2FsbFR5cGUsIEdQUlJlZyBjYWxs
ZWUsIENvZGVPcmlnaW4gY29kZU9yaWdpbikKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVEZpbmFsaXplci5jcHAKaW5kZXggYjdlYTU5NGM2N2RiZjNkZWFmNDdmODk2
NzI2MmU2ZDQwZGY0ZGU4ZS4uNzk5ZThjYTVkYmEzMTczYWU4MzJkYjc4ZWYxNTc5ZTdjMDc3YTY1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmNwcApA
QCAtNDYsMTAgKzQ2LDE2IEBAIEpJVEZpbmFsaXplcjo6fkpJVEZpbmFsaXplcigpCiB7CiB9CiAK
K3NpemVfdCBKSVRGaW5hbGl6ZXI6OmNvZGVTaXplKCkKK3sKKyAgICByZXR1cm4gbV9saW5rQnVm
ZmVyLT5zaXplKCk7Cit9CisKIGJvb2wgSklURmluYWxpemVyOjpmaW5hbGl6ZSgpCiB7Ci0gICAg
bV9qaXRDb2RlLT5pbml0aWFsaXplQ29kZVJlZihtX2xpbmtCdWZmZXItPmZpbmFsaXplQ29kZVdp
dGhvdXREaXNhc3NlbWJseSgpKTsKLSAgICBtX3BsYW4uY29kZUJsb2NrLT5zZXRKSVRDb2RlKG1f
aml0Q29kZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOworICAgIG1faml0Q29kZS0+aW5pdGlh
bGl6ZUNvZGVSZWYoCisgICAgICAgIG1fbGlua0J1ZmZlci0+ZmluYWxpemVDb2RlV2l0aG91dERp
c2Fzc2VtYmx5KCksIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpKTsKKyAgICBtX3BsYW4uY29kZUJs
b2NrLT5zZXRKSVRDb2RlKG1faml0Q29kZSk7CiAgICAgCiAgICAgZmluYWxpemVDb21tb24oKTsK
ICAgICAKQEAgLTU5LDggKzY1LDkgQEAgYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplKCkKIGJv
b2wgSklURmluYWxpemVyOjpmaW5hbGl6ZUZ1bmN0aW9uKCkKIHsKICAgICBSRUxFQVNFX0FTU0VS
VCghbV93aXRoQXJpdHlDaGVjay5pc0VtcHR5VmFsdWUoKSk7Ci0gICAgbV9qaXRDb2RlLT5pbml0
aWFsaXplQ29kZVJlZihtX2xpbmtCdWZmZXItPmZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJs
eSgpKTsKLSAgICBtX3BsYW4uY29kZUJsb2NrLT5zZXRKSVRDb2RlKG1faml0Q29kZSwgbV93aXRo
QXJpdHlDaGVjayk7CisgICAgbV9qaXRDb2RlLT5pbml0aWFsaXplQ29kZVJlZigKKyAgICAgICAg
bV9saW5rQnVmZmVyLT5maW5hbGl6ZUNvZGVXaXRob3V0RGlzYXNzZW1ibHkoKSwgbV93aXRoQXJp
dHlDaGVjayk7CisgICAgbV9wbGFuLmNvZGVCbG9jay0+c2V0SklUQ29kZShtX2ppdENvZGUpOwog
ICAgIAogICAgIGZpbmFsaXplQ29tbW9uKCk7CiAgICAgCkBAIC03NSw2ICs4Miw5IEBAIHZvaWQg
SklURmluYWxpemVyOjpmaW5hbGl6ZUNvbW1vbigpCiAgICAgCiAgICAgaWYgKG1fcGxhbi5jb21w
aWxhdGlvbikKICAgICAgICAgbV9wbGFuLnZtLm1fcGVyQnl0ZWNvZGVQcm9maWxlci0+YWRkQ29t
cGlsYXRpb24obV9wbGFuLmNvbXBpbGF0aW9uKTsKKyAgICAKKyAgICBpZiAoIW1fcGxhbi53aWxs
VHJ5VG9UaWVyVXApCisgICAgICAgIG1fcGxhbi5jb2RlQmxvY2stPmJhc2VsaW5lVmVyc2lvbigp
LT5tX2RpZEZhaWxGVExDb21waWxhdGlvbiA9IHRydWU7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpERkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmlu
YWxpemVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5oCmlu
ZGV4IDVjN2M4MmI2NjViYTU0MDY5NmQxYjRkMDU5ZTdmYzY5ZmIwOTRiNjAuLjU0MmFmNTdhYTNh
NzQ2NDkzYTBkZWJiNmQ1NGJiYTYwYzNkMTQ2NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdKSVRGaW5hbGl6ZXIuaApAQCAtNDIsNiArNDIsNyBAQCBwdWJsaWM6CiAgICAgSklU
RmluYWxpemVyKFBsYW4mLCBQYXNzUmVmUHRyPEpJVENvZGU+LCBQYXNzT3duUHRyPExpbmtCdWZm
ZXI+LCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgd2l0aEFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpFbXB0eVZhbHVlKSk7CiAgICAgdmlydHVh
bCB+SklURmluYWxpemVyKCk7CiAgICAgCisgICAgdmlydHVhbCBzaXplX3QgY29kZVNpemUoKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZmluYWxpemUoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgZmluYWxpemVGdW5jdGlvbigpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZS5oCmluZGV4IDU1YTllZGU4ZGI4YjhjMzBhNjdiZWRjOWJhNGU1MTQ1NGEwYmI4
NGIuLjc1YWY2NmNlNzRiZjVhNTQ2ZDUzNjRkZjBhNDFjMzBmMTg3NDExM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMTk4LDYgKzEx
OTgsMTEgQEAgc3RydWN0IE5vZGUgewogICAgICAgICAgICAgcmV0dXJuIHNob3VsZEdlbmVyYXRl
KCk7CiAgICAgICAgIH0KICAgICB9CisgICAgCisgICAgYm9vbCBpc1NlbWFudGljYWxseVNraXBw
YWJsZSgpCisgICAgeworICAgICAgICByZXR1cm4gb3AoKSA9PSBDb3VudEV4ZWN1dGlvbjsKKyAg
ICB9CiAKICAgICB1bnNpZ25lZCByZWZDb3VudCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCmluZGV4IDM5NmNhNjExOTIxZGMxNjg1ZGMwNGJhM2Rl
NjA5N2I4NjRkMmI3NmYuLjYxZTllYzc0MjlmYjcxOWUyYTQ2MTg5ZDk5OTI5MjcwOTZkZjc0MmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAKQEAgLTQ5LDYg
KzQ5LDkgQEAgdm9pZCBkdW1wTm9kZUZsYWdzKFByaW50U3RyZWFtJiBhY3R1YWxPdXQsIE5vZGVG
bGFncyBmbGFncykKICAgICAgICAgY2FzZSBOb2RlUmVzdWx0SW50MzI6CiAgICAgICAgICAgICBv
dXQucHJpbnQoY29tbWEsICJJbnQzMiIpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgTm9kZVJlc3VsdEludDUyOgorICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiSW50NTIi
KTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE5vZGVSZXN1bHRCb29sZWFuOgog
ICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiQm9vbGVhbiIpOwogICAgICAgICAgICAgYnJl
YWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2YWlsYWJp
bGl0eUFuYWx5c2lzUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JB
dmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmNwcAppbmRleCBhNjQ5NjM1ODFhNDczN2M0ZThhMjkw
ODM4YTYyOGQyYTVjOTMzMTBmLi5mY2IyYzk0ODVjMTJmZmI5NjhmNjcwNDU0OTcyMzljN2YwODNi
Y2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2YWlsYWJp
bGl0eUFuYWx5c2lzUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5jcHAKQEAgLTYxLDE1ICs2MSwxMyBAQCBwdWJs
aWM6CiAgICAgICAgICAgICAgICAgQXZhaWxhYmlsaXR5Ojp1bmF2YWlsYWJsZSgpLndpdGhGbHVz
aCgKICAgICAgICAgICAgICAgICAgICAgRmx1c2hlZEF0KEZsdXNoZWRKU1ZhbHVlLCB2aXJ0dWFs
UmVnaXN0ZXJGb3JBcmd1bWVudChhcmd1bWVudCkpKTsKICAgICAgICAgfQotICAgICAgICBmb3Ig
KHVuc2lnbmVkIGxvY2FsID0gcm9vdC0+c3NhLT5hdmFpbGFiaWxpdHlBdEhlYWQubnVtYmVyT2ZM
b2NhbHMoKTsgbG9jYWwtLTspCi0gICAgICAgICAgICByb290LT5zc2EtPmF2YWlsYWJpbGl0eUF0
SGVhZC5sb2NhbChsb2NhbCkgPSBBdmFpbGFiaWxpdHk6OnVuYXZhaWxhYmxlKCk7Ci0gICAgICAg
IAorCiAgICAgICAgIGlmIChtX2dyYXBoLm1fcGxhbi5tb2RlID09IEZUTEZvck9TUkVudHJ5TW9k
ZSkgewotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBsb2NhbCA9IG1fZ3JhcGgubV9wcm9maWxl
ZEJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVyczsgbG9jYWwtLTspIHsKLSAgICAgICAgICAgICAg
ICByb290LT5zc2EtPmF2YWlsYWJpbGl0eUF0SGVhZC5sb2NhbChsb2NhbCkgPQotICAgICAgICAg
ICAgICAgICAgICBBdmFpbGFiaWxpdHk6OnVuYXZhaWxhYmxlKCkud2l0aEZsdXNoKAotICAgICAg
ICAgICAgICAgICAgICAgICAgRmx1c2hlZEF0KEZsdXNoZWRKU1ZhbHVlLCB2aXJ0dWFsUmVnaXN0
ZXJGb3JMb2NhbChsb2NhbCkpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAodW5z
aWduZWQgbG9jYWwgPSBtX2dyYXBoLm1fcHJvZmlsZWRCbG9jay0+bV9udW1DYWxsZWVSZWdpc3Rl
cnM7IGxvY2FsLS07KQorICAgICAgICAgICAgICAgIHJvb3QtPnNzYS0+YXZhaWxhYmlsaXR5QXRI
ZWFkLmxvY2FsKGxvY2FsKSA9IEF2YWlsYWJpbGl0eTo6dW5hdmFpbGFibGUoKTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgbG9jYWwgPSByb290LT5zc2EtPmF2
YWlsYWJpbGl0eUF0SGVhZC5udW1iZXJPZkxvY2FscygpOyBsb2NhbC0tOykKKyAgICAgICAgICAg
ICAgICByb290LT5zc2EtPmF2YWlsYWJpbGl0eUF0SGVhZC5sb2NhbChsb2NhbCkgPSBBdmFpbGFi
aWxpdHk6OnVuYXZhaWxhYmxlKCk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIFRo
aXMgY291bGQgYmUgbWFkZSBtb3JlIGVmZmljaWVudCBieSBwcm9jZXNzaW5nIGJsb2NrcyBpbiBy
ZXZlcnNlIHBvc3RvcmRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT1NSRW50cnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5j
cHAKaW5kZXggYzEyODgxODc0MGM1MGJmOGVjZmFkZTFlNDhlNmQ3ZTI2MDcwMzhmNS4uZmVhY2Fl
OTdiODIxZDA4Mjc1NjQ3MzM5NjhhOGZhMzY2MWNhYzM0NiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAKQEAgLTQ0LDcgKzQ0LDEwIEBAIHZvaWQqIHByZXBhcmVP
U1JFbnRyeShFeGVjU3RhdGUqIGV4ZWMsIENvZGVCbG9jayogY29kZUJsb2NrLCB1bnNpZ25lZCBi
eXRlY29kZUluCiAgICAgQVNTRVJUKGNvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKSk7CiAgICAgQVNT
RVJUKGNvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKS0+aml0VHlwZSgpID09IEpJVENvZGU6OkJhc2Vs
aW5lSklUKTsKICAgICBBU1NFUlQoIWNvZGVCbG9jay0+aml0Q29kZU1hcCgpKTsKLSAgICAKKwor
ICAgIGlmICghT3B0aW9uczo6ZW5hYmxlT1NSRW50cnlUb0RGRygpKQorICAgICAgICByZXR1cm4g
MDsKKwogICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpIHsKICAgICAgICAgZGF0YUxvZygK
ICAgICAgICAgICAgICJERkcgT1NSIGluICIsICpjb2RlQmxvY2stPmFsdGVybmF0aXZlKCksICIg
LT4gIiwgKmNvZGVCbG9jaywKQEAgLTUyLDggKzU1LDggQEAgdm9pZCogcHJlcGFyZU9TUkVudHJ5
KEV4ZWNTdGF0ZSogZXhlYywgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2Rl
SW4KICAgICB9CiAgICAgCiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7Ci0gICAgCi0gICAgdm0t
PmludGVycHJldGVyLT5zdGFjaygpLnNhbml0aXplU3RhY2soKTsKKworICAgIHNhbml0aXplU3Rh
Y2tGb3JWTSh2bSk7CiAgICAgCiAgICAgaWYgKGNvZGVCbG9jay0+aml0VHlwZSgpICE9IEpJVENv
ZGU6OkRGR0pJVCkgewogICAgICAgICBSRUxFQVNFX0FTU0VSVChjb2RlQmxvY2stPmppdFR5cGUo
KSA9PSBKSVRDb2RlOjpGVExKSVQpOwpAQCAtMTg1LDcgKzE4OCw3IEBAIHZvaWQqIHByZXBhcmVP
U1JFbnRyeShFeGVjU3RhdGUqIGV4ZWMsIENvZGVCbG9jayogY29kZUJsb2NrLCB1bnNpZ25lZCBi
eXRlY29kZUluCiAgICAgLy8gICAgd291bGQgaGF2ZSBvdGhlcndpc2UganVzdCBrZXB0IHJ1bm5p
bmcgYWxiZWl0IGxlc3MgcXVpY2tseS4KICAgICAKICAgICB1bnNpZ25lZCBmcmFtZVNpemUgPSBq
aXRDb2RlLT5jb21tb24ucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhlY3V0aW9uQW5kRXhpdCgp
OwotICAgIGlmICghdm0tPmludGVycHJldGVyLT5zdGFjaygpLmdyb3coJmV4ZWMtPnJlZ2lzdGVy
cygpW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGZyYW1lU2l6ZSkub2Zmc2V0KCldKSkgeworICAg
IGlmICghdm0tPmludGVycHJldGVyLT5zdGFjaygpLmVuc3VyZUNhcGFjaXR5Rm9yKCZleGVjLT5y
ZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChmcmFtZVNpemUgLSAxKS5vZmZzZXQo
KV0pKSB7CiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCiAgICAgICAgICAgICBk
YXRhTG9nRigiICAgIE9TUiBmYWlsZWQgYmVjYXVzZSBzdGFjayBncm93dGggZmFpbGVkLlxuIik7
CiAgICAgICAgIHJldHVybiAwOwpAQCAtMjEzLDEyICsyMTYsMTQgQEAgdm9pZCogcHJlcGFyZU9T
UkVudHJ5KEV4ZWNTdGF0ZSogZXhlYywgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIHVuc2lnbmVkIGJ5
dGVjb2RlSW4KICAgICAKICAgICAvLyA1KSBDbGVhciB0aG9zZSBwYXJ0cyBvZiB0aGUgY2FsbCBm
cmFtZSB0aGF0IHRoZSBERkcgYWluJ3QgdXNpbmcuIFRoaXMgaGVscHMgR0Mgb24gc29tZQogICAg
IC8vICAgIHByb2dyYW1zIGJ5IGVsaW1pbmF0aW5nIHNvbWUgc3RhbGUgcG9pbnRlciBwYXRob2xv
Z2llcy4KLSAgICAKKworI2lmIDAgLy8gRklYTUU6IENTdGFjayAtIFRoaXMgbmVlZHMgdG8gYmUg
dmVyaWZpZWQgYmVmb3JlIGJlaW5nIGVuYWJsZWQKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBmcmFt
ZVNpemU7IGktLTspIHsKICAgICAgICAgaWYgKGVudHJ5LT5tX21hY2hpbmVTdGFja1VzZWQuZ2V0
KGkpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIHJlZ2lzdGVyc1t2aXJ0dWFsUmVn
aXN0ZXJGb3JMb2NhbChpKS5vZmZzZXQoKV0gPSBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsK
ICAgICB9CisjZW5kaWYKICAgICAKICAgICAvLyA2KSBGaXggdGhlIGNhbGwgZnJhbWUuCiAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5cG9pbnRD
cmVhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnlw
b2ludENyZWF0aW9uUGhhc2UuY3BwCmluZGV4IDRmODJkMTVmYWNhZWMzOTNhNzMwMTVlMGY4ZjE2
MWZkOGQzZDZhNjMuLjI2NjE1MTA1MjZlN2RmYzE1ZTA3MmNlZDZlMWU4Njg3NzNjMGQxZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnlwb2ludENyZWF0
aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnlw
b2ludENyZWF0aW9uUGhhc2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC02Myw3ICs2MywxMCBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICBCYXNpY0Jsb2NrKiBibG9jayA9IG1fZ3JhcGguYmxvY2soYmxvY2tJbmRleCk7CiAgICAgICAg
ICAgICBpZiAoIWJsb2NrKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAg
dW5zaWduZWQgbm9kZUluZGV4ID0gMDsKICAgICAgICAgICAgIE5vZGUqIGZpcnN0Tm9kZSA9IGJs
b2NrLT5hdCgwKTsKKyAgICAgICAgICAgIHdoaWxlIChmaXJzdE5vZGUtPmlzU2VtYW50aWNhbGx5
U2tpcHBhYmxlKCkpCisgICAgICAgICAgICAgICAgZmlyc3ROb2RlID0gYmxvY2stPmF0KCsrbm9k
ZUluZGV4KTsKICAgICAgICAgICAgIGlmIChmaXJzdE5vZGUtPm9wKCkgPT0gTG9vcEhpbnQKICAg
ICAgICAgICAgICAgICAmJiBmaXJzdE5vZGUtPmNvZGVPcmlnaW4gPT0gQ29kZU9yaWdpbihieXRl
Y29kZUluZGV4KSkgewogICAgICAgICAgICAgICAgIHRhcmdldCA9IGJsb2NrOwpAQCAtODMsMTcg
Kzg2LDYgQEAgcHVibGljOgogICAgICAgICBCYXNpY0Jsb2NrKiBuZXdSb290ID0gaW5zZXJ0aW9u
U2V0Lmluc2VydCgwKTsKICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gdGFyZ2V0LT5h
dCgwKS0+Y29kZU9yaWdpbjsKICAgICAgICAgCi0gICAgICAgIGZvciAoaW50IGFyZ3VtZW50ID0g
MDsgYXJndW1lbnQgPCBiYXNlbGluZS0+bnVtUGFyYW1ldGVycygpOyArK2FyZ3VtZW50KSB7Ci0g
ICAgICAgICAgICBOb2RlKiBvbGROb2RlID0gdGFyZ2V0LT52YXJpYWJsZXNBdEhlYWQuYXJndW1l
bnQoYXJndW1lbnQpOwotICAgICAgICAgICAgaWYgKCFvbGROb2RlKSB7Ci0gICAgICAgICAgICAg
ICAgLy8gSnVzdCBmb3Igc2FuaXR5LCBhbHdheXMgaGF2ZSBhIFNldEFyZ3VtZW50IGV2ZW4gaWYg
aXQncyBub3QgbmVlZGVkLgotICAgICAgICAgICAgICAgIG9sZE5vZGUgPSBtX2dyYXBoLm1fYXJn
dW1lbnRzW2FyZ3VtZW50XTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIE5vZGUqIG5vZGUg
PSBuZXdSb290LT5hcHBlbmROb2RlKAotICAgICAgICAgICAgICAgIG1fZ3JhcGgsIFNwZWNOb25l
LCBTZXRBcmd1bWVudCwgY29kZU9yaWdpbiwKLSAgICAgICAgICAgICAgICBPcEluZm8ob2xkTm9k
ZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCkpKTsKLSAgICAgICAgICAgIG1fZ3JhcGgubV9hcmd1bWVu
dHNbYXJndW1lbnRdID0gbm9kZTsKLSAgICAgICAgfQogICAgICAgICBWZWN0b3I8Tm9kZSo+IGxv
Y2FscyhiYXNlbGluZS0+bV9udW1DYWxsZWVSZWdpc3RlcnMpOwogICAgICAgICBmb3IgKGludCBs
b2NhbCA9IDA7IGxvY2FsIDwgYmFzZWxpbmUtPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzOyArK2xvY2Fs
KSB7CiAgICAgICAgICAgICBOb2RlKiBwcmV2aW91c0hlYWQgPSB0YXJnZXQtPnZhcmlhYmxlc0F0
SGVhZC5sb2NhbChsb2NhbCk7CkBAIC0xMDgsNiArMTAwLDE5IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgICAgICBtX2dyYXBoLCBTcGVjTm9uZSwgTW92SGludCwgY29kZU9yaWdpbiwgT3BJbmZvKHZh
cmlhYmxlLT5sb2NhbCgpLm9mZnNldCgpKSwKICAgICAgICAgICAgICAgICBFZGdlKGxvY2Fsc1ts
b2NhbF0pKTsKICAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGFyZ3VtZW50ID0gMDsgYXJn
dW1lbnQgPCBiYXNlbGluZS0+bnVtUGFyYW1ldGVycygpOyArK2FyZ3VtZW50KSB7CisgICAgICAg
ICAgICBOb2RlKiBvbGROb2RlID0gdGFyZ2V0LT52YXJpYWJsZXNBdEhlYWQuYXJndW1lbnQoYXJn
dW1lbnQpOworICAgICAgICAgICAgaWYgKCFvbGROb2RlKSB7CisgICAgICAgICAgICAgICAgLy8g
SnVzdCBmb3Igc2FuaXR5LCBhbHdheXMgaGF2ZSBhIFNldEFyZ3VtZW50IGV2ZW4gaWYgaXQncyBu
b3QgbmVlZGVkLgorICAgICAgICAgICAgICAgIG9sZE5vZGUgPSBtX2dyYXBoLm1fYXJndW1lbnRz
W2FyZ3VtZW50XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBuZXdS
b290LT5hcHBlbmROb2RlKAorICAgICAgICAgICAgICAgIG1fZ3JhcGgsIFNwZWNOb25lLCBTZXRB
cmd1bWVudCwgY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICBPcEluZm8ob2xkTm9kZS0+dmFy
aWFibGVBY2Nlc3NEYXRhKCkpKTsKKyAgICAgICAgICAgIG1fZ3JhcGgubV9hcmd1bWVudHNbYXJn
dW1lbnRdID0gbm9kZTsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgZm9yIChpbnQgbG9j
YWwgPSAwOyBsb2NhbCA8IGJhc2VsaW5lLT5tX251bUNhbGxlZVJlZ2lzdGVyczsgKytsb2NhbCkg
ewogICAgICAgICAgICAgTm9kZSogcHJldmlvdXNIZWFkID0gdGFyZ2V0LT52YXJpYWJsZXNBdEhl
YWQubG9jYWwobG9jYWwpOwogICAgICAgICAgICAgaWYgKCFwcmV2aW91c0hlYWQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5oCmluZGV4IGQ0MGVmZTRlMGZjZDQ3NjFlNGRmYjg5
MmNhOWEwNTUzYjhkMmNmMDIuLmFmMmVkYzlhMjM5OGI4ZTY2ZTMwNWRiNDAwYmM3MTk2NjFhMTI5
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5oCkBAIC0xMDUsNiArMTA1
LDExIEBAIHN0cnVjdCBPU1JFeGl0IDogcHVibGljIE9TUkV4aXRCYXNlIHsKICAgICB1bnNpZ25l
ZCBtX3N0cmVhbUluZGV4OwogICAgIAogICAgIFJlZlB0cjxWYWx1ZVJlY292ZXJ5T3ZlcnJpZGU+
IG1fdmFsdWVSZWNvdmVyeU92ZXJyaWRlOworICAgIAorICAgIGJvb2wgY29uc2lkZXJBZGRpbmdB
c0ZyZXF1ZW50RXhpdFNpdGUoQ29kZUJsb2NrKiBwcm9maWxlZENvZGVCbG9jaykKKyAgICB7Cisg
ICAgICAgIHJldHVybiBPU1JFeGl0QmFzZTo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNp
dGUocHJvZmlsZWRDb2RlQmxvY2ssIEV4aXRGcm9tREZHKTsKKyAgICB9CiB9OwogCiBzdHJ1Y3Qg
U3BlY3VsYXRpb25GYWlsdXJlRGVidWdJbmZvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT1NSRXhpdEJhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPU1JFeGl0QmFzZS5jcHAKaW5kZXggZWJmZDI3ZjJlMjg5YjUyMDMwYTVlZGJjMGViZmVh
MGNlY2ExN2M3OS4uYzVmMDAxZDdlNDI2ZjgzMWI4NjE5MGIzYjA3YmJkMDNiZjAzZTAzNCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5jcHAKQEAgLTM1LDcg
KzM1LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCi1ib29sIE9TUkV4
aXRCYXNlOjpjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZVNsb3coQ29kZUJsb2NrKiBw
cm9maWxlZENvZGVCbG9jaykKK2Jvb2wgT1NSRXhpdEJhc2U6OmNvbnNpZGVyQWRkaW5nQXNGcmVx
dWVudEV4aXRTaXRlU2xvdyhDb2RlQmxvY2sqIHByb2ZpbGVkQ29kZUJsb2NrLCBFeGl0aW5nSklU
VHlwZSBqaXRUeXBlKQogewogICAgIENvZGVCbG9jayogc291cmNlUHJvZmlsZWRDb2RlQmxvY2sg
PQogICAgICAgICBiYXNlbGluZUNvZGVCbG9ja0Zvck9yaWdpbkFuZEJhc2VsaW5lQ29kZUJsb2Nr
KApAQCAtNDMsNyArNDMsNyBAQCBib29sIE9TUkV4aXRCYXNlOjpjb25zaWRlckFkZGluZ0FzRnJl
cXVlbnRFeGl0U2l0ZVNsb3coQ29kZUJsb2NrKiBwcm9maWxlZENvZGVCbAogICAgIGlmICghc291
cmNlUHJvZmlsZWRDb2RlQmxvY2spCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4g
c291cmNlUHJvZmlsZWRDb2RlQmxvY2stPmFkZEZyZXF1ZW50RXhpdFNpdGUoCi0gICAgICAgICAg
ICBGcmVxdWVudEV4aXRTaXRlKG1fY29kZU9yaWdpbkZvckV4aXRQcm9maWxlLmJ5dGVjb2RlSW5k
ZXgsIG1fa2luZCkpOworICAgICAgICBGcmVxdWVudEV4aXRTaXRlKG1fY29kZU9yaWdpbkZvckV4
aXRQcm9maWxlLmJ5dGVjb2RlSW5kZXgsIG1fa2luZCwgaml0VHlwZSkpOwogfQogCiB9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6REZHCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09TUkV4aXRCYXNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRC
YXNlLmgKaW5kZXggZWUxZDY5ZGU3ZTE4YTQwMzBhNTYxYmM5MWMyMjM1ZDA2YzU2OGQyNy4uYzAy
MTQ2NWE3NTk1YmUzYzBkOTRjZTI1YmM1NTM3OWIxMWI5MTBiMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT1NSRXhpdEJhc2UuaApAQCAtNTgsMTUgKzU4LDE2IEBAIHN0cnVjdCBP
U1JFeGl0QmFzZSB7CiAgICAgQ29kZU9yaWdpbiBtX2NvZGVPcmlnaW47CiAgICAgQ29kZU9yaWdp
biBtX2NvZGVPcmlnaW5Gb3JFeGl0UHJvZmlsZTsKIAotICAgIGJvb2wgY29uc2lkZXJBZGRpbmdB
c0ZyZXF1ZW50RXhpdFNpdGUoQ29kZUJsb2NrKiBwcm9maWxlZENvZGVCbG9jaykKK3Byb3RlY3Rl
ZDoKKyAgICBib29sIGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlKENvZGVCbG9jayog
cHJvZmlsZWRDb2RlQmxvY2ssIEV4aXRpbmdKSVRUeXBlIGppdFR5cGUpCiAgICAgewogICAgICAg
ICBpZiAoIW1fY291bnQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJldHVy
biBjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZVNsb3cocHJvZmlsZWRDb2RlQmxvY2sp
OworICAgICAgICByZXR1cm4gY29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGVTbG93KHBy
b2ZpbGVkQ29kZUJsb2NrLCBqaXRUeXBlKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBj
b25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZVNsb3coQ29kZUJsb2NrKiBwcm9maWxlZENv
ZGVCbG9jayk7CisgICAgYm9vbCBjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZVNsb3co
Q29kZUJsb2NrKiBwcm9maWxlZENvZGVCbG9jaywgRXhpdGluZ0pJVFR5cGUgaml0VHlwZSk7CiB9
OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAKaW5kZXggZjhjOWZiMDY3YjFkN2I2MzMxM2Fk
NjAzM2Q0Mjk2YTQ2ZTY2NzUzNy4uMDNmMGQ4NTExYzY4MmU3YzA5MWIxOTA1Njg1NGM2ZTFmOTdl
NjhiMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29t
cGlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBp
bGVyLmNwcApAQCAtOTYsNyArOTYsNyBAQCB2b2lkIGNvbXBpbGVPU1JFeGl0KEV4ZWNTdGF0ZSog
ZXhlYykKICAgICAgICAgCiAgICAgICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0
LCBjb2RlQmxvY2spOwogICAgICAgICBleGl0Lm1fY29kZSA9IEZJTkFMSVpFX0NPREVfSUYoCi0g
ICAgICAgICAgICBzaG91bGRTaG93RGlzYXNzZW1ibHkoKSwKKyAgICAgICAgICAgIHNob3VsZFNo
b3dEaXNhc3NlbWJseSgpIHx8IE9wdGlvbnM6OnZlcmJvc2VPU1IoKSwKICAgICAgICAgICAgIHBh
dGNoQnVmZmVyLAogICAgICAgICAgICAgKCJERkcgT1NSIGV4aXQgIyV1ICglcywgJXMpIGZyb20g
JXMsIHdpdGggb3BlcmFuZHMgPSAlcyIsCiAgICAgICAgICAgICAgICAgZXhpdEluZGV4LCB0b0NT
dHJpbmcoZXhpdC5tX2NvZGVPcmlnaW4pLmRhdGEoKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAKaW5kZXggOTQwMmQxMTVl
ODdmYWUxYWJlN2MyOWIzMjMwYjllYThmOTA1MTQxNi4uYTE3Yzk3NzhkY2RlMzhkZWUxYTU3ZmQy
NTY4OGQ1YTg2OGEwMmM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAKQEAgLTQ2LDYgKzQ2LDEyIEBAIHZvaWQgT1NS
RXhpdENvbXBpbGVyOjpjb21waWxlRXhpdChjb25zdCBPU1JFeGl0JiBleGl0LCBjb25zdCBPcGVy
YW5kczxWYWx1ZVJlY292CiAgICAgICAgIG1faml0LmRlYnVnQ2FsbChkZWJ1Z09wZXJhdGlvblBy
aW50U3BlY3VsYXRpb25GYWlsdXJlLCBkZWJ1Z0luZm8pOwogICAgIH0KICAgICAKKyAgICAvLyBO
ZWVkIHRvIGVuc3VyZSB0aGF0IHRoZSBzdGFjayBwb2ludGVyIGFjY291bnRzIGZvciB0aGUgd29y
c3QtY2FzZSBzdGFjayB1c2FnZSBhdCBleGl0LgorICAgIG1faml0LmFkZFB0cigKKyAgICAgICAg
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoCisgICAgICAgICAgICAtbV9qaXQuY29kZUJsb2Nr
KCktPmppdENvZGUoKS0+ZGZnQ29tbW9uKCktPnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQg
KiBzaXplb2YoUmVnaXN0ZXIpKSwKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpmcmFtZVBvaW50ZXJS
ZWdpc3RlciwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgCiAgICAg
Ly8gMikgUGVyZm9ybSBzcGVjdWxhdGlvbiByZWNvdmVyeS4gVGhpcyBvbmx5IGNvbWVzIGludG8g
cGxheSB3aGVuIGFuIG9wZXJhdGlvbgogICAgIC8vICAgIHN0YXJ0cyBtdXRhdGluZyBzdGF0ZSBi
ZWZvcmUgdmVyaWZ5aW5nIHRoZSBzcGVjdWxhdGlvbiBpdCBoYXMgYWxyZWFkeSBtYWRlLgogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGls
ZXI2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0
LmNwcAppbmRleCAyMTlhNWU2OGFmZGNiMGM4MTk4YWMxYjE1NWM3NzFhZTU5ZDJmZTY1Li5hNTNi
NGNlOTExYmJlMjEyZGViZWRlYmI0NDVkMDVlNDkyOWMxMmE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcApAQCAtNDAsNiArNDAs
OCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIHZvaWQgT1NSRXhpdENvbXBp
bGVyOjpjb21waWxlRXhpdChjb25zdCBPU1JFeGl0JiBleGl0LCBjb25zdCBPcGVyYW5kczxWYWx1
ZVJlY292ZXJ5PiYgb3BlcmFuZHMsIFNwZWN1bGF0aW9uUmVjb3ZlcnkqIHJlY292ZXJ5KQogewor
ICAgIG1faml0LmppdEFzc2VydFRhZ3NJblBsYWNlKCk7CisKICAgICAvLyAxKSBQcm8tZm9ybWEg
c3R1ZmYuCiAgICAgaWYgKE9wdGlvbnM6OnByaW50RWFjaE9TUkV4aXQoKSkgewogICAgICAgICBT
cGVjdWxhdGlvbkZhaWx1cmVEZWJ1Z0luZm8qIGRlYnVnSW5mbyA9IG5ldyBTcGVjdWxhdGlvbkZh
aWx1cmVEZWJ1Z0luZm87CkBAIC00OCw2ICs1MCwxMiBAQCB2b2lkIE9TUkV4aXRDb21waWxlcjo6
Y29tcGlsZUV4aXQoY29uc3QgT1NSRXhpdCYgZXhpdCwgY29uc3QgT3BlcmFuZHM8VmFsdWVSZWNv
dgogICAgICAgICBtX2ppdC5kZWJ1Z0NhbGwoZGVidWdPcGVyYXRpb25QcmludFNwZWN1bGF0aW9u
RmFpbHVyZSwgZGVidWdJbmZvKTsKICAgICB9CiAgICAgCisgICAgLy8gTmVlZCB0byBlbnN1cmUg
dGhhdCB0aGUgc3RhY2sgcG9pbnRlciBhY2NvdW50cyBmb3IgdGhlIHdvcnN0LWNhc2Ugc3RhY2sg
dXNhZ2UgYXQgZXhpdC4KKyAgICBtX2ppdC5hZGRQdHIoCisgICAgICAgIENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbTMyKAorICAgICAgICAgICAgLW1faml0LmNvZGVCbG9jaygpLT5qaXRDb2RlKCkt
PmRmZ0NvbW1vbigpLT5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0ICogc2l6ZW9mKFJlZ2lz
dGVyKSksCisgICAgICAgIENDYWxsSGVscGVyczo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIENDYWxs
SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIAogICAgIC8vIDIpIFBlcmZvcm0g
c3BlY3VsYXRpb24gcmVjb3ZlcnkuIFRoaXMgb25seSBjb21lcyBpbnRvIHBsYXkgd2hlbiBhbiBv
cGVyYXRpb24KICAgICAvLyAgICBzdGFydHMgbXV0YXRpbmcgc3RhdGUgYmVmb3JlIHZlcmlmeWlu
ZyB0aGUgc3BlY3VsYXRpb24gaXQgaGFzIGFscmVhZHkgbWFkZS4KICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcApp
bmRleCA5Zjg0YTI5NjgwODAzYWQzMWEyYjJlNTIxMTZmM2JkZjJkYjkyNWRjLi43ZjFkOGM0YzY4
YzM3MjYzNzBjYWNkMzJmMjAwNzZiZDIzY2M0NTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCkBAIC0zMCw2ICsz
MCw3IEBACiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKICNpbmNsdWRlICJERkdPcGVyYXRpb25z
LmgiCisjaW5jbHVkZSAiSklULmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAKQEAgLTE3Myw3ICsxNzQsMTEgQEAgdm9pZCBhZGp1c3RB
bmRKdW1wVG9UYXJnZXQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IE9TUkV4aXRCYXNlJiBleGl0
KQogICAgIEFTU0VSVChtYXBwaW5nLT5tX2J5dGVjb2RlSW5kZXggPT0gZXhpdC5tX2NvZGVPcmln
aW4uYnl0ZWNvZGVJbmRleCk7CiAgICAgCiAgICAgdm9pZCoganVtcFRhcmdldCA9IGJhc2VsaW5l
Q29kZUJsb2NrLT5qaXRDb2RlKCktPmV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQobWFwcGluZy0+
bV9tYWNoaW5lQ29kZU9mZnNldCk7CisKKyAgICBqaXQuYWRkUHRyKEFzc2VtYmx5SGVscGVyczo6
VHJ1c3RlZEltbTMyKEpJVDo6c3RhY2tQb2ludGVyT2Zmc2V0Rm9yKGJhc2VsaW5lQ29kZUJsb2Nr
KSAqIHNpemVvZihSZWdpc3RlcikpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQXNzZW1i
bHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgCisgICAgaml0LmppdEFzc2Vy
dFRhZ3NJblBsYWNlKCk7CisKICAgICBqaXQubW92ZShBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJ
bW1QdHIoanVtcFRhcmdldCksIEdQUkluZm86OnJlZ1QyKTsKICAgICBqaXQuanVtcChHUFJJbmZv
OjpyZWdUMik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cAppbmRleCBiMzFiNmZjZGM0MjIyOGY3Mjk3MDA5YTdlMjczMTAwYmY1NTM4YzYxLi4yZmYwYzM0
MTQ2ZTJjMGJhMmZmNzZjNGQzZjdjNDZiYTNlMjU1MTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTExNDAsNyArMTE0MCw3IEBAIHZvaWQgSklU
X09QRVJBVElPTiB0cmlnZ2VyVGllclVwTm93KEV4ZWNTdGF0ZSogZXhlYykKICAgICB9CiAgICAg
CiAgICAgV29ya2xpc3Q6OlN0YXRlIHdvcmtsaXN0U3RhdGU7Ci0gICAgaWYgKFdvcmtsaXN0KiB3
b3JrbGlzdCA9IHZtLT53b3JrbGlzdC5nZXQoKSkgeworICAgIGlmIChXb3JrbGlzdCogd29ya2xp
c3QgPSBleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxsKCkpIHsKICAgICAgICAgd29ya2xp
c3RTdGF0ZSA9IHdvcmtsaXN0LT5jb21wbGV0ZUFsbFJlYWR5UGxhbnNGb3JWTSgKICAgICAgICAg
ICAgICp2bSwgQ29tcGlsYXRpb25LZXkoY29kZUJsb2NrLT5iYXNlbGluZVZlcnNpb24oKSwgRlRM
TW9kZSkpOwogICAgIH0gZWxzZQpAQCAtMTE2OSw4ICsxMTY5LDggQEAgdm9pZCBKSVRfT1BFUkFU
SU9OIHRyaWdnZXJUaWVyVXBOb3coRXhlY1N0YXRlKiBleGVjKQogCiAgICAgLy8gV2UgbmVlZCB0
byBjb21waWxlIHRoZSBjb2RlLgogICAgIGNvbXBpbGUoCi0gICAgICAgICp2bSwgY29kZUJsb2Nr
LT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBGVExNb2RlLCBVSU5UX01BWCwgT3BlcmFuZHM8SlNW
YWx1ZT4oKSwKLSAgICAgICAgVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0
ZShjb2RlQmxvY2spLCB2bS0+ZW5zdXJlV29ya2xpc3QoKSk7CisgICAgICAgICp2bSwgY29kZUJs
b2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBjb2RlQmxvY2ssIEZUTE1vZGUsIFVJTlRfTUFY
LAorICAgICAgICBPcGVyYW5kczxKU1ZhbHVlPigpLCBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjazo6Y3JlYXRlKGNvZGVCbG9jaykpOwogfQogCiBjaGFyKiBKSVRfT1BFUkFUSU9OIHRy
aWdnZXJPU1JFbnRyeU5vdygKQEAgLTEyMDIsOCArMTIwMiwxMCBAQCBjaGFyKiBKSVRfT1BFUkFU
SU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIAor
ICAgIFdvcmtsaXN0KiB3b3JrbGlzdCA9IGV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwo
KTsKKwogICAgIFdvcmtsaXN0OjpTdGF0ZSB3b3JrbGlzdFN0YXRlOwotICAgIGlmIChXb3JrbGlz
dCogd29ya2xpc3QgPSB2bS0+d29ya2xpc3QuZ2V0KCkpIHsKKyAgICBpZiAod29ya2xpc3QpIHsK
ICAgICAgICAgd29ya2xpc3RTdGF0ZSA9IHdvcmtsaXN0LT5jb21wbGV0ZUFsbFJlYWR5UGxhbnNG
b3JWTSgKICAgICAgICAgICAgICp2bSwgQ29tcGlsYXRpb25LZXkoY29kZUJsb2NrLT5iYXNlbGlu
ZVZlcnNpb24oKSwgRlRMRm9yT1NSRW50cnlNb2RlKSk7CiAgICAgfSBlbHNlCkBAIC0xMjUyLDEw
ICsxMjU0LDkgQEAgY2hhciogSklUX09QRVJBVElPTiB0cmlnZ2VyT1NSRW50cnlOb3coCiAgICAg
T3BlcmFuZHM8SlNWYWx1ZT4gbXVzdEhhbmRsZVZhbHVlczsKICAgICBqaXRDb2RlLT5yZWNvbnN0
cnVjdCgKICAgICAgICAgZXhlYywgY29kZUJsb2NrLCBDb2RlT3JpZ2luKGJ5dGVjb2RlSW5kZXgp
LCBzdHJlYW1JbmRleCwgbXVzdEhhbmRsZVZhbHVlcyk7Ci0gICAgQ29tcGlsYXRpb25SZXN1bHQg
Zm9yRW50cnlSZXN1bHQgPSBERkc6OmNvbXBpbGUoCi0gICAgICAgICp2bSwgY29kZUJsb2NrLT5u
ZXdSZXBsYWNlbWVudCgpLmdldCgpLCBGVExGb3JPU1JFbnRyeU1vZGUsIGJ5dGVjb2RlSW5kZXgs
Ci0gICAgICAgIG11c3RIYW5kbGVWYWx1ZXMsIFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBp
bGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShjb2RlQmxvY2spLAotICAgICAgICB2bS0+ZW5zdXJlV29y
a2xpc3QoKSk7CisgICAgQ29tcGlsYXRpb25SZXN1bHQgZm9yRW50cnlSZXN1bHQgPSBjb21waWxl
KAorICAgICAgICAqdm0sIGNvZGVCbG9jay0+bmV3UmVwbGFjZW1lbnQoKS5nZXQoKSwgY29kZUJs
b2NrLCBGVExGb3JPU1JFbnRyeU1vZGUsIGJ5dGVjb2RlSW5kZXgsCisgICAgICAgIG11c3RIYW5k
bGVWYWx1ZXMsIFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNy
ZWF0ZShjb2RlQmxvY2spKTsKICAgICAKICAgICAvLyBCdXQgd2UgYWxzbyB3YW50IHRvIHRyaWdn
ZXIgYSByZXBsYWNlbWVudCBjb21waWxlLiBPZiBjb3Vyc2UsIHdlIGRvbid0IHdhbnQgdG8KICAg
ICAvLyB0cmlnZ2VyIGl0IGlmIHdlIGRvbid0IG5lZWQgdG8uIE5vdGUgdGhhdCB0aGlzIGlzIGtp
bmQgb2Ygd2VpcmQgYmVjYXVzZSB3ZSBtaWdodApAQCAtMTI2OCwxMSArMTI2OSwxMSBAQCBjaGFy
KiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICBDb21waWxhdGlvbktleSBr
ZXlGb3JSZXBsYWNlbWVudChjb2RlQmxvY2stPmJhc2VsaW5lVmVyc2lvbigpLCBGVExNb2RlKTsK
ICAgICBpZiAoY29kZUJsb2NrLT5jb2RlVHlwZSgpICE9IEdsb2JhbENvZGUKICAgICAgICAgJiYg
IWNvZGVCbG9jay0+aGFzT3B0aW1pemVkUmVwbGFjZW1lbnQoKQotICAgICAgICAmJiAoIXZtLT53
b3JrbGlzdC5nZXQoKQotICAgICAgICAgICAgfHwgdm0tPndvcmtsaXN0LT5jb21waWxhdGlvblN0
YXRlKGtleUZvclJlcGxhY2VtZW50KSA9PSBXb3JrbGlzdDo6Tm90S25vd24pKSB7CisgICAgICAg
ICYmICghd29ya2xpc3QKKyAgICAgICAgICAgIHx8IHdvcmtsaXN0LT5jb21waWxhdGlvblN0YXRl
KGtleUZvclJlcGxhY2VtZW50KSA9PSBXb3JrbGlzdDo6Tm90S25vd24pKSB7CiAgICAgICAgIGNv
bXBpbGUoCi0gICAgICAgICAgICAqdm0sIGNvZGVCbG9jay0+bmV3UmVwbGFjZW1lbnQoKS5nZXQo
KSwgRlRMTW9kZSwgVUlOVF9NQVgsIE9wZXJhbmRzPEpTVmFsdWU+KCksCi0gICAgICAgICAgICBU
b0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3JlYXRlKGNvZGVCbG9jayksIHZtLT5l
bnN1cmVXb3JrbGlzdCgpKTsKKyAgICAgICAgICAgICp2bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNl
bWVudCgpLmdldCgpLCBjb2RlQmxvY2ssIEZUTE1vZGUsIFVJTlRfTUFYLAorICAgICAgICAgICAg
T3BlcmFuZHM8SlNWYWx1ZT4oKSwgVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNy
ZWF0ZShjb2RlQmxvY2spKTsKICAgICB9CiAgICAgCiAgICAgaWYgKGZvckVudHJ5UmVzdWx0ICE9
IENvbXBpbGF0aW9uU3VjY2Vzc2Z1bCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3Bw
CmluZGV4IDhjMzcwODM4MzBmODBjNTY4OGJkNWY1MjczY2QyZWRjNjNjOWM1NWMuLjI4NjNhMDhk
MDI3YzRjNGMyOTU0NjI1YTgwOTIyZmU1YjdmMzAxMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQbGFuLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtOTAsMTcgKzkwLDM3IEBAIHN0YXRpYyB2b2lkIGR1bXBBbmRWZXJpZnlH
cmFwaChHcmFwaCYgZ3JhcGgsIGNvbnN0IGNoYXIqIHRleHQpCiAgICAgICAgIHZhbGlkYXRlKGdy
YXBoLCBtb2RlRm9yRmluYWxWYWxpZGF0ZSk7CiB9CiAKK3N0YXRpYyBQcm9maWxlcjo6Q29tcGls
YXRpb25LaW5kIHByb2ZpbGVyQ29tcGlsYXRpb25LaW5kRm9yTW9kZShDb21waWxhdGlvbk1vZGUg
bW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIEludmFsaWRDb21waWxhdGlv
bk1vZGU6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJl
dHVybiBQcm9maWxlcjo6REZHOworICAgIGNhc2UgREZHTW9kZToKKyAgICAgICAgcmV0dXJuIFBy
b2ZpbGVyOjpERkc7CisgICAgY2FzZSBGVExNb2RlOgorICAgICAgICByZXR1cm4gUHJvZmlsZXI6
OkZUTDsKKyAgICBjYXNlIEZUTEZvck9TUkVudHJ5TW9kZToKKyAgICAgICAgcmV0dXJuIFByb2Zp
bGVyOjpGVExGb3JPU1JFbnRyeTsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gUHJvZmlsZXI6OkRGRzsKK30KKwogUGxhbjo6UGxhbigKLSAgICBQ
YXNzUmVmUHRyPENvZGVCbG9jaz4gcGFzc2VkQ29kZUJsb2NrLCBDb21waWxhdGlvbk1vZGUgbW9k
ZSwKLSAgICB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIGNvbnN0IE9wZXJhbmRzPEpT
VmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzKQorICAgIFBhc3NSZWZQdHI8Q29kZUJsb2NrPiBwYXNz
ZWRDb2RlQmxvY2ssIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2RlQmxvY2ssCisgICAgQ29tcGls
YXRpb25Nb2RlIG1vZGUsIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwKKyAgICBjb25z
dCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVlcykKICAgICA6IHZtKCpwYXNzZWRD
b2RlQmxvY2stPnZtKCkpCiAgICAgLCBjb2RlQmxvY2socGFzc2VkQ29kZUJsb2NrKQorICAgICwg
cHJvZmlsZWRERkdDb2RlQmxvY2socHJvZmlsZWRERkdDb2RlQmxvY2spCiAgICAgLCBtb2RlKG1v
ZGUpCiAgICAgLCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgob3NyRW50cnlCeXRlY29kZUluZGV4KQog
ICAgICwgbXVzdEhhbmRsZVZhbHVlcyhtdXN0SGFuZGxlVmFsdWVzKQotICAgICwgY29tcGlsYXRp
b24oY29kZUJsb2NrLT52bSgpLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXIgPyBhZG9wdFJlZihuZXcg
UHJvZmlsZXI6OkNvbXBpbGF0aW9uKGNvZGVCbG9jay0+dm0oKS0+bV9wZXJCeXRlY29kZVByb2Zp
bGVyLT5lbnN1cmVCeXRlY29kZXNGb3IoY29kZUJsb2NrLmdldCgpKSwgUHJvZmlsZXI6OkRGRykp
IDogMCkKKyAgICAsIGNvbXBpbGF0aW9uKGNvZGVCbG9jay0+dm0oKS0+bV9wZXJCeXRlY29kZVBy
b2ZpbGVyID8gYWRvcHRSZWYobmV3IFByb2ZpbGVyOjpDb21waWxhdGlvbihjb2RlQmxvY2stPnZt
KCktPm1fcGVyQnl0ZWNvZGVQcm9maWxlci0+ZW5zdXJlQnl0ZWNvZGVzRm9yKGNvZGVCbG9jay5n
ZXQoKSksIHByb2ZpbGVyQ29tcGlsYXRpb25LaW5kRm9yTW9kZShtb2RlKSkpIDogMCkKICAgICAs
IGlkZW50aWZpZXJzKGNvZGVCbG9jay5nZXQoKSkKICAgICAsIHdlYWtSZWZlcmVuY2VzKGNvZGVC
bG9jay5nZXQoKSkKKyAgICAsIHdpbGxUcnlUb1RpZXJVcChmYWxzZSkKICAgICAsIGlzQ29tcGls
ZWQoZmFsc2UpCiB7CiB9CkBAIC0xMDksMTAgKzEyOSwxNiBAQCBQbGFuOjp+UGxhbigpCiB7CiB9
CiAKK2Jvb2wgUGxhbjo6cmVwb3J0Q29tcGlsZVRpbWVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
T3B0aW9uczo6cmVwb3J0Q29tcGlsZVRpbWVzKCkKKyAgICAgICAgfHwgKE9wdGlvbnM6OnJlcG9y
dEZUTENvbXBpbGVUaW1lcygpICYmIGlzRlRMKG1vZGUpKTsKK30KKwogdm9pZCBQbGFuOjpjb21w
aWxlSW5UaHJlYWQoTG9uZ0xpdmVkU3RhdGUmIGxvbmdMaXZlZFN0YXRlKQogewogICAgIGRvdWJs
ZSBiZWZvcmUgPSAwOwotICAgIGlmIChPcHRpb25zOjpyZXBvcnRDb21waWxlVGltZXMoKSkKKyAg
ICBpZiAocmVwb3J0Q29tcGlsZVRpbWVzKCkpCiAgICAgICAgIGJlZm9yZSA9IGN1cnJlbnRUaW1l
TVMoKTsKICAgICAKICAgICBTYW1wbGluZ1JlZ2lvbiBzYW1wbGluZ1JlZ2lvbigiREZHIENvbXBp
bGF0aW9uIChQbGFuKSIpOwpAQCAtMTI1LDcgKzE1MSw3IEBAIHZvaWQgUGxhbjo6Y29tcGlsZUlu
VGhyZWFkKExvbmdMaXZlZFN0YXRlJiBsb25nTGl2ZWRTdGF0ZSkKIAogICAgIFJFTEVBU0VfQVNT
RVJUKGZpbmFsaXplcik7CiAgICAgCi0gICAgaWYgKE9wdGlvbnM6OnJlcG9ydENvbXBpbGVUaW1l
cygpKSB7CisgICAgaWYgKHJlcG9ydENvbXBpbGVUaW1lcygpKSB7CiAgICAgICAgIGNvbnN0IGNo
YXIqIHBhdGhOYW1lOwogICAgICAgICBzd2l0Y2ggKHBhdGgpIHsKICAgICAgICAgY2FzZSBGYWls
UGF0aDoKQEAgLTE0Myw3ICsxNjksNyBAQCB2b2lkIFBsYW46OmNvbXBpbGVJblRocmVhZChMb25n
TGl2ZWRTdGF0ZSYgbG9uZ0xpdmVkU3RhdGUpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICBkb3VibGUgbm93ID0gY3VycmVudFRpbWVNUygpOwotICAgICAgICBkYXRhTG9n
KCJPcHRpbWl6ZWQgIiwgKmNvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKSwgIiB1c2luZyAiLCBtb2Rl
LCAiIHdpdGggIiwgcGF0aE5hbWUsICIgaW4gIiwgbm93IC0gYmVmb3JlLCAiIG1zIik7CisgICAg
ICAgIGRhdGFMb2coIk9wdGltaXplZCAiLCAqY29kZUJsb2NrLCAiIHVzaW5nICIsIG1vZGUsICIg
d2l0aCAiLCBwYXRoTmFtZSwgIiBpbnRvICIsIGZpbmFsaXplci0+Y29kZVNpemUoKSwgIiBieXRl
cyBpbiAiLCBub3cgLSBiZWZvcmUsICIgbXMiKTsKICAgICAgICAgaWYgKHBhdGggPT0gRlRMUGF0
aCkKICAgICAgICAgICAgIGRhdGFMb2coIiAoREZHOiAiLCBiZWZvcmVGVEwgLSBiZWZvcmUsICIs
IExMVk06ICIsIG5vdyAtIGJlZm9yZUZUTCwgIikiKTsKICAgICAgICAgZGF0YUxvZygiLlxuIik7
CkBAIC0yOTIsNyArMzE4LDcgQEAgUGxhbjo6Q29tcGlsYXRpb25QYXRoIFBsYW46OmNvbXBpbGVJ
blRocmVhZEltcGwoTG9uZ0xpdmVkU3RhdGUmIGxvbmdMaXZlZFN0YXRlKQogICAgICAgICBGVEw6
OlN0YXRlIHN0YXRlKGRmZyk7CiAgICAgICAgIEZUTDo6bG93ZXJERkdUb0xMVk0oc3RhdGUpOwog
ICAgICAgICAKLSAgICAgICAgaWYgKE9wdGlvbnM6OnJlcG9ydENvbXBpbGVUaW1lcygpKQorICAg
ICAgICBpZiAocmVwb3J0Q29tcGlsZVRpbWVzKCkpCiAgICAgICAgICAgICBiZWZvcmVGVEwgPSBj
dXJyZW50VGltZU1TKCk7CiAgICAgICAgIAogICAgICAgICBpZiAoT3B0aW9uczo6bGx2bUFsd2F5
c0ZhaWxzQmVmb3JlQ29tcGlsZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1BsYW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5oCmlu
ZGV4IGE2MDI2OTc5ODgzZTMyNzE5M2E3ODY2NDE5OTMyZGY3MDEyYzc2ZWIuLjFmNmJjZTBjNDE3
YjE1MzI4Nzk4NDkzNWZkYmY5NThjODc5YjRhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUGxhbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UGxhbi5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC01NSw3ICs1NSw4IEBAIGNsYXNzIExvbmdMaXZlZFN0YXRlOwogCiBzdHJ1Y3QgUGxh
biA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQbGFuPiB7CiAgICAgUGxhbigKLSAgICAg
ICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+LCBDb21waWxhdGlvbk1vZGUsIHVuc2lnbmVkIG9zckVu
dHJ5Qnl0ZWNvZGVJbmRleCwKKyAgICAgICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+IGNvZGVCbG9j
a1RvQ29tcGlsZSwgQ29kZUJsb2NrKiBwcm9maWxlZERGR0NvZGVCbG9jaywKKyAgICAgICAgQ29t
cGlsYXRpb25Nb2RlLCB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsCiAgICAgICAgIGNv
bnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzKTsKICAgICB+UGxhbigpOwog
ICAgIApAQCAtNzAsNiArNzEsNyBAQCBzdHJ1Y3QgUGxhbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxQbGFuPiB7CiAgICAgCiAgICAgVk0mIHZtOwogICAgIFJlZlB0cjxDb2RlQmxvY2s+
IGNvZGVCbG9jazsKKyAgICBSZWZQdHI8Q29kZUJsb2NrPiBwcm9maWxlZERGR0NvZGVCbG9jazsK
ICAgICBDb21waWxhdGlvbk1vZGUgbW9kZTsKICAgICBjb25zdCB1bnNpZ25lZCBvc3JFbnRyeUJ5
dGVjb2RlSW5kZXg7CiAgICAgT3BlcmFuZHM8SlNWYWx1ZT4gbXVzdEhhbmRsZVZhbHVlczsKQEAg
LTg0LDYgKzg2LDggQEAgc3RydWN0IFBsYW4gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
UGxhbj4gewogICAgIERlc2lyZWRXZWFrUmVmZXJlbmNlcyB3ZWFrUmVmZXJlbmNlczsKICAgICBE
ZXNpcmVkV3JpdGVCYXJyaWVycyB3cml0ZUJhcnJpZXJzOwogICAgIERlc2lyZWRUcmFuc2l0aW9u
cyB0cmFuc2l0aW9uczsKKyAgICAKKyAgICBib29sIHdpbGxUcnlUb1RpZXJVcDsKIAogICAgIGRv
dWJsZSBiZWZvcmVGVEw7CiAgICAgCkBAIC05Miw2ICs5Niw4IEBAIHN0cnVjdCBQbGFuIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBsYW4+IHsKICAgICBSZWZQdHI8RGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrPiBjYWxsYmFjazsKIAogcHJpdmF0ZToKKyAgICBib29sIHJlcG9ydENv
bXBpbGVUaW1lcygpIGNvbnN0OworICAgIAogICAgIGVudW0gQ29tcGlsYXRpb25QYXRoIHsgRmFp
bFBhdGgsIERGR1BhdGgsIEZUTFBhdGggfTsKICAgICBDb21waWxhdGlvblBhdGggY29tcGlsZUlu
VGhyZWFkSW1wbChMb25nTGl2ZWRTdGF0ZSYpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHAKaW5kZXggNTFkNWZkMGU0OTdkNjU1
MjExNzZmMzFlOTljNTQxYWVmNWRkMjAzZS4uMGY0NjE1NTkyZGRhM2ZiNGNjYmUzNmU1MDdlZTM2
YTEzYmVmZWYwOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FM
b3dlcmluZ1BoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxv
d2VyaW5nUGhhc2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMs
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC03MywyMiArNzMsMzMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgUHV0QnlWYWw6Ci0gICAgICAgIGNhc2Ug
UHV0QnlWYWxEaXJlY3Q6Ci0gICAgICAgICAgICBsb3dlckJvdW5kc0NoZWNrKAotICAgICAgICAg
ICAgICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAwKSwKLSAgICAgICAgICAgICAgICBt
X2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSksCi0gICAgICAgICAgICAgICAgbV9ncmFwaC52
YXJBcmdDaGlsZChtX25vZGUsIDMpKTsKKyAgICAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDogewor
ICAgICAgICAgICAgRWRnZSBiYXNlID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDApOwor
ICAgICAgICAgICAgRWRnZSBpbmRleCA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxKTsK
KyAgICAgICAgICAgIEVkZ2Ugc3RvcmFnZSA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAz
KTsKKyAgICAgICAgICAgIGlmIChsb3dlckJvdW5kc0NoZWNrKGJhc2UsIGluZGV4LCBzdG9yYWdl
KSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYg
KG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZWRBcnJheVR5cGUoKSAhPSBOb3RUeXBlZEFycmF5ICYm
IG1fbm9kZS0+YXJyYXlNb2RlKCkuaXNPdXRPZkJvdW5kcygpKSB7CisgICAgICAgICAgICAgICAg
Tm9kZSogbGVuZ3RoID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKKyAgICAgICAgICAgICAg
ICAgICAgbV9ub2RlSW5kZXgsIFNwZWNJbnQzMiwgR2V0QXJyYXlMZW5ndGgsIG1fbm9kZS0+Y29k
ZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgT3BJbmZvKG1fbm9kZS0+YXJyYXlNb2RlKCku
YXNXb3JkKCkpLCBiYXNlLCBzdG9yYWdlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgNCkgPSBFZGdlKGxlbmd0aCwgS25vd25J
bnQzMlVzZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICB2b2lkIGxvd2Vy
Qm91bmRzQ2hlY2soRWRnZSBiYXNlLCBFZGdlIGluZGV4LCBFZGdlIHN0b3JhZ2UpCisgICAgYm9v
bCBsb3dlckJvdW5kc0NoZWNrKEVkZ2UgYmFzZSwgRWRnZSBpbmRleCwgRWRnZSBzdG9yYWdlKQog
ICAgIHsKICAgICAgICAgaWYgKCFtX25vZGUtPmFycmF5TW9kZSgpLnBlcm1pdHNCb3VuZHNDaGVj
a0xvd2VyaW5nKCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIAogICAgICAgICBpZiAoIW1fbm9kZS0+YXJyYXlNb2RlKCkubGVuZ3RoTmVl
ZHNTdG9yYWdlKCkpCiAgICAgICAgICAgICBzdG9yYWdlID0gRWRnZSgpOwpAQCAtOTksNiArMTEw
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKICAgICAg
ICAgICAgIG1fbm9kZUluZGV4LCBTcGVjSW50MzIsIENoZWNrSW5Cb3VuZHMsIG1fbm9kZS0+Y29k
ZU9yaWdpbiwKICAgICAgICAgICAgIGluZGV4LCBFZGdlKGxlbmd0aCwgS25vd25JbnQzMlVzZSkp
OworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCiAgICAgSW5zZXJ0aW9uU2V0IG1f
aW5zZXJ0aW9uU2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcAppbmRleCA3ZDIyMjIwYmQ4YmRjYTNhZjFiODVlZmY4MzcxODJhNDUxOTE5ODNm
Li4yOTkzZDk3NjE4YjYxNWQzMzJhNmZmNGFiMmVhZGYwMjEyZTU3ZWQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMTM0Niw2ICsx
MzQ2LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUN1cnJlbnRCbG9jaygpCiAgICAg
bV9zdHJlYW0tPmFwcGVuZEFuZExvZyhWYXJpYWJsZUV2ZW50OjpyZXNldCgpKTsKICAgICAKICAg
ICBtX2ppdC5qaXRBc3NlcnRIYXNWYWxpZENhbGxGcmFtZSgpOworICAgIG1faml0LmppdEFzc2Vy
dFRhZ3NJblBsYWNlKCk7CisgICAgbV9qaXQuaml0QXNzZXJ0QXJndW1lbnRDb3VudFNhbmUoKTsK
IAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9ibG9jay0+dmFyaWFibGVzQXRIZWFkLm51
bWJlck9mQXJndW1lbnRzKCk7ICsraSkgewogICAgICAgICBtX3N0cmVhbS0+YXBwZW5kQW5kTG9n
KApAQCAtMTUzMiwxMCArMTUzNCw0MCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0FyZ3Vt
ZW50VHlwZXMoKQogICAgIG1faXNDaGVja2luZ0FyZ3VtZW50VHlwZXMgPSBmYWxzZTsKIH0KIAor
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6cHJlcGFyZUpJVENvZGVGb3JUaWVyVXAoKQoreworICAgIHVu
c2lnbmVkIG51bWJlck9mQ2FsbHMgPSAwOworICAgIAorICAgIGZvciAoQmxvY2tJbmRleCBibG9j
a0luZGV4ID0gbV9qaXQuZ3JhcGgoKS5udW1CbG9ja3MoKTsgYmxvY2tJbmRleC0tOykgeworICAg
ICAgICBCYXNpY0Jsb2NrKiBibG9jayA9IG1faml0LmdyYXBoKCkuYmxvY2soYmxvY2tJbmRleCk7
CisgICAgICAgIGlmICghYmxvY2spCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgCisg
ICAgICAgIGZvciAodW5zaWduZWQgbm9kZUluZGV4ID0gYmxvY2stPnNpemUoKTsgbm9kZUluZGV4
LS07KSB7CisgICAgICAgICAgICBOb2RlKiBub2RlID0gYmxvY2stPmF0KG5vZGVJbmRleCk7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgeworICAgICAgICAg
ICAgY2FzZSBDYWxsOgorICAgICAgICAgICAgY2FzZSBDb25zdHJ1Y3Q6CisgICAgICAgICAgICAg
ICAgbnVtYmVyT2ZDYWxscysrOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBtX2ppdC5qaXRDb2RlKCktPnNs
b3dQYXRoQ2FsbHMuZmlsbCgwLCBudW1iZXJPZkNhbGxzKTsKK30KKwogYm9vbCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZSgpCiB7CiAgICAgY2hlY2tBcmd1bWVudFR5cGVzKCk7Ci0KKyAgICAKKyAg
ICBpZiAobV9qaXQuZ3JhcGgoKS5tX3BsYW4ud2lsbFRyeVRvVGllclVwKQorICAgICAgICBwcmVw
YXJlSklUQ29kZUZvclRpZXJVcCgpOworICAgIAogICAgIEFTU0VSVCghbV9jdXJyZW50Tm9kZSk7
CiAgICAgZm9yIChCbG9ja0luZGV4IGJsb2NrSW5kZXggPSAwOyBibG9ja0luZGV4IDwgbV9qaXQu
Z3JhcGgoKS5udW1CbG9ja3MoKTsgKytibG9ja0luZGV4KSB7CiAgICAgICAgIG1faml0LnNldEZv
ckJsb2NrSW5kZXgoYmxvY2tJbmRleCk7CkBAIC0yMzkwLDYgKzI0MjIsMTAgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRBcnJheShHUFJSZWcgYmFzZSwg
R1BSUmVnIHByb3BlcnQKICAgICBBU1NFUlQodmFsdWVHUFIgIT0gYmFzZSk7CiAgICAgQVNTRVJU
KHZhbHVlR1BSICE9IHN0b3JhZ2VSZWcpOwogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG91dE9m
Qm91bmRzID0ganVtcEZvclR5cGVkQXJyYXlPdXRPZkJvdW5kcyhub2RlLCBiYXNlLCBwcm9wZXJ0
eSk7CisgICAgaWYgKG5vZGUtPmFycmF5TW9kZSgpLmlzSW5Cb3VuZHMoKSAmJiBvdXRPZkJvdW5k
cy5pc1NldCgpKSB7CisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFs
dWVTb3VyY2UoKSwgMCwgb3V0T2ZCb3VuZHMpOworICAgICAgICBvdXRPZkJvdW5kcyA9IE1hY3Jv
QXNzZW1ibGVyOjpKdW1wKCk7CisgICAgfQogCiAgICAgc3dpdGNoIChlbGVtZW50U2l6ZSh0eXBl
KSkgewogICAgIGNhc2UgMToKQEAgLTI0NjUsNiArMjUwMSwxMCBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkoR1BSUmVnIGJhc2UsIEdQUlJl
ZyBwcm9wZQogICAgIEFTU0VSVF9VTlVTRUQoYmFzZVVzZSwgbm9kZS0+YXJyYXlNb2RlKCkuYWxy
ZWFkeUNoZWNrZWQobV9qaXQuZ3JhcGgoKSwgbm9kZSwgbV9zdGF0ZS5mb3JOb2RlKGJhc2VVc2Up
KSk7CiAgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBqdW1wRm9y
VHlwZWRBcnJheU91dE9mQm91bmRzKG5vZGUsIGJhc2UsIHByb3BlcnR5KTsKKyAgICBpZiAobm9k
ZS0+YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygpICYmIG91dE9mQm91bmRzLmlzU2V0KCkpIHsKKyAg
ICAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVNvdXJjZSgpLCAwLCBv
dXRPZkJvdW5kcyk7CisgICAgICAgIG91dE9mQm91bmRzID0gTWFjcm9Bc3NlbWJsZXI6Okp1bXAo
KTsKKyAgICB9CiAgICAgCiAgICAgc3dpdGNoIChlbGVtZW50U2l6ZSh0eXBlKSkgewogICAgIGNh
c2UgNDogewpAQCAtMzQyOSw2ICszNDY5LDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVBcml0aE1vZChOb2RlKiBub2RlKQogICAgICAgICBHUFJSZWcgcXVvdGllbnRUaGVuUmVtYWlu
ZGVyR1BSID0gcXVvdGllbnRUaGVuUmVtYWluZGVyLmdwcigpOwogICAgICAgICBHUFJSZWcgbXVs
dGlwbHlBbnN3ZXJHUFIgPSBtdWx0aXBseUFuc3dlci5ncHIoKTsKIAorICAgICAgICBKSVRDb21w
aWxlcjo6SnVtcExpc3QgZG9uZTsKKyAgICAgICAgCisgICAgICAgIGlmIChzaG91bGRDaGVja092
ZXJmbG93KG5vZGUtPmFyaXRoTW9kZSgpKSkKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
T3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsIG1faml0LmJyYW5jaFRlc3QzMihKSVRDb21waWxl
cjo6WmVybywgZGl2aXNvckdQUikpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEpJVENv
bXBpbGVyOjpKdW1wIGRlbm9taW5hdG9yTm90WmVybyA9IG1faml0LmJyYW5jaFRlc3QzMihKSVRD
b21waWxlcjo6Tm9uWmVybywgZGl2aXNvckdQUik7CisgICAgICAgICAgICBtX2ppdC5tb3ZlKGRp
dmlzb3JHUFIsIHF1b3RpZW50VGhlblJlbWFpbmRlckdQUik7CisgICAgICAgICAgICBkb25lLmFw
cGVuZChtX2ppdC5qdW1wKCkpOworICAgICAgICAgICAgZGVub21pbmF0b3JOb3RaZXJvLmxpbmso
Jm1faml0KTsKKyAgICAgICAgfQorCiAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLnNkaXYocXVv
dGllbnRUaGVuUmVtYWluZGVyR1BSLCBkaXZpZGVuZEdQUiwgZGl2aXNvckdQUik7CiAgICAgICAg
IC8vIEZJWE1FOiBJdCBzZWVtcyBsaWtlIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSB3ZSBkb24ndCBu
ZWVkIHRoaXM/IFdoYXQgaWYgd2UgaGF2ZQogICAgICAgICAvLyBhcml0aE1vZGUoKSA9PSBBcml0
aDo6VW5jaGVja2VkPwpAQCAtMzQ0NSw2ICszNDk2LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUFyaXRoTW9kKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBudW1lcmF0b3JQb3NpdGl2
ZS5saW5rKCZtX2ppdCk7CiAgICAgICAgIH0KIAorICAgICAgICBkb25lLmxpbmsoJm1faml0KTsK
KyAgICAgICAgCiAgICAgICAgIGludDMyUmVzdWx0KHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiwg
bm9kZSk7CiAjZWxpZiBDUFUoQVJNNjQpCiAgICAgICAgIEdQUlRlbXBvcmFyeSB0ZW1wKHRoaXMp
OwpAQCAtMzQ1NSw2ICszNTA4LDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0
aE1vZChOb2RlKiBub2RlKQogICAgICAgICBHUFJSZWcgcXVvdGllbnRUaGVuUmVtYWluZGVyR1BS
ID0gcXVvdGllbnRUaGVuUmVtYWluZGVyLmdwcigpOwogICAgICAgICBHUFJSZWcgbXVsdGlwbHlB
bnN3ZXJHUFIgPSBtdWx0aXBseUFuc3dlci5ncHIoKTsKIAorICAgICAgICBKSVRDb21waWxlcjo6
SnVtcExpc3QgZG9uZTsKKyAgICAKKyAgICAgICAgaWYgKHNob3VsZENoZWNrT3ZlcmZsb3cobm9k
ZS0+YXJpdGhNb2RlKCkpKQorICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdmVyZmxvdywg
SlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDMyKEpJVENvbXBpbGVyOjpaZXJvLCBk
aXZpc29yR1BSKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1
bXAgZGVub21pbmF0b3JOb3RaZXJvID0gbV9qaXQuYnJhbmNoVGVzdDMyKEpJVENvbXBpbGVyOjpO
b25aZXJvLCBkaXZpc29yR1BSKTsKKyAgICAgICAgICAgIG1faml0Lm1vdmUoZGl2aXNvckdQUiwg
cXVvdGllbnRUaGVuUmVtYWluZGVyR1BSKTsKKyAgICAgICAgICAgIGRvbmUuYXBwZW5kKG1faml0
Lmp1bXAoKSk7CisgICAgICAgICAgICBkZW5vbWluYXRvck5vdFplcm8ubGluaygmbV9qaXQpOwor
ICAgICAgICB9CisKICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuc2RpdjwzMj4ocXVvdGllbnRU
aGVuUmVtYWluZGVyR1BSLCBkaXZpZGVuZEdQUiwgZGl2aXNvckdQUik7CiAgICAgICAgIC8vIEZJ
WE1FOiBJdCBzZWVtcyBsaWtlIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSB3ZSBkb24ndCBuZWVkIHRo
aXM/IFdoYXQgaWYgd2UgaGF2ZQogICAgICAgICAvLyBhcml0aE1vZGUoKSA9PSBBcml0aDo6VW5j
aGVja2VkPwpAQCAtMzQ3MSw2ICszNTM1LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUFyaXRoTW9kKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBudW1lcmF0b3JQb3NpdGl2ZS5saW5r
KCZtX2ppdCk7CiAgICAgICAgIH0KIAorICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKKwogICAg
ICAgICBpbnQzMlJlc3VsdChxdW90aWVudFRoZW5SZW1haW5kZXJHUFIsIG5vZGUpOwogI2Vsc2Ug
Ly8gbm90IGFyY2hpdGVjdHVyZSB0aGF0IGNhbiBkbyBpbnRlZ2VyIGRpdmlzaW9uCiAgICAgICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggMzUzNGM3YjE1MmVlYzdmNWJjZjVhOWYxM2Vi
OGMxODYxYWYxMjUwOS4uOGY1NmE1MTc4NmQyYzNiZmYxZjNiOTVlYmFhMWE1YWZkMjg2MTAxNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAt
MTE5LDYgKzExOSw5IEBAIHB1YmxpYzoKICAgICB+U3BlY3VsYXRpdmVKSVQoKTsKIAogICAgIGJv
b2wgY29tcGlsZSgpOworICAgIAorICAgIHZvaWQgcHJlcGFyZUpJVENvZGVGb3JUaWVyVXAoKTsK
KyAgICAKICAgICB2b2lkIGNyZWF0ZU9TUkVudHJpZXMoKTsKICAgICB2b2lkIGxpbmtPU1JFbnRy
aWVzKExpbmtCdWZmZXImKTsKIApAQCAtNzQyLDQ0ICs3NDUsNDUgQEAgcHVibGljOgogICAgIAog
ICAgIHB0cmRpZmZfdCBjYWxsZWVGcmFtZU9mZnNldChpbnQgbnVtQXJncykKICAgICB7Ci0gICAg
ICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChtX2ppdC5ncmFwaCgpLm1fbmV4dE1h
Y2hpbmVMb2NhbCArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgKyBudW1BcmdzKS5vZmZz
ZXQoKSAqIHNpemVvZihSZWdpc3Rlcik7CisgICAgICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0ZXJG
b3JMb2NhbChtX2ppdC5ncmFwaCgpLm1fbmV4dE1hY2hpbmVMb2NhbCAtIDEgKyBKU1N0YWNrOjpD
YWxsRnJhbWVIZWFkZXJTaXplICsgbnVtQXJncykub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIp
OwogICAgIH0KICAgICAKICAgICAvLyBBY2Nlc3MgdG8gb3VyIGZpeGVkIGNhbGxlZSBDYWxsRnJh
bWUuCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlRnJhbWVTbG90KGludCBudW1B
cmdzLCBpbnQgc2xvdCkKKyAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVNs
b3QoaW50IHNsb3QpCiAgICAgewotICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGNhbGxlZUZyYW1lT2Zmc2V0KG51bUFyZ3Mp
ICsgc2l6ZW9mKFJlZ2lzdGVyKSAqIHNsb3QpOworICAgICAgICBBU1NFUlQoc2xvdCA+PSBKU1N0
YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSk7CisgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNpemVvZihS
ZWdpc3RlcikgKiAoc2xvdCAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKSk7CiAgICAg
fQogCiAgICAgLy8gQWNjZXNzIHRvIG91ciBmaXhlZCBjYWxsZWUgQ2FsbEZyYW1lLgotICAgIE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUFyZ3VtZW50U2xvdChpbnQgbnVtQXJncywgaW50
IGFyZ3VtZW50KQorICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUFyZ3VtZW50U2xv
dChpbnQgYXJndW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVTbG90KG51
bUFyZ3MsIHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KGFyZ3VtZW50KS5vZmZzZXQoKSk7Cisg
ICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3QodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQo
YXJndW1lbnQpLm9mZnNldCgpKTsKICAgICB9CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyBjYWxsZWVGcmFtZVRhZ1Nsb3QoaW50IG51bUFyZ3MsIGludCBzbG90KQorICAgIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUZyYW1lVGFnU2xvdChpbnQgc2xvdCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3QobnVtQXJncywgc2xvdCkud2l0aE9mZnNldChPQkpF
Q1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpOworICAgICAg
ICByZXR1cm4gY2FsbGVlRnJhbWVTbG90KHNsb3QpLndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9G
KEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKTsKICAgICB9CiAKLSAgICBNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVBheWxvYWRTbG90KGludCBudW1BcmdzLCBp
bnQgc2xvdCkKKyAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVBheWxvYWRT
bG90KGludCBzbG90KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxlZUZyYW1lU2xvdChudW1B
cmdzLCBzbG90KS53aXRoT2Zmc2V0KE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlw
dG9yLCBhc0JpdHMucGF5bG9hZCkpOworICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVTbG90KHNs
b3QpLndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFz
Qml0cy5wYXlsb2FkKSk7CiAgICAgfQogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2Fs
bGVlQXJndW1lbnRUYWdTbG90KGludCBudW1BcmdzLCBpbnQgYXJndW1lbnQpCisgICAgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlQXJndW1lbnRUYWdTbG90KGludCBhcmd1bWVudCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBjYWxsZWVBcmd1bWVudFNsb3QobnVtQXJncywgYXJndW1lbnQp
LndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0
cy50YWcpKTsKKyAgICAgICAgcmV0dXJuIGNhbGxlZUFyZ3VtZW50U2xvdChhcmd1bWVudCkud2l0
aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRh
ZykpOwogICAgIH0KIAotICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUFyZ3VtZW50
UGF5bG9hZFNsb3QoaW50IG51bUFyZ3MsIGludCBhcmd1bWVudCkKKyAgICBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyBjYWxsZWVBcmd1bWVudFBheWxvYWRTbG90KGludCBhcmd1bWVudCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBjYWxsZWVBcmd1bWVudFNsb3QobnVtQXJncywgYXJndW1lbnQpLndp
dGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5w
YXlsb2FkKSk7CisgICAgICAgIHJldHVybiBjYWxsZWVBcmd1bWVudFNsb3QoYXJndW1lbnQpLndp
dGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5w
YXlsb2FkKSk7CiAgICAgfQogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlRnJh
bWVDYWxsZXJGcmFtZShpbnQgbnVtQXJncykKKyAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBj
YWxsZWVGcmFtZUNhbGxlckZyYW1lKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsZWVGcmFt
ZVNsb3QobnVtQXJncywgMCkud2l0aE9mZnNldChDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0
KCkpOworICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVTbG90KDApLndpdGhPZmZzZXQoQ2FsbEZy
YW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKTsKICAgICB9CiAKICAgICB2b2lkIGVtaXRDYWxsKE5v
ZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwCmluZGV4IDk2NWFhZjgxYTkzNWZhYmIyODQxOGIxY2UyMWI2MmM0Y2E2MmVj
MWMuLjFlOGZhY2E5NDRhNmEyN2E2MTQ4YmQ4NWIzOWIxZGQ3YWQ4ZjhkNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApA
QCAtMTcyLDcgKzE3Miw3IEBAIGJvb2wgU3BlY3VsYXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKEVkZ2Ug
ZWRnZSwgR1BSUmVnJiB0YWdHUFIsIEdQUlJlZyYgcGF5bG9hZEdQUiwKIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZVRh
Z0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgcmVzdWx0VGFnR1BSLCBH
UFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgSklUQ29t
cGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9kZSBzcGlsbE1vZGUp
CiB7CiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1faml0LmNvZGVCbG9j
aygpLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzKCksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyLAorICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVy
cygpLAogICAgICAgICBKU1ZhbHVlUmVncyhiYXNlVGFnR1BST3JOb25lLCBiYXNlUGF5bG9hZEdQ
UiksCiAgICAgICAgIEpTVmFsdWVSZWdzKHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUiks
IHNwaWxsTW9kZSAhPSBOZWVkVG9TcGlsbCk7CiAgICAgCkBAIC0yMDQsNyArMjA0LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQ
UlJlZyBiYXNlVGFnR1BST3JOb24KIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZFB1dEJ5SWQo
Q29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZVBheWxvYWRHUFIsIEdQUlJlZyB2YWx1
ZVRhZ0dQUiwgR1BSUmVnIHZhbHVlUGF5bG9hZEdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2ln
bmVkIGlkZW50aWZpZXJOdW1iZXIsIFB1dEtpbmQgcHV0S2luZCwgSklUQ29tcGlsZXI6Okp1bXAg
c2xvd1BhdGhUYXJnZXQpCiB7CiAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAg
IG1faml0LmNvZGVCbG9jaygpLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzKCksIEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyLAorICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgY29kZU9yaWdp
biwgdXNlZFJlZ2lzdGVycygpLAogICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkoYmFz
ZVBheWxvYWRHUFIpLCBKU1ZhbHVlUmVncyh2YWx1ZVRhZ0dQUiwgdmFsdWVQYXlsb2FkR1BSKSwK
ICAgICAgICAgc2NyYXRjaEdQUiwgZmFsc2UsIG1faml0LmVjbWFNb2RlRm9yKGNvZGVPcmlnaW4p
LCBwdXRLaW5kKTsKICAgICAKQEAgLTYzMSwxMCArNjMxLDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6ZW1pdENhbGwoTm9kZSogbm9kZSkKICAgICAKICAgICBpbnQgbnVtQXJncyA9IG51bVBhc3Nl
ZEFyZ3MgKyBkdW1teVRoaXNBcmd1bWVudDsKIAotICAgIG1faml0LnN0b3JlMzIoTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW0zMihudW1BcmdzKSwgY2FsbGVlRnJhbWVQYXlsb2FkU2xvdChudW1B
cmdzLCBKU1N0YWNrOjpBcmd1bWVudENvdW50KSk7Ci0gICAgbV9qaXQuc3RvcmVQdHIoR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGNhbGxlZUZyYW1lQ2FsbGVyRnJhbWUobnVtQXJncykpOwot
ICAgIG1faml0LnN0b3JlMzIoY2FsbGVlUGF5bG9hZEdQUiwgY2FsbGVlRnJhbWVQYXlsb2FkU2xv
dChudW1BcmdzLCBKU1N0YWNrOjpDYWxsZWUpKTsKLSAgICBtX2ppdC5zdG9yZTMyKGNhbGxlZVRh
Z0dQUiwgY2FsbGVlRnJhbWVUYWdTbG90KG51bUFyZ3MsIEpTU3RhY2s6OkNhbGxlZSkpOworICAg
IG1faml0LnN0b3JlMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihudW1BcmdzKSwgY2Fs
bGVlRnJhbWVQYXlsb2FkU2xvdChKU1N0YWNrOjpBcmd1bWVudENvdW50KSk7CisgICAgbV9qaXQu
c3RvcmUzMihjYWxsZWVQYXlsb2FkR1BSLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KEpTU3RhY2s6
OkNhbGxlZSkpOworICAgIG1faml0LnN0b3JlMzIoY2FsbGVlVGFnR1BSLCBjYWxsZWVGcmFtZVRh
Z1Nsb3QoSlNTdGFjazo6Q2FsbGVlKSk7CiAKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVBh
c3NlZEFyZ3M7IGkrKykgewogICAgICAgICBFZGdlIGFyZ0VkZ2UgPSBtX2ppdC5ncmFwaCgpLm1f
dmFyQXJnQ2hpbGRyZW5bbm9kZS0+Zmlyc3RDaGlsZCgpICsgMSArIGldOwpAQCAtNjQzLDggKzY0
Miw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUpCiAgICAgICAg
IEdQUlJlZyBhcmdQYXlsb2FkR1BSID0gYXJnLnBheWxvYWRHUFIoKTsKICAgICAgICAgdXNlKGFy
Z0VkZ2UpOwogCi0gICAgICAgIG1faml0LnN0b3JlMzIoYXJnVGFnR1BSLCBjYWxsZWVBcmd1bWVu
dFRhZ1Nsb3QobnVtQXJncywgaSArIGR1bW15VGhpc0FyZ3VtZW50KSk7Ci0gICAgICAgIG1faml0
LnN0b3JlMzIoYXJnUGF5bG9hZEdQUiwgY2FsbGVlQXJndW1lbnRQYXlsb2FkU2xvdChudW1Bcmdz
LCBpICsgZHVtbXlUaGlzQXJndW1lbnQpKTsKKyAgICAgICAgbV9qaXQuc3RvcmUzMihhcmdUYWdH
UFIsIGNhbGxlZUFyZ3VtZW50VGFnU2xvdChpICsgZHVtbXlUaGlzQXJndW1lbnQpKTsKKyAgICAg
ICAgbV9qaXQuc3RvcmUzMihhcmdQYXlsb2FkR1BSLCBjYWxsZWVBcmd1bWVudFBheWxvYWRTbG90
KGkgKyBkdW1teVRoaXNBcmd1bWVudCkpOwogICAgIH0KIAogICAgIGZsdXNoUmVnaXN0ZXJzKCk7
CkBAIC02NTksMTMgKzY1OCwxMSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbChOb2Rl
KiBub2RlKQogCiAgICAgbV9qaXQuZW1pdFN0b3JlQ29kZU9yaWdpbihub2RlLT5jb2RlT3JpZ2lu
KTsKICAgICAKLSAgICBtX2ppdC5hZGRQdHIoVHJ1c3RlZEltbTMyKGNhbGxlZUZyYW1lT2Zmc2V0
KG51bUFyZ3MpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwotICAgIAogICAgIHNsb3dQ
YXRoLmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIGNhbGxl
ZVRhZ0dQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7CiAgICAgc2xvd1BhdGgu
YXBwZW5kKG1faml0LmJyYW5jaFB0cldpdGhQYXRjaChNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWws
IGNhbGxlZVBheWxvYWRHUFIsIHRhcmdldFRvQ2hlY2spKTsKICAgICBtX2ppdC5sb2FkUHRyKE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKGNhbGxlZVBheWxvYWRHUFIsIE9CSkVDVF9PRkZTRVRPRihK
U0Z1bmN0aW9uLCBtX3Njb3BlKSksIHJlc3VsdFBheWxvYWRHUFIpOwotICAgIG1faml0LnN0b3Jl
UHRyKHJlc3VsdFBheWxvYWRHUFIsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3Rlcikp
ICogSlNTdGFjazo6U2NvcGVDaGFpbiArIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNj
cmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpKTsKLSAgICBtX2ppdC5zdG9yZTMyKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNp
emVvZihSZWdpc3RlcikpICogSlNTdGFjazo6U2NvcGVDaGFpbiArIE9CSkVDVF9PRkZTRVRPRihF
bmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSkpOworICAgIG1faml0LnN0b3JlUHRy
KHJlc3VsdFBheWxvYWRHUFIsIGNhbGxlZUZyYW1lUGF5bG9hZFNsb3QoSlNTdGFjazo6U2NvcGVD
aGFpbikpOworICAgIG1faml0LnN0b3JlUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIo
SlNWYWx1ZTo6Q2VsbFRhZyksIGNhbGxlZUZyYW1lVGFnU2xvdChKU1N0YWNrOjpTY29wZUNoYWlu
KSk7CiAKICAgICBKSVRDb21waWxlcjo6Q2FsbCBmYXN0Q2FsbCA9IG1faml0Lm5lYXJDYWxsKCk7
CiAKQEAgLTMwNDcsMTIgKzMwNDQsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5v
ZGUqIG5vZGUpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICAvLyBHcmFiIHRo
ZSByZXR1cm4gYWRkcmVzcy4KLSAgICAgICAgbV9qaXQuZW1pdEdldFJldHVyblBDRnJvbUNhbGxG
cmFtZUhlYWRlclB0cihHUFJJbmZvOjpyZWdUMik7Ci0gICAgICAgIC8vIFJlc3RvcmUgb3VyIGNh
bGxlcidzICJyIi4KLSAgICAgICAgbV9qaXQuZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFt
ZUhlYWRlclB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAgICAgIC8vIFJldHVy
bi4KLSAgICAgICAgbV9qaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5m
bzo6cmVnVDIpOworICAgICAgICBtX2ppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAg
ICBtX2ppdC5yZXQoKTsKICAgICAgICAgCiAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXgg
MGFhNjRhNjA5MzBkYjEwMzRjYjgyZmExMDdhNTM0YWM2YTYzMTRhYy4uZWU0ZjlhZGZlYzNmODhk
NTE2MWRjMTg0MjVhNzgyNzQzMTAwMTBhZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0xOTAsOCArMTkwLDggQEAgR1BSUmVn
IFNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShFZGdlIGVkZ2UpCiB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIs
IEdQUlJlZyByZXN1bHRHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBpbGVy
OjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01vZGUgc3BpbGxNb2RlKQogewog
ICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwg
Y29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwK
LSAgICAgICAgSlNWYWx1ZVJlZ3MoYmFzZUdQUiksIEpTVmFsdWVSZWdzKHJlc3VsdEdQUiksIHNw
aWxsTW9kZSAhPSBOZWVkVG9TcGlsbCk7CisgICAgICAgIG1faml0LmNvZGVCbG9jaygpLCBjb2Rl
T3JpZ2luLCB1c2VkUmVnaXN0ZXJzKCksIEpTVmFsdWVSZWdzKGJhc2VHUFIpLAorICAgICAgICBK
U1ZhbHVlUmVncyhyZXN1bHRHUFIpLCBzcGlsbE1vZGUgIT0gTmVlZFRvU3BpbGwpOwogICAgIGdl
bi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKICAgICAKICAgICBKSVRDb21waWxlcjo6SnVtcExp
c3Qgc2xvd0Nhc2VzOwpAQCAtMjEwLDkgKzIxMCw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNh
Y2hlZEdldEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgR1BSUmVn
CiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdp
biwgR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyB2YWx1ZUdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVu
c2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFB1dEtpbmQgcHV0S2luZCwgSklUQ29tcGlsZXI6Okp1
bXAgc2xvd1BhdGhUYXJnZXQpCiB7CiAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAg
ICAgIG1faml0LmNvZGVCbG9jaygpLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzKCksIEdQUklu
Zm86OmNhbGxGcmFtZVJlZ2lzdGVyLAotICAgICAgICBKU1ZhbHVlUmVncyhiYXNlR1BSKSwgSlNW
YWx1ZVJlZ3ModmFsdWVHUFIpLCBzY3JhdGNoR1BSLCBmYWxzZSwKLSAgICAgICAgbV9qaXQuZWNt
YU1vZGVGb3IoY29kZU9yaWdpbiksIHB1dEtpbmQpOworICAgICAgICBtX2ppdC5jb2RlQmxvY2so
KSwgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLCBKU1ZhbHVlUmVncyhiYXNlR1BSKSwKKyAg
ICAgICAgSlNWYWx1ZVJlZ3ModmFsdWVHUFIpLCBzY3JhdGNoR1BSLCBmYWxzZSwgbV9qaXQuZWNt
YU1vZGVGb3IoY29kZU9yaWdpbiksIHB1dEtpbmQpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRo
KG1faml0KTsKICAgICAKICAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwpAQCAt
NjYzLDkgKzY2Miw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUp
CiAgICAgCiAgICAgaW50IG51bUFyZ3MgPSBudW1QYXNzZWRBcmdzICsgZHVtbXlUaGlzQXJndW1l
bnQ7CiAgICAgCi0gICAgbV9qaXQuc3RvcmUzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
KG51bUFyZ3MpLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KG51bUFyZ3MsIEpTU3RhY2s6OkFyZ3Vt
ZW50Q291bnQpKTsKLSAgICBtX2ppdC5zdG9yZTY0KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
LCBjYWxsZWVGcmFtZUNhbGxlckZyYW1lKG51bUFyZ3MpKTsKLSAgICBtX2ppdC5zdG9yZTY0KGNh
bGxlZUdQUiwgY2FsbGVlRnJhbWVTbG90KG51bUFyZ3MsIEpTU3RhY2s6OkNhbGxlZSkpOworICAg
IG1faml0LnN0b3JlMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihudW1BcmdzKSwgY2Fs
bGVlRnJhbWVQYXlsb2FkU2xvdChKU1N0YWNrOjpBcmd1bWVudENvdW50KSk7CisgICAgbV9qaXQu
c3RvcmU2NChjYWxsZWVHUFIsIGNhbGxlZUZyYW1lU2xvdChKU1N0YWNrOjpDYWxsZWUpKTsKICAg
ICAKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVBhc3NlZEFyZ3M7IGkrKykgewogICAgICAg
ICBFZGdlIGFyZ0VkZ2UgPSBtX2ppdC5ncmFwaCgpLm1fdmFyQXJnQ2hpbGRyZW5bbm9kZS0+Zmly
c3RDaGlsZCgpICsgMSArIGldOwpAQCAtNjczLDcgKzY3MSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUpCiAgICAgICAgIEdQUlJlZyBhcmdHUFIgPSBhcmcuZ3By
KCk7CiAgICAgICAgIHVzZShhcmdFZGdlKTsKICAgICAgICAgCi0gICAgICAgIG1faml0LnN0b3Jl
NjQoYXJnR1BSLCBjYWxsZWVBcmd1bWVudFNsb3QobnVtQXJncywgaSArIGR1bW15VGhpc0FyZ3Vt
ZW50KSk7CisgICAgICAgIG1faml0LnN0b3JlNjQoYXJnR1BSLCBjYWxsZWVBcmd1bWVudFNsb3Qo
aSArIGR1bW15VGhpc0FyZ3VtZW50KSk7CiAgICAgfQogCiAgICAgZmx1c2hSZWdpc3RlcnMoKTsK
QEAgLTY4MiwyMyArNjgwLDI4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUq
IG5vZGUpCiAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKIAogICAgIEpJVENv
bXBpbGVyOjpEYXRhTGFiZWxQdHIgdGFyZ2V0VG9DaGVjazsKLSAgICBKSVRDb21waWxlcjo6SnVt
cExpc3Qgc2xvd1BhdGg7CisgICAgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGg7CiAKICAgICBt
X2ppdC5lbWl0U3RvcmVDb2RlT3JpZ2luKG5vZGUtPmNvZGVPcmlnaW4pOwogICAgIAotICAgIG1f
aml0LmFkZFB0cihUcnVzdGVkSW1tMzIoY2FsbGVlRnJhbWVPZmZzZXQobnVtQXJncykpLCBHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAgCi0gICAgc2xvd1BhdGguYXBwZW5kKG1faml0
LmJyYW5jaFB0cldpdGhQYXRjaChNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIGNhbGxlZUdQUiwg
dGFyZ2V0VG9DaGVjaywgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoMCkpKTsKKyAgICBz
bG93UGF0aCA9IG1faml0LmJyYW5jaFB0cldpdGhQYXRjaChNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1
YWwsIGNhbGxlZUdQUiwgdGFyZ2V0VG9DaGVjaywgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1Q
dHIoMCkpOwogCiAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhjYWxs
ZWVHUFIsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlKSksIHJlc3VsdEdQUik7
Ci0gICAgbV9qaXQuc3RvcmU2NChyZXN1bHRHUFIsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihS
ZWdpc3RlcikpICogSlNTdGFjazo6U2NvcGVDaGFpbikpOworICAgIG1faml0LnN0b3JlNjQocmVz
dWx0R1BSLCBjYWxsZWVGcmFtZVNsb3QoSlNTdGFjazo6U2NvcGVDaGFpbikpOwogCiAgICAgSklU
Q29tcGlsZXI6OkNhbGwgZmFzdENhbGwgPSBtX2ppdC5uZWFyQ2FsbCgpOwotICAgIAorCiAgICAg
SklUQ29tcGlsZXI6Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAoKTsKICAgICAKICAgICBzbG93UGF0
aC5saW5rKCZtX2ppdCk7CiAgICAgCisgICAgaWYgKG1faml0LmdyYXBoKCkubV9wbGFuLndpbGxU
cnlUb1RpZXJVcCkgeworICAgICAgICBtX2ppdC5hZGQzMigKKyAgICAgICAgICAgIFRydXN0ZWRJ
bW0zMigxKSwKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBYnNvbHV0ZUFkZHJlc3MoCisg
ICAgICAgICAgICAgICAgbV9qaXQuaml0Q29kZSgpLT5zbG93UGF0aENhbGxzLmJlZ2luKCkgKyBt
X2ppdC5jdXJyZW50SlNDYWxsSW5kZXgoKSkpOworICAgIH0KKyAgICAKICAgICBtX2ppdC5tb3Zl
KGNhbGxlZUdQUiwgR1BSSW5mbzo6cmVnVDApOyAvLyBDYWxsZWUgbmVlZHMgdG8gYmUgaW4gcmVn
VDAKICAgICBKSVRDb21waWxlcjo6Q2FsbCBzbG93Q2FsbCA9IG1faml0Lm5lYXJDYWxsKCk7CiAg
ICAgCkBAIC0zMjAwLDcgKzMyMDMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5v
ZGUqIG5vZGUpCiAgICAgICAgICAgICAKICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9y
KAogICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICAgICAgc2xv
d1BhdGgsIHRoaXMsIG9wZXJhdGlvbkFycmF5UHVzaCwgTm9SZXN1bHQsIHN0b3JhZ2VMZW5ndGhH
UFIsCisgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLCB0aGlzLCBvcGVyYXRpb25BcnJheVB1
c2gsIHN0b3JhZ2VMZW5ndGhHUFIsCiAgICAgICAgICAgICAgICAgICAgIHZhbHVlR1BSLCBiYXNl
R1BSKSk7CiAgICAgICAgIAogICAgICAgICAgICAganNWYWx1ZVJlc3VsdChzdG9yYWdlTGVuZ3Ro
R1BSLCBub2RlKTsKQEAgLTMyMjQsNyArMzIyNyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIAogICAgICAgICAgICAgYWRkU2xvd1BhdGhH
ZW5lcmF0b3IoCiAgICAgICAgICAgICAgICAgc2xvd1BhdGhDYWxsKAotICAgICAgICAgICAgICAg
ICAgICBzbG93UGF0aCwgdGhpcywgb3BlcmF0aW9uQXJyYXlQdXNoRG91YmxlLCBOb1Jlc3VsdCwg
c3RvcmFnZUxlbmd0aEdQUiwKKyAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGgsIHRoaXMsIG9w
ZXJhdGlvbkFycmF5UHVzaERvdWJsZSwgc3RvcmFnZUxlbmd0aEdQUiwKICAgICAgICAgICAgICAg
ICAgICAgdmFsdWVGUFIsIGJhc2VHUFIpKTsKICAgICAgICAgCiAgICAgICAgICAgICBqc1ZhbHVl
UmVzdWx0KHN0b3JhZ2VMZW5ndGhHUFIsIG5vZGUpOwpAQCAtMzM4OCwxMiArMzM5MSw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgSlNWYWx1ZU9w
ZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgbV9qaXQubW92ZShvcDEu
Z3ByKCksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKIAotICAgICAgICAvLyBHcmFiIHRoZSBy
ZXR1cm4gYWRkcmVzcy4KLSAgICAgICAgbV9qaXQuZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFt
ZUhlYWRlclB0cihHUFJJbmZvOjpyZWdUMSk7Ci0gICAgICAgIC8vIFJlc3RvcmUgb3VyIGNhbGxl
cidzICJyIi4KLSAgICAgICAgbV9qaXQuZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhl
YWRlclB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAgICAgIC8vIFJldHVybi4K
LSAgICAgICAgbV9qaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6
cmVnVDEpOworICAgICAgICBtX2ppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICBt
X2ppdC5yZXQoKTsKICAgICAgICAgCiAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGllclVwQ2hlY2tJbmplY3Rpb25Q
aGFzZS5jcHAKaW5kZXggZDUxYTFmMGQ4MjczNDRiNDExYzE0ZDUxZGU5YmRmNzVhY2YxYTk2YS4u
YmVmMGRhOTE0Mzc4ZjQ5NTdiMjk2YmU1ZmUwMzkzMWMzZDI0MzcxMCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhh
c2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC00OSwyNyArNDksNTkgQEAgcHVibGljOgogICAgICAgICAKICAgICAgICAgaWYgKCFP
cHRpb25zOjp1c2VFeHBlcmltZW50YWxGVEwoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LQorICAgICAgICAKKyAgICAgICAgaWYgKG1fZ3JhcGgubV9wcm9maWxlZEJsb2NrLT5tX2RpZEZh
aWxGVExDb21waWxhdGlvbikKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAKICNp
ZiBFTkFCTEUoRlRMX0pJVCkKICAgICAgICAgRlRMOjpDYXBhYmlsaXR5TGV2ZWwgbGV2ZWwgPSBG
VEw6OmNhbkNvbXBpbGUobV9ncmFwaCk7CiAgICAgICAgIGlmIChsZXZlbCA9PSBGVEw6OkNhbm5v
dENvbXBpbGUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAorICAgICAgICBp
ZiAoIU9wdGlvbnM6OmVuYWJsZU9TUkVudHJ5VG9GVEwoKSkKKyAgICAgICAgICAgIGxldmVsID0g
RlRMOjpDYW5Db21waWxlOworICAgICAgICAKICAgICAgICAgSW5zZXJ0aW9uU2V0IGluc2VydGlv
blNldChtX2dyYXBoKTsKICAgICAgICAgZm9yIChCbG9ja0luZGV4IGJsb2NrSW5kZXggPSBtX2dy
YXBoLm51bUJsb2NrcygpOyBibG9ja0luZGV4LS07KSB7CiAgICAgICAgICAgICBCYXNpY0Jsb2Nr
KiBibG9jayA9IG1fZ3JhcGguYmxvY2soYmxvY2tJbmRleCk7CiAgICAgICAgICAgICBpZiAoIWJs
b2NrKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgCi0gICAgICAgICAg
ICBpZiAoYmxvY2stPmF0KDApLT5vcCgpID09IExvb3BIaW50KSB7Ci0gICAgICAgICAgICAgICAg
Q29kZU9yaWdpbiBjb2RlT3JpZ2luID0gYmxvY2stPmF0KDApLT5jb2RlT3JpZ2luOwotICAgICAg
ICAgICAgICAgIE5vZGVUeXBlIG5vZGVUeXBlOwotICAgICAgICAgICAgICAgIGlmIChsZXZlbCA9
PSBGVEw6OkNhbkNvbXBpbGVBbmRPU1JFbnRlciAmJiAhY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJh
bWUpIHsKLSAgICAgICAgICAgICAgICAgICAgbm9kZVR5cGUgPSBDaGVja1RpZXJVcEFuZE9TUkVu
dGVyOwotICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChibG9jay0+Ynl0ZWNvZGVC
ZWdpbiA9PSBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpOwotICAgICAgICAgICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAgICAgICAgICBub2RlVHlwZSA9IENoZWNrVGllclVwSW5Mb29wOwotICAg
ICAgICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnROb2RlKDEsIFNwZWNOb25lLCBub2RlVHlw
ZSwgY29kZU9yaWdpbik7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIG5vZGVJbmRleCA9IDA7
IG5vZGVJbmRleCA8IGJsb2NrLT5zaXplKCk7ICsrbm9kZUluZGV4KSB7CisgICAgICAgICAgICAg
ICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChub2RlSW5kZXgpOworICAgICAgICAgICAgICAgIGlm
IChub2RlLT5vcCgpICE9IExvb3BIaW50KQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBXZSBvbmx5IHB1dCBPU1IgY2hl
Y2tzIGZvciB0aGUgZmlyc3QgTG9vcEhpbnQgaW4gdGhlIGJsb2NrLiBOb3RlIHRoYXQKKyAgICAg
ICAgICAgICAgICAvLyBtb3JlIHRoYW4gb25lIExvb3BIaW50IGNvdWxkIGhhcHBlbiBpbiBjYXNl
cyB3aGVyZSB3ZSBkaWQgYSBsb3Qgb2YgQ0ZHCisgICAgICAgICAgICAgICAgLy8gc2ltcGxpZmlj
YXRpb24gaW4gdGhlIGJ5dGVjb2RlIHBhcnNlciwgYnV0IGl0IHNob3VsZCBiZSB2ZXJ5IHJhcmUu
CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2lu
ID0gbm9kZS0+Y29kZU9yaWdpbjsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBp
ZiAobGV2ZWwgIT0gRlRMOjpDYW5Db21waWxlQW5kT1NSRW50ZXIgfHwgY29kZU9yaWdpbi5pbmxp
bmVDYWxsRnJhbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydE5v
ZGUoCisgICAgICAgICAgICAgICAgICAgICAgICBub2RlSW5kZXggKyAxLCBTcGVjTm9uZSwgQ2hl
Y2tUaWVyVXBJbkxvb3AsIGNvZGVPcmlnaW4pOworICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYm9v
bCBpc0F0VG9wID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHN1Yk5vZGVJ
bmRleCA9IG5vZGVJbmRleDsgc3ViTm9kZUluZGV4LS07KSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICghYmxvY2stPmF0KHN1Yk5vZGVJbmRleCktPmlzU2VtYW50aWNhbGx5U2tpcHBhYmxlKCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzQXRUb3AgPSBmYWxzZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICghaXNBdFRvcCkgewor
ICAgICAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG5vZGVJbmRleCArIDEsIFNwZWNOb25lLCBDaGVja1RpZXJVcEluTG9vcCwg
Y29kZU9yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChibG9j
ay0+Ynl0ZWNvZGVCZWdpbiA9PSBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpOworICAgICAgICAg
ICAgICAgIGluc2VydGlvblNldC5pbnNlcnROb2RlKAorICAgICAgICAgICAgICAgICAgICBub2Rl
SW5kZXggKyAxLCBTcGVjTm9uZSwgQ2hlY2tUaWVyVXBBbmRPU1JFbnRlciwgY29kZU9yaWdpbik7
CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIGlmIChibG9jay0+bGFzdCgpLT5vcCgpID09IFJldHVybikgewpAQCAtODAsNiAr
MTEyLDcgQEAgcHVibGljOgogICAgICAgICAgICAgaW5zZXJ0aW9uU2V0LmV4ZWN1dGUoYmxvY2sp
OwogICAgICAgICB9CiAgICAgICAgIAorICAgICAgICBtX2dyYXBoLm1fcGxhbi53aWxsVHJ5VG9U
aWVyVXAgPSB0cnVlOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlIC8vIEVOQUJMRShGVExf
SklUKQogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWxpZGF0ZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1ZhbGlkYXRlLmNwcAppbmRleCAwOWJlYTQwNmZmZmI3ZGRhZTRmMGVl
NGIxMDc2NzcyZGNjYTliYWY1Li4wNDA4NjVmYTIzZDM0ODdkOTE5MmUwYzRmMGNlYTIxNWIzMmEx
ZjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbGlkYXRlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbGlkYXRlLmNwcApAQCAtMTgy
LDYgKzE4MiwxOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgICAgICBWX0VRVUFMKChub2RlKSwgbm9kZS0+cmVmQ291bnQoKSwgMSk7CiAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwIDsgaSA8IGJs
b2NrLT5zaXplKCkgLSAxOyArK2kpIHsKKyAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0gYmxv
Y2stPmF0KGkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKChub2RlKSwgIW5vZGUtPmlzVGVy
bWluYWwoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgYmxvY2stPnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAg
Tm9kZSogbm9kZSA9IGJsb2NrLT5hdChpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBpZiAobm9kZS0+aGFzU3RydWN0dXJlKCkpCisgICAgICAgICAgICAgICAgICAgIFZBTElE
QVRFKChub2RlKSwgISFub2RlLT5zdHJ1Y3R1cmUoKSk7CisgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICAgICAgCiAgICAgICAgIHN3aXRjaCAobV9ncmFwaC5tX2Zvcm0pIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKaW5kZXggM2RmMTlhYzExMTAzZmExNGRm
NTdkOGMwOWRlODZhZDlmYTQwNDZjYi4uYTM2ZWIzODM2Yzk0OGE0MmYxNjNhODg3NjgyMjhmZDIy
NGZlMjU2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlz
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKQEAg
LTI2MSwyMyArMjYxLDUyIEBAIHZvaWQgV29ya2xpc3Q6OnRocmVhZEZ1bmN0aW9uKHZvaWQqIGFy
Z3VtZW50KQogICAgIHN0YXRpY19jYXN0PFdvcmtsaXN0Kj4oYXJndW1lbnQpLT5ydW5UaHJlYWQo
KTsKIH0KIAotc3RhdGljIFdvcmtsaXN0KiB0aGVHbG9iYWxXb3JrbGlzdDsKK3N0YXRpYyBXb3Jr
bGlzdCogdGhlR2xvYmFsREZHV29ya2xpc3Q7CiAKLVdvcmtsaXN0KiBnbG9iYWxXb3JrbGlzdCgp
CitXb3JrbGlzdCogZW5zdXJlR2xvYmFsREZHV29ya2xpc3QoKQogewogICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZzsKICAgICBzdGQ6OmNh
bGxfb25jZShpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZywgW10gewotICAgICAgICB1
bnNpZ25lZCBudW1iZXJPZlRocmVhZHM7CisgICAgICAgIHRoZUdsb2JhbERGR1dvcmtsaXN0ID0g
V29ya2xpc3Q6OmNyZWF0ZShPcHRpb25zOjpudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcygpKS5s
ZWFrUmVmKCk7CisgICAgfSk7CisgICAgcmV0dXJuIHRoZUdsb2JhbERGR1dvcmtsaXN0OworfQog
Ci0gICAgICAgIGlmIChPcHRpb25zOjp1c2VFeHBlcmltZW50YWxGVEwoKSkKLSAgICAgICAgICAg
IG51bWJlck9mVGhyZWFkcyA9IDE7IC8vIFdlIGRvbid0IHlldCB1c2UgTExWTSBpbiBhIHRocmVh
ZC1zYWZlIHdheS4KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbnVtYmVyT2ZUaHJlYWRzID0g
T3B0aW9uczo6bnVtYmVyT2ZDb21waWxlclRocmVhZHMoKTsKK1dvcmtsaXN0KiBleGlzdGluZ0ds
b2JhbERGR1dvcmtsaXN0T3JOdWxsKCkKK3sKKyAgICByZXR1cm4gdGhlR2xvYmFsREZHV29ya2xp
c3Q7Cit9CiAKLSAgICAgICAgdGhlR2xvYmFsV29ya2xpc3QgPSBXb3JrbGlzdDo6Y3JlYXRlKG51
bWJlck9mVGhyZWFkcykubGVha1JlZigpOworc3RhdGljIFdvcmtsaXN0KiB0aGVHbG9iYWxGVExX
b3JrbGlzdDsKKworV29ya2xpc3QqIGVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0KCkKK3sKKyAgICBz
dGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWc7Cisg
ICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWcsIFtdIHsK
KyAgICAgICAgdGhlR2xvYmFsRlRMV29ya2xpc3QgPSBXb3JrbGlzdDo6Y3JlYXRlKE9wdGlvbnM6
Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKICAgICB9KTsKKyAgICBy
ZXR1cm4gdGhlR2xvYmFsRlRMV29ya2xpc3Q7Cit9CiAKLSAgICByZXR1cm4gdGhlR2xvYmFsV29y
a2xpc3Q7CitXb3JrbGlzdCogZXhpc3RpbmdHbG9iYWxGVExXb3JrbGlzdE9yTnVsbCgpCit7Cisg
ICAgcmV0dXJuIHRoZUdsb2JhbEZUTFdvcmtsaXN0OworfQorCitXb3JrbGlzdCogZW5zdXJlR2xv
YmFsV29ya2xpc3RGb3IoQ29tcGlsYXRpb25Nb2RlIG1vZGUpCit7CisgICAgc3dpdGNoIChtb2Rl
KSB7CisgICAgY2FzZSBJbnZhbGlkQ29tcGlsYXRpb25Nb2RlOgorICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNlIERGR01vZGU6
CisgICAgICAgIHJldHVybiBlbnN1cmVHbG9iYWxERkdXb3JrbGlzdCgpOworICAgIGNhc2UgRlRM
TW9kZToKKyAgICBjYXNlIEZUTEZvck9TUkVudHJ5TW9kZToKKyAgICAgICAgcmV0dXJuIGVuc3Vy
ZUdsb2JhbEZUTFdvcmtsaXN0KCk7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAppbmRleCBkMzQxOWYwYTkxYWY5NzFh
MWUyMjFkOWNhOWI0NzljOGQzY2QxNzY4Li4yNWEzMTY4ZTA5Y2UyZmQ4ODlkMWY2MDlkZDY2ODI5
NDYyMDljYmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmts
aXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCkBAIC05
NSwxMCArOTUsMTUgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX251bWJlck9mQWN0aXZlVGhy
ZWFkczsKIH07CiAKLS8vIEZvciBub3cgd2UgdXNlIGEgc2luZ2xlIGdsb2JhbCB3b3JrbGlzdC4g
SXQncyBub3QgY2xlYXIgdGhhdCB0aGlzCi0vLyBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8sIGJ1
dCBpdCBpcyB3aGF0IHdlIGRvLCBmb3Igbm93LiBUaGlzIGZ1bmN0aW9uCi0vLyB3aWxsIGxhemls
eSBjcmVhdGUgb25lIHdoZW4gaXQncyBuZWVkZWQuCi1Xb3JrbGlzdCogZ2xvYmFsV29ya2xpc3Qo
KTsKKy8vIEZvciBERkdNb2RlIGNvbXBpbGF0aW9ucy4KK1dvcmtsaXN0KiBlbnN1cmVHbG9iYWxE
RkdXb3JrbGlzdCgpOworV29ya2xpc3QqIGV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RPck51bGwo
KTsKKworLy8gRm9yIEZUTE1vZGUgYW5kIEZUTEZvck9TUkVudHJ5TW9kZSBjb21waWxhdGlvbnMu
CitXb3JrbGlzdCogZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QoKTsKK1dvcmtsaXN0KiBleGlzdGlu
Z0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxsKCk7CisKK1dvcmtsaXN0KiBlbnN1cmVHbG9iYWxXb3Jr
bGlzdEZvcihDb21waWxhdGlvbk1vZGUpOwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0
RE9wY29kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0FSTTY0L0E2
NERPcGNvZGUuY3BwCmluZGV4IDBlYTgxN2E0NjFhZDUyYWRhMGYyNzJhZjc0MzVjMjVhMWE5MTU4
YzMuLjQxNWRiZGI4ZTAyZGVkNGUzMThjODI3MTVkZjY1NDJmNWIxMzQyYWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9BUk02NC9BNjRET3Bjb2Rl
LmNwcApAQCAtNjIsNiArNjIsOCBAQCBzdHJ1Y3QgT3Bjb2RlR3JvdXBJbml0aWFsaXplciB7CiB7
IGdyb3VwSW5kZXgsIGdyb3VwQ2xhc3M6Om1hc2ssIGdyb3VwQ2xhc3M6OnBhdHRlcm4sIGdyb3Vw
Q2xhc3M6OmZvcm1hdCB9CiAKIHN0YXRpYyBPcGNvZGVHcm91cEluaXRpYWxpemVyIG9wY29kZUdy
b3VwTGlzdFtdID0geworICAgIE9QQ09ERV9HUk9VUF9FTlRSWSgweDA4LCBBNjRET3Bjb2RlTG9h
ZFN0b3JlUmVnaXN0ZXJQYWlyKSwKKyAgICBPUENPREVfR1JPVVBfRU5UUlkoMHgwOSwgQTY0RE9w
Y29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpciksCiAgICAgT1BDT0RFX0dST1VQX0VOVFJZKDB4MGEs
IEE2NERPcGNvZGVMb2dpY2FsU2hpZnRlZFJlZ2lzdGVyKSwKICAgICBPUENPREVfR1JPVVBfRU5U
UlkoMHgwYiwgQTY0RE9wY29kZUFkZFN1YnRyYWN0RXh0ZW5kZWRSZWdpc3RlciksCiAgICAgT1BD
T0RFX0dST1VQX0VOVFJZKDB4MGIsIEE2NERPcGNvZGVBZGRTdWJ0cmFjdFNoaWZ0ZWRSZWdpc3Rl
ciksCkBAIC0xNzIsNiArMTc0LDExIEBAIGNvbnN0IGNoYXIqIEE2NERPcGNvZGU6OmZvcm1hdCgp
CiAKIHZvaWQgQTY0RE9wY29kZTo6YXBwZW5kUmVnaXN0ZXJOYW1lKHVuc2lnbmVkIHJlZ2lzdGVy
TnVtYmVyLCBib29sIGlzNjRCaXQpCiB7CisgICAgaWYgKHJlZ2lzdGVyTnVtYmVyID09IDI5KSB7
CisgICAgICAgIGJ1ZmZlclByaW50ZihpczY0Qml0ID8gImZwIiA6ICJ3ZnAiKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKwogICAgIGlmIChyZWdpc3Rlck51bWJlciA9PSAzMCkgewogICAgICAg
ICBidWZmZXJQcmludGYoaXM2NEJpdCA/ICJsciIgOiAid2xyIik7CiAgICAgICAgIHJldHVybjsK
QEAgLTkzOSw2ICs5NDYsNjMgQEAgY29uc3QgY2hhciogQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lz
dGVyT2Zmc2V0Ojpmb3JtYXQoKQogICAgIHJldHVybiBtX2Zvcm1hdEJ1ZmZlcjsKIH0KIAorY29u
c3QgY2hhciogQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpcjo6b3BOYW1lKCkKK3sKKyAg
ICBpZiAoIXZCaXQoKSAmJiBsQml0KCkgJiYgc2l6ZSgpID09IDB4MSkKKyAgICAgICAgcmV0dXJu
ICJsZHBzdyI7CisgICAgaWYgKGxCaXQoKSkKKyAgICAgICAgcmV0dXJuICJsZHAiOworICAgIHJl
dHVybiAic3RwIjsKK30KKworY29uc3QgY2hhciogQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVy
UGFpcjo6Zm9ybWF0KCkKK3sKKyAgICBjb25zdCBjaGFyKiB0aGlzT3BOYW1lID0gb3BOYW1lKCk7
CisgICAgCisgICAgaWYgKHNpemUoKSA9PSAweDMpCisgICAgICAgIHJldHVybiBBNjRET3Bjb2Rl
Ojpmb3JtYXQoKTsKKworICAgIGlmICgob2Zmc2V0TW9kZSgpIDwgMHgxKSB8fCAob2Zmc2V0TW9k
ZSgpID4gMHgzKSkKKyAgICAgICAgcmV0dXJuIEE2NERPcGNvZGU6OmZvcm1hdCgpOworCisgICAg
aWYgKChvZmZzZXRNb2RlKCkgPT0gMHgxKSAmJiAhdkJpdCgpICYmICFsQml0KCkpCisgICAgICAg
IHJldHVybiBBNjRET3Bjb2RlOjpmb3JtYXQoKTsKKworICAgIGFwcGVuZEluc3RydWN0aW9uTmFt
ZSh0aGlzT3BOYW1lKTsKKyAgICB1bnNpZ25lZCBvZmZzZXRTaGlmdDsKKyAgICBpZiAodkJpdCgp
KSB7CisgICAgICAgIGFwcGVuZEZQUmVnaXN0ZXJOYW1lKHJ0KCksIHNpemUoKSk7CisgICAgICAg
IGFwcGVuZFNlcGFyYXRvcigpOworICAgICAgICBhcHBlbmRGUFJlZ2lzdGVyTmFtZShydDIoKSwg
c2l6ZSgpKTsKKyAgICAgICAgb2Zmc2V0U2hpZnQgPSBzaXplKCkgKyAyOworICAgIH0gZWxzZSB7
CisgICAgICAgIGFwcGVuZFJlZ2lzdGVyTmFtZShydCgpLCBpczY0Qml0KCkpOworICAgICAgICBh
cHBlbmRTZXBhcmF0b3IoKTsKKyAgICAgICAgYXBwZW5kUmVnaXN0ZXJOYW1lKHJ0MigpLCBpczY0
Qml0KCkpOworICAgICAgICBvZmZzZXRTaGlmdCA9IChzaXplKCkgPj4gMSkgKyAyOworICAgIH0K
KworICAgIGFwcGVuZFNlcGFyYXRvcigpOworICAgIGFwcGVuZENoYXJhY3RlcignWycpOworICAg
IGFwcGVuZFNQT3JSZWdpc3Rlck5hbWUocm4oKSk7CisKKyAgICBpbnQgb2Zmc2V0ID0gaW1tZWRp
YXRlNygpIDw8IG9mZnNldFNoaWZ0OworCisgICAgaWYgKG9mZnNldE1vZGUoKSA9PSAxKSB7Cisg
ICAgICAgIGFwcGVuZENoYXJhY3RlcignXScpOworICAgICAgICBhcHBlbmRTZXBhcmF0b3IoKTsK
KyAgICAgICAgYXBwZW5kU2lnbmVkSW1tZWRpYXRlKG9mZnNldCk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgYXBwZW5kU2VwYXJhdG9yKCk7CisgICAgICAgIGFwcGVuZFNpZ25lZEltbWVkaWF0ZShv
ZmZzZXQpOworICAgICAgICBhcHBlbmRDaGFyYWN0ZXIoJ10nKTsKKyAgICAgICAgaWYgKG9mZnNl
dE1vZGUoKSA9PSAweDMpCisgICAgICAgICAgICBhcHBlbmRDaGFyYWN0ZXIoJyEnKTsKKyAgICB9
CisKKyAgICByZXR1cm4gbV9mb3JtYXRCdWZmZXI7Cit9CisKIGNvbnN0IGNoYXIqIEE2NERPcGNv
ZGVMb2FkU3RvcmVVbnNpZ25lZEltbWVkaWF0ZTo6Zm9ybWF0KCkKIHsKICAgICBjb25zdCBjaGFy
KiB0aGlzT3BOYW1lID0gb3BOYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGlzYXNzZW1ibGVyL0FSTTY0L0E2NERPcGNvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5oCmluZGV4IGVkMThkMzBkZmRjZmM5OWM5
OGY1NzI4M2NmODZjNzYzYzczYmM2ZTcuLjFjNmFjNDMxOTA2Njk0YTc1NWJhZTBiY2FhYTJlNWVh
NmIxYzk2NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIv
QVJNNjQvQTY0RE9wY29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJs
ZXIvQVJNNjQvQTY0RE9wY29kZS5oCkBAIC01NjUsNiArNTY1LDIyIEBAIHB1YmxpYzoKICAgICBp
bnQgc0JpdCgpIHsgcmV0dXJuIChtX29wY29kZSA+PiAxMikgJiAweDE7IH0KIH07CiAKK2NsYXNz
IEE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXIgOiBwdWJsaWMgQTY0RE9wY29kZUxvYWRT
dG9yZSB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAweDNhMDAw
MDAwOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0gMHgyODAwMDAwMDsKKwor
ICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXIs
IHRoaXNPYmopOworCisgICAgY29uc3QgY2hhciogZm9ybWF0KCk7CisgICAgY29uc3QgY2hhciog
b3BOYW1lKCk7CisKKyAgICB1bnNpZ25lZCBydDIoKSB7IHJldHVybiAobV9vcGNvZGUgPj4gMTAp
ICYgMHgxZjsgfQorICAgIGludCBpbW1lZGlhdGU3KCkgeyByZXR1cm4gKHN0YXRpY19jYXN0PGlu
dD4oKG1fb3Bjb2RlID4+IDE1KSAmIDB4N2YpIDw8IDI1KSA+PiAyNTsgfQorICAgIHVuc2lnbmVk
IG9mZnNldE1vZGUoKSB7IHJldHVybiAobV9vcGNvZGUgPj4gMjMpICYgMHg3OyB9CisgICAgaW50
IGxCaXQoKSB7IHJldHVybiAobV9vcGNvZGUgPj4gMjIpICYgMHgxOyB9Cit9OworCiBjbGFzcyBB
NjRET3Bjb2RlTG9hZFN0b3JlVW5zaWduZWRJbW1lZGlhdGUgOiBwdWJsaWMgQTY0RE9wY29kZUxv
YWRTdG9yZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAweDNi
MDAwMDAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYmJyZXZp
YXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFiYnJldmlhdGlvbnMuaApp
bmRleCAwMmUwYzA0YzMwMjkxNWJhZTRiMzQ4NjA5NTg0ZjcyM2Q4NDQwNjU0Li4wZjlmYTRjMzAx
YzE5MTA5YTc2N2RiYjQ2ODc0NjM3ZGUxOWVmM2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTEFiYnJldmlhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEFiYnJldmlhdGlvbnMuaApAQCAtNTgsNiArNTgsNyBAQCBzdGF0aWMgaW5saW5l
IExUeXBlIGZsb2F0VHlwZShMQ29udGV4dCBjb250ZXh0KSB7IHJldHVybiBsbHZtLT5GbG9hdFR5
cGVJbkNvbnRleAogc3RhdGljIGlubGluZSBMVHlwZSBkb3VibGVUeXBlKExDb250ZXh0IGNvbnRl
eHQpIHsgcmV0dXJuIGxsdm0tPkRvdWJsZVR5cGVJbkNvbnRleHQoY29udGV4dCk7IH0KIAogc3Rh
dGljIGlubGluZSBMVHlwZSBwb2ludGVyVHlwZShMVHlwZSB0eXBlKSB7IHJldHVybiBsbHZtLT5Q
b2ludGVyVHlwZSh0eXBlLCAwKTsgfQorc3RhdGljIGlubGluZSBMVHlwZSBhcnJheVR5cGUoTFR5
cGUgdHlwZSwgdW5zaWduZWQgY291bnQpIHsgcmV0dXJuIGxsdm0tPkFycmF5VHlwZSh0eXBlLCBj
b3VudCk7IH0KIHN0YXRpYyBpbmxpbmUgTFR5cGUgdmVjdG9yVHlwZShMVHlwZSB0eXBlLCB1bnNp
Z25lZCBjb3VudCkgeyByZXR1cm4gbGx2bS0+VmVjdG9yVHlwZSh0eXBlLCBjb3VudCk7IH0KIAog
ZW51bSBQYWNraW5nTW9kZSB7IE5vdFBhY2tlZCwgUGFja2VkIH07CkBAIC0xMzIsNiArMTMzLDcg
QEAgc3RhdGljIGlubGluZSB2b2lkIHNldE1ldGFkYXRhKExWYWx1ZSBpbnN0cnVjdGlvbiwgdW5z
aWduZWQga2luZCwgTFZhbHVlIG1ldGFkYXQKIHN0YXRpYyBpbmxpbmUgTFZhbHVlIGFkZEZ1bmN0
aW9uKExNb2R1bGUgbW9kdWxlLCBjb25zdCBjaGFyKiBuYW1lLCBMVHlwZSB0eXBlKSB7IHJldHVy
biBsbHZtLT5BZGRGdW5jdGlvbihtb2R1bGUsIG5hbWUsIHR5cGUpOyB9CiBzdGF0aWMgaW5saW5l
IHZvaWQgc2V0TGlua2FnZShMVmFsdWUgZ2xvYmFsLCBMTGlua2FnZSBsaW5rYWdlKSB7IGxsdm0t
PlNldExpbmthZ2UoZ2xvYmFsLCBsaW5rYWdlKTsgfQogc3RhdGljIGlubGluZSB2b2lkIHNldEZ1
bmN0aW9uQ2FsbGluZ0NvbnYoTFZhbHVlIGZ1bmN0aW9uLCBMQ2FsbENvbnYgY29udmVudGlvbikg
eyBsbHZtLT5TZXRGdW5jdGlvbkNhbGxDb252KGZ1bmN0aW9uLCBjb252ZW50aW9uKTsgfQorc3Rh
dGljIGlubGluZSB2b2lkIGFkZFRhcmdldERlcGVuZGVudEZ1bmN0aW9uQXR0cihMVmFsdWUgZnVu
Y3Rpb24sIGNvbnN0IGNoYXIqIGtleSwgY29uc3QgY2hhciogdmFsdWUpIHsgbGx2bS0+QWRkVGFy
Z2V0RGVwZW5kZW50RnVuY3Rpb25BdHRyKGZ1bmN0aW9uLCBrZXksIHZhbHVlKTsgfQogCiBzdGF0
aWMgaW5saW5lIExWYWx1ZSBhZGRFeHRlcm5GdW5jdGlvbihMTW9kdWxlIG1vZHVsZSwgY29uc3Qg
Y2hhciogbmFtZSwgTFR5cGUgdHlwZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQWJzdHJhY3RIZWFwLmNwcAppbmRleCBlYWRkNWFmOTdlZWQ0M2U5ZDE3NDllYTNlYTdmYTdh
NzcyNzU5YWU0Li5iZTk5YzUwMTUwNjkyZjE0ODhiNjZlYWRhZTE5MDUyMjcyYmU2NzRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuY3BwCkBAIC01Myw5
ICs1MywxMCBAQCB2b2lkIEFic3RyYWN0SGVhcDo6ZGVjb3JhdGVJbnN0cnVjdGlvbihMVmFsdWUg
aW5zdHJ1Y3Rpb24sIGNvbnN0IEFic3RyYWN0SGVhcFJlcAogICAgIHNldE1ldGFkYXRhKGluc3Ry
dWN0aW9uLCByZXBvc2l0b3J5Lm1fdGJhYUtpbmQsIHRiYWFNZXRhZGF0YShyZXBvc2l0b3J5KSk7
CiB9CiAKLUluZGV4ZWRBYnN0cmFjdEhlYXA6OkluZGV4ZWRBYnN0cmFjdEhlYXAoTENvbnRleHQg
Y29udGV4dCwgQWJzdHJhY3RIZWFwKiBwYXJlbnQsIGNvbnN0IGNoYXIqIGhlYXBOYW1lLCBzaXpl
X3QgZWxlbWVudFNpemUpCitJbmRleGVkQWJzdHJhY3RIZWFwOjpJbmRleGVkQWJzdHJhY3RIZWFw
KExDb250ZXh0IGNvbnRleHQsIEFic3RyYWN0SGVhcCogcGFyZW50LCBjb25zdCBjaGFyKiBoZWFw
TmFtZSwgcHRyZGlmZl90IG9mZnNldCwgc2l6ZV90IGVsZW1lbnRTaXplKQogICAgIDogbV9oZWFw
Rm9yQW55SW5kZXgocGFyZW50LCBoZWFwTmFtZSkKICAgICAsIG1faGVhcE5hbWVMZW5ndGgoc3Ry
bGVuKGhlYXBOYW1lKSkKKyAgICAsIG1fb2Zmc2V0KG9mZnNldCkKICAgICAsIG1fZWxlbWVudFNp
emUoZWxlbWVudFNpemUpCiAgICAgLCBtX3NjYWxlVGVybSgwKQogICAgICwgbV9jYW5TaGlmdChm
YWxzZSkKQEAgLTkzLDcgKzk0LDcgQEAgVHlwZWRQb2ludGVyIEluZGV4ZWRBYnN0cmFjdEhlYXA6
OmJhc2VJbmRleChPdXRwdXQmIG91dCwgTFZhbHVlIGJhc2UsIExWYWx1ZSBpbmQKICAgICB9IGVs
c2UKICAgICAgICAgcmVzdWx0ID0gb3V0LmFkZChiYXNlLCBvdXQubXVsKGluZGV4LCBtX3NjYWxl
VGVybSkpOwogICAgIAotICAgIHJldHVybiBUeXBlZFBvaW50ZXIoYXRBbnlJbmRleCgpLCBvdXQu
YWRkUHRyKHJlc3VsdCwgb2Zmc2V0KSk7CisgICAgcmV0dXJuIFR5cGVkUG9pbnRlcihhdEFueUlu
ZGV4KCksIG91dC5hZGRQdHIocmVzdWx0LCBtX29mZnNldCArIG9mZnNldCkpOwogfQogCiBjb25z
dCBBYnN0cmFjdEZpZWxkJiBJbmRleGVkQWJzdHJhY3RIZWFwOjphdFNsb3cocHRyZGlmZl90IGlu
ZGV4KQpAQCAtMTY4LDcgKzE2OSw3IEBAIHZvaWQgSW5kZXhlZEFic3RyYWN0SGVhcDo6aW5pdGlh
bGl6ZShBYnN0cmFjdEZpZWxkJiBmaWVsZCwgcHRyZGlmZl90IHNpZ25lZEluZGV4CiAgICAgICAg
ICAgICBhY2N1bXVsYXRvciA+Pj0gNDsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgZmll
bGQuaW5pdGlhbGl6ZSgmbV9oZWFwRm9yQW55SW5kZXgsIGNoYXJhY3RlcnMsIHNpZ25lZEluZGV4
ICogbV9lbGVtZW50U2l6ZSk7CisgICAgICAgIGZpZWxkLmluaXRpYWxpemUoJm1faGVhcEZvckFu
eUluZGV4LCBjaGFyYWN0ZXJzLCBtX29mZnNldCArIHNpZ25lZEluZGV4ICogbV9lbGVtZW50U2l6
ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCkBAIC0xNzcsNyArMTc4LDcgQEAgdm9p
ZCBJbmRleGVkQWJzdHJhY3RIZWFwOjppbml0aWFsaXplKEFic3RyYWN0RmllbGQmIGZpZWxkLCBw
dHJkaWZmX3Qgc2lnbmVkSW5kZXgKIAogTnVtYmVyZWRBYnN0cmFjdEhlYXA6Ok51bWJlcmVkQWJz
dHJhY3RIZWFwKAogICAgIExDb250ZXh0IGNvbnRleHQsIEFic3RyYWN0SGVhcCogaGVhcCwgY29u
c3QgY2hhciogaGVhcE5hbWUpCi0gICAgOiBtX2luZGV4ZWRIZWFwKGNvbnRleHQsIGhlYXAsIGhl
YXBOYW1lLCAxKQorICAgIDogbV9pbmRleGVkSGVhcChjb250ZXh0LCBoZWFwLCBoZWFwTmFtZSwg
MCwgMSkKIHsKIH0KIApAQCAtMTg3LDcgKzE4OCw3IEBAIE51bWJlcmVkQWJzdHJhY3RIZWFwOjp+
TnVtYmVyZWRBYnN0cmFjdEhlYXAoKQogCiBBYnNvbHV0ZUFic3RyYWN0SGVhcDo6QWJzb2x1dGVB
YnN0cmFjdEhlYXAoCiAgICAgTENvbnRleHQgY29udGV4dCwgQWJzdHJhY3RIZWFwKiBoZWFwLCBj
b25zdCBjaGFyKiBoZWFwTmFtZSkKLSAgICA6IG1faW5kZXhlZEhlYXAoY29udGV4dCwgaGVhcCwg
aGVhcE5hbWUsIDEpCisgICAgOiBtX2luZGV4ZWRIZWFwKGNvbnRleHQsIGhlYXAsIGhlYXBOYW1l
LCAwLCAxKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEFic3RyYWN0SGVhcC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhl
YXAuaAppbmRleCBlOTJhMmZjMmMwMWMzMDk1ODMwNzBkOTYxYjFhNzA5MTQxMWNhYzZkLi4yZjBj
YWE3MjcxMGEyM2JkMTExYzEyOTAxMWQyOTY0NTI3NjdlMDU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwLmgKQEAgLTEzOSw3ICsxMzksNyBAQCBwcml2YXRl
OgogCiBjbGFzcyBJbmRleGVkQWJzdHJhY3RIZWFwIHsKIHB1YmxpYzoKLSAgICBJbmRleGVkQWJz
dHJhY3RIZWFwKExDb250ZXh0LCBBYnN0cmFjdEhlYXAqIHBhcmVudCwgY29uc3QgY2hhciogaGVh
cE5hbWUsIHNpemVfdCBlbGVtZW50U2l6ZSk7CisgICAgSW5kZXhlZEFic3RyYWN0SGVhcChMQ29u
dGV4dCwgQWJzdHJhY3RIZWFwKiBwYXJlbnQsIGNvbnN0IGNoYXIqIGhlYXBOYW1lLCBwdHJkaWZm
X3Qgb2Zmc2V0LCBzaXplX3QgZWxlbWVudFNpemUpOwogICAgIH5JbmRleGVkQWJzdHJhY3RIZWFw
KCk7CiAgICAgCiAgICAgY29uc3QgQWJzdHJhY3RIZWFwJiBhdEFueUluZGV4KCkgY29uc3QgeyBy
ZXR1cm4gbV9oZWFwRm9yQW55SW5kZXg7IH0KQEAgLTE2OCw2ICsxNjgsNyBAQCBwcml2YXRlOgog
CiAgICAgQWJzdHJhY3RIZWFwIG1faGVhcEZvckFueUluZGV4OwogICAgIHNpemVfdCBtX2hlYXBO
YW1lTGVuZ3RoOworICAgIHB0cmRpZmZfdCBtX29mZnNldDsKICAgICBzaXplX3QgbV9lbGVtZW50
U2l6ZTsKICAgICBMVmFsdWUgbV9zY2FsZVRlcm07CiAgICAgYm9vbCBtX2NhblNoaWZ0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0
b3J5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5jcHAKaW5kZXggZDdmODNjOTYwMWM4ZGVjYjNjNGZkOTYwZjllOTNmZWUyNGY5NzJlZi4u
ZTZiMGUxNjFmMmM5YWJhZGRiNDZlYzYxZjZiYjgwMTE3ZjgyNGYxOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3Bw
CkBAIC00Nyw3ICs0Nyw3IEBAIEFic3RyYWN0SGVhcFJlcG9zaXRvcnk6OkFic3RyYWN0SGVhcFJl
cG9zaXRvcnkoTENvbnRleHQgY29udGV4dCkKICAgICAKICAgICAsIEpTQ2VsbF9mcmVlTGlzdE5l
eHQoSlNDZWxsX3N0cnVjdHVyZSkKICAgICAKLSNkZWZpbmUgSU5ERVhFRF9BQlNUUkFDVF9IRUFQ
X0lOSVRJQUxJWkFUSU9OKG5hbWUsIHNpemUpICwgbmFtZShjb250ZXh0LCAmcm9vdCwgI25hbWUs
IHNpemUpCisjZGVmaW5lIElOREVYRURfQUJTVFJBQ1RfSEVBUF9JTklUSUFMSVpBVElPTihuYW1l
LCBvZmZzZXQsIHNpemUpICwgbmFtZShjb250ZXh0LCAmcm9vdCwgI25hbWUsIG9mZnNldCwgc2l6
ZSkKICAgICBGT1JfRUFDSF9JTkRFWEVEX0FCU1RSQUNUX0hFQVAoSU5ERVhFRF9BQlNUUkFDVF9I
RUFQX0lOSVRJQUxJWkFUSU9OKQogI3VuZGVmIElOREVYRURfQUJTVFJBQ1RfSEVBUF9JTklUSUFM
SVpBVElPTgogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExB
YnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFi
c3RyYWN0SGVhcFJlcG9zaXRvcnkuaAppbmRleCBmODExYzhiZTVkMWE3NTY0MjkyMzAzNjQwNTcx
ZjEyNTk1YWE0MDc2Li5kZDk0NjZkOTJmZjIzYTA4YTU4YzFlMmIzNGNhYWUxMjQxZDM4YjQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9z
aXRvcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJl
cG9zaXRvcnkuaApAQCAtNDgsMTEgKzQ4LDE1IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
RlRMIHsKICAgICBtYWNybyhKU0FycmF5QnVmZmVyVmlld19tb2RlLCBKU0FycmF5QnVmZmVyVmll
dzo6b2Zmc2V0T2ZNb2RlKCkpIFwKICAgICBtYWNybyhKU0FycmF5QnVmZmVyVmlld192ZWN0b3Is
IEpTQXJyYXlCdWZmZXJWaWV3OjpvZmZzZXRPZlZlY3RvcigpKSBcCiAgICAgbWFjcm8oSlNDZWxs
X3N0cnVjdHVyZSwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSkgXAorICAgIG1hY3JvKEpTRnVu
Y3Rpb25fZXhlY3V0YWJsZSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpIFwKKyAg
ICBtYWNybyhKU0Z1bmN0aW9uX3Njb3BlLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZlNjb3BlQ2hhaW4o
KSkgXAogICAgIG1hY3JvKEpTT2JqZWN0X2J1dHRlcmZseSwgSlNPYmplY3Q6OmJ1dHRlcmZseU9m
ZnNldCgpKSBcCiAgICAgbWFjcm8oSlNTY29wZV9uZXh0LCBKU1Njb3BlOjpvZmZzZXRPZk5leHQo
KSkgXAorICAgIG1hY3JvKEpTU3RyaW5nX2ZsYWdzLCBKU1N0cmluZzo6b2Zmc2V0T2ZGbGFncygp
KSBcCiAgICAgbWFjcm8oSlNTdHJpbmdfbGVuZ3RoLCBKU1N0cmluZzo6b2Zmc2V0T2ZMZW5ndGgo
KSkgXAogICAgIG1hY3JvKEpTU3RyaW5nX3ZhbHVlLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgp
KSBcCiAgICAgbWFjcm8oSlNWYXJpYWJsZU9iamVjdF9yZWdpc3RlcnMsIEpTVmFyaWFibGVPYmpl
Y3Q6Om9mZnNldE9mUmVnaXN0ZXJzKCkpIFwKKyAgICBtYWNybyhKU1dyYXBwZXJPYmplY3RfaW50
ZXJuYWxWYWx1ZSwgSlNXcmFwcGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlT2Zmc2V0KCkpIFwKICAg
ICBtYWNybyhNYXJrZWRBbGxvY2F0b3JfZnJlZUxpc3RIZWFkLCBNYXJrZWRBbGxvY2F0b3I6Om9m
ZnNldE9mRnJlZUxpc3RIZWFkKCkpIFwKICAgICBtYWNybyhNYXJrZWRCbG9ja19tYXJrQml0cywg
TWFya2VkQmxvY2s6Om9mZnNldE9mTWFya3MoKSkgXAogICAgIG1hY3JvKFN0cmluZ0ltcGxfZGF0
YSwgU3RyaW5nSW1wbDo6ZGF0YU9mZnNldCgpKSBcCkBAIC02NCwxNCArNjgsMTUgQEAgbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKFN0cnVjdHVyZV90eXBlSW5mb1R5
cGUsIFN0cnVjdHVyZTo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpCiAKICNkZWZpbmUgRk9SX0VBQ0hf
SU5ERVhFRF9BQlNUUkFDVF9IRUFQKG1hY3JvKSBcCi0gICAgbWFjcm8oY2hhcmFjdGVyczgsIHNp
emVvZihMQ2hhcikpIFwKLSAgICBtYWNybyhjaGFyYWN0ZXJzMTYsIHNpemVvZihVQ2hhcikpIFwK
LSAgICBtYWNybyhpbmRleGVkSW50MzJQcm9wZXJ0aWVzLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUp
KSBcCi0gICAgbWFjcm8oaW5kZXhlZERvdWJsZVByb3BlcnRpZXMsIHNpemVvZihkb3VibGUpKSBc
Ci0gICAgbWFjcm8oaW5kZXhlZENvbnRpZ3VvdXNQcm9wZXJ0aWVzLCBzaXplb2YoRW5jb2RlZEpT
VmFsdWUpKSBcCi0gICAgbWFjcm8oaW5kZXhlZEFycmF5U3RvcmFnZVByb3BlcnRpZXMsIHNpemVv
ZihFbmNvZGVkSlNWYWx1ZSkpIFwKLSAgICBtYWNybyhzaW5nbGVDaGFyYWN0ZXJTdHJpbmdzLCBz
aXplb2YoSlNTdHJpbmcqKSkgXAotICAgIG1hY3JvKHZhcmlhYmxlcywgc2l6ZW9mKFJlZ2lzdGVy
KSkKKyAgICBtYWNybyhKU1JvcGVTdHJpbmdfZmliZXJzLCBKU1JvcGVTdHJpbmc6Om9mZnNldE9m
RmliZXJzKCksIHNpemVvZihXcml0ZUJhcnJpZXI8SlNTdHJpbmc+KSkgXAorICAgIG1hY3JvKGNo
YXJhY3RlcnM4LCAwLCBzaXplb2YoTENoYXIpKSBcCisgICAgbWFjcm8oY2hhcmFjdGVyczE2LCAw
LCBzaXplb2YoVUNoYXIpKSBcCisgICAgbWFjcm8oaW5kZXhlZEludDMyUHJvcGVydGllcywgMCwg
c2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXAorICAgIG1hY3JvKGluZGV4ZWREb3VibGVQcm9wZXJ0
aWVzLCAwLCBzaXplb2YoZG91YmxlKSkgXAorICAgIG1hY3JvKGluZGV4ZWRDb250aWd1b3VzUHJv
cGVydGllcywgMCwgc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXAorICAgIG1hY3JvKGluZGV4ZWRB
cnJheVN0b3JhZ2VQcm9wZXJ0aWVzLCAwLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSBcCisgICAg
bWFjcm8oc2luZ2xlQ2hhcmFjdGVyU3RyaW5ncywgMCwgc2l6ZW9mKEpTU3RyaW5nKikpIFwKKyAg
ICBtYWNybyh2YXJpYWJsZXMsIDAsIHNpemVvZihSZWdpc3RlcikpCiAgICAgCiAjZGVmaW5lIEZP
Ul9FQUNIX05VTUJFUkVEX0FCU1RSQUNUX0hFQVAobWFjcm8pIFwKICAgICBtYWNybyhwcm9wZXJ0
aWVzKQpAQCAtOTcsNyArMTAyLDcgQEAgcHVibGljOgogICAgIAogICAgIEFic3RyYWN0RmllbGQm
IEpTQ2VsbF9mcmVlTGlzdE5leHQ7CiAgICAgCi0jZGVmaW5lIElOREVYRURfQUJTVFJBQ1RfSEVB
UF9ERUNMQVJBVElPTihuYW1lLCBzaXplKSBJbmRleGVkQWJzdHJhY3RIZWFwIG5hbWU7CisjZGVm
aW5lIElOREVYRURfQUJTVFJBQ1RfSEVBUF9ERUNMQVJBVElPTihuYW1lLCBvZmZzZXQsIHNpemUp
IEluZGV4ZWRBYnN0cmFjdEhlYXAgbmFtZTsKICAgICBGT1JfRUFDSF9JTkRFWEVEX0FCU1RSQUNU
X0hFQVAoSU5ERVhFRF9BQlNUUkFDVF9IRUFQX0RFQ0xBUkFUSU9OKQogI3VuZGVmIElOREVYRURf
QUJTVFJBQ1RfSEVBUF9ERUNMQVJBVElPTgogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzAwZmE0ZDkw
OTViODMxNWJhMjdjMWNjOTEzNTdhYzIyMDU5NTU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHAKQEAgLTAsMCArMSw0
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCIKKworI2lm
IEVOQUJMRShGVExfSklUKQorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK3Zv
aWQgQXZhaWxhYmxlUmVjb3Zlcnk6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAg
ICBvdXQucHJpbnQobm9kZSgpLCAiID0+ICIsIG9wY29kZSgpLCAiLCAiLCBSYXdQb2ludGVyKG1f
bGVmdCksICIsICIsIFJhd1BvaW50ZXIobV9yaWdodCksICIsICIsIG1fZm9ybWF0KTsKK30KKwor
fSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQXZhaWxhYmxlUmVjb3Zl
cnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mY2FmNGEyMmQyODA5YTZmYmQzNTBjZWRmMTg4MjM5MzkyMDcwMWU4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBdmFpbGFibGVSZWNv
dmVyeS5oCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBGVExBdmFpbGFibGVSZWNvdmVyeV9oCisjZGVmaW5lIEZU
TEF2YWlsYWJsZVJlY292ZXJ5X2gKKworI2lmIEVOQUJMRShGVExfSklUKQorCisjaW5jbHVkZSAi
REZHTm9kZS5oIgorI2luY2x1ZGUgIkZUTEFiYnJldmlhdGVkVHlwZXMuaCIKKyNpbmNsdWRlICJG
VExSZWNvdmVyeU9wY29kZS5oIgorI2luY2x1ZGUgIkZUTFZhbHVlRm9ybWF0LmgiCisKK25hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKworY2xhc3MgQXZhaWxhYmxlUmVjb3Zlcnkgewor
cHVibGljOgorICAgIEF2YWlsYWJsZVJlY292ZXJ5KCkKKyAgICAgICAgOiBtX25vZGUoMCkKKyAg
ICAgICAgLCBtX2Zvcm1hdChJbnZhbGlkVmFsdWVGb3JtYXQpCisgICAgICAgICwgbV9vcGNvZGUo
QWRkUmVjb3ZlcnkpCisgICAgICAgICwgbV9sZWZ0KDApCisgICAgICAgICwgbV9yaWdodCgwKQor
ICAgIHsKKyAgICB9CisgICAgCisgICAgQXZhaWxhYmxlUmVjb3ZlcnkoREZHOjpOb2RlKiBub2Rl
LCBSZWNvdmVyeU9wY29kZSBvcGNvZGUsIExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQsIFZhbHVl
Rm9ybWF0IGZvcm1hdCkKKyAgICAgICAgOiBtX25vZGUobm9kZSkKKyAgICAgICAgLCBtX2Zvcm1h
dChmb3JtYXQpCisgICAgICAgICwgbV9vcGNvZGUob3Bjb2RlKQorICAgICAgICAsIG1fbGVmdChs
ZWZ0KQorICAgICAgICAsIG1fcmlnaHQocmlnaHQpCisgICAgeworICAgIH0KKyAgICAKKyAgICBE
Rkc6Ok5vZGUqIG5vZGUoKSBjb25zdCB7IHJldHVybiBtX25vZGU7IH0KKyAgICBWYWx1ZUZvcm1h
dCBmb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX2Zvcm1hdDsgfQorICAgIFJlY292ZXJ5T3Bjb2Rl
IG9wY29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3Bjb2RlOyB9CisgICAgTFZhbHVlIGxlZnQoKSBj
b25zdCB7IHJldHVybiBtX2xlZnQ7IH0KKyAgICBMVmFsdWUgcmlnaHQoKSBjb25zdCB7IHJldHVy
biBtX3JpZ2h0OyB9CisgICAgCisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7Cisg
ICAgCitwcml2YXRlOgorICAgIERGRzo6Tm9kZSogbV9ub2RlOworICAgIFZhbHVlRm9ybWF0IG1f
Zm9ybWF0OworICAgIFJlY292ZXJ5T3Bjb2RlIG1fb3Bjb2RlOworICAgIExWYWx1ZSBtX2xlZnQ7
CisgICAgTFZhbHVlIG1fcmlnaHQ7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisK
KyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKworI2VuZGlmIC8vIEZUTEF2YWlsYWJsZVJlY292
ZXJ5X2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmls
aXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3Bw
CmluZGV4IDg2YTI4Y2Y4YWVmNDBkMmY3YWRiNTM1ZjQ3MjRkMmYzMzBiZjhhMDYuLmQxNmIxN2Jk
NjYxMjc5ZDBjYWQzMDAyMjMzZTllMzAxMTAwOTNlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKQEAgLTMyLDYgKzMyLDExIEBAIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIAogdXNpbmcgbmFtZXNwYWNlIERGRzsKIAorc3RhdGlj
IGJvb2wgdmVyYm9zZUNhcGFiaWxpdGllcygpCit7CisgICAgcmV0dXJuIHZlcmJvc2VDb21waWxh
dGlvbkVuYWJsZWQoKSB8fCBPcHRpb25zOjp2ZXJib3NlRlRMRmFpbHVyZSgpOworfQorCiBpbmxp
bmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKIHsKICAgICAvLyBOT1RF
OiBJZiB3ZSBldmVyIGhhdmUgcGhhbnRvbSBhcmd1bWVudHMsIHdlIGNhbiBjb21waWxlIHRoZW0g
YnV0IHdlIGNhbm5vdApAQCAtNzcsNiArODIsOSBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNh
bkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIEFyaXRoTWluOgogICAgIGNhc2UgQXJpdGhN
YXg6CiAgICAgY2FzZSBBcml0aEFiczoKKyAgICBjYXNlIEFyaXRoU2luOgorICAgIGNhc2UgQXJp
dGhDb3M6CisgICAgY2FzZSBBcml0aFNxcnQ6CiAgICAgY2FzZSBBcml0aE5lZ2F0ZToKICAgICBj
YXNlIFVJbnQzMlRvTnVtYmVyOgogICAgIGNhc2UgSW50MzJUb0RvdWJsZToKQEAgLTg4LDggKzk2
LDYgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAg
Y2FzZSBVcHNpbG9uOgogICAgIGNhc2UgRXh0cmFjdE9TUkVudHJ5TG9jYWw6CiAgICAgY2FzZSBM
b29wSGludDoKLSAgICBjYXNlIENhbGw6Ci0gICAgY2FzZSBDb25zdHJ1Y3Q6CiAgICAgY2FzZSBH
ZXRNeVNjb3BlOgogICAgIGNhc2UgU2tpcFNjb3BlOgogICAgIGNhc2UgR2V0Q2xvc3VyZVJlZ2lz
dGVyczoKQEAgLTEwOCwxNSArMTE0LDI3IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29t
cGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgU3RvcmVCYXJyaWVyOgogICAgIGNhc2UgQ29uZGl0
aW9uYWxTdG9yZUJhcnJpZXI6CiAgICAgY2FzZSBTdG9yZUJhcnJpZXJXaXRoTnVsbENoZWNrOgor
ICAgIGNhc2UgQ2FsbDoKKyAgICBjYXNlIENvbnN0cnVjdDoKICAgICBjYXNlIFZhbHVlVG9JbnQz
MjoKICAgICBjYXNlIEJyYW5jaDoKICAgICBjYXNlIExvZ2ljYWxOb3Q6CiAgICAgY2FzZSBDaGVj
a0luQm91bmRzOgogICAgIGNhc2UgQ29uc3RhbnRTdG9yYWdlUG9pbnRlcjoKICAgICBjYXNlIENo
ZWNrOgorICAgIGNhc2UgQ291bnRFeGVjdXRpb246CisgICAgY2FzZSBDaGVja0V4ZWN1dGFibGU6
CisgICAgY2FzZSBHZXRTY29wZToKKyAgICBjYXNlIEFsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2lu
dDoKKyAgICBjYXNlIENoZWNrQXJndW1lbnRzTm90Q3JlYXRlZDoKKyAgICBjYXNlIEdldENhbGxl
ZToKKyAgICBjYXNlIFRvU3RyaW5nOgorICAgIGNhc2UgTWFrZVJvcGU6CisgICAgY2FzZSBOZXdB
cnJheVdpdGhTaXplOgogICAgICAgICAvLyBUaGVzZSBhcmUgT0suCiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgR2V0QnlJZDoKKyAgICBjYXNlIFB1dEJ5SWREaXJlY3Q6CiAgICAgY2FzZSBQdXRC
eUlkOgogICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IENlbGxVc2UpCiAg
ICAgICAgICAgICBicmVhazsKQEAgLTIzNyw4ICsyNTUsMTcgQEAgaW5saW5lIENhcGFiaWxpdHlM
ZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShH
cmFwaCYgZ3JhcGgpCiB7CiAgICAgaWYgKGdyYXBoLm1fY29kZUJsb2NrLT5jb2RlVHlwZSgpICE9
IEZ1bmN0aW9uQ29kZSkgewotICAgICAgICBpZiAodmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgp
KQotICAgICAgICAgICAgZGF0YUxvZygiRlRMIHJlamVjdGluZyBjb2RlIGJsb2NrIHRoYXQgZG9l
c24ndCBiZWxvbmcgdG8gYSBmdW5jdGlvbi5cbiIpOworICAgICAgICBpZiAodmVyYm9zZUNhcGFi
aWxpdGllcygpKQorICAgICAgICAgICAgZGF0YUxvZygiRlRMIHJlamVjdGluZyAiLCAqZ3JhcGgu
bV9jb2RlQmxvY2ssICIgYmVjYXVzZSBpdCBkb2Vzbid0IGJlbG9uZyB0byBhIGZ1bmN0aW9uLlxu
Iik7CisgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOworICAgIH0KKyAgICAKKyAgICBpZiAo
Z3JhcGgubV9jb2RlQmxvY2stPm5lZWRzQWN0aXZhdGlvbigpKSB7CisgICAgICAgIC8vIE5lZWQg
dGhpcyBiZWNhdXNlIGFsdGhvdWdoIHdlIGFsc28gZG9uJ3Qgc3VwcG9ydAorICAgICAgICAvLyBD
cmVhdGVBY3RpdmF0aW9uL1RlYXJPZmZBY3RpdmF0aW9uLCB3ZSBtaWdodCBub3Qgc2VlIHRob3Nl
IG5vZGVzIGluIGNhc2Ugb2YKKyAgICAgICAgLy8gT1NSIGVudHJ5LgorICAgICAgICBpZiAodmVy
Ym9zZUNhcGFiaWxpdGllcygpKQorICAgICAgICAgICAgZGF0YUxvZygiRlRMIHJlamVjdGluZyAi
LCAqZ3JhcGgubV9jb2RlQmxvY2ssICIgYmVjYXVzZSBpdCB1c2VzIGFjdGl2YXRpb25zLlxuIik7
CiAgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOwogICAgIH0KICAgICAKQEAgLTI3NCwxMyAr
MzAxLDE2IEBAIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKEdyYXBoJiBncmFwaCkKICAgICAg
ICAgICAgICAgICBjYXNlIE9iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNlIE9iamVjdE9y
T3RoZXJVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdVc2U6CisgICAgICAgICAgICAg
ICAgY2FzZSBLbm93blN0cmluZ1VzZToKKyAgICAgICAgICAgICAgICBjYXNlIFN0cmluZ09iamVj
dFVzZToKKyAgICAgICAgICAgICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAg
ICAgICAgICAgICAgIGNhc2UgRmluYWxPYmplY3RVc2U6CiAgICAgICAgICAgICAgICAgICAgIC8v
IFRoZXNlIGFyZSBPSy4KICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgLy8gRG9uJ3Qga25vdyBob3cgdG8gaGFu
ZGxlIGFueXRoaW5nIGVsc2UuCi0gICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlQ29tcGls
YXRpb25FbmFibGVkKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkZUTCBy
ZWplY3Rpbmcgbm9kZSBiZWNhdXNlIG9mIGJhZCB1c2Uga2luZDogIiwgZWRnZS51c2VLaW5kKCks
ICIgaW4gbm9kZTpcbiIpOworICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZUNhcGFiaWxp
dGllcygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJGVEwgcmVqZWN0aW5n
IG5vZGUgaW4gIiwgKmdyYXBoLm1fY29kZUJsb2NrLCAiIGJlY2F1c2Ugb2YgYmFkIHVzZSBraW5k
OiAiLCBlZGdlLnVzZUtpbmQoKSwgIiBpbiBub2RlOlxuIik7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBncmFwaC5kdW1wKFdURjo6ZGF0YUZpbGUoKSwgIiAgICAiLCBub2RlKTsKICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsK
QEAgLTI4OSw4ICszMTksOCBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShHcmFwaCYgZ3Jh
cGgpCiAgICAgICAgICAgICAKICAgICAgICAgICAgIHN3aXRjaCAoY2FuQ29tcGlsZShub2RlKSkg
ewogICAgICAgICAgICAgY2FzZSBDYW5ub3RDb21waWxlOiAKLSAgICAgICAgICAgICAgICBpZiAo
dmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRhdGFM
b2coIkZUTCByZWplY3Rpbmcgbm9kZTpcbiIpOworICAgICAgICAgICAgICAgIGlmICh2ZXJib3Nl
Q2FwYWJpbGl0aWVzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiRlRMIHJlamVj
dGluZyBub2RlIGluICIsICpncmFwaC5tX2NvZGVCbG9jaywgIjpcbiIpOwogICAgICAgICAgICAg
ICAgICAgICBncmFwaC5kdW1wKFdURjo6ZGF0YUZpbGUoKSwgIiAgICAiLCBub2RlKTsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5jcHAKaW5kZXggNjUzYmI3
ZGRkY2UyNDgyNzFlOGU2YzYxMDRmYTE5ZjdkYmFjNjFhYS4uY2NhOTBkM2E2M2E2Mjg3Zjc0OTUz
MGMzM2ExMDJlZDY4ZTdkYTE3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDb21tb25WYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
Q29tbW9uVmFsdWVzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEz
LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNjEsNiArNjEsOCBAQCBDb21tb25WYWx1ZXM6OkNvbW1vblZhbHVl
cyhMQ29udGV4dCBjb250ZXh0KQogICAgICwgaW50UHRyRWlnaHQoY29uc3RJbnQoaW50UHRyLCA4
LCBTaWduRXh0ZW5kKSkKICAgICAsIGludFB0clB0cihjb25zdEludChpbnRQdHIsIHNpemVvZih2
b2lkKiksIFNpZ25FeHRlbmQpKQogICAgICwgZG91YmxlWmVybyhjb25zdFJlYWwoZG91YmxlVHlw
ZSwgMCkpCisgICAgLCByYW5nZUtpbmQobWRLaW5kSUQoY29udGV4dCwgInJhbmdlIikpCisgICAg
LCBub25OZWdhdGl2ZUludDMyKGNvbnN0SW50KGludDMyLCAwLCBTaWduRXh0ZW5kKSwgY29uc3RJ
bnQoaW50MzIsIDFsbCA8PCAzMSwgU2lnbkV4dGVuZCkpCiAgICAgLCBtX2NvbnRleHQoY29udGV4
dCkKICAgICAsIG1fbW9kdWxlKDApCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENvbW1vblZhbHVlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExD
b21tb25WYWx1ZXMuaAppbmRleCA4NDgwOTAyMTBjZGQ3MDRiZjA1NjAzYTU4MWUyZmIxZGM4MWEy
MDUxLi45ZjMzMWNmYmQwN2U1MTVkNmEzODkzMjM2NjI4NDFlYjMyNmQwMTM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tbW9uVmFsdWVzLmgKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDYgKzMxLDcgQEAKICNp
ZiBFTkFCTEUoRlRMX0pJVCkKIAogI2luY2x1ZGUgIkZUTEFiYnJldmlhdGlvbnMuaCIKKyNpbmNs
dWRlICJGVExWYWx1ZVJhbmdlLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsK
IApAQCAtNzQsNiArNzUsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IExWYWx1ZSBpbnRQdHJQdHI7
CiAgICAgY29uc3QgTFZhbHVlIGRvdWJsZVplcm87CiAgICAgCisgICAgY29uc3QgdW5zaWduZWQg
cmFuZ2VLaW5kOworICAgIAorICAgIGNvbnN0IFZhbHVlUmFuZ2Ugbm9uTmVnYXRpdmVJbnQzMjsK
KyAgICAKICAgICBMQ29udGV4dCBjb25zdCBtX2NvbnRleHQ7CiAgICAgTE1vZHVsZSBtX21vZHVs
ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAppbmRleCA2YzAx
ZjRmYTUyZjFmOWU5ZDg1NWIxODdjNzkxZWE0ZmM4ZTIxMDA4Li5lMjNjNzQ1NzUzZWEyM2UxNWQz
M2JmNzVlOGM2MGE3Y2EyYjg0ZThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTENvbXBpbGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29t
cGlsZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJGVExJbmxpbmVDYWNoZVNpemUuaCIK
ICNpbmNsdWRlICJGVExKSVRDb2RlLmgiCiAjaW5jbHVkZSAiRlRMVGh1bmtzLmgiCisjaW5jbHVk
ZSAiRlRMVW53aW5kSW5mby5oIgogI2luY2x1ZGUgIkpJVFN0dWJzLmgiCiAjaW5jbHVkZSAiTExW
TUFQSS5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKQEAgLTQ5LDcgKzUwLDYgQEAgdXNpbmcg
bmFtZXNwYWNlIERGRzsKIHN0YXRpYyB1aW50OF90KiBtbUFsbG9jYXRlQ29kZVNlY3Rpb24oCiAg
ICAgdm9pZCogb3BhcXVlU3RhdGUsIHVpbnRwdHJfdCBzaXplLCB1bnNpZ25lZCBhbGlnbm1lbnQs
IHVuc2lnbmVkLCBjb25zdCBjaGFyKiBzZWN0aW9uTmFtZSkKIHsKLSAgICAKICAgICBTdGF0ZSYg
c3RhdGUgPSAqc3RhdGljX2Nhc3Q8U3RhdGUqPihvcGFxdWVTdGF0ZSk7CiAgICAgCiAgICAgUkVM
RUFTRV9BU1NFUlQoYWxpZ25tZW50IDw9IGppdEFsbG9jYXRpb25HcmFudWxlKTsKQEAgLTU4LDYg
KzU4LDExIEBAIHN0YXRpYyB1aW50OF90KiBtbUFsbG9jYXRlQ29kZVNlY3Rpb24oCiAgICAgICAg
IHN0YXRlLmdyYXBoLm1fdm0uZXhlY3V0YWJsZUFsbG9jYXRvci5hbGxvY2F0ZSgKICAgICAgICAg
ICAgIHN0YXRlLmdyYXBoLm1fdm0sIHNpemUsIHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRD
b21waWxhdGlvbk11c3RTdWNjZWVkKTsKICAgICAKKyAgICBpZiAoIXN0cmNtcChzZWN0aW9uTmFt
ZSwgIl9fY29tcGFjdF91bndpbmQiKSkgeworICAgICAgICBzdGF0ZS5jb21wYWN0VW53aW5kID0g
cmVzdWx0LT5zdGFydCgpOworICAgICAgICBzdGF0ZS5jb21wYWN0VW53aW5kU2l6ZSA9IHJlc3Vs
dC0+c2l6ZUluQnl0ZXMoKTsKKyAgICB9CisgICAgCiAgICAgc3RhdGUuaml0Q29kZS0+YWRkSGFu
ZGxlKHJlc3VsdCk7CiAgICAgc3RhdGUuY29kZVNlY3Rpb25OYW1lcy5hcHBlbmQoc2VjdGlvbk5h
bWUpOwogICAgIApAQCAtMTQ5LDggKzE1NCw2MyBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJh
c2VkT25TdGFja01hcHMoCiAgICAgU3RhdGUmIHN0YXRlLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywg
SklUQ29kZSogaml0Q29kZSwgR2VuZXJhdGVkRnVuY3Rpb24gZ2VuZXJhdGVkRnVuY3Rpb24sCiAg
ICAgU3RhY2tNYXBzOjpSZWNvcmRNYXAmIHJlY29yZE1hcCkKIHsKLSAgICBWTSYgdm0gPSBzdGF0
ZS5ncmFwaC5tX3ZtOworICAgIEdyYXBoJiBncmFwaCA9IHN0YXRlLmdyYXBoOworICAgIFZNJiB2
bSA9IGdyYXBoLm1fdm07CiAgICAgU3RhY2tNYXBzIHN0YWNrbWFwcyA9IGppdENvZGUtPnN0YWNr
bWFwczsKKyAgICAKKyAgICBTdGFja01hcHM6OlJlY29yZE1hcDo6aXRlcmF0b3IgaXRlciA9IHJl
Y29yZE1hcC5maW5kKHN0YXRlLmNhcHR1cmVkU3RhY2ttYXBJRCk7CisgICAgUkVMRUFTRV9BU1NF
UlQoaXRlciAhPSByZWNvcmRNYXAuZW5kKCkpOworICAgIFJFTEVBU0VfQVNTRVJUKGl0ZXItPnZh
bHVlLmxvY2F0aW9ucy5zaXplKCkgPT0gMSk7CisgICAgTG9jYXRpb24gY2FwdHVyZWRMb2NhdGlv
biA9CisgICAgICAgIExvY2F0aW9uOjpmb3JTdGFja21hcHMoJmppdENvZGUtPnN0YWNrbWFwcywg
aXRlci0+dmFsdWUubG9jYXRpb25zWzBdKTsKKyAgICBSRUxFQVNFX0FTU0VSVChjYXB0dXJlZExv
Y2F0aW9uLmtpbmQoKSA9PSBMb2NhdGlvbjo6UmVnaXN0ZXIpOworICAgIFJFTEVBU0VfQVNTRVJU
KGNhcHR1cmVkTG9jYXRpb24uZ3ByKCkgPT0gR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwor
ICAgIFJFTEVBU0VfQVNTRVJUKCEoY2FwdHVyZWRMb2NhdGlvbi5hZGRlbmQoKSAlIHNpemVvZihS
ZWdpc3RlcikpKTsKKyAgICBpbnQzMl90IGxvY2Fsc09mZnNldCA9IGNhcHR1cmVkTG9jYXRpb24u
YWRkZW5kKCkgLyBzaXplb2YoUmVnaXN0ZXIpICsgZ3JhcGgubV9uZXh0TWFjaGluZUxvY2FsOwor
ICAgIAorICAgIGZvciAodW5zaWduZWQgaSA9IGdyYXBoLm1faW5saW5lVmFyaWFibGVEYXRhLnNp
emUoKTsgaS0tOykgeworICAgICAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA9
IGdyYXBoLm1faW5saW5lVmFyaWFibGVEYXRhW2ldLmlubGluZUNhbGxGcmFtZTsKKyAgICAgICAg
CisgICAgICAgIGlmIChpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50c1JlZ2lzdGVyLmlzVmFsaWQo
KSkgeworICAgICAgICAgICAgaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNSZWdpc3RlciA9IFZp
cnR1YWxSZWdpc3RlcigKKyAgICAgICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50
c1JlZ2lzdGVyLm9mZnNldCgpICsgbG9jYWxzT2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgZm9yICh1bnNpZ25lZCBhcmd1bWVudCA9IGlubGluZUNhbGxGcmFtZS0+YXJndW1l
bnRzLnNpemUoKTsgYXJndW1lbnQtLSA+IDE7KSB7CisgICAgICAgICAgICBpbmxpbmVDYWxsRnJh
bWUtPmFyZ3VtZW50c1thcmd1bWVudF0gPQorICAgICAgICAgICAgICAgIGlubGluZUNhbGxGcmFt
ZS0+YXJndW1lbnRzW2FyZ3VtZW50XS53aXRoTG9jYWxzT2Zmc2V0KGxvY2Fsc09mZnNldCk7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3Vy
ZUNhbGwpIHsKKyAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlUmVjb3ZlcnkgPQor
ICAgICAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlUmVjb3Zlcnkud2l0aExvY2Fs
c09mZnNldChsb2NhbHNPZmZzZXQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGlmIChj
b2RlQmxvY2stPnVzZXNBcmd1bWVudHMoKSkgeworICAgICAgICBjb2RlQmxvY2stPnNldEFyZ3Vt
ZW50c1JlZ2lzdGVyKAorICAgICAgICAgICAgVmlydHVhbFJlZ2lzdGVyKGNvZGVCbG9jay0+YXJn
dW1lbnRzUmVnaXN0ZXIoKS5vZmZzZXQoKSArIGxvY2Fsc09mZnNldCkpOworICAgIH0KKworICAg
IHsKKyAgICAgICAgQ0NhbGxIZWxwZXJzIGNoZWNrSklUKCZ2bSwgY29kZUJsb2NrKTsKKyAgICAg
ICAgCisgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgaXQncyBwZXJmZWN0bHkgZmFpciB0byBqdXN0
IGJsb3cgYXdheSBhbGwgc3RhdGUgYW5kIHJlc3RvcmUgdGhlCisgICAgICAgIC8vIEpTIEpJVCB2
aWV3IG9mIHRoZSB1bml2ZXJzZS4KKyAgICAgICAgY2hlY2tKSVQubW92ZShNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbTY0KFRhZ1R5cGVOdW1iZXIpLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVn
aXN0ZXIpOworICAgICAgICBjaGVja0pJVC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
NjQoVGFnTWFzayksIEdQUkluZm86OnRhZ01hc2tSZWdpc3Rlcik7CisgICAgICAgIAorICAgICAg
ICBjaGVja0pJVC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZ2bSksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CisgICAgICAgIGNoZWNrSklULm1vdmUoR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGwgPSBjaGVja0pJVC5jYWxsKCk7CisgICAgICAgIGNoZWNrSklULmp1bXBU
b0V4Y2VwdGlvbkhhbmRsZXIoKTsKKyAgICAgICAgCisgICAgICAgIE93blB0cjxMaW5rQnVmZmVy
PiBsaW5rQnVmZmVyID0gYWRvcHRQdHIobmV3IExpbmtCdWZmZXIoCisgICAgICAgICAgICB2bSwg
JmNoZWNrSklULCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpKTsKKyAgICAg
ICAgbGlua0J1ZmZlci0+bGluayhjYWxsLCBGdW5jdGlvblB0cihsb29rdXBFeGNlcHRpb25IYW5k
bGVyKSk7CisgICAgICAgIAorICAgICAgICBzdGF0ZS5maW5hbGl6ZXItPmhhbmRsZUV4Y2VwdGlv
bnNMaW5rQnVmZmVyID0gbGlua0J1ZmZlci5yZWxlYXNlKCk7CisgICAgfQogCiAgICAgRXhpdFRo
dW5rR2VuZXJhdG9yIGV4aXRUaHVua0dlbmVyYXRvcihzdGF0ZSk7CiAgICAgZXhpdFRodW5rR2Vu
ZXJhdG9yLmVtaXRUaHVua3MoKTsKQEAgLTE2NiwxNiArMjI2LDMwIEBAIHN0YXRpYyB2b2lkIGZp
eEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYg
KE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvbigpKQogICAgICAgICAgICAgICAgIGRhdGFMb2co
IkhhbmRsaW5nIE9TUiBzdGFja21hcCAjIiwgZXhpdC5tX3N0YWNrbWFwSUQsICIgZm9yICIsIGV4
aXQubV9jb2RlT3JpZ2luLCAiXG4iKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgU3RhY2tN
YXBzOjpSZWNvcmRNYXA6Oml0ZXJhdG9yIGl0ZXIgPSByZWNvcmRNYXAuZmluZChleGl0Lm1fc3Rh
Y2ttYXBJRCk7CisKKyAgICAgICAgICAgIGl0ZXIgPSByZWNvcmRNYXAuZmluZChleGl0Lm1fc3Rh
Y2ttYXBJRCk7CiAgICAgICAgICAgICBpZiAoaXRlciA9PSByZWNvcmRNYXAuZW5kKCkpIHsKICAg
ICAgICAgICAgICAgICAvLyBJdCB3YXMgb3B0aW1pemVkIG91dC4KICAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgaW5mby5t
X3RodW5rQWRkcmVzcyA9IGxpbmtCdWZmZXItPmxvY2F0aW9uT2YoaW5mby5tX3RodW5rTGFiZWwp
OwotICAgICAgICAgICAgCiAgICAgICAgICAgICBleGl0Lm1fcGF0Y2hhYmxlQ29kZU9mZnNldCA9
IGxpbmtCdWZmZXItPm9mZnNldE9mKGluZm8ubV90aHVua0p1bXApOworICAgICAgICAgICAgCisg
ICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSBleGl0Lm1fdmFsdWVzLnNpemUoKTsgai0tOykg
eworICAgICAgICAgICAgICAgIEV4aXRWYWx1ZSB2YWx1ZSA9IGV4aXQubV92YWx1ZXNbal07Cisg
ICAgICAgICAgICAgICAgaWYgKCF2YWx1ZS5pc0luSlNTdGFja1NvbWVob3coKSkKKyAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZS52aXJ0dWFs
UmVnaXN0ZXIoKS5pc0xvY2FsKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgICAgIGV4aXQubV92YWx1ZXNbal0gPSB2YWx1ZS53aXRoVmlydHVhbFJlZ2lzdGVy
KAorICAgICAgICAgICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIodmFsdWUudmlydHVhbFJlZ2lz
dGVyKCkub2Zmc2V0KCkgKyBsb2NhbHNPZmZzZXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvbigpKSB7Cisg
ICAgICAgICAgICAgICAgRHVtcENvbnRleHQgY29udGV4dDsKKyAgICAgICAgICAgICAgICBkYXRh
TG9nKCIgICAgRXhpdCB2YWx1ZXM6ICIsIGluQ29udGV4dChleGl0Lm1fdmFsdWVzLCAmY29udGV4
dCksICJcbiIpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBz
dGF0ZS5maW5hbGl6ZXItPmV4aXRUaHVua3NMaW5rQnVmZmVyID0gbGlua0J1ZmZlci5yZWxlYXNl
KCk7CkBAIC0xODQsMTMgKzI1OCwxNSBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25T
dGFja01hcHMoCiAgICAgaWYgKCFzdGF0ZS5nZXRCeUlkcy5pc0VtcHR5KCkgfHwgIXN0YXRlLnB1
dEJ5SWRzLmlzRW1wdHkoKSkgewogICAgICAgICBDQ2FsbEhlbHBlcnMgc2xvd1BhdGhKSVQoJnZt
LCBjb2RlQmxvY2spOwogICAgICAgICAKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBl
eGNlcHRpb25UYXJnZXQ7CisgICAgICAgIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdGF0
ZS5nZXRCeUlkcy5zaXplKCk7IGktLTspIHsKICAgICAgICAgICAgIEdldEJ5SWREZXNjcmlwdG9y
JiBnZXRCeUlkID0gc3RhdGUuZ2V0QnlJZHNbaV07CiAgICAgICAgICAgICAKICAgICAgICAgICAg
IGlmIChPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb24oKSkKICAgICAgICAgICAgICAgICBkYXRh
TG9nKCJIYW5kbGluZyBHZXRCeUlkIHN0YWNrbWFwICMiLCBnZXRCeUlkLnN0YWNrbWFwSUQoKSwg
IlxuIik7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwOjpp
dGVyYXRvciBpdGVyID0gcmVjb3JkTWFwLmZpbmQoZ2V0QnlJZC5zdGFja21hcElEKCkpOworICAg
ICAgICAgICAgaXRlciA9IHJlY29yZE1hcC5maW5kKGdldEJ5SWQuc3RhY2ttYXBJRCgpKTsKICAg
ICAgICAgICAgIGlmIChpdGVyID09IHJlY29yZE1hcC5lbmQoKSkgewogICAgICAgICAgICAgICAg
IC8vIEl0IHdhcyBvcHRpbWl6ZWQgb3V0LgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAt
MjAyLDE4ICsyNzgsMTcgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBz
KAogICAgICAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0Ojph
bGxSZWdpc3RlcnMoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgR1BSUmVnIHJlc3VsdCA9
IHJlY29yZC5sb2NhdGlvbnNbMF0uZGlyZWN0R1BSKCk7Ci0gICAgICAgICAgICBHUFJSZWcgY2Fs
bEZyYW1lUmVnaXN0ZXIgPSByZWNvcmQubG9jYXRpb25zWzFdLmRpcmVjdEdQUigpOwotICAgICAg
ICAgICAgR1BSUmVnIGJhc2UgPSByZWNvcmQubG9jYXRpb25zWzJdLmRpcmVjdEdQUigpOworICAg
ICAgICAgICAgR1BSUmVnIGJhc2UgPSByZWNvcmQubG9jYXRpb25zWzFdLmRpcmVjdEdQUigpOwog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAg
ICAgICAgICAgICBjb2RlQmxvY2ssIGdldEJ5SWQuY29kZU9yaWdpbigpLCB1c2VkUmVnaXN0ZXJz
LCBjYWxsRnJhbWVSZWdpc3RlciwKLSAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhiYXNlKSwg
SlNWYWx1ZVJlZ3MocmVzdWx0KSwgZmFsc2UpOworICAgICAgICAgICAgICAgIGNvZGVCbG9jaywg
Z2V0QnlJZC5jb2RlT3JpZ2luKCksIHVzZWRSZWdpc3RlcnMsIEpTVmFsdWVSZWdzKGJhc2UpLAor
ICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHJlc3VsdCksIGZhbHNlKTsKICAgICAgICAgICAg
IAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGJlZ2luID0gc2xvd1BhdGhKSVQu
bGFiZWwoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbCA9IGNhbGxPcGVyYXRpb24oCi0gICAgICAgICAgICAgICAgc3RhdGUsIHVzZWRSZWdpc3Rl
cnMsIHNsb3dQYXRoSklULCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIHJlc3VsdCwKLSAgICAg
ICAgICAgICAgICBjYWxsRnJhbWVSZWdpc3RlciwgZ2VuLnN0dWJJbmZvKCksIGJhc2UsIGdldEJ5
SWQudWlkKCkpOworICAgICAgICAgICAgICAgIHN0YXRlLCB1c2VkUmVnaXN0ZXJzLCBzbG93UGF0
aEpJVCwgZ2V0QnlJZC5jb2RlT3JpZ2luKCksICZleGNlcHRpb25UYXJnZXQsCisgICAgICAgICAg
ICAgICAgb3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCByZXN1bHQsIGdlbi5zdHViSW5mbygpLCBi
YXNlLCBnZXRCeUlkLnVpZCgpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgZ2VuLnJlcG9y
dFNsb3dQYXRoQ2FsbChiZWdpbiwgY2FsbCk7CiAgICAgICAgICAgICAKQEAgLTIyNyw3ICszMDIs
NyBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgICAg
ICBpZiAoT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uKCkpCiAgICAgICAgICAgICAgICAgZGF0
YUxvZygiSGFuZGxpbmcgUHV0QnlJZCBzdGFja21hcCAjIiwgcHV0QnlJZC5zdGFja21hcElEKCks
ICJcbiIpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBTdGFja01hcHM6OlJlY29yZE1hcDo6
aXRlcmF0b3IgaXRlciA9IHJlY29yZE1hcC5maW5kKHB1dEJ5SWQuc3RhY2ttYXBJRCgpKTsKKyAg
ICAgICAgICAgIGl0ZXIgPSByZWNvcmRNYXAuZmluZChwdXRCeUlkLnN0YWNrbWFwSUQoKSk7CiAg
ICAgICAgICAgICBpZiAoaXRlciA9PSByZWNvcmRNYXAuZW5kKCkpIHsKICAgICAgICAgICAgICAg
ICAvLyBJdCB3YXMgb3B0aW1pemVkIG91dC4KICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAg
LTIzOCwyMCArMzEzLDE5IEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFw
cygKICAgICAgICAgICAgIC8vIEZJWE1FOiBMTFZNIHNob3VsZCB0ZWxsIHVzIHdoaWNoIHJlZ2lz
dGVycyBhcmUgbGl2ZS4KICAgICAgICAgICAgIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMgPSBS
ZWdpc3RlclNldDo6YWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIEdQ
UlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IHJlY29yZC5sb2NhdGlvbnNbMF0uZGlyZWN0R1BSKCk7
Ci0gICAgICAgICAgICBHUFJSZWcgYmFzZSA9IHJlY29yZC5sb2NhdGlvbnNbMV0uZGlyZWN0R1BS
KCk7Ci0gICAgICAgICAgICBHUFJSZWcgdmFsdWUgPSByZWNvcmQubG9jYXRpb25zWzJdLmRpcmVj
dEdQUigpOworICAgICAgICAgICAgR1BSUmVnIGJhc2UgPSByZWNvcmQubG9jYXRpb25zWzBdLmRp
cmVjdEdQUigpOworICAgICAgICAgICAgR1BSUmVnIHZhbHVlID0gcmVjb3JkLmxvY2F0aW9uc1sx
XS5kaXJlY3RHUFIoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgSklUUHV0QnlJZEdlbmVy
YXRvciBnZW4oCi0gICAgICAgICAgICAgICAgY29kZUJsb2NrLCBwdXRCeUlkLmNvZGVPcmlnaW4o
KSwgdXNlZFJlZ2lzdGVycywgY2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgSlNW
YWx1ZVJlZ3MoYmFzZSksIEpTVmFsdWVSZWdzKHZhbHVlKSwgTWFjcm9Bc3NlbWJsZXI6OnNjcmF0
Y2hSZWdpc3RlciwKLSAgICAgICAgICAgICAgICBmYWxzZSwgcHV0QnlJZC5lY21hTW9kZSgpLCBw
dXRCeUlkLnB1dEtpbmQoKSk7CisgICAgICAgICAgICAgICAgY29kZUJsb2NrLCBwdXRCeUlkLmNv
ZGVPcmlnaW4oKSwgdXNlZFJlZ2lzdGVycywgSlNWYWx1ZVJlZ3MoYmFzZSksCisgICAgICAgICAg
ICAgICAgSlNWYWx1ZVJlZ3ModmFsdWUpLCBNYWNyb0Fzc2VtYmxlcjo6c2NyYXRjaFJlZ2lzdGVy
LCBmYWxzZSwgcHV0QnlJZC5lY21hTW9kZSgpLAorICAgICAgICAgICAgICAgIHB1dEJ5SWQucHV0
S2luZCgpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVs
IGJlZ2luID0gc2xvd1BhdGhKSVQubGFiZWwoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oCi0gICAgICAgICAgICAg
ICAgc3RhdGUsIHVzZWRSZWdpc3RlcnMsIHNsb3dQYXRoSklULCBnZW4uc2xvd1BhdGhGdW5jdGlv
bigpLCBjYWxsRnJhbWVSZWdpc3RlciwKLSAgICAgICAgICAgICAgICBnZW4uc3R1YkluZm8oKSwg
dmFsdWUsIGJhc2UsIHB1dEJ5SWQudWlkKCkpOworICAgICAgICAgICAgICAgIHN0YXRlLCB1c2Vk
UmVnaXN0ZXJzLCBzbG93UGF0aEpJVCwgcHV0QnlJZC5jb2RlT3JpZ2luKCksICZleGNlcHRpb25U
YXJnZXQsCisgICAgICAgICAgICAgICAgZ2VuLnNsb3dQYXRoRnVuY3Rpb24oKSwgZ2VuLnN0dWJJ
bmZvKCksIHZhbHVlLCBiYXNlLCBwdXRCeUlkLnVpZCgpKTsKICAgICAgICAgICAgIAogICAgICAg
ICAgICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChiZWdpbiwgY2FsbCk7CiAgICAgICAgICAgICAK
QEAgLTI1OSw4ICszMzMsMTMgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tN
YXBzKAogICAgICAgICAgICAgcHV0QnlJZC5tX2dlbmVyYXRvciA9IGdlbjsKICAgICAgICAgfQog
ICAgICAgICAKKyAgICAgICAgZXhjZXB0aW9uVGFyZ2V0LmxpbmsoJnNsb3dQYXRoSklUKTsKKyAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZXhjZXB0aW9uSnVtcCA9IHNsb3dQYXRoSklULmp1
bXAoKTsKKyAgICAgICAgCiAgICAgICAgIHN0YXRlLmZpbmFsaXplci0+c2lkZUNvZGVMaW5rQnVm
ZmVyID0gYWRvcHRQdHIoCiAgICAgICAgICAgICBuZXcgTGlua0J1ZmZlcih2bSwgJnNsb3dQYXRo
SklULCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpKTsKKyAgICAgICAgc3Rh
dGUuZmluYWxpemVyLT5zaWRlQ29kZUxpbmtCdWZmZXItPmxpbmsoCisgICAgICAgICAgICBleGNl
cHRpb25KdW1wLCBzdGF0ZS5maW5hbGl6ZXItPmhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyLT5l
bnRyeXBvaW50KCkpOwogICAgICAgICAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhdGUu
Z2V0QnlJZHMuc2l6ZSgpOyBpLS07KSB7CiAgICAgICAgICAgICBnZW5lcmF0ZUlDRmFzdFBhdGgo
CkBAIC0yNzQsMjggKzM1Myw4MSBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFj
a01hcHMoCiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNo
QnVmZmVyKGNvZGVCbG9jayk7Ci0gICAgCi0gICAgZm9yICh1bnNpZ25lZCBleGl0SW5kZXggPSBq
aXRDb2RlLT5vc3JFeGl0LnNpemUoKTsgZXhpdEluZGV4LS07KSB7Ci0gICAgICAgIE9TUkV4aXRD
b21waWxhdGlvbkluZm8mIGluZm8gPSBzdGF0ZS5maW5hbGl6ZXItPm9zckV4aXRbZXhpdEluZGV4
XTsKLSAgICAgICAgT1NSRXhpdCYgZXhpdCA9IGppdENvZGUtPm9zckV4aXRbZXhpdEluZGV4XTsK
LSAgICAgICAgU3RhY2tNYXBzOjpSZWNvcmRNYXA6Oml0ZXJhdG9yIGl0ZXIgPSByZWNvcmRNYXAu
ZmluZChleGl0Lm1fc3RhY2ttYXBJRCk7CisgICAgLy8gSGFuZGxpbmcgSlMgY2FsbHMgaXMgd2Vp
cmQ6IHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgd2Ugc29ydCB0aGVtIGJ5IHRoZSBQQyBpbiBMTFZN
CisgICAgLy8gZ2VuZXJhdGVkIGNvZGUuIFRoYXQgaW1wbGllcyBmaXJzdCBwcnVuaW5nIHRoZSBv
bmVzIHRoYXQgTExWTSBkaWRuJ3QgZ2VuZXJhdGUuCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHN0YXRlLmpzQ2FsbHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgSlNDYWxsJiBjYWxsID0g
c3RhdGUuanNDYWxsc1tpXTsKKyAgICAgICAgCisgICAgICAgIFN0YWNrTWFwczo6UmVjb3JkTWFw
OjppdGVyYXRvciBpdGVyID0gcmVjb3JkTWFwLmZpbmQoY2FsbC5zdGFja21hcElEKCkpOwogICAg
ICAgICBpZiAoaXRlciA9PSByZWNvcmRNYXAuZW5kKCkpIHsKLSAgICAgICAgICAgIC8vIFRoaXMg
Y291bGQgaGFwcGVuIGlmIExMVk0gb3B0aW1pemVzIG91dCBhbiBPU1IgZXhpdC4KKyAgICAgICAg
ICAgIC8vIEl0IHdhcyBvcHRpbWl6ZWQgb3V0LiBQcnVuZSBpdC4KKyAgICAgICAgICAgIGNhbGwg
PSBzdGF0ZS5qc0NhbGxzLmxhc3QoKTsKKyAgICAgICAgICAgIHN0YXRlLmpzQ2FsbHMucmVtb3Zl
TGFzdCgpOworICAgICAgICAgICAgaS0tOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KICAgICAgICAgCisgICAgICAgIGNhbGwubV9pbnN0cnVjdGlvbk9mZnNldCA9IGl0ZXItPnZh
bHVlLmluc3RydWN0aW9uT2Zmc2V0OworICAgIH0KKyAgICAKKyAgICBzdGQ6OnNvcnQoc3RhdGUu
anNDYWxscy5iZWdpbigpLCBzdGF0ZS5qc0NhbGxzLmVuZCgpKTsKKyAgICAKKyAgICBjb2RlQmxv
Y2stPnNldE51bWJlck9mQ2FsbExpbmtJbmZvcyhzdGF0ZS5qc0NhbGxzLnNpemUoKSk7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gc3RhdGUuanNDYWxscy5zaXplKCk7IGktLTspIHsKKyAgICAgICAg
SlNDYWxsJiBjYWxsID0gc3RhdGUuanNDYWxsc1tpXTsKKworICAgICAgICBDQ2FsbEhlbHBlcnMg
ZmFzdFBhdGhKSVQoJnZtLCBjb2RlQmxvY2spOworICAgICAgICBjYWxsLmVtaXQoZmFzdFBhdGhK
SVQpOworICAgICAgICAKKyAgICAgICAgY2hhciogc3RhcnRPZklDID0gYml0d2lzZV9jYXN0PGNo
YXIqPihnZW5lcmF0ZWRGdW5jdGlvbikgKyBjYWxsLm1faW5zdHJ1Y3Rpb25PZmZzZXQ7CisgICAg
ICAgIAorICAgICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIodm0sICZmYXN0UGF0aEpJVCwgc3Rh
cnRPZklDLCBzaXplT2ZDYWxsKCkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChsaW5rQnVmZmVy
LmlzVmFsaWQoKSk7CisgICAgICAgIAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QXNzZW1ibGVy
VHlwZV9UOjpmaWxsTm9wcygKKyAgICAgICAgICAgIHN0YXJ0T2ZJQyArIGxpbmtCdWZmZXIuc2l6
ZSgpLCBzaXplT2ZDYWxsKCkgLSBsaW5rQnVmZmVyLnNpemUoKSk7CisgICAgICAgIAorICAgICAg
ICBDYWxsTGlua0luZm8mIGluZm8gPSBjb2RlQmxvY2stPmNhbGxMaW5rSW5mbyhpKTsKKyAgICAg
ICAgY2FsbC5saW5rKHZtLCBsaW5rQnVmZmVyLCBpbmZvKTsKKyAgICB9CisgICAgCisgICAgUmVw
YXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKGNvZGVCbG9jayk7CisgICAgCisgICAgaXRlciA9IHJl
Y29yZE1hcC5maW5kKHN0YXRlLmhhbmRsZUV4Y2VwdGlvblN0YWNrbWFwSUQpOworICAgIC8vIEl0
J3Mgc29ydCBvZiByZW1vdGVseSBwb3NzaWJsZSB0aGF0IHdlIHdvbid0IGhhdmUgYW4gaW4tYmFu
ZCBleGNlcHRpb24gaGFuZGxpbmcKKyAgICAvLyBwYXRoLCBmb3Igc29tZSBraW5kcyBvZiBmdW5j
dGlvbnMuCisgICAgaWYgKGl0ZXIgIT0gcmVjb3JkTWFwLmVuZCgpKSB7CiAgICAgICAgIFN0YWNr
TWFwczo6UmVjb3JkJiByZWNvcmQgPSBpdGVyLT52YWx1ZTsKICAgICAgICAgCiAgICAgICAgIENv
ZGVMb2NhdGlvbkxhYmVsIHNvdXJjZSA9IENvZGVMb2NhdGlvbkxhYmVsKAogICAgICAgICAgICAg
Yml0d2lzZV9jYXN0PGNoYXIqPihnZW5lcmF0ZWRGdW5jdGlvbikgKyByZWNvcmQuaW5zdHJ1Y3Rp
b25PZmZzZXQpOworCisgICAgICAgIHJlcGF0Y2hCdWZmZXIucmVwbGFjZVdpdGhKdW1wKHNvdXJj
ZSwgc3RhdGUuZmluYWxpemVyLT5oYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlci0+ZW50cnlwb2lu
dCgpKTsKKyAgICB9CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBleGl0SW5kZXggPSAwOyBleGl0
SW5kZXggPCBqaXRDb2RlLT5vc3JFeGl0LnNpemUoKTsgKytleGl0SW5kZXgpIHsKKyAgICAgICAg
T1NSRXhpdENvbXBpbGF0aW9uSW5mbyYgaW5mbyA9IHN0YXRlLmZpbmFsaXplci0+b3NyRXhpdFtl
eGl0SW5kZXhdOworICAgICAgICBPU1JFeGl0JiBleGl0ID0gaml0Q29kZS0+b3NyRXhpdFtleGl0
SW5kZXhdOworICAgICAgICBpdGVyID0gcmVjb3JkTWFwLmZpbmQoZXhpdC5tX3N0YWNrbWFwSUQp
OwogICAgICAgICAKLSAgICAgICAgaWYgKGluZm8ubV9pc0ludmFsaWRhdGlvblBvaW50KSB7Ci0g
ICAgICAgICAgICBqaXRDb2RlLT5jb21tb24uanVtcFJlcGxhY2VtZW50cy5hcHBlbmQoSnVtcFJl
cGxhY2VtZW50KHNvdXJjZSwgaW5mby5tX3RodW5rQWRkcmVzcykpOwotICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIFZlY3Rvcjxjb25zdCB2b2lkKj4gY29kZUFkZHJlc3NlczsKKyAgICAg
ICAgCisgICAgICAgIGlmIChpdGVyICE9IHJlY29yZE1hcC5lbmQoKSkgeworICAgICAgICAgICAg
U3RhY2tNYXBzOjpSZWNvcmQmIHJlY29yZCA9IGl0ZXItPnZhbHVlOworICAgICAgICAgICAgCisg
ICAgICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBzb3VyY2UgPSBDb2RlTG9jYXRpb25MYWJlbCgK
KyAgICAgICAgICAgICAgICBiaXR3aXNlX2Nhc3Q8Y2hhcio+KGdlbmVyYXRlZEZ1bmN0aW9uKSAr
IHJlY29yZC5pbnN0cnVjdGlvbk9mZnNldCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNv
ZGVBZGRyZXNzZXMuYXBwZW5kKGJpdHdpc2VfY2FzdDxjaGFyKj4oZ2VuZXJhdGVkRnVuY3Rpb24p
ICsgcmVjb3JkLmluc3RydWN0aW9uT2Zmc2V0ICsgTWFjcm9Bc3NlbWJsZXI6Om1heEp1bXBSZXBs
YWNlbWVudFNpemUoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpbmZvLm1faXNJ
bnZhbGlkYXRpb25Qb2ludCkKKyAgICAgICAgICAgICAgICBqaXRDb2RlLT5jb21tb24uanVtcFJl
cGxhY2VtZW50cy5hcHBlbmQoSnVtcFJlcGxhY2VtZW50KHNvdXJjZSwgaW5mby5tX3RodW5rQWRk
cmVzcykpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlcGF0Y2hCdWZmZXIu
cmVwbGFjZVdpdGhKdW1wKHNvdXJjZSwgaW5mby5tX3RodW5rQWRkcmVzcyk7CiAgICAgICAgIH0K
ICAgICAgICAgCi0gICAgICAgIHJlcGF0Y2hCdWZmZXIucmVwbGFjZVdpdGhKdW1wKHNvdXJjZSwg
aW5mby5tX3RodW5rQWRkcmVzcyk7CisgICAgICAgIGlmIChncmFwaC5jb21waWxhdGlvbigpKQor
ICAgICAgICAgICAgZ3JhcGguY29tcGlsYXRpb24oKS0+YWRkT1NSRXhpdFNpdGUoY29kZUFkZHJl
c3Nlcyk7CiAgICAgfQogfQogCkBAIC0zNzMsNyArNTA1LDcgQEAgdm9pZCBjb21waWxlKFN0YXRl
JiBzdGF0ZSkKICAgICAgICAgICAgIEV4ZWN1dGFibGVNZW1vcnlIYW5kbGUqIGhhbmRsZSA9IHN0
YXRlLmppdENvZGUtPmhhbmRsZXMoKVtpXS5nZXQoKTsKICAgICAgICAgICAgIGRhdGFMb2coCiAg
ICAgICAgICAgICAgICAgIkdlbmVyYXRlZCBMTFZNIGNvZGUgZm9yICIsCi0gICAgICAgICAgICAg
ICAgQ29kZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENvZGU6
OkRGR0pJVCksCisgICAgICAgICAgICAgICAgQ29kZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3Jh
cGgubV9jb2RlQmxvY2ssIEpJVENvZGU6OkZUTEpJVCksCiAgICAgICAgICAgICAgICAgIiAjIiwg
aSwgIiwgIiwgc3RhdGUuY29kZVNlY3Rpb25OYW1lc1tpXSwgIjpcbiIpOwogICAgICAgICAgICAg
ZGlzYXNzZW1ibGUoCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKGhhbmRs
ZS0+c3RhcnQoKSksIGhhbmRsZS0+c2l6ZUluQnl0ZXMoKSwKQEAgLTM4NCwxNyArNTE2LDIyIEBA
IHZvaWQgY29tcGlsZShTdGF0ZSYgc3RhdGUpCiAgICAgICAgICAgICBjb25zdCBSZWZDb3VudGVk
QXJyYXk8TFNlY3Rpb25Xb3JkPiYgc2VjdGlvbiA9IHN0YXRlLmppdENvZGUtPmRhdGFTZWN0aW9u
cygpW2ldOwogICAgICAgICAgICAgZGF0YUxvZygKICAgICAgICAgICAgICAgICAiR2VuZXJhdGVk
IExMVk0gZGF0YSBzZWN0aW9uIGZvciAiLAotICAgICAgICAgICAgICAgIENvZGVCbG9ja1dpdGhK
SVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpERkdKSVQpLAorICAgICAg
ICAgICAgICAgIENvZGVCbG9ja1dpdGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBK
SVRDb2RlOjpGVExKSVQpLAogICAgICAgICAgICAgICAgICIgIyIsIGksICIsICIsIHN0YXRlLmRh
dGFTZWN0aW9uTmFtZXNbaV0sICI6XG4iKTsKICAgICAgICAgICAgIGR1bXBEYXRhU2VjdGlvbihz
ZWN0aW9uLCAiICAgICIpOwogICAgICAgICB9CiAgICAgfQogICAgIAorICAgIHN0YXRlLmppdENv
ZGUtPnVud2luZEluZm8ucGFyc2UoCisgICAgICAgIHN0YXRlLmNvbXBhY3RVbndpbmQsIHN0YXRl
LmNvbXBhY3RVbndpbmRTaXplLCBzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbik7CisgICAgaWYgKERG
Rzo6c2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkpCisgICAgICAgIGRhdGFMb2coIlVud2luZCBpbmZv
IGZvciAiLCBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklU
Q29kZTo6RlRMSklUKSwgIjpcbiAgICAiLCBzdGF0ZS5qaXRDb2RlLT51bndpbmRJbmZvLCAiXG4i
KTsKKyAgICAKICAgICBpZiAoc3RhdGUuc3RhY2ttYXBzU2VjdGlvbi5zaXplKCkpIHsKICAgICAg
ICAgaWYgKHNob3VsZFNob3dEaXNhc3NlbWJseSgpKSB7CiAgICAgICAgICAgICBkYXRhTG9nKAog
ICAgICAgICAgICAgICAgICJHZW5lcmF0ZWQgTExWTSBzdGFja21hcHMgc2VjdGlvbiBmb3IgIiwK
LSAgICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVC
bG9jaywgSklUQ29kZTo6REZHSklUKSwgIjpcbiIpOworICAgICAgICAgICAgICAgIENvZGVCbG9j
a1dpdGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpGVExKSVQpLCAi
OlxuIik7CiAgICAgICAgICAgICBkYXRhTG9nKCIgICAgUmF3IGRhdGE6XG4iKTsKICAgICAgICAg
ICAgIGR1bXBEYXRhU2VjdGlvbihzdGF0ZS5zdGFja21hcHNTZWN0aW9uLCAiICAgICIpOwogICAg
ICAgICB9CkBAIC00MjEsOCArNTU4LDkgQEAgdm9pZCBjb21waWxlKFN0YXRlJiBzdGF0ZSkKICAg
ICAgICAgICAgICAgICBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlKiBoYW5kbGUgPSBzdGF0ZS5qaXRD
b2RlLT5oYW5kbGVzKClbaV0uZ2V0KCk7CiAgICAgICAgICAgICAgICAgZGF0YUxvZygKICAgICAg
ICAgICAgICAgICAgICAgIkdlbmVyYXRlZCBMTFZNIGNvZGUgYWZ0ZXIgc3RhY2ttYXAtYmFzZWQg
Zml4LXVwIGZvciAiLAotICAgICAgICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShz
dGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklUQ29kZTo6REZHSklUKSwKLSAgICAgICAgICAgICAg
ICAgICAgIiAjIiwgaSwgIiwgIiwgc3RhdGUuY29kZVNlY3Rpb25OYW1lc1tpXSwgIjpcbiIpOwor
ICAgICAgICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2Nv
ZGVCbG9jaywgSklUQ29kZTo6RlRMSklUKSwKKyAgICAgICAgICAgICAgICAgICAgIiBpbiAiLCBz
dGF0ZS5ncmFwaC5tX3BsYW4ubW9kZSwgIiAjIiwgaSwgIiwgIiwKKyAgICAgICAgICAgICAgICAg
ICAgc3RhdGUuY29kZVNlY3Rpb25OYW1lc1tpXSwgIjpcbiIpOwogICAgICAgICAgICAgICAgIGRp
c2Fzc2VtYmxlKAogICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoaGFu
ZGxlLT5zdGFydCgpKSwgaGFuZGxlLT5zaXplSW5CeXRlcygpLAogICAgICAgICAgICAgICAgICAg
ICAiICAgICIsIFdURjo6ZGF0YUZpbGUoKSwgTExWTVN1YnNldCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5jcHAKaW5kZXggYTk4N2M2MGNlNDdjZDllMTI5OWIwNTY2
NGMzMmUyNWRiY2VjNjAwYy4uNzIxZjY0MzkzNWM2YmExMDdkYjcyMGI5ZDQxOTY5ZWVlMjZhNWQz
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVlLmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTksNiAr
NTksOSBAQCB2b2lkIEV4aXRWYWx1ZTo6ZHVtcEluQ29udGV4dChQcmludFN0cmVhbSYgb3V0LCBE
dW1wQ29udGV4dCogY29udGV4dCkgY29uc3QKICAgICBjYXNlIEV4aXRWYWx1ZUluSlNTdGFja0Fz
RG91YmxlOgogICAgICAgICBvdXQucHJpbnQoIkluSlNTdGFja0FzRG91YmxlOnIiLCB2aXJ0dWFs
UmVnaXN0ZXIoKSk7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEV4aXRWYWx1ZVJlY292ZXJ5
OgorICAgICAgICBvdXQucHJpbnQoIlJlY292ZXJ5KCIsIHJlY292ZXJ5T3Bjb2RlKCksICIsIGFy
ZyIsIGxlZnRSZWNvdmVyeUFyZ3VtZW50KCksICIsIGFyZyIsIHJpZ2h0UmVjb3ZlcnlBcmd1bWVu
dCgpLCAiLCAiLCByZWNvdmVyeUZvcm1hdCgpLCAiKSIpOworICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuaAppbmRleCA3YWFhZWRkOGQxZjk5YmEwNWNlY2I2OWUz
Mzc0YTkzZTEzMTg4ZWRmLi44MjNmOGE0MjQyYzI2NmY0MDY0YjAyOTI2ZmRkYTgwMWRhMmJlNWMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVlLmgKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDYgKzMxLDcg
QEAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAogI2luY2x1ZGUgIkZUTEV4aXRBcmd1bWVudC5oIgor
I2luY2x1ZGUgIkZUTFJlY292ZXJ5T3Bjb2RlLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgog
I2luY2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5o
PgpAQCAtNTEsNyArNTIsOCBAQCBlbnVtIEV4aXRWYWx1ZUtpbmQgewogICAgIEV4aXRWYWx1ZUlu
SlNTdGFjaywKICAgICBFeGl0VmFsdWVJbkpTU3RhY2tBc0ludDMyLAogICAgIEV4aXRWYWx1ZUlu
SlNTdGFja0FzSW50NTIsCi0gICAgRXhpdFZhbHVlSW5KU1N0YWNrQXNEb3VibGUKKyAgICBFeGl0
VmFsdWVJbkpTU3RhY2tBc0RvdWJsZSwKKyAgICBFeGl0VmFsdWVSZWNvdmVyeQogfTsKIAogY2xh
c3MgRXhpdFZhbHVlIHsKQEAgLTExOCw2ICsxMjAsMTcgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgIH0KICAgICAKKyAgICBzdGF0aWMgRXhpdFZhbHVlIHJlY292ZXJ5KFJl
Y292ZXJ5T3Bjb2RlIG9wY29kZSwgdW5zaWduZWQgbGVmdEFyZ3VtZW50LCB1bnNpZ25lZCByaWdo
dEFyZ3VtZW50LCBWYWx1ZUZvcm1hdCBmb3JtYXQpCisgICAgeworICAgICAgICBFeGl0VmFsdWUg
cmVzdWx0OworICAgICAgICByZXN1bHQubV9raW5kID0gRXhpdFZhbHVlUmVjb3Zlcnk7CisgICAg
ICAgIHJlc3VsdC51LnJlY292ZXJ5Lm9wY29kZSA9IG9wY29kZTsKKyAgICAgICAgcmVzdWx0LnUu
cmVjb3ZlcnkubGVmdEFyZ3VtZW50ID0gbGVmdEFyZ3VtZW50OworICAgICAgICByZXN1bHQudS5y
ZWNvdmVyeS5yaWdodEFyZ3VtZW50ID0gcmlnaHRBcmd1bWVudDsKKyAgICAgICAgcmVzdWx0LnUu
cmVjb3ZlcnkuZm9ybWF0ID0gZm9ybWF0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0K
KyAgICAKICAgICBFeGl0VmFsdWVLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0K
ICAgICAKICAgICBib29sIGlzRGVhZCgpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBFeGl0VmFs
dWVEZWFkOyB9CkBAIC0xMzUsNiArMTQ4LDcgQEAgcHVibGljOgogICAgIH0KICAgICBib29sIGlz
Q29uc3RhbnQoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gRXhpdFZhbHVlQ29uc3RhbnQ7IH0K
ICAgICBib29sIGlzQXJndW1lbnQoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gRXhpdFZhbHVl
QXJndW1lbnQ7IH0KKyAgICBib29sIGlzUmVjb3ZlcnkoKSBjb25zdCB7IHJldHVybiBraW5kKCkg
PT0gRXhpdFZhbHVlUmVjb3Zlcnk7IH0KICAgICAKICAgICBFeGl0QXJndW1lbnQgZXhpdEFyZ3Vt
ZW50KCkgY29uc3QKICAgICB7CkBAIC0xNDIsNiArMTU2LDMwIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIEV4aXRBcmd1bWVudCh1LmFyZ3VtZW50KTsKICAgICB9CiAgICAgCisgICAgdW5zaWdu
ZWQgbGVmdFJlY292ZXJ5QXJndW1lbnQoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlz
UmVjb3ZlcnkoKSk7CisgICAgICAgIHJldHVybiB1LnJlY292ZXJ5LmxlZnRBcmd1bWVudDsKKyAg
ICB9CisgICAgCisgICAgdW5zaWduZWQgcmlnaHRSZWNvdmVyeUFyZ3VtZW50KCkgY29uc3QKKyAg
ICB7CisgICAgICAgIEFTU0VSVChpc1JlY292ZXJ5KCkpOworICAgICAgICByZXR1cm4gdS5yZWNv
dmVyeS5yaWdodEFyZ3VtZW50OworICAgIH0KKyAgICAKKyAgICBWYWx1ZUZvcm1hdCByZWNvdmVy
eUZvcm1hdCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNSZWNvdmVyeSgpKTsKKyAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFZhbHVlRm9ybWF0Pih1LnJlY292ZXJ5LmZvcm1hdCk7
CisgICAgfQorICAgIAorICAgIFJlY292ZXJ5T3Bjb2RlIHJlY292ZXJ5T3Bjb2RlKCkgY29uc3QK
KyAgICB7CisgICAgICAgIEFTU0VSVChpc1JlY292ZXJ5KCkpOworICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8UmVjb3ZlcnlPcGNvZGU+KHUucmVjb3Zlcnkub3Bjb2RlKTsKKyAgICB9CisgICAg
CiAgICAgSlNWYWx1ZSBjb25zdGFudCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXND
b25zdGFudCgpKTsKQEAgLTE1Myw2ICsxOTEsMTUgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQo
aXNJbkpTU3RhY2tTb21laG93KCkpOwogICAgICAgICByZXR1cm4gVmlydHVhbFJlZ2lzdGVyKHUu
dmlydHVhbFJlZ2lzdGVyKTsKICAgICB9CisgICAgCisgICAgRXhpdFZhbHVlIHdpdGhWaXJ0dWFs
UmVnaXN0ZXIoVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlcikKKyAgICB7CisgICAgICAg
IEFTU0VSVChpc0luSlNTdGFja1NvbWVob3coKSk7CisgICAgICAgIEV4aXRWYWx1ZSByZXN1bHQ7
CisgICAgICAgIHJlc3VsdC5tX2tpbmQgPSBtX2tpbmQ7CisgICAgICAgIHJlc3VsdC51LnZpcnR1
YWxSZWdpc3RlciA9IHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQoKTsKKyAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICB9CiAKICAgICAvLyBJZiBpdCdzIGluIHRoZSBKU1N0YWNrIHNvbWVob3csIHRo
aXMgd2lsbCB0ZWxsIHlvdSB3aGF0IGZvcm1hdCBpdCdzIGluLCBpbiBhIG1hbm5lcgogICAgIC8v
IHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIGV4aXRBcmd1bWVudCgpLmZvcm1hdCgpLiBJZiBpdCdz
IGEgY29uc3RhbnQgb3IgaXQncyBkZWFkLCBpdApAQCAtMTgxLDYgKzIyOCw5IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEV4aXRWYWx1ZUluSlNTdGFja0FzRG91YmxlOgog
ICAgICAgICAgICAgcmV0dXJuIFZhbHVlRm9ybWF0RG91YmxlOworICAgICAgICAgICAgCisgICAg
ICAgIGNhc2UgRXhpdFZhbHVlUmVjb3Zlcnk6CisgICAgICAgICAgICByZXR1cm4gcmVjb3ZlcnlG
b3JtYXQoKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTE5Niw2ICsyNDYsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgRXhpdEFy
Z3VtZW50UmVwcmVzZW50YXRpb24gYXJndW1lbnQ7CiAgICAgICAgIEVuY29kZWRKU1ZhbHVlIGNv
bnN0YW50OwogICAgICAgICBpbnQgdmlydHVhbFJlZ2lzdGVyOworICAgICAgICBzdHJ1Y3Qgewor
ICAgICAgICAgICAgdWludDE2X3QgbGVmdEFyZ3VtZW50OworICAgICAgICAgICAgdWludDE2X3Qg
cmlnaHRBcmd1bWVudDsKKyAgICAgICAgICAgIHVpbnQxNl90IG9wY29kZTsKKyAgICAgICAgICAg
IHVpbnQxNl90IGZvcm1hdDsKKyAgICAgICAgfSByZWNvdmVyeTsKICAgICB9IHU7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAKaW5k
ZXggODJkNGJlNTZhN2IzN2FjOGE1YWIwNGY0NmM2YjFiYzUzMjBjMTMwNy4uYWI4MjU2MTI3Nzkz
NGIyMWZlMDdkNWYyMzRkZTM2MjNjNThkMTFiNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmNwcApAQCAtNDcsNiArNDcsMTEgQEAgc2l6ZV90
IHNpemVPZlB1dEJ5SWQoKQogICAgIHJldHVybiAzMjsKIH0KIAorc2l6ZV90IHNpemVPZkNhbGwo
KQoreworICAgIHJldHVybiA0MzsKK30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCiAj
ZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExJbmxpbmVDYWNoZVNpemUuaAppbmRleCBhYWMwZjNlOTM3YjBhZTZlZDEyODIyOWQyNGI5N2Rk
MDNkODFmZTAxLi43YzdjMTg5NzI1ZTRjYWM3NGM3MWM2YzhiNDI3OWUyYjAzZTc1Mjg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmgKQEAgLTMy
LDYgKzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogCiBzaXplX3Qgc2l6
ZU9mR2V0QnlJZCgpOwogc2l6ZV90IHNpemVPZlB1dEJ5SWQoKTsKK3NpemVfdCBzaXplT2ZDYWxs
KCk7CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaAppbmRleCA3ZjU2MGRkOTVhNWZi
ZWFjYjJiNjU1ZmJmNzE1ZWRjZGM4ZjJhYWU0Li5jNTBkOTRiNzEyYTRjYmY3NGI5Nzk1NGEwOTEz
OTYwNzE2NTEwYmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElu
dHJpbnNpY1JlcG9zaXRvcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElu
dHJpbnNpY1JlcG9zaXRvcnkuaApAQCAtNDAsMTcgKzQwLDI1IEBAIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgRlRMIHsKICAgICBtYWNybyhhZGRXaXRoT3ZlcmZsb3czMiwgImxsdm0uc2FkZC53
aXRoLm92ZXJmbG93LmkzMiIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50
MzIsIGJvb2xlYW4pLCBpbnQzMiwgaW50MzIpKSBcCiAgICAgbWFjcm8oYWRkV2l0aE92ZXJmbG93
NjQsICJsbHZtLnNhZGQud2l0aC5vdmVyZmxvdy5pNjQiLCBmdW5jdGlvblR5cGUoc3RydWN0VHlw
ZShtX2NvbnRleHQsIGludDY0LCBib29sZWFuKSwgaW50NjQsIGludDY0KSkgXAogICAgIG1hY3Jv
KGRvdWJsZUFicywgImxsdm0uZmFicy5mNjQiLCBmdW5jdGlvblR5cGUoZG91YmxlVHlwZSwgZG91
YmxlVHlwZSkpIFwKKyAgICBtYWNybyhkb3VibGVTaW4sICJsbHZtLnNpbi5mNjQiLCBmdW5jdGlv
blR5cGUoZG91YmxlVHlwZSwgZG91YmxlVHlwZSkpIFwKKyAgICBtYWNybyhkb3VibGVDb3MsICJs
bHZtLmNvcy5mNjQiLCBmdW5jdGlvblR5cGUoZG91YmxlVHlwZSwgZG91YmxlVHlwZSkpIFwKKyAg
ICBtYWNybyhkb3VibGVTcXJ0LCAibGx2bS5zcXJ0LmY2NCIsIGZ1bmN0aW9uVHlwZShkb3VibGVU
eXBlLCBkb3VibGVUeXBlKSkgXAorICAgIG1hY3JvKGZyYW1lQWRkcmVzcywgImxsdm0uZnJhbWVh
ZGRyZXNzIiwgZnVuY3Rpb25UeXBlKHBvaW50ZXJUeXBlKGludDgpLCBpbnQzMikpIFwKICAgICBt
YWNybyhtdWxXaXRoT3ZlcmZsb3czMiwgImxsdm0uc211bC53aXRoLm92ZXJmbG93LmkzMiIsIGZ1
bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50MzIsIGJvb2xlYW4pLCBpbnQzMiwg
aW50MzIpKSBcCiAgICAgbWFjcm8obXVsV2l0aE92ZXJmbG93NjQsICJsbHZtLnNtdWwud2l0aC5v
dmVyZmxvdy5pNjQiLCBmdW5jdGlvblR5cGUoc3RydWN0VHlwZShtX2NvbnRleHQsIGludDY0LCBi
b29sZWFuKSwgaW50NjQsIGludDY0KSkgXAotICAgIG1hY3JvKHBhdGNocG9pbnRJbnQ2NCwgImxs
dm0uZXhwZXJpbWVudGFsLnBhdGNocG9pbnQuaTY0IiwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnQz
MiwgaW50MzIsIHJlZjgsIGludDMyLCBWYXJpYWRpYykpIFwKLSAgICBtYWNybyhwYXRjaHBvaW50
Vm9pZCwgImxsdm0uZXhwZXJpbWVudGFsLnBhdGNocG9pbnQudm9pZCIsIGZ1bmN0aW9uVHlwZSh2
b2lkVHlwZSwgaW50MzIsIGludDMyLCByZWY4LCBpbnQzMiwgVmFyaWFkaWMpKSBcCi0gICAgbWFj
cm8oc3RhY2ttYXAsICJsbHZtLmV4cGVyaW1lbnRhbC5zdGFja21hcCIsIGZ1bmN0aW9uVHlwZSh2
b2lkVHlwZSwgaW50MzIsIGludDMyLCBWYXJpYWRpYykpIFwKKyAgICBtYWNybyhwYXRjaHBvaW50
SW50NjQsICJsbHZtLmV4cGVyaW1lbnRhbC5wYXRjaHBvaW50Lmk2NCIsIGZ1bmN0aW9uVHlwZShp
bnQ2NCwgaW50NjQsIGludDMyLCByZWY4LCBpbnQzMiwgVmFyaWFkaWMpKSBcCisgICAgbWFjcm8o
cGF0Y2hwb2ludFZvaWQsICJsbHZtLmV4cGVyaW1lbnRhbC5wYXRjaHBvaW50LnZvaWQiLCBmdW5j
dGlvblR5cGUodm9pZFR5cGUsIGludDY0LCBpbnQzMiwgcmVmOCwgaW50MzIsIFZhcmlhZGljKSkg
XAorICAgIG1hY3JvKHN0YWNrbWFwLCAibGx2bS5leHBlcmltZW50YWwuc3RhY2ttYXAiLCBmdW5j
dGlvblR5cGUodm9pZFR5cGUsIGludDY0LCBpbnQzMiwgVmFyaWFkaWMpKSBcCiAgICAgbWFjcm8o
c3ViV2l0aE92ZXJmbG93MzIsICJsbHZtLnNzdWIud2l0aC5vdmVyZmxvdy5pMzIiLCBmdW5jdGlv
blR5cGUoc3RydWN0VHlwZShtX2NvbnRleHQsIGludDMyLCBib29sZWFuKSwgaW50MzIsIGludDMy
KSkgXAogICAgIG1hY3JvKHN1YldpdGhPdmVyZmxvdzY0LCAibGx2bS5zc3ViLndpdGgub3ZlcmZs
b3cuaTY0IiwgZnVuY3Rpb25UeXBlKHN0cnVjdFR5cGUobV9jb250ZXh0LCBpbnQ2NCwgYm9vbGVh
biksIGludDY0LCBpbnQ2NCkpIFwKICAgICBtYWNybyh0cmFwLCAibGx2bS50cmFwIiwgZnVuY3Rp
b25UeXBlKHZvaWRUeXBlKSkgXAogICAgIG1hY3JvKHg4NlNTRTJDdnRUU0QyU0ksICJsbHZtLng4
Ni5zc2UyLmN2dHRzZDJzaSIsIGZ1bmN0aW9uVHlwZShpbnQzMiwgdmVjdG9yVHlwZShkb3VibGVU
eXBlLCAyKSkpCiAKICNkZWZpbmUgRk9SX0VBQ0hfRlVOQ1RJT05fVFlQRShtYWNybykgXAorICAg
IG1hY3JvKENfSklUT3BlcmF0aW9uX0VDLCBmdW5jdGlvblR5cGUoaW50UHRyLCBpbnRQdHIsIGlu
dFB0cikpIFwKKyAgICBtYWNybyhDX0pJVE9wZXJhdGlvbl9FSiwgZnVuY3Rpb25UeXBlKGludFB0
ciwgaW50UHRyLCBpbnQ2NCkpIFwKKyAgICBtYWNybyhDX0pJVE9wZXJhdGlvbl9FSnNzSnNzLCBm
dW5jdGlvblR5cGUoaW50UHRyLCBpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAorICAgIG1hY3Jv
KENfSklUT3BlcmF0aW9uX0VKc3NKc3NKc3MsIGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwg
aW50UHRyLCBpbnRQdHIsIGludFB0cikpIFwKICAgICBtYWNybyhDX0pJVE9wZXJhdGlvbl9FU3Qs
IGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAogICAgIG1hY3JvKElfSklU
T3BlcmF0aW9uX0VKc3MsIGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAog
ICAgIG1hY3JvKEpfSklUT3BlcmF0aW9uX0UsIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyKSkg
XApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29kZS5jcHAKaW5kZXggY2RjN2RlMGMz
NWYzNDk0ZWE1ZWFmOWU0Y2U4ZGFkYjJhM2RmMGMwYy4uZWRiYmIzMTVhMmEwN2VhOWRkNzU4NWU0
ZTRjOWQyY2Y1ZGZkZmE1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExKSVRDb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUu
Y3BwCkBAIC01NCwyNyArNTQsMzUgQEAgdm9pZCBKSVRDb2RlOjphZGREYXRhU2VjdGlvbihSZWZD
b3VudGVkQXJyYXk8TFNlY3Rpb25Xb3JkPiBkYXRhU2VjdGlvbikKICAgICBtX2RhdGFTZWN0aW9u
cy5hcHBlbmQoZGF0YVNlY3Rpb24pOwogfQogCi12b2lkIEpJVENvZGU6OmluaXRpYWxpemVDb2Rl
KENvZGVSZWYgZW50cnlwb2ludCkKK3ZvaWQgSklUQ29kZTo6aW5pdGlhbGl6ZUFyaXR5Q2hlY2tF
bnRyeXBvaW50KENvZGVSZWYgZW50cnlwb2ludCkKIHsKLSAgICBtX2VudHJ5cG9pbnQgPSBlbnRy
eXBvaW50OworICAgIG1fYXJpdHlDaGVja0VudHJ5cG9pbnQgPSBlbnRyeXBvaW50OwogfQogCi1K
SVRDb2RlOjpDb2RlUHRyIEpJVENvZGU6OmFkZHJlc3NGb3JDYWxsKCkKK3ZvaWQgSklUQ29kZTo6
aW5pdGlhbGl6ZUFkZHJlc3NGb3JDYWxsKENvZGVQdHIgYWRkcmVzcykKIHsKLSAgICBSRUxFQVNF
X0FTU0VSVChtX2VudHJ5cG9pbnQpOwotICAgIHJldHVybiBtX2VudHJ5cG9pbnQuY29kZSgpOwor
ICAgIG1fYWRkcmVzc0ZvckNhbGwgPSBhZGRyZXNzOworfQorCitKSVRDb2RlOjpDb2RlUHRyIEpJ
VENvZGU6OmFkZHJlc3NGb3JDYWxsKFZNJiwgRXhlY3V0YWJsZUJhc2UqLCBBcml0eUNoZWNrTW9k
ZSBhcml0eUNoZWNrLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUpCit7CisgICAgc3dpdGNoIChh
cml0eUNoZWNrKSB7CisgICAgY2FzZSBBcml0eUNoZWNrTm90UmVxdWlyZWQ6CisgICAgICAgIHJl
dHVybiBtX2FkZHJlc3NGb3JDYWxsOworICAgIGNhc2UgTXVzdENoZWNrQXJpdHk6CisgICAgICAg
IHJldHVybiBtX2FyaXR5Q2hlY2tFbnRyeXBvaW50LmNvZGUoKTsKKyAgICB9CisgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQ29kZVB0cigpOwogfQogCiB2b2lk
KiBKSVRDb2RlOjpleGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpCiB7Ci0g
ICAgUkVMRUFTRV9BU1NFUlQobV9lbnRyeXBvaW50KTsKLSAgICByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxjaGFyKj4obV9lbnRyeXBvaW50LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSArIG9m
ZnNldDsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9hZGRyZXNzRm9yQ2Fs
bC5leGVjdXRhYmxlQWRkcmVzcygpKSArIG9mZnNldDsKIH0KIAogdm9pZCogSklUQ29kZTo6ZGF0
YUFkZHJlc3NBdE9mZnNldChzaXplX3QpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9lbnRyeXBv
aW50KTsKLQogICAgIC8vIFdlIGNhbid0IHBhdGNoIEZUTCBjb2RlLCB5ZXQuIEV2ZW4gaWYgd2Ug
ZGlkLCBpdCdzIG5vdCBjbGVhciB0aGF0IHdlIHdvdWxkIGRvIHNvCiAgICAgLy8gdGhyb3VnaCB0
aGlzIEFQSS4KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtODMsOCArOTEs
NiBAQCB2b2lkKiBKSVRDb2RlOjpkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCkKIAogdW5zaWdu
ZWQgSklUQ29kZTo6b2Zmc2V0T2Yodm9pZCopCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9lbnRy
eXBvaW50KTsKLQogICAgIC8vIFdlIGN1cnJlbnRseSBkb24ndCBoYXZlIHZpc2liaWxpdHkgaW50
byB0aGUgRlRMIGNvZGUuCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICBy
ZXR1cm4gMDsKQEAgLTkyLDggKzk4LDYgQEAgdW5zaWduZWQgSklUQ29kZTo6b2Zmc2V0T2Yodm9p
ZCopCiAKIHNpemVfdCBKSVRDb2RlOjpzaXplKCkKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2Vu
dHJ5cG9pbnQpOwotCiAgICAgLy8gV2UgZG9uJ3Qga25vdyB0aGUgc2l6ZSBvZiBGVEwgY29kZSwg
eWV0LiBNYWtlIGEgd2lsZCBndWVzcy4gVGhpcyBpcyBtb3N0bHkgdXNlZCBmb3IKICAgICAvLyBH
QyBsb2FkIGVzdGltYXRlcy4KICAgICByZXR1cm4gMTAwMDsKQEAgLTEwMSw4ICsxMDUsNiBAQCBz
aXplX3QgSklUQ29kZTo6c2l6ZSgpCiAKIGJvb2wgSklUQ29kZTo6Y29udGFpbnModm9pZCopCiB7
Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9lbnRyeXBvaW50KTsKLQogICAgIC8vIFdlIGhhdmUgbm8g
aWRlYSB3aGF0IGFkZHJlc3NlcyB0aGUgRlRMIGNvZGUgY29udGFpbnMsIHlldC4KICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29kZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgKaW5kZXggM2U3MjEzOTgzYjg1NTQzM2MwMjk4MmEzYzBj
NWJjMDYzYjM1MDIyMS4uNzEzMDQwMGI2NTU1Mjc1MzA1MWI4ZjZkMTRhMGViN2FhZDE0OWViNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgKQEAgLTMzLDYgKzMzLDcgQEAK
ICNpbmNsdWRlICJERkdDb21tb25EYXRhLmgiCiAjaW5jbHVkZSAiRlRMT1NSRXhpdC5oIgogI2lu
Y2x1ZGUgIkZUTFN0YWNrTWFwcy5oIgorI2luY2x1ZGUgIkZUTFVud2luZEluZm8uaCIKICNpbmNs
dWRlICJKSVRDb2RlLmgiCiAjaW5jbHVkZSAiTExWTUFQSS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkQXJyYXkuaD4KQEAgLTQ2LDE3ICs0NywxOCBAQCBwdWJsaWM6CiAgICAgSklUQ29kZSgp
OwogICAgIH5KSVRDb2RlKCk7CiAgICAgCi0gICAgQ29kZVB0ciBhZGRyZXNzRm9yQ2FsbCgpOwot
ICAgIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCk7Ci0gICAg
dm9pZCogZGF0YUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KTsKLSAgICB1bnNpZ25lZCBv
ZmZzZXRPZih2b2lkKiBwb2ludGVySW50b0NvZGUpOwotICAgIHNpemVfdCBzaXplKCk7Ci0gICAg
Ym9vbCBjb250YWlucyh2b2lkKik7CisgICAgQ29kZVB0ciBhZGRyZXNzRm9yQ2FsbChWTSYsIEV4
ZWN1dGFibGVCYXNlKiwgQXJpdHlDaGVja01vZGUsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSkg
b3ZlcnJpZGU7CisgICAgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zm
c2V0KSBvdmVycmlkZTsKKyAgICB2b2lkKiBkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZz
ZXQpIG92ZXJyaWRlOworICAgIHVuc2lnbmVkIG9mZnNldE9mKHZvaWQqIHBvaW50ZXJJbnRvQ29k
ZSkgb3ZlcnJpZGU7CisgICAgc2l6ZV90IHNpemUoKSBvdmVycmlkZTsKKyAgICBib29sIGNvbnRh
aW5zKHZvaWQqKSBvdmVycmlkZTsKICAgICAKICAgICB2b2lkIGluaXRpYWxpemVFeGl0VGh1bmtz
KENvZGVSZWYpOwogICAgIHZvaWQgYWRkSGFuZGxlKFBhc3NSZWZQdHI8RXhlY3V0YWJsZU1lbW9y
eUhhbmRsZT4pOwogICAgIHZvaWQgYWRkRGF0YVNlY3Rpb24oUmVmQ291bnRlZEFycmF5PExTZWN0
aW9uV29yZD4pOwotICAgIHZvaWQgaW5pdGlhbGl6ZUNvZGUoQ29kZVJlZiBlbnRyeXBvaW50KTsK
KyAgICB2b2lkIGluaXRpYWxpemVBcml0eUNoZWNrRW50cnlwb2ludChDb2RlUmVmKTsKKyAgICB2
b2lkIGluaXRpYWxpemVBZGRyZXNzRm9yQ2FsbChDb2RlUHRyKTsKICAgICAKICAgICBjb25zdCBW
ZWN0b3I8UmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+PiYgaGFuZGxlcygpIGNvbnN0IHsg
cmV0dXJuIG1faGFuZGxlczsgfQogICAgIGNvbnN0IFZlY3RvcjxSZWZDb3VudGVkQXJyYXk8TFNl
Y3Rpb25Xb3JkPj4mIGRhdGFTZWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YVNlY3Rpb25z
OyB9CkBAIC02OSwxMSArNzEsMTMgQEAgcHVibGljOgogICAgIERGRzo6Q29tbW9uRGF0YSBjb21t
b247CiAgICAgU2VnbWVudGVkVmVjdG9yPE9TUkV4aXQsIDg+IG9zckV4aXQ7CiAgICAgU3RhY2tN
YXBzIHN0YWNrbWFwczsKKyAgICBVbndpbmRJbmZvIHVud2luZEluZm87CiAgICAgCiBwcml2YXRl
OgogICAgIFZlY3RvcjxSZWZDb3VudGVkQXJyYXk8TFNlY3Rpb25Xb3JkPj4gbV9kYXRhU2VjdGlv
bnM7CiAgICAgVmVjdG9yPFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPj4gbV9oYW5kbGVz
OwotICAgIENvZGVSZWYgbV9lbnRyeXBvaW50OworICAgIENvZGVQdHIgbV9hZGRyZXNzRm9yQ2Fs
bDsKKyAgICBDb2RlUmVmIG1fYXJpdHlDaGVja0VudHJ5cG9pbnQ7CiAgICAgQ29kZVJlZiBtX2V4
aXRUaHVua3M7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEpJVEZpbmFsaXplci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFs
aXplci5jcHAKaW5kZXggYThhOTliNjNhMzY0M2Q2MDE3NzZhNjg3NmE1ZTBmZTIzOTlkYTNmNC4u
NTBkNWVlMjgzYWMzNWVmYWMzMGZiMDgwOTI5ZDljZTFiNjllODYyNiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDUsNiArNDUsMjIgQEAgSklU
RmluYWxpemVyOjp+SklURmluYWxpemVyKCkKIHsKIH0KIAorc2l6ZV90IEpJVEZpbmFsaXplcjo6
Y29kZVNpemUoKQoreworICAgIHNpemVfdCByZXN1bHQgPSAwOworICAgIAorICAgIHJlc3VsdCAr
PSBleGl0VGh1bmtzTGlua0J1ZmZlci0+c2l6ZSgpOworICAgIHJlc3VsdCArPSBlbnRyeXBvaW50
TGlua0J1ZmZlci0+c2l6ZSgpOworICAgIGlmIChzaWRlQ29kZUxpbmtCdWZmZXIpCisgICAgICAg
IHJlc3VsdCArPSBzaWRlQ29kZUxpbmtCdWZmZXItPnNpemUoKTsKKyAgICByZXN1bHQgKz0gaGFu
ZGxlRXhjZXB0aW9uc0xpbmtCdWZmZXItPnNpemUoKTsKKyAgICAKKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSBqaXRDb2RlLT5oYW5kbGVzKCkuc2l6ZSgpOyBpLS07KQorICAgICAgICByZXN1bHQgKz0g
aml0Q29kZS0+aGFuZGxlcygpW2ldLT5zaXplSW5CeXRlcygpOworICAgIAorICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKIGJvb2wgSklURmluYWxpemVyOjpmaW5hbGl6ZSgpCiB7CiAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTczLDkgKzg5LDcgQEAgYm9vbCBKSVRGaW5hbGl6
ZXI6OmZpbmFsaXplRnVuY3Rpb24oKQogICAgICAgICAgICAgZXhpdFRodW5rc0xpbmtCdWZmZXIt
PmxpbmsoCiAgICAgICAgICAgICAgICAgaW5mby5tX3RodW5rSnVtcCwKICAgICAgICAgICAgICAg
ICBDb2RlTG9jYXRpb25MYWJlbCgKLSAgICAgICAgICAgICAgICAgICAgbV9wbGFuLnZtLmZ0bFRo
dW5rcy0+Z2V0T1NSRXhpdEdlbmVyYXRpb25UaHVuaygKLSAgICAgICAgICAgICAgICAgICAgICAg
IG1fcGxhbi52bSwgTG9jYXRpb246OmZvclN0YWNrbWFwcygKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmaml0Q29kZS0+c3RhY2ttYXBzLCBpdGVyLT52YWx1ZS5sb2NhdGlvbnNbMF0pKS5j
b2RlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9wbGFuLnZtLmdldENUSVN0dWIob3NyRXhp
dEdlbmVyYXRpb25UaHVua0dlbmVyYXRvcikuY29kZSgpKSk7CiAgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIGppdENvZGUtPmluaXRpYWxpemVFeGl0VGh1bmtzKApAQCAtMTAyLDE1ICsxMTYs
MjYgQEAgYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplRnVuY3Rpb24oKQogICAgICAgICAgICAg
LmV4ZWN1dGFibGVNZW1vcnkoKSk7CiAgICAgfQogICAgIAorICAgIGlmIChoYW5kbGVFeGNlcHRp
b25zTGlua0J1ZmZlcikgeworICAgICAgICBqaXRDb2RlLT5hZGRIYW5kbGUoRklOQUxJWkVfREZH
X0NPREUoCisgICAgICAgICAgICAqaGFuZGxlRXhjZXB0aW9uc0xpbmtCdWZmZXIsCisgICAgICAg
ICAgICAoIkZUTCBleGNlcHRpb24gaGFuZGxlciBmb3IgJXMiLAorICAgICAgICAgICAgICAgIHRv
Q1N0cmluZyhDb2RlQmxvY2tXaXRoSklUVHlwZShtX3BsYW4uY29kZUJsb2NrLmdldCgpLCBKSVRD
b2RlOjpGVExKSVQpKS5kYXRhKCkpKQorICAgICAgICAgICAgLmV4ZWN1dGFibGVNZW1vcnkoKSk7
CisgICAgfQorICAgIAogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciB3aXRoQXJpdHlDaGVjazsK
ICAgICBpZiAoYXJpdHlDaGVjay5pc1NldCgpKQogICAgICAgICB3aXRoQXJpdHlDaGVjayA9IGVu
dHJ5cG9pbnRMaW5rQnVmZmVyLT5sb2NhdGlvbk9mKGFyaXR5Q2hlY2spOwotICAgIGppdENvZGUt
PmluaXRpYWxpemVDb2RlKAorICAgIGppdENvZGUtPmluaXRpYWxpemVBcml0eUNoZWNrRW50cnlw
b2ludCgKICAgICAgICAgRklOQUxJWkVfREZHX0NPREUoCiAgICAgICAgICAgICAqZW50cnlwb2lu
dExpbmtCdWZmZXIsCiAgICAgICAgICAgICAoIkZUTCBlbnRyeXBvaW50IHRodW5rIGZvciAlcyB3
aXRoIExMVk0gZ2VuZXJhdGVkIGNvZGUgYXQgJXAiLCB0b0NTdHJpbmcoQ29kZUJsb2NrV2l0aEpJ
VFR5cGUobV9wbGFuLmNvZGVCbG9jay5nZXQoKSwgSklUQ29kZTo6RlRMSklUKSkuZGF0YSgpLCBm
dW5jdGlvbikpKTsKICAgICAKLSAgICBtX3BsYW4uY29kZUJsb2NrLT5zZXRKSVRDb2RlKGppdENv
ZGUsIHdpdGhBcml0eUNoZWNrKTsKKyAgICBtX3BsYW4uY29kZUJsb2NrLT5zZXRKSVRDb2RlKGpp
dENvZGUpOworICAgIAorICAgIGlmIChtX3BsYW4uY29tcGlsYXRpb24pCisgICAgICAgIG1fcGxh
bi52bS5tX3BlckJ5dGVjb2RlUHJvZmlsZXItPmFkZENvbXBpbGF0aW9uKG1fcGxhbi5jb21waWxh
dGlvbik7CiAgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExKSVRGaW5hbGl6ZXIuaAppbmRleCBhN2VjZDk0ODYwNTJhZGUwMGYwNDA1ZDkwZDMw
MjMyMDVjNTRiYzM4Li5iYTQ0NTFlZDkwNzc1Yzc1ZDQ1ZDhjODE1NmQxZGFhZWZhYjMwMjQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmgKQEAgLTQ2LDEy
ICs0NiwxNCBAQCBwdWJsaWM6CiAgICAgSklURmluYWxpemVyKERGRzo6UGxhbiYpOwogICAgIHZp
cnR1YWwgfkpJVEZpbmFsaXplcigpOwogICAgIAotICAgIGJvb2wgZmluYWxpemUoKTsKLSAgICBi
b29sIGZpbmFsaXplRnVuY3Rpb24oKTsKKyAgICBzaXplX3QgY29kZVNpemUoKSBvdmVycmlkZTsK
KyAgICBib29sIGZpbmFsaXplKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBmaW5hbGl6ZUZ1bmN0aW9u
KCkgb3ZlcnJpZGU7CiAKICAgICBPd25QdHI8TGlua0J1ZmZlcj4gZXhpdFRodW5rc0xpbmtCdWZm
ZXI7CiAgICAgT3duUHRyPExpbmtCdWZmZXI+IGVudHJ5cG9pbnRMaW5rQnVmZmVyOwogICAgIE93
blB0cjxMaW5rQnVmZmVyPiBzaWRlQ29kZUxpbmtCdWZmZXI7CisgICAgT3duUHRyPExpbmtCdWZm
ZXI+IGhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyOwogICAgIFZlY3RvcjxTbG93UGF0aENhbGw+
IHNsb3dQYXRoQ2FsbHM7IC8vIENhbGxzIGluc2lkZSB0aGUgc2lkZSBjb2RlLgogICAgIFZlY3Rv
cjxPU1JFeGl0Q29tcGlsYXRpb25JbmZvPiBvc3JFeGl0OwogICAgIE1hY3JvQXNzZW1ibGVyOjpM
YWJlbCBhcml0eUNoZWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExKU0NhbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKU0NhbGwuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjllYTBiM2U2NmQ4ZmQwM2FjYTQzNzM1NDNkOThjMDYzMzQyZjdlZWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpTQ2FsbC5jcHAKQEAg
LTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRlRMSlNDYWxsLmgiCisKKyNpZiBF
TkFCTEUoRlRMX0pJVCkKKworI2luY2x1ZGUgIkRGR05vZGUuaCIKKworbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBGVEwgeworCitKU0NhbGw6OkpTQ2FsbCh1bnNpZ25lZCBzdGFja21hcElELCBE
Rkc6Ok5vZGUqIG5vZGUpCisgICAgOiBtX3N0YWNrbWFwSUQoc3RhY2ttYXBJRCkKKyAgICAsIG1f
bm9kZShub2RlKQorICAgICwgbV9pbnN0cnVjdGlvbk9mZnNldCgwKQoreworfQorCit2b2lkIEpT
Q2FsbDo6ZW1pdChDQ2FsbEhlbHBlcnMmIGppdCkKK3sKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAg
c2xvd1BhdGggPSBqaXQuYnJhbmNoUHRyV2l0aFBhdGNoKAorICAgICAgICBDQ2FsbEhlbHBlcnM6
Ok5vdEVxdWFsLCBHUFJJbmZvOjpyZWdUMCwgbV90YXJnZXRUb0NoZWNrLAorICAgICAgICBDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoMCkpOworICAgIAorICAgIGppdC5sb2FkUHRyKAorICAg
ICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIEpTRnVuY3Rpb246Om9m
ZnNldE9mU2NvcGVDaGFpbigpKSwKKyAgICAgICAgR1BSSW5mbzo6cmVnVDEpOworICAgIGppdC5z
dG9yZTY0KAorICAgICAgICBHUFJJbmZvOjpyZWdUMSwKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKAorICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwK
KyAgICAgICAgICAgIHNpemVvZihSZWdpc3RlcikgKiAoSlNTdGFjazo6U2NvcGVDaGFpbiAtIEpT
U3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKSkpOworICAgIAorICAgIG1fZmFzdENhbGwgPSBq
aXQubmVhckNhbGwoKTsKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7
CisgICAgCisgICAgc2xvd1BhdGgubGluaygmaml0KTsKKyAgICBtX3Nsb3dDYWxsID0gaml0Lm5l
YXJDYWxsKCk7CisgICAgCisgICAgZG9uZS5saW5rKCZqaXQpOworfQorCit2b2lkIEpTQ2FsbDo6
bGluayhWTSYgdm0sIExpbmtCdWZmZXImIGxpbmtCdWZmZXIsIENhbGxMaW5rSW5mbyYgY2FsbElu
Zm8pCit7CisgICAgVGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9yID0gbGlua1RodW5rR2VuZXJhdG9y
Rm9yKAorICAgICAgICBtX25vZGUtPm9wKCkgPT0gREZHOjpDb25zdHJ1Y3QgPyBDb2RlRm9yQ29u
c3RydWN0IDogQ29kZUZvckNhbGwsCisgICAgICAgIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7Cisg
ICAgCisgICAgbGlua0J1ZmZlci5saW5rKAorICAgICAgICBtX3Nsb3dDYWxsLCBGdW5jdGlvblB0
cih2bS5nZXRDVElTdHViKGdlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsK
KyAgICAKKyAgICBjYWxsSW5mby5pc0ZUTCA9IHRydWU7CisgICAgY2FsbEluZm8uY2FsbFR5cGUg
PSBtX25vZGUtPm9wKCkgPT0gREZHOjpDb25zdHJ1Y3QgPyBDYWxsTGlua0luZm86OkNvbnN0cnVj
dCA6IENhbGxMaW5rSW5mbzo6Q2FsbDsKKyAgICBjYWxsSW5mby5jb2RlT3JpZ2luID0gbV9ub2Rl
LT5jb2RlT3JpZ2luOworICAgIGNhbGxJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiA9IGxpbmtCdWZm
ZXIubG9jYXRpb25PZk5lYXJDYWxsKG1fc2xvd0NhbGwpOworICAgIGNhbGxJbmZvLmhvdFBhdGhC
ZWdpbiA9IGxpbmtCdWZmZXIubG9jYXRpb25PZihtX3RhcmdldFRvQ2hlY2spOworICAgIGNhbGxJ
bmZvLmhvdFBhdGhPdGhlciA9IGxpbmtCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsKG1fZmFzdENh
bGwpOworICAgIGNhbGxJbmZvLmNhbGxlZUdQUiA9IEdQUkluZm86OnJlZ1QwOworfQorCit9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKU0NhbGwuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTExN2Y4YjI2MWUwNmE3
Nzc1NzNlYjE1MjM1MzE1NWJmMzhhMWI2OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEZUTEpTQ2FsbF9oCisj
ZGVmaW5lIEZUTEpTQ2FsbF9oCisKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKworI2luY2x1ZGUgIkND
YWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkNhbGxMaW5rSW5mby5oIgorI2luY2x1ZGUgIkNvZGVP
cmlnaW4uaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitu
YW1lc3BhY2UgREZHIHsKK3N0cnVjdCBOb2RlOworfQorCituYW1lc3BhY2UgRlRMIHsKKworY2xh
c3MgSlNDYWxsIHsKK3B1YmxpYzoKKyAgICBKU0NhbGwodW5zaWduZWQgc3RhY2ttYXBJRCwgREZH
OjpOb2RlKik7CisgICAgCisgICAgdm9pZCBlbWl0KENDYWxsSGVscGVycyYpOworICAgIHZvaWQg
bGluayhWTSYsIExpbmtCdWZmZXImLCBDYWxsTGlua0luZm8mKTsKKyAgICAKKyAgICB1bnNpZ25l
ZCBzdGFja21hcElEKCkgY29uc3QgeyByZXR1cm4gbV9zdGFja21hcElEOyB9CisgICAgCisgICAg
Ym9vbCBvcGVyYXRvcjwoY29uc3QgSlNDYWxsJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiBtX2luc3RydWN0aW9uT2Zmc2V0IDwgb3RoZXIubV9pbnN0cnVjdGlvbk9mZnNldDsK
KyAgICB9CisgICAgCitwcml2YXRlOgorICAgIHVuc2lnbmVkIG1fc3RhY2ttYXBJRDsKKyAgICBE
Rkc6Ok5vZGUqIG1fbm9kZTsKKyAgICBDQ2FsbEhlbHBlcnM6OkRhdGFMYWJlbFB0ciBtX3Rhcmdl
dFRvQ2hlY2s7CisgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIG1fZmFzdENhbGw7CisgICAgQ0NhbGxI
ZWxwZXJzOjpDYWxsIG1fc2xvd0NhbGw7CisKK3B1YmxpYzoKKyAgICB1aW50MzJfdCBtX2luc3Ry
dWN0aW9uT2Zmc2V0OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYg
Ly8gRU5BQkxFKEZUTF9KSVQpCisKKyNlbmRpZiAvLyBGVExKU0NhbGxfaAorCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMaW5rLmNwcAppbmRleCA4NTA1MGQxNTExNTBhOTY4ODg4MWIzMjlmYWZl
MDA2ODBiNmY0NzVkLi44ODAzOTFhYTE0ZDc2MTU3MGFlYTVkMjEyODg3NzExNTY3YjUwMjg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lm
IEVOQUJMRShGVExfSklUKQogCisjaW5jbHVkZSAiQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3Mu
aCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCIKQEAgLTM3LDEyMSArMzgsMTUw
IEBACiAjaW5jbHVkZSAiSklUU3R1YnMuaCIKICNpbmNsdWRlICJMTFZNQVBJLmgiCiAjaW5jbHVk
ZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIlByb2ZpbGVyQ29tcGlsYXRpb24uaCIKICNpbmNs
dWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwg
ewogCiB1c2luZyBuYW1lc3BhY2UgREZHOwogCi1zdGF0aWMgdm9pZCBjb21waWxlRW50cnkoQ0Nh
bGxIZWxwZXJzJiBqaXQpCi17Ci0gICAgaml0LnByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2Fs
bChHUFJJbmZvOjpyZWdUMik7Ci0gICAgaml0LmVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVh
ZGVyKEdQUkluZm86OnJlZ1QyKTsKLSAgICBqaXQuZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1l
SGVhZGVyKGppdC5jb2RlQmxvY2soKSwgSlNTdGFjazo6Q29kZUJsb2NrKTsKLX0KLQogdm9pZCBs
aW5rKFN0YXRlJiBzdGF0ZSkKIHsKLSAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IHN0YXRlLmdy
YXBoLm1fY29kZUJsb2NrOworICAgIEdyYXBoJiBncmFwaCA9IHN0YXRlLmdyYXBoOworICAgIENv
ZGVCbG9jayogY29kZUJsb2NrID0gZ3JhcGgubV9jb2RlQmxvY2s7CisgICAgVk0mIHZtID0gZ3Jh
cGgubV92bTsKICAgICAKICAgICAvLyBMTFZNIHdpbGwgY3JlYXRlIGl0cyBvd24ganVtcCB0YWJs
ZXMgYXMgbmVlZGVkLgogICAgIGNvZGVCbG9jay0+Y2xlYXJTd2l0Y2hKdW1wVGFibGVzKCk7CiAg
ICAgCi0gICAgc3RhdGUuaml0Q29kZS0+Y29tbW9uLmZyYW1lUmVnaXN0ZXJDb3VudCA9IHN0YXRl
LmdyYXBoLmZyYW1lUmVnaXN0ZXJDb3VudCgpOwotICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5y
ZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0ID0gc3RhdGUuZ3JhcGgucmVxdWlyZWRSZWdpc3Rl
ckNvdW50Rm9yRXhpdCgpOworICAgIC8vIEZJWE1FOiBOZWVkIHRvIGtub3cgdGhlIHJlYWwgZnJh
bWUgcmVnaXN0ZXIgY291bnQuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyNTcyNworICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5mcmFtZVJlZ2lzdGVy
Q291bnQgPSAxMDAwOworICAgIAorICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5yZXF1aXJlZFJl
Z2lzdGVyQ291bnRGb3JFeGl0ID0gZ3JhcGgucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCgp
OwogICAgIAotICAgIGlmICghc3RhdGUuZ3JhcGgubV9pbmxpbmVDYWxsRnJhbWVzLT5pc0VtcHR5
KCkpCi0gICAgICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5pbmxpbmVDYWxsRnJhbWVzID0gc3Rk
Ojptb3ZlKHN0YXRlLmdyYXBoLm1faW5saW5lQ2FsbEZyYW1lcyk7CisgICAgaWYgKCFncmFwaC5t
X2lubGluZUNhbGxGcmFtZXMtPmlzRW1wdHkoKSkKKyAgICAgICAgc3RhdGUuaml0Q29kZS0+Y29t
bW9uLmlubGluZUNhbGxGcmFtZXMgPSBzdGQ6Om1vdmUoZ3JhcGgubV9pbmxpbmVDYWxsRnJhbWVz
KTsKICAgICAKICAgICAvLyBDcmVhdGUgdGhlIGVudHJ5cG9pbnQuIE5vdGUgdGhhdCB3ZSB1c2Ug
dGhpcyBlbnRyeXBvaW50IHRvdGFsbHkgZGlmZmVyZW50bHkKICAgICAvLyBkZXBlbmRpbmcgb24g
d2hldGhlciB3ZSdyZSBkb2luZyBPU1IgZW50cnkgb3Igbm90LgotICAgIC8vIEZJWE1FOiBFeGNl
cHQgZm9yIE9TUiBlbnRyeSwgdGhpcyBpcyBhIHRvdGFsIGtsdWRnZSAtIExMVk0gc2hvdWxkIGp1
c3QgdXNlIG91cgotICAgIC8vIGNhbGxpbmcgY29udmVudGlvbi4KLSAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIxCi0gICAgQ0NhbGxIZWxwZXJzIGpp
dCgmc3RhdGUuZ3JhcGgubV92bSwgY29kZUJsb2NrKTsKKyAgICBDQ2FsbEhlbHBlcnMgaml0KCZ2
bSwgY29kZUJsb2NrKTsKICAgICAKICAgICBPd25QdHI8TGlua0J1ZmZlcj4gbGlua0J1ZmZlcjsK
ICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGFyaXR5Q2hlY2s7Ci0gICAgc3dpdGNoIChzdGF0ZS5n
cmFwaC5tX3BsYW4ubW9kZSkgewotICAgIGNhc2UgRlRMTW9kZTogewotICAgICAgICBjb21waWxl
RW50cnkoaml0KTsKKworICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBmcmFtZSA9IENDYWxsSGVs
cGVyczo6QWRkcmVzcygKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rl
ciwgLXN0YXRpY19jYXN0PGludDMyX3Q+KHNpemVvZih2b2lkKikpKTsKICAgICAKLSAgICAgICAg
Ly8gVGhpcyBwYXJ0IGlzIG9ubHkgbmVjZXNzYXJ5IGZvciBmdW5jdGlvbnMuIFdlIGN1cnJlbnRs
eSBvbmx5IGNvbXBpbGUgZnVuY3Rpb25zLgorICAgIGlmIChQcm9maWxlcjo6Q29tcGlsYXRpb24q
IGNvbXBpbGF0aW9uID0gZ3JhcGguY29tcGlsYXRpb24oKSkgeworICAgICAgICBjb21waWxhdGlv
bi0+YWRkRGVzY3JpcHRpb24oCisgICAgICAgICAgICBQcm9maWxlcjo6T3JpZ2luU3RhY2soKSwK
KyAgICAgICAgICAgIHRvQ1N0cmluZygiR2VuZXJhdGVkIEZUTCBKSVQgY29kZSBmb3IgIiwgQ29k
ZUJsb2NrV2l0aEpJVFR5cGUoY29kZUJsb2NrLCBKSVRDb2RlOjpGVExKSVQpLCAiLCBpbnN0cnVj
dGlvbiBjb3VudCA9ICIsIGdyYXBoLm1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbkNvdW50KCksICI6
XG4iKSk7CiAgICAgICAgIAotICAgICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGZyb21Bcml0eUNo
ZWNrID0gaml0LmxhYmVsKCk7CisgICAgICAgIGdyYXBoLm1fZG9taW5hdG9ycy5jb21wdXRlSWZO
ZWNlc3NhcnkoZ3JhcGgpOworICAgICAgICBncmFwaC5tX25hdHVyYWxMb29wcy5jb21wdXRlSWZO
ZWNlc3NhcnkoZ3JhcGgpOwogICAgICAgICAKLSAgICAgICAgLy8gUGxhbnQgYSBjaGVjayB0aGF0
IHN1ZmZpY2llbnQgc3BhY2UgaXMgYXZhaWxhYmxlIGluIHRoZSBKU1N0YWNrLgotICAgICAgICAv
LyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MjkxCi0g
ICAgICAgIGppdC5hZGRQdHIoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
Mih2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChzdGF0ZS5qaXRDb2RlLT5jb21tb24ucmVxdWlyZWRS
ZWdpc3RlckNvdW50Rm9yRXhpdCkub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpKSwKLSAgICAg
ICAgICAgIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMSk7Ci0gICAg
ICAgIENDYWxsSGVscGVyczo6SnVtcCBzdGFja0NoZWNrID0gaml0LmJyYW5jaFB0cigKLSAgICAg
ICAgICAgIENDYWxsSGVscGVyczo6QWJvdmUsCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFi
c29sdXRlQWRkcmVzcyhzdGF0ZS5ncmFwaC5tX3ZtLmFkZHJlc3NPZkpTU3RhY2tMaW1pdCgpKSwK
LSAgICAgICAgICAgIEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJl
bCBmcm9tU3RhY2tDaGVjayA9IGppdC5sYWJlbCgpOworICAgICAgICBjb25zdCBjaGFyKiBwcmVm
aXggPSAiICAgICI7CiAgICAgICAgIAotICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHNFeGVjU3Rh
dGUoKTsKLSAgICAgICAgaml0Lm1vdmUoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc3RhdGUuZ2VuZXJhdGVkRnVuY3Rpb24p
KSwKLSAgICAgICAgICAgIEdQUkluZm86Om5vbkFyZ0dQUjApOwotICAgICAgICBqaXQuY2FsbChH
UFJJbmZvOjpub25BcmdHUFIwKTsKLSAgICAgICAgaml0LmVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxs
RnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6cmVnVDEpOwotICAgICAgICBqaXQuZW1pdEdldENhbGxl
ckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7
Ci0gICAgICAgIGppdC5yZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihHUFJJbmZvOjpy
ZWdUMSk7Ci0gICAgICAgIGppdC5yZXQoKTsKKyAgICAgICAgRHVtcENvbnRleHQgZHVtcENvbnRl
eHQ7CisgICAgICAgIFN0cmluZ1ByaW50U3RyZWFtIG91dDsKKyAgICAgICAgTm9kZSogbGFzdE5v
ZGUgPSAwOworICAgICAgICBmb3IgKHNpemVfdCBibG9ja0luZGV4ID0gMDsgYmxvY2tJbmRleCA8
IGdyYXBoLm51bUJsb2NrcygpOyArK2Jsb2NrSW5kZXgpIHsKKyAgICAgICAgICAgIEJhc2ljQmxv
Y2sqIGJsb2NrID0gZ3JhcGguYmxvY2soYmxvY2tJbmRleCk7CisgICAgICAgICAgICBpZiAoIWJs
b2NrKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBncmFwaC5kdW1wQmxvY2tIZWFkZXIob3V0LCBwcmVmaXgsIGJsb2NrLCBHcmFwaDo6RHVtcExp
dmVQaGlzT25seSwgJmR1bXBDb250ZXh0KTsKKyAgICAgICAgICAgIGNvbXBpbGF0aW9uLT5hZGRE
ZXNjcmlwdGlvbihQcm9maWxlcjo6T3JpZ2luU3RhY2soKSwgb3V0LnRvQ1N0cmluZygpKTsKKyAg
ICAgICAgICAgIG91dC5yZXNldCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKHNp
emVfdCBub2RlSW5kZXggPSAwOyBub2RlSW5kZXggPCBibG9jay0+c2l6ZSgpOyArK25vZGVJbmRl
eCkgeworICAgICAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBibG9jay0+YXQobm9kZUluZGV4KTsK
KyAgICAgICAgICAgICAgICBpZiAoIW5vZGUtPndpbGxIYXZlQ29kZUdlbk9yT1NSKCkgJiYgIU9w
dGlvbnM6OnNob3dBbGxERkdOb2RlcygpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBQcm9maWxlcjo6T3JpZ2luU3RhY2sg
c3RhY2s7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKG5vZGUtPmNvZGVP
cmlnaW4uaXNTZXQoKSkgeworICAgICAgICAgICAgICAgICAgICBzdGFjayA9IFByb2ZpbGVyOjpP
cmlnaW5TdGFjaygKKyAgICAgICAgICAgICAgICAgICAgICAgICp2bS5tX3BlckJ5dGVjb2RlUHJv
ZmlsZXIsIGNvZGVCbG9jaywgbm9kZS0+Y29kZU9yaWdpbik7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChncmFwaC5kdW1wQ29kZU9yaWdp
bihvdXQsIHByZWZpeCwgbGFzdE5vZGUsIG5vZGUsICZkdW1wQ29udGV4dCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgY29tcGlsYXRpb24tPmFkZERlc2NyaXB0aW9uKHN0YWNrLCBvdXQudG9DU3Ry
aW5nKCkpOworICAgICAgICAgICAgICAgICAgICBvdXQucmVzZXQoKTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZ3JhcGguZHVtcChvdXQsIHBy
ZWZpeCwgbm9kZSwgJmR1bXBDb250ZXh0KTsKKyAgICAgICAgICAgICAgICBjb21waWxhdGlvbi0+
YWRkRGVzY3JpcHRpb24oc3RhY2ssIG91dC50b0NTdHJpbmcoKSk7CisgICAgICAgICAgICAgICAg
b3V0LnJlc2V0KCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKG5vZGUt
PmNvZGVPcmlnaW4uaXNTZXQoKSkKKyAgICAgICAgICAgICAgICAgICAgbGFzdE5vZGUgPSBub2Rl
OworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBzdGFja0NoZWNr
LmxpbmsoJmppdCk7Ci0gICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0
cihjb2RlQmxvY2spLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgICAgICBqaXQubW92ZShH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAg
ICAgaml0LnN0b3JlMzIoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihD
YWxsRnJhbWU6OkxvY2F0aW9uOjplbmNvZGVBc0J5dGVjb2RlT2Zmc2V0KDApKSwKLSAgICAgICAg
ICAgIENDYWxsSGVscGVyczo6dGFnRm9yKHN0YXRpY19jYXN0PFZpcnR1YWxSZWdpc3Rlcj4oSlNT
dGFjazo6QXJndW1lbnRDb3VudCkpKTsKLSAgICAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCAmc3RhdGUuZ3JhcGgubV92bS50b3BDYWxsRnJhbWUpOwotICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkNhbGwgY2FsbFN0YWNrQ2hlY2sgPSBqaXQuY2FsbCgpOwotI2lmICFB
U1NFUlRfRElTQUJMRUQKLSAgICAgICAgLy8gRklYTUU6IG5lZWQgdG8gbWFrZSB0aGlzIGNhbGwg
cmVnaXN0ZXIgd2l0aCBleGNlcHRpb24gaGFuZGxpbmcgc29tZWhvdy4gVGhpcyBpcwotICAgICAg
ICAvLyBwYXJ0IG9mIGEgYmlnZ2VyIHByb2JsZW06IEZUTCBzaG91bGQgYmUgYWJsZSB0byBoYW5k
bGUgZXhjZXB0aW9ucy4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMzYyMgotICAgICAgICAvLyBVbnRpbCB0aGVuLCB1c2UgYSBKSVQgQVNTRVJU
LgotICAgICAgICBqaXQubG9hZDY0KHN0YXRlLmdyYXBoLm1fdm0uYWRkcmVzc09mRXhjZXB0aW9u
KCksIEdQUkluZm86OnJlZ1QwKTsKLSAgICAgICAgaml0LmppdEFzc2VydElzTnVsbChHUFJJbmZv
OjpyZWdUMCk7Ci0jZW5kaWYKLSAgICAgICAgaml0Lmp1bXAoZnJvbVN0YWNrQ2hlY2spOworICAg
ICAgICBkdW1wQ29udGV4dC5kdW1wKG91dCwgcHJlZml4KTsKKyAgICAgICAgY29tcGlsYXRpb24t
PmFkZERlc2NyaXB0aW9uKFByb2ZpbGVyOjpPcmlnaW5TdGFjaygpLCBvdXQudG9DU3RyaW5nKCkp
OworICAgICAgICBvdXQucmVzZXQoKTsKICAgICAgICAgCi0gICAgICAgIGFyaXR5Q2hlY2sgPSBq
aXQubGFiZWwoKTsKLSAgICAgICAgY29tcGlsZUVudHJ5KGppdCk7CisgICAgICAgIG91dC5wcmlu
dCgiICAgIERpc2Fzc2VtYmx5OlxuIik7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBzdGF0ZS5qaXRDb2RlLT5oYW5kbGVzKCkuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlm
IChzdGF0ZS5jb2RlU2VjdGlvbk5hbWVzW2ldICE9ICJfX3RleHQiKQorICAgICAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgRXhlY3V0YWJsZU1lbW9y
eUhhbmRsZSogaGFuZGxlID0gc3RhdGUuaml0Q29kZS0+aGFuZGxlcygpW2ldLmdldCgpOworICAg
ICAgICAgICAgICAgIGRpc2Fzc2VtYmxlKAorICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIoaGFuZGxlLT5zdGFydCgpKSwgaGFuZGxlLT5zaXplSW5CeXRlcygpLAorICAg
ICAgICAgICAgICAgICAgICAiICAgICAgIiwgb3V0LCBMTFZNU3Vic2V0KTsKKyAgICAgICAgfQor
ICAgICAgICBjb21waWxhdGlvbi0+YWRkRGVzY3JpcHRpb24oUHJvZmlsZXI6Ok9yaWdpblN0YWNr
KCksIG91dC50b0NTdHJpbmcoKSk7CisgICAgICAgIG91dC5yZXNldCgpOworICAgICAgICAKKyAg
ICAgICAgc3RhdGUuaml0Q29kZS0+Y29tbW9uLmNvbXBpbGF0aW9uID0gY29tcGlsYXRpb247Cisg
ICAgfQorICAgIAorICAgIHN3aXRjaCAoZ3JhcGgubV9wbGFuLm1vZGUpIHsKKyAgICBjYXNlIEZU
TE1vZGU6IHsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBtYWluUGF0aEp1bXBzOwor
ICAgIAogICAgICAgICBqaXQubG9hZDMyKAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpwYXls
b2FkRm9yKHN0YXRpY19jYXN0PFZpcnR1YWxSZWdpc3Rlcj4oSlNTdGFjazo6QXJndW1lbnRDb3Vu
dCkpLAorICAgICAgICAgICAgZnJhbWUud2l0aE9mZnNldChzaXplb2YoUmVnaXN0ZXIpICogSlNT
dGFjazo6QXJndW1lbnRDb3VudCksCiAgICAgICAgICAgICBHUFJJbmZvOjpyZWdUMSk7Ci0gICAg
ICAgIGppdC5icmFuY2gzMigKKyAgICAgICAgbWFpblBhdGhKdW1wcy5hcHBlbmQoaml0LmJyYW5j
aDMyKAogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBYm92ZU9yRXF1YWwsIEdQUkluZm86OnJl
Z1QxLAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoY29kZUJsb2NrLT5u
dW1QYXJhbWV0ZXJzKCkpKQotICAgICAgICAgICAgLmxpbmtUbyhmcm9tQXJpdHlDaGVjaywgJmpp
dCk7CisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihjb2RlQmxvY2stPm51
bVBhcmFtZXRlcnMoKSkpKTsKKyAgICAgICAgaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAg
ICAgICAgIGppdC5tb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApOwogICAgICAgICBqaXQuc3RvcmUzMigKICAgICAgICAgICAgIENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbTMyKENhbGxGcmFtZTo6TG9jYXRpb246OmVuY29kZUFzQnl0ZWNvZGVPZmZz
ZXQoMCkpLAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjp0YWdGb3Ioc3RhdGljX2Nhc3Q8Vmly
dHVhbFJlZ2lzdGVyPihKU1N0YWNrOjpBcmd1bWVudENvdW50KSkpOwotICAgICAgICBqaXQuc3Rv
cmVQdHIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsICZzdGF0ZS5ncmFwaC5tX3ZtLnRvcENh
bGxGcmFtZSk7CisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OnRhZ0ZvcihKU1N0YWNrOjpBcmd1
bWVudENvdW50KSk7CisgICAgICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdp
c3RlciwgJnZtLnRvcENhbGxGcmFtZSk7CiAgICAgICAgIENDYWxsSGVscGVyczo6Q2FsbCBjYWxs
QXJpdHlDaGVjayA9IGppdC5jYWxsKCk7CiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgICAgICAv
LyBGSVhNRTogbmVlZCB0byBtYWtlIHRoaXMgY2FsbCByZWdpc3RlciB3aXRoIGV4Y2VwdGlvbiBo
YW5kbGluZyBzb21laG93LiBUaGlzIGlzCiAgICAgICAgIC8vIHBhcnQgb2YgYSBiaWdnZXIgcHJv
YmxlbTogRlRMIHNob3VsZCBiZSBhYmxlIHRvIGhhbmRsZSBleGNlcHRpb25zLgogICAgICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIyCiAgICAgICAg
IC8vIFVudGlsIHRoZW4sIHVzZSBhIEpJVCBBU1NFUlQuCi0gICAgICAgIGppdC5sb2FkNjQoc3Rh
dGUuZ3JhcGgubV92bS5hZGRyZXNzT2ZFeGNlcHRpb24oKSwgR1BSSW5mbzo6cmVnVDEpOworICAg
ICAgICBqaXQubG9hZDY0KHZtLmFkZHJlc3NPZkV4Y2VwdGlvbigpLCBHUFJJbmZvOjpyZWdUMSk7
CiAgICAgICAgIGppdC5qaXRBc3NlcnRJc051bGwoR1BSSW5mbzo6cmVnVDEpOwogI2VuZGlmCi0g
ICAgICAgIGlmIChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiAhPSBHUFJJbmZvOjpyZWdUMCkKLSAg
ICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZWdU
MCk7Ci0gICAgICAgIGppdC5icmFuY2hUZXN0MzIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBHUFJJbmZv
OjpyZWdUMCkubGlua1RvKGZyb21Bcml0eUNoZWNrLCAmaml0KTsKKyAgICAgICAgaml0Lm1vdmUo
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgaml0LmVt
aXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisgICAgICAgIG1haW5QYXRoSnVtcHMuYXBwZW5kKGppdC5i
cmFuY2hUZXN0MzIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBHUFJJbmZvOjpyZWdUMCkpOworICAgICAg
ICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKKyAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tUHRyKHZtLmFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLT5yZXR1cm5Q
Q3NGb3Iodm0sIGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSksIEdQUkluZm86OnJlZ1Q1KTsK
KyAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgoR1BSSW5mbzo6cmVn
VDUsIEdQUkluZm86OnJlZ1QwLCBDQ2FsbEhlbHBlcnM6OnRpbWVzUHRyKCkpLCBHUFJJbmZvOjpy
ZWdUNSk7CiAgICAgICAgIENDYWxsSGVscGVyczo6Q2FsbCBjYWxsQXJpdHlGaXh1cCA9IGppdC5j
YWxsKCk7Ci0gICAgICAgIGppdC5qdW1wKGZyb21Bcml0eUNoZWNrKTsKLSAgICAgICAgCi0gICAg
ICAgIGxpbmtCdWZmZXIgPSBhZG9wdFB0cihuZXcgTGlua0J1ZmZlcihzdGF0ZS5ncmFwaC5tX3Zt
LCAmaml0LCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpKTsKLSAgICAgICAg
bGlua0J1ZmZlci0+bGluayhjYWxsU3RhY2tDaGVjaywgb3BlcmF0aW9uU3RhY2tDaGVjayk7Cisg
ICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOworICAgICAgICBtYWluUGF0aEp1bXBz
LmFwcGVuZChqaXQuanVtcCgpKTsKKworICAgICAgICBsaW5rQnVmZmVyID0gYWRvcHRQdHIobmV3
IExpbmtCdWZmZXIodm0sICZqaXQsIGNvZGVCbG9jaywgSklUQ29tcGlsYXRpb25NdXN0U3VjY2Vl
ZCkpOwogICAgICAgICBsaW5rQnVmZmVyLT5saW5rKGNhbGxBcml0eUNoZWNrLCBjb2RlQmxvY2st
Pm1faXNDb25zdHJ1Y3RvciA/IG9wZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2sgOiBvcGVyYXRp
b25DYWxsQXJpdHlDaGVjayk7Ci0gICAgICAgIGxpbmtCdWZmZXItPmxpbmsoY2FsbEFyaXR5Rml4
dXAsIEZ1bmN0aW9uUHRyKChzdGF0ZS5ncmFwaC5tX3ZtLmdldENUSVN0dWIoYXJpdHlGaXh1cCkp
LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSk7CisgICAgICAgIGxpbmtCdWZmZXItPmxpbmso
Y2FsbEFyaXR5Rml4dXAsIEZ1bmN0aW9uUHRyKCh2bS5nZXRDVElTdHViKGFyaXR5Rml4dXApKS5j
b2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOworICAgICAgICBsaW5rQnVmZmVyLT5saW5rKG1h
aW5QYXRoSnVtcHMsIENvZGVMb2NhdGlvbkxhYmVsKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGUu
Z2VuZXJhdGVkRnVuY3Rpb24pKSk7CisKKyAgICAgICAgc3RhdGUuaml0Q29kZS0+aW5pdGlhbGl6
ZUFkZHJlc3NGb3JDYWxsKE1hY3JvQXNzZW1ibGVyQ29kZVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+
KHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uKSkpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAg
ICAgIApAQCAtMTYwLDE4ICsxOTAsMTQgQEAgdm9pZCBsaW5rKFN0YXRlJiBzdGF0ZSkKICAgICAg
ICAgLy8gdmFsdWVzIGludG8gdGhlIHNjcmF0Y2ggYnVmZmVyLiBFdmVyeXRoaW5nIHNob3VsZCBi
ZSBnb29kIHRvIGdvIC0gYXQgdGhpcwogICAgICAgICAvLyBwb2ludCB3ZSd2ZSBldmVuIGRvbmUg
dGhlIHN0YWNrIGNoZWNrLiBCYXNpY2FsbHkgd2UganVzdCBoYXZlIHRvIG1ha2UgdGhlCiAgICAg
ICAgIC8vIGNhbGwgdG8gdGhlIExMVk0tZ2VuZXJhdGVkIGNvZGUuCi0gICAgICAgIGppdC5zZXR1
cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOwotICAgICAgICBqaXQubW92ZSgKLSAgICAgICAgICAgIEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihyZWludGVycHJldF9jYXN0PHZvaWQqPihzdGF0ZS5n
ZW5lcmF0ZWRGdW5jdGlvbikpLAotICAgICAgICAgICAgR1BSSW5mbzo6bm9uQXJnR1BSMCk7Ci0g
ICAgICAgIGppdC5jYWxsKEdQUkluZm86Om5vbkFyZ0dQUjApOwotICAgICAgICBqaXQuZW1pdEdl
dFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpyZWdUMSk7Ci0gICAgICAg
IGppdC5lbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyKTsKLSAgICAgICAgaml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3Jl
UmV0dXJuKEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAgaml0LnJldCgpOworICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkxhYmVsIHN0YXJ0ID0gaml0LmxhYmVsKCk7CisgICAgICAgIGppdC5lbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOworICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbWFpblBhdGhKdW1w
ID0gaml0Lmp1bXAoKTsKICAgICAgICAgCi0gICAgICAgIGxpbmtCdWZmZXIgPSBhZG9wdFB0cihu
ZXcgTGlua0J1ZmZlcigKLSAgICAgICAgICAgIHN0YXRlLmdyYXBoLm1fdm0sICZqaXQsIGNvZGVC
bG9jaywgSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCkpOworICAgICAgICBsaW5rQnVmZmVyID0g
YWRvcHRQdHIobmV3IExpbmtCdWZmZXIodm0sICZqaXQsIGNvZGVCbG9jaywgSklUQ29tcGlsYXRp
b25NdXN0U3VjY2VlZCkpOworICAgICAgICBsaW5rQnVmZmVyLT5saW5rKG1haW5QYXRoSnVtcCwg
Q29kZUxvY2F0aW9uTGFiZWwoYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0ZS5nZW5lcmF0ZWRGdW5j
dGlvbikpKTsKKworICAgICAgICBzdGF0ZS5qaXRDb2RlLT5pbml0aWFsaXplQWRkcmVzc0ZvckNh
bGwobGlua0J1ZmZlci0+bG9jYXRpb25PZihzdGFydCkpOwogICAgICAgICBicmVhazsKICAgICB9
CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvTExWTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9M
TFZNLmNwcAppbmRleCBiZTJhNDBjN2RkYzg3OWE4MDg1ZDBiMzhiMWZkOThkMzZmN2YxMWQzLi5j
NTc5NjlkN2E3MmNlNjA0YmQ3ZTNkM2E0OTUzNzU4MTMwYjFmOTY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNiArMzIsNyBAQAog
I2luY2x1ZGUgIkRGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgiCiAjaW5jbHVkZSAiREZH
SW5QbGFjZUFic3RyYWN0U3RhdGUuaCIKICNpbmNsdWRlICJGVExBYnN0cmFjdEhlYXBSZXBvc2l0
b3J5LmgiCisjaW5jbHVkZSAiRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCIKICNpbmNsdWRlICJGVExG
b3JPU1JFbnRyeUpJVENvZGUuaCIKICNpbmNsdWRlICJGVExGb3JtYXR0ZWRWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkZUTElubGluZUNhY2hlU2l6ZS5oIgpAQCAtNTEsNiArNTIsMTAgQEAgdXNpbmcgbmFt
ZXNwYWNlIERGRzsKIAogc3RhdGljIHN0ZDo6YXRvbWljPGludD4gY29tcGlsZUNvdW50ZXI7CiAK
Ky8vIEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMgYW5kIGludHJvZHVjZSBhIHJlYWwgc3RhY2sgY2hl
Y2suCisvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NjUwCitz
dGF0aWMgdWludHB0cl90IHN0YWNrTGltaXQ7CisKIC8vIFVzaW5nIHRoaXMgaW5zdGVhZCBvZiB0
eXBlQ2hlY2soKSBoZWxwcyB0byByZWR1Y2UgdGhlIGxvYWQgb24gTExWTSwgYnkgY3JlYXRpbmcK
IC8vIHNpZ25pZmljYW50bHkgbGVzcyBkZWFkIGNvZGUuCiAjZGVmaW5lIEZUTF9UWVBFX0NIRUNL
KGxvd1ZhbHVlLCBoaWdoVmFsdWUsIHR5cGVzUGFzc2VkVGhyb3VnaCwgZmFpbENvbmRpdGlvbikg
ZG8geyBcCkBAIC05MiwxOSArOTcsMjAgQEAgcHVibGljOgogICAgICAgICAgICAgbGx2bS0+TW9k
dWxlQ3JlYXRlV2l0aE5hbWVJbkNvbnRleHQobmFtZS5kYXRhKCksIG1fZnRsU3RhdGUuY29udGV4
dCk7CiAgICAgICAgIAogICAgICAgICBtX2Z0bFN0YXRlLmZ1bmN0aW9uID0gYWRkRnVuY3Rpb24o
Ci0gICAgICAgICAgICBtX2Z0bFN0YXRlLm1vZHVsZSwgbmFtZS5kYXRhKCksIGZ1bmN0aW9uVHlw
ZShtX291dC5pbnQ2NCwgbV9vdXQuaW50UHRyKSk7CisgICAgICAgICAgICBtX2Z0bFN0YXRlLm1v
ZHVsZSwgbmFtZS5kYXRhKCksIGZ1bmN0aW9uVHlwZShtX291dC5pbnQ2NCkpOwogICAgICAgICBz
ZXRGdW5jdGlvbkNhbGxpbmdDb252KG1fZnRsU3RhdGUuZnVuY3Rpb24sIExMVk1DQ2FsbENvbnYp
OworICAgICAgICBpZiAoaXNYODYoKSAmJiBPcHRpb25zOjpsbHZtRGlzYWxsb3dBVlgoKSkgewor
ICAgICAgICAgICAgLy8gQVZYIG1ha2VzIFY4L3JheXRyYWNlIDgwJSBzbG93ZXIuIEl0IG1ha2Vz
IEtyYWtlbi9hdWRpby1vc2NpbGxhdG9yIDQuNXgKKyAgICAgICAgICAgIC8vIHNsb3dlci4gSXQg
c2hvdWxkIGJlIGRpc2FibGVkLgorICAgICAgICAgICAgYWRkVGFyZ2V0RGVwZW5kZW50RnVuY3Rp
b25BdHRyKG1fZnRsU3RhdGUuZnVuY3Rpb24sICJ0YXJnZXQtZmVhdHVyZXMiLCAiLWF2eCIpOwor
ICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBtX291dC5pbml0aWFsaXplKG1fZnRsU3RhdGUu
bW9kdWxlLCBtX2Z0bFN0YXRlLmZ1bmN0aW9uLCBtX2hlYXBzKTsKICAgICAgICAgCi0gICAgICAg
IG1fcHJvbG9ndWUgPSBhcHBlbmRCYXNpY0Jsb2NrKG1fZnRsU3RhdGUuY29udGV4dCwgbV9mdGxT
dGF0ZS5mdW5jdGlvbik7Ci0gICAgICAgIG1fb3V0LmFwcGVuZFRvKG1fcHJvbG9ndWUpOwotICAg
ICAgICBjcmVhdGVQaGlWYXJpYWJsZXMoKTsKLSAgICAgICAgCi0gICAgICAgIG1fY2FsbEZyYW1l
ID0gbV9vdXQucGFyYW0oMCk7Ci0gICAgICAgIG1fdGFnVHlwZU51bWJlciA9IG1fb3V0LmNvbnN0
SW50NjQoVGFnVHlwZU51bWJlcik7Ci0gICAgICAgIG1fdGFnTWFzayA9IG1fb3V0LmNvbnN0SW50
NjQoVGFnTWFzayk7Ci0gICAgICAgIAorICAgICAgICBtX3Byb2xvZ3VlID0gRlRMX05FV19CTE9D
SyhtX291dCwgKCJQcm9sb2d1ZSIpKTsKKyAgICAgICAgTEJhc2ljQmxvY2sgc3RhY2tPdmVyZmxv
dyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiU3RhY2sgb3ZlcmZsb3ciKSk7CisgICAgICAgIG1f
aGFuZGxlRXhjZXB0aW9ucyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiSGFuZGxlIEV4Y2VwdGlv
bnMiKSk7CisKICAgICAgICAgZm9yIChCbG9ja0luZGV4IGJsb2NrSW5kZXggPSAwOyBibG9ja0lu
ZGV4IDwgbV9ncmFwaC5udW1CbG9ja3MoKTsgKytibG9ja0luZGV4KSB7CiAgICAgICAgICAgICBt
X2hpZ2hCbG9jayA9IG1fZ3JhcGguYmxvY2soYmxvY2tJbmRleCk7CiAgICAgICAgICAgICBpZiAo
IW1faGlnaEJsb2NrKQpAQCAtMTEyLDggKzExOCw0MiBAQCBwdWJsaWM6CiAgICAgICAgICAgICBt
X2Jsb2Nrcy5hZGQobV9oaWdoQmxvY2ssIEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQmxvY2sgIiwg
Km1faGlnaEJsb2NrKSkpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBtX291dC5hcHBl
bmRUbyhtX3Byb2xvZ3VlKTsKLSAgICAgICAgbV9vdXQuanVtcChsb3dCbG9jayhtX2dyYXBoLmJs
b2NrKDApKSk7CisgICAgICAgIG1fb3V0LmFwcGVuZFRvKG1fcHJvbG9ndWUsIHN0YWNrT3ZlcmZs
b3cpOworICAgICAgICBjcmVhdGVQaGlWYXJpYWJsZXMoKTsKKyAgICAgICAgTFZhbHVlIGNhcHR1
cmVkQWxsb2NhID0gbV9vdXQuYWxsb2NhKGFycmF5VHlwZShtX291dC5pbnQ2NCwgbV9ncmFwaC5t
X25leHRNYWNoaW5lTG9jYWwpKTsKKyAgICAgICAgbV9jYXB0dXJlZCA9IG1fb3V0LmFkZCgKKyAg
ICAgICAgICAgIG1fb3V0LnB0clRvSW50KGNhcHR1cmVkQWxsb2NhLCBtX291dC5pbnRQdHIpLAor
ICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIobV9ncmFwaC5tX25leHRNYWNoaW5lTG9jYWwg
KiBzaXplb2YoUmVnaXN0ZXIpKSk7OworICAgICAgICAKKyAgICAgICAgLy8gV2Ugc2hvdWxkIG5v
dCBjcmVhdGUgYW55IGFsbG9jYSdzIGFmdGVyIHRoaXMgcG9pbnQsIHNpbmNlIHRoZXkgd2lsbCBj
ZWFzZSB0bworICAgICAgICAvLyBiZSBtZW0ycmVnIGNhbmRpZGF0ZXMuCisgICAgICAgIAorICAg
ICAgICBtX2Z0bFN0YXRlLmNhcHR1cmVkU3RhY2ttYXBJRCA9IG1fc3RhY2ttYXBJRHMrKzsKKyAg
ICAgICAgbV9vdXQuY2FsbCgKKyAgICAgICAgICAgIG1fb3V0LnN0YWNrbWFwSW50cmluc2ljKCks
IG1fb3V0LmNvbnN0SW50NjQobV9mdGxTdGF0ZS5jYXB0dXJlZFN0YWNrbWFwSUQpLAorICAgICAg
ICAgICAgbV9vdXQuaW50MzJaZXJvLCBjYXB0dXJlZEFsbG9jYSk7CisgICAgICAgIAorICAgICAg
ICBtX2NhbGxGcmFtZSA9IG1fb3V0LnB0clRvSW50KAorICAgICAgICAgICAgbV9vdXQuY2FsbCht
X291dC5mcmFtZUFkZHJlc3NJbnRyaW5zaWMoKSwgbV9vdXQuaW50MzJaZXJvKSwgbV9vdXQuaW50
UHRyKTsKKyAgICAgICAgbV90YWdUeXBlTnVtYmVyID0gbV9vdXQuY29uc3RJbnQ2NChUYWdUeXBl
TnVtYmVyKTsKKyAgICAgICAgbV90YWdNYXNrID0gbV9vdXQuY29uc3RJbnQ2NChUYWdNYXNrKTsK
KyAgICAgICAgCisgICAgICAgIG1fb3V0LnN0b3JlUHRyKG1fb3V0LmNvbnN0SW50UHRyKGNvZGVC
bG9jaygpKSwgYWRkcmVzc0ZvcihKU1N0YWNrOjpDb2RlQmxvY2spKTsKKyAgICAgICAgbV9vdXQu
YnJhbmNoKAorICAgICAgICAgICAgbV9vdXQuYmVsb3cobV9jYWxsRnJhbWUsIG1fb3V0LmxvYWRQ
dHIobV9vdXQuYWJzb2x1dGUoJnN0YWNrTGltaXQpKSksCisgICAgICAgICAgICBzdGFja092ZXJm
bG93LCBsb3dCbG9jayhtX2dyYXBoLmJsb2NrKDApKSk7CisgICAgICAgIAorICAgICAgICBtX291
dC5hcHBlbmRUbyhzdGFja092ZXJmbG93LCBtX2hhbmRsZUV4Y2VwdGlvbnMpOworICAgICAgICAv
LyBGSVhNRTogRG8gYSByZWFsIHN0YWNrIGNoZWNrIGFuZCB0aHJvdyB0aGUgZXhjZXB0aW9uIGFw
cHJvcHJpYXRlbHkuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjU2NTAKKyAgICAgICAgbV9vdXQuY3Jhc2goKTsKKyAgICAgICAgCisgICAgICAg
IG1fb3V0LmFwcGVuZFRvKG1faGFuZGxlRXhjZXB0aW9ucywgbG93QmxvY2sobV9ncmFwaC5ibG9j
aygwKSkpOworICAgICAgICBtX2Z0bFN0YXRlLmhhbmRsZUV4Y2VwdGlvblN0YWNrbWFwSUQgPSBt
X3N0YWNrbWFwSURzKys7CisgICAgICAgIG1fb3V0LmNhbGwoCisgICAgICAgICAgICBtX291dC5z
dGFja21hcEludHJpbnNpYygpLCBtX291dC5jb25zdEludDY0KG1fZnRsU3RhdGUuaGFuZGxlRXhj
ZXB0aW9uU3RhY2ttYXBJRCksCisgICAgICAgICAgICBtX291dC5jb25zdEludDMyKE1hY3JvQXNz
ZW1ibGVyOjptYXhKdW1wUmVwbGFjZW1lbnRTaXplKCkpKTsKKyAgICAgICAgbV9vdXQudW5yZWFj
aGFibGUoKTsKICAgICAgICAgCiAgICAgICAgIFZlY3RvcjxCYXNpY0Jsb2NrKj4gZGVwdGhGaXJz
dDsKICAgICAgICAgbV9ncmFwaC5nZXRCbG9ja3NJbkRlcHRoRmlyc3RPcmRlcihkZXB0aEZpcnN0
KTsKQEAgLTIyNiw2ICsyNjYsOCBAQCBwcml2YXRlOgogICAgICAgICBpZiAodmVyYm9zZUNvbXBp
bGF0aW9uRW5hYmxlZCgpKQogICAgICAgICAgICAgZGF0YUxvZygiTG93ZXJpbmcgIiwgbV9ub2Rl
LCAiXG4iKTsKICAgICAgICAgCisgICAgICAgIG1fYXZhaWxhYmxlUmVjb3Zlcmllcy5yZXNpemUo
MCk7CisgICAgICAgIAogICAgICAgICBib29sIHNob3VsZEV4ZWN1dGVFZmZlY3RzID0gbV9pbnRl
cnByZXRlci5zdGFydEV4ZWN1dGluZyhtX25vZGUpOwogICAgICAgICAKICAgICAgICAgc3dpdGNo
IChtX25vZGUtPm9wKCkpIHsKQEAgLTI2NSwxOSArMzA3LDE3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICBjb21waWxlVmFsdWVBZGQoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEFyaXRoQWRkOgotICAgICAgICAgICAgY29tcGlsZUFkZFN1YigpOwotICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgQXJpdGhTdWI6Ci0gICAgICAgICAgICBjb21waWxlQWRkU3ViKCk7
CisgICAgICAgICAgICBjb21waWxlQXJpdGhBZGRPclN1YigpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQXJpdGhNdWw6CiAgICAgICAgICAgICBjb21waWxlQXJpdGhNdWwoKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRoRGl2OgotICAgICAgICAgICAg
Y29tcGlsZUFyaXRoRGl2TW9kKCk7CisgICAgICAgICAgICBjb21waWxlQXJpdGhEaXYoKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRoTW9kOgotICAgICAgICAgICAgY29t
cGlsZUFyaXRoRGl2TW9kKCk7CisgICAgICAgICAgICBjb21waWxlQXJpdGhNb2QoKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRoTWluOgogICAgICAgICBjYXNlIEFyaXRo
TWF4OgpAQCAtMjg2LDYgKzMyNiwxNSBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEFyaXRoQWJz
OgogICAgICAgICAgICAgY29tcGlsZUFyaXRoQWJzKCk7CiAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBcml0aFNpbjoKKyAgICAgICAgICAgIGNvbXBpbGVBcml0aFNpbigpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQXJpdGhDb3M6CisgICAgICAgICAgICBjb21w
aWxlQXJpdGhDb3MoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFyaXRoU3Fy
dDoKKyAgICAgICAgICAgIGNvbXBpbGVBcml0aFNxcnQoKTsKKyAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIEFyaXRoTmVnYXRlOgogICAgICAgICAgICAgY29tcGlsZUFyaXRoTmVnYXRl
KCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTMyMiw2ICszNzEsOSBAQCBwcml2YXRlOgogICAg
ICAgICBjYXNlIENoZWNrRnVuY3Rpb246CiAgICAgICAgICAgICBjb21waWxlQ2hlY2tGdW5jdGlv
bigpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ2hlY2tFeGVjdXRhYmxlOgor
ICAgICAgICAgICAgY29tcGlsZUNoZWNrRXhlY3V0YWJsZSgpOworICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVyZToKICAgICAgICAgICAgIGNvbXBpbGVB
cnJheWlmeVRvU3RydWN0dXJlKCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTMzNCw2ICszODYs
NyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEdldEJ5SWQ6CiAgICAgICAgICAgICBjb21waWxl
R2V0QnlJZCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUHV0QnlJZERpcmVj
dDoKICAgICAgICAgY2FzZSBQdXRCeUlkOgogICAgICAgICAgICAgY29tcGlsZVB1dEJ5SWQoKTsK
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzcyLDkgKzQyNSwxOCBAQCBwcml2YXRlOgogICAgICAg
ICBjYXNlIE5ld0FycmF5QnVmZmVyOgogICAgICAgICAgICAgY29tcGlsZU5ld0FycmF5QnVmZmVy
KCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOZXdBcnJheVdpdGhTaXplOgor
ICAgICAgICAgICAgY29tcGlsZU5ld0FycmF5V2l0aFNpemUoKTsKKyAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAgICAgICAgICAgY29t
cGlsZUFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBUb1N0cmluZzoKKyAgICAgICAgICAgIGNvbXBpbGVUb1N0cmluZygpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWFrZVJvcGU6CisgICAgICAgICAgICBjb21waWxl
TWFrZVJvcGUoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFN0cmluZ0NoYXJB
dDoKICAgICAgICAgICAgIGNvbXBpbGVTdHJpbmdDaGFyQXQoKTsKICAgICAgICAgICAgIGJyZWFr
OwpAQCAtMzk2LDYgKzQ1OCwxMiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIE5vdGlmeVdyaXRl
OgogICAgICAgICAgICAgY29tcGlsZU5vdGlmeVdyaXRlKCk7CiAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBHZXRDYWxsZWU6CisgICAgICAgICAgICBjb21waWxlR2V0Q2FsbGVlKCk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHZXRTY29wZToKKyAgICAgICAgICAg
IGNvbXBpbGVHZXRTY29wZSgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR2V0
TXlTY29wZToKICAgICAgICAgICAgIGNvbXBpbGVHZXRNeVNjb3BlKCk7CiAgICAgICAgICAgICBi
cmVhazsKQEAgLTQ2Niw2ICs1MzQsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBJbnQ1MlRv
VmFsdWU6CiAgICAgICAgICAgICBjb21waWxlSW50NTJUb1ZhbHVlKCk7CiAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBDaGVja0FyZ3VtZW50c05vdENyZWF0ZWQ6CisgICAgICAgICAg
ICBjb21waWxlQ2hlY2tBcmd1bWVudHNOb3RDcmVhdGVkKCk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBDb3VudEV4ZWN1dGlvbjoKKyAgICAgICAgICAgIGNvbXBpbGVDb3VudEV4
ZWN1dGlvbigpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3RvcmVCYXJyaWVy
OgogICAgICAgICAgICAgY29tcGlsZVN0b3JlQmFycmllcigpOwogICAgICAgICAgICAgYnJlYWs7
CkBAIC00ODIsNiArNTU2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBWYXJpYWJsZVdhdGNo
cG9pbnQ6CiAgICAgICAgIGNhc2UgRnVuY3Rpb25SZWVudHJ5V2F0Y2hwb2ludDoKICAgICAgICAg
Y2FzZSBUeXBlZEFycmF5V2F0Y2hwb2ludDoKKyAgICAgICAgY2FzZSBBbGxvY2F0aW9uUHJvZmls
ZVdhdGNocG9pbnQ6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC04MTUsMjQgKzg5MCw1MyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKSwgbG93
SlNWYWx1ZShtX25vZGUtPmNoaWxkMigpKSkpOwogICAgIH0KICAgICAKLSAgICB2b2lkIGNvbXBp
bGVBZGRTdWIoKQorICAgIHZvaWQgY29tcGlsZUFyaXRoQWRkT3JTdWIoKQogICAgIHsKICAgICAg
ICAgYm9vbCBpc1N1YiA9ICBtX25vZGUtPm9wKCkgPT0gQXJpdGhTdWI7CiAgICAgICAgIHN3aXRj
aCAobV9ub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsKICAgICAgICAgY2FzZSBJbnQzMlVzZTogewog
ICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAg
ICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IGlzU3ViID8gbV9vdXQuc3ViKGxlZnQsIHJpZ2h0KSA6
IG1fb3V0LmFkZChsZWZ0LCByaWdodCk7CiAKICAgICAgICAgICAgIGlmICghc2hvdWxkQ2hlY2tP
dmVyZmxvdyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgewotICAgICAgICAgICAgICAgIHNldEludDMy
KHJlc3VsdCk7CisgICAgICAgICAgICAgICAgc2V0SW50MzIoaXNTdWIgPyBtX291dC5zdWIobGVm
dCwgcmlnaHQpIDogbV9vdXQuYWRkKGxlZnQsIHJpZ2h0KSk7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIExWYWx1ZSBvdmVyZmxvdyA9IGlzU3Vi
ID8gbV9vdXQuc3ViV2l0aE92ZXJmbG93MzIobGVmdCwgcmlnaHQpIDogbV9vdXQuYWRkV2l0aE92
ZXJmbG93MzIobGVmdCwgcmlnaHQpOworICAgICAgICAgICAgTFZhbHVlIHJlc3VsdDsKKyAgICAg
ICAgICAgIGlmICghaXNTdWIpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC5hZGRX
aXRoT3ZlcmZsb3czMihsZWZ0LCByaWdodCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgaWYgKGRvZXNLaWxsKG1fbm9kZS0+Y2hpbGQyKCkpKSB7CisgICAgICAgICAgICAgICAg
ICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9ub2Rl
LT5jaGlsZDIoKSwgU3ViUmVjb3ZlcnksCisgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5l
eHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgbGVmdCwgVmFsdWVGb3JtYXRJbnQzMik7CisgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChkb2VzS2lsbChtX25vZGUtPmNoaWxkMSgpKSkgeworICAgICAg
ICAgICAgICAgICAgICBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG1fbm9kZS0+Y2hpbGQxKCksIFN1YlJlY292ZXJ5LAorICAgICAgICAgICAgICAgICAgICAg
ICAgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCksIHJpZ2h0LCBWYWx1ZUZvcm1hdEludDMy
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgIHJlc3VsdCA9IG1fb3V0LnN1YldpdGhPdmVyZmxvdzMyKGxlZnQsIHJpZ2h0KTsKKyAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZG9lc0tpbGwobV9ub2RlLT5jaGlsZDIo
KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzdWx0ID0gbGVmdCAtIHJpZ2h0CisgICAg
ICAgICAgICAgICAgICAgIC8vIHJlc3VsdCAtIGxlZnQgPSAtcmlnaHQKKyAgICAgICAgICAgICAg
ICAgICAgLy8gcmlnaHQgPSBsZWZ0IC0gcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIGFkZEF2
YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5jaGlsZDIo
KSwgU3ViUmVjb3ZlcnksCisgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0LCBtX291dC5leHRy
YWN0VmFsdWUocmVzdWx0LCAwKSwgVmFsdWVGb3JtYXRJbnQzMik7CisgICAgICAgICAgICAgICAg
fSBlbHNlIGlmIChkb2VzS2lsbChtX25vZGUtPmNoaWxkMSgpKSkgeworICAgICAgICAgICAgICAg
ICAgICAvLyByZXN1bHQgPSBsZWZ0IC0gcmlnaHQKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVz
dWx0ICsgcmlnaHQgPSBsZWZ0CisgICAgICAgICAgICAgICAgICAgIGFkZEF2YWlsYWJsZVJlY292
ZXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5jaGlsZDEoKSwgQWRkUmVjb3Zl
cnksCisgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAw
KSwgcmlnaHQsIFZhbHVlRm9ybWF0SW50MzIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KIAotICAgICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1f
b3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvdywgMSkpOwotICAgICAgICAgICAgc2V0SW50MzIocmVz
dWx0KTsKKyAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291
dC5leHRyYWN0VmFsdWUocmVzdWx0LCAxKSk7CisgICAgICAgICAgICBzZXRJbnQzMihtX291dC5l
eHRyYWN0VmFsdWUocmVzdWx0LCAwKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICAgICAgCkBAIC04NDgsMTEgKzk1Miw0MSBAQCBwcml2YXRlOgogICAgICAgICAgICAg
CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0ludDUyKG1fbm9kZS0+Y2hpbGQxKCkpOwog
ICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SW50NTIobV9ub2RlLT5jaGlsZDIoKSk7Ci0g
ICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gaXNTdWIgPyBtX291dC5zdWIobGVmdCwgcmlnaHQp
IDogbV9vdXQuYWRkKGxlZnQsIHJpZ2h0KTsKIAotICAgICAgICAgICAgTFZhbHVlIG92ZXJmbG93
ID0gaXNTdWIgPyBtX291dC5zdWJXaXRoT3ZlcmZsb3c2NChsZWZ0LCByaWdodCkgOiBtX291dC5h
ZGRXaXRoT3ZlcmZsb3c2NChsZWZ0LCByaWdodCk7Ci0gICAgICAgICAgICBzcGVjdWxhdGUoSW50
NTJPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3csIDEp
KTsKLSAgICAgICAgICAgIHNldEludDUyKHJlc3VsdCk7CisgICAgICAgICAgICBMVmFsdWUgcmVz
dWx0OworICAgICAgICAgICAgaWYgKCFpc1N1YikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9
IG1fb3V0LmFkZFdpdGhPdmVyZmxvdzY0KGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICBpZiAoZG9lc0tpbGwobV9ub2RlLT5jaGlsZDIoKSkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgICAg
ICAgICBtX25vZGUtPmNoaWxkMigpLCBTdWJSZWNvdmVyeSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApLCBsZWZ0LCBWYWx1ZUZvcm1hdEludDUy
KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRvZXNLaWxsKG1fbm9kZS0+Y2hpbGQxKCkp
KSB7CisgICAgICAgICAgICAgICAgICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAg
ICAgICAgICAgICAgICAgbV9ub2RlLT5jaGlsZDEoKSwgU3ViUmVjb3ZlcnksCisgICAgICAgICAg
ICAgICAgICAgICAgICBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgcmlnaHQsIFZhbHVl
Rm9ybWF0SW50NTIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQuc3ViV2l0aE92ZXJmbG93NjQobGVmdCwgcmln
aHQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChkb2VzS2lsbChtX25v
ZGUtPmNoaWxkMigpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyByZXN1bHQgPSBsZWZ0IC0g
cmlnaHQKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzdWx0IC0gbGVmdCA9IC1yaWdodAorICAg
ICAgICAgICAgICAgICAgICAvLyByaWdodCA9IGxlZnQgLSByZXN1bHQKKyAgICAgICAgICAgICAg
ICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgICAgICAgICBtX25v
ZGUtPmNoaWxkMigpLCBTdWJSZWNvdmVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQs
IG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApLCBWYWx1ZUZvcm1hdEludDUyKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKGRvZXNLaWxsKG1fbm9kZS0+Y2hpbGQxKCkpKSB7CisgICAg
ICAgICAgICAgICAgICAgIC8vIHJlc3VsdCA9IGxlZnQgLSByaWdodAorICAgICAgICAgICAgICAg
ICAgICAvLyByZXN1bHQgKyByaWdodCA9IGxlZnQKKyAgICAgICAgICAgICAgICAgICAgYWRkQXZh
aWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmNoaWxkMSgp
LCBBZGRSZWNvdmVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmV4dHJhY3RWYWx1
ZShyZXN1bHQsIDApLCByaWdodCwgVmFsdWVGb3JtYXRJbnQ1Mik7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzcGVjdWxhdGUoSW50NTJPdmVyZmxvdywg
bm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAxKSk7CisgICAgICAgICAg
ICBzZXRJbnQ1MihtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC04NzYsMTEgKzEwMTAsMTUgQEAgcHJp
dmF0ZToKICAgICAgICAgY2FzZSBJbnQzMlVzZTogewogICAgICAgICAgICAgTFZhbHVlIGxlZnQg
PSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIExWYWx1ZSByaWdodCA9
IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9
IG1fb3V0Lm11bChsZWZ0LCByaWdodCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1
ZSByZXN1bHQ7CiAKLSAgICAgICAgICAgIGlmIChzaG91bGRDaGVja092ZXJmbG93KG1fbm9kZS0+
YXJpdGhNb2RlKCkpKSB7CisgICAgICAgICAgICBpZiAoIXNob3VsZENoZWNrT3ZlcmZsb3cobV9u
b2RlLT5hcml0aE1vZGUoKSkpCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQubXVsKGxl
ZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIExWYWx1ZSBv
dmVyZmxvd1Jlc3VsdCA9IG1fb3V0Lm11bFdpdGhPdmVyZmxvdzMyKGxlZnQsIHJpZ2h0KTsKICAg
ICAgICAgICAgICAgICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgbV9vdXQuZXh0
cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAxKSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0g
bV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAwKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9k
ZS0+YXJpdGhNb2RlKCkpKSB7CkBAIC05MDQsMTEgKzEwNDIsMTAgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIEludDUyS2luZCBraW5kOwogICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dXaGlj
aGV2ZXJJbnQ1MihtX25vZGUtPmNoaWxkMSgpLCBraW5kKTsKICAgICAgICAgICAgIExWYWx1ZSBy
aWdodCA9IGxvd0ludDUyKG1fbm9kZS0+Y2hpbGQyKCksIG9wcG9zaXRlKGtpbmQpKTsKLSAgICAg
ICAgICAgIExWYWx1ZSByZXN1bHQgPSBtX291dC5tdWwobGVmdCwgcmlnaHQpOwotCiAKICAgICAg
ICAgICAgIExWYWx1ZSBvdmVyZmxvd1Jlc3VsdCA9IG1fb3V0Lm11bFdpdGhPdmVyZmxvdzY0KGxl
ZnQsIHJpZ2h0KTsKICAgICAgICAgICAgIHNwZWN1bGF0ZShJbnQ1Mk92ZXJmbG93LCBub1ZhbHVl
KCksIDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMSkpOworICAgICAgICAg
ICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMCk7
CiAKICAgICAgICAgICAgIGlmIChzaG91bGRDaGVja05lZ2F0aXZlWmVybyhtX25vZGUtPmFyaXRo
TW9kZSgpKSkgewogICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dDYXNlID0gRlRMX05F
V19CTE9DSyhtX291dCwgKCJBcml0aE11bCBzbG93IGNhc2UiKSk7CkBAIC05MzksMTYgKzEwNzYs
MTYgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgIH0KIAotICAgIHZvaWQgY29tcGlsZUFyaXRo
RGl2TW9kKCkKKyAgICB2b2lkIGNvbXBpbGVBcml0aERpdigpCiAgICAgewogICAgICAgICBzd2l0
Y2ggKG1fbm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CiAgICAgICAgIGNhc2UgSW50MzJVc2U6IHsK
ICAgICAgICAgICAgIExWYWx1ZSBudW1lcmF0b3IgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgp
KTsKICAgICAgICAgICAgIExWYWx1ZSBkZW5vbWluYXRvciA9IGxvd0ludDMyKG1fbm9kZS0+Y2hp
bGQyKCkpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBMQmFzaWNCbG9jayB1bnNhZmVEZW5v
bWluYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXZNb2QgdW5zYWZlIGRlbm9t
aW5hdG9yIikpOwotICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05F
V19CTE9DSyhtX291dCwgKCJBcml0aERpdk1vZCBjb250aW51YXRpb24iKSk7Ci0gICAgICAgICAg
ICBMQmFzaWNCbG9jayBkb25lID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdk1vZCBk
b25lIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgdW5zYWZlRGVub21pbmF0b3IgPSBGVExf
TkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2IHVuc2FmZSBkZW5vbWluYXRvciIpKTsKKyAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgi
QXJpdGhEaXYgY29udGludWF0aW9uIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgZG9uZSA9
IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXYgZG9uZSIpKTsKICAgICAgICAgICAgIAog
ICAgICAgICAgICAgVmVjdG9yPFZhbHVlRnJvbUJsb2NrLCAzPiByZXN1bHRzOwogICAgICAgICAg
ICAgCkBAIC05OTEsOCArMTEyOCw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBtX291dC5hcHBl
bmRUbyhjb250aW51YXRpb24sIGRvbmUpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAo
c2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKLSAgICAgICAg
ICAgICAgICBMQmFzaWNCbG9jayB6ZXJvTnVtZXJhdG9yID0gRlRMX05FV19CTE9DSyhtX291dCwg
KCJBcml0aERpdk1vZCB6ZXJvIG51bWVyYXRvciIpKTsKLSAgICAgICAgICAgICAgICBMQmFzaWNC
bG9jayBudW1lcmF0b3JDb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRo
RGl2TW9kIG51bWVyYXRvciBjb250aW51YXRpb24iKSk7CisgICAgICAgICAgICAgICAgTEJhc2lj
QmxvY2sgemVyb051bWVyYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXYgemVy
byBudW1lcmF0b3IiKSk7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbnVtZXJhdG9yQ29u
dGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdiBudW1lcmF0b3IgY29u
dGludWF0aW9uIikpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIG1fb3V0LmJy
YW5jaChtX291dC5pc1plcm8zMihudW1lcmF0b3IpLCB6ZXJvTnVtZXJhdG9yLCBudW1lcmF0b3JD
b250aW51YXRpb24pOwogICAgICAgICAgICAgICAgIApAQCAtMTAwNiwxNyArMTE0MywxNSBAQCBw
cml2YXRlOgogICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG51bWVyYXRvckNvbnRpbnVh
dGlvbiwgaW5uZXJMYXN0TmV4dCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIExWYWx1ZSBkaXZNb2RSZXN1bHQgPSBtX25vZGUtPm9wKCkgPT0gQXJpdGhEaXYKLSAg
ICAgICAgICAgICAgICA/IG1fb3V0LmRpdihudW1lcmF0b3IsIGRlbm9taW5hdG9yKQotICAgICAg
ICAgICAgICAgIDogbV9vdXQucmVtKG51bWVyYXRvciwgZGVub21pbmF0b3IpOworICAgICAgICAg
ICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LmRpdihudW1lcmF0b3IsIGRlbm9taW5hdG9yKTsKICAg
ICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrT3ZlcmZsb3cobV9ub2RlLT5h
cml0aE1vZGUoKSkpIHsKICAgICAgICAgICAgICAgICBzcGVjdWxhdGUoCiAgICAgICAgICAgICAg
ICAgICAgIE92ZXJmbG93LCBub1ZhbHVlKCksIDAsCi0gICAgICAgICAgICAgICAgICAgIG1fb3V0
Lm5vdEVxdWFsKG1fb3V0Lm11bChkaXZNb2RSZXN1bHQsIGRlbm9taW5hdG9yKSwgbnVtZXJhdG9y
KSk7CisgICAgICAgICAgICAgICAgICAgIG1fb3V0Lm5vdEVxdWFsKG1fb3V0Lm11bChyZXN1bHQs
IGRlbm9taW5hdG9yKSwgbnVtZXJhdG9yKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAK
LSAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihkaXZNb2RSZXN1bHQpKTsK
KyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihyZXN1bHQpKTsKICAgICAg
ICAgICAgIG1fb3V0Lmp1bXAoZG9uZSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKGRvbmUsIGxhc3ROZXh0KTsKQEAgLTEwMjYsOSArMTE2MSw4IEBAIHByaXZhdGU6
CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNlIE51bWJlclVzZTogewotICAg
ICAgICAgICAgTFZhbHVlIEMxID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAg
ICAgICAgTFZhbHVlIEMyID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAg
ICAgc2V0RG91YmxlKG1fbm9kZS0+b3AoKSA9PSBBcml0aERpdiA/IG1fb3V0LmRvdWJsZURpdihD
MSwgQzIpIDogbV9vdXQuZG91YmxlUmVtKEMxLCBDMikpOworICAgICAgICAgICAgc2V0RG91Ymxl
KG1fb3V0LmRvdWJsZURpdigKKyAgICAgICAgICAgICAgICBsb3dEb3VibGUobV9ub2RlLT5jaGls
ZDEoKSksIGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMigpKSkpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtMTAzOCw2ICsxMTcyLDk5IEBAIHByaXZhdGU6
CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgdm9pZCBjb21waWxlQXJpdGhNb2QoKQorICAg
IHsKKyAgICAgICAgc3dpdGNoIChtX25vZGUtPmJpbmFyeVVzZUtpbmQoKSkgeworICAgICAgICBj
YXNlIEludDMyVXNlOiB7CisgICAgICAgICAgICBMVmFsdWUgbnVtZXJhdG9yID0gbG93SW50MzIo
bV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBMVmFsdWUgZGVub21pbmF0b3IgPSBsb3dJ
bnQzMihtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTEJhc2lj
QmxvY2sgdW5zYWZlRGVub21pbmF0b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9k
IHVuc2FmZSBkZW5vbWluYXRvciIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVh
dGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgY29udGludWF0aW9uIikpOwor
ICAgICAgICAgICAgTEJhc2ljQmxvY2sgZG9uZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJp
dGhNb2QgZG9uZSIpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVmVjdG9yPFZhbHVlRnJv
bUJsb2NrLCAzPiByZXN1bHRzOworICAgICAgICAgICAgCisgICAgICAgICAgICBMVmFsdWUgYWRq
dXN0ZWREZW5vbWluYXRvciA9IG1fb3V0LmFkZChkZW5vbWluYXRvciwgbV9vdXQuaW50MzJPbmUp
OworICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQuYWJvdmUoYWRq
dXN0ZWREZW5vbWluYXRvciwgbV9vdXQuaW50MzJPbmUpLCBjb250aW51YXRpb24sIHVuc2FmZURl
bm9taW5hdG9yKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5l
eHQgPSBtX291dC5hcHBlbmRUbyh1bnNhZmVEZW5vbWluYXRvciwgY29udGludWF0aW9uKTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVlIG5lZzJUb1RoZTMxID0gbV9vdXQuY29uc3RJ
bnQzMigtMjE0NzQ4MzY0Ny0xKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gRklYTUU6
IC0yXjMxIC8gLTEgd2lsbCBhY3R1YWxseSB5aWVsZCBuZWdhdGl2ZSB6ZXJvLCBzbyB3ZSBjb3Vs
ZCBoYXZlIGEKKyAgICAgICAgICAgIC8vIHNlcGFyYXRlIGNhc2UgZm9yIHRoYXQuIEJ1dCBpdCBw
cm9iYWJseSBkb2Vzbid0IG1hdHRlciBzbyBtdWNoLgorICAgICAgICAgICAgaWYgKHNob3VsZENo
ZWNrT3ZlcmZsb3cobV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKKyAgICAgICAgICAgICAgICBMVmFs
dWUgY29uZCA9IG1fb3V0LmJpdE9yKG1fb3V0LmlzWmVybzMyKGRlbm9taW5hdG9yKSwgbV9vdXQu
ZXF1YWwobnVtZXJhdG9yLCBuZWcyVG9UaGUzMSkpOworICAgICAgICAgICAgICAgIHNwZWN1bGF0
ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBjb25kKTsKKyAgICAgICAgICAgICAgICBtX291dC5q
dW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IC8vIFRoaXMgaXMgdGhlIGNhc2Ugd2hlcmUgd2UgY29udmVydCB0aGUgcmVzdWx0IHRvIGFuIGlu
dCBhZnRlciB3ZSdyZSBkb25lLiBTbywKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZGVub21p
bmF0b3IgaXMgemVybywgdGhlbiB0aGUgcmVzdWx0IHNob3VsZCBiZSByZXN1bHQgc2hvdWxkIGJl
IHplcm8uCisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGRlbm9taW5hdG9yIGlzIG5vdCB6ZXJv
IChpLmUuIGl0J3MgLTEgYmVjYXVzZSB3ZSdyZSBndWFyZGVkIGJ5IHRoZQorICAgICAgICAgICAg
ICAgIC8vIGNoZWNrIGFib3ZlKSBhbmQgdGhlIG51bWVyYXRvciBpcyAtMl4zMSB0aGVuIHRoZSBy
ZXN1bHQgc2hvdWxkIGJlIC0yXjMxLgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IExCYXNpY0Jsb2NrIG1vZEJ5WmVybyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2Qg
bW9kdWxvIGJ5IHplcm8iKSk7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbm90TW9kQnla
ZXJvID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCBub3QgbW9kdWxvIGJ5IHplcm8i
KSk7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbmVnMlRvVGhlMzFCeU5lZzEgPSBGVExf
TkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIC0yXjMxLy0xIikpOworICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc1plcm8zMihkZW5vbWluYXRv
ciksIG1vZEJ5WmVybywgbm90TW9kQnlaZXJvKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICBtX291dC5hcHBlbmRUbyhtb2RCeVplcm8sIG5vdE1vZEJ5WmVybyk7CisgICAgICAg
ICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKG1fb3V0LmludDMyWmVybykpOwor
ICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoZG9uZSk7CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90TW9kQnlaZXJvLCBuZWcyVG9UaGUzMUJ5TmVn
MSk7CisgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0LmVxdWFsKG51bWVyYXRvciwg
bmVnMlRvVGhlMzEpLCBuZWcyVG9UaGUzMUJ5TmVnMSwgY29udGludWF0aW9uKTsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhuZWcyVG9UaGUzMUJ5TmVn
MSwgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5h
bmNob3IobV9vdXQuaW50MzJaZXJvKSk7CisgICAgICAgICAgICAgICAgbV9vdXQuanVtcChkb25l
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5k
VG8oY29udGludWF0aW9uLCBkb25lKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVl
IHJlbWFpbmRlciA9IG1fb3V0LnJlbShudW1lcmF0b3IsIGRlbm9taW5hdG9yKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJp
dGhNb2RlKCkpKSB7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbmVnYXRpdmVOdW1lcmF0
b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIG5lZ2F0aXZlIG51bWVyYXRvciIp
KTsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBudW1lcmF0b3JDb250aW51YXRpb24gPSBG
VExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIG51bWVyYXRvciBjb250aW51YXRpb24iKSk7
CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAg
ICAgICAgICAgICAgICBtX291dC5sZXNzVGhhbihudW1lcmF0b3IsIG1fb3V0LmludDMyWmVybyks
CisgICAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlTnVtZXJhdG9yLCBudW1lcmF0b3JDb250aW51
YXRpb24pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGlu
bmVyTGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhuZWdhdGl2ZU51bWVyYXRvciwgbnVtZXJhdG9y
Q29udGludWF0aW9uKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzcGVjdWxh
dGUoTmVnYXRpdmVaZXJvLCBub1ZhbHVlKCksIDAsIG1fb3V0LmlzWmVybzMyKHJlbWFpbmRlcikp
OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAobnVtZXJhdG9y
Q29udGludWF0aW9uKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5h
cHBlbmRUbyhudW1lcmF0b3JDb250aW51YXRpb24sIGlubmVyTGFzdE5leHQpOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNo
b3IocmVtYWluZGVyKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKGRvbmUpOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhkb25lLCBsYXN0TmV4dCk7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIHNldEludDMyKG1fb3V0LnBoaShtX291dC5pbnQzMiwgcmVzdWx0
cykpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAg
ICBjYXNlIE51bWJlclVzZTogeworICAgICAgICAgICAgc2V0RG91YmxlKAorICAgICAgICAgICAg
ICAgIG1fb3V0LmRvdWJsZVJlbShsb3dEb3VibGUobV9ub2RlLT5jaGlsZDEoKSksIGxvd0RvdWJs
ZShtX25vZGUtPmNoaWxkMigpKSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgICAgIAorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCiAg
ICAgdm9pZCBjb21waWxlQXJpdGhNaW5Pck1heCgpCiAgICAgewogICAgICAgICBzd2l0Y2ggKG1f
bm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CkBAIC0xMTE0LDYgKzEzNDEsMTIgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQorCisgICAgdm9pZCBjb21waWxl
QXJpdGhTaW4oKSB7IHNldERvdWJsZShtX291dC5kb3VibGVTaW4obG93RG91YmxlKG1fbm9kZS0+
Y2hpbGQxKCkpKSk7IH0KKworICAgIHZvaWQgY29tcGlsZUFyaXRoQ29zKCkgeyBzZXREb3VibGUo
bV9vdXQuZG91YmxlQ29zKGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKSkpOyB9CisKKyAgICB2
b2lkIGNvbXBpbGVBcml0aFNxcnQoKSB7IHNldERvdWJsZShtX291dC5kb3VibGVTcXJ0KGxvd0Rv
dWJsZShtX25vZGUtPmNoaWxkMSgpKSkpOyB9CiAgICAgCiAgICAgdm9pZCBjb21waWxlQXJpdGhO
ZWdhdGUoKQogICAgIHsKQEAgLTExMjEsMTYgKzEzNTQsMTggQEAgcHJpdmF0ZToKICAgICAgICAg
Y2FzZSBJbnQzMlVzZTogewogICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93SW50MzIobV9u
b2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIExWYWx1ZSByZXN1bHQg
PSBtX291dC5uZWcodmFsdWUpOwotICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrT3ZlcmZsb3co
bV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXNob3VsZENoZWNr
TmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IC8vIFdlIGRvbid0IGhhdmUgYSBuZWdhdGUtd2l0aC1vdmVyZmxvdyBpbnRyaW5zaWMuIEhvcGVm
dWxseSB0aGlzCi0gICAgICAgICAgICAgICAgICAgIC8vIGRvZXMgdGhlIHRyaWNrLCB0aG91Z2gu
Ci0gICAgICAgICAgICAgICAgICAgIExWYWx1ZSBvdmVyZmxvd1Jlc3VsdCA9IG1fb3V0LnN1Yldp
dGhPdmVyZmxvdzMyKG1fb3V0LmludDMyWmVybywgdmFsdWUpOwotICAgICAgICAgICAgICAgICAg
ICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgbV9vdXQuZXh0cmFjdFZhbHVlKG92
ZXJmbG93UmVzdWx0LCAxKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAg
ICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC50ZXN0SXNaZXJv
MzIodmFsdWUsIG1fb3V0LmNvbnN0SW50MzIoMHg3ZmZmZmZmZikpKTsKLQorICAgICAgICAgICAg
TFZhbHVlIHJlc3VsdDsKKyAgICAgICAgICAgIGlmICghc2hvdWxkQ2hlY2tPdmVyZmxvdyhtX25v
ZGUtPmFyaXRoTW9kZSgpKSkKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC5uZWcodmFs
dWUpOworICAgICAgICAgICAgZWxzZSBpZiAoIXNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9k
ZS0+YXJpdGhNb2RlKCkpKSB7CisgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGF2ZSBhIG5l
Z2F0ZS13aXRoLW92ZXJmbG93IGludHJpbnNpYy4gSG9wZWZ1bGx5IHRoaXMKKyAgICAgICAgICAg
ICAgICAvLyBkb2VzIHRoZSB0cmljaywgdGhvdWdoLgorICAgICAgICAgICAgICAgIExWYWx1ZSBv
dmVyZmxvd1Jlc3VsdCA9IG1fb3V0LnN1YldpdGhPdmVyZmxvdzMyKG1fb3V0LmludDMyWmVybywg
dmFsdWUpOworICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAw
LCBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDEpKTsKKyAgICAgICAgICAgICAg
ICByZXN1bHQgPSBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDApOworICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFs
dWUoKSwgMCwgbV9vdXQudGVzdElzWmVybzMyKHZhbHVlLCBtX291dC5jb25zdEludDMyKDB4N2Zm
ZmZmZmYpKSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQubmVnKHZhbHVlKTsKICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgc2V0SW50MzIocmVzdWx0KTsKQEAgLTExNTEsNyAr
MTM4Niw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dJbnQ1Miht
X25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIExWYWx1ZSBvdmVyZmxvd1Jlc3VsdCA9IG1f
b3V0LnN1YldpdGhPdmVyZmxvdzY0KG1fb3V0LmludDY0WmVybywgdmFsdWUpOwogICAgICAgICAg
ICAgc3BlY3VsYXRlKEludDUyT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgbV9vdXQuZXh0cmFjdFZh
bHVlKG92ZXJmbG93UmVzdWx0LCAxKSk7Ci0gICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9v
dXQubmVnKHZhbHVlKTsKKyAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBtX291dC5leHRyYWN0
VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDApOwogICAgICAgICAgICAgc3BlY3VsYXRlKE5lZ2F0aXZl
WmVybywgbm9WYWx1ZSgpLCAwLCBtX291dC5pc1plcm82NChyZXN1bHQpKTsKICAgICAgICAgICAg
IHNldEludDUyKHJlc3VsdCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTEyNzUsNiArMTUxMCwx
NyBAQCBwcml2YXRlOgogICAgICAgICAgICAgbV9vdXQubm90RXF1YWwoY2VsbCwgd2Vha1BvaW50
ZXIobV9ub2RlLT5mdW5jdGlvbigpKSkpOwogICAgIH0KICAgICAKKyAgICB2b2lkIGNvbXBpbGVD
aGVja0V4ZWN1dGFibGUoKQorICAgIHsKKyAgICAgICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxsKG1f
bm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAKKyAgICAgICAgc3BlY3VsYXRlKAorICAgICAgICAg
ICAgQmFkRXhlY3V0YWJsZSwganNWYWx1ZVZhbHVlKGNlbGwpLCBtX25vZGUtPmNoaWxkMSgpLm5v
ZGUoKSwKKyAgICAgICAgICAgIG1fb3V0Lm5vdEVxdWFsKAorICAgICAgICAgICAgICAgIG1fb3V0
LmxvYWRQdHIoY2VsbCwgbV9oZWFwcy5KU0Z1bmN0aW9uX2V4ZWN1dGFibGUpLAorICAgICAgICAg
ICAgICAgIHdlYWtQb2ludGVyKG1fbm9kZS0+ZXhlY3V0YWJsZSgpKSkpOworICAgIH0KKyAgICAK
ICAgICB2b2lkIGNvbXBpbGVBcnJheWlmeVRvU3RydWN0dXJlKCkKICAgICB7CiAgICAgICAgIExW
YWx1ZSBjZWxsID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKQEAgLTEzNzAsOCArMTYxNiw4
IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICBMVmFsdWUgY2FsbCA9IG1fb3V0LmNhbGwo
CiAgICAgICAgICAgICBtX291dC5wYXRjaHBvaW50SW50NjRJbnRyaW5zaWMoKSwKLSAgICAgICAg
ICAgIG1fb3V0LmNvbnN0SW50MzIoc3RhY2ttYXBJRCksIG1fb3V0LmNvbnN0SW50MzIoc2l6ZU9m
R2V0QnlJZCgpKSwKLSAgICAgICAgICAgIGNvbnN0TnVsbChtX291dC5yZWY4KSwgbV9vdXQuY29u
c3RJbnQzMigyKSwgbV9jYWxsRnJhbWUsIGJhc2UpOworICAgICAgICAgICAgbV9vdXQuY29uc3RJ
bnQ2NChzdGFja21hcElEKSwgbV9vdXQuY29uc3RJbnQzMihzaXplT2ZHZXRCeUlkKCkpLAorICAg
ICAgICAgICAgY29uc3ROdWxsKG1fb3V0LnJlZjgpLCBtX291dC5jb25zdEludDMyKDEpLCBiYXNl
KTsKICAgICAgICAgc2V0SW5zdHJ1Y3Rpb25DYWxsaW5nQ29udmVudGlvbihjYWxsLCBMTFZNQW55
UmVnQ2FsbENvbnYpOwogICAgICAgICBzZXRKU1ZhbHVlKGNhbGwpOwogICAgICAgICAKQEAgLTEz
OTUsOCArMTY0MSw4IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICBMVmFsdWUgY2FsbCA9
IG1fb3V0LmNhbGwoCiAgICAgICAgICAgICBtX291dC5wYXRjaHBvaW50Vm9pZEludHJpbnNpYygp
LAotICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihzdGFja21hcElEKSwgbV9vdXQuY29uc3RJ
bnQzMihzaXplT2ZQdXRCeUlkKCkpLAotICAgICAgICAgICAgY29uc3ROdWxsKG1fb3V0LnJlZjgp
LCBtX291dC5jb25zdEludDMyKDMpLCBtX2NhbGxGcmFtZSwgYmFzZSwgdmFsdWUpOworICAgICAg
ICAgICAgbV9vdXQuY29uc3RJbnQ2NChzdGFja21hcElEKSwgbV9vdXQuY29uc3RJbnQzMihzaXpl
T2ZQdXRCeUlkKCkpLAorICAgICAgICAgICAgY29uc3ROdWxsKG1fb3V0LnJlZjgpLCBtX291dC5j
b25zdEludDMyKDIpLCBiYXNlLCB2YWx1ZSk7CiAgICAgICAgIHNldEluc3RydWN0aW9uQ2FsbGlu
Z0NvbnZlbnRpb24oY2FsbCwgTExWTUFueVJlZ0NhbGxDb252KTsKICAgICAgICAgCiAgICAgICAg
IG1fZnRsU3RhdGUucHV0QnlJZHMuYXBwZW5kKFB1dEJ5SWREZXNjcmlwdG9yKApAQCAtMTQ2Mywy
MCArMTcwOSwyMCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjoKICAgICAg
ICAgY2FzZSBBcnJheTo6RG91YmxlOgogICAgICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOiB7
Ci0gICAgICAgICAgICBzZXRJbnQzMihtX291dC5sb2FkMzIobG93U3RvcmFnZShtX25vZGUtPmNo
aWxkMigpKSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKSk7CisgICAgICAgICAgICBz
ZXRJbnQzMihtX291dC5sb2FkMzJOb25OZWdhdGl2ZShsb3dTdG9yYWdlKG1fbm9kZS0+Y2hpbGQy
KCkpLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXJyYXk6OlN0cmluZzog
ewogICAgICAgICAgICAgTFZhbHVlIHN0cmluZyA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7
Ci0gICAgICAgICAgICBzZXRJbnQzMihtX291dC5sb2FkMzIoc3RyaW5nLCBtX2hlYXBzLkpTU3Ry
aW5nX2xlbmd0aCkpOworICAgICAgICAgICAgc2V0SW50MzIobV9vdXQubG9hZDMyTm9uTmVnYXRp
dmUoc3RyaW5nLCBtX2hlYXBzLkpTU3RyaW5nX2xlbmd0aCkpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
IGlmIChpc1R5cGVkVmlldyhtX25vZGUtPmFycmF5TW9kZSgpLnR5cGVkQXJyYXlUeXBlKCkpKSB7
CiAgICAgICAgICAgICAgICAgc2V0SW50MzIoCi0gICAgICAgICAgICAgICAgICAgIG1fb3V0Lmxv
YWQzMihsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpLCBtX2hlYXBzLkpTQXJyYXlCdWZmZXJWaWV3
X2xlbmd0aCkpOworICAgICAgICAgICAgICAgICAgICBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShs
b3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpLCBtX2hlYXBzLkpTQXJyYXlCdWZmZXJWaWV3X2xlbmd0
aCkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IApAQCAtMTUxOCw3ICsxNzY0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbCgKLSAg
ICAgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMihzdG9yYWdlLCBtX2hlYXBzLkJ1
dHRlcmZseV9wdWJsaWNMZW5ndGgpKSwKKyAgICAgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0
LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0
aCkpLAogICAgICAgICAgICAgICAgIHNsb3dDYXNlLCBmYXN0Q2FzZSk7CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oZmFzdENh
c2UsIHNsb3dDYXNlKTsKQEAgLTE1NjUsNyArMTgxMSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICBtX291dC5hYm92
ZU9yRXF1YWwoCi0gICAgICAgICAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2FkMzIoc3RvcmFn
ZSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKSksCisgICAgICAgICAgICAgICAgICAg
IGluZGV4LCBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShzdG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZs
eV9wdWJsaWNMZW5ndGgpKSwKICAgICAgICAgICAgICAgICBzbG93Q2FzZSwgaW5Cb3VuZHMpOwog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFw
cGVuZFRvKGluQm91bmRzLCBib3hQYXRoKTsKQEAgLTE2ODcsNiArMTkzMyw3IEBAIHByaXZhdGU6
CiAgICAgICAgIEVkZ2UgY2hpbGQyID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDEpOwog
ICAgICAgICBFZGdlIGNoaWxkMyA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAyKTsKICAg
ICAgICAgRWRnZSBjaGlsZDQgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMyk7CisgICAg
ICAgIEVkZ2UgY2hpbGQ1ID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDQpOwogICAgICAg
ICAKICAgICAgICAgc3dpdGNoIChtX25vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgewogICAgICAg
ICBjYXNlIEFycmF5OjpHZW5lcmljOiB7CkBAIC0xODAxLDYgKzIwNDgsOSBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0Lnplcm9FeHQoaW5kZXgsIG1fb3V0Lmlu
dFB0ciksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIobG9n
RWxlbWVudFNpemUodHlwZSkpKSkpOwogICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IExUeXBlIHJlZlR5cGU7CisgICAgICAgICAgICAgICAgTFZhbHVlIHZhbHVlVG9TdG9yZTsKKyAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAoaXNJbnQodHlwZSkpIHsKICAgICAg
ICAgICAgICAgICAgICAgTFZhbHVlIGludFZhbHVlOwogICAgICAgICAgICAgICAgICAgICBzd2l0
Y2ggKGNoaWxkMy51c2VLaW5kKCkpIHsKQEAgLTE4NzYsMzQgKzIxMjYsNTMgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZWxlbWVu
dFNpemUodHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAg
ICAgICAgICAgICAgbV9vdXQuc3RvcmU4KG1fb3V0LmludENhc3QoaW50VmFsdWUsIG1fb3V0Lmlu
dDgpLCBwb2ludGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlVG9TdG9yZSA9IG1f
b3V0LmludENhc3QoaW50VmFsdWUsIG1fb3V0LmludDgpOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmVmVHlwZSA9IG1fb3V0LnJlZjg7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgotICAgICAgICAgICAgICAgICAgICAgICAgbV9v
dXQuc3RvcmUxNihtX291dC5pbnRDYXN0KGludFZhbHVlLCBtX291dC5pbnQxNiksIHBvaW50ZXIp
OworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVUb1N0b3JlID0gbV9vdXQuaW50Q2FzdChp
bnRWYWx1ZSwgbV9vdXQuaW50MTYpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVmVHlwZSA9
IG1fb3V0LnJlZjE2OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAgICAgICAgIGNhc2UgNDoKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlMzIo
aW50VmFsdWUsIHBvaW50ZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVUb1N0b3Jl
ID0gaW50VmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICByZWZUeXBlID0gbV9vdXQucmVm
MzI7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgLyog
IWlzSW50KHR5cGUpICovIHsKKyAgICAgICAgICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93
RG91YmxlKGNoaWxkMyk7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAg
ICAgICAgICAgICAgICAgICBjYXNlIFR5cGVGbG9hdDMyOgorICAgICAgICAgICAgICAgICAgICAg
ICAgdmFsdWVUb1N0b3JlID0gbV9vdXQuZnBDYXN0KHZhbHVlLCBtX291dC5mbG9hdFR5cGUpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgcmVmVHlwZSA9IG1fb3V0LnJlZkZsb2F0OworICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVHlwZUZs
b2F0NjQ6CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVRvU3RvcmUgPSB2YWx1ZTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJlZlR5cGUgPSBtX291dC5yZWZEb3VibGU7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAg
ICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgQVNTRVJUKGlzRmxvYXQodHlwZSkpOwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0RvdWJsZShjaGlsZDMpOwotICAgICAgICAgICAg
ICAgIHN3aXRjaCAodHlwZSkgewotICAgICAgICAgICAgICAgIGNhc2UgVHlwZUZsb2F0MzI6Ci0g
ICAgICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlRmxvYXQobV9vdXQuZnBDYXN0KHZhbHVlLCBt
X291dC5mbG9hdFR5cGUpLCBwb2ludGVyKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgY2FzZSBUeXBlRmxvYXQ2NDoKLSAgICAgICAgICAgICAgICAgICAgbV9v
dXQuc3RvcmVEb3VibGUodmFsdWUsIHBvaW50ZXIpOwotICAgICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIGlmIChtX25vZGUtPmFycmF5
TW9kZSgpLmlzSW5Cb3VuZHMoKSkKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmUodmFs
dWVUb1N0b3JlLCBwb2ludGVyLCByZWZUeXBlKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgaXNJbkJvdW5kcyA9IEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiUHV0QnlWYWwgdHlwZWQgYXJyYXkgaW4gYm91bmRzIGNhc2UiKSk7CisgICAgICAg
ICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9v
dXQsICgiUHV0QnlWYWwgdHlwZWQgYXJyYXkgY29udGludWF0aW9uIikpOworICAgICAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAg
ICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFsKGluZGV4LCBsb3dJbnQzMihjaGlsZDUpKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVhdGlvbiwgaXNJbkJvdW5kcyk7CisgICAg
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4
dCA9IG1fb3V0LmFwcGVuZFRvKGlzSW5Cb3VuZHMsIGNvbnRpbnVhdGlvbik7CisgICAgICAgICAg
ICAgICAgICAgIG1fb3V0LnN0b3JlKHZhbHVlVG9TdG9yZSwgcG9pbnRlciwgcmVmVHlwZSk7Cisg
ICAgICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlv
biwgbGFzdE5leHQpOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTIwNjAs
NiArMjMyOSwxMDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKG1f
bm9kZS0+bnVtQ29uc3RhbnRzKCkpKSk7CiAgICAgfQogICAgIAorICAgIHZvaWQgY29tcGlsZU5l
d0FycmF5V2l0aFNpemUoKQorICAgIHsKKyAgICAgICAgTFZhbHVlIHB1YmxpY0xlbmd0aCA9IGxv
d0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAKKyAgICAgICAgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fbm9kZS0+Y29kZU9y
aWdpbik7CisgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5hcnJh
eVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oCisgICAgICAgICAgICBt
X25vZGUtPmluZGV4aW5nVHlwZSgpKTsKKyAgICAgICAgCisgICAgICAgIGlmICghZ2xvYmFsT2Jq
ZWN0LT5pc0hhdmluZ0FCYWRUaW1lKCkgJiYgIWhhc0FycmF5U3RvcmFnZShtX25vZGUtPmluZGV4
aW5nVHlwZSgpKSkgeworICAgICAgICAgICAgQVNTRVJUKAorICAgICAgICAgICAgICAgIGhhc1Vu
ZGVjaWRlZChzdHJ1Y3R1cmUtPmluZGV4aW5nVHlwZSgpKQorICAgICAgICAgICAgICAgIHx8IGhh
c0ludDMyKHN0cnVjdHVyZS0+aW5kZXhpbmdUeXBlKCkpCisgICAgICAgICAgICAgICAgfHwgaGFz
RG91YmxlKHN0cnVjdHVyZS0+aW5kZXhpbmdUeXBlKCkpCisgICAgICAgICAgICAgICAgfHwgaGFz
Q29udGlndW91cyhzdHJ1Y3R1cmUtPmluZGV4aW5nVHlwZSgpKSk7CisKKyAgICAgICAgICAgIExC
YXNpY0Jsb2NrIGZhc3RDYXNlID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOZXdBcnJheVdpdGhT
aXplIGZhc3QgY2FzZSIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhcmdlQ2FzZSA9IEZU
TF9ORVdfQkxPQ0sobV9vdXQsICgiTmV3QXJyYXlXaXRoU2l6ZSBsYXJnZSBjYXNlIikpOworICAg
ICAgICAgICAgTEJhc2ljQmxvY2sgZmFpbENhc2UgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk5l
d0FycmF5V2l0aFNpemUgZmFpbCBjYXNlIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgc2xv
d0Nhc2UgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk5ld0FycmF5V2l0aFNpemUgc2xvdyBjYXNl
IikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9D
SyhtX291dCwgKCJOZXdBcnJheVdpdGhTaXplIGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgICAgIG1fb3V0LmFib3Zl
T3JFcXVhbChwdWJsaWNMZW5ndGgsIG1fb3V0LmNvbnN0SW50MzIoTUlOX1NQQVJTRV9BUlJBWV9J
TkRFWCkpLAorICAgICAgICAgICAgICAgIGxhcmdlQ2FzZSwgZmFzdENhc2UpOworCisgICAgICAg
ICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGZhc3RDYXNlLCBsYXJn
ZUNhc2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBXZSBkb24ndCByb3VuZCB1cCB0
byBCQVNFX1ZFQ1RPUl9MRU4gZm9yIG5ldyBBcnJheShibGFoKS4KKyAgICAgICAgICAgIExWYWx1
ZSB2ZWN0b3JMZW5ndGggPSBwdWJsaWNMZW5ndGg7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IExWYWx1ZSBwYXlsb2FkU2l6ZSA9CisgICAgICAgICAgICAgICAgbV9vdXQuc2hsKG1fb3V0Lnpl
cm9FeHQodmVjdG9yTGVuZ3RoLCBtX291dC5pbnRQdHIpLCBtX291dC5jb25zdEludFB0cigzKSk7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBidXR0ZXJmbHlTaXplID0gbV9vdXQu
YWRkKAorICAgICAgICAgICAgICAgIHBheWxvYWRTaXplLCBtX291dC5jb25zdEludFB0cihzaXpl
b2YoSW5kZXhpbmdIZWFkZXIpKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBl
bmRPZlN0b3JhZ2UgPSBhbGxvY2F0ZUJhc2ljU3RvcmFnZUFuZEdldEVuZChidXR0ZXJmbHlTaXpl
LCBmYWlsQ2FzZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBidXR0ZXJmbHkg
PSBtX291dC5zdWIoZW5kT2ZTdG9yYWdlLCBwYXlsb2FkU2l6ZSk7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIExWYWx1ZSBvYmplY3QgPSBhbGxvY2F0ZU9iamVjdDxKU0FycmF5PigKKyAgICAg
ICAgICAgICAgICBtX291dC5jb25zdEludFB0cihzdHJ1Y3R1cmUpLCBidXR0ZXJmbHksIGZhaWxD
YXNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuc3RvcmUzMihwdWJsaWNMZW5n
dGgsIGJ1dHRlcmZseSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKTsKKyAgICAgICAg
ICAgIG1fb3V0LnN0b3JlMzIodmVjdG9yTGVuZ3RoLCBidXR0ZXJmbHksIG1faGVhcHMuQnV0dGVy
Zmx5X3ZlY3Rvckxlbmd0aCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChoYXNEb3Vi
bGUobV9ub2RlLT5pbmRleGluZ1R5cGUoKSkpIHsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9j
ayBpbml0TG9vcCA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiTmV3QXJyYXlXaXRoU2l6ZSBkb3Vi
bGUgaW5pdCBsb29wIikpOworICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGluaXREb25lID0g
RlRMX05FV19CTE9DSyhtX291dCwgKCJOZXdBcnJheVdpdGhTaXplIGRvdWJsZSBpbml0IGRvbmUi
KSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgb3Jp
Z2luYWxJbmRleCA9IG1fb3V0LmFuY2hvcih2ZWN0b3JMZW5ndGgpOworICAgICAgICAgICAgICAg
IFZhbHVlRnJvbUJsb2NrIG9yaWdpbmFsUG9pbnRlciA9IG1fb3V0LmFuY2hvcihidXR0ZXJmbHkp
OworICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5ub3RaZXJvMzIodmVjdG9yTGVu
Z3RoKSwgaW5pdExvb3AsIGluaXREb25lKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBMQmFzaWNCbG9jayBpbml0TGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhpbml0TG9vcCwg
aW5pdERvbmUpOworICAgICAgICAgICAgICAgIExWYWx1ZSBpbmRleCA9IG1fb3V0LnBoaShtX291
dC5pbnQzMiwgb3JpZ2luYWxJbmRleCk7CisgICAgICAgICAgICAgICAgTFZhbHVlIHBvaW50ZXIg
PSBtX291dC5waGkobV9vdXQuaW50UHRyLCBvcmlnaW5hbFBvaW50ZXIpOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlNjQoCisgICAgICAgICAgICAgICAgICAg
IG1fb3V0LmNvbnN0SW50NjQoYml0d2lzZV9jYXN0PGludDY0X3Q+KFFOYU4pKSwKKyAgICAgICAg
ICAgICAgICAgICAgVHlwZWRQb2ludGVyKG1faGVhcHMuaW5kZXhlZERvdWJsZVByb3BlcnRpZXMu
YXRBbnlJbmRleCgpLCBwb2ludGVyKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgTFZhbHVlIG5leHRJbmRleCA9IG1fb3V0LnN1YihpbmRleCwgbV9vdXQuaW50MzJPbmUpOwor
ICAgICAgICAgICAgICAgIGFkZEluY29taW5nKGluZGV4LCBtX291dC5hbmNob3IobmV4dEluZGV4
KSk7CisgICAgICAgICAgICAgICAgYWRkSW5jb21pbmcocG9pbnRlciwgbV9vdXQuYW5jaG9yKG1f
b3V0LmFkZChwb2ludGVyLCBtX291dC5pbnRQdHJFaWdodCkpKTsKKyAgICAgICAgICAgICAgICBt
X291dC5icmFuY2gobV9vdXQubm90WmVybzMyKG5leHRJbmRleCksIGluaXRMb29wLCBpbml0RG9u
ZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oaW5p
dERvbmUsIGluaXRMYXN0TmV4dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1bHQgPSBtX291dC5hbmNob3Iob2JqZWN0KTsK
KyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgbV9vdXQuYXBwZW5kVG8obGFyZ2VDYXNlLCBmYWlsQ2FzZSk7CisgICAgICAgICAg
ICBWYWx1ZUZyb21CbG9jayBsYXJnZVN0cnVjdHVyZSA9IG1fb3V0LmFuY2hvcihtX291dC5jb25z
dEludFB0cigKKyAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9y
SW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhBcnJheVN0b3JhZ2UpKSk7Cisg
ICAgICAgICAgICBtX291dC5qdW1wKHNsb3dDYXNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgbV9vdXQuYXBwZW5kVG8oZmFpbENhc2UsIHNsb3dDYXNlKTsKKyAgICAgICAgICAgIFZhbHVl
RnJvbUJsb2NrIGZhaWxTdHJ1Y3R1cmUgPSBtX291dC5hbmNob3IobV9vdXQuY29uc3RJbnRQdHIo
c3RydWN0dXJlKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKHNsb3dDYXNlKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2xvd0Nhc2UsIGNvbnRpbnVhdGlvbik7
CisgICAgICAgICAgICBMVmFsdWUgc3RydWN0dXJlVmFsdWUgPSBtX291dC5waGkoCisgICAgICAg
ICAgICAgICAgbV9vdXQuaW50UHRyLCBsYXJnZVN0cnVjdHVyZSwgZmFpbFN0cnVjdHVyZSk7Cisg
ICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBzbG93UmVzdWx0ID0gbV9vdXQuYW5jaG9yKHZtQ2Fs
bCgKKyAgICAgICAgICAgICAgICBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uTmV3QXJyYXlXaXRo
U2l6ZSksCisgICAgICAgICAgICAgICAgbV9jYWxsRnJhbWUsIHN0cnVjdHVyZVZhbHVlLCBwdWJs
aWNMZW5ndGgpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4
dCk7CisgICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LnBoaShtX291dC5pbnRQdHIsIGZhc3RS
ZXN1bHQsIHNsb3dSZXN1bHQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgTFZhbHVlIHN0cnVjdHVyZVZhbHVlID0gbV9vdXQuc2VsZWN0KAorICAg
ICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFsKHB1YmxpY0xlbmd0aCwgbV9vdXQuY29uc3RJbnQz
MihNSU5fU1BBUlNFX0FSUkFZX0lOREVYKSksCisgICAgICAgICAgICBtX291dC5jb25zdEludFB0
cigKKyAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhp
bmdUeXBlRHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhBcnJheVN0b3JhZ2UpKSwKKyAgICAgICAg
ICAgIG1fb3V0LmNvbnN0SW50UHRyKHN0cnVjdHVyZSkpOworICAgICAgICBzZXRKU1ZhbHVlKHZt
Q2FsbChtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZSksIG1fY2FsbEZy
YW1lLCBzdHJ1Y3R1cmVWYWx1ZSwgcHVibGljTGVuZ3RoKSk7CisgICAgfQorICAgIAogICAgIHZv
aWQgY29tcGlsZUFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKCkKICAgICB7CiAgICAgICAgIFN0cnVj
dHVyZVRyYW5zaXRpb25EYXRhJiBkYXRhID0gbV9ub2RlLT5zdHJ1Y3R1cmVUcmFuc2l0aW9uRGF0
YSgpOwpAQCAtMjEwMiw2ICsyNDc0LDE2MCBAQCBwcml2YXRlOgogICAgICAgICBzZXRTdG9yYWdl
KHJlc3VsdCk7CiAgICAgfQogICAgIAorICAgIHZvaWQgY29tcGlsZVRvU3RyaW5nKCkKKyAgICB7
CisgICAgICAgIHN3aXRjaCAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkpIHsKKyAgICAgICAg
Y2FzZSBTdHJpbmdPYmplY3RVc2U6IHsKKyAgICAgICAgICAgIExWYWx1ZSBjZWxsID0gbG93Q2Vs
bChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdEZv
ckNlbGwobV9ub2RlLT5jaGlsZDEoKSwgY2VsbCk7CisgICAgICAgICAgICBtX2ludGVycHJldGVy
LmZpbHRlcihtX25vZGUtPmNoaWxkMSgpLCBTcGVjU3RyaW5nT2JqZWN0KTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5sb2FkUHRyKGNlbGwsIG1faGVhcHMuSlNX
cmFwcGVyT2JqZWN0X2ludGVybmFsVmFsdWUpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgICAgICAgICAgCisgICAgICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6
IHsKKyAgICAgICAgICAgIExWYWx1ZSBjZWxsID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmUgPSBtX291dC5sb2FkUHRyKGNlbGwsIG1faGVh
cHMuSlNDZWxsX3N0cnVjdHVyZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExCYXNpY0Js
b2NrIG5vdFN0cmluZyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiVG9TdHJpbmcgU3RyaW5nT3JT
dHJpbmdPYmplY3Qgbm90IHN0cmluZyBjYXNlIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sg
Y29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJUb1N0cmluZyBTdHJpbmdPclN0
cmluZ09iamVjdCBjb250aW51YXRpb24iKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFZh
bHVlRnJvbUJsb2NrIHNpbXBsZVJlc3VsdCA9IG1fb3V0LmFuY2hvcihjZWxsKTsKKyAgICAgICAg
ICAgIG1fb3V0LmJyYW5jaCgKKyAgICAgICAgICAgICAgICBtX291dC5lcXVhbChzdHJ1Y3R1cmUs
IG1fb3V0LmNvbnN0SW50UHRyKHZtKCkuc3RyaW5nU3RydWN0dXJlLmdldCgpKSksCisgICAgICAg
ICAgICAgICAgY29udGludWF0aW9uLCBub3RTdHJpbmcpOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdFN0cmluZywgY29u
dGludWF0aW9uKTsKKyAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdEZvclN0cnVjdHVy
ZShtX25vZGUtPmNoaWxkMSgpLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgVmFsdWVGcm9tQmxv
Y2sgdW5ib3hlZFJlc3VsdCA9IG1fb3V0LmFuY2hvcigKKyAgICAgICAgICAgICAgICBtX291dC5s
b2FkUHRyKGNlbGwsIG1faGVhcHMuSlNXcmFwcGVyT2JqZWN0X2ludGVybmFsVmFsdWUpKTsKKyAg
ICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgICAg
ICBzZXRKU1ZhbHVlKG1fb3V0LnBoaShtX291dC5pbnQ2NCwgc2ltcGxlUmVzdWx0LCB1bmJveGVk
UmVzdWx0KSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1faW50ZXJwcmV0ZXIuZmlsdGVy
KG1fbm9kZS0+Y2hpbGQxKCksIFNwZWNTdHJpbmcgfCBTcGVjU3RyaW5nT2JqZWN0KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGNhc2UgQ2Vs
bFVzZToKKyAgICAgICAgY2FzZSBVbnR5cGVkVXNlOiB7CisgICAgICAgICAgICBMVmFsdWUgdmFs
dWU7CisgICAgICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gQ2VsbFVz
ZSkKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdmFsdWUgPSBsb3dKU1ZhbHVlKG1fbm9k
ZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMQmFzaWNCbG9jayBpc0Nl
bGwgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIlRvU3RyaW5nIENlbGxVc2UvVW50eXBlZFVzZSBp
cyBjZWxsIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgbm90U3RyaW5nID0gRlRMX05FV19C
TE9DSyhtX291dCwgKCJUb1N0cmluZyBDZWxsVXNlL1VudHlwZWRVc2Ugbm90IHN0cmluZyIpKTsK
KyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9v
dXQsICgiVG9TdHJpbmcgQ2VsbFVzZS9VbnR5cGVkVXNlIGNvbnRpbnVhdGlvbiIpKTsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgTFZhbHVlIGlzQ2VsbFByZWRpY2F0ZTsKKyAgICAgICAgICAg
IGlmIChtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBDZWxsVXNlKQorICAgICAgICAgICAg
ICAgIGlzQ2VsbFByZWRpY2F0ZSA9IG1fb3V0LmJvb2xlYW5UcnVlOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIGlzQ2VsbFByZWRpY2F0ZSA9IHRoaXMtPmlzQ2VsbCh2YWx1ZSk7
CisgICAgICAgICAgICBtX291dC5icmFuY2goaXNDZWxsUHJlZGljYXRlLCBpc0NlbGwsIG5vdFN0
cmluZyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0g
bV9vdXQuYXBwZW5kVG8oaXNDZWxsLCBub3RTdHJpbmcpOworICAgICAgICAgICAgVmFsdWVGcm9t
QmxvY2sgc2ltcGxlUmVzdWx0ID0gbV9vdXQuYW5jaG9yKHZhbHVlKTsKKyAgICAgICAgICAgIExW
YWx1ZSBpc1N0cmluZ1ByZWRpY2F0ZTsKKyAgICAgICAgICAgIGlmIChtX25vZGUtPmNoaWxkMSgp
LT5wcmVkaWN0aW9uKCkgJiBTcGVjU3RyaW5nKSB7CisgICAgICAgICAgICAgICAgaXNTdHJpbmdQ
cmVkaWNhdGUgPSBtX291dC5lcXVhbCgKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQubG9hZFB0
cih2YWx1ZSwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlKSwKKyAgICAgICAgICAgICAgICAgICAg
bV9vdXQuY29uc3RJbnRQdHIodm0oKS5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIGlzU3RyaW5nUHJlZGljYXRlID0gbV9vdXQuYm9v
bGVhbkZhbHNlOworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlzU3RyaW5nUHJlZGljYXRlLCBj
b250aW51YXRpb24sIG5vdFN0cmluZyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKG5vdFN0cmluZywgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIExWYWx1ZSBv
cGVyYXRpb247CisgICAgICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0g
Q2VsbFVzZSkKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBtX291dC5vcGVyYXRpb24ob3Bl
cmF0aW9uVG9TdHJpbmdPbkNlbGwpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IG9wZXJhdGlvbiA9IG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25Ub1N0cmluZyk7CisgICAgICAg
ICAgICBWYWx1ZUZyb21CbG9jayBjb252ZXJ0ZWRSZXN1bHQgPSBtX291dC5hbmNob3Iodm1DYWxs
KG9wZXJhdGlvbiwgbV9jYWxsRnJhbWUsIHZhbHVlKSk7CisgICAgICAgICAgICBtX291dC5qdW1w
KGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRv
KGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5w
aGkobV9vdXQuaW50NjQsIHNpbXBsZVJlc3VsdCwgY29udmVydGVkUmVzdWx0KSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHZvaWQgY29tcGlsZU1ha2VSb3BlKCkK
KyAgICB7CisgICAgICAgIExWYWx1ZSBraWRzWzNdOworICAgICAgICB1bnNpZ25lZCBudW1LaWRz
OworICAgICAgICBraWRzWzBdID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAg
a2lkc1sxXSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDIoKSk7CisgICAgICAgIGlmIChtX25vZGUt
PmNoaWxkMygpKSB7CisgICAgICAgICAgICBraWRzWzJdID0gbG93Q2VsbChtX25vZGUtPmNoaWxk
MygpKTsKKyAgICAgICAgICAgIG51bUtpZHMgPSAzOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAga2lkc1syXSA9IDA7CisgICAgICAgICAgICBudW1LaWRzID0gMjsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgTEJhc2ljQmxvY2sgc2xvd1BhdGggPSBGVExfTkVXX0JMT0NLKG1f
b3V0LCAoIk1ha2VSb3BlIHNsb3cgcGF0aCIpKTsKKyAgICAgICAgTEJhc2ljQmxvY2sgY29udGlu
dWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJNYWtlUm9wZSBjb250aW51YXRpb24iKSk7
CisgICAgICAgIAorICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0Lmluc2VydE5l
d0Jsb2Nrc0JlZm9yZShzbG93UGF0aCk7CisgICAgICAgIAorICAgICAgICBNYXJrZWRBbGxvY2F0
b3ImIGFsbG9jYXRvciA9CisgICAgICAgICAgICB2bSgpLmhlYXAuYWxsb2NhdG9yRm9yT2JqZWN0
V2l0aEltbW9ydGFsU3RydWN0dXJlRGVzdHJ1Y3RvcihzaXplb2YoSlNSb3BlU3RyaW5nKSk7Cisg
ICAgICAgIAorICAgICAgICBMVmFsdWUgcmVzdWx0ID0gYWxsb2NhdGVDZWxsKAorICAgICAgICAg
ICAgbV9vdXQuY29uc3RJbnRQdHIoJmFsbG9jYXRvciksCisgICAgICAgICAgICBtX291dC5jb25z
dEludFB0cih2bSgpLnN0cmluZ1N0cnVjdHVyZS5nZXQoKSksCisgICAgICAgICAgICBzbG93UGF0
aCk7CisgICAgICAgIAorICAgICAgICBtX291dC5zdG9yZVB0cihtX291dC5pbnRQdHJaZXJvLCBy
ZXN1bHQsIG1faGVhcHMuSlNTdHJpbmdfdmFsdWUpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbnVtS2lkczsgKytpKQorICAgICAgICAgICAgbV9vdXQuc3RvcmVQdHIoa2lkc1tp
XSwgcmVzdWx0LCBtX2hlYXBzLkpTUm9wZVN0cmluZ19maWJlcnNbaV0pOworICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSBudW1LaWRzOyBpIDwgSlNSb3BlU3RyaW5nOjpzX21heEludGVybmFsUm9w
ZUxlbmd0aDsgKytpKQorICAgICAgICAgICAgbV9vdXQuc3RvcmVQdHIobV9vdXQuaW50UHRyWmVy
bywgcmVzdWx0LCBtX2hlYXBzLkpTUm9wZVN0cmluZ19maWJlcnNbaV0pOworICAgICAgICBMVmFs
dWUgZmxhZ3MgPSBtX291dC5sb2FkMzIoa2lkc1swXSwgbV9oZWFwcy5KU1N0cmluZ19mbGFncyk7
CisgICAgICAgIExWYWx1ZSBsZW5ndGggPSBtX291dC5sb2FkMzIoa2lkc1swXSwgbV9oZWFwcy5K
U1N0cmluZ19sZW5ndGgpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgbnVtS2lk
czsgKytpKSB7CisgICAgICAgICAgICBmbGFncyA9IG1fb3V0LmJpdEFuZChmbGFncywgbV9vdXQu
bG9hZDMyKGtpZHNbaV0sIG1faGVhcHMuSlNTdHJpbmdfZmxhZ3MpKTsKKyAgICAgICAgICAgIGxl
bmd0aCA9IG1fb3V0LmFkZChsZW5ndGgsIG1fb3V0LmxvYWQzMihraWRzW2ldLCBtX2hlYXBzLkpT
U3RyaW5nX2xlbmd0aCkpOworICAgICAgICB9CisgICAgICAgIG1fb3V0LnN0b3JlMzIoCisgICAg
ICAgICAgICBtX291dC5iaXRBbmQobV9vdXQuY29uc3RJbnQzMihKU1N0cmluZzo6SXM4Qml0KSwg
ZmxhZ3MpLAorICAgICAgICAgICAgcmVzdWx0LCBtX2hlYXBzLkpTU3RyaW5nX2ZsYWdzKTsKKyAg
ICAgICAgbV9vdXQuc3RvcmUzMihsZW5ndGgsIHJlc3VsdCwgbV9oZWFwcy5KU1N0cmluZ19sZW5n
dGgpOworICAgICAgICAKKyAgICAgICAgVmFsdWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0
LmFuY2hvcihyZXN1bHQpOworICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAg
ICAgIAorICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93UGF0aCwgY29udGludWF0aW9uKTsKKyAg
ICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jlc3VsdDsKKyAgICAgICAgc3dpdGNoIChudW1LaWRz
KSB7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHNsb3dSZXN1bHQgPSBtX291dC5hbmNo
b3Iodm1DYWxsKAorICAgICAgICAgICAgICAgIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25NYWtl
Um9wZTIpLCBtX2NhbGxGcmFtZSwga2lkc1swXSwga2lkc1sxXSkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHNsb3dSZXN1bHQgPSBtX291dC5hbmNo
b3Iodm1DYWxsKAorICAgICAgICAgICAgICAgIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25NYWtl
Um9wZTMpLCBtX2NhbGxGcmFtZSwga2lkc1swXSwga2lkc1sxXSwga2lkc1syXSkpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
bV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAKKyAgICAgICAgbV9vdXQuYXBwZW5k
VG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhp
KG1fb3V0LmludDY0LCBmYXN0UmVzdWx0LCBzbG93UmVzdWx0KSk7CisgICAgfQorICAgIAogICAg
IHZvaWQgY29tcGlsZVN0cmluZ0NoYXJBdCgpCiAgICAgewogICAgICAgICBMVmFsdWUgYmFzZSA9
IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CkBAIC0yMTE0LDcgKzI2NDAsNyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgCiAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgIG1fb3V0
LmFib3ZlT3JFcXVhbCgKLSAgICAgICAgICAgICAgICBpbmRleCwgbV9vdXQubG9hZDMyKGJhc2Us
IG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSksCisgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0
LmxvYWQzMk5vbk5lZ2F0aXZlKGJhc2UsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSksCiAgICAg
ICAgICAgICBzbG93UGF0aCwgZmFzdFBhdGgpOwogICAgICAgICAgICAgCiAgICAgICAgIExCYXNp
Y0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oZmFzdFBhdGgsIHNsb3dQYXRoKTsKQEAg
LTIyMTAsNyArMjczNiw4IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICBzcGVjdWxhdGUo
CiAgICAgICAgICAgICBVbmNvdW50YWJsZSwgbm9WYWx1ZSgpLCAwLAotICAgICAgICAgICAgbV9v
dXQuYWJvdmVPckVxdWFsKGluZGV4LCBtX291dC5sb2FkMzIoYmFzZSwgbV9oZWFwcy5KU1N0cmlu
Z19sZW5ndGgpKSk7CisgICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwoCisgICAgICAgICAg
ICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKGJhc2UsIG1faGVhcHMuSlNTdHJp
bmdfbGVuZ3RoKSkpOwogICAgICAgICAKICAgICAgICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBtX291
dC5sb2FkUHRyKGJhc2UsIG1faGVhcHMuSlNTdHJpbmdfdmFsdWUpOwogICAgICAgICAKQEAgLTIz
NDUsNiArMjg3MiwxNiBAQCBwcml2YXRlOgogICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51
YXRpb24sIGxhc3ROZXh0KTsKICAgICB9CiAgICAgCisgICAgdm9pZCBjb21waWxlR2V0Q2FsbGVl
KCkKKyAgICB7CisgICAgICAgIHNldEpTVmFsdWUobV9vdXQubG9hZFB0cihhZGRyZXNzRm9yKEpT
U3RhY2s6OkNhbGxlZSkpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBjb21waWxlR2V0U2NvcGUo
KQorICAgIHsKKyAgICAgICAgc2V0SlNWYWx1ZShtX291dC5sb2FkUHRyKGxvd0NlbGwobV9ub2Rl
LT5jaGlsZDEoKSksIG1faGVhcHMuSlNGdW5jdGlvbl9zY29wZSkpOworICAgIH0KKyAgICAKICAg
ICB2b2lkIGNvbXBpbGVHZXRNeVNjb3BlKCkKICAgICB7CiAgICAgICAgIHNldEpTVmFsdWUobV9v
dXQubG9hZFB0cihhZGRyZXNzRm9yKApAQCAtMjQ4OCwzNSArMzAyNSwzNyBAQCBwcml2YXRlOgog
ICAgIAogICAgIHZvaWQgY29tcGlsZUNhbGxPckNvbnN0cnVjdCgpCiAgICAgewotICAgICAgICAv
LyBGSVhNRTogVGhpcyBpcyB1bmFjY2VwdGFibHkgc2xvdy4KLSAgICAgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMQorICAgICAgICBpbnQgZHVtbXlU
aGlzQXJndW1lbnQgPSBtX25vZGUtPm9wKCkgPT0gQ2FsbCA/IDAgOiAxOworICAgICAgICBpbnQg
bnVtUGFzc2VkQXJncyA9IG1fbm9kZS0+bnVtQ2hpbGRyZW4oKSAtIDE7CisgICAgICAgIGludCBu
dW1BcmdzID0gbnVtUGFzc2VkQXJncyArIGR1bW15VGhpc0FyZ3VtZW50OwogICAgICAgICAKLSAg
ICAgICAgSl9KSVRPcGVyYXRpb25fRSBmdW5jdGlvbiA9Ci0gICAgICAgICAgICBtX25vZGUtPm9w
KCkgPT0gQ2FsbCA/IG9wZXJhdGlvbkZUTENhbGwgOiBvcGVyYXRpb25GVExDb25zdHJ1Y3Q7Cisg
ICAgICAgIExWYWx1ZSBjYWxsZWUgPSBsb3dKU1ZhbHVlKG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9u
b2RlLCAwKSk7CiAgICAgICAgIAotICAgICAgICBpbnQgZHVtbXlUaGlzQXJndW1lbnQgPSBtX25v
ZGUtPm9wKCkgPT0gQ2FsbCA/IDAgOiAxOworICAgICAgICB1bnNpZ25lZCBzdGFja21hcElEID0g
bV9zdGFja21hcElEcysrOwogICAgICAgICAKLSAgICAgICAgaW50IG51bVBhc3NlZEFyZ3MgPSBt
X25vZGUtPm51bUNoaWxkcmVuKCkgLSAxOworICAgICAgICBWZWN0b3I8TFZhbHVlPiBhcmd1bWVu
dHM7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9vdXQuY29uc3RJbnQ2NChzdGFja21hcElE
KSk7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9vdXQuY29uc3RJbnQzMihzaXplT2ZDYWxs
KCkpKTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChjb25zdE51bGwobV9vdXQucmVmOCkpOwor
ICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1fb3V0LmNvbnN0SW50MzIoMSArIEpTU3RhY2s6OkNh
bGxGcmFtZUhlYWRlclNpemUgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSArIG51bUFy
Z3MpKTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChjYWxsZWUpOyAvLyBjYWxsZWUgLT4gJXJh
eAorICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGdldFVuZGVmKG1fb3V0LmludDY0KSk7IC8vIGNv
ZGUgYmxvY2sKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChnZXRVbmRlZihtX291dC5pbnQ2NCkp
OyAvLyBzY29wZSBjaGFpbgorICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGNhbGxlZSk7IC8vIGNh
bGxlZSAtPiBzdGFjaworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1fb3V0LmNvbnN0SW50NjQo
bnVtQXJncykpOyAvLyBhcmd1bWVudCBjb3VudCBhbmQgemVyb3MgZm9yIHRoZSB0YWcKKyAgICAg
ICAgaWYgKGR1bW15VGhpc0FyZ3VtZW50KQorICAgICAgICAgICAgYXJndW1lbnRzLmFwcGVuZChn
ZXRVbmRlZihtX291dC5pbnQ2NCkpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVBh
c3NlZEFyZ3M7ICsraSkKKyAgICAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobG93SlNWYWx1ZSht
X2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSArIGkpKSk7CiAgICAgICAgIAotICAgICAgICBM
VmFsdWUgY2FsbGVlRnJhbWUgPSBtX291dC5hZGQoCi0gICAgICAgICAgICBtX2NhbGxGcmFtZSwK
LSAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKHNpemVvZihSZWdpc3RlcikgKiB2aXJ0dWFs
UmVnaXN0ZXJGb3JMb2NhbChtX2dyYXBoLmZyYW1lUmVnaXN0ZXJDb3VudCgpKS5vZmZzZXQoKSkp
OworICAgICAgICBjYWxsUHJlZmxpZ2h0KCk7CiAgICAgICAgIAotICAgICAgICBtX291dC5zdG9y
ZTMyKAotICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihudW1QYXNzZWRBcmdzICsgZHVtbXlU
aGlzQXJndW1lbnQpLAotICAgICAgICAgICAgcGF5bG9hZEZvcihjYWxsZWVGcmFtZSwgSlNTdGFj
azo6QXJndW1lbnRDb3VudCkpOwotICAgICAgICBtX291dC5zdG9yZTY0KG1fY2FsbEZyYW1lLCBj
YWxsZWVGcmFtZSwgbV9oZWFwcy5DYWxsRnJhbWVfY2FsbGVyRnJhbWUpOwotICAgICAgICBtX291
dC5zdG9yZTY0KAotICAgICAgICAgICAgbG93SlNWYWx1ZShtX2dyYXBoLnZhckFyZ0NoaWxkKG1f
bm9kZSwgMCkpLAotICAgICAgICAgICAgYWRkcmVzc0ZvcihjYWxsZWVGcmFtZSwgSlNTdGFjazo6
Q2FsbGVlKSk7CisgICAgICAgIExWYWx1ZSBjYWxsID0gbV9vdXQuY2FsbChtX291dC5wYXRjaHBv
aW50SW50NjRJbnRyaW5zaWMoKSwgYXJndW1lbnRzKTsKKyAgICAgICAgc2V0SW5zdHJ1Y3Rpb25D
YWxsaW5nQ29udmVudGlvbihjYWxsLCBMTFZNV2ViS2l0SlNDYWxsQ29udik7CiAgICAgICAgIAot
ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVBhc3NlZEFyZ3M7ICsraSkgewotICAgICAg
ICAgICAgbV9vdXQuc3RvcmU2NCgKLSAgICAgICAgICAgICAgICBsb3dKU1ZhbHVlKG1fZ3JhcGgu
dmFyQXJnQ2hpbGQobV9ub2RlLCAxICsgaSkpLAotICAgICAgICAgICAgICAgIGFkZHJlc3NGb3Io
Y2FsbGVlRnJhbWUsIHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KGkgKyBkdW1teVRoaXNBcmd1
bWVudCkub2Zmc2V0KCkpKTsKLSAgICAgICAgfQorICAgICAgICBtX2Z0bFN0YXRlLmpzQ2FsbHMu
YXBwZW5kKEpTQ2FsbChzdGFja21hcElELCBtX25vZGUpKTsKICAgICAgICAgCi0gICAgICAgIHNl
dEpTVmFsdWUodm1DYWxsKG1fb3V0Lm9wZXJhdGlvbihmdW5jdGlvbiksIGNhbGxlZUZyYW1lKSk7
CisgICAgICAgIHNldEpTVmFsdWUoY2FsbCk7CiAgICAgfQogICAgIAogICAgIHZvaWQgY29tcGls
ZUp1bXAoKQpAQCAtMjYyNyw3ICszMTY2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgIG1fb3V0Lm5vdEVxdWFsKAot
ICAgICAgICAgICAgICAgICAgICBtX291dC5sb2FkMzIoc3RyaW5nVmFsdWUsIG1faGVhcHMuSlNT
dHJpbmdfbGVuZ3RoKSwKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQubG9hZDMyTm9uTmVnYXRp
dmUoc3RyaW5nVmFsdWUsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSwKICAgICAgICAgICAgICAg
ICAgICAgbV9vdXQuaW50MzJPbmUpLAogICAgICAgICAgICAgICAgIGxvd0Jsb2NrKGRhdGEtPmZh
bGxUaHJvdWdoKSwgbGVuZ3RoSXMxKTsKICAgICAgICAgICAgIApAQCAtMjcwOCw2ICszMjQ3LDIy
IEBAIHByaXZhdGU6CiAgICAgICAgIGluZm8ubV9pc0ludmFsaWRhdGlvblBvaW50ID0gdHJ1ZTsK
ICAgICB9CiAgICAgCisgICAgdm9pZCBjb21waWxlQ2hlY2tBcmd1bWVudHNOb3RDcmVhdGVkKCkK
KyAgICB7CisgICAgICAgIEFTU0VSVCghaXNFbXB0eVNwZWN1bGF0aW9uKAorICAgICAgICAgICAg
bV9zdGF0ZS52YXJpYWJsZXMoKS5vcGVyYW5kKAorICAgICAgICAgICAgICAgIG1fZ3JhcGguYXJn
dW1lbnRzUmVnaXN0ZXJGb3IobV9ub2RlLT5jb2RlT3JpZ2luKSkubV90eXBlKSk7CisgICAgICAg
IAorICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgcmVnID0gbV9ncmFwaC5tYWNoaW5lQXJndW1lbnRz
UmVnaXN0ZXJGb3IobV9ub2RlLT5jb2RlT3JpZ2luKTsKKyAgICAgICAgc3BlY3VsYXRlKEFyZ3Vt
ZW50c0VzY2FwZWQsIG5vVmFsdWUoKSwgMCwgbV9vdXQubm90WmVybzY0KG1fb3V0LmxvYWQ2NChh
ZGRyZXNzRm9yKHJlZykpKSk7CisgICAgfQorICAgIAorICAgIHZvaWQgY29tcGlsZUNvdW50RXhl
Y3V0aW9uKCkKKyAgICB7CisgICAgICAgIFR5cGVkUG9pbnRlciBjb3VudGVyID0gbV9vdXQuYWJz
b2x1dGUobV9ub2RlLT5leGVjdXRpb25Db3VudGVyKCktPmFkZHJlc3MoKSk7CisgICAgICAgIG1f
b3V0LnN0b3JlNjQobV9vdXQuYWRkKG1fb3V0LmxvYWQ2NChjb3VudGVyKSwgbV9vdXQuY29uc3RJ
bnQ2NCgxKSksIGNvdW50ZXIpOworICAgIH0KKyAgICAKICAgICBUeXBlZFBvaW50ZXIgYmFzZUlu
ZGV4KEluZGV4ZWRBYnN0cmFjdEhlYXAmIGhlYXAsIExWYWx1ZSBzdG9yYWdlLCBMVmFsdWUgaW5k
ZXgsIEVkZ2UgZWRnZSkKICAgICB7CiAgICAgICAgIHJldHVybiBtX291dC5iYXNlSW5kZXgoCkBA
IC0yOTI0LDcgKzM0NzksNyBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgaWYgKEpTQXJyYXlC
dWZmZXJWaWV3KiB2aWV3ID0gbV9ncmFwaC50cnlHZXRGb2xkYWJsZVZpZXcoYmFzZUVkZ2Uubm9k
ZSgpLCBhcnJheU1vZGUpKQogICAgICAgICAgICAgcmV0dXJuIG1fb3V0LmNvbnN0SW50MzIodmll
dy0+bGVuZ3RoKCkpOwotICAgICAgICByZXR1cm4gbV9vdXQubG9hZDMyKGJhc2UsIG1faGVhcHMu
SlNBcnJheUJ1ZmZlclZpZXdfbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIG1fb3V0LmxvYWQzMk5v
bk5lZ2F0aXZlKGJhc2UsIG1faGVhcHMuSlNBcnJheUJ1ZmZlclZpZXdfbGVuZ3RoKTsKICAgICB9
CiAgICAgCiAgICAgTFZhbHVlIHR5cGVkQXJyYXlMZW5ndGgoRWRnZSBiYXNlRWRnZSwgQXJyYXlN
b2RlIGFycmF5TW9kZSkKQEAgLTI5NDgsNyArMzUwMyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAgICAgICAgIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbikpOwogICAgICAgICBjYXNlIFN0cmlu
Z1VzZTogewogICAgICAgICAgICAgTFZhbHVlIHN0cmluZ1ZhbHVlID0gbG93U3RyaW5nKG1fbm9k
ZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgTFZhbHVlIGxlbmd0aCA9IG1fb3V0LmxvYWQzMihz
dHJpbmdWYWx1ZSwgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpOworICAgICAgICAgICAgTFZhbHVl
IGxlbmd0aCA9IG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0cmluZ1ZhbHVlLCBtX2hlYXBzLkpT
U3RyaW5nX2xlbmd0aCk7CiAgICAgICAgICAgICByZXR1cm4gbV9vdXQubm90RXF1YWwobGVuZ3Ro
LCBtX291dC5pbnQzMlplcm8pOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgVW50eXBlZFVzZTog
ewpAQCAtMzA4Miw3ICszNjM3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgTEJhc2ljQmxvY2sgY29u
dGludWF0aW9uKQogICAgIHsKICAgICAgICAgTFZhbHVlIGlzTm90SW5Cb3VuZHMgPSBtX291dC5h
Ym92ZU9yRXF1YWwoCi0gICAgICAgICAgICBpbmRleCwgbV9vdXQubG9hZDMyKHN0b3JhZ2UsIG1f
aGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCkpOworICAgICAgICAgICAgaW5kZXgsIG1fb3V0
LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0
aCkpOwogICAgICAgICBpZiAoIW1fbm9kZS0+YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygpKSB7CiAg
ICAgICAgICAgICBMQmFzaWNCbG9jayBub3RJbkJvdW5kc0Nhc2UgPQogICAgICAgICAgICAgICAg
IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiUHV0QnlWYWwgbm90IGluIGJvdW5kcyIpKTsKQEAgLTMw
OTQsNyArMzY0OSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4
dCA9IG1fb3V0LmFwcGVuZFRvKG5vdEluQm91bmRzQ2FzZSwgcGVyZm9ybVN0b3JlKTsKICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgIExWYWx1ZSBpc091dE9mQm91bmRzID0gbV9vdXQuYWJv
dmVPckVxdWFsKAotICAgICAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2FkMzIoc3RvcmFnZSwg
bV9oZWFwcy5CdXR0ZXJmbHlfdmVjdG9yTGVuZ3RoKSk7CisgICAgICAgICAgICAgICAgaW5kZXgs
IG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3ZlY3Rv
ckxlbmd0aCkpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFtX25vZGUtPmFy
cmF5TW9kZSgpLmlzT3V0T2ZCb3VuZHMoKSkKICAgICAgICAgICAgICAgICBzcGVjdWxhdGUoT3V0
T2ZCb3VuZHMsIG5vVmFsdWUoKSwgMCwgaXNPdXRPZkJvdW5kcyk7CkBAIC0zNzE4LDYgKzQyNzMs
NyBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgS25vd25JbnQz
MlVzZToKICAgICAgICAgY2FzZSBLbm93bk51bWJlclVzZToKKyAgICAgICAgY2FzZSBLbm93blN0
cmluZ1VzZToKICAgICAgICAgICAgIEFTU0VSVCghbV9pbnRlcnByZXRlci5uZWVkc1R5cGVDaGVj
ayhlZGdlKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBJbnQzMlVzZToKQEAg
LTM3NDEsNiArNDI5NywxMiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFN0cmluZ1VzZToKICAg
ICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhlZGdlKTsKICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKKyAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09i
amVjdChlZGdlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFN0cmluZ09yU3Ry
aW5nT2JqZWN0VXNlOgorICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nT3JTdHJpbmdPYmplY3Qo
ZWRnZSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBSZWFsTnVtYmVyVXNlOgog
ICAgICAgICAgICAgc3BlY3VsYXRlUmVhbE51bWJlcihlZGdlKTsKICAgICAgICAgICAgIGJyZWFr
OwpAQCAtMzkyOCw2ICs0NDkwLDU1IEBAIHByaXZhdGU6CiAgICAgICAgIHNwZWN1bGF0ZVN0cmlu
ZyhlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKICAgICB9CiAgICAgCisgICAgdm9pZCBzcGVjdWxhdGVT
dHJpbmdPYmplY3QoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2ludGVycHJldGVy
Lm5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTdHJpbmdPYmplY3QpKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAKKyAgICAgICAgc3BlY3VsYXRlU3RyaW5nT2JqZWN0Rm9yQ2VsbChlZGdl
LCBsb3dDZWxsKGVkZ2UpKTsKKyAgICAgICAgbV9pbnRlcnByZXRlci5maWx0ZXIoZWRnZSwgU3Bl
Y1N0cmluZ09iamVjdCk7CisgICAgfQorICAgIAorICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT3JT
dHJpbmdPYmplY3QoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2ludGVycHJldGVy
Lm5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTdHJpbmcgfCBTcGVjU3RyaW5nT2JqZWN0KSkKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIExCYXNpY0Jsb2NrIG5vdFN0cmlu
ZyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiU3BlY3VsYXRlIFN0cmluZ09yU3RyaW5nT2JqZWN0
IG5vdCBzdHJpbmcgY2FzZSIpKTsKKyAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0g
RlRMX05FV19CTE9DSyhtX291dCwgKCJTcGVjdWxhdGUgU3RyaW5nT3JTdHJpbmdPYmplY3QgY29u
dGludWF0aW9uIikpOworICAgICAgICAKKyAgICAgICAgTFZhbHVlIHN0cnVjdHVyZSA9IG1fb3V0
LmxvYWRQdHIobG93Q2VsbChlZGdlKSwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlKTsKKyAgICAg
ICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgbV9vdXQuZXF1YWwoc3RydWN0dXJlLCBtX291
dC5jb25zdEludFB0cih2bSgpLnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpLAorICAgICAgICAgICAg
Y29udGludWF0aW9uLCBub3RTdHJpbmcpOworICAgICAgICAKKyAgICAgICAgTEJhc2ljQmxvY2sg
bGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3RTdHJpbmcsIGNvbnRpbnVhdGlvbik7CisgICAg
ICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdEZvclN0cnVjdHVyZShlZGdlLCBzdHJ1Y3R1cmUpOwor
ICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgIAorICAgICAgICBtX291
dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAgICAgCisgICAgICAgIG1f
aW50ZXJwcmV0ZXIuZmlsdGVyKGVkZ2UsIFNwZWNTdHJpbmcgfCBTcGVjU3RyaW5nT2JqZWN0KTsK
KyAgICB9CisgICAgCisgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdPYmplY3RGb3JDZWxsKEVkZ2Ug
ZWRnZSwgTFZhbHVlIGNlbGwpCisgICAgeworICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmplY3RG
b3JTdHJ1Y3R1cmUoZWRnZSwgbV9vdXQubG9hZFB0cihjZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1
Y3R1cmUpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdPYmplY3RGb3JT
dHJ1Y3R1cmUoRWRnZSBlZGdlLCBMVmFsdWUgc3RydWN0dXJlKQorICAgIHsKKyAgICAgICAgU3Ry
dWN0dXJlKiBzdHJpbmdPYmplY3RTdHJ1Y3R1cmUgPQorICAgICAgICAgICAgbV9ncmFwaC5nbG9i
YWxPYmplY3RGb3IobV9ub2RlLT5jb2RlT3JpZ2luKS0+c3RyaW5nT2JqZWN0U3RydWN0dXJlKCk7
CisgICAgICAgIAorICAgICAgICBpZiAobV9zdGF0ZS5mb3JOb2RlKGVkZ2UpLm1fY3VycmVudEtu
b3duU3RydWN0dXJlLmlzU3Vic2V0T2YoU3RydWN0dXJlU2V0KHN0cmluZ09iamVjdFN0cnVjdHVy
ZSkpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgc3BlY3VsYXRlKAor
ICAgICAgICAgICAgTm90U3RyaW5nT2JqZWN0LCBub1ZhbHVlKCksIDAsCisgICAgICAgICAgICBt
X291dC5ub3RFcXVhbChzdHJ1Y3R1cmUsIHdlYWtQb2ludGVyKHN0cmluZ09iamVjdFN0cnVjdHVy
ZSkpKTsKKyAgICB9CisgICAgCiAgICAgdm9pZCBzcGVjdWxhdGVOb25OdWxsT2JqZWN0KEVkZ2Ug
ZWRnZSwgTFZhbHVlIGNlbGwpCiAgICAgewogICAgICAgICBMVmFsdWUgc3RydWN0dXJlID0gbV9v
dXQubG9hZFB0cihjZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmUpOwpAQCAtNDEwNiwxOCAr
NDcxNywxMyBAQCBwcml2YXRlOgogICAgICAgICBpZiAobW9kZSA9PSBOb0V4Y2VwdGlvbnMpCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAotICAgICAgICBMQmFzaWNCbG9jayBkaWRIYXZl
RXhjZXB0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJEaWQgaGF2ZSBleGNlcHRpb24iKSk7
CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQs
ICgiRXhjZXB0aW9uIGNoZWNrIGNvbnRpbnVhdGlvbiIpKTsKICAgICAgICAgCiAgICAgICAgIG1f
b3V0LmJyYW5jaCgKICAgICAgICAgICAgIG1fb3V0Lm5vdFplcm82NChtX291dC5sb2FkNjQobV9v
dXQuYWJzb2x1dGUodm0oKS5hZGRyZXNzT2ZFeGNlcHRpb24oKSkpKSwKLSAgICAgICAgICAgIGRp
ZEhhdmVFeGNlcHRpb24sIGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICBtX2hhbmRsZUV4Y2Vw
dGlvbnMsIGNvbnRpbnVhdGlvbik7CiAgICAgICAgIAotICAgICAgICBMQmFzaWNCbG9jayBsYXN0
TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGRpZEhhdmVFeGNlcHRpb24sIGNvbnRpbnVhdGlvbik7Ci0g
ICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgZXhjZXB0aW9ucy4gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExMzYyMgotICAgICAgICBtX291dC5jcmFzaCgpOwotICAgICAg
ICAKLSAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAg
ICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbik7CiAgICAgfQogICAgIAogICAgIExCYXNp
Y0Jsb2NrIGxvd0Jsb2NrKEJhc2ljQmxvY2sqIGJsb2NrKQpAQCAtNDEzMyw4ICs0NzM5LDExIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBhcHBlbmRPU1JFeGl0KAogICAgICAgICBFeGl0S2luZCBraW5k
LCBGb3JtYXR0ZWRWYWx1ZSBsb3dWYWx1ZSwgTm9kZSogaGlnaFZhbHVlLCBMVmFsdWUgZmFpbENv
bmRpdGlvbikKICAgICB7Ci0gICAgICAgIGlmICh2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkp
CisgICAgICAgIGlmICh2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkpIHsKICAgICAgICAgICAg
IGRhdGFMb2coIiAgICBPU1IgZXhpdCAjIiwgbV9mdGxTdGF0ZS5qaXRDb2RlLT5vc3JFeGl0LnNp
emUoKSwgIiB3aXRoIGF2YWlsYWJpbGl0eTogIiwgbV9hdmFpbGFiaWxpdHksICJcbiIpOworICAg
ICAgICAgICAgaWYgKCFtX2F2YWlsYWJsZVJlY292ZXJpZXMuaXNFbXB0eSgpKQorICAgICAgICAg
ICAgICAgIGRhdGFMb2coIiAgICAgICAgQXZhaWxhYmxlIHJlY292ZXJpZXM6ICIsIGxpc3REdW1w
KG1fYXZhaWxhYmxlUmVjb3ZlcmllcyksICJcbiIpOworICAgICAgICB9CiAKICAgICAgICAgQVNT
RVJUKG1fZnRsU3RhdGUuaml0Q29kZS0+b3NyRXhpdC5zaXplKCkgPT0gbV9mdGxTdGF0ZS5maW5h
bGl6ZXItPm9zckV4aXQuc2l6ZSgpKTsKICAgICAgICAgCkBAIC00MTc4LDcgKzQ3ODcsNiBAQCBw
cml2YXRlOgogICAgICAgICBPU1JFeGl0JiBleGl0LCBFeGl0QXJndW1lbnRMaXN0JiBhcmd1bWVu
dHMsIEZvcm1hdHRlZFZhbHVlIGxvd1ZhbHVlLAogICAgICAgICBDb2RlT3JpZ2luIGNvZGVPcmln
aW4pCiAgICAgewotICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1fY2FsbEZyYW1lKTsKICAgICAg
ICAgaWYgKCEhbG93VmFsdWUpCiAgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGxvd1ZhbHVl
LnZhbHVlKCkpOwogICAgICAgICAKQEAgLTQyNDYsNyArNDg1NCw3IEBAIHByaXZhdGU6CiAgICAg
ewogICAgICAgICBleGl0Lm1fc3RhY2ttYXBJRCA9IG1fc3RhY2ttYXBJRHMrKzsKICAgICAgICAg
YXJndW1lbnRzLmluc2VydCgwLCBtX291dC5jb25zdEludDMyKE1hY3JvQXNzZW1ibGVyOjptYXhK
dW1wUmVwbGFjZW1lbnRTaXplKCkpKTsKLSAgICAgICAgYXJndW1lbnRzLmluc2VydCgwLCBtX291
dC5jb25zdEludDMyKGV4aXQubV9zdGFja21hcElEKSk7CisgICAgICAgIGFyZ3VtZW50cy5pbnNl
cnQoMCwgbV9vdXQuY29uc3RJbnQ2NChleGl0Lm1fc3RhY2ttYXBJRCkpOwogICAgICAgICAKICAg
ICAgICAgbV9vdXQuY2FsbChtX291dC5zdGFja21hcEludHJpbnNpYygpLCBhcmd1bWVudHMpOwog
ICAgIH0KQEAgLTQyNjAsNiArNDg2OCwxOSBAQCBwcml2YXRlOgogICAgICAgICBpZiAodHJ5VG9T
ZXRDb25zdGFudEV4aXRBcmd1bWVudChleGl0LCBpbmRleCwgbm9kZSkpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIAorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9hdmFp
bGFibGVSZWNvdmVyaWVzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBBdmFpbGFibGVSZWNv
dmVyeSByZWNvdmVyeSA9IG1fYXZhaWxhYmxlUmVjb3Zlcmllc1tpXTsKKyAgICAgICAgICAgIGlm
IChyZWNvdmVyeS5ub2RlKCkgIT0gbm9kZSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgZXhpdC5tX3ZhbHVlc1tpbmRleF0gPSBFeGl0VmFsdWU6
OnJlY292ZXJ5KAorICAgICAgICAgICAgICAgIHJlY292ZXJ5Lm9wY29kZSgpLCBhcmd1bWVudHMu
c2l6ZSgpLCBhcmd1bWVudHMuc2l6ZSgpICsgMSwKKyAgICAgICAgICAgICAgICByZWNvdmVyeS5m
b3JtYXQoKSk7CisgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5kKHJlY292ZXJ5LmxlZnQoKSk7
CisgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5kKHJlY292ZXJ5LnJpZ2h0KCkpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAogICAgICAgICBMb3dlcmVkTm9kZVZh
bHVlIHZhbHVlID0gbV9pbnQzMlZhbHVlcy5nZXQobm9kZSk7CiAgICAgICAgIGlmIChpc1ZhbGlk
KHZhbHVlKSkgewogICAgICAgICAgICAgYWRkRXhpdEFyZ3VtZW50KGV4aXQsIGFyZ3VtZW50cywg
aW5kZXgsIFZhbHVlRm9ybWF0SW50MzIsIHZhbHVlLnZhbHVlKCkpOwpAQCAtNDMyOSw2ICs0OTUw
LDI5IEBAIHByaXZhdGU6CiAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQodmFsdWUpOwogICAgIH0K
ICAgICAKKyAgICBib29sIGRvZXNLaWxsKEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAgIGlmIChl
ZGdlLmRvZXNOb3RLaWxsKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAor
ICAgICAgICBpZiAoZWRnZS0+aGFzQ29uc3RhbnQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHZvaWQgYWRk
QXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgIE5vZGUqIG5vZGUsIFJlY292ZXJ5T3Bjb2RlIG9w
Y29kZSwgTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCwgVmFsdWVGb3JtYXQgZm9ybWF0KQorICAg
IHsKKyAgICAgICAgbV9hdmFpbGFibGVSZWNvdmVyaWVzLmFwcGVuZChBdmFpbGFibGVSZWNvdmVy
eShub2RlLCBvcGNvZGUsIGxlZnQsIHJpZ2h0LCBmb3JtYXQpKTsKKyAgICB9CisgICAgCisgICAg
dm9pZCBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgRWRnZSBlZGdlLCBSZWNvdmVyeU9w
Y29kZSBvcGNvZGUsIExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQsIFZhbHVlRm9ybWF0IGZvcm1h
dCkKKyAgICB7CisgICAgICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KGVkZ2Uubm9kZSgpLCBvcGNv
ZGUsIGxlZnQsIHJpZ2h0LCBmb3JtYXQpOworICAgIH0KKyAgICAKICAgICB2b2lkIHNldEludDMy
KE5vZGUqIG5vZGUsIExWYWx1ZSB2YWx1ZSkKICAgICB7CiAgICAgICAgIG1faW50MzJWYWx1ZXMu
c2V0KG5vZGUsIExvd2VyZWROb2RlVmFsdWUodmFsdWUsIG1faGlnaEJsb2NrKSk7CkBAIC00NDMx
LDM1ICs1MDc1LDM3IEBAIHByaXZhdGU6CiAgICAgfQogICAgIFR5cGVkUG9pbnRlciBwYXlsb2Fk
Rm9yKExWYWx1ZSBiYXNlLCBpbnQgb3BlcmFuZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZGRy
ZXNzRm9yKGJhc2UsIG9wZXJhbmQsIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlw
dG9yLCBhc0JpdHMucGF5bG9hZCkpOworICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihiYXNlLCBv
cGVyYW5kLCBQYXlsb2FkT2Zmc2V0KTsKICAgICB9CiAgICAgVHlwZWRQb2ludGVyIHRhZ0ZvcihM
VmFsdWUgYmFzZSwgaW50IG9wZXJhbmQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRkcmVzc0Zv
cihiYXNlLCBvcGVyYW5kLCBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwg
YXNCaXRzLnRhZykpOworICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihiYXNlLCBvcGVyYW5kLCBU
YWdPZmZzZXQpOwogICAgIH0KLSAgICBUeXBlZFBvaW50ZXIgYWRkcmVzc0ZvcihpbnQgb3BlcmFu
ZCkKKyAgICBUeXBlZFBvaW50ZXIgYWRkcmVzc0ZvcihpbnQgb3BlcmFuZCwgcHRyZGlmZl90IG9m
ZnNldCA9IDApCiAgICAgewotICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihtX2NhbGxGcmFtZSwg
b3BlcmFuZCk7CisgICAgICAgIHJldHVybiBhZGRyZXNzRm9yKFZpcnR1YWxSZWdpc3RlcihvcGVy
YW5kKSwgb2Zmc2V0KTsKICAgICB9Ci0gICAgVHlwZWRQb2ludGVyIGFkZHJlc3NGb3IoVmlydHVh
bFJlZ2lzdGVyIG9wZXJhbmQpCisgICAgVHlwZWRQb2ludGVyIGFkZHJlc3NGb3IoVmlydHVhbFJl
Z2lzdGVyIG9wZXJhbmQsIHB0cmRpZmZfdCBvZmZzZXQgPSAwKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkZHJlc3NGb3IobV9jYWxsRnJhbWUsIG9wZXJhbmQub2Zmc2V0KCkpOworICAgICAgICBp
ZiAob3BlcmFuZC5pc0xvY2FsKCkpCisgICAgICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihtX2Nh
cHR1cmVkLCBvcGVyYW5kLm9mZnNldCgpLCBvZmZzZXQpOworICAgICAgICByZXR1cm4gYWRkcmVz
c0ZvcihtX2NhbGxGcmFtZSwgb3BlcmFuZC5vZmZzZXQoKSwgb2Zmc2V0KTsKICAgICB9CiAgICAg
VHlwZWRQb2ludGVyIHBheWxvYWRGb3IoaW50IG9wZXJhbmQpCiAgICAgewotICAgICAgICByZXR1
cm4gcGF5bG9hZEZvcihtX2NhbGxGcmFtZSwgb3BlcmFuZCk7CisgICAgICAgIHJldHVybiBwYXls
b2FkRm9yKFZpcnR1YWxSZWdpc3RlcihvcGVyYW5kKSk7CiAgICAgfQogICAgIFR5cGVkUG9pbnRl
ciBwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlciBvcGVyYW5kKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIHBheWxvYWRGb3IobV9jYWxsRnJhbWUsIG9wZXJhbmQub2Zmc2V0KCkpOworICAgICAgICBy
ZXR1cm4gYWRkcmVzc0ZvcihvcGVyYW5kLCBQYXlsb2FkT2Zmc2V0KTsKICAgICB9CiAgICAgVHlw
ZWRQb2ludGVyIHRhZ0ZvcihpbnQgb3BlcmFuZCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0YWdG
b3IobV9jYWxsRnJhbWUsIG9wZXJhbmQpOworICAgICAgICByZXR1cm4gdGFnRm9yKFZpcnR1YWxS
ZWdpc3RlcihvcGVyYW5kKSk7CiAgICAgfQogICAgIFR5cGVkUG9pbnRlciB0YWdGb3IoVmlydHVh
bFJlZ2lzdGVyIG9wZXJhbmQpCiAgICAgewotICAgICAgICByZXR1cm4gdGFnRm9yKG1fY2FsbEZy
YW1lLCBvcGVyYW5kLm9mZnNldCgpKTsKKyAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3Iob3BlcmFu
ZCwgVGFnT2Zmc2V0KTsKICAgICB9CiAgICAgCiAgICAgVk0mIHZtKCkgeyByZXR1cm4gbV9ncmFw
aC5tX3ZtOyB9CkBAIC00NDcxLDkgKzUxMTcsMTEgQEAgcHJpdmF0ZToKICAgICBPdXRwdXQgbV9v
dXQ7CiAgICAgCiAgICAgTEJhc2ljQmxvY2sgbV9wcm9sb2d1ZTsKKyAgICBMQmFzaWNCbG9jayBt
X2hhbmRsZUV4Y2VwdGlvbnM7CiAgICAgSGFzaE1hcDxCYXNpY0Jsb2NrKiwgTEJhc2ljQmxvY2s+
IG1fYmxvY2tzOwogICAgIAogICAgIExWYWx1ZSBtX2NhbGxGcmFtZTsKKyAgICBMVmFsdWUgbV9j
YXB0dXJlZDsKICAgICBMVmFsdWUgbV90YWdUeXBlTnVtYmVyOwogICAgIExWYWx1ZSBtX3RhZ01h
c2s7CiAgICAgCkBAIC00NDg5LDYgKzUxMzcsOCBAQCBwcml2YXRlOgogICAgIAogICAgIE9wZXJh
bmRzPEF2YWlsYWJpbGl0eT4gbV9hdmFpbGFiaWxpdHk7CiAgICAgCisgICAgVmVjdG9yPEF2YWls
YWJsZVJlY292ZXJ5LCAzPiBtX2F2YWlsYWJsZVJlY292ZXJpZXM7CisgICAgCiAgICAgSW5QbGFj
ZUFic3RyYWN0U3RhdGUgbV9zdGF0ZTsKICAgICBBYnN0cmFjdEludGVycHJldGVyPEluUGxhY2VB
YnN0cmFjdFN0YXRlPiBtX2ludGVycHJldGVyOwogICAgIEJhc2ljQmxvY2sqIG1faGlnaEJsb2Nr
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFbnRyeS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkVudHJ5LmNwcAppbmRleCAxODUwNDYw
NTQ3Mjg0MzRhYWE2YjZhNDRkMmVmNjBhNTFlN2RjMGMyLi4xZjZhMjkxOGY0ZWY3MjA5MmYzZmI2
ZDcwNzE2N2I1ZmEzMDZjZWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTE9TUkVudHJ5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkVu
dHJ5LmNwcApAQCAtNDMsNiArNDMsNyBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoCiB7CiAgICAg
Vk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBDb2RlQmxvY2sqIGJhc2VsaW5lID0gZGZnQ29kZUJs
b2NrLT5iYXNlbGluZVZlcnNpb24oKTsKKyAgICBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSA9
IGRmZ0NvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCk7CiAgICAgREZHOjpKSVRDb2RlKiBkZmdD
b2RlID0gZGZnQ29kZUJsb2NrLT5qaXRDb2RlKCktPmRmZygpOwogICAgIEZvck9TUkVudHJ5SklU
Q29kZSogZW50cnlDb2RlID0gZW50cnlDb2RlQmxvY2stPmppdENvZGUoKS0+ZnRsRm9yT1NSRW50
cnkoKTsKICAgICAKQEAgLTgwLDcgKzgxLDcgQEAgdm9pZCogcHJlcGFyZU9TUkVudHJ5KAogICAg
ICAgICBzY3JhdGNoW2xvY2FsXSA9IEpTVmFsdWU6OmVuY29kZSh2YWx1ZXMubG9jYWwobG9jYWwp
KTsKICAgICAKICAgICBpbnQgc3RhY2tGcmFtZVNpemUgPSBlbnRyeUNvZGUtPmNvbW1vbi5yZXF1
aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCk7Ci0gICAgaWYgKCF2bS5pbnRl
cnByZXRlci0+c3RhY2soKS5ncm93KCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJG
b3JMb2NhbChzdGFja0ZyYW1lU2l6ZSkub2Zmc2V0KCldKSkgeworICAgIGlmICghdm0uaW50ZXJw
cmV0ZXItPnN0YWNrKCkuZW5zdXJlQ2FwYWNpdHlGb3IoJmV4ZWMtPnJlZ2lzdGVycygpW3ZpcnR1
YWxSZWdpc3RlckZvckxvY2FsKHN0YWNrRnJhbWVTaXplIC0gMSkub2Zmc2V0KCldKSkgewogICAg
ICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQogICAgICAgICAgICAgZGF0YUxvZygiICAg
IE9TUiBmYWlsZWQgYmVjYXVzZSBzdGFjayBncm93dGggZmFpbGVkLlxuIik7CiAgICAgICAgIHJl
dHVybiAwOwpAQCAtODgsNyArODksOSBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoCiAgICAgCiAg
ICAgZXhlYy0+c2V0Q29kZUJsb2NrKGVudHJ5Q29kZUJsb2NrKTsKICAgICAKLSAgICB2b2lkKiBy
ZXN1bHQgPSBlbnRyeUNvZGUtPmFkZHJlc3NGb3JDYWxsKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsK
KyAgICB2b2lkKiByZXN1bHQgPSBlbnRyeUNvZGUtPmFkZHJlc3NGb3JDYWxsKAorICAgICAgICB2
bSwgZXhlY3V0YWJsZSwgQXJpdHlDaGVja05vdFJlcXVpcmVkLAorICAgICAgICBSZWdpc3RlclBy
ZXNlcnZhdGlvbk5vdFJlcXVpcmVkKS5leGVjdXRhYmxlQWRkcmVzcygpOwogICAgIGlmIChPcHRp
b25zOjp2ZXJib3NlT1NSKCkpCiAgICAgICAgIGRhdGFMb2coIiAgICBFbnRyeSB3aWxsIHN1Y2Nl
ZWQsIGdvaW5nIHRvIGFkZHJlc3MiLCBSYXdQb2ludGVyKHJlc3VsdCksICJcbiIpOwogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXQuaAppbmRleCA0ZTQ3OWViZGQwY2E1OTg5
MGUxZmEzYTI5YTg5YzU2ZTAwZjgwNzFmLi44N2I0YmQwY2QzODEzYTEyY2Q0ZTI3MzNmZDFhZjY3
Yzk3NTg1Y2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4
aXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXQuaApAQCAtMTY2
LDYgKzE2NiwxMSBAQCBzdHJ1Y3QgT1NSRXhpdCA6IHB1YmxpYyBERkc6Ok9TUkV4aXRCYXNlIHsK
ICAgICB1aW50MzJfdCBtX3N0YWNrbWFwSUQ7CiAgICAgCiAgICAgQ29kZUxvY2F0aW9uSnVtcCBj
b2RlTG9jYXRpb25Gb3JSZXBhdGNoKENvZGVCbG9jayogZnRsQ29kZUJsb2NrKSBjb25zdDsKKyAg
ICAKKyAgICBib29sIGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlKENvZGVCbG9jayog
cHJvZmlsZWRDb2RlQmxvY2spCisgICAgeworICAgICAgICByZXR1cm4gT1NSRXhpdEJhc2U6OmNv
bnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlKHByb2ZpbGVkQ29kZUJsb2NrLCBFeGl0RnJv
bUZUTCk7CisgICAgfQogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCmluZGV4IDA3NmE0
OTVlYTY1YjEyYWFhZGQ4OWJkMzg4MGJkZmNmYmRmMzIyMjcuLmI1ODZlZjJiNWVhZjIyNjYwMTk0
N2IwMWQ5NDY1ODk3ODZjMDU5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTE9TUkV4aXRDb21waWxlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDcgKzM1LDkgQEAKICNpbmNsdWRlICJGVExPU1JF
eGl0LmgiCiAjaW5jbHVkZSAiRlRMU2F2ZVJlc3RvcmUuaCIKICNpbmNsdWRlICJPcGVyYW5kc0lu
bGluZXMuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKKyNpbmNsdWRlICJSZWdpc3RlclByZXNlcnZhdGlvbldyYXBw
ZXJHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJSZXBhdGNoQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgRlRMIHsKQEAgLTYyLDkgKzY0LDEwIEBAIHN0YXRpYyB2b2lkIGNvbXBp
bGVTdHViKAogICAgIAogICAgIC8vIFdlIG5lZWQgc2NyYXRjaCBzcGFjZSB0byBzYXZlIGFsbCBy
ZWdpc3RlcnMgYW5kIHRvIGJ1aWxkIHVwIHRoZSBKU1N0YWNrLgogICAgIC8vIFVzZSBhIHNjcmF0
Y2ggYnVmZmVyIHRvIHRyYW5zZmVyIGFsbCB2YWx1ZXMuCi0gICAgU2NyYXRjaEJ1ZmZlciogc2Ny
YXRjaEJ1ZmZlciA9IHZtLT5zY3JhdGNoQnVmZmVyRm9yU2l6ZShzaXplb2YoRW5jb2RlZEpTVmFs
dWUpICogZXhpdC5tX3ZhbHVlcy5zaXplKCkgKyByZXF1aXJlZFNjcmF0Y2hNZW1vcnlTaXplSW5C
eXRlcygpKTsKKyAgICBTY3JhdGNoQnVmZmVyKiBzY3JhdGNoQnVmZmVyID0gdm0tPnNjcmF0Y2hC
dWZmZXJGb3JTaXplKHNpemVvZihFbmNvZGVkSlNWYWx1ZSkgKiBleGl0Lm1fdmFsdWVzLnNpemUo
KSArIHJlcXVpcmVkU2NyYXRjaE1lbW9yeVNpemVJbkJ5dGVzKCkgKyBqaXRDb2RlLT51bndpbmRJ
bmZvLm1fcmVnaXN0ZXJzLnNpemUoKSAqIHNpemVvZih1aW50NjRfdCkpOwogICAgIEVuY29kZWRK
U1ZhbHVlKiBzY3JhdGNoID0gc2NyYXRjaEJ1ZmZlciA/IHN0YXRpY19jYXN0PEVuY29kZWRKU1Zh
bHVlKj4oc2NyYXRjaEJ1ZmZlci0+ZGF0YUJ1ZmZlcigpKSA6IDA7CiAgICAgY2hhciogcmVnaXN0
ZXJTY3JhdGNoID0gYml0d2lzZV9jYXN0PGNoYXIqPihzY3JhdGNoICsgZXhpdC5tX3ZhbHVlcy5z
aXplKCkpOworICAgIHVpbnQ2NF90KiB1bndpbmRTY3JhdGNoID0gYml0d2lzZV9jYXN0PHVpbnQ2
NF90Kj4ocmVnaXN0ZXJTY3JhdGNoICsgcmVxdWlyZWRTY3JhdGNoTWVtb3J5U2l6ZUluQnl0ZXMo
KSk7CiAgICAgCiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgc2F2ZUFsbFJlZ2lzdGVycygpIGhhcyBh
IHBsYWNlIG9uIHRvcCBvZiB0aGUgc3RhY2sgdG8gc3BpbGwgdGhpbmdzLiBUaGF0CiAgICAgLy8g
ZnVuY3Rpb24gZXhwZWN0cyB0byBiZSBhYmxlIHRvIHVzZSB0b3Agb2Ygc3RhY2sgZm9yIHNjcmF0
Y2ggbWVtb3J5LgpAQCAtNzUsMTggKzc4LDI3IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKAog
ICAgIGppdC5wb3AoR1BSSW5mbzo6cmVnVDApOwogICAgIGppdC5wb3AoR1BSSW5mbzo6cmVnVDAp
OwogICAgIAorICAgIGlmICh2bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyICYmIGNvZGVCbG9jay0+
aml0Q29kZSgpLT5kZmdDb21tb24oKS0+Y29tcGlsYXRpb24pIHsKKyAgICAgICAgUHJvZmlsZXI6
OkRhdGFiYXNlJiBkYXRhYmFzZSA9ICp2bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyOworICAgICAg
ICBQcm9maWxlcjo6Q29tcGlsYXRpb24qIGNvbXBpbGF0aW9uID0gY29kZUJsb2NrLT5qaXRDb2Rl
KCktPmRmZ0NvbW1vbigpLT5jb21waWxhdGlvbi5nZXQoKTsKKyAgICAgICAgCisgICAgICAgIFBy
b2ZpbGVyOjpPU1JFeGl0KiBwcm9maWxlckV4aXQgPSBjb21waWxhdGlvbi0+YWRkT1NSRXhpdCgK
KyAgICAgICAgICAgIGV4aXRJRCwgUHJvZmlsZXI6Ok9yaWdpblN0YWNrKGRhdGFiYXNlLCBjb2Rl
QmxvY2ssIGV4aXQubV9jb2RlT3JpZ2luKSwKKyAgICAgICAgICAgIGV4aXQubV9raW5kLCBpc1dh
dGNocG9pbnQoZXhpdC5tX2tpbmQpKTsKKyAgICAgICAgaml0LmFkZDY0KENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbTMyKDEpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhwcm9maWxlckV4
aXQtPmNvdW50ZXJBZGRyZXNzKCkpKTsKKyAgICB9CisKICAgICAvLyBUaGUgcmVtYWluaW5nIGNv
ZGUgYXNzdW1lcyB0aGF0IFNQL0ZQIGFyZSBpbiB0aGUgc2FtZSBzdGF0ZSB0aGF0IHRoZXkgd2Vy
ZSBpbiB0aGUgRlRMJ3MKICAgICAvLyBjYWxsIGZyYW1lLgogICAgIAogICAgIC8vIEdldCB0aGUg
Y2FsbCBmcmFtZSBhbmQgdGFnIHRoaW5naWVzLgogICAgIC8vIFJlc3RvcmUgdGhlIGV4aXRpbmcg
ZnVuY3Rpb24ncyBjYWxsRnJhbWUgdmFsdWUgaW50byBhIHJlZ1Q0Ci0gICAgcmVjb3JkLT5sb2Nh
dGlvbnNbMF0ucmVzdG9yZUludG8oaml0LCBqaXRDb2RlLT5zdGFja21hcHMsIHJlZ2lzdGVyU2Ny
YXRjaCwgR1BSSW5mbzo6cmVnVDQpOwogICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tNjQoVGFnVHlwZU51bWJlciksIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7
CiAgICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW02NChUYWdNYXNrKSwgR1BS
SW5mbzo6dGFnTWFza1JlZ2lzdGVyKTsKICAgICAKICAgICAvLyBEbyBzb21lIHZhbHVlIHByb2Zp
bGluZy4KICAgICBpZiAoZXhpdC5tX3Byb2ZpbGVWYWx1ZUZvcm1hdCAhPSBJbnZhbGlkVmFsdWVG
b3JtYXQpIHsKLSAgICAgICAgcmVjb3JkLT5sb2NhdGlvbnNbMV0ucmVzdG9yZUludG8oaml0LCBq
aXRDb2RlLT5zdGFja21hcHMsIHJlZ2lzdGVyU2NyYXRjaCwgR1BSSW5mbzo6cmVnVDApOworICAg
ICAgICByZWNvcmQtPmxvY2F0aW9uc1swXS5yZXN0b3JlSW50byhqaXQsIGppdENvZGUtPnN0YWNr
bWFwcywgcmVnaXN0ZXJTY3JhdGNoLCBHUFJJbmZvOjpyZWdUMCk7CiAgICAgICAgIHJlYm94QWNj
b3JkaW5nVG9Gb3JtYXQoCiAgICAgICAgICAgICBleGl0Lm1fcHJvZmlsZVZhbHVlRm9ybWF0LCBq
aXQsIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6cmVnVDIpOwogICAg
ICAgICAKQEAgLTEzMCw3ICsxNDIsNDUgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0dWIoCiAgICAg
ICAgIGNhc2UgRXhpdFZhbHVlSW5KU1N0YWNrQXNJbnQzMjoKICAgICAgICAgY2FzZSBFeGl0VmFs
dWVJbkpTU3RhY2tBc0ludDUyOgogICAgICAgICBjYXNlIEV4aXRWYWx1ZUluSlNTdGFja0FzRG91
YmxlOgotICAgICAgICAgICAgaml0LmxvYWQ2NChBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3Io
dmFsdWUudmlydHVhbFJlZ2lzdGVyKCksIEdQUkluZm86OnJlZ1Q0KSwgR1BSSW5mbzo6cmVnVDAp
OworICAgICAgICAgICAgaml0LmxvYWQ2NChBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IodmFs
dWUudmlydHVhbFJlZ2lzdGVyKCkpLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIEV4aXRWYWx1ZVJlY292ZXJ5OgorICAgICAg
ICAgICAgcmVjb3JkLT5sb2NhdGlvbnNbdmFsdWUucmlnaHRSZWNvdmVyeUFyZ3VtZW50KCldLnJl
c3RvcmVJbnRvKAorICAgICAgICAgICAgICAgIGppdCwgaml0Q29kZS0+c3RhY2ttYXBzLCByZWdp
c3RlclNjcmF0Y2gsIEdQUkluZm86OnJlZ1QxKTsKKyAgICAgICAgICAgIHJlY29yZC0+bG9jYXRp
b25zW3ZhbHVlLmxlZnRSZWNvdmVyeUFyZ3VtZW50KCldLnJlc3RvcmVJbnRvKAorICAgICAgICAg
ICAgICAgIGppdCwgaml0Q29kZS0+c3RhY2ttYXBzLCByZWdpc3RlclNjcmF0Y2gsIEdQUkluZm86
OnJlZ1QwKTsKKyAgICAgICAgICAgIHN3aXRjaCAodmFsdWUucmVjb3ZlcnlPcGNvZGUoKSkgewor
ICAgICAgICAgICAgY2FzZSBBZGRSZWNvdmVyeToKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHZh
bHVlLnJlY292ZXJ5Rm9ybWF0KCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFZhbHVlRm9ybWF0
SW50MzI6CisgICAgICAgICAgICAgICAgICAgIGppdC5hZGQzMihHUFJJbmZvOjpyZWdUMSwgR1BS
SW5mbzo6cmVnVDApOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICBjYXNlIFZhbHVlRm9ybWF0SW50NTI6CisgICAgICAgICAgICAgICAgICAgIGppdC5hZGQ2NChH
UFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFN1
YlJlY292ZXJ5OgorICAgICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUucmVjb3ZlcnlGb3JtYXQo
KSkgeworICAgICAgICAgICAgICAgIGNhc2UgVmFsdWVGb3JtYXRJbnQzMjoKKyAgICAgICAgICAg
ICAgICAgICAgaml0LnN1YjMyKEdQUkluZm86OnJlZ1QxLCBHUFJJbmZvOjpyZWdUMCk7CisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgVmFsdWVGb3JtYXRJ
bnQ1MjoKKyAgICAgICAgICAgICAgICAgICAgaml0LnN1YjY0KEdQUkluZm86OnJlZ1QxLCBHUFJJ
bmZvOjpyZWdUMCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGRl
ZmF1bHQ6CkBAIC0xNDEsNiArMTkxLDEzNyBAQCBzdGF0aWMgdm9pZCBjb21waWxlU3R1YigKICAg
ICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIHNjcmF0Y2ggKyBpbmRleCk7CiAgICAg
fQogICAgIAorICAgIC8vIEhlbmNlZm9ydGggd2UgbWFrZSBpdCBsb29rIGxpa2UgdGhlIGV4aXRp
bmcgZnVuY3Rpb24gd2FzIGNhbGxlZCB0aHJvdWdoIGEgcmVnaXN0ZXIKKyAgICAvLyBwcmVzZXJ2
YXRpb24gd3JhcHBlci4gVGhpcyBpbXBsaWVzIHRoYXQgRlAgbXVzdCBiZSBudWRnZWQgZG93biBi
eSBhIGNlcnRhaW4gYW1vdW50LiBUaGVuCisgICAgLy8gd2UgcmVzdG9yZSB0aGUgdmFyaW91cyB0
aGluZ3MgYWNjb3JkaW5nIHRvIGVpdGhlciBleGl0Lm1fdmFsdWVzIG9yIGJ5IGNvcHlpbmcgZnJv
bSB0aGUKKyAgICAvLyBvbGQgZnJhbWUsIGFuZCBmaW5hbGx5IHdlIHNhdmUgdGhlIHZhcmlvdXMg
Y2FsbGVlLXNhdmUgcmVnaXN0ZXJzIGludG8gd2hlcmUgdGhlCisgICAgLy8gcmVzdG9yYXRpb24g
dGh1bmsgd291bGQgcmVzdG9yZSB0aGVtIGZyb20uCisgICAgCisgICAgcHRyZGlmZl90IG9mZnNl
dCA9IHJlZ2lzdGVyUHJlc2VydmF0aW9uT2Zmc2V0KCk7CisgICAgUmVnaXN0ZXJTZXQgdG9TYXZl
ID0gcmVnaXN0ZXJzVG9QcmVzZXJ2ZSgpOworICAgIAorICAgIC8vIEJlZm9yZSB3ZSBzdGFydCBt
ZXNzaW5nIHdpdGggdGhlIGZyYW1lLCB3ZSBuZWVkIHRvIHNldCBhc2lkZSBhbnkgcmVnaXN0ZXJz
IHRoYXQgdGhlCisgICAgLy8gRlRMIGNvZGUgd2FzIHByZXNlcnZpbmcuCisgICAgZm9yICh1bnNp
Z25lZCBpID0gaml0Q29kZS0+dW53aW5kSW5mby5tX3JlZ2lzdGVycy5zaXplKCk7IGktLTspIHsK
KyAgICAgICAgUmVnaXN0ZXJBdE9mZnNldCBlbnRyeSA9IGppdENvZGUtPnVud2luZEluZm8ubV9y
ZWdpc3RlcnNbaV07CisgICAgICAgIGppdC5sb2FkNjQoCisgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIGVudHJ5
Lm9mZnNldCgpKSwKKyAgICAgICAgICAgIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgaml0LnN0
b3JlNjQoR1BSSW5mbzo6cmVnVDAsIHVud2luZFNjcmF0Y2ggKyBpKTsKKyAgICB9CisgICAgCisg
ICAgaml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OnBheWxvYWRGb3IoSlNTdGFjazo6QXJndW1lbnRD
b3VudCksIEdQUkluZm86OnJlZ1QyKTsKKyAgICAKKyAgICAvLyBMZXQncyBzYXkgdGhhdCB0aGUg
RlRMIGZ1bmN0aW9uIGhhZCBmYWlsZWQgaXRzIGFyaXR5IGNoZWNrLiBJbiB0aGF0IGNhc2UsIHRo
ZSBzdGFjayB3aWxsCisgICAgLy8gY29udGFpbiBzb21lIGV4dHJhIHN0dWZmLgorICAgIC8vCisg
ICAgLy8gRmlyc3Qgd2UgY29tcHV0ZSB0aGUgcGFkZGVkIHN0YWNrIHNwYWNlOgorICAgIC8vCisg
ICAgLy8gICAgIHBhZGRlZFN0YWNrU3BhY2UgPSByb3VuZFVwKGNvZGVCbG9jay0+bnVtUGFyYW1l
dGVycyAtIHJlZ1QyICsgMSkKKyAgICAvLworICAgIC8vIFRoZSBzdGFjayB3aWxsIGhhdmUgcmVn
VDIgKyBDYWxsRnJhbWVIZWFkZXJTaXplIHN0dWZmLCBidXQgYWJvdmUgaXQgdGhlcmUgd2lsbCBi
ZQorICAgIC8vIHBhZGRlZFN0YWNrU3BhY2UgZ3VuayB1c2VkIGJ5IHRoZSBhcml0eSBjaGVjayBm
YWlsIHJlc3RvcmF0aW9uIHRodW5rLiBXaGVuIHRoYXQgaGFwcGVucworICAgIC8vIHdlIHdhbnQg
dG8gbWFrZSB0aGUgc3RhY2sgbG9vayBsaWtlIHRoaXMsIGZyb20gaGlnaGVyIGFkZHJlc3NlcyBk
b3duOgorICAgIC8vCisgICAgLy8gICAgIC0gcmVnaXN0ZXIgcHJlc2VydmF0aW9uIHJldHVybiBQ
QworICAgIC8vICAgICAtIHByZXNlcnZlZCByZWdpc3RlcnMKKyAgICAvLyAgICAgLSBhcml0eSBj
aGVjayBmYWlsIHJldHVybiBQQworICAgIC8vICAgICAtIGFyZ3VtZW50IHBhZGRpbmcKKyAgICAv
LyAgICAgLSBhY3R1YWwgYXJndW1lbnRzCisgICAgLy8gICAgIC0gY2FsbCBmcmFtZSBoZWFkZXIK
KyAgICAvLworICAgIC8vIFNvIHRoYXQgdGhlIGFjdHVhbCBjYWxsIGZyYW1lIGhlYWRlciBhcHBl
YXJzIHRvIHJldHVybiB0byB0aGUgYXJpdHkgY2hlY2sgZmFpbCByZXR1cm4KKyAgICAvLyBQQywg
YW5kIHRoYXQgdGhlbiByZXR1cm5zIHRvIHRoZSByZWdpc3RlciBwcmVzZXJ2YXRpb24gdGh1bmsu
IFRoZSBhcml0eSBjaGVjayB0aHVuayB0aGF0CisgICAgLy8gd2UgcmV0dXJuIHRvIHdpbGwgaGF2
ZSB0aGUgcGFkZGluZyBzaXplIGVuY29kZWQgaW50byBpdC4gSXQgd2lsbCB0aGVuIGtub3cgdG8g
cmV0dXJuCisgICAgLy8gaW50byB0aGUgcmVnaXN0ZXIgcHJlc2VydmF0aW9uIHRodW5rLCB3aGlj
aCB1c2VzIHRoZSBhcmd1bWVudCBjb3VudCB0byBmaWd1cmUgb3V0IHdoZXJlCisgICAgLy8gcmVn
aXN0ZXJzIGFyZSBwcmVzZXJ2ZWQuCisKKyAgICAvLyBUaGlzIGNvZGUgYXNzdW1lcyB0aGF0IHdl
J3JlIGRlYWxpbmcgd2l0aCBGdW5jdGlvbkNvZGUuCisgICAgUkVMRUFTRV9BU1NFUlQoY29kZUJs
b2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSk7CisgICAgCisgICAgaml0LmFkZDMyKAor
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKC1jb2RlQmxvY2stPm51bVBhcmFt
ZXRlcnMoKSksIEdQUkluZm86OnJlZ1QyLAorICAgICAgICBHUFJJbmZvOjpyZWdUMyk7CisgICAg
TWFjcm9Bc3NlbWJsZXI6Okp1bXAgYXJpdHlJbnRhY3QgPSBqaXQuYnJhbmNoVGVzdDMyKE1hY3Jv
QXNzZW1ibGVyOjpaZXJvLCBHUFJJbmZvOjpyZWdUMyk7CisgICAgaml0Lm5lZzMyKEdQUkluZm86
OnJlZ1QzKTsKKyAgICBqaXQuYWRkMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigxICsg
c3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSAtIDEpLCBHUFJJbmZvOjpyZWdUMyk7CisgICAgaml0
LmFuZDMyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoLXN0YWNrQWxpZ25tZW50UmVnaXN0
ZXJzKCkpLCBHUFJJbmZvOjpyZWdUMyk7CisgICAgaml0LmFkZDMyKEdQUkluZm86OnJlZ1QzLCBH
UFJJbmZvOjpyZWdUMik7CisgICAgYXJpdHlJbnRhY3QubGluaygmaml0KTsKKworICAgIC8vIEZp
cnN0IHNldCB1cCBTUCBzbyB0aGF0IG91ciBkYXRhIGRvZXNuJ3QgZ2V0IGNsb2JiZXJlZCBieSBz
aWduYWxzLgorICAgIGppdC5hZGRQdHIoCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIoCisgICAgICAgICAgICBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2YoCisgICAgICAgICAg
ICAgICAgc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwKKyAgICAgICAgICAgICAgICAtcmVnaXN0
ZXJQcmVzZXJ2YXRpb25PZmZzZXQoKSAtIGV4aXQubV92YWx1ZXMubnVtYmVyT2ZMb2NhbHMoKSAq
IHNpemVvZihSZWdpc3RlcikgLSBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkpLAorICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVy
OjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgCisgICAgaml0LnN1YlB0cigKKyAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihyZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCgp
KSwKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAK
KyAgICAvLyBDb3B5IHRoZSBvbGQgZnJhbWUgZGF0YSBpbnRvIGl0cyBuZXcgbG9jYXRpb24uCisg
ICAgaml0LmFkZDMyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoSlNTdGFjazo6Q2FsbEZy
YW1lSGVhZGVyU2l6ZSksIEdQUkluZm86OnJlZ1QyKTsKKyAgICBqaXQubW92ZShNYWNyb0Fzc2Vt
Ymxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QxKTsKKyAgICBNYWNyb0Fz
c2VtYmxlcjo6TGFiZWwgbG9vcCA9IGppdC5sYWJlbCgpOworICAgIGppdC5zdWIzMihNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbTMyKDEpLCBHUFJJbmZvOjpyZWdUMik7CisgICAgaml0LmxvYWQ2
NChNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMSwgb2Zmc2V0KSwgR1BSSW5m
bzo6cmVnVDApOworICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdU
MSk7CisgICAgaml0LmFkZFB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHNpemVvZihS
ZWdpc3RlcikpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0LmJyYW5jaFRlc3QzMihNYWNyb0Fz
c2VtYmxlcjo6Tm9uWmVybywgR1BSSW5mbzo6cmVnVDIpLmxpbmtUbyhsb29wLCAmaml0KTsKKyAg
ICAKKyAgICAvLyBBdCB0aGlzIHBvaW50IHJlZ1QxIHBvaW50cyB0byB3aGVyZSB3ZSB3b3VsZCBz
YXZlIG91ciByZWdpc3RlcnMuIFNhdmUgdGhlbSBoZXJlLgorICAgIHB0cmRpZmZfdCBjdXJyZW50
T2Zmc2V0ID0gMDsKKyAgICBmb3IgKEdQUlJlZyBncHIgPSBBc3NlbWJseUhlbHBlcnM6OmZpcnN0
UmVnaXN0ZXIoKTsgZ3ByIDw9IEFzc2VtYmx5SGVscGVyczo6bGFzdFJlZ2lzdGVyKCk7IGdwciA9
IHN0YXRpY19jYXN0PEdQUlJlZz4oZ3ByICsgMSkpIHsKKyAgICAgICAgaWYgKCF0b1NhdmUuZ2V0
KGdwcikpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY3VycmVudE9mZnNldCArPSBz
aXplb2YoUmVnaXN0ZXIpOworICAgICAgICB1bnNpZ25lZCB1bndpbmRJbmRleCA9IGppdENvZGUt
PnVud2luZEluZm8uaW5kZXhPZihncHIpOworICAgICAgICBpZiAodW53aW5kSW5kZXggPT0gVUlO
VF9NQVgpIHsKKyAgICAgICAgICAgIC8vIFRoZSBGVEwgY29tcGlsYXRpb24gZGlkbid0IHByZXNl
cnZlIHRoaXMgcmVnaXN0ZXIuIFRoaXMgbWVhbnMgdGhhdCBpdCBhbHNvCisgICAgICAgICAgICAv
LyBkaWRuJ3QgdXNlIHRoZSByZWdpc3Rlci4gU28gaXRzIHZhbHVlIGF0IHRoZSBiZWdpbm5pbmcg
b2YgT1NSIGV4aXQgc2hvdWxkIGJlCisgICAgICAgICAgICAvLyBwcmVzZXJ2ZWQgYnkgdGhlIHRo
dW5rLiBMdWNraWx5LCB3ZSBzYXZlZCBhbGwgcmVnaXN0ZXJzIGludG8gdGhlIHJlZ2lzdGVyCisg
ICAgICAgICAgICAvLyBzY3JhdGNoIGJ1ZmZlciwgc28gd2UgY2FuIHJlc3RvcmUgdGhlbSBmcm9t
IHRoZXJlLgorICAgICAgICAgICAgaml0LmxvYWQ2NChyZWdpc3RlclNjcmF0Y2ggKyBvZmZzZXRP
ZkdQUihncHIpLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAvLyBUaGUgRlRMIGNvbXBpbGF0aW9uIHByZXNlcnZlZCB0aGUgcmVnaXN0ZXIuIEl0cyBuZXcg
dmFsdWUgaXMgdGhlcmVmb3JlCisgICAgICAgICAgICAvLyBpcnJlbGV2YW50LCBidXQgd2UgY2Fu
IGdldCB0aGUgdmFsdWUgdGhhdCB3YXMgcHJlc2VydmVkIGJ5IHVzaW5nIHRoZSB1bndpbmQKKyAg
ICAgICAgICAgIC8vIGRhdGEuIFdlJ3ZlIGFscmVhZHkgY29waWVkIGFsbCB1bndpbmQtYWJsZSBw
cmVzZXJ2ZWQgcmVnaXN0ZXJzIGludG8gdGhlIHVud2luZAorICAgICAgICAgICAgLy8gc2NyYXRj
aCBidWZmZXIsIHNvIHdlIGNhbiBnZXQgaXQgZnJvbSB0aGVyZS4KKyAgICAgICAgICAgIGppdC5s
b2FkNjQodW53aW5kU2NyYXRjaCArIHVud2luZEluZGV4LCBHUFJJbmZvOjpyZWdUMCk7CisgICAg
ICAgIH0KKyAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIEFzc2VtYmx5SGVscGVy
czo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMSwgY3VycmVudE9mZnNldCkpOworICAgIH0KKyAgICAK
KyAgICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIHJldHVybiBpbnRvIHRoZSByZWdp
c3RlciByZXN0b3JhdGlvbiB0aHVuay4gVGhpcyB3b3JrcworICAgIC8vIGRpZmZlcmVudGx5IGRl
cGVuZGluZyBvbiB3aGV0aGVyIG9yIG5vdCB3ZSBoYWQgYXJpdHkgaXNzdWVzLgorICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIGFyaXR5SW50YWN0Rm9yUmV0dXJuUEMgPQorICAgICAgICBqaXQuYnJh
bmNoVGVzdDMyKE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBHUFJJbmZvOjpyZWdUMyk7CisgICAgCisg
ICAgLy8gVGhlIHJldHVybiBQQyBpbiB0aGUgY2FsbCBmcmFtZSBoZWFkZXIgcG9pbnRzIGF0IGV4
YWN0bHkgdGhlIHJpZ2h0IGFyaXR5IHJlc3RvcmF0aW9uCisgICAgLy8gdGh1bmsuIFdlIGRvbid0
IHdhbnQgdG8gY2hhbmdlIHRoYXQuIEJ1dCB0aGUgYXJpdHkgcmVzdG9yYXRpb24gdGh1bmsncyBm
cmFtZSBoYXMgYQorICAgIC8vIHJldHVybiBQQyBhbmQgd2Ugd2FudCB0byByZXJvdXRlIHRoYXQg
dG8gb3VyIHJlZ2lzdGVyIHJlc3RvcmF0aW9uIHRodW5rLiBUaGUgYXJpdHkKKyAgICAvLyByZXN0
b3JhdGlvbidzIHJldHVybiBQQyBqdXN0IGp1c3QgYmVsb3cgcmVnVDEsIGFuZCB0aGUgcmVnaXN0
ZXIgcmVzdG9yYXRpb24ncyByZXR1cm4gUEMKKyAgICAvLyBpcyByaWdodCBhdCByZWdUMS4KKyAg
ICBqaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMSwgLXN0
YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkpLCBHUFJJbmZvOjpyZWdUMCk7
CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSk7CisgICAg
aml0LnN0b3JlUHRyKAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cih2bS0+
Z2V0Q1RJU3R1YihyZWdpc3RlclJlc3RvcmF0aW9uVGh1bmtHZW5lcmF0b3IpLmNvZGUoKS5leGVj
dXRhYmxlQWRkcmVzcygpKSwKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5m
bzo6cmVnVDEsIC1zdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpKSk7Cisg
ICAgCisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgYXJpdHlSZXR1cm5QQ1JlYWR5ID0gaml0Lmp1
bXAoKTsKKworICAgIGFyaXR5SW50YWN0Rm9yUmV0dXJuUEMubGluaygmaml0KTsKKyAgICAKKyAg
ICBqaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6ZnJh
bWVQb2ludGVyUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSksIEdQUkluZm86
OnJlZ1QwKTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1Qx
KTsKKyAgICBqaXQuc3RvcmVQdHIoCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
UHRyKHZtLT5nZXRDVElTdHViKHJlZ2lzdGVyUmVzdG9yYXRpb25UaHVua0dlbmVyYXRvcikuY29k
ZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpLAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJu
UENPZmZzZXQoKSkpOworICAgIAorICAgIGFyaXR5UmV0dXJuUENSZWFkeS5saW5rKCZqaXQpOwor
ICAgIAogICAgIC8vIE5vdyBnZXQgc3RhdGUgb3V0IG9mIHRoZSBzY3JhdGNoIGJ1ZmZlciBhbmQg
cGxhY2UgaXQgYmFjayBpbnRvIHRoZSBzdGFjay4gVGhpcyBwYXJ0IGRvZXMKICAgICAvLyBhbGwg
cmVib3hpbmcuCiAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IGV4aXQubV92YWx1ZXMuc2l6ZSgp
OyBpbmRleC0tOykgewpAQCAtMTUwLDI2ICszMzEsMTYgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0
dWIoCiAgICAgICAgIGppdC5sb2FkNjQoc2NyYXRjaCArIGluZGV4LCBHUFJJbmZvOjpyZWdUMCk7
CiAgICAgICAgIHJlYm94QWNjb3JkaW5nVG9Gb3JtYXQoCiAgICAgICAgICAgICB2YWx1ZS52YWx1
ZUZvcm1hdCgpLCBqaXQsIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6
cmVnVDIpOwotICAgICAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgQXNzZW1ibHlIZWxw
ZXJzOjphZGRyZXNzRm9yKHN0YXRpY19jYXN0PFZpcnR1YWxSZWdpc3Rlcj4ob3BlcmFuZCksIEdQ
UkluZm86OnJlZ1Q0KSk7CisgICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBBc3Nl
bWJseUhlbHBlcnM6OmFkZHJlc3NGb3Ioc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihvcGVy
YW5kKSkpOwogICAgIH0KICAgICAKLSAgICAvLyBSZXN0b3JlIHRoZSBvbGQgc3RhY2sgcG9pbnRl
ciBhbmQgdGhlbiBwdXQgcmVnVDQgaW50byBjYWxsRnJhbWVSZWdpc3Rlci4gVGhlIGlkZWEgaXMK
LSAgICAvLyB0aGF0IHRoZSBGVEwgY2FsbCBmcmFtZSBpcyBwdXNoZWQgb250byB0aGUgSlMgY2Fs
bCBmcmFtZSBhbmQgd2UgY2FuIHJlY292ZXIgdGhlIG9sZAotICAgIC8vIHZhbHVlIG9mIHRoZSBz
dGFjayBwb2ludGVyIGJ5IHBvcHBpbmcgdGhlIEZUTCBjYWxsIGZyYW1lLiBXZSBhbHJlYWR5IGtu
b3cgd2hhdCB0aGUKLSAgICAvLyBmcmFtZSBwb2ludGVyIGluIHRoZSBKUyBjYWxsIGZyYW1lIHdh
cyBiZWNhdXNlIGl0IHdvdWxkIGhhdmUgYmVlbiBwYXNzZWQgYXMgYW4gYXJndW1lbnQKLSAgICAv
LyB0byB0aGUgRlRMIGNhbGwgZnJhbWUuCi0gICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OmZy
YW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIp
OwotICAgIGppdC5wb3AoR1BSSW5mbzo6bm9uQXJnR1BSMCk7Ci0gICAgaml0LnBvcChHUFJJbmZv
Ojpub25BcmdHUFIwKTsKLSAgICBqaXQubW92ZShHUFJJbmZvOjpyZWdUNCwgR1BSSW5mbzo6Y2Fs
bEZyYW1lUmVnaXN0ZXIpOwotICAgIAogICAgIGhhbmRsZUV4aXRDb3VudHMoaml0LCBleGl0KTsK
ICAgICByZWlmeUlubGluZWRDYWxsRnJhbWVzKGppdCwgZXhpdCk7CiAgICAgYWRqdXN0QW5kSnVt
cFRvVGFyZ2V0KGppdCwgZXhpdCk7CiAgICAgCiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigq
dm0sICZqaXQsIGNvZGVCbG9jayk7CiAgICAgZXhpdC5tX2NvZGUgPSBGSU5BTElaRV9DT0RFX0lG
KAotICAgICAgICBzaG91bGRTaG93RGlzYXNzZW1ibHkoKSwKKyAgICAgICAgc2hvdWxkU2hvd0Rp
c2Fzc2VtYmx5KCkgfHwgT3B0aW9uczo6dmVyYm9zZU9TUigpLAogICAgICAgICBwYXRjaEJ1ZmZl
ciwKICAgICAgICAgKCJGVEwgT1NSIGV4aXQgIyV1ICglcywgJXMpIGZyb20gJXMsIHdpdGggb3Bl
cmFuZHMgPSAlcywgYW5kIHJlY29yZCA9ICVzIiwKICAgICAgICAgICAgIGV4aXRJRCwgdG9DU3Ry
aW5nKGV4aXQubV9jb2RlT3JpZ2luKS5kYXRhKCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExP
dXRwdXQuaAppbmRleCAyZWM4NzM1MDNhNWU3MmI1NTRiYjMxYWU5YTA2ZjBkNTQ3YzgyNTU2Li5i
ZTQwZDExMTFiOTdlMmE1OWRhMDg5MGU1NTNmNGM0ZmFmYmZjZjkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMT3V0cHV0LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4NCw3ICsxODQsMjMgQEAgcHVibGljOgogICAgIHsKICAg
ICAgICAgcmV0dXJuIGNhbGwoZG91YmxlQWJzSW50cmluc2ljKCksIHZhbHVlKTsKICAgICB9Ci0g
ICAgCisgICAgTFZhbHVlIGRvdWJsZVNpbihMVmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICBy
ZXR1cm4gY2FsbChkb3VibGVTaW5JbnRyaW5zaWMoKSwgdmFsdWUpOworICAgIH0KKworCisgICAg
TFZhbHVlIGRvdWJsZUNvcyhMVmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gY2Fs
bChkb3VibGVDb3NJbnRyaW5zaWMoKSwgdmFsdWUpOworICAgIH0KKworICAgIExWYWx1ZSBkb3Vi
bGVTcXJ0KExWYWx1ZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjYWxsKGRvdWJsZVNx
cnRJbnRyaW5zaWMoKSwgdmFsdWUpOworICAgIH0KKworCiAgICAgc3RhdGljIGJvb2wgaGFzU2Vu
c2libGVEb3VibGVUb0ludCgpIHsgcmV0dXJuIGlzWDg2KCk7IH0KICAgICBMVmFsdWUgc2Vuc2li
bGVEb3VibGVUb0ludChMVmFsdWUgdmFsdWUpCiAgICAgewpAQCAtMjEwLDYgKzIyNiw3IEBAIHB1
YmxpYzoKICAgICBMVmFsdWUgY2FzdFRvSW50MzIoTFZhbHVlIHZhbHVlKSB7IHJldHVybiBpbnRD
YXN0KHZhbHVlLCBpbnQzMik7IH0KICAgICBMVmFsdWUgZnBDYXN0KExWYWx1ZSB2YWx1ZSwgTFR5
cGUgdHlwZSkgeyByZXR1cm4gYnVpbGRGUENhc3QobV9idWlsZGVyLCB2YWx1ZSwgdHlwZSk7IH0K
ICAgICBMVmFsdWUgaW50VG9QdHIoTFZhbHVlIHZhbHVlLCBMVHlwZSB0eXBlKSB7IHJldHVybiBi
dWlsZEludFRvUHRyKG1fYnVpbGRlciwgdmFsdWUsIHR5cGUpOyB9CisgICAgTFZhbHVlIHB0clRv
SW50KExWYWx1ZSB2YWx1ZSwgTFR5cGUgdHlwZSkgeyByZXR1cm4gYnVpbGRQdHJUb0ludChtX2J1
aWxkZXIsIHZhbHVlLCB0eXBlKTsgfQogICAgIExWYWx1ZSBiaXRDYXN0KExWYWx1ZSB2YWx1ZSwg
TFR5cGUgdHlwZSkgeyByZXR1cm4gYnVpbGRCaXRDYXN0KG1fYnVpbGRlciwgdmFsdWUsIHR5cGUp
OyB9CiAgICAgCiAgICAgTFZhbHVlIGFsbG9jYShMVHlwZSB0eXBlKSB7IHJldHVybiBidWlsZEFs
bG9jYShtX2J1aWxkZXIsIHR5cGUpOyB9CkBAIC0zMTQsNiArMzMxLDIwIEBAIHB1YmxpYzoKICAg
ICB2b2lkIHN0b3JlUHRyKExWYWx1ZSB2YWx1ZSwgTFZhbHVlIGJhc2UsIGNvbnN0IEFic3RyYWN0
RmllbGQmIGZpZWxkKSB7IHN0b3JlUHRyKHZhbHVlLCBhZGRyZXNzKGJhc2UsIGZpZWxkKSk7IH0K
ICAgICB2b2lkIHN0b3JlRG91YmxlKExWYWx1ZSB2YWx1ZSwgTFZhbHVlIGJhc2UsIGNvbnN0IEFi
c3RyYWN0RmllbGQmIGZpZWxkKSB7IHN0b3JlRG91YmxlKHZhbHVlLCBhZGRyZXNzKGJhc2UsIGZp
ZWxkKSk7IH0KICAgICAKKyAgICB2b2lkIGFzY3JpYmVSYW5nZShMVmFsdWUgbG9hZEluc3RydWN0
aW9uLCBjb25zdCBWYWx1ZVJhbmdlJiByYW5nZSkKKyAgICB7CisgICAgICAgIHJhbmdlLmRlY29y
YXRlSW5zdHJ1Y3Rpb24obV9jb250ZXh0LCBsb2FkSW5zdHJ1Y3Rpb24sIHJhbmdlS2luZCk7Cisg
ICAgfQorICAgIAorICAgIExWYWx1ZSBub25OZWdhdGl2ZTMyKExWYWx1ZSBsb2FkSW5zdHJ1Y3Rp
b24pCisgICAgeworICAgICAgICBhc2NyaWJlUmFuZ2UobG9hZEluc3RydWN0aW9uLCBub25OZWdh
dGl2ZUludDMyKTsKKyAgICAgICAgcmV0dXJuIGxvYWRJbnN0cnVjdGlvbjsKKyAgICB9CisgICAg
CisgICAgTFZhbHVlIGxvYWQzMk5vbk5lZ2F0aXZlKFR5cGVkUG9pbnRlciBwb2ludGVyKSB7IHJl
dHVybiBub25OZWdhdGl2ZTMyKGxvYWQzMihwb2ludGVyKSk7IH0KKyAgICBMVmFsdWUgbG9hZDMy
Tm9uTmVnYXRpdmUoTFZhbHVlIGJhc2UsIGNvbnN0IEFic3RyYWN0RmllbGQmIGZpZWxkKSB7IHJl
dHVybiBub25OZWdhdGl2ZTMyKGxvYWQzMihiYXNlLCBmaWVsZCkpOyB9CisgICAgCiAgICAgTFZh
bHVlIGljbXAoTEludFByZWRpY2F0ZSBjb25kLCBMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KSB7
IHJldHVybiBidWlsZElDbXAobV9idWlsZGVyLCBjb25kLCBsZWZ0LCByaWdodCk7IH0KICAgICBM
VmFsdWUgZXF1YWwoTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCkgeyByZXR1cm4gaWNtcChMTFZN
SW50RVEsIGxlZnQsIHJpZ2h0KTsgfQogICAgIExWYWx1ZSBub3RFcXVhbChMVmFsdWUgbGVmdCwg
TFZhbHVlIHJpZ2h0KSB7IHJldHVybiBpY21wKExMVk1JbnRORSwgbGVmdCwgcmlnaHQpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVjb3ZlcnlPcGNvZGUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcwNzcwZGQ4MTE2NGJjMGI2YzBmNGQ1YjUyYTgyYTg3OTliMTllMTcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmNw
cApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGVExSZWNvdmVyeU9wY29k
ZS5oIgorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKKyNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0u
aD4KKworbmFtZXNwYWNlIFdURiB7CisKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYg
b3V0LCBKU0M6OkZUTDo6UmVjb3ZlcnlPcGNvZGUgb3Bjb2RlKQoreworICAgIHN3aXRjaCAob3Bj
b2RlKSB7CisgICAgY2FzZSBKU0M6OkZUTDo6QWRkUmVjb3Zlcnk6CisgICAgICAgIG91dC5wcmlu
dCgiQWRkIik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEpTQzo6RlRMOjpTdWJSZWNvdmVy
eToKKyAgICAgICAgb3V0LnByaW50KCJTdWIiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYK
KworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNhNzU1YTk0NmQzMzFjYjE3YjAz
MzQ4YTE3OWE1YTMyYjk0YjZjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMUmVjb3ZlcnlPcGNvZGUuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRlRMUmVjb3ZlcnlP
cGNvZGVfaAorI2RlZmluZSBGVExSZWNvdmVyeU9wY29kZV9oCisKKyNpZiBFTkFCTEUoRlRMX0pJ
VCkKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCitlbnVtIFJlY292ZXJ5T3Bj
b2RlIHsKKyAgICBBZGRSZWNvdmVyeSwKKyAgICBTdWJSZWNvdmVyeQorfTsKKworfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OkZUTAorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUHJpbnRTdHJlYW07
Cit2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBKU0M6OkZUTDo6UmVjb3ZlcnlPcGNv
ZGUpOworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQor
CisjZW5kaWYgLy8gRlRMUmVjb3ZlcnlPcGNvZGVfaAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzA3N2ZkNTBk
YzQwNjFhYTRiYzA1MDY5MmM3YjU3YTIyOGIwOGY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmNwcApAQCAtMCwwICsxLDQx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGVExSZWdpc3RlckF0T2Zmc2V0LmgiCisKKyNpZiBF
TkFCTEUoRlRMX0pJVCkKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCit2b2lk
IFJlZ2lzdGVyQXRPZmZzZXQ6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBv
dXQucHJpbnQoZ3ByKCksICIgYXQgIiwgb2Zmc2V0KCkpOworfQorCit9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDllOWFi
MDNkMDNmNzk5YzYwYTczM2ZjNTI3MTczZjRhYmEwMzA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmgKQEAgLTAsMCArMSw4
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIEZUTFJlZ2lzdGVyQXRPZmZzZXRfaAorI2RlZmluZSBGVExSZWdpc3RlckF0T2Zmc2V0X2gK
KworI2lmIEVOQUJMRShGVExfSklUKQorCisjaW5jbHVkZSAiR1BSSW5mby5oIgorI2luY2x1ZGUg
PHd0Zi9QcmludFN0cmVhbS5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisK
K2NsYXNzIFJlZ2lzdGVyQXRPZmZzZXQgeworcHVibGljOgorICAgIFJlZ2lzdGVyQXRPZmZzZXQo
KQorICAgICAgICA6IG1fZ3ByKEludmFsaWRHUFJSZWcpCisgICAgICAgICwgbV9vZmZzZXQoMCkK
KyAgICB7CisgICAgfQorICAgIAorICAgIFJlZ2lzdGVyQXRPZmZzZXQoR1BSUmVnIGdwciwgcHRy
ZGlmZl90IG9mZnNldCkKKyAgICAgICAgOiBtX2dwcihncHIpCisgICAgICAgICwgbV9vZmZzZXQo
b2Zmc2V0KQorICAgIHsKKyAgICB9CisgICAgCisgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7
IHJldHVybiBtX2dwciA9PSBJbnZhbGlkR1BSUmVnOyB9CisgICAgCisgICAgR1BSUmVnIGdwcigp
IGNvbnN0IHsgcmV0dXJuIG1fZ3ByOyB9CisgICAgcHRyZGlmZl90IG9mZnNldCgpIGNvbnN0IHsg
cmV0dXJuIG1fb2Zmc2V0OyB9CisgICAgCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlZ2lz
dGVyQXRPZmZzZXQmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGdwcigpID09
IG90aGVyLmdwcigpICYmIG9mZnNldCgpID09IG90aGVyLm9mZnNldCgpOworICAgIH0KKyAgICAK
KyAgICBib29sIG9wZXJhdG9yPChjb25zdCBSZWdpc3RlckF0T2Zmc2V0JiBvdGhlcikgY29uc3QK
KyAgICB7CisgICAgICAgIGlmIChncHIoKSAhPSBvdGhlci5ncHIoKSkKKyAgICAgICAgICAgIHJl
dHVybiBncHIoKSA8IG90aGVyLmdwcigpOworICAgICAgICByZXR1cm4gb2Zmc2V0KCkgPCBvdGhl
ci5vZmZzZXQoKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIEdQUlJlZyBnZXRHUFIoUmVnaXN0
ZXJBdE9mZnNldCogdmFsdWUpIHsgcmV0dXJuIHZhbHVlLT5ncHIoKTsgfQorICAgIAorICAgIHZv
aWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBHUFJSZWcg
bV9ncHI7CisgICAgcHRyZGlmZl90IG1fb2Zmc2V0OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKKyNlbmRpZiAvLyBGVExSZWdp
c3RlckF0T2Zmc2V0X2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExTbG93UGF0aENhbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0
aENhbGwuY3BwCmluZGV4IDNjZjZhZTBlM2Y2MGI1Y2YzOTFjZmM0ODA1NWRmMGZkZTRjZTAxNjcu
LjJlMGZhODg5YzczNzNmZDliMDYwM2VlMzE4MmM3YmJjM2NjYTY0ODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5LDcgQEAKICNp
ZiBFTkFCTEUoRlRMX0pJVCkKIAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUg
IkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJGVExTdGF0ZS5oIgogI2luY2x1ZGUgIkdQ
UkluZm8uaCIKIApAQCAtMTM0LDExICsxMzUsMTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
U2xvd1BhdGhDYWxsS2V5KHVzZWRSZWdpc3RlcnMoKSwgY2FsbFRhcmdldCwgb2Zmc2V0KCkpOwog
ICAgIH0KICAgICAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBtYWtlQ2FsbCh2b2lkKiBjYWxs
VGFyZ2V0KQorICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIG1ha2VDYWxsKHZvaWQqIGNhbGxUYXJn
ZXQsIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCogZXhjZXB0aW9uVGFyZ2V0KQogICAgIHsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgcmVzdWx0ID0gbV9qaXQuY2FsbCgpOwogICAgICAg
ICBtX3N0YXRlLmZpbmFsaXplci0+c2xvd1BhdGhDYWxscy5hcHBlbmQoU2xvd1BhdGhDYWxsKAog
ICAgICAgICAgICAgcmVzdWx0LCBrZXlXaXRoVGFyZ2V0KGNhbGxUYXJnZXQpKSk7CisgICAgICAg
IGlmIChleGNlcHRpb25UYXJnZXQpCisgICAgICAgICAgICBleGNlcHRpb25UYXJnZXQtPmFwcGVu
ZChtX2ppdC5lbWl0RXhjZXB0aW9uQ2hlY2soKSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgfQogICAgIApAQCAtMTU3LDMyICsxNjAsNDQgQEAgcHJpdmF0ZToKIAogfSAvLyBhbm9ueW1v
dXMgbmFtZXNwYWNlCiAKK3ZvaWQgc3RvcmVDb2RlT3JpZ2luKFN0YXRlJiBzdGF0ZSwgQ0NhbGxI
ZWxwZXJzJiBqaXQsIENvZGVPcmlnaW4gY29kZU9yaWdpbikKK3sKKyAgICBpZiAoIWNvZGVPcmln
aW4uaXNTZXQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIHVuc2lnbmVkIGluZGV4ID0g
c3RhdGUuaml0Q29kZS0+Y29tbW9uLmFkZENvZGVPcmlnaW4oY29kZU9yaWdpbik7CisgICAgdW5z
aWduZWQgbG9jYXRpb25CaXRzID0gQ2FsbEZyYW1lOjpMb2NhdGlvbjo6ZW5jb2RlQXNDb2RlT3Jp
Z2luSW5kZXgoaW5kZXgpOworICAgIGppdC5zdG9yZTMyKAorICAgICAgICBDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW0zMihsb2NhdGlvbkJpdHMpLAorICAgICAgICBDQ2FsbEhlbHBlcnM6OnRhZ0Zv
cihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKSk7
Cit9CisKIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oCi0gICAgU3RhdGUmIHN0
YXRlLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywgQ0NhbGxIZWxwZXJzJiBqaXQs
IAotICAgIEpfSklUT3BlcmF0aW9uX0VTc2lKSSBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQ
UlJlZyBjYWxsRnJhbWVSZWdpc3RlciwKLSAgICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8s
IEdQUlJlZyBvYmplY3QsIFN0cmluZ0ltcGwqIHVpZCkKKyAgICBTdGF0ZSYgc3RhdGUsIGNvbnN0
IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDQ2FsbEhlbHBlcnMmIGppdCwKKyAgICBDb2Rl
T3JpZ2luIGNvZGVPcmlnaW4sIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCogZXhjZXB0aW9uVGFy
Z2V0LAorICAgIEpfSklUT3BlcmF0aW9uX0VTc2lKSSBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQs
IFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywKKyAgICBHUFJSZWcgb2JqZWN0LCBTdHJpbmdJ
bXBsKiB1aWQpCiB7CisgICAgc3RvcmVDb2RlT3JpZ2luKHN0YXRlLCBqaXQsIGNvZGVPcmlnaW4p
OwogICAgIENhbGxDb250ZXh0IGNvbnRleHQoc3RhdGUsIHVzZWRSZWdpc3RlcnMsIGppdCwgNCwg
cmVzdWx0KTsKLSAgICBqaXQuc2V0dXBBcmd1bWVudHMoCi0gICAgICAgIGNhbGxGcmFtZVJlZ2lz
dGVyLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoc3R1YkluZm8pLCBvYmplY3QsCisgICAg
aml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSgKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tUHRyKHN0dWJJbmZvKSwgb2JqZWN0LAogICAgICAgICBDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIodWlkKSk7Ci0gICAgcmV0dXJuIGNvbnRleHQubWFrZUNhbGwoYml0d2lzZV9j
YXN0PHZvaWQqPihvcGVyYXRpb24pKTsKLSAgICAvLyBGSVhNRTogRlRMIHNob3VsZCBzdXBwb3J0
IGV4Y2VwdGlvbnMuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMzYyMgorICAgIHJldHVybiBjb250ZXh0Lm1ha2VDYWxsKGJpdHdpc2VfY2FzdDx2b2lk
Kj4ob3BlcmF0aW9uKSwgZXhjZXB0aW9uVGFyZ2V0KTsKIH0KIAogTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbigKICAgICBTdGF0ZSYgc3RhdGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1
c2VkUmVnaXN0ZXJzLCBDQ2FsbEhlbHBlcnMmIGppdCwgCi0gICAgVl9KSVRPcGVyYXRpb25fRVNz
aUpKSSBvcGVyYXRpb24sIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciwKLSAgICBTdHJ1Y3R1cmVT
dHViSW5mbyogc3R1YkluZm8sIEdQUlJlZyB2YWx1ZSwgR1BSUmVnIG9iamVjdCwgU3RyaW5nSW1w
bCogdWlkKQorICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgTWFjcm9Bc3NlbWJsZXI6Okp1bXBM
aXN0KiBleGNlcHRpb25UYXJnZXQsCisgICAgVl9KSVRPcGVyYXRpb25fRVNzaUpKSSBvcGVyYXRp
b24sIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgR1BSUmVnIHZhbHVlLAorICAgIEdQUlJl
ZyBvYmplY3QsIFN0cmluZ0ltcGwqIHVpZCkKIHsKKyAgICBzdG9yZUNvZGVPcmlnaW4oc3RhdGUs
IGppdCwgY29kZU9yaWdpbik7CiAgICAgQ2FsbENvbnRleHQgY29udGV4dChzdGF0ZSwgdXNlZFJl
Z2lzdGVycywgaml0LCA1LCBJbnZhbGlkR1BSUmVnKTsKLSAgICBqaXQuc2V0dXBBcmd1bWVudHMo
Ci0gICAgICAgIGNhbGxGcmFtZVJlZ2lzdGVyLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIo
c3R1YkluZm8pLCB2YWx1ZSwgb2JqZWN0LAorICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoCisgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihzdHViSW5mbyksIHZh
bHVlLCBvYmplY3QsCiAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih1aWQpKTsK
LSAgICByZXR1cm4gY29udGV4dC5tYWtlQ2FsbChiaXR3aXNlX2Nhc3Q8dm9pZCo+KG9wZXJhdGlv
bikpOwotICAgIC8vIEZJWE1FOiBGVEwgc2hvdWxkIHN1cHBvcnQgZXhjZXB0aW9ucy4KLSAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIyCisgICAgcmV0
dXJuIGNvbnRleHQubWFrZUNhbGwoYml0d2lzZV9jYXN0PHZvaWQqPihvcGVyYXRpb24pLCBleGNl
cHRpb25UYXJnZXQpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuaAppbmRleCA0MzVlZmRjODM0ZTQwMjQ1
ZTlkYmMwOTc5ZmY5M2FiZTM5NmNiNWZkLi42OGUwOWU2NmI5N2VjNDBmNDlmZjVmOTdiOGM0ODgx
Yzc0ZGEzMzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQ
YXRoQ2FsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxs
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTU1LDEzICs1NSwxNSBAQCBwcml2YXRlOgogICAgIFNsb3dQYXRoQ2FsbEtleSBtX2tleTsK
IH07CiAKK3ZvaWQgc3RvcmVDb2RlT3JpZ2luKFN0YXRlJiwgQ0NhbGxIZWxwZXJzJiwgQ29kZU9y
aWdpbik7CisKIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oCi0gICAgU3RhdGUm
LCBjb25zdCBSZWdpc3RlclNldCYsIENDYWxsSGVscGVycyYsIEpfSklUT3BlcmF0aW9uX0VTc2lK
SSwKLSAgICBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsIFN0cnVjdHVy
ZVN0dWJJbmZvKiwgR1BSUmVnIG9iamVjdCwKKyAgICBTdGF0ZSYsIGNvbnN0IFJlZ2lzdGVyU2V0
JiwgQ0NhbGxIZWxwZXJzJiwgQ29kZU9yaWdpbiwgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCosCisg
ICAgSl9KSVRPcGVyYXRpb25fRVNzaUpJLCBHUFJSZWcgcmVzdWx0LCBTdHJ1Y3R1cmVTdHViSW5m
byosIEdQUlJlZyBvYmplY3QsCiAgICAgU3RyaW5nSW1wbCogdWlkKTsKIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oCi0gICAgU3RhdGUmLCBjb25zdCBSZWdpc3RlclNldCYsIEND
YWxsSGVscGVycyYsIFZfSklUT3BlcmF0aW9uX0VTc2lKSkksCi0gICAgR1BSUmVnIGNhbGxGcmFt
ZVJlZ2lzdGVyLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEdQUlJlZyB2YWx1ZSwgR1BSUmVnIG9iamVj
dCwKKyAgICBTdGF0ZSYsIGNvbnN0IFJlZ2lzdGVyU2V0JiwgQ0NhbGxIZWxwZXJzJiwgQ29kZU9y
aWdpbiwgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCosCisgICAgVl9KSVRPcGVyYXRpb25fRVNzaUpK
SSwgU3RydWN0dXJlU3R1YkluZm8qLCBHUFJSZWcgdmFsdWUsIEdQUlJlZyBvYmplY3QsCiAgICAg
U3RyaW5nSW1wbCogdWlkKTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGFja01hcHMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExTdGFja01hcHMuY3BwCmluZGV4IDVhZjIwODJjOGNjYTA2OGZj
MTIwNjZmMGNjNDg4ZmZlOGMzOWJjYzkuLjQwMzM4OTFhOWI0MzdjYTQ4ZTJhZTY0ZGUwZTU0M2Zm
MzNlNmM2NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhY2tN
YXBzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YWNrTWFwcy5jcHAK
QEAgLTc5LDcgKzc5LDkgQEAgdm9pZCBTdGFja01hcHM6OkxvY2F0aW9uOjpyZXN0b3JlSW50bygK
IAogYm9vbCBTdGFja01hcHM6OlJlY29yZDo6cGFyc2UoRGF0YVZpZXcqIHZpZXcsIHVuc2lnbmVk
JiBvZmZzZXQpCiB7Ci0gICAgcGF0Y2hwb2ludElEID0gdmlldy0+cmVhZDx1aW50MzJfdD4ob2Zm
c2V0LCB0cnVlKTsKKyAgICBpbnQ2NF90IGlkID0gdmlldy0+cmVhZDxpbnQ2NF90PihvZmZzZXQs
IHRydWUpOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDxpbnQzMl90PihpZCkgPT0gaWQpOworICAg
IHBhdGNocG9pbnRJRCA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihpZCk7CiAgICAgaWYgKHN0YXRp
Y19jYXN0PGludDMyX3Q+KHBhdGNocG9pbnRJRCkgPCAwKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgCkBAIC05MCw2ICs5MiwxMyBAQCBib29sIFN0YWNrTWFwczo6UmVjb3JkOjpwYXJzZShE
YXRhVmlldyogdmlldywgdW5zaWduZWQmIG9mZnNldCkKICAgICB3aGlsZSAobGVuZ3RoLS0pCiAg
ICAgICAgIGxvY2F0aW9ucy5hcHBlbmQocmVhZE9iamVjdDxMb2NhdGlvbj4odmlldywgb2Zmc2V0
KSk7CiAgICAgCisgICAgdW5zaWduZWQgbnVtTGl2ZU91dHMgPSB2aWV3LT5yZWFkPHVpbnQxNl90
PihvZmZzZXQsIHRydWUpOworICAgIHdoaWxlIChudW1MaXZlT3V0cy0tKSB7CisgICAgICAgIHZp
ZXctPnJlYWQ8dWludDE2X3Q+KG9mZnNldCwgdHJ1ZSk7IC8vIHJlZ251bQorICAgICAgICB2aWV3
LT5yZWFkPHVpbnQ4X3Q+KG9mZnNldCwgdHJ1ZSk7IC8vIHJlc2VydmVkCisgICAgICAgIHZpZXct
PnJlYWQ8dWludDhfdD4ob2Zmc2V0LCB0cnVlKTsgLy8gc2l6ZSBpbiBieXRlcworICAgIH0KKyAg
ICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExTdGFja01hcHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3Rh
Y2tNYXBzLmgKaW5kZXggZjE3NTkyNWQ1MDEyYzE3Y2ExMDY1ZmU5MmI5ZDJiNjNhYzg1ODlkYS4u
MDNiNzY2MTVmZDdmMDNhMmJmYmQzY2RkZGU4MTg4ODZhYTVjYWE1NiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGFja01hcHMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFN0YWNrTWFwcy5oCkBAIC02MSw3ICs2MSw3IEBAIHN0cnVjdCBTdGFj
a01hcHMgewogICAgICAgICB1aW50MTZfdCBkd2FyZlJlZ051bTsgLy8gUmVwcmVzZW50ZWQgYXMg
YSAxMi1iaXQgaW50IGluIHRoZSBzZWN0aW9uLgogICAgICAgICBpbnQ4X3Qgc2l6ZTsKICAgICAg
ICAgS2luZCBraW5kOwotICAgICAgICBpbnQxNl90IG9mZnNldDsKKyAgICAgICAgaW50MzJfdCBv
ZmZzZXQ7CiAgICAgICAgIAogICAgICAgICB2b2lkIHBhcnNlKERhdGFWaWV3KiwgdW5zaWduZWQm
IG9mZnNldCk7CiAgICAgICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5jcHAKaW5kZXggYzI2M2IyNjRiNGRkMzEyNjVj
ZjE2YTRhMzljNjQ4MjkzMTUzYzFiNC4uMzI5NDRkNmI0MzNmYjk5ZGIyMDNlOWQ1YmU5YmMzNGEx
ZmFhY2EyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5jcHAKQEAgLTQzLDYg
KzQzLDggQEAgU3RhdGU6OlN0YXRlKEdyYXBoJiBncmFwaCkKICAgICAsIG1vZHVsZSgwKQogICAg
ICwgZnVuY3Rpb24oMCkKICAgICAsIGdlbmVyYXRlZEZ1bmN0aW9uKDApCisgICAgLCBjb21wYWN0
VW53aW5kKDApCisgICAgLCBjb21wYWN0VW53aW5kU2l6ZSgwKQogewogICAgIHN3aXRjaCAoZ3Jh
cGgubV9wbGFuLm1vZGUpIHsKICAgICBjYXNlIEZUTE1vZGU6IHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMU3RhdGUuaAppbmRleCBjODJkYjY3Mjg0MmViZWJhNmQ1NmJiNTYxNGNiNGMxZGFlMzEx
NjkzLi42ZTRhMzgxNjMwM2Q1NjZiNDc3YzFjODM3NTliNjM0M2FhYjM4ZDlhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiRlRMSW5s
aW5lQ2FjaGVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiRlRMSklUQ29kZS5oIgogI2luY2x1ZGUg
IkZUTEpJVEZpbmFsaXplci5oIgorI2luY2x1ZGUgIkZUTEpTQ2FsbC5oIgogI2luY2x1ZGUgIkZU
TFN0YWNrTWFwcy5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCkBAIC01NywxMCAr
NTgsMTUgQEAgcHVibGljOgogICAgIFJlZlB0cjxKSVRDb2RlPiBqaXRDb2RlOwogICAgIEdlbmVy
YXRlZEZ1bmN0aW9uIGdlbmVyYXRlZEZ1bmN0aW9uOwogICAgIEpJVEZpbmFsaXplciogZmluYWxp
emVyOworICAgIHVuc2lnbmVkIGhhbmRsZUV4Y2VwdGlvblN0YWNrbWFwSUQ7CisgICAgdW5zaWdu
ZWQgY2FwdHVyZWRTdGFja21hcElEOwogICAgIFNlZ21lbnRlZFZlY3RvcjxHZXRCeUlkRGVzY3Jp
cHRvcj4gZ2V0QnlJZHM7CiAgICAgU2VnbWVudGVkVmVjdG9yPFB1dEJ5SWREZXNjcmlwdG9yPiBw
dXRCeUlkczsKKyAgICBWZWN0b3I8SlNDYWxsPiBqc0NhbGxzOwogICAgIFZlY3RvcjxDU3RyaW5n
PiBjb2RlU2VjdGlvbk5hbWVzOwogICAgIFZlY3RvcjxDU3RyaW5nPiBkYXRhU2VjdGlvbk5hbWVz
OworICAgIHZvaWQqIGNvbXBhY3RVbndpbmQ7CisgICAgc2l6ZV90IGNvbXBhY3RVbndpbmRTaXpl
OwogICAgIFJlZkNvdW50ZWRBcnJheTxMU2VjdGlvbldvcmQ+IHN0YWNrbWFwc1NlY3Rpb247CiAg
ICAgCiAgICAgdm9pZCBkdW1wU3RhdGUoY29uc3QgY2hhciogd2hlbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTFRodW5rcy5jcHAKaW5kZXggYmYwNGFmMDJhMzk4NTczNDU5YjQ1NzYyYWJl
MDU2YWMwMTAzY2Y3NC4uMTlmMmZlMmEwMjU2ZjYxNmIyN2E1NWQzMzlkOWVlMjI5NDFiOTdjZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcApAQCAtMzksOSArMzksOSBA
QCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBERkc7
CiAKLU1hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2VuZXJhdGlvblRodW5rR2VuZXJhdG9y
KFZNJiB2bSwgY29uc3QgTG9jYXRpb24mIGxvY2F0aW9uKQorTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogewotICAgIEFzc2VtYmx5
SGVscGVycyBqaXQoJnZtLCAwKTsKKyAgICBBc3NlbWJseUhlbHBlcnMgaml0KHZtLCAwKTsKICAg
ICAKICAgICAvLyBOb3RlIHRoYXQgdGhlICJyZXR1cm4gYWRkcmVzcyIgd2lsbCBiZSB0aGUgT1NS
IGV4aXQgSUQuCiAgICAgCkBAIC01MSw3ICs1MSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBv
c3JFeGl0R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKFZNJiB2bSwgY29uc3QgTG9jYXRpb24mIGxv
CiAgICAgaml0LnB1c2goR1BSSW5mbzo6cmVnVDApOwogICAgIGppdC5wdXNoKEdQUkluZm86OnJl
Z1QwKTsKICAgICAKLSAgICBTY3JhdGNoQnVmZmVyKiBzY3JhdGNoQnVmZmVyID0gdm0uc2NyYXRj
aEJ1ZmZlckZvclNpemUocmVxdWlyZWRTY3JhdGNoTWVtb3J5U2l6ZUluQnl0ZXMoKSk7CisgICAg
U2NyYXRjaEJ1ZmZlciogc2NyYXRjaEJ1ZmZlciA9IHZtLT5zY3JhdGNoQnVmZmVyRm9yU2l6ZShy
ZXF1aXJlZFNjcmF0Y2hNZW1vcnlTaXplSW5CeXRlcygpKTsKICAgICBjaGFyKiBidWZmZXIgPSBz
dGF0aWNfY2FzdDxjaGFyKj4oc2NyYXRjaEJ1ZmZlci0+ZGF0YUJ1ZmZlcigpKTsKICAgICAKICAg
ICBzYXZlQWxsUmVnaXN0ZXJzKGppdCwgYnVmZmVyKTsKQEAgLTYwLDcgKzYwLDcgQEAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IoVk0mIHZtLCBj
b25zdCBMb2NhdGlvbiYgbG8KICAgICBqaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bVB0cihzY3JhdGNoQnVmZmVyLT5hY3RpdmVMZW5ndGhQdHIoKSksIEdQUkluZm86Om5vbkFyZ0dQ
UjEpOwogICAgIGppdC5zdG9yZVB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihyZXF1
aXJlZFNjcmF0Y2hNZW1vcnlTaXplSW5CeXRlcygpKSwgR1BSSW5mbzo6bm9uQXJnR1BSMSk7CiAK
LSAgICBsb2NhdGlvbi5yZXN0b3JlSW50byhqaXQsIGJ1ZmZlciwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwLCAxKTsKKyAgICBqaXQubG9hZFB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBqaXQucGVlayhHUFJJbmZvOjphcmd1bWVudEdQUjEs
IDMpOwogICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGZ1bmN0aW9uQ2FsbCA9IGppdC5jYWxsKCk7
CiAgICAgCkBAIC03MSw2ICs3MSwxMCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhpdEdl
bmVyYXRpb25UaHVua0dlbmVyYXRvcihWTSYgdm0sIGNvbnN0IExvY2F0aW9uJiBsbwogICAgIAog
ICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZWdUMCk7CiAg
ICAgCisgICAgLy8gTWFrZSBzdXJlIHdlIHRlbGwgdGhlIEdDIHRoYXQgd2UncmUgbm90IHVzaW5n
IHRoZSBzY3JhdGNoIGJ1ZmZlciBhbnltb3JlLgorICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tUHRyKHNjcmF0Y2hCdWZmZXItPmFjdGl2ZUxlbmd0aFB0cigpKSwgR1BSSW5m
bzo6cmVnVDEpOworICAgIGppdC5zdG9yZVB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0
cigwKSwgR1BSSW5mbzo6cmVnVDEpOworICAgIAogICAgIC8vIFByZXBhcmUgZm9yIHRhaWwgY2Fs
bC4KICAgICBqaXQucG9wKEdQUkluZm86OnJlZ1QxKTsKICAgICBqaXQucG9wKEdQUkluZm86OnJl
Z1QxKTsKQEAgLTgxLDE0ICs4NSwxNCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhpdEdl
bmVyYXRpb25UaHVua0dlbmVyYXRvcihWTSYgdm0sIGNvbnN0IExvY2F0aW9uJiBsbwogICAgIC8v
IHJlc3RvcmUgYWxsIHJlZ2lzdGVycy4KICAgICAKICAgICBqaXQucmVzdG9yZVJldHVybkFkZHJl
c3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6cmVnVDApOwotICAgIAorCiAgICAgcmVzdG9yZUFsbFJl
Z2lzdGVycyhqaXQsIGJ1ZmZlcik7CiAKICAgICBqaXQucmV0KCk7CiAgICAgCi0gICAgTGlua0J1
ZmZlciBwYXRjaEJ1ZmZlcih2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKKyAgICBMaW5rQnVm
ZmVyIHBhdGNoQnVmZmVyKCp2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKICAgICBwYXRjaEJ1
ZmZlci5saW5rKGZ1bmN0aW9uQ2FsbCwgY29tcGlsZUZUTE9TUkV4aXQpOwotICAgIHJldHVybiBG
SU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIkZUTCBPU1IgZXhpdCBnZW5lcmF0aW9uIHRodW5r
IGZvciBjYWxsRnJhbWUgYXQgJXMiLCB0b0NTdHJpbmcobG9jYXRpb24pLmRhdGEoKSkpOworICAg
IHJldHVybiBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIkZUTCBPU1IgZXhpdCBnZW5lcmF0
aW9uIHRodW5rIikpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgc2xvd1BhdGhDYWxsVGh1
bmtHZW5lcmF0b3IoVk0mIHZtLCBjb25zdCBTbG93UGF0aENhbGxLZXkmIGtleSkKQEAgLTExOSwx
MSArMTIzLDEzIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBzbG93UGF0aENhbGxUaHVua0dlbmVy
YXRvcihWTSYgdm0sIGNvbnN0IFNsb3dQYXRoQ2FsbEtleSYKICAgICAgICAgY3VycmVudE9mZnNl
dCArPSBzaXplb2YoZG91YmxlKTsKICAgICB9CiAgICAgCisgICAgLy8gRklYTUU6IENTdGFjayAt
IE5lZWQgdG8gZG8gc29lbWV0aGluZyBsaWtlIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwog
ICAgIGppdC5wcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BSSW5mbzo6bm9uQXJnR1BS
MCk7CiAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86Om5vbkFyZ0dQUjAsIEFzc2VtYmx5SGVscGVy
czo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGtleS5vZmZz
ZXQoKSkpOwogICAgIAogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGwgPSBqaXQuY2FsbCgpOwot
ICAgIAorCisgICAgLy8gRklYTUU6IENTdGFjayAtIE5lZWQgdG8gZG8gc29tZXRoaW5nIGxpa2Ug
aml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgaml0LmxvYWRQdHIoQXNzZW1ibHlIZWxw
ZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwga2V5Lm9m
ZnNldCgpKSwgR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKICAgICBqaXQucmVz
dG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0
dXJuR1BSKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
VGh1bmtzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5oCmluZGV4IGJi
Y2RiZGRjOTJhNWQ1ODcwZDMwYzU5ZmZjMTc3OTE5NWFhMjYzZjQuLjMwMDg0NDU0OTY0OTE3ODkx
MGIyNGVkODYxZDlhM2NmZjFiOWViNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMVGh1bmtzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVu
a3MuaApAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBWTTsKIAogbmFtZXNwYWNlIEZUTCB7CiAKLU1h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKFZNJiwg
Y29uc3QgTG9jYXRpb24mKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2VuZXJhdGlv
blRodW5rR2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgc2xvd1BhdGhDYWxs
VGh1bmtHZW5lcmF0b3IoVk0mLCBjb25zdCBTbG93UGF0aENhbGxLZXkmKTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgS2V5VHlwZUFyZ3VtZW50PgpAQCAtNzgsMTIgKzc4LDYgQEAgdHlwZW5hbWUgTWFw
VHlwZTo6S2V5VHlwZSBrZXlGb3JUaHVuayhNYXBUeXBlJiBtYXAsIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBwdHIpCiAKIGNsYXNzIFRodW5rcyB7CiBwdWJsaWM6Ci0gICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIGdldE9TUkV4aXRHZW5lcmF0aW9uVGh1bmsoVk0mIHZtLCBjb25zdCBMb2NhdGlvbiYg
bG9jYXRpb24pCi0gICAgewotICAgICAgICByZXR1cm4gZ2VuZXJhdGVJZk5lY2Vzc2FyeSgKLSAg
ICAgICAgICAgIHZtLCBtX29zckV4aXRUaHVua3MsIGxvY2F0aW9uLCBvc3JFeGl0R2VuZXJhdGlv
blRodW5rR2VuZXJhdG9yKTsKLSAgICB9Ci0gICAgCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IGdldFNsb3dQYXRoQ2FsbFRodW5rKFZNJiB2bSwgY29uc3QgU2xvd1BhdGhDYWxsS2V5JiBrZXkp
CiAgICAgewogICAgICAgICByZXR1cm4gZ2VuZXJhdGVJZk5lY2Vzc2FyeSgKQEAgLTk2LDcgKzkw
LDYgQEAgcHVibGljOgogICAgIH0KICAgICAKIHByaXZhdGU6Ci0gICAgVGh1bmtNYXA8TG9jYXRp
b24+IG1fb3NyRXhpdFRodW5rczsKICAgICBUaHVua01hcDxTbG93UGF0aENhbGxLZXk+IG1fc2xv
d1BhdGhDYWxsVGh1bmtzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExVbndpbmRJbmZvLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVW53
aW5kSW5mby5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmU0MGI5MjIyMzE3MWExYWEyNThkN2Q5YWVkNzdhZWVm
NmNkNjcyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
VW53aW5kSW5mby5jcHAKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZU
TFVud2luZEluZm8uaCIKKworI2lmIEVOQUJMRShGVExfSklUKQorCisjaW5jbHVkZSA8d3RmL0xp
c3REdW1wLmg+CisjaW5jbHVkZSA8bWFjaC1vL2NvbXBhY3RfdW53aW5kX2VuY29kaW5nLmg+CisK
K25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKworVW53aW5kSW5mbzo6VW53aW5kSW5m
bygpIHsgfQorVW53aW5kSW5mbzo6flVud2luZEluZm8oKSB7IH0KKworbmFtZXNwYWNlIHsKKwor
c3RydWN0IENvbXBhY3RVbndpbmQgeworICAgIHZvaWQqIGZ1bmN0aW9uOworICAgIHVpbnQzMl90
IHNpemU7CisgICAgY29tcGFjdF91bndpbmRfZW5jb2RpbmdfdCBlbmNvZGluZzsKKyAgICB2b2lk
KiBwZXJzb25hbGl0eTsKKyAgICB2b2lkKiBsc2RhOworfTsKKworfSAvLyBhbm9ueW1vdXMgbmFt
ZXNwYWNlCisKK3ZvaWQgVW53aW5kSW5mbzo6cGFyc2Uodm9pZCogc2VjdGlvbiwgc2l6ZV90IHNp
emUsIEdlbmVyYXRlZEZ1bmN0aW9uIGdlbmVyYXRlZEZ1bmN0aW9uKQoreworICAgIG1fcmVnaXN0
ZXJzLmNsZWFyKCk7CisgICAgCisgICAgUkVMRUFTRV9BU1NFUlQoc2VjdGlvbik7CisgICAgUkVM
RUFTRV9BU1NFUlQoc2l6ZSA+PSBzaXplb2YoQ29tcGFjdFVud2luZCkpOworICAgIAorICAgIENv
bXBhY3RVbndpbmQqIGRhdGEgPSBiaXR3aXNlX2Nhc3Q8Q29tcGFjdFVud2luZCo+KHNlY3Rpb24p
OworICAgIAorICAgIFJFTEVBU0VfQVNTRVJUKCFkYXRhLT5wZXJzb25hbGl0eSk7IC8vIFdlIGRv
bid0IGtub3cgaG93IHRvIGhhbmRsZSB0aGlzLgorICAgIFJFTEVBU0VfQVNTRVJUKCFkYXRhLT5s
c2RhKTsgLy8gV2UgZG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIHRoaXMuCisgICAgUkVMRUFTRV9B
U1NFUlQoZGF0YS0+ZnVuY3Rpb24gPT0gZ2VuZXJhdGVkRnVuY3Rpb24pOyAvLyBUaGUgdW53aW5k
IGRhdGEgYmV0dGVyIGJlIGZvciBvdXIgZnVuY3Rpb24uCisgICAgCisgICAgY29tcGFjdF91bndp
bmRfZW5jb2RpbmdfdCBlbmNvZGluZyA9IGRhdGEtPmVuY29kaW5nOworICAgIFJFTEVBU0VfQVNT
RVJUKCEoZW5jb2RpbmcgJiBVTldJTkRfSVNfTk9UX0ZVTkNUSU9OX1NUQVJUKSk7CisgICAgUkVM
RUFTRV9BU1NFUlQoIShlbmNvZGluZyAmIFVOV0lORF9IQVNfTFNEQSkpOworICAgIFJFTEVBU0Vf
QVNTRVJUKCEoZW5jb2RpbmcgJiBVTldJTkRfUEVSU09OQUxJVFlfTUFTSykpOworICAgIFJFTEVB
U0VfQVNTRVJUKChlbmNvZGluZyAmIFVOV0lORF9YODZfNjRfTU9ERV9NQVNLKSA9PSBVTldJTkRf
WDg2XzY0X01PREVfUkJQX0ZSQU1FKTsKKyAgICAKKyAgICBpbnQzMl90IG9mZnNldCA9IC0oKGVu
Y29kaW5nICYgVU5XSU5EX1g4Nl82NF9SQlBfRlJBTUVfT0ZGU0VUKSA+PiAxNikgKiA4OworICAg
IHVpbnQzMl90IG5leHRSZWdpc3RlcnMgPSBlbmNvZGluZzsKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSA1OyBpLS07KSB7CisgICAgICAgIHVpbnQzMl90IGN1cnJlbnRSZWdpc3RlciA9IG5leHRSZWdp
c3RlcnMgJiA3OworICAgICAgICBuZXh0UmVnaXN0ZXJzID4+PSAzOworICAgICAgICAKKyAgICAg
ICAgc3dpdGNoIChjdXJyZW50UmVnaXN0ZXIpIHsKKyAgICAgICAgY2FzZSBVTldJTkRfWDg2XzY0
X1JFR19OT05FOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgY2Fz
ZSBVTldJTkRfWDg2XzY0X1JFR19SQlg6CisgICAgICAgICAgICBtX3JlZ2lzdGVycy5hcHBlbmQo
UmVnaXN0ZXJBdE9mZnNldChYODZSZWdpc3RlcnM6OmVieCwgb2Zmc2V0KSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFVOV0lORF9YODZfNjRfUkVHX1Ix
MjoKKyAgICAgICAgICAgIG1fcmVnaXN0ZXJzLmFwcGVuZChSZWdpc3RlckF0T2Zmc2V0KFg4NlJl
Z2lzdGVyczo6cjEyLCBvZmZzZXQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
CisgICAgICAgIGNhc2UgVU5XSU5EX1g4Nl82NF9SRUdfUjEzOgorICAgICAgICAgICAgbV9yZWdp
c3RlcnMuYXBwZW5kKFJlZ2lzdGVyQXRPZmZzZXQoWDg2UmVnaXN0ZXJzOjpyMTMsIG9mZnNldCkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBVTldJTkRf
WDg2XzY0X1JFR19SMTQ6CisgICAgICAgICAgICBtX3JlZ2lzdGVycy5hcHBlbmQoUmVnaXN0ZXJB
dE9mZnNldChYODZSZWdpc3RlcnM6OnIxNCwgb2Zmc2V0KSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFVOV0lORF9YODZfNjRfUkVHX1IxNToKKyAgICAg
ICAgICAgIG1fcmVnaXN0ZXJzLmFwcGVuZChSZWdpc3RlckF0T2Zmc2V0KFg4NlJlZ2lzdGVyczo6
cjE1LCBvZmZzZXQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAg
IGNhc2UgVU5XSU5EX1g4Nl82NF9SRUdfUkJQOgorICAgICAgICAgICAgbV9yZWdpc3RlcnMuYXBw
ZW5kKFJlZ2lzdGVyQXRPZmZzZXQoWDg2UmVnaXN0ZXJzOjplYnAsIG9mZnNldCkpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAg
ICAgIG9mZnNldCArPSA4OworICAgIH0KKyAgICAKKyAgICBzdGQ6OnNvcnQobV9yZWdpc3RlcnMu
YmVnaW4oKSwgbV9yZWdpc3RlcnMuZW5kKCkpOworfQorCit2b2lkIFVud2luZEluZm86OmR1bXAo
UHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBvdXQucHJpbnQobGlzdER1bXAobV9yZWdp
c3RlcnMpKTsKK30KKworUmVnaXN0ZXJBdE9mZnNldCogVW53aW5kSW5mbzo6ZmluZChHUFJSZWcg
Z3ByKSBjb25zdAoreworICAgIHJldHVybiB0cnlCaW5hcnlTZWFyY2g8UmVnaXN0ZXJBdE9mZnNl
dCwgR1BSUmVnPihtX3JlZ2lzdGVycywgbV9yZWdpc3RlcnMuc2l6ZSgpLCBncHIsIFJlZ2lzdGVy
QXRPZmZzZXQ6OmdldEdQUik7Cit9CisKK3Vuc2lnbmVkIFVud2luZEluZm86OmluZGV4T2YoR1BS
UmVnIGdwcikgY29uc3QKK3sKKyAgICBpZiAoUmVnaXN0ZXJBdE9mZnNldCogcG9pbnRlciA9IGZp
bmQoZ3ByKSkKKyAgICAgICAgcmV0dXJuIHBvaW50ZXIgLSBtX3JlZ2lzdGVycy5iZWdpbigpOwor
ICAgIHJldHVybiBVSU5UX01BWDsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisj
ZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMVW53aW5kSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExV
bndpbmRJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU1NDE3MjhkNDUyMTUyZDdmZmNlOWM4NjZlYzdhZDkx
MjE0MmU4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
VW53aW5kSW5mby5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBGVExVbndpbmRJbmZvX2gKKyNkZWZpbmUgRlRM
VW53aW5kSW5mb19oCisKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKworI2luY2x1ZGUgIkZUTEdlbmVy
YXRlZEZ1bmN0aW9uLmgiCisjaW5jbHVkZSAiRlRMUmVnaXN0ZXJBdE9mZnNldC5oIgorCituYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK3N0cnVjdCBVbndpbmRJbmZvIHsKKyAgICBV
bndpbmRJbmZvKCk7CisgICAgflVud2luZEluZm8oKTsKKyAgICAKKyAgICB2b2lkIHBhcnNlKHZv
aWQqLCBzaXplX3QsIEdlbmVyYXRlZEZ1bmN0aW9uKTsKKyAgICAKKyAgICB2b2lkIGR1bXAoUHJp
bnRTdHJlYW0mKSBjb25zdDsKKyAgICAKKyAgICBSZWdpc3RlckF0T2Zmc2V0KiBmaW5kKEdQUlJl
ZyBncHIpIGNvbnN0OworICAgIHVuc2lnbmVkIGluZGV4T2YoR1BSUmVnIGdwcikgY29uc3Q7IC8v
IFJldHVybnMgVUlOVF9NQVggaWYgbm90IGZvdW5kLgorICAgIAorICAgIFZlY3RvcjxSZWdpc3Rl
ckF0T2Zmc2V0PiBtX3JlZ2lzdGVyczsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwK
KworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorCisjZW5kaWYgLy8gRlRMVW53aW5kSW5mb19o
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVSYW5nZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVlUmFuZ2UuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA4OTdjODZiZDQwNWYzYjRkMmY0NWRmOTc3YjM2OWFhN2M5MzZkOTYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVlUmFuZ2UuY3BwCkBAIC0w
LDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZUTFZhbHVlUmFuZ2UuaCIKKworI2lu
Y2x1ZGUgIkZUTEFiYnJldmlhdGlvbnMuaCIKKworI2lmIEVOQUJMRShGVExfSklUKQorCituYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK3ZvaWQgVmFsdWVSYW5nZTo6ZGVjb3JhdGVJ
bnN0cnVjdGlvbigKKyAgICBMQ29udGV4dCBjb250ZXh0LCBMVmFsdWUgbG9hZEluc3RydWN0aW9u
LCB1bnNpZ25lZCByYW5nZUtpbmQpIGNvbnN0Cit7CisgICAgaWYgKCFtX3JhbmdlTWV0YWRhdGEp
CisgICAgICAgIG1fcmFuZ2VNZXRhZGF0YSA9IG1kTm9kZShjb250ZXh0LCBtX2JlZ2luLCBtX2Vu
ZCk7CisgICAgc2V0TWV0YWRhdGEobG9hZEluc3RydWN0aW9uLCByYW5nZUtpbmQsIG1fcmFuZ2VN
ZXRhZGF0YSk7Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKKworI2VuZGlmIC8vIEVO
QUJMRShGVExfSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExW
YWx1ZVJhbmdlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVlUmFuZ2UuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iZWU0NGVmYTE4ODAxOTBmZTBjZDhkMjQzNGM4ZDA1ZTRhMjhhMDU1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExWYWx1ZVJhbmdlLmgK
QEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIEZUTFZhbHVlUmFuZ2VfaAorI2RlZmluZSBGVExWYWx1ZVJhbmdlX2gK
KworI2lmIEVOQUJMRShGVExfSklUKQorCisjaW5jbHVkZSAiRlRMQWJicmV2aWF0ZWRUeXBlcy5o
IgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK2NsYXNzIFZhbHVlUmFuZ2Ug
eworcHVibGljOgorICAgIFZhbHVlUmFuZ2UoKQorICAgICAgICA6IG1fYmVnaW4oMCkKKyAgICAg
ICAgLCBtX2VuZCgwKQorICAgICAgICAsIG1fcmFuZ2VNZXRhZGF0YSgwKQorICAgIHsKKyAgICB9
CisgICAgCisgICAgVmFsdWVSYW5nZShMVmFsdWUgYmVnaW4sIExWYWx1ZSBlbmQpCisgICAgICAg
IDogbV9iZWdpbihiZWdpbikKKyAgICAgICAgLCBtX2VuZChlbmQpCisgICAgICAgICwgbV9yYW5n
ZU1ldGFkYXRhKDApCisgICAgeworICAgIH0KKyAgICAKKyAgICBMVmFsdWUgYmVnaW4oKSBjb25z
dCB7IHJldHVybiBtX2JlZ2luOyB9CisgICAgTFZhbHVlIGVuZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZW5kOyB9CisgICAgCisgICAgdm9pZCBkZWNvcmF0ZUluc3RydWN0aW9uKExDb250ZXh0LCBMVmFs
dWUgbG9hZEluc3RydWN0aW9uLCB1bnNpZ25lZCByYW5nZUtpbmQpIGNvbnN0OworICAgIAorcHJp
dmF0ZToKKyAgICBMVmFsdWUgbV9iZWdpbjsKKyAgICBMVmFsdWUgbV9lbmQ7CisgICAgbXV0YWJs
ZSBMVmFsdWUgbV9yYW5nZU1ldGFkYXRhOworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZU
TAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKKyNlbmRpZiAvLyBGVExWYWx1ZVJhbmdl
X2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2VydmF0aXZl
Um9vdHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2VydmF0aXZlUm9vdHMu
Y3BwCmluZGV4IDdmYzhlZWUzZmY4MjIzNDUzY2FjOGU1NzNmOTNiMWUzN2QzYzc5ODIuLjQwZGY5
MDNjMDg0MzE2YzkxNzJkNjg1MmMzNjU1OGQwZGE1ZjFhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0NvbnNlcnZhdGl2ZVJvb3RzLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9Db25zZXJ2YXRpdmVSb290cy5jcHAKQEAgLTk5LDcgKzk5LDYgQEAg
dm9pZCBDb25zZXJ2YXRpdmVSb290czo6Z2VuZXJpY0FkZFNwYW4odm9pZCogYmVnaW4sIHZvaWQq
IGVuZCwgTWFya0hvb2smIG1hcmtIb28KICAgICAgICAgZW5kID0gc3dhcFRlbXA7CiAgICAgfQog
Ci0gICAgQVNTRVJUKChzdGF0aWNfY2FzdDxjaGFyKj4oZW5kKSAtIHN0YXRpY19jYXN0PGNoYXIq
PihiZWdpbikpIDwgMHgxMDAwMDAwKTsKICAgICBBU1NFUlQoaXNQb2ludGVyQWxpZ25lZChiZWdp
bikpOwogICAgIEFTU0VSVChpc1BvaW50ZXJBbGlnbmVkKGVuZCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuY3BwCmluZGV4IDJhYmEzYWE5ZDAxZTcxMjhhMDA0MGY4ZmI2NGI5YjliMDdh
OTYzNzYuLmE2MmEyMzdiNWMzNmIyZjcxMzM0Y2Y4N2VhMTYzMDQ2Nzg2ZTNlNzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmln
aHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTEsIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAw
MywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMSwgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEVy
aWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTQ1MSwyNCArNDUx
LDI3IEBAIHZvaWQgSGVhcDo6bWFya1Jvb3RzKCkKICAgICBkb3VibGUgZ2NTdGFydFRpbWUgPSBX
VEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwogI2VuZGlmCiAKKyAgICBtX2NvZGVC
bG9ja3MuY2xlYXJNYXJrcygpOwogICAgIHZvaWQqIGR1bW15OwotICAgIAorCiAgICAgLy8gV2Ug
Z2F0aGVyIGNvbnNlcnZhdGl2ZSByb290cyBiZWZvcmUgY2xlYXJpbmcgbWFyayBiaXRzIGJlY2F1
c2UgY29uc2VydmF0aXZlCiAgICAgLy8gZ2F0aGVyaW5nIHVzZXMgdGhlIG1hcmsgYml0cyB0byBk
ZXRlcm1pbmUgd2hldGhlciBhIHJlZmVyZW5jZSBpcyB2YWxpZC4KICAgICBDb25zZXJ2YXRpdmVS
b290cyBtYWNoaW5lVGhyZWFkUm9vdHMoJm1fb2JqZWN0U3BhY2UuYmxvY2tzKCksICZtX3N0b3Jh
Z2VTcGFjZSk7CiAgICAgbV9qaXRTdHViUm91dGluZXMuY2xlYXJNYXJrcygpOwogICAgIHsKICAg
ICAgICAgR0NQSEFTRShHYXRoZXJDb25zZXJ2YXRpdmVSb290cyk7Ci0gICAgICAgIG1fbWFjaGlu
ZVRocmVhZHMuZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMobWFjaGluZVRocmVhZFJvb3RzLCAmZHVt
bXkpOworICAgICAgICBtX21hY2hpbmVUaHJlYWRzLmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKG1h
Y2hpbmVUaHJlYWRSb290cywgbV9qaXRTdHViUm91dGluZXMsIG1fY29kZUJsb2NrcywgJmR1bW15
KTsKICAgICB9CiAKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQogICAgIENvbnNlcnZhdGl2ZVJv
b3RzIHN0YWNrUm9vdHMoJm1fb2JqZWN0U3BhY2UuYmxvY2tzKCksICZtX3N0b3JhZ2VTcGFjZSk7
Ci0gICAgbV9jb2RlQmxvY2tzLmNsZWFyTWFya3MoKTsKICAgICB7CiAgICAgICAgIEdDUEhBU0Uo
R2F0aGVyU3RhY2tSb290cyk7CiAgICAgICAgIHN0YWNrKCkuZ2F0aGVyQ29uc2VydmF0aXZlUm9v
dHMoc3RhY2tSb290cywgbV9qaXRTdHViUm91dGluZXMsIG1fY29kZUJsb2Nrcyk7Ci0gICAgICAg
IHN0YWNrKCkuc2FuaXRpemVTdGFjaygpOwogICAgIH0KKyNlbmRpZgorCisgICAgc2FuaXRpemVT
dGFja0ZvclZNKG1fdm0pOwogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAgQ29uc2VydmF0aXZl
Um9vdHMgc2NyYXRjaEJ1ZmZlclJvb3RzKCZtX29iamVjdFNwYWNlLmJsb2NrcygpLCAmbV9zdG9y
YWdlU3BhY2UpOwpAQCAtNTA1LDEyICs1MDgsMTQgQEAgdm9pZCBIZWFwOjptYXJrUm9vdHMoKQog
ICAgICAgICAgICAgdmlzaXRvci5hcHBlbmQobWFjaGluZVRocmVhZFJvb3RzKTsKICAgICAgICAg
ICAgIHZpc2l0b3IuZG9uYXRlQW5kRHJhaW4oKTsKICAgICAgICAgfQorI2lmIEVOQUJMRShMTElO
VF9DX0xPT1ApCiAgICAgICAgIHsKICAgICAgICAgICAgIEdDUEhBU0UoVmlzaXRTdGFja1Jvb3Rz
KTsKICAgICAgICAgICAgIE1BUktfTE9HX1JPT1QodmlzaXRvciwgIlN0YWNrIik7CiAgICAgICAg
ICAgICB2aXNpdG9yLmFwcGVuZChzdGFja1Jvb3RzKTsKICAgICAgICAgICAgIHZpc2l0b3IuZG9u
YXRlQW5kRHJhaW4oKTsKICAgICAgICAgfQorI2VuZGlmCiAjaWYgRU5BQkxFKERGR19KSVQpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIEdDUEhBU0UoVmlzaXRTY3JhdGNoQnVmZmVyUm9vdHMpOwpA
QCAtOTUyLDEyICs5NTcsMTIgQEAgdm9pZCBIZWFwOjpjb2xsZWN0KCkKIAogYm9vbCBIZWFwOjpj
b2xsZWN0SWZOZWNlc3NhcnlPckRlZmVyKCkKIHsKLSAgICBpZiAobV9kZWZlcnJhbERlcHRoKQor
ICAgIGlmIChpc0RlZmVycmVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwogICAg
IGlmICghc2hvdWxkQ29sbGVjdCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCisKICAg
ICBjb2xsZWN0KCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFw
LmgKaW5kZXggN2JhMTVjYTU4NGNjMTU3YmFkYjBhMTBiMjRhYmFlZDg2MWQzN2Q3MC4uNWYyYWNh
ZWIwZDU0YzZmYzI3ZmE2ZDFlZDBhMDA2ODRhNDZkZDdhNyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0hlYXAuaApAQCAtMTk3LDcgKzE5Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAKICAg
ICAgICAgdm9pZCBhZGRSZWZlcmVuY2UoSlNDZWxsKiwgQXJyYXlCdWZmZXIqKTsKICAgICAgICAg
Ci0gICAgICAgIGJvb2wgaXNEZWZlcnJlZCgpIGNvbnN0IHsgcmV0dXJuICEhbV9kZWZlcnJhbERl
cHRoOyB9CisgICAgICAgIGJvb2wgaXNEZWZlcnJlZCgpIGNvbnN0IHsgcmV0dXJuICEhbV9kZWZl
cnJhbERlcHRoIHx8IE9wdGlvbnM6OmRpc2FibGVHQygpOyB9CiAKICNpZiBVU0UoQ0YpCiAgICAg
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgcmVsZWFzZVNvb24oUmV0YWluUHRyPFQ+JiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFy
a2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5j
cHAKaW5kZXggZjU0NmNiMzhiYmM2NTFmMTE4N2Q2ZmQzNmEzNjYyYjRkODY4ZjMxMC4uODI2MzE5
MmQxY2Q5YWUyY2ExNzMyYmFkMmE3YzM4ZjkyNDJkMDdiZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwCkBAIC0yMzIsNyArMjMyLDcg
QEAgdm9pZCBNYWNoaW5lVGhyZWFkczo6cmVtb3ZlQ3VycmVudFRocmVhZCgpCiAjZGVmaW5lIFJF
R0lTVEVSX0JVRkZFUl9BTElHTk1FTlQKICNlbmRpZgogCi12b2lkIE1hY2hpbmVUaHJlYWRzOjpn
YXRoZXJGcm9tQ3VycmVudFRocmVhZChDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9v
dHMsIHZvaWQqIHN0YWNrQ3VycmVudCkKK3ZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21D
dXJyZW50VGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgSklUU3R1
YlJvdXRpbmVTZXQmIGppdFN0dWJSb3V0aW5lcywgQ29kZUJsb2NrU2V0JiBjb2RlQmxvY2tzLCB2
b2lkKiBzdGFja0N1cnJlbnQpCiB7CiAgICAgLy8gc2V0am1wIGZvcmNlcyB2b2xhdGlsZSByZWdp
c3RlcnMgb250byB0aGUgc3RhY2sKICAgICBqbXBfYnVmIHJlZ2lzdGVycyBSRUdJU1RFUl9CVUZG
RVJfQUxJR05NRU5UOwpAQCAtMjQ4LDEyICsyNDgsMTIgQEAgdm9pZCBNYWNoaW5lVGhyZWFkczo6
Z2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJv
b3QKICAgICB2b2lkKiByZWdpc3RlcnNCZWdpbiA9ICZyZWdpc3RlcnM7CiAgICAgdm9pZCogcmVn
aXN0ZXJzRW5kID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocm91bmRVcFRvTXVsdGlwbGVPZjxz
aXplb2Yodm9pZCopPihyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oJnJlZ2lzdGVycyArIDEp
KSk7CiAgICAgc3dhcElmQmFja3dhcmRzKHJlZ2lzdGVyc0JlZ2luLCByZWdpc3RlcnNFbmQpOwot
ICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChyZWdpc3RlcnNCZWdpbiwgcmVnaXN0ZXJzRW5kKTsK
KyAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQocmVnaXN0ZXJzQmVnaW4sIHJlZ2lzdGVyc0VuZCwg
aml0U3R1YlJvdXRpbmVzLCBjb2RlQmxvY2tzKTsKIAogICAgIHZvaWQqIHN0YWNrQmVnaW4gPSBz
dGFja0N1cnJlbnQ7CiAgICAgdm9pZCogc3RhY2tFbmQgPSB3dGZUaHJlYWREYXRhKCkuc3RhY2so
KS5vcmlnaW4oKTsKICAgICBzd2FwSWZCYWNrd2FyZHMoc3RhY2tCZWdpbiwgc3RhY2tFbmQpOwot
ICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChzdGFja0JlZ2luLCBzdGFja0VuZCk7CisgICAgY29u
c2VydmF0aXZlUm9vdHMuYWRkKHN0YWNrQmVnaW4sIHN0YWNrRW5kLCBqaXRTdHViUm91dGluZXMs
IGNvZGVCbG9ja3MpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgc3VzcGVuZFRocmVhZChjb25z
dCBQbGF0Zm9ybVRocmVhZCYgcGxhdGZvcm1UaHJlYWQpCkBAIC00MzQsMjQgKzQzNCwyNCBAQCBz
dGF0aWMgdm9pZCBmcmVlUGxhdGZvcm1UaHJlYWRSZWdpc3RlcnMoUGxhdGZvcm1UaHJlYWRSZWdp
c3RlcnMmIHJlZ3MpCiAjZW5kaWYKIH0KIAotdm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0aGVyRnJv
bU90aGVyVGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgVGhyZWFk
KiB0aHJlYWQpCit2b2lkIE1hY2hpbmVUaHJlYWRzOjpnYXRoZXJGcm9tT3RoZXJUaHJlYWQoQ29u
c2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzLCBUaHJlYWQqIHRocmVhZCwgSklUU3R1
YlJvdXRpbmVTZXQmIGppdFN0dWJSb3V0aW5lcywgQ29kZUJsb2NrU2V0JiBjb2RlQmxvY2tzKQog
ewogICAgIFBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJzIHJlZ3M7CiAgICAgc2l6ZV90IHJlZ1NpemUg
PSBnZXRQbGF0Zm9ybVRocmVhZFJlZ2lzdGVycyh0aHJlYWQtPnBsYXRmb3JtVGhyZWFkLCByZWdz
KTsKIAotICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChzdGF0aWNfY2FzdDx2b2lkKj4oJnJlZ3Mp
LCBzdGF0aWNfY2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJnJlZ3MpICsgcmVn
U2l6ZSkpOworICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChzdGF0aWNfY2FzdDx2b2lkKj4oJnJl
Z3MpLCBzdGF0aWNfY2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJnJlZ3MpICsg
cmVnU2l6ZSksIGppdFN0dWJSb3V0aW5lcywgY29kZUJsb2Nrcyk7CiAKICAgICB2b2lkKiBzdGFj
a1BvaW50ZXIgPSBvdGhlclRocmVhZFN0YWNrUG9pbnRlcihyZWdzKTsKICAgICB2b2lkKiBzdGFj
a0Jhc2UgPSB0aHJlYWQtPnN0YWNrQmFzZTsKICAgICBzd2FwSWZCYWNrd2FyZHMoc3RhY2tQb2lu
dGVyLCBzdGFja0Jhc2UpOwotICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChzdGFja1BvaW50ZXIs
IHN0YWNrQmFzZSk7CisgICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHN0YWNrUG9pbnRlciwgc3Rh
Y2tCYXNlLCBqaXRTdHViUm91dGluZXMsIGNvZGVCbG9ja3MpOwogCiAgICAgZnJlZVBsYXRmb3Jt
VGhyZWFkUmVnaXN0ZXJzKHJlZ3MpOwogfQogCi12b2lkIE1hY2hpbmVUaHJlYWRzOjpnYXRoZXJD
b25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMsIHZv
aWQqIHN0YWNrQ3VycmVudCkKK3ZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckNvbnNlcnZhdGl2
ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgSklUU3R1YlJvdXRp
bmVTZXQmIGppdFN0dWJSb3V0aW5lcywgQ29kZUJsb2NrU2V0JiBjb2RlQmxvY2tzLCB2b2lkKiBz
dGFja0N1cnJlbnQpCiB7Ci0gICAgZ2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQoY29uc2VydmF0aXZl
Um9vdHMsIHN0YWNrQ3VycmVudCk7CisgICAgZ2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQoY29uc2Vy
dmF0aXZlUm9vdHMsIGppdFN0dWJSb3V0aW5lcywgY29kZUJsb2Nrcywgc3RhY2tDdXJyZW50KTsK
IAogICAgIGlmIChtX3RocmVhZFNwZWNpZmljKSB7CiAgICAgICAgIFBsYXRmb3JtVGhyZWFkIGN1
cnJlbnRQbGF0Zm9ybVRocmVhZCA9IGdldEN1cnJlbnRQbGF0Zm9ybVRocmVhZCgpOwpAQCAtNDcz
LDcgKzQ3Myw3IEBAIHZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckNvbnNlcnZhdGl2ZVJvb3Rz
KENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290CiAgICAgICAgIC8vIGFuZCBzaW5j
ZSB0aGlzIGlzIGEgc2hhcmVkIGhlYXAsIHRoZXkgYXJlIHJlYWwgbG9ja3MuCiAgICAgICAgIGZv
ciAoVGhyZWFkKiB0aHJlYWQgPSBtX3JlZ2lzdGVyZWRUaHJlYWRzOyB0aHJlYWQ7IHRocmVhZCA9
IHRocmVhZC0+bmV4dCkgewogICAgICAgICAgICAgaWYgKCFlcXVhbFRocmVhZCh0aHJlYWQtPnBs
YXRmb3JtVGhyZWFkLCBjdXJyZW50UGxhdGZvcm1UaHJlYWQpKQotICAgICAgICAgICAgICAgIGdh
dGhlckZyb21PdGhlclRocmVhZChjb25zZXJ2YXRpdmVSb290cywgdGhyZWFkKTsKKyAgICAgICAg
ICAgICAgICBnYXRoZXJGcm9tT3RoZXJUaHJlYWQoY29uc2VydmF0aXZlUm9vdHMsIHRocmVhZCwg
aml0U3R1YlJvdXRpbmVzLCBjb2RlQmxvY2tzKTsKICAgICAgICAgfQogCiAgICAgICAgIGZvciAo
VGhyZWFkKiB0aHJlYWQgPSBtX3JlZ2lzdGVyZWRUaHJlYWRzOyB0aHJlYWQ7IHRocmVhZCA9IHRo
cmVhZC0+bmV4dCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFj
aGluZVN0YWNrTWFya2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3Rh
Y2tNYXJrZXIuaAppbmRleCA0OTgyM2Q0M2UyN2I1M2M5ZGViN2IwMTA2ODlmYTY3YjViYzY3NTI2
Li4zM2I3MmM4NjE0ZjA2YWZlYjQxZGMwNDkwMjUyYTYxMDY3YjUzOTY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuaApAQCAtMjgsOCArMjgs
MTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyAgICBjbGFzcyBDb2RlQmxvY2tTZXQ7CiAgICAg
Y2xhc3MgQ29uc2VydmF0aXZlUm9vdHM7CiAgICAgY2xhc3MgSGVhcDsKKyAgICBjbGFzcyBKSVRT
dHViUm91dGluZVNldDsKIAogICAgIGNsYXNzIE1hY2hpbmVUaHJlYWRzIHsKICAgICAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoTWFjaGluZVRocmVhZHMpOwpAQCAtMzcsMjAgKzM5LDIwIEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBNYWNoaW5lVGhyZWFkcyhIZWFwKik7CiAgICAgICAgIH5N
YWNoaW5lVGhyZWFkcygpOwogCi0gICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMo
Q29uc2VydmF0aXZlUm9vdHMmLCB2b2lkKiBzdGFja0N1cnJlbnQpOworICAgICAgICB2b2lkIGdh
dGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiwgSklUU3R1YlJvdXRpbmVT
ZXQmLCBDb2RlQmxvY2tTZXQmLCB2b2lkKiBzdGFja0N1cnJlbnQpOwogCiAgICAgICAgIEpTX0VY
UE9SVF9QUklWQVRFIHZvaWQgbWFrZVVzYWJsZUZyb21NdWx0aXBsZVRocmVhZHMoKTsKICAgICAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBhZGRDdXJyZW50VGhyZWFkKCk7IC8vIE9ubHkgbmVl
ZHMgdG8gYmUgY2FsbGVkIGJ5IGNsaWVudHMgdGhhdCBjYW4gdXNlIHRoZSBzYW1lIGhlYXAgZnJv
bSBtdWx0aXBsZSB0aHJlYWRzLgogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBnYXRoZXJG
cm9tQ3VycmVudFRocmVhZChDb25zZXJ2YXRpdmVSb290cyYsIHZvaWQqIHN0YWNrQ3VycmVudCk7
CisgICAgICAgIHZvaWQgZ2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQoQ29uc2VydmF0aXZlUm9vdHMm
LCBKSVRTdHViUm91dGluZVNldCYsIENvZGVCbG9ja1NldCYsIHZvaWQqIHN0YWNrQ3VycmVudCk7
CiAKICAgICAgICAgY2xhc3MgVGhyZWFkOwogCiAgICAgICAgIHN0YXRpYyB2b2lkIHJlbW92ZVRo
cmVhZCh2b2lkKik7CiAgICAgICAgIHZvaWQgcmVtb3ZlQ3VycmVudFRocmVhZCgpOwogCi0gICAg
ICAgIHZvaWQgZ2F0aGVyRnJvbU90aGVyVGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiwgVGhyZWFk
Kik7CisgICAgICAgIHZvaWQgZ2F0aGVyRnJvbU90aGVyVGhyZWFkKENvbnNlcnZhdGl2ZVJvb3Rz
JiwgVGhyZWFkKiwgSklUU3R1YlJvdXRpbmVTZXQmLCBDb2RlQmxvY2tTZXQmKTsKIAogICAgICAg
ICBNdXRleCBtX3JlZ2lzdGVyZWRUaHJlYWRzTXV0ZXg7CiAgICAgICAgIFRocmVhZCogbV9yZWdp
c3RlcmVkVGhyZWFkczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9DYWxsRnJhbWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0Nh
bGxGcmFtZS5jcHAKaW5kZXggYTIyNmU5ODQ4YmY5YTE0N2U5MGRiNjRmMDFmYzE2NjJhY2UwOWJk
NS4uNGE2MDgwOWUyOWQxNmY3MWMyOTQ4ZjY2MTg2OGFkMmI2ZDlkYzg5YiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAKQEAgLTExNiwxMSAr
MTE2LDExIEBAIENvZGVPcmlnaW4gQ2FsbEZyYW1lOjpjb2RlT3JpZ2luKCkKICAgICByZXR1cm4g
Q29kZU9yaWdpbihsb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7CiB9CiAKLVJlZ2lzdGVyKiBD
YWxsRnJhbWU6OmZyYW1lRXh0ZW50SW50ZXJuYWwoKQorUmVnaXN0ZXIqIENhbGxGcmFtZTo6dG9w
T2ZGcmFtZUludGVybmFsKCkKIHsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IHRoaXMtPmNv
ZGVCbG9jaygpOwogICAgIEFTU0VSVChjb2RlQmxvY2spOwotICAgIHJldHVybiByZWdpc3RlcnMo
KSArIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGNvZGVCbG9jay0+ZnJhbWVSZWdpc3RlckNvdW50
KCkpLm9mZnNldCgpOworICAgIHJldHVybiByZWdpc3RlcnMoKSArIGNvZGVCbG9jay0+c3RhY2tQ
b2ludGVyT2Zmc2V0KCk7CiB9CiAKIEpTR2xvYmFsT2JqZWN0KiBDYWxsRnJhbWU6OnZtRW50cnlH
bG9iYWxPYmplY3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0NhbGxGcmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxG
cmFtZS5oCmluZGV4IDQ4ZmJjZDc3OWI5ODRjM2Q4MTI4OWY0MmY1YjUzNDdjYjNkYzBjNWUuLjZm
NTA4NDIyYTU3MDYwZGExZjg3NmFhNGFlYWU4Njk1MGY3MDJkN2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKQEAgLTE3NiwxNSArMTc2LDEzIEBA
IG5hbWVzcGFjZSBKU0MgIHsKICAgICAgICAgLy8gQ29kZU9yaWdpbigwKSBpZiB3ZSdyZSBpbiBu
YXRpdmUgY29kZS4KICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luKCk7CiAKLSAgICAgICAg
UmVnaXN0ZXIqIGZyYW1lRXh0ZW50KCkKKyAgICAgICAgUmVnaXN0ZXIqIHRvcE9mRnJhbWUoKQog
ICAgICAgICB7CiAgICAgICAgICAgICBpZiAoaXNWTUVudHJ5U2VudGluZWwoKSB8fCAhY29kZUJs
b2NrKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdGVycygpIC0gMTsKLSAgICAgICAg
ICAgIHJldHVybiBmcmFtZUV4dGVudEludGVybmFsKCk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHJlZ2lzdGVycygpOworICAgICAgICAgICAgcmV0dXJuIHRvcE9mRnJhbWVJbnRlcm5hbCgpOwog
ICAgICAgICB9CiAgICAgCi0gICAgICAgIFJlZ2lzdGVyKiBmcmFtZUV4dGVudEludGVybmFsKCk7
Ci0KICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgICAgICBJbnN0cnVjdGlvbiogY3VycmVudFZQ
QygpIGNvbnN0CiAgICAgICAgIHsKQEAgLTMxOCw2ICszMTYsOCBAQCBuYW1lc3BhY2UgSlNDICB7
CiAgICAgICAgIEV4ZWNTdGF0ZSgpOwogICAgICAgICB+RXhlY1N0YXRlKCk7CiAKKyAgICAgICAg
UmVnaXN0ZXIqIHRvcE9mRnJhbWVJbnRlcm5hbCgpOworCiAgICAgICAgIC8vIFRoZSBmb2xsb3dp
bmcgYXJlIGZvciBpbnRlcm5hbCB1c2UgaW4gZGVidWdnaW5nIGFuZCB2ZXJpZmljYXRpb24KICAg
ICAgICAgLy8gY29kZSBvbmx5IGFuZCBub3QgbWVhbnQgYXMgYW4gQVBJIGZvciBnZW5lcmFsIHVz
YWdlOgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmNwcAppbmRleCA0ZmJjODIyOWFjZTk3ZjEyYTk1MTg3Mjc2NWYxMTgxMTQxNDFkM2E5Li4y
MWY1ZGZiNWIxMmVlZDRmODE0ZTU2YThhMDNlOGQ3NWRiNjZlNTY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAgLTY1LDYgKzY1
LDcgQEAKICNpbmNsdWRlICJSZWdFeHBQcm90b3R5cGUuaCIKICNpbmNsdWRlICJSZWdpc3Rlci5o
IgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50Lmgi
CiAjaW5jbHVkZSAiU3RhY2tWaXNpdG9yLmgiCiAjaW5jbHVkZSAiU3RyaWN0RXZhbEFjdGl2YXRp
b24uaCIKICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgiCkBAIC03NCw2ICs3NSw3IEBACiAjaW5j
bHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvU3RhY2tT
dGF0cy5oPgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3Ry
aW5nUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8
d3RmL1dURlRocmVhZERhdGEuaD4KQEAgLTg5LDIyICs5MSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBz
dGQ7CiAKIG5hbWVzcGFjZSBKU0MgewogCi1JbnRlcnByZXRlcjo6RXJyb3JIYW5kbGluZ01vZGU6
OkVycm9ySGFuZGxpbmdNb2RlKEV4ZWNTdGF0ZSAqZXhlYykKLSAgICA6IG1faW50ZXJwcmV0ZXIo
KmV4ZWMtPmludGVycHJldGVyKCkpCi17Ci0gICAgaWYgKCFtX2ludGVycHJldGVyLm1fZXJyb3JI
YW5kbGluZ01vZGVSZWVudHJ5KQotICAgICAgICBtX2ludGVycHJldGVyLnN0YWNrKCkuZW5hYmxl
RXJyb3JTdGFja1Jlc2VydmUoKTsKLSAgICBtX2ludGVycHJldGVyLm1fZXJyb3JIYW5kbGluZ01v
ZGVSZWVudHJ5Kys7Ci19Ci0KLUludGVycHJldGVyOjpFcnJvckhhbmRsaW5nTW9kZTo6fkVycm9y
SGFuZGxpbmdNb2RlKCkKLXsKLSAgICBtX2ludGVycHJldGVyLm1fZXJyb3JIYW5kbGluZ01vZGVS
ZWVudHJ5LS07Ci0gICAgQVNTRVJUKG1faW50ZXJwcmV0ZXIubV9lcnJvckhhbmRsaW5nTW9kZVJl
ZW50cnkgPj0gMCk7Ci0gICAgaWYgKCFtX2ludGVycHJldGVyLm1fZXJyb3JIYW5kbGluZ01vZGVS
ZWVudHJ5KQotICAgICAgICBtX2ludGVycHJldGVyLnN0YWNrKCkuZGlzYWJsZUVycm9yU3RhY2tS
ZXNlcnZlKCk7Ci19Ci0KIEpTVmFsdWUgZXZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAg
ICBpZiAoIWNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpKQpAQCAtMTUyLDIyICsxMzgsMjUgQEAg
SlNWYWx1ZSBldmFsKENhbGxGcmFtZSogY2FsbEZyYW1lKQogICAgIHJldHVybiBpbnRlcnByZXRl
ci0+ZXhlY3V0ZShldmFsLCBjYWxsRnJhbWUsIHRoaXNWYWx1ZSwgY2FsbGVyU2NvcGVDaGFpbik7
CiB9CiAKLUNhbGxGcmFtZSogc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBKU1N0YWNrKiBzdGFjaywgSlNWYWx1ZSBhcmd1bWVudHMsIGludCBmaXJzdEZy
ZWVSZWdpc3RlcikKK0NhbGxGcmFtZSogc2l6ZUZyYW1lRm9yVmFyYXJncyhDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgSlNTdGFjayogc3RhY2ssIEpTVmFsdWUgYXJndW1lbnRzLCBpbnQgZmlyc3RGcmVl
UmVnaXN0ZXIpCiB7CiAgICAgaWYgKCFhcmd1bWVudHMpIHsgLy8gZi5hcHBseSh4LCBhcmd1bWVu
dHMpLCB3aXRoIGFyZ3VtZW50cyB1bm1vZGlmaWVkLgogICAgICAgICB1bnNpZ25lZCBhcmd1bWVu
dENvdW50SW5jbHVkaW5nVGhpcyA9IGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1Ro
aXMoKTsKLSAgICAgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0
ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpICsgZmlyc3RGcmVlUmVnaXN0ZXIgLSBhcmd1bWVudENv
dW50SW5jbHVkaW5nVGhpcyAtIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSAxKTsKLSAg
ICAgICAgaWYgKGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID4gQXJndW1lbnRzOjpNYXhBcmd1
bWVudHMgKyAxIHx8ICFzdGFjay0+Z3JvdyhuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgewot
ICAgICAgICAgICAgY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNhbGxGcmFtZSwgY3Jl
YXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOworICAgICAgICB1bnNpZ25lZCBwYWRk
ZWRDYWxsZWVGcmFtZU9mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdu
bWVudFJlZ2lzdGVycygpLCAtZmlyc3RGcmVlUmVnaXN0ZXIgKyBhcmd1bWVudENvdW50SW5jbHVk
aW5nVGhpcyArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgKyAxKTsKKyAgICAgICAgQ2Fs
bEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lz
dGVycygpIC0gcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQpOworICAgICAgICBpZiAoYXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMgPiBBcmd1bWVudHM6Ok1heEFyZ3VtZW50cyArIDEgfHwgIXN0YWNr
LT5lbnN1cmVDYXBhY2l0eUZvcihuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgeworICAgICAg
ICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAgICAgIHJl
dHVybiAwOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CiAgICAgfQog
CiAgICAgaWYgKGFyZ3VtZW50cy5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7Ci0gICAgICAgIENhbGxG
cmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3Rl
cnMoKSArIGZpcnN0RnJlZVJlZ2lzdGVyIC0gMSAtIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNp
emUgLSAxKTsKLSAgICAgICAgaWYgKCFzdGFjay0+Z3JvdyhuZXdDYWxsRnJhbWUtPnJlZ2lzdGVy
cygpKSkgewotICAgICAgICAgICAgY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNhbGxG
cmFtZSwgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOworICAgICAgICB1bnNp
Z25lZCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyA9IDE7CisgICAgICAgIHVuc2lnbmVkIHBh
ZGRlZENhbGxlZUZyYW1lT2Zmc2V0ID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxp
Z25tZW50UmVnaXN0ZXJzKCksICAtZmlyc3RGcmVlUmVnaXN0ZXIgKyBhcmd1bWVudENvdW50SW5j
bHVkaW5nVGhpcyArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgKyAxKTsKKyAgICAgICAg
Q2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJl
Z2lzdGVycygpIC0gcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQpOworICAgICAgICBpZiAoIXN0YWNr
LT5lbnN1cmVDYXBhY2l0eUZvcihuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgeworICAgICAg
ICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAgICAgIHJl
dHVybiAwOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CkBAIC0xODEs
OSArMTcwLDEwIEBAIENhbGxGcmFtZSogc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKENhbGxG
cmFtZSogY2FsbEZyYW1lLCBKU1N0YWNrKiBzdGFjaywgSlNWCiAgICAgaWYgKGFzT2JqZWN0KGFy
Z3VtZW50cyktPmNsYXNzSW5mbygpID09IEFyZ3VtZW50czo6aW5mbygpKSB7CiAgICAgICAgIEFy
Z3VtZW50cyogYXJnc09iamVjdCA9IGFzQXJndW1lbnRzKGFyZ3VtZW50cyk7CiAgICAgICAgIHVu
c2lnbmVkIGFyZ0NvdW50ID0gYXJnc09iamVjdC0+bGVuZ3RoKGNhbGxGcmFtZSk7Ci0gICAgICAg
IENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5y
ZWdpc3RlcnMoKSArIGZpcnN0RnJlZVJlZ2lzdGVyIC0gQ2FsbEZyYW1lOjpvZmZzZXRGb3IoYXJn
Q291bnQgKyAxKSk7Ci0gICAgICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJndW1l
bnRzIHx8ICFzdGFjay0+Z3JvdyhuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgewotICAgICAg
ICAgICAgY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNhbGxGcmFtZSwgY3JlYXRlU3Rh
Y2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOworICAgICAgICB1bnNpZ25lZCBwYWRkZWRDYWxs
ZWVGcmFtZU9mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJl
Z2lzdGVycygpLCAtZmlyc3RGcmVlUmVnaXN0ZXIgKyBDYWxsRnJhbWU6Om9mZnNldEZvcihhcmdD
b3VudCArIDEpKTsKKyAgICAgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6
OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpIC0gcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQp
OworICAgICAgICBpZiAoYXJnQ291bnQgPiBBcmd1bWVudHM6Ok1heEFyZ3VtZW50cyB8fCAhc3Rh
Y2stPmVuc3VyZUNhcGFjaXR5Rm9yKG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7CisgICAg
ICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpOwogICAgICAgICAgICAg
cmV0dXJuIDA7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKQEAgLTE5
Miw5ICsxODIsMTAgQEAgQ2FsbEZyYW1lKiBzaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MoQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIEpTU3RhY2sqIHN0YWNrLCBKU1YKICAgICBpZiAoaXNKU0FycmF5
KGFyZ3VtZW50cykpIHsKICAgICAgICAgSlNBcnJheSogYXJyYXkgPSBhc0FycmF5KGFyZ3VtZW50
cyk7CiAgICAgICAgIHVuc2lnbmVkIGFyZ0NvdW50ID0gYXJyYXktPmxlbmd0aCgpOwotICAgICAg
ICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+
cmVnaXN0ZXJzKCkgKyBmaXJzdEZyZWVSZWdpc3RlciAtIENhbGxGcmFtZTo6b2Zmc2V0Rm9yKGFy
Z0NvdW50ICsgMSkpOwotICAgICAgICBpZiAoYXJnQ291bnQgPiBBcmd1bWVudHM6Ok1heEFyZ3Vt
ZW50cyB8fCAhc3RhY2stPmdyb3cobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkpIHsKLSAgICAg
ICAgICAgIGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlvbihjYWxsRnJhbWUsIGNyZWF0ZVN0
YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKKyAgICAgICAgdW5zaWduZWQgcGFkZGVkQ2Fs
bGVlRnJhbWVPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRS
ZWdpc3RlcnMoKSwgLWZpcnN0RnJlZVJlZ2lzdGVyICsgQ2FsbEZyYW1lOjpvZmZzZXRGb3IoYXJn
Q291bnQgKyAxKSk7CisgICAgICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1l
OjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSAtIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0
KTsKKyAgICAgICAgaWYgKGFyZ0NvdW50ID4gQXJndW1lbnRzOjpNYXhBcmd1bWVudHMgfHwgIXN0
YWNrLT5lbnN1cmVDYXBhY2l0eUZvcihuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgeworICAg
ICAgICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAgICAg
IHJldHVybiAwOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CkBAIC0y
MDIsOSArMTkzLDEwIEBAIENhbGxGcmFtZSogc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKENh
bGxGcmFtZSogY2FsbEZyYW1lLCBKU1N0YWNrKiBzdGFjaywgSlNWCiAKICAgICBKU09iamVjdCog
YXJnT2JqZWN0ID0gYXNPYmplY3QoYXJndW1lbnRzKTsKICAgICB1bnNpZ25lZCBhcmdDb3VudCA9
IGFyZ09iamVjdC0+Z2V0KGNhbGxGcmFtZSwgY2FsbEZyYW1lLT5wcm9wZXJ0eU5hbWVzKCkubGVu
Z3RoKS50b1VJbnQzMihjYWxsRnJhbWUpOwotICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0g
Q2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIGZpcnN0RnJlZVJlZ2lz
dGVyIC0gQ2FsbEZyYW1lOjpvZmZzZXRGb3IoYXJnQ291bnQgKyAxKSk7Ci0gICAgaWYgKGFyZ0Nv
dW50ID4gQXJndW1lbnRzOjpNYXhBcmd1bWVudHMgfHwgIXN0YWNrLT5ncm93KG5ld0NhbGxGcmFt
ZS0+cmVnaXN0ZXJzKCkpKSB7Ci0gICAgICAgIGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlv
bihjYWxsRnJhbWUsICBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CisgICAg
dW5zaWduZWQgcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxl
T2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgLWZpcnN0RnJlZVJlZ2lzdGVyICsgQ2FsbEZy
YW1lOjpvZmZzZXRGb3IoYXJnQ291bnQgKyAxKSk7CisgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJh
bWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpIC0gcGFkZGVkQ2Fs
bGVlRnJhbWVPZmZzZXQpOworICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJndW1l
bnRzIHx8ICFzdGFjay0+ZW5zdXJlQ2FwYWNpdHlGb3IobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMo
KSkpIHsKKyAgICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgfQogICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CkBAIC00MjEsNyAr
NDEzLDYgQEAgc3RhdGljIGJvb2wgdW53aW5kQ2FsbEZyYW1lKFN0YWNrVmlzaXRvciYgdmlzaXRv
cikKIHsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IHZpc2l0b3ItPmNhbGxGcmFtZSgpOwog
ICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gdmlzaXRvci0+Y29kZUJsb2NrKCk7Ci0gICAgQ29k
ZUJsb2NrKiBvbGRDb2RlQmxvY2sgPSBjb2RlQmxvY2s7CiAgICAgSlNTY29wZSogc2NvcGUgPSBj
YWxsRnJhbWUtPnNjb3BlKCk7CiAKICAgICBpZiAoRGVidWdnZXIqIGRlYnVnZ2VyID0gY2FsbEZy
YW1lLT52bUVudHJ5R2xvYmFsT2JqZWN0KCktPmRlYnVnZ2VyKCkpIHsKQEAgLTQzMiwxNiArNDIz
LDE2IEBAIHN0YXRpYyBib29sIHVud2luZENhbGxGcmFtZShTdGFja1Zpc2l0b3ImIHZpc2l0b3Ip
CiAgICAgfQogCiAgICAgSlNWYWx1ZSBhY3RpdmF0aW9uOwotICAgIGlmIChvbGRDb2RlQmxvY2st
PmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlICYmIG9sZENvZGVCbG9jay0+bmVlZHNBY3RpdmF0
aW9uKCkpIHsKKyAgICBpZiAoY29kZUJsb2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSAm
JiBjb2RlQmxvY2stPm5lZWRzQWN0aXZhdGlvbigpKSB7CiAjaWYgRU5BQkxFKERGR19KSVQpCiAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKCF2aXNpdG9yLT5pc0lubGluZWRGcmFtZSgpKTsKICNlbmRp
ZgotICAgICAgICBhY3RpdmF0aW9uID0gY2FsbEZyYW1lLT51bmNoZWNrZWRSKG9sZENvZGVCbG9j
ay0+YWN0aXZhdGlvblJlZ2lzdGVyKCkub2Zmc2V0KCkpLmpzVmFsdWUoKTsKKyAgICAgICAgYWN0
aXZhdGlvbiA9IGNhbGxGcmFtZS0+dW5jaGVja2VkUihjb2RlQmxvY2stPmFjdGl2YXRpb25SZWdp
c3RlcigpLm9mZnNldCgpKS5qc1ZhbHVlKCk7CiAgICAgICAgIGlmIChhY3RpdmF0aW9uKQogICAg
ICAgICAgICAganNDYXN0PEpTQWN0aXZhdGlvbio+KGFjdGl2YXRpb24pLT50ZWFyT2ZmKCpzY29w
ZS0+dm0oKSk7CiAgICAgfQogCi0gICAgaWYgKG9sZENvZGVCbG9jay0+Y29kZVR5cGUoKSA9PSBG
dW5jdGlvbkNvZGUgJiYgb2xkQ29kZUJsb2NrLT51c2VzQXJndW1lbnRzKCkpIHsKKyAgICBpZiAo
Y29kZUJsb2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSAmJiBjb2RlQmxvY2stPnVzZXNB
cmd1bWVudHMoKSkgewogICAgICAgICBpZiAoQXJndW1lbnRzKiBhcmd1bWVudHMgPSB2aXNpdG9y
LT5leGlzdGluZ0FyZ3VtZW50cygpKSB7CiAgICAgICAgICAgICBpZiAoYWN0aXZhdGlvbikKICAg
ICAgICAgICAgICAgICBhcmd1bWVudHMtPmRpZFRlYXJPZmZBY3RpdmF0aW9uKGNhbGxGcmFtZSwg
anNDYXN0PEpTQWN0aXZhdGlvbio+KGFjdGl2YXRpb24pKTsKQEAgLTQ1NSwxMSArNDQ2LDcgQEAg
c3RhdGljIGJvb2wgdW53aW5kQ2FsbEZyYW1lKFN0YWNrVmlzaXRvciYgdmlzaXRvcikKICAgICB9
CiAKICAgICBDYWxsRnJhbWUqIGNhbGxlckZyYW1lID0gY2FsbEZyYW1lLT5jYWxsZXJGcmFtZSgp
OwotICAgIGlmIChjYWxsZXJGcmFtZS0+aXNWTUVudHJ5U2VudGluZWwoKSkgewotICAgICAgICBj
YWxsRnJhbWUtPnZtKCkudG9wQ2FsbEZyYW1lID0gY2FsbGVyRnJhbWUtPnZtRW50cnlTZW50aW5l
bENhbGxlckZyYW1lKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgcmV0dXJu
IHRydWU7CisgICAgcmV0dXJuICFjYWxsZXJGcmFtZS0+aXNWTUVudHJ5U2VudGluZWwoKTsKIH0K
IAogc3RhdGljIFN0YWNrRnJhbWVDb2RlVHlwZSBnZXRTdGFja0ZyYW1lQ29kZVR5cGUoU3RhY2tW
aXNpdG9yJiB2aXNpdG9yKQpAQCAtNjYyLDcgKzY0OSwxNyBAQCBwcml2YXRlOgogCiBORVZFUl9J
TkxJTkUgSGFuZGxlckluZm8qIEludGVycHJldGVyOjp1bndpbmQoQ2FsbEZyYW1lKiYgY2FsbEZy
YW1lLCBKU1ZhbHVlJiBleGNlcHRpb25WYWx1ZSkKIHsKKyAgICBpZiAoY2FsbEZyYW1lLT5pc1ZN
RW50cnlTZW50aW5lbCgpKSB7CisgICAgICAgIC8vIFRoaXMgaGFwcGVucyB3aGVuIHdlIHRocm93
IHN0YWNrIG92ZXJmbG93IGluIGEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQKKyAgICAgICAgLy8g
ZGlyZWN0bHkgZnJvbSBjYWxsVG9KYXZhU2NyaXB0LiAgU3RhY2sgb3ZlcmZsb3cgdGhyb3dzIHRo
ZSBleGNlcHRpb24gaW4gdGhlCisgICAgICAgIC8vIGNvbnRleHQgb2YgdGhlIGNhbGxlci4gIElu
IHRoYXQgY2FzZSB0aGUgY2FsbGVyIGlzIHRoZSBzZW50aW5lbCBmcmFtZS4gIFRoZQorICAgICAg
ICAvLyByaWdodCB0aGluZyB0byBkbyBpcyB0byBwcmV0ZW5kIHRoYXQgdGhlIGV4Y2VwdGlvbiBp
cyB1bmNhdWdodCBzbyB0aGF0IHdlCisgICAgICAgIC8vIGdvIHRvIHRoZSB1bmNhdWdodCBleGNl
cHRpb24gaGFuZGxlciwgd2hpY2ggcmV0dXJucyB0aHJvdWdoIGNhbGxUb0phdmFTY3JpcHQuCisg
ICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9
IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CisgICAgQVNTRVJUKGNvZGVCbG9jayk7CiAgICAgYm9v
bCBpc1Rlcm1pbmF0aW9uID0gZmFsc2U7CiAKICAgICBBU1NFUlQoIWV4Y2VwdGlvblZhbHVlLmlz
RW1wdHkoKSk7CkBAIC03NjcsNyArNzY0LDYgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0
ZShQcm9ncmFtRXhlY3V0YWJsZSogcHJvZ3JhbSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEoKICAg
ICBpZiAodm0uaXNDb2xsZWN0b3JCdXN5KCkpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKIAot
ICAgIFZNRW50cnlTY29wZSBlbnRyeVNjb3BlKHZtLCBzY29wZS0+Z2xvYmFsT2JqZWN0KCkpOwog
ICAgIGlmICghdm0uaXNTYWZlVG9SZWN1cnNlKCkpCiAgICAgICAgIHJldHVybiBjaGVja2VkUmV0
dXJuKHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOwogCkBAIC04NzQsNiArODcw
LDggQEAgZmFpbGVkSlNPTlA6CiAgICAgLy8gSWYgd2UgZ2V0IGhlcmUsIHRoZW4gd2UgaGF2ZSBh
bHJlYWR5IHByb3ZlbiB0aGF0IHRoZSBzY3JpcHQgaXMgbm90IGEgSlNPTgogICAgIC8vIG9iamVj
dC4KIAorICAgIFZNRW50cnlTY29wZSBlbnRyeVNjb3BlKHZtLCBzY29wZS0+Z2xvYmFsT2JqZWN0
KCkpOworCiAgICAgLy8gQ29tcGlsZSBzb3VyY2UgdG8gYnl0ZWNvZGUgaWYgbmVjZXNzYXJ5Ogog
ICAgIGlmIChKU09iamVjdCogZXJyb3IgPSBwcm9ncmFtLT5pbml0aWFsaXplR2xvYmFsUHJvcGVy
dGllcyh2bSwgY2FsbEZyYW1lLCBzY29wZSkpCiAgICAgICAgIHJldHVybiBjaGVja2VkUmV0dXJu
KGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlvbihjYWxsRnJhbWUsIGVycm9yKSk7CkBAIC04
ODgsOSArODg2LDYgQEAgZmFpbGVkSlNPTlA6CiAKICAgICBBU1NFUlQoY29kZUJsb2NrLT5udW1Q
YXJhbWV0ZXJzKCkgPT0gMSk7IC8vIDEgcGFyYW1ldGVyIGZvciAndGhpcycuCiAKLSAgICBpZiAo
VU5MSUtFTFkoIW1fc3RhY2suZW50cnlDaGVjayhjb2RlQmxvY2ssIDEpKSkKLSAgICAgICAgcmV0
dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7Ci0K
ICAgICBQcm90b0NhbGxGcmFtZSBwcm90b0NhbGxGcmFtZTsKICAgICBwcm90b0NhbGxGcmFtZS5p
bml0KGNvZGVCbG9jaywgc2NvcGUsIDAsIHRoaXNPYmosIDEpOwogCkBAIC05MDMsNyArODk4LDcg
QEAgZmFpbGVkSlNPTlA6CiAgICAgICAgIFNhbXBsaW5nVG9vbDo6Q2FsbFJlY29yZCBjYWxsUmVj
b3JkKG1fc2FtcGxlci5nZXQoKSk7CiAgICAgICAgIFdhdGNoZG9nOjpTY29wZSB3YXRjaGRvZ1Nj
b3BlKHZtLndhdGNoZG9nKTsKIAotICAgICAgICByZXN1bHQgPSBwcm9ncmFtLT5nZW5lcmF0ZWRK
SVRDb2RlKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUsIG1fc3RhY2suZ2V0VG9wT2ZT
dGFjaygpKTsKKyAgICAgICAgcmVzdWx0ID0gcHJvZ3JhbS0+Z2VuZXJhdGVkSklUQ29kZSgpLT5l
eGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lKTsKICAgICB9CiAKICAgICBpZiAoTGVnYWN5UHJv
ZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCkBAIC05NTEsOSArOTQ2LDYg
QEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IEpTT2JqZWN0KiBmdW5jdGlvbiwgQ2FsbFQKICAgICBpZiAoVU5MSUtFTFkodm0ud2F0Y2hkb2cu
ZGlkRmlyZShjYWxsRnJhbWUpKSkKICAgICAgICAgcmV0dXJuIHRocm93VGVybWluYXRlZEV4ZWN1
dGlvbkV4Y2VwdGlvbihjYWxsRnJhbWUpOwogCi0gICAgaWYgKFVOTElLRUxZKCFtX3N0YWNrLmVu
dHJ5Q2hlY2sobmV3Q29kZUJsb2NrLCBhcmdzQ291bnQpKSkKLSAgICAgICAgcmV0dXJuIGNoZWNr
ZWRSZXR1cm4odGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7Ci0KICAgICBQcm90
b0NhbGxGcmFtZSBwcm90b0NhbGxGcmFtZTsKICAgICBwcm90b0NhbGxGcmFtZS5pbml0KG5ld0Nv
ZGVCbG9jaywgc2NvcGUsIGZ1bmN0aW9uLCB0aGlzVmFsdWUsIGFyZ3NDb3VudCwgYXJncy5kYXRh
KCkpOwogCkBAIC05NjcsOSArOTU5LDEyIEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGVD
YWxsKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU09iamVjdCogZnVuY3Rpb24sIENhbGxUCiAKICAg
ICAgICAgLy8gRXhlY3V0ZSB0aGUgY29kZToKICAgICAgICAgaWYgKGlzSlNDYWxsKQotICAgICAg
ICAgICAgcmVzdWx0ID0gY2FsbERhdGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRK
SVRDb2RlRm9yQ2FsbCgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lLCBtX3N0YWNrLmdl
dFRvcE9mU3RhY2soKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3VsdCA9IEpTVmFs
dWU6OmRlY29kZShjYWxsVG9OYXRpdmVGdW5jdGlvbihyZWludGVycHJldF9jYXN0PHZvaWQqPihj
YWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24pLCAmdm0udG9wQ2FsbEZyYW1lLCAmcHJvdG9DYWxsRnJh
bWUsIG1fc3RhY2suZ2V0VG9wT2ZTdGFjaygpKSk7CisgICAgICAgICAgICByZXN1bHQgPSBjYWxs
RGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JDYWxsKCktPmV4
ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
IHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShjYWxsVG9OYXRpdmVGdW5jdGlvbihyZWludGVycHJl
dF9jYXN0PHZvaWQqPihjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24pLCAmdm0sICZwcm90b0NhbGxG
cmFtZSkpOworICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS0+aGFkRXhjZXB0aW9uKCkpCisgICAg
ICAgICAgICAgICAgcmVzdWx0ID0ganNOdWxsKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBp
ZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCkBAIC0x
MDE5LDkgKzEwMTQsNiBAQCBKU09iamVjdCogSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3Qo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBjb25zdHJ1YwogICAgIGlmIChVTkxJS0VM
WSh2bS53YXRjaGRvZy5kaWRGaXJlKGNhbGxGcmFtZSkpKQogICAgICAgICByZXR1cm4gdGhyb3dU
ZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKGNhbGxGcmFtZSk7CiAKLSAgICBpZiAoVU5MSUtF
TFkoIW1fc3RhY2suZW50cnlDaGVjayhuZXdDb2RlQmxvY2ssIGFyZ3NDb3VudCkpKQotICAgICAg
ICByZXR1cm4gY2hlY2tlZFJldHVybih0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUp
KTsKLQogICAgIFByb3RvQ2FsbEZyYW1lIHByb3RvQ2FsbEZyYW1lOwogICAgIHByb3RvQ2FsbEZy
YW1lLmluaXQobmV3Q29kZUJsb2NrLCBzY29wZSwgY29uc3RydWN0b3IsIGpzVW5kZWZpbmVkKCks
IGFyZ3NDb3VudCwgYXJncy5kYXRhKCkpOwogCkBAIC0xMDM1LDkgKzEwMjcsOSBAQCBKU09iamVj
dCogSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3QoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpT
T2JqZWN0KiBjb25zdHJ1YwogCiAgICAgICAgIC8vIEV4ZWN1dGUgdGhlIGNvZGUuCiAgICAgICAg
IGlmIChpc0pTQ29uc3RydWN0KQotICAgICAgICAgICAgcmVzdWx0ID0gY29uc3RydWN0RGF0YS5q
cy5mdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JDb25zdHJ1Y3QoKS0+ZXhl
Y3V0ZSgmdm0sICZwcm90b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0YWNrKCkpOworICAg
ICAgICAgICAgcmVzdWx0ID0gY29uc3RydWN0RGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPmdl
bmVyYXRlZEpJVENvZGVGb3JDb25zdHJ1Y3QoKS0+ZXhlY3V0ZSgmdm0sICZwcm90b0NhbGxGcmFt
ZSk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgcmVzdWx0ID0gSlNWYWx1ZTo6ZGVjb2Rl
KGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbnN0cnVjdERh
dGEubmF0aXZlLmZ1bmN0aW9uKSwgJnZtLnRvcENhbGxGcmFtZSwgJnByb3RvQ2FsbEZyYW1lLCBt
X3N0YWNrLmdldFRvcE9mU3RhY2soKSkpOworICAgICAgICAgICAgcmVzdWx0ID0gSlNWYWx1ZTo6
ZGVjb2RlKGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbnN0
cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uKSwgJnZtLCAmcHJvdG9DYWxsRnJhbWUpKTsKIAogICAg
ICAgICAgICAgaWYgKCFjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKHJlc3VsdC5pc09iamVjdCgpKTsKQEAgLTEwNzIsMTEgKzEwNjQsNiBA
QCBDYWxsRnJhbWVDbG9zdXJlIEludGVycHJldGVyOjpwcmVwYXJlRm9yUmVwZWF0Q2FsbChGdW5j
dGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9uRQogCiAgICAgc2l6ZV90IGFyZ3NDb3VudCA9IGFyZ3Vt
ZW50Q291bnRJbmNsdWRpbmdUaGlzOwogCi0gICAgaWYgKFVOTElLRUxZKCFtX3N0YWNrLmVudHJ5
Q2hlY2sobmV3Q29kZUJsb2NrLCBhcmdzQ291bnQpKSkgewotICAgICAgICB0aHJvd1N0YWNrT3Zl
cmZsb3dFcnJvcihjYWxsRnJhbWUpOwotICAgICAgICByZXR1cm4gQ2FsbEZyYW1lQ2xvc3VyZSgp
OwotICAgIH0KLQogICAgIHByb3RvQ2FsbEZyYW1lLT5pbml0KG5ld0NvZGVCbG9jaywgc2NvcGUs
IGZ1bmN0aW9uLCBqc1VuZGVmaW5lZCgpLCBhcmdzQ291bnQsIGFyZ3MpOwogICAgIC8vIFJldHVy
biB0aGUgc3VjY2Vzc2Z1bCBjbG9zdXJlOgogICAgIENhbGxGcmFtZUNsb3N1cmUgcmVzdWx0ID0g
eyBjYWxsRnJhbWUsIHByb3RvQ2FsbEZyYW1lLCBmdW5jdGlvbiwgZnVuY3Rpb25FeGVjdXRhYmxl
LCAmdm0sIHNjb3BlLCBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSwgYXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXMgfTsKQEAgLTExMDcsNyArMTA5NCw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0
ZXI6OmV4ZWN1dGUoQ2FsbEZyYW1lQ2xvc3VyZSYgY2xvc3VyZSkKICAgICAgICAgU2FtcGxpbmdU
b29sOjpDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgpKTsKICAgICAgICAgV2F0
Y2hkb2c6OlNjb3BlIHdhdGNoZG9nU2NvcGUodm0ud2F0Y2hkb2cpOwogCi0gICAgICAgIHJlc3Vs
dCA9IGNsb3N1cmUuZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbCgp
LT5leGVjdXRlKCZ2bSwgY2xvc3VyZS5wcm90b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0
YWNrKCkpOworICAgICAgICByZXN1bHQgPSBjbG9zdXJlLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2Vu
ZXJhdGVkSklUQ29kZUZvckNhbGwoKS0+ZXhlY3V0ZSgmdm0sIGNsb3N1cmUucHJvdG9DYWxsRnJh
bWUpOwogICAgIH0KIAogICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFi
bGVkUHJvZmlsZXIoKSkKQEAgLTExNzgsOSArMTE2NSw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6
OmV4ZWN1dGUoRXZhbEV4ZWN1dGFibGUqIGV2YWwsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1Zh
bHVlCiAKICAgICBBU1NFUlQoY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkgPT0gMSk7IC8vIDEg
cGFyYW1ldGVyIGZvciAndGhpcycuCiAKLSAgICBpZiAoVU5MSUtFTFkoIW1fc3RhY2suZW50cnlD
aGVjayhjb2RlQmxvY2ssIDEpKSkKLSAgICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dT
dGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7Ci0KICAgICBQcm90b0NhbGxGcmFtZSBwcm90
b0NhbGxGcmFtZTsKICAgICBwcm90b0NhbGxGcmFtZS5pbml0KGNvZGVCbG9jaywgc2NvcGUsIDAs
IHRoaXNWYWx1ZSwgMSk7CiAKQEAgLTExOTMsNyArMTE3Nyw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0
ZXI6OmV4ZWN1dGUoRXZhbEV4ZWN1dGFibGUqIGV2YWwsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBK
U1ZhbHVlCiAgICAgICAgIFNhbXBsaW5nVG9vbDo6Q2FsbFJlY29yZCBjYWxsUmVjb3JkKG1fc2Ft
cGxlci5nZXQoKSk7CiAgICAgICAgIFdhdGNoZG9nOjpTY29wZSB3YXRjaGRvZ1Njb3BlKHZtLndh
dGNoZG9nKTsKIAotICAgICAgICByZXN1bHQgPSBldmFsLT5nZW5lcmF0ZWRKSVRDb2RlKCktPmV4
ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUsIG1fc3RhY2suZ2V0VG9wT2ZTdGFjaygpKTsKKyAg
ICAgICAgcmVzdWx0ID0gZXZhbC0+Z2VuZXJhdGVkSklUQ29kZSgpLT5leGVjdXRlKCZ2bSwgJnBy
b3RvQ2FsbEZyYW1lKTsKICAgICB9CiAKICAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVy
ID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9JbnRlcnByZXRlci5oCmluZGV4IGNmYzcyMWIzODE3ODIzODFlNDVkNDcwMzlkZGI1
NGFmZmJmMDZmOWQuLmI0NTMwMzcwMGFhMDNhYTgwNGQ1YTU1NDhlZDhhYTJkYjM4YmRkNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCkBA
IC0xODAsNiArMTgwLDE1IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgQVNTRVJUKCFj
YWxsRnJhbWUtPmlzVk1FbnRyeVNlbnRpbmVsKCkpOwogICAgICAgICAgICAgdm0tPnRvcENhbGxG
cmFtZSA9IGNhbGxGcmFtZTsKICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZW51bSBWTUVu
dHJ5U2VudGluZWxPS1RhZyB7IFZNRW50cnlTZW50aW5lbE9LIH07CisgICAgICAgIEFMV0FZU19J
TkxJTkUgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyKFZNKiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IFZNRW50cnlTZW50aW5lbE9LVGFnKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQodm0p
OworICAgICAgICAgICAgQVNTRVJUKGNhbGxGcmFtZSk7CisgICAgICAgICAgICBpZiAoIWNhbGxG
cmFtZS0+aXNWTUVudHJ5U2VudGluZWwoKSkKKyAgICAgICAgICAgICAgICB2bS0+dG9wQ2FsbEZy
YW1lID0gY2FsbEZyYW1lOworICAgICAgICB9CiAgICAgfTsKIAogICAgIGNsYXNzIEludGVycHJl
dGVyIHsKQEAgLTE5MCwxNCArMTk5LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGZyaWVu
ZCBjbGFzcyBWTTsKIAogICAgIHB1YmxpYzoKLSAgICAgICAgY2xhc3MgRXJyb3JIYW5kbGluZ01v
ZGUgewotICAgICAgICBwdWJsaWM6Ci0gICAgICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBFcnJv
ckhhbmRsaW5nTW9kZShFeGVjU3RhdGUqKTsKLSAgICAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRF
IH5FcnJvckhhbmRsaW5nTW9kZSgpOwotICAgICAgICBwcml2YXRlOgotICAgICAgICAgICAgSW50
ZXJwcmV0ZXImIG1faW50ZXJwcmV0ZXI7Ci0gICAgICAgIH07Ci0KICAgICAgICAgSW50ZXJwcmV0
ZXIoVk0gJik7CiAgICAgICAgIH5JbnRlcnByZXRlcigpOwogICAgICAgICAKQEAgLTIzNyw4ICsy
MzgsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAgICAgIFNhbXBsaW5nVG9vbCog
c2FtcGxlcigpIHsgcmV0dXJuIG1fc2FtcGxlci5nZXQoKTsgfQogCi0gICAgICAgIGJvb2wgaXNJ
bkVycm9ySGFuZGxpbmdNb2RlKCkgeyByZXR1cm4gbV9lcnJvckhhbmRsaW5nTW9kZVJlZW50cnk7
IH0KLQogICAgICAgICBORVZFUl9JTkxJTkUgSGFuZGxlckluZm8qIHVud2luZChDYWxsRnJhbWUq
JiwgSlNWYWx1ZSYpOwogICAgICAgICBORVZFUl9JTkxJTkUgdm9pZCBkZWJ1ZyhDYWxsRnJhbWUq
LCBEZWJ1Z0hvb2tJRCk7CiAgICAgICAgIEpTU3RyaW5nKiBzdGFja1RyYWNlQXNTdHJpbmcoRXhl
Y1N0YXRlKiwgVmVjdG9yPFN0YWNrRnJhbWU+KTsKQEAgLTI4Niw3ICsyODUsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICB9OwogCiAgICAgSlNWYWx1ZSBldmFsKENhbGxGcmFtZSopOwotICAgIENh
bGxGcmFtZSogc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKENhbGxGcmFtZSosIEpTU3RhY2sq
LCBKU1ZhbHVlLCBpbnQpOworICAgIENhbGxGcmFtZSogc2l6ZUZyYW1lRm9yVmFyYXJncyhDYWxs
RnJhbWUqLCBKU1N0YWNrKiwgSlNWYWx1ZSwgaW50KTsKICAgICB2b2lkIGxvYWRWYXJhcmdzKENh
bGxGcmFtZSosIENhbGxGcmFtZSosIEpTVmFsdWUsIEpTVmFsdWUpOwogfSAvLyBuYW1lc3BhY2Ug
SlNDCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0
YWNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcApp
bmRleCBmYTNlM2Q1MGQ3ZWVkNWRmM2E2YmZkZGIxY2NjMTYxOWQzYWNmNTQzLi4wN2JjNTJlMmFl
MGFmMjZhZWIyNzZhODBlODMyODNiNTFmNzJiYzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0pTU3RhY2suY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw5ICszMSwxMSBAQAog
CiAjaW5jbHVkZSAiQ29uc2VydmF0aXZlUm9vdHMuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5o
IgorI2luY2x1ZGUgIk9wdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyNpZiBFTkFCTEUo
TExJTlRfQ19MT09QKQogc3RhdGljIHNpemVfdCBjb21taXR0ZWRCeXRlc0NvdW50ID0gMDsKIAog
c3RhdGljIE11dGV4JiBzdGFja1N0YXRpc3RpY3NNdXRleCgpCkBAIC00MSw4NyArNDMsOTggQEAg
c3RhdGljIE11dGV4JiBzdGFja1N0YXRpc3RpY3NNdXRleCgpCiAgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChNdXRleCwgc3RhdGljTXV0ZXgsICgpKTsKICAgICByZXR1cm4gc3RhdGljTXV0ZXg7CiB9
ICAgIAorI2VuZGlmIC8vIEVOQUJMRShMTElOVF9DX0xPT1ApCiAKLUpTU3RhY2s6OkpTU3RhY2so
Vk0mIHZtLCBzaXplX3QgY2FwYWNpdHkpCitKU1N0YWNrOjpKU1N0YWNrKFZNJiB2bSkKICAgICA6
IG1fdm0odm0pCi0gICAgLCBtX2VuZCgwKQogICAgICwgbV90b3BDYWxsRnJhbWUodm0udG9wQ2Fs
bEZyYW1lKQorI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgLCBtX2VuZCgwKQorICAgICwg
bV9yZXNlcnZlZFpvbmVTaXplSW5SZWdpc3RlcnMoMCkKKyNlbmRpZgogeworI2lmIEVOQUJMRShM
TElOVF9DX0xPT1ApCisgICAgc2l6ZV90IGNhcGFjaXR5ID0gT3B0aW9uczo6bWF4UGVyVGhyZWFk
U3RhY2tVc2FnZSgpOwogICAgIEFTU0VSVChjYXBhY2l0eSAmJiBpc1BhZ2VBbGlnbmVkKGNhcGFj
aXR5KSk7CiAKLSAgICBtX3Jlc2VydmF0aW9uID0gUGFnZVJlc2VydmF0aW9uOjpyZXNlcnZlKHJv
dW5kVXBBbGxvY2F0aW9uU2l6ZShjYXBhY2l0eSAqIHNpemVvZihSZWdpc3RlciksIGNvbW1pdFNp
emUpLCBPU0FsbG9jYXRvcjo6SlNWTVN0YWNrUGFnZXMpOwotICAgIHVwZGF0ZVN0YWNrTGltaXQo
aGlnaEFkZHJlc3MoKSk7Ci0gICAgbV9jb21taXRFbmQgPSBoaWdoQWRkcmVzcygpOworICAgIG1f
cmVzZXJ2YXRpb24gPSBQYWdlUmVzZXJ2YXRpb246OnJlc2VydmUoV1RGOjpyb3VuZFVwVG9NdWx0
aXBsZU9mKGNvbW1pdFNpemUsIGNhcGFjaXR5KSwgT1NBbGxvY2F0b3I6OkpTVk1TdGFja1BhZ2Vz
KTsKKyAgICBzZXRTdGFja0xpbWl0KGhpZ2hBZGRyZXNzKCkpOworICAgIG1fY29tbWl0VG9wID0g
aGlnaEFkZHJlc3MoKTsKICAgICAKLSAgICBtX2xhc3RTdGFja1RvcCA9IGdldEJhc2VPZlN0YWNr
KCk7Ci0KLSAgICBkaXNhYmxlRXJyb3JTdGFja1Jlc2VydmUoKTsKKyAgICBtX2xhc3RTdGFja1Rv
cCA9IGJhc2VPZlN0YWNrKCk7CisjZW5kaWYgLy8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAogICAg
IG1fdG9wQ2FsbEZyYW1lID0gMDsKIH0KIAorI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiBKU1N0
YWNrOjp+SlNTdGFjaygpCiB7Ci0gICAgdm9pZCogaGlnaEFkZHJlc3MgPSByZWludGVycHJldF9j
YXN0PHZvaWQqPihzdGF0aWNfY2FzdDxjaGFyKj4obV9yZXNlcnZhdGlvbi5iYXNlKCkpICsgbV9y
ZXNlcnZhdGlvbi5zaXplKCkpOwotICAgIG1fcmVzZXJ2YXRpb24uZGVjb21taXQocmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKj4obV9jb21taXRFbmQpLCByZWludGVycHJldF9jYXN0PGludHB0cl90Piho
aWdoQWRkcmVzcykgLSByZWludGVycHJldF9jYXN0PGludHB0cl90PihtX2NvbW1pdEVuZCkpOwot
ICAgIGFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KC0ocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4o
aGlnaEFkZHJlc3MpIC0gcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4obV9jb21taXRFbmQpKSk7
CisgICAgcHRyZGlmZl90IHNpemVUb0RlY29tbWl0ID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4o
aGlnaEFkZHJlc3MoKSkgLSByZWludGVycHJldF9jYXN0PGNoYXIqPihtX2NvbW1pdFRvcCk7Cisg
ICAgbV9yZXNlcnZhdGlvbi5kZWNvbW1pdChyZWludGVycHJldF9jYXN0PHZvaWQqPihtX2NvbW1p
dFRvcCksIHNpemVUb0RlY29tbWl0KTsKKyAgICBhZGRUb0NvbW1pdHRlZEJ5dGVDb3VudCgtc2l6
ZVRvRGVjb21taXQpOwogICAgIG1fcmVzZXJ2YXRpb24uZGVhbGxvY2F0ZSgpOwogfQogCi1ib29s
IEpTU3RhY2s6Omdyb3dTbG93Q2FzZShSZWdpc3RlciogbmV3RW5kKQorYm9vbCBKU1N0YWNrOjpn
cm93U2xvd0Nhc2UoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCiB7CisgICAgUmVnaXN0ZXIqIG5l
d1RvcE9mU3RhY2tXaXRoUmVzZXJ2ZWRab25lID0gbmV3VG9wT2ZTdGFjayAtIG1fcmVzZXJ2ZWRa
b25lU2l6ZUluUmVnaXN0ZXJzOworCiAgICAgLy8gSWYgd2UgaGF2ZSBhbHJlYWR5IGNvbW1pdHRl
ZCBlbm91Z2ggbWVtb3J5IHRvIHNhdGlzZnkgdGhpcyByZXF1ZXN0LAogICAgIC8vIGp1c3QgdXBk
YXRlIHRoZSBlbmQgcG9pbnRlciBhbmQgcmV0dXJuLgotICAgIGlmIChuZXdFbmQgPj0gbV9jb21t
aXRFbmQpIHsKLSAgICAgICAgdXBkYXRlU3RhY2tMaW1pdChuZXdFbmQpOworICAgIGlmIChuZXdU
b3BPZlN0YWNrV2l0aFJlc2VydmVkWm9uZSA+PSBtX2NvbW1pdFRvcCkgeworICAgICAgICBzZXRT
dGFja0xpbWl0KG5ld1RvcE9mU3RhY2spOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
ICAgICAvLyBDb21wdXRlIHRoZSBjaHVuayBzaXplIG9mIGFkZGl0aW9uYWwgbWVtb3J5IHRvIGNv
bW1pdCwgYW5kIHNlZSBpZiB3ZQogICAgIC8vIGhhdmUgaXQgaXMgc3RpbGwgd2l0aGluIG91ciBi
dWRnZXQuIElmIG5vdCwgd2UnbGwgZmFpbCB0byBncm93IGFuZAogICAgIC8vIHJldHVybiBmYWxz
ZS4KLSAgICBsb25nIGRlbHRhID0gcm91bmRVcEFsbG9jYXRpb25TaXplKHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KG1fY29tbWl0RW5kKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG5ld0VuZCks
IGNvbW1pdFNpemUpOwotICAgIGlmIChyZWludGVycHJldF9jYXN0PGNoYXIqPihtX2NvbW1pdEVu
ZCkgLSBkZWx0YSA8PSByZWludGVycHJldF9jYXN0PGNoYXIqPihtX3VzZWFibGVFbmQpKQorICAg
IHB0cmRpZmZfdCBkZWx0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fY29tbWl0VG9wKSAt
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG5ld1RvcE9mU3RhY2tXaXRoUmVzZXJ2ZWRab25lKTsK
KyAgICBkZWx0YSA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihjb21taXRTaXplLCBkZWx0YSk7
CisgICAgUmVnaXN0ZXIqIG5ld0NvbW1pdFRvcCA9IG1fY29tbWl0VG9wIC0gKGRlbHRhIC8gc2l6
ZW9mKFJlZ2lzdGVyKSk7CisgICAgaWYgKG5ld0NvbW1pdFRvcCA8IHJlc2VydmF0aW9uVG9wKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIE90aGVyd2lzZSwgdGhlIGdyb3d0aCBp
cyBzdGlsbCB3aXRoaW4gb3VyIGJ1ZGdldC4gR28gYWhlYWQgYW5kIGNvbW1pdAogICAgIC8vIGl0
IGFuZCByZXR1cm4gdHJ1ZS4KLSAgICBtX3Jlc2VydmF0aW9uLmNvbW1pdChyZWludGVycHJldF9j
YXN0PGNoYXIqPihtX2NvbW1pdEVuZCkgLSBkZWx0YSwgZGVsdGEpOworICAgIG1fcmVzZXJ2YXRp
b24uY29tbWl0KG5ld0NvbW1pdFRvcCwgZGVsdGEpOwogICAgIGFkZFRvQ29tbWl0dGVkQnl0ZUNv
dW50KGRlbHRhKTsKLSAgICBtX2NvbW1pdEVuZCA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPFJlZ2lz
dGVyKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRFbmQpIC0gZGVsdGEpOwotICAg
IHVwZGF0ZVN0YWNrTGltaXQobmV3RW5kKTsKKyAgICBtX2NvbW1pdFRvcCA9IG5ld0NvbW1pdFRv
cDsKKyAgICBzZXRTdGFja0xpbWl0KG5ld1RvcE9mU3RhY2spOwogICAgIHJldHVybiB0cnVlOwog
fQogCiB2b2lkIEpTU3RhY2s6OmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJv
b3RzJiBjb25zZXJ2YXRpdmVSb290cykKIHsKLSAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQoZ2V0
QmFzZU9mU3RhY2soKSwgZ2V0VG9wT2ZTdGFjaygpKTsKKyAgICBjb25zZXJ2YXRpdmVSb290cy5h
ZGQodG9wT2ZTdGFjaygpICsgMSwgaGlnaEFkZHJlc3MoKSk7CiB9CiAKIHZvaWQgSlNTdGFjazo6
Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJv
b3RzLCBKSVRTdHViUm91dGluZVNldCYgaml0U3R1YlJvdXRpbmVzLCBDb2RlQmxvY2tTZXQmIGNv
ZGVCbG9ja3MpCiB7Ci0gICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKGdldEJhc2VPZlN0YWNrKCks
IGdldFRvcE9mU3RhY2soKSwgaml0U3R1YlJvdXRpbmVzLCBjb2RlQmxvY2tzKTsKKyAgICBjb25z
ZXJ2YXRpdmVSb290cy5hZGQodG9wT2ZTdGFjaygpICsgMSwgaGlnaEFkZHJlc3MoKSwgaml0U3R1
YlJvdXRpbmVzLCBjb2RlQmxvY2tzKTsKIH0KIAogdm9pZCBKU1N0YWNrOjpzYW5pdGl6ZVN0YWNr
KCkKIHsKLSAgICBBU1NFUlQoZ2V0VG9wT2ZTdGFjaygpIDw9IGdldEJhc2VPZlN0YWNrKCkpOwor
ICAgIEFTU0VSVCh0b3BPZlN0YWNrKCkgPD0gYmFzZU9mU3RhY2soKSk7CiAgICAgCi0gICAgaWYg
KG1fbGFzdFN0YWNrVG9wIDwgZ2V0VG9wT2ZTdGFjaygpKSB7Ci0gICAgICAgIGNoYXIqIGJlZ2lu
ID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9sYXN0U3RhY2tUb3ApOwotICAgICAgICBjaGFy
KiBlbmQgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihnZXRUb3BPZlN0YWNrKCkpOworICAgIGlm
IChtX2xhc3RTdGFja1RvcCA8IHRvcE9mU3RhY2soKSkgeworICAgICAgICBjaGFyKiBiZWdpbiA9
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fbGFzdFN0YWNrVG9wICsgMSk7CisgICAgICAgIGNo
YXIqIGVuZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHRvcE9mU3RhY2soKSArIDEpOwogICAg
ICAgICBtZW1zZXQoYmVnaW4sIDAsIGVuZCAtIGJlZ2luKTsKICAgICB9CiAgICAgCi0gICAgbV9s
YXN0U3RhY2tUb3AgPSBnZXRUb3BPZlN0YWNrKCk7CisgICAgbV9sYXN0U3RhY2tUb3AgPSB0b3BP
ZlN0YWNrKCk7CiB9CiAKIHZvaWQgSlNTdGFjazo6cmVsZWFzZUV4Y2Vzc0NhcGFjaXR5KCkKIHsK
LSAgICBwdHJkaWZmX3QgZGVsdGEgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oaGlnaEFk
ZHJlc3MoKSkgLSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4obV9jb21taXRFbmQpOwotICAg
IG1fcmVzZXJ2YXRpb24uZGVjb21taXQobV9jb21taXRFbmQsIGRlbHRhKTsKKyAgICBSZWdpc3Rl
ciogaGlnaEFkZHJlc3NXaXRoUmVzZXJ2ZWRab25lID0gaGlnaEFkZHJlc3MoKSAtIG1fcmVzZXJ2
ZWRab25lU2l6ZUluUmVnaXN0ZXJzOworICAgIHB0cmRpZmZfdCBkZWx0YSA9IHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KGhpZ2hBZGRyZXNzV2l0aFJlc2VydmVkWm9uZSkgLSByZWludGVycHJldF9j
YXN0PGNoYXIqPihtX2NvbW1pdFRvcCk7CisgICAgbV9yZXNlcnZhdGlvbi5kZWNvbW1pdChtX2Nv
bW1pdFRvcCwgZGVsdGEpOwogICAgIGFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KC1kZWx0YSk7Ci0g
ICAgbV9jb21taXRFbmQgPSBoaWdoQWRkcmVzcygpOworICAgIG1fY29tbWl0VG9wID0gaGlnaEFk
ZHJlc3NXaXRoUmVzZXJ2ZWRab25lOwogfQogCiB2b2lkIEpTU3RhY2s6OmluaXRpYWxpemVUaHJl
YWRpbmcoKQpAQCAtMTI5LDEyICsxNDIsNiBAQCB2b2lkIEpTU3RhY2s6OmluaXRpYWxpemVUaHJl
YWRpbmcoKQogICAgIHN0YWNrU3RhdGlzdGljc011dGV4KCk7CiB9CiAKLXNpemVfdCBKU1N0YWNr
Ojpjb21taXR0ZWRCeXRlQ291bnQoKQotewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihzdGFja1N0
YXRpc3RpY3NNdXRleCgpKTsKLSAgICByZXR1cm4gY29tbWl0dGVkQnl0ZXNDb3VudDsKLX0KLQog
dm9pZCBKU1N0YWNrOjphZGRUb0NvbW1pdHRlZEJ5dGVDb3VudChsb25nIGJ5dGVDb3VudCkKIHsK
ICAgICBNdXRleExvY2tlciBsb2NrZXIoc3RhY2tTdGF0aXN0aWNzTXV0ZXgoKSk7CkBAIC0xNDIs
MjUgKzE0OSw0MSBAQCB2b2lkIEpTU3RhY2s6OmFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KGxvbmcg
Ynl0ZUNvdW50KQogICAgIGNvbW1pdHRlZEJ5dGVzQ291bnQgKz0gYnl0ZUNvdW50OwogfQogCi12
b2lkIEpTU3RhY2s6OmVuYWJsZUVycm9yU3RhY2tSZXNlcnZlKCkKK3ZvaWQgSlNTdGFjazo6c2V0
UmVzZXJ2ZWRab25lU2l6ZShzaXplX3QgcmVzZXJ2ZWRab25lU2l6ZSkKIHsKLSAgICBtX3VzZWFi
bGVFbmQgPSByZXNlcnZhdGlvbkVuZCgpOworICAgIG1fcmVzZXJ2ZWRab25lU2l6ZUluUmVnaXN0
ZXJzID0gcmVzZXJ2ZWRab25lU2l6ZSAvIHNpemVvZihSZWdpc3Rlcik7CisgICAgaWYgKG1fY29t
bWl0VG9wID49IChtX2VuZCArIDEpIC0gbV9yZXNlcnZlZFpvbmVTaXplSW5SZWdpc3RlcnMpCisg
ICAgICAgIGdyb3dTbG93Q2FzZShtX2VuZCArIDEpOwogfQorI2VuZGlmIC8vIEVOQUJMRShMTElO
VF9DX0xPT1ApCiAKLXZvaWQgSlNTdGFjazo6ZGlzYWJsZUVycm9yU3RhY2tSZXNlcnZlKCkKKyNp
ZiAhRU5BQkxFKExMSU5UX0NfTE9PUCkKK1JlZ2lzdGVyKiBKU1N0YWNrOjpsb3dBZGRyZXNzKCkg
Y29uc3QKIHsKLSAgICBjaGFyKiB1c2VhYmxlRW5kID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4o
cmVzZXJ2YXRpb25FbmQoKSkgKyBjb21taXRTaXplOwotICAgIG1fdXNlYWJsZUVuZCA9IHJlaW50
ZXJwcmV0X2Nhc3RfcHRyPFJlZ2lzdGVyKj4odXNlYWJsZUVuZCk7Ci0KLSAgICAvLyBCeSB0aGUg
dGltZSB3ZSBnZXQgaGVyZSwgd2UgYXJlIGd1YXJhbnRlZWQgdG8gYmUgZGVzdHJ1Y3RpbmcgdGhl
IGxhc3QKLSAgICAvLyBJbnRlcnByZXRlcjo6RXJyb3JIYW5kbGluZ01vZGUgdGhhdCBlbmFibGVk
IHRoaXMgcmVzZXJ2ZSBpbiB0aGUgZmlyc3QKLSAgICAvLyBwbGFjZS4gVGhhdCBtZWFucyB0aGUg
c3RhY2sgc3BhY2UgYmV5b25kIG1fdXNlYWJsZUVuZCBiZWZvcmUgd2UKLSAgICAvLyBlbmFibGVk
IHRoZSByZXNlcnZlIHdhcyBub3QgcHJldmlvdXNseSBpbiB1c2UuIEhlbmNlLCBpdCBpcyBzYWZl
IHRvCi0gICAgLy8gc2hyaW5rIGJhY2sgdG8gdGhhdCBtX3VzZWFibGVFbmQuCi0gICAgaWYgKG1f
ZW5kIDwgbV91c2VhYmxlRW5kKSB7Ci0gICAgICAgIEFTU0VSVChtX3RvcENhbGxGcmFtZS0+ZnJh
bWVFeHRlbnQoKSA+PSBtX3VzZWFibGVFbmQpOwotICAgICAgICBzaHJpbmsobV91c2VhYmxlRW5k
KTsKLSAgICB9CisgICAgQVNTRVJUKHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLmlzR3Jvd2luZ0Rv
d253YXJkKCkpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFJlZ2lzdGVyKj4obV92bS5z
dGFja0xpbWl0KCkpOworfQorCitSZWdpc3RlciogSlNTdGFjazo6aGlnaEFkZHJlc3MoKSBjb25z
dAoreworICAgIEFTU0VSVCh3dGZUaHJlYWREYXRhKCkuc3RhY2soKS5pc0dyb3dpbmdEb3dud2Fy
ZCgpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxSZWdpc3Rlcio+KHd0ZlRocmVhZERh
dGEoKS5zdGFjaygpLm9yaWdpbigpKTsKK30KKyNlbmRpZiAvLyAhRU5BQkxFKExMSU5UX0NfTE9P
UCkKKworc2l6ZV90IEpTU3RhY2s6OmNvbW1pdHRlZEJ5dGVDb3VudCgpCit7CisjaWYgRU5BQkxF
KExMSU5UX0NfTE9PUCkKKyAgICBNdXRleExvY2tlciBsb2NrZXIoc3RhY2tTdGF0aXN0aWNzTXV0
ZXgoKSk7CisgICAgcmV0dXJuIGNvbW1pdHRlZEJ5dGVzQ291bnQ7CisjZWxzZQorICAgIC8vIFdo
ZW4gdXNpbmcgdGhlIEMgc3RhY2ssIHdlIGRvbid0IGtub3cgaG93IG1hbnkgc3RhY2sgcGFnZXMg
YXJlIGFjdHVhbGx5CisgICAgLy8gY29tbWl0dGVkLiBTbywgd2UgdXNlIHRoZSBjdXJyZW50IHN0
YWNrIHVzYWdlIGFzIGFuIGVzdGltYXRlLgorICAgIEFTU0VSVCh3dGZUaHJlYWREYXRhKCkuc3Rh
Y2soKS5pc0dyb3dpbmdEb3dud2FyZCgpKTsKKyAgICBpbnQ4X3QqIGN1cnJlbnQgPSByZWludGVy
cHJldF9jYXN0PGludDhfdCo+KCZjdXJyZW50KTsKKyAgICBpbnQ4X3QqIGhpZ2ggPSByZWludGVy
cHJldF9jYXN0PGludDhfdCo+KHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLm9yaWdpbigpKTsKKyAg
ICByZXR1cm4gaGlnaCAtIGN1cnJlbnQ7CisjZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlND
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suaAppbmRleCA5MWY5
M2UyYmY5YjU0NDVhMjQ3ZmJhNjI2Y2YzZWNkMjQ4MTc3YWFkLi4xZjZmZTIwYzE2MDhhNTI5NWE1
NzJkZTEwYTQ3N2JlYTg4ODU5MzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvSlNTdGFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9KU1N0YWNrLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4
LCAyMDA5LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCwgMjAwOSwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDExICszNSw2IEBACiAj
aW5jbHVkZSA8d3RmL1BhZ2VSZXNlcnZhdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9WTVRhZ3MuaD4K
IAotI2RlZmluZSBFTkFCTEVfREVCVUdfSlNTVEFDSyAwCi0jaWYgIWRlZmluZWQoTkRFQlVHKSAm
JiAhZGVmaW5lZChFTkFCTEVfREVCVUdfSlNTVEFDSykKLSNkZWZpbmUgRU5BQkxFX0RFQlVHX0pT
U1RBQ0sgMQotI2VuZGlmCi0KIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgQ29kZUJsb2Nr
U2V0OwpAQCAtNjEsNyArNTYsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoSlNTdGFjayk7CiAgICAgcHVibGljOgogICAgICAgICBlbnVtIENhbGxGcmFt
ZUhlYWRlckVudHJ5IHsKLSAgICAgICAgICAgIENvZGVCbG9jayA9IHNpemVvZihDYWxsZXJGcmFt
ZUFuZFBDKSAvIHNpemVvZihSZWdpc3RlciksCisgICAgICAgICAgICBDYWxsZXJGcmFtZUFuZFBD
U2l6ZSA9IHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSAvIHNpemVvZihSZWdpc3RlciksCisgICAg
ICAgICAgICBDb2RlQmxvY2sgPSBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwKICAgICAgICAgICAgIFNj
b3BlQ2hhaW4sCiAgICAgICAgICAgICBDYWxsZWUsCiAgICAgICAgICAgICBBcmd1bWVudENvdW50
LApAQCAtNzIsOTIgKzY4LDg3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgRmlyc3RB
cmd1bWVudCwKICAgICAgICAgfTsKIAotICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGRlZmF1
bHRDYXBhY2l0eSA9IDUxMiAqIDEwMjQ7CiAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgY29t
bWl0U2l6ZSA9IDE2ICogMTAyNDsKICAgICAgICAgLy8gQWxsb3cgOGsgb2YgZXhjZXNzIHJlZ2lz
dGVycyBiZWZvcmUgd2Ugc3RhcnQgdHJ5aW5nIHRvIHJlYXAgdGhlIHN0YWNrCiAgICAgICAgIHN0
YXRpYyBjb25zdCBwdHJkaWZmX3QgbWF4RXhjZXNzQ2FwYWNpdHkgPSA4ICogMTAyNDsKIAotICAg
ICAgICBKU1N0YWNrKFZNJiwgc2l6ZV90IGNhcGFjaXR5ID0gZGVmYXVsdENhcGFjaXR5KTsKLSAg
ICAgICAgfkpTU3RhY2soKTsKKyAgICAgICAgSlNTdGFjayhWTSYpOwogICAgICAgICAKKyAgICAg
ICAgYm9vbCBlbnN1cmVDYXBhY2l0eUZvcihSZWdpc3RlciogbmV3VG9wT2ZTdGFjayk7CisKKyAg
ICAgICAgYm9vbCBjb250YWluc0FkZHJlc3MoUmVnaXN0ZXIqIGFkZHJlc3MpIHsgcmV0dXJuIChs
b3dBZGRyZXNzKCkgPD0gYWRkcmVzcyAmJiBhZGRyZXNzIDwgaGlnaEFkZHJlc3MoKSk7IH0KKyAg
ICAgICAgc3RhdGljIHNpemVfdCBjb21taXR0ZWRCeXRlQ291bnQoKTsKKworI2lmICFFTkFCTEUo
TExJTlRfQ19MT09QKQorICAgICAgICB2b2lkIGdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNl
cnZhdGl2ZVJvb3RzJikgeyB9CisgICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMo
Q29uc2VydmF0aXZlUm9vdHMmLCBKSVRTdHViUm91dGluZVNldCYsIENvZGVCbG9ja1NldCYpIHsg
fQorICAgICAgICB2b2lkIHNhbml0aXplU3RhY2soKSB7IH0KKyAgICAgICAgc3RhdGljIHZvaWQg
aW5pdGlhbGl6ZVRocmVhZGluZygpIHsgfQorI2Vsc2UKKyAgICAgICAgfkpTU3RhY2soKTsKKwog
ICAgICAgICB2b2lkIGdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJik7
CiAgICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMm
LCBKSVRTdHViUm91dGluZVNldCYsIENvZGVCbG9ja1NldCYpOwogICAgICAgICB2b2lkIHNhbml0
aXplU3RhY2soKTsKIAotICAgICAgICBSZWdpc3RlciogZ2V0QmFzZU9mU3RhY2soKSBjb25zdAor
ICAgICAgICBSZWdpc3RlciogYmFzZU9mU3RhY2soKSBjb25zdAogICAgICAgICB7CiAgICAgICAg
ICAgICByZXR1cm4gaGlnaEFkZHJlc3MoKSAtIDE7CiAgICAgICAgIH0KIAogICAgICAgICBzaXpl
X3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGhpZ2hBZGRyZXNzKCkgLSBsb3dBZGRyZXNzKCk7IH0K
IAotICAgICAgICBib29sIGdyb3coUmVnaXN0ZXIqKTsKLSAgICAgICAgCi0gICAgICAgIHN0YXRp
YyBzaXplX3QgY29tbWl0dGVkQnl0ZUNvdW50KCk7CiAgICAgICAgIHN0YXRpYyB2b2lkIGluaXRp
YWxpemVUaHJlYWRpbmcoKTsKIAotICAgICAgICBSZWdpc3RlciogZ2V0VG9wT2ZGcmFtZShDYWxs
RnJhbWUqKTsKLSAgICAgICAgUmVnaXN0ZXIqIGdldFN0YXJ0T2ZGcmFtZShDYWxsRnJhbWUqKTsK
LSAgICAgICAgUmVnaXN0ZXIqIGdldFRvcE9mU3RhY2soKTsKLQotICAgICAgICBib29sIGVudHJ5
Q2hlY2soY2xhc3MgQ29kZUJsb2NrKiwgaW50KTsKKyAgICAgICAgdm9pZCBzZXRSZXNlcnZlZFpv
bmVTaXplKHNpemVfdCk7CiAKLSAgICAgICAgQ2FsbEZyYW1lKiBwdXNoRnJhbWUoY2xhc3MgQ29k
ZUJsb2NrKiwgSlNTY29wZSosIGludCBhcmdzQ291bnQsIEpTT2JqZWN0KiBjYWxsZWUpOwotCi0g
ICAgICAgIHZvaWQgcG9wRnJhbWUoQ2FsbEZyYW1lKik7Ci0KLSAgICAgICAgYm9vbCBjb250YWlu
c0FkZHJlc3MoUmVnaXN0ZXIqIGFkZHJlc3MpIHsgcmV0dXJuIChsb3dBZGRyZXNzKCkgPD0gYWRk
cmVzcyAmJiBhZGRyZXNzIDw9IGhpZ2hBZGRyZXNzKCkpOyB9Ci0KLSAgICAgICAgdm9pZCBlbmFi
bGVFcnJvclN0YWNrUmVzZXJ2ZSgpOwotICAgICAgICB2b2lkIGRpc2FibGVFcnJvclN0YWNrUmVz
ZXJ2ZSgpOwotCi0jaWYgRU5BQkxFKERFQlVHX0pTU1RBQ0spCi0gICAgICAgIHZvaWQgaW5zdGFs
bEZlbmNlKENhbGxGcmFtZSosIGNvbnN0IGNoYXIgKmZ1bmN0aW9uID0gIiIsIGludCBsaW5lTm8g
PSAwKTsKLSAgICAgICAgdm9pZCB2YWxpZGF0ZUZlbmNlKENhbGxGcmFtZSosIGNvbnN0IGNoYXIg
KmZ1bmN0aW9uID0gIiIsIGludCBsaW5lTm8gPSAwKTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGlu
dCBGZW5jZVNpemUgPSA0OwotI2Vsc2UgLy8gIUVOQUJMRShERUJVR19KU1NUQUNLKQotICAgICAg
ICB2b2lkIGluc3RhbGxGZW5jZShDYWxsRnJhbWUqLCBjb25zdCBjaGFyKiA9ICIiLCBpbnQgPSAw
KSB7IH0KLSAgICAgICAgdm9pZCB2YWxpZGF0ZUZlbmNlKENhbGxGcmFtZSosIGNvbnN0IGNoYXIq
ID0gIiIsIGludCA9IDApIHsgfQotI2VuZGlmIC8vICFFTkFCTEUoREVCVUdfSlNTVEFDSykKKyAg
ICAgICAgaW5saW5lIFJlZ2lzdGVyKiB0b3BPZlN0YWNrKCk7CisjZW5kaWYgLy8gRU5BQkxFKExM
SU5UX0NfTE9PUCkKIAogICAgIHByaXZhdGU6CisKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQog
ICAgICAgICBSZWdpc3RlciogbG93QWRkcmVzcygpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBtX2VuZDsKKyAgICAgICAgICAgIHJldHVybiBtX2VuZCArIDE7CiAgICAgICAg
IH0KIAogICAgICAgICBSZWdpc3RlciogaGlnaEFkZHJlc3MoKSBjb25zdAogICAgICAgICB7CiAg
ICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdF9wdHI8UmVnaXN0ZXIqPihzdGF0aWNf
Y2FzdDxjaGFyKj4obV9yZXNlcnZhdGlvbi5iYXNlKCkpICsgbV9yZXNlcnZhdGlvbi5zaXplKCkp
OwogICAgICAgICB9CisjZWxzZQorICAgICAgICBSZWdpc3RlciogbG93QWRkcmVzcygpIGNvbnN0
OworICAgICAgICBSZWdpc3RlciogaGlnaEFkZHJlc3MoKSBjb25zdDsKKyNlbmRpZiAvLyBFTkFC
TEUoTExJTlRfQ19MT09QKQogCi0gICAgICAgIFJlZ2lzdGVyKiByZXNlcnZhdGlvbkVuZCgpIGNv
bnN0CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICAgICAgaW5saW5lIFJlZ2lzdGVyKiB0
b3BPZkZyYW1lRm9yKENhbGxGcmFtZSopOworCisgICAgICAgIFJlZ2lzdGVyKiByZXNlcnZhdGlv
blRvcCgpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIGNoYXIqIHJlc2VydmF0aW9uRW5k
ID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1fcmVzZXJ2YXRpb24uYmFzZSgpKTsKLSAgICAgICAgICAg
IHJldHVybiByZWludGVycHJldF9jYXN0X3B0cjxSZWdpc3Rlcio+KHJlc2VydmF0aW9uRW5kKTsK
KyAgICAgICAgICAgIGNoYXIqIHJlc2VydmF0aW9uVG9wID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1f
cmVzZXJ2YXRpb24uYmFzZSgpKTsKKyAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0
X3B0cjxSZWdpc3Rlcio+KHJlc2VydmF0aW9uVG9wKTsKICAgICAgICAgfQogCi0jaWYgRU5BQkxF
KERFQlVHX0pTU1RBQ0spCi0gICAgICAgIHN0YXRpYyBKU1ZhbHVlIGdlbmVyYXRlRmVuY2VWYWx1
ZShzaXplX3QgYXJnSW5kZXgpOwotICAgICAgICB2b2lkIGluc3RhbGxUcmFwc0FmdGVyRnJhbWUo
Q2FsbEZyYW1lKik7Ci0jZWxzZQotICAgICAgICB2b2lkIGluc3RhbGxUcmFwc0FmdGVyRnJhbWUo
Q2FsbEZyYW1lKikgeyB9Ci0jZW5kaWYKLQotICAgICAgICBib29sIGdyb3dTbG93Q2FzZShSZWdp
c3RlciopOwotICAgICAgICB2b2lkIHNocmluayhSZWdpc3RlciopOworICAgICAgICBib29sIGdy
b3coUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spOworICAgICAgICBib29sIGdyb3dTbG93Q2FzZShS
ZWdpc3RlciogbmV3VG9wT2ZTdGFjayk7CisgICAgICAgIHZvaWQgc2hyaW5rKFJlZ2lzdGVyKiBu
ZXdUb3BPZlN0YWNrKTsKICAgICAgICAgdm9pZCByZWxlYXNlRXhjZXNzQ2FwYWNpdHkoKTsKICAg
ICAgICAgdm9pZCBhZGRUb0NvbW1pdHRlZEJ5dGVDb3VudChsb25nKTsKIAotICAgICAgICB2b2lk
IHVwZGF0ZVN0YWNrTGltaXQoUmVnaXN0ZXIqIG5ld0VuZCk7CisgICAgICAgIHZvaWQgc2V0U3Rh
Y2tMaW1pdChSZWdpc3RlciogbmV3VG9wT2ZTdGFjayk7CisjZW5kaWYgLy8gRU5BQkxFKExMSU5U
X0NfTE9PUCkKIAogICAgICAgICBWTSYgbV92bTsKKyAgICAgICAgQ2FsbEZyYW1lKiYgbV90b3BD
YWxsRnJhbWU7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKICAgICAgICAgUmVnaXN0ZXIqIG1f
ZW5kOwotICAgICAgICBSZWdpc3RlciogbV9jb21taXRFbmQ7Ci0gICAgICAgIFJlZ2lzdGVyKiBt
X3VzZWFibGVFbmQ7CisgICAgICAgIFJlZ2lzdGVyKiBtX2NvbW1pdFRvcDsKICAgICAgICAgUGFn
ZVJlc2VydmF0aW9uIG1fcmVzZXJ2YXRpb247Ci0gICAgICAgIENhbGxGcmFtZSomIG1fdG9wQ2Fs
bEZyYW1lOwogICAgICAgICBSZWdpc3RlciogbV9sYXN0U3RhY2tUb3A7CisgICAgICAgIHB0cmRp
ZmZfdCBtX3Jlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVyczsKKyNlbmRpZiAvLyBFTkFCTEUoTExJ
TlRfQ19MT09QKQogCiAgICAgICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7
CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9K
U1N0YWNrSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3Rh
Y2tJbmxpbmVzLmgKaW5kZXggNWEyYWZmMTE3MWRkMWRiMjYzN2RjMWI4OTViYTNhZjM1ZDVjZTQz
Ni4uYjA3NGIzN2ViMGIwZjZlZjgxOGE4Y2FiMjk5MWFiNDZmZDczZGZmZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2tJbmxpbmVzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2tJbmxpbmVzLmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMzLDI2MiArMzMsNjUgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWlubGluZSBSZWdp
c3RlciogSlNTdGFjazo6Z2V0VG9wT2ZGcmFtZShDYWxsRnJhbWUqIGZyYW1lKQoraW5saW5lIGJv
b2wgSlNTdGFjazo6ZW5zdXJlQ2FwYWNpdHlGb3IoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCiB7
Ci0gICAgaWYgKFVOTElLRUxZKCFmcmFtZSkpCi0gICAgICAgIHJldHVybiBnZXRCYXNlT2ZTdGFj
aygpOwotICAgIHJldHVybiBmcmFtZS0+ZnJhbWVFeHRlbnQoKTsKLX0KLQotaW5saW5lIFJlZ2lz
dGVyKiBKU1N0YWNrOjpnZXRUb3BPZlN0YWNrKCkKLXsKLSAgICByZXR1cm4gZ2V0VG9wT2ZGcmFt
ZShtX3RvcENhbGxGcmFtZSk7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICByZXR1cm4g
Z3JvdyhuZXdUb3BPZlN0YWNrKTsKKyNlbHNlCisgICAgQVNTRVJUKHd0ZlRocmVhZERhdGEoKS5z
dGFjaygpLmlzR3Jvd2luZ0Rvd253YXJkKCkpOworICAgIHJldHVybiBuZXdUb3BPZlN0YWNrID49
IG1fdm0uc3RhY2tMaW1pdCgpOworI2VuZGlmCiB9CiAKLWlubGluZSBSZWdpc3RlciogSlNTdGFj
azo6Z2V0U3RhcnRPZkZyYW1lKENhbGxGcmFtZSogZnJhbWUpCi17Ci0gICAgQ2FsbEZyYW1lKiBj
YWxsZXJGcmFtZSA9IGZyYW1lLT5jYWxsZXJGcmFtZVNraXBwaW5nVk1FbnRyeVNlbnRpbmVsKCk7
Ci0gICAgcmV0dXJuIGdldFRvcE9mRnJhbWUoY2FsbGVyRnJhbWUpOwotfQorI2lmIEVOQUJMRShM
TElOVF9DX0xPT1ApCiAKLWlubGluZSBib29sIEpTU3RhY2s6OmVudHJ5Q2hlY2soY2xhc3MgQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIGludCBhcmdzQ291bnQpCitpbmxpbmUgUmVnaXN0ZXIqIEpTU3Rh
Y2s6OnRvcE9mRnJhbWVGb3IoQ2FsbEZyYW1lKiBmcmFtZSkKIHsKLSAgICBSZWdpc3Rlciogb2xk
RW5kID0gZ2V0VG9wT2ZTdGFjaygpOwotCi0gICAgLy8gRW5zdXJlIHRoYXQgd2UgaGF2ZSBlbm91
Z2ggc3BhY2UgZm9yIHRoZSBwYXJhbWV0ZXJzOgotICAgIHNpemVfdCBwYWRkZWRBcmdzQ291bnQg
PSBhcmdzQ291bnQ7Ci0gICAgaWYgKGNvZGVCbG9jaykgewotICAgICAgICBzaXplX3QgbnVtUGFy
YW1ldGVycyA9IGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpOwotICAgICAgICBpZiAocGFkZGVk
QXJnc0NvdW50IDwgbnVtUGFyYW1ldGVycykKLSAgICAgICAgICAgIHBhZGRlZEFyZ3NDb3VudCA9
IG51bVBhcmFtZXRlcnM7Ci0gICAgfQotCi0gICAgUmVnaXN0ZXIqIG5ld0NhbGxGcmFtZVNsb3Qg
PSBvbGRFbmQgLSBwYWRkZWRBcmdzQ291bnQgLSAoMiAqIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRl
clNpemUpICsgMTsKLQotI2lmIEVOQUJMRShERUJVR19KU1NUQUNLKQotICAgIG5ld0NhbGxGcmFt
ZVNsb3QgLT0gSlNTdGFjazo6RmVuY2VTaXplOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisg
ICAgaWYgKFVOTElLRUxZKCFmcmFtZSkpCisgICAgICAgIHJldHVybiBiYXNlT2ZTdGFjaygpOwog
I2VuZGlmCi0KLSAgICBSZWdpc3RlciogbmV3RW5kID0gbmV3Q2FsbEZyYW1lU2xvdDsKLSAgICBp
ZiAoISFjb2RlQmxvY2spCi0gICAgICAgIG5ld0VuZCArPSB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2Nh
bChjb2RlQmxvY2stPmZyYW1lUmVnaXN0ZXJDb3VudCgpKS5vZmZzZXQoKTsKLQotICAgIC8vIEVu
c3VyZSB0aGF0IHdlIGhhdmUgdGhlIG5lZWRlZCBzdGFjayBjYXBhY2l0eSB0byBwdXNoIHRoZSBu
ZXcgZnJhbWU6Ci0gICAgaWYgKCFncm93KG5ld0VuZCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBmcmFtZS0+dG9wT2ZGcmFtZSgpIC0gMTsK
IH0KIAotaW5saW5lIENhbGxGcmFtZSogSlNTdGFjazo6cHVzaEZyYW1lKGNsYXNzIENvZGVCbG9j
ayogY29kZUJsb2NrLCBKU1Njb3BlKiBzY29wZSwgaW50IGFyZ3NDb3VudCwgSlNPYmplY3QqIGNh
bGxlZSkKK2lubGluZSBSZWdpc3RlciogSlNTdGFjazo6dG9wT2ZTdGFjaygpCiB7Ci0gICAgQVNT
RVJUKCEhc2NvcGUpOwotICAgIFJlZ2lzdGVyKiBvbGRFbmQgPSBnZXRUb3BPZlN0YWNrKCk7Ci0K
LSAgICAvLyBFbnN1cmUgdGhhdCB3ZSBoYXZlIGVub3VnaCBzcGFjZSBmb3IgdGhlIHBhcmFtZXRl
cnM6Ci0gICAgc2l6ZV90IHBhZGRlZEFyZ3NDb3VudCA9IGFyZ3NDb3VudDsKLSAgICBpZiAoY29k
ZUJsb2NrKSB7Ci0gICAgICAgIHNpemVfdCBudW1QYXJhbWV0ZXJzID0gY29kZUJsb2NrLT5udW1Q
YXJhbWV0ZXJzKCk7Ci0gICAgICAgIGlmIChwYWRkZWRBcmdzQ291bnQgPCBudW1QYXJhbWV0ZXJz
KQotICAgICAgICAgICAgcGFkZGVkQXJnc0NvdW50ID0gbnVtUGFyYW1ldGVyczsKLSAgICB9Ci0K
LSAgICBSZWdpc3RlciogbmV3Q2FsbEZyYW1lU2xvdCA9IG9sZEVuZCAtIHBhZGRlZEFyZ3NDb3Vu
dCAtICgyICogSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSkgKyAxOwotCi0jaWYgRU5BQkxF
KERFQlVHX0pTU1RBQ0spCi0gICAgbmV3Q2FsbEZyYW1lU2xvdCAtPSBKU1N0YWNrOjpGZW5jZVNp
emU7Ci0jZW5kaWYKLQotICAgIFJlZ2lzdGVyKiBuZXdFbmQgPSBuZXdDYWxsRnJhbWVTbG90Owot
ICAgIGlmICghIWNvZGVCbG9jaykKLSAgICAgICAgbmV3RW5kICs9IHZpcnR1YWxSZWdpc3RlckZv
ckxvY2FsKGNvZGVCbG9jay0+ZnJhbWVSZWdpc3RlckNvdW50KCkpLm9mZnNldCgpOwotCi0gICAg
Ly8gRW5zdXJlIHRoYXQgd2UgaGF2ZSB0aGUgbmVlZGVkIHN0YWNrIGNhcGFjaXR5IHRvIHB1c2gg
dGhlIG5ldyBmcmFtZToKLSAgICBpZiAoIWdyb3cobmV3RW5kKSkKLSAgICAgICAgcmV0dXJuIDA7
Ci0KLSAgICAvLyBDb21wdXRlIHRoZSBhZGRyZXNzIG9mIHRoZSBuZXcgVk0gc2VudGluZWwgZnJh
bWUgZm9yIHRoaXMgaW52b2NhdGlvbjoKLSAgICBDYWxsRnJhbWUqIG5ld1ZNRW50cnlTZW50aW5l
bEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUobmV3Q2FsbEZyYW1lU2xvdCArIHBhZGRlZEFyZ3ND
b3VudCArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpOwotICAgIEFTU0VSVCghIW5ld1ZN
RW50cnlTZW50aW5lbEZyYW1lKTsKLQotICAgIC8vIENvbXB1dGUgdGhlIGFkZHJlc3Mgb2YgdGhl
IG5ldyBmcmFtZSBmb3IgdGhpcyBpbnZvY2F0aW9uOgotICAgIENhbGxGcmFtZSogbmV3Q2FsbEZy
YW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUobmV3Q2FsbEZyYW1lU2xvdCk7Ci0gICAgQVNTRVJUKCEh
bmV3Q2FsbEZyYW1lKTsKLQotICAgIC8vIFRoZSBjYWxsZXIgZnJhbWUgc2hvdWxkIGFsd2F5cyBi
ZSB0aGUgcmVhbCBwcmV2aW91cyBmcmFtZSBvbiB0aGUgc3RhY2ssCi0gICAgLy8gYW5kIG5vdCBh
IHBvdGVudGlhbCBHbG9iYWxFeGVjIHRoYXQgd2FzIHBhc3NlZCBpbi4gUG9pbnQgY2FsbGVyRnJh
bWUgdG8KLSAgICAvLyB0aGUgdG9wIGZyYW1lIG9uIHRoZSBzdGFjay4KLSAgICBDYWxsRnJhbWUq
IGNhbGxlckZyYW1lID0gbV90b3BDYWxsRnJhbWU7Ci0KLSAgICAvLyBJbml0aWFsaXplIHRoZSBW
TSBzZW50aW5lbCBmcmFtZSBoZWFkZXI6Ci0gICAgbmV3Vk1FbnRyeVNlbnRpbmVsRnJhbWUtPmlu
aXRpYWxpemVWTUVudHJ5U2VudGluZWxGcmFtZShjYWxsZXJGcmFtZSk7Ci0KLSAgICAvLyBJbml0
aWFsaXplIHRoZSBjYWxsZWUgZnJhbWUgaGVhZGVyOgotICAgIG5ld0NhbGxGcmFtZS0+aW5pdChj
b2RlQmxvY2ssIDAsIHNjb3BlLCBuZXdWTUVudHJ5U2VudGluZWxGcmFtZSwgYXJnc0NvdW50LCBj
YWxsZWUpOwotCi0gICAgQVNTRVJUKCEhbmV3Q2FsbEZyYW1lLT5zY29wZSgpKTsKLQotICAgIC8v
IFBhZCBhZGRpdGlvbmFsIGFyZ3MgaWYgbmVlZGVkOgotICAgIC8vIE5vdGU6IHdlIG5lZWQgdG8g
c3VidHJhY3QgMSBmcm9tIGFyZ3NDb3VudCBhbmQgcGFkZGVkQXJnc0NvdW50IHRvCi0gICAgLy8g
ZXhjbHVkZSB0aGUgdGhpcyBwb2ludGVyLgotICAgIGZvciAoc2l6ZV90IGkgPSBhcmdzQ291bnQt
MTsgaSA8IHBhZGRlZEFyZ3NDb3VudC0xOyArK2kpCi0gICAgICAgIG5ld0NhbGxGcmFtZS0+c2V0
QXJndW1lbnQoaSwganNVbmRlZmluZWQoKSk7Ci0KLSAgICBpbnN0YWxsRmVuY2UobmV3Q2FsbEZy
YW1lLCBfX0ZVTkNUSU9OX18sIF9fTElORV9fKTsKLSAgICB2YWxpZGF0ZUZlbmNlKG5ld0NhbGxG
cmFtZSwgX19GVU5DVElPTl9fLCBfX0xJTkVfXyk7Ci0gICAgaW5zdGFsbFRyYXBzQWZ0ZXJGcmFt
ZShuZXdDYWxsRnJhbWUpOwotCi0gICAgLy8gUHVzaCB0aGUgbmV3IGZyYW1lOgotICAgIG1fdG9w
Q2FsbEZyYW1lID0gbmV3Q2FsbEZyYW1lOwotCi0gICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKKyAg
ICByZXR1cm4gdG9wT2ZGcmFtZUZvcihtX3RvcENhbGxGcmFtZSk7CiB9CiAKLWlubGluZSB2b2lk
IEpTU3RhY2s6OnBvcEZyYW1lKENhbGxGcmFtZSogZnJhbWUpCi17Ci0gICAgdmFsaWRhdGVGZW5j
ZShmcmFtZSwgX19GVU5DVElPTl9fLCBfX0xJTkVfXyk7Ci0KLSAgICAvLyBQb3Agb2ZmIHRoZSBj
YWxsZWUgZnJhbWUgYW5kIHRoZSBzZW50aW5lbCBmcmFtZS4KLSAgICBDYWxsRnJhbWUqIGNhbGxl
ckZyYW1lID0gZnJhbWUtPmNhbGxlckZyYW1lKCktPnZtRW50cnlTZW50aW5lbENhbGxlckZyYW1l
KCk7Ci0KLSAgICAvLyBQb3AgdG8gdGhlIGNhbGxlcjoKLSAgICBtX3RvcENhbGxGcmFtZSA9IGNh
bGxlckZyYW1lOwotCi0gICAgLy8gSWYgd2UgYXJlIHBvcHBpbmcgdGhlIHZlcnkgZmlyc3QgZnJh
bWUgZnJvbSB0aGUgc3RhY2sgaS5lLiBubyBtb3JlCi0gICAgLy8gZnJhbWVzIGJlZm9yZSB0aGlz
LCB0aGVuIHdlIGNhbiBub3cgc2FmZWx5IHNocmluayB0aGUgc3RhY2suIEluCi0gICAgLy8gdGhp
cyBjYXNlLCB3ZSdyZSBzaHJpbmtpbmcgYWxsIHRoZSB3YXkgdG8gdGhlIGJlZ2lubmluZyBzaW5j
ZSB0aGVyZQotICAgIC8vIGFyZSBubyBtb3JlIGZyYW1lcyBvbiB0aGUgc3RhY2suCi0gICAgaWYg
KCFjYWxsZXJGcmFtZSkKLSAgICAgICAgc2hyaW5rKGdldEJhc2VPZlN0YWNrKCkpOwotCi0gICAg
aW5zdGFsbFRyYXBzQWZ0ZXJGcmFtZShjYWxsZXJGcmFtZSk7Ci19Ci0KLWlubGluZSB2b2lkIEpT
U3RhY2s6OnNocmluayhSZWdpc3RlciogbmV3RW5kKQoraW5saW5lIHZvaWQgSlNTdGFjazo6c2hy
aW5rKFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKQogeworICAgIFJlZ2lzdGVyKiBuZXdFbmQgPSBu
ZXdUb3BPZlN0YWNrIC0gMTsKICAgICBpZiAobmV3RW5kID49IG1fZW5kKQogICAgICAgICByZXR1
cm47Ci0gICAgdXBkYXRlU3RhY2tMaW1pdChuZXdFbmQpOwotICAgIGlmIChtX2VuZCA9PSBnZXRC
YXNlT2ZTdGFjaygpICYmIChtX2NvbW1pdEVuZCAtIGdldEJhc2VPZlN0YWNrKCkpID49IG1heEV4
Y2Vzc0NhcGFjaXR5KQorICAgIHNldFN0YWNrTGltaXQobmV3VG9wT2ZTdGFjayk7CisgICAgLy8g
Tm90ZTogQ2xhbmcgY29tcGxhaW5zIG9mIGFuIHVucmVzb2x2ZWQgbGlua2FnZSB0byBtYXhFeGNl
c3NDYXBhY2l0eSBpZgorICAgIC8vIGludm9rZSBzdGQ6Om1heCgpIHdpdGggaXQgYXMgYW4gYXJn
dW1lbnQuIFRvIHdvcmsgYXJvdW5kIHRoaXMsIHdlIGZpcnN0CisgICAgLy8gYXNzaWduIHRoZSBj
b25zdGFudCB0byBhIGxvY2FsIHZhcmlhYmxlLCBhbmQgdXNlIHRoZSBsb2NhbCBpbnN0ZWFkLgor
ICAgIHB0cmRpZmZfdCBtYXhFeGNlc3NDYXBhY2l0eSA9IEpTU3RhY2s6Om1heEV4Y2Vzc0NhcGFj
aXR5OworICAgIHB0cmRpZmZfdCBtYXhFeGNlc3NJblJlZ2lzdGVycyA9IHN0ZDo6bWF4KG1heEV4
Y2Vzc0NhcGFjaXR5LCBtX3Jlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVycyk7CisgICAgaWYgKG1f
ZW5kID09IGJhc2VPZlN0YWNrKCkgJiYgKGhpZ2hBZGRyZXNzKCkgLSBtX2NvbW1pdFRvcCkgPj0g
bWF4RXhjZXNzSW5SZWdpc3RlcnMpCiAgICAgICAgIHJlbGVhc2VFeGNlc3NDYXBhY2l0eSgpOwog
fQogCi1pbmxpbmUgYm9vbCBKU1N0YWNrOjpncm93KFJlZ2lzdGVyKiBuZXdFbmQpCitpbmxpbmUg
Ym9vbCBKU1N0YWNrOjpncm93KFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKQogeworICAgIFJlZ2lz
dGVyKiBuZXdFbmQgPSBuZXdUb3BPZlN0YWNrIC0gMTsKICAgICBpZiAobmV3RW5kID49IG1fZW5k
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZ3Jvd1Nsb3dDYXNlKG5ld0VuZCk7
CisgICAgcmV0dXJuIGdyb3dTbG93Q2FzZShuZXdUb3BPZlN0YWNrKTsKIH0KIAotaW5saW5lIHZv
aWQgSlNTdGFjazo6dXBkYXRlU3RhY2tMaW1pdChSZWdpc3RlciogbmV3RW5kKQoraW5saW5lIHZv
aWQgSlNTdGFjazo6c2V0U3RhY2tMaW1pdChSZWdpc3RlciogbmV3VG9wT2ZTdGFjaykKIHsKKyAg
ICBSZWdpc3RlciogbmV3RW5kID0gbmV3VG9wT2ZTdGFjayAtIDE7CiAgICAgbV9lbmQgPSBuZXdF
bmQ7Ci0jaWYgVVNFKFNFUEFSQVRFX0NfQU5EX0pTX1NUQUNLKQotICAgIG1fdm0uc2V0SlNTdGFj
a0xpbWl0KG5ld0VuZCk7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICBtX3ZtLnNldEpT
U3RhY2tMaW1pdChuZXdUb3BPZlN0YWNrKTsKICNlbmRpZgogfQogCi0jaWYgRU5BQkxFKERFQlVH
X0pTU1RBQ0spCi1pbmxpbmUgSlNWYWx1ZSBKU1N0YWNrOjpnZW5lcmF0ZUZlbmNlVmFsdWUoc2l6
ZV90IGFyZ0luZGV4KQotewotICAgIHVuc2lnbmVkIGZlbmNlQml0cyA9IDB4ZmFjZWJhZDAgfCAo
KGFyZ0luZGV4KzEpICYgMHhmKTsKLSAgICBKU1ZhbHVlIGZlbmNlVmFsdWUgPSBKU1ZhbHVlKGZl
bmNlQml0cyk7Ci0gICAgcmV0dXJuIGZlbmNlVmFsdWU7Ci19Ci0KLS8vIFRoZSBKU1N0YWNrIGZl
bmNlcyBtZWNoYW5pc20gd29ya3MgYXMgZm9sbG93czoKLS8vIDEuIEEgZmVuY2UgaXMgYSBudW1i
ZXIgKEpTU3RhY2s6OkZlbmNlU2l6ZSkgb2YgSlNWYWx1ZXMgdGhhdCBhcmUgaW5pdGlhbGl6ZWQK
LS8vICAgIHdpdGggdmFsdWVzIGdlbmVyYXRlZCBieSBKU1N0YWNrOjpnZW5lcmF0ZUZlbmNlVmFs
dWUoKS4KLS8vIDIuIFdoZW4gcHVzaEZyYW1lKCkgaXMgY2FsbGVkLCB0aGUgZmVuY2UgaXMgaW5z
dGFsbGVkIGFmdGVyIHRoZSBtYXggZXh0ZW50Ci0vLyAgICBvZiB0aGUgcHJldmlvdXMgdG9wQ2Fs
bEZyYW1lIGFuZCB0aGUgbGFzdCBhcmcgb2YgdGhlIG5ldyBmcmFtZToKLS8vCi0vLyAgICAgICAg
ICAgICAgICAgICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLS8v
ICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tfAotLy8gICAgICAgICAgICAgICAgICAgICB8IEZyYW1lIEhlYWRlciBvZiBwcmV2aW91cyBm
cmFtZSAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8vICAgIHRvcENhbGxGcmFtZSAtLT4gfCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8IExv
Y2FscyBvZiBwcmV2aW91cyBmcmFtZSAgICAgICAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAg
ICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8vICAgICAgICAg
ICAgICAgICAgICAgfCAqKiogdGhlIEZlbmNlICoqKiAgICAgICAgICAgICAgICAgICAgfAotLy8g
ICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS18Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgVk0gZW50cnkgc2VudGluZWwgZnJhbWUgaGVh
ZGVyICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAgICAgICAgICAgICAgICAgICB8IEFyZ3Mgb2YgbmV3
IGZyYW1lICAgICAgICAgICAgICAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8vICAgICAgICAgICAgICAgICAg
ICAgfCBGcmFtZSBIZWFkZXIgb2YgbmV3IGZyYW1lICAgICAgICAgICAgfAotLy8gICAgICAgICAg
ICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAg
ICAgICAgICAgZnJhbWUgLS0+IHwgTG9jYWxzIG9mIG5ldyBmcmFtZSAgICAgICAgICAgICAgICAg
IHwKLS8vICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfAotLy8KLS8vIDMuIEluIHBvcEZyYW1lKCkgYW5kIGVsc2V3aGVyZSwgd2UgY2Fu
IGNhbGwgSlNTdGFjazo6dmFsaWRhdGVGZW5jZSgpIHRvCi0vLyAgICBhc3NlcnQgdGhhdCB0aGUg
ZmVuY2UgY29udGFpbnMgdGhlIHZhbHVlcyB3ZSBleHBlY3QuCi0KLWlubGluZSB2b2lkIEpTU3Rh
Y2s6Omluc3RhbGxGZW5jZShDYWxsRnJhbWUqIGZyYW1lLCBjb25zdCBjaGFyICpmdW5jdGlvbiwg
aW50IGxpbmVObykKLXsKLSAgICBVTlVTRURfUEFSQU0oZnVuY3Rpb24pOwotICAgIFVOVVNFRF9Q
QVJBTShsaW5lTm8pOwotICAgIFJlZ2lzdGVyKiBzdGFydE9mRnJhbWUgPSBnZXRTdGFydE9mRnJh
bWUoZnJhbWUpOwotCi0gICAgLy8gVGhlIGxhc3QgYXJnSW5kZXggaXMgYXQ6Ci0gICAgc2l6ZV90
IG1heEluZGV4ID0gZnJhbWUtPmFyZ0luZGV4Rm9yUmVnaXN0ZXIoc3RhcnRPZkZyYW1lKSArIDE7
Ci0gICAgc2l6ZV90IHN0YXJ0SW5kZXggPSBtYXhJbmRleCAtIEZlbmNlU2l6ZTsKLSAgICBmb3Ig
KHNpemVfdCBpID0gc3RhcnRJbmRleDsgaSA8IG1heEluZGV4OyArK2kpIHsKLSAgICAgICAgSlNW
YWx1ZSBmZW5jZVZhbHVlID0gZ2VuZXJhdGVGZW5jZVZhbHVlKGkpOwotICAgICAgICBmcmFtZS0+
c2V0QXJndW1lbnQoaSwgZmVuY2VWYWx1ZSk7Ci0gICAgfQotfQotCi1pbmxpbmUgdm9pZCBKU1N0
YWNrOjp2YWxpZGF0ZUZlbmNlKENhbGxGcmFtZSogZnJhbWUsIGNvbnN0IGNoYXIgKmZ1bmN0aW9u
LCBpbnQgbGluZU5vKQotewotICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbik7Ci0gICAgVU5VU0VE
X1BBUkFNKGxpbmVObyk7Ci0gICAgQVNTRVJUKCEhZnJhbWUtPnNjb3BlKCkpOwotICAgIFJlZ2lz
dGVyKiBzdGFydE9mRnJhbWUgPSBnZXRTdGFydE9mRnJhbWUoZnJhbWUpOwotICAgIHNpemVfdCBt
YXhJbmRleCA9IGZyYW1lLT5hcmdJbmRleEZvclJlZ2lzdGVyKHN0YXJ0T2ZGcmFtZSkgKyAxOwot
ICAgIHNpemVfdCBzdGFydEluZGV4ID0gbWF4SW5kZXggLSBGZW5jZVNpemU7Ci0gICAgZm9yIChz
aXplX3QgaSA9IHN0YXJ0SW5kZXg7IGkgPCBtYXhJbmRleDsgKytpKSB7Ci0gICAgICAgIEpTVmFs
dWUgZmVuY2VWYWx1ZSA9IGdlbmVyYXRlRmVuY2VWYWx1ZShpKTsKLSAgICAgICAgSlNWYWx1ZSBh
Y3R1YWxWYWx1ZSA9IGZyYW1lLT5nZXRBcmd1bWVudFVuc2FmZShpKTsKLSAgICAgICAgQVNTRVJU
KGZlbmNlVmFsdWUgPT0gYWN0dWFsVmFsdWUpOwotICAgIH0KLX0KLQotLy8gV2hlbiBkZWJ1Z2dp
bmcgdGhlIEpTU3RhY2ssIHdlIGluc3RhbGwgYmFkIHZhbHVlcyBhZnRlciB0aGUgZXh0ZW50IG9m
IHRoZQotLy8gdG9wQ2FsbEZyYW1lIGF0IHRoZSBlbmQgb2YgcHVzaEZyYW1lKCkgYW5kIHBvcEZy
YW1lKCkuIFRoZSBpbnRlbnRpb24gaXMKLS8vIHRvIHRyaWdnZXIgY3Jhc2hlcyBpbiB0aGUgZXZl
bnQgdGhhdCBtZW1vcnkgaW4gdGhpcyBzdXBwb3NlZGx5IHVudXNlZAotLy8gcmVnaW9uIGlzIHJl
YWQgYW5kIGNvbnN1bWVkIHdpdGhvdXQgcHJvcGVyIGluaXRpYWxpemF0aW9uLiBBZnRlciB0aGUg
dHJhcAotLy8gd29yZHMgYXJlIGluc3RhbGxlZCwgdGhlIHN0YWNrIGxvb2tzIGxpa2UgdGhpczoK
LS8vCi0vLyAgICAgICAgICAgICAgICAgICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAg
IHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
fAotLy8gICAgICAgICAgICAgICAgICAgICB8IEZyYW1lIEhlYWRlciBvZiBmcmFtZSAgICAgICB8
Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwK
LS8vICAgIHRvcENhbGxGcmFtZSAtLT4gfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAot
Ly8gICAgICAgICAgICAgICAgICAgICB8IExvY2FscyBvZiBmcmFtZSAgICAgICAgICAgICB8Ci0v
LyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8v
ICAgICAgICAgICAgICAgICAgICAgfCAqKiogVHJhcCB3b3JkcyAqKiogICAgICAgICAgfAotLy8g
ICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAg
ICAgICAgICAgICAgICAgICAgIHwgVW51c2VkIHNwYWNlIC4uLiAgICAgICAgICAgIHwKLS8vICAg
ICAgICAgICAgICAgICAgICAgfCAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgfAotCi1pbmxp
bmUgdm9pZCBKU1N0YWNrOjppbnN0YWxsVHJhcHNBZnRlckZyYW1lKENhbGxGcmFtZSogZnJhbWUp
Ci17Ci0gICAgUmVnaXN0ZXIqIHRvcE9mRnJhbWUgPSBnZXRUb3BPZkZyYW1lKGZyYW1lKTsKLSAg
ICBjb25zdCBpbnQgc2l6ZU9mVHJhcCA9IDY0OwotICAgIGludDMyX3QqIHN0YXJ0T2ZUcmFwID0g
cmVpbnRlcnByZXRfY2FzdDxpbnQzMl90Kj4odG9wT2ZGcmFtZSk7Ci0gICAgaW50MzJfdCogZW5k
T2ZUcmFwID0gc3RhcnRPZlRyYXAgLSBzaXplT2ZUcmFwOwotICAgIGludDMyX3QqIGVuZE9mQ29t
bWl0ZWRNZW1vcnkgPSByZWludGVycHJldF9jYXN0PGludDMyX3QqPihtX2NvbW1pdEVuZCk7Ci0K
LSAgICAvLyBNYWtlIHN1cmUgd2UncmUgbm90IGV4Y2VlZGluZyB0aGUgYW1vdW50IG9mIGF2YWls
YWJsZSBtZW1vcnkgdG8gd3JpdGUgdG86Ci0gICAgaWYgKGVuZE9mVHJhcCA8IGVuZE9mQ29tbWl0
ZWRNZW1vcnkpCi0gICAgICAgIGVuZE9mVHJhcCA9IGVuZE9mQ29tbWl0ZWRNZW1vcnk7Ci0KLSAg
ICAvLyBMYXkgdGhlIHRyYXBzOgotICAgIGludDMyX3QqIHAgPSBzdGFydE9mVHJhcDsKLSAgICB3
aGlsZSAocCA+IGVuZE9mVHJhcCkKLSAgICAgICAgKnAtLSA9IDB4YWJhZGNhZmU7IC8vIEEgYmFk
IHdvcmQgdG8gdHJpZ2dlciBhIGNyYXNoIGlmIGRlcmVmJ2VkLgotfQotI2VuZGlmIC8vIEVOQUJM
RShERUJVR19KU1NUQUNLKQorI2VuZGlmIC8vIEVOQUJMRShMTElOVF9DX0xPT1ApCiAKIH0gLy8g
bmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL1Byb3RvQ2FsbEZyYW1lLmNwcAppbmRleCBhMzYwMDE0Mzc4MTEwZDNlNDcyMGY4MGVlYTMz
NzZjN2E4NDNkN2Y5Li5mMGUwMmJhNGU0NzZmOTljYzkxM2IwNDYyYWQyNzk1MDA2MDlmYTNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJh
bWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxG
cmFtZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQcm90b0NhbGxGcmFtZS5oIgog
CiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKIAog
bmFtZXNwYWNlIEpTQyB7CiAKQEAgLTQzLDcgKzQ0LDkgQEAgdm9pZCBQcm90b0NhbGxGcmFtZTo6
aW5pdChDb2RlQmxvY2sqIGNvZGVCbG9jaywgSlNTY29wZSogc2NvcGUsIEpTT2JqZWN0KiBjYWxs
ZWUKICAgICAgICAgaWYgKHBhZGRlZEFyZ3NDb3VudCA8IG51bVBhcmFtZXRlcnMpCiAgICAgICAg
ICAgICBwYWRkZWRBcmdzQ291bnQgPSBudW1QYXJhbWV0ZXJzOwogICAgIH0KLSAgICB0aGlzLT5z
ZXRQYWRkZWRBcmdzQ291bnQocGFkZGVkQXJnc0NvdW50KTsKKyAgICAvLyBSb3VuZCB1cCBwYWRk
ZWRBcmdzQ291bnQgdG8ga2VlcCB0aGUgc3RhY2sgZnJhbWUgc2l6ZSBhbGlnbmVkLgorICAgIHBh
ZGRlZEFyZ3NDb3VudCA9IHJvdW5kQXJndW1lbnRDb3VudFRvQWxpZ25GcmFtZShwYWRkZWRBcmdz
Q291bnQpOworICAgIHRoaXMtPnNldFBhZGRlZEFyZ0NvdW50KHBhZGRlZEFyZ3NDb3VudCk7CiAg
ICAgdGhpcy0+Y2xlYXJDdXJyZW50VlBDKCk7CiAgICAgdGhpcy0+c2V0VGhpc1ZhbHVlKHRoaXNW
YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
UHJvdG9DYWxsRnJhbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90
b0NhbGxGcmFtZS5oCmluZGV4IGI3MTUxZWVmZmM1ZGNjYWEwMjAwOTc3MzA2YzcxYThlODdiYTk5
Y2IuLjU2MTI4NmIzZjliNTRiYTVhOTQ1YmIwYjA2ZDBhNWVjZDk0M2U2MzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5oCkBAIC01
Myw3ICs1Myw3IEBAIHN0cnVjdCBQcm90b0NhbGxGcmFtZSB7CiAgICAgaW50IGFyZ3VtZW50Q291
bnRJbmNsdWRpbmdUaGlzKCkgY29uc3QgeyByZXR1cm4gYXJnQ291bnRBbmRDb2RlT3JpZ2luVmFs
dWUucGF5bG9hZCgpOyB9CiAgICAgaW50IGFyZ3VtZW50Q291bnQoKSBjb25zdCB7IHJldHVybiBh
cmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygpIC0gMTsgfQogICAgIHZvaWQgc2V0QXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMoaW50IGNvdW50KSB7IGFyZ0NvdW50QW5kQ29kZU9yaWdpblZhbHVl
LnBheWxvYWQoKSA9IGNvdW50OyB9Ci0gICAgdm9pZCBzZXRQYWRkZWRBcmdzQ291bnQoc2l6ZV90
IGFyZ0NvdW50KSB7IHBhZGRlZEFyZ0NvdW50ID0gYXJnQ291bnQ7IH0KKyAgICB2b2lkIHNldFBh
ZGRlZEFyZ0NvdW50KHNpemVfdCBhcmdDb3VudCkgeyBwYWRkZWRBcmdDb3VudCA9IGFyZ0NvdW50
OyB9CiAKICAgICB2b2lkIGNsZWFyQ3VycmVudFZQQygpIHsgYXJnQ291bnRBbmRDb2RlT3JpZ2lu
VmFsdWUudGFnKCkgPSAwOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwZWIx
YjY1Zjc3YzNlY2I3N2IwZTM5NWE0NjdlNGJhMWVkMTg2ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcApA
QCAtMCwwICsxLDEzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXJpdHlDaGVja0ZhaWxSZXR1
cm5UaHVua3MuaCIKKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJBc3NlbWJseUhlbHBl
cnMuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQu
aCIKKworbmFtZXNwYWNlIEpTQyB7CisKK0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOjpBcml0
eUNoZWNrRmFpbFJldHVyblRodW5rcygpCisgICAgOiBtX25leHRTaXplKDApCit7Cit9CisKK0Fy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOjp+QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MoKSB7
IH0KKworQ29kZUxvY2F0aW9uTGFiZWwqIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOjpyZXR1
cm5QQ3NGb3IoCisgICAgVk0mIHZtLCB1bnNpZ25lZCBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1
ZGluZ1RoaXMpCit7CisgICAgQVNTRVJUKG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhp
cyA+PSAxKTsKKyAgICAKKyAgICBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgPSBX
VEY6OnJvdW5kVXBUb011bHRpcGxlT2YoCisgICAgICAgIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJz
KCksIG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcyk7CisgICAgCisgICAgeworICAg
ICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAgICBpZiAobnVt
RXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzIDwgbV9uZXh0U2l6ZSkKKyAgICAgICAgICAg
IHJldHVybiBtX3JldHVyblBDQXJyYXlzLmxhc3QoKS5nZXQoKTsKKyAgICB9CisgICAgCisgICAg
QVNTRVJUKCFpc0NvbXBpbGF0aW9uVGhyZWFkKCkpOworICAgIAorICAgIG51bUV4cGVjdGVkQXJn
dW1lbnRzSW5jbHVkaW5nVGhpcyA9IHN0ZDo6bWF4KAorICAgICAgICBudW1FeHBlY3RlZEFyZ3Vt
ZW50c0luY2x1ZGluZ1RoaXMsCisgICAgICAgIG1fbmV4dFNpemUgKiAyKTsKKyAgICAKKyAgICBB
c3NlbWJseUhlbHBlcnMgaml0KCZ2bSwgMCk7CisgICAgCisgICAgVmVjdG9yPEFzc2VtYmx5SGVs
cGVyczo6TGFiZWw+IGxhYmVsczsKKyAgICAKKyAgICBmb3IgKHVuc2lnbmVkIHNpemUgPSBtX25l
eHRTaXplOyBzaXplIDw9IG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpczsgc2l6ZSAr
PSBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpKSB7CisgICAgICAgIGxhYmVscy5hcHBlbmQoaml0
LmxhYmVsKCkpOworICAgICAgICAKKyAgICAgICAgaml0LmxvYWQzMigKKyAgICAgICAgICAgIEFz
c2VtYmx5SGVscGVyczo6QWRkcmVzcygKKyAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6
OnN0YWNrUG9pbnRlclJlZ2lzdGVyLAorICAgICAgICAgICAgICAgIChKU1N0YWNrOjpBcmd1bWVu
dENvdW50IC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpICogc2l6ZW9mKFJlZ2lzdGVy
KSArCisgICAgICAgICAgICAgICAgUGF5bG9hZE9mZnNldCksCisgICAgICAgICAgICBHUFJJbmZv
OjpyZWdUNCk7CisgICAgICAgIGppdC5hZGQzMigKKyAgICAgICAgICAgIEFzc2VtYmx5SGVscGVy
czo6VHJ1c3RlZEltbTMyKAorICAgICAgICAgICAgICAgIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRl
clNpemUgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSArIHNpemUgLSAxKSwKKyAgICAg
ICAgICAgIEdQUkluZm86OnJlZ1Q0LCBHUFJJbmZvOjpyZWdUMik7CisgICAgICAgIGppdC5sc2hp
ZnQzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigzKSwgR1BSSW5mbzo6cmVnVDIpOwor
ICAgICAgICBqaXQuYWRkUHRyKEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIs
IEdQUkluZm86OnJlZ1QyKTsKKyAgICAgICAgaml0LmxvYWRQdHIoR1BSSW5mbzo6cmVnVDIsIEdQ
UkluZm86OnJlZ1QyKTsKKyAgICAgICAgCisgICAgICAgIGppdC5hZGRQdHIoCisgICAgICAgICAg
ICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihzaXplICogc2l6ZW9mKFJlZ2lzdGVyKSks
CisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAg
ICAgICAgCisgICAgICAgIC8vIFRodW5rcyBsaWtlIG91cnMgd2FudCB0byB1c2UgdGhlIHJldHVy
biBQQyB0byBmaWd1cmUgb3V0IHdoZXJlIHRoaW5ncworICAgICAgICAvLyB3ZXJlIHNhdmVkLiBT
bywgd2UgcGF5IGl0IGZvcndhcmQuCisgICAgICAgIGppdC5zdG9yZTMyKAorICAgICAgICAgICAg
R1BSSW5mbzo6cmVnVDQsCisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoCisg
ICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwKKyAg
ICAgICAgICAgICAgICAoSlNTdGFjazo6QXJndW1lbnRDb3VudCAtIEpTU3RhY2s6OkNhbGxlckZy
YW1lQW5kUENTaXplKSAqIHNpemVvZihSZWdpc3RlcikgKworICAgICAgICAgICAgICAgIFBheWxv
YWRPZmZzZXQpKTsKKyAgICAgICAgCisgICAgICAgIGppdC5qdW1wKEdQUkluZm86OnJlZ1QyKTsK
KyAgICB9CisgICAgCisgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKHZtLCAmaml0LCBHTE9CQUxf
VEhVTktfSUQpOworICAgIAorICAgIHVuc2lnbmVkIHJldHVyblBDc1NpemUgPSBudW1FeHBlY3Rl
ZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgLyBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpICsgMTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29kZUxvY2F0aW9uTGFiZWxbXT4gcmV0dXJuUENzID0KKyAg
ICAgICAgc3RkOjptYWtlX3VuaXF1ZTxDb2RlTG9jYXRpb25MYWJlbFtdPihyZXR1cm5QQ3NTaXpl
KTsKKyAgICBmb3IgKHVuc2lnbmVkIHNpemUgPSAwOyBzaXplIDw9IG51bUV4cGVjdGVkQXJndW1l
bnRzSW5jbHVkaW5nVGhpczsgc2l6ZSArPSBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpKSB7Cisg
ICAgICAgIHVuc2lnbmVkIGluZGV4ID0gc2l6ZSAvIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCk7
CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGluZGV4IDwgcmV0dXJuUENzU2l6ZSk7CisgICAgICAg
IGlmIChzaXplIDwgbV9uZXh0U2l6ZSkKKyAgICAgICAgICAgIHJldHVyblBDc1tpbmRleF0gPSBt
X3JldHVyblBDQXJyYXlzLmxhc3QoKVtpbmRleF07CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHJldHVyblBDc1tpbmRleF0gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2YobGFiZWxzWyhzaXplIC0g
bV9uZXh0U2l6ZSkgLyBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpXSk7CisgICAgfQorCisgICAg
Q29kZUxvY2F0aW9uTGFiZWwqIHJlc3VsdCA9IHJldHVyblBDcy5nZXQoKTsKKworICAgIHsKKyAg
ICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgbV9yZXR1
cm5QQ0FycmF5cy5hcHBlbmQoc3RkOjptb3ZlKHJldHVyblBDcykpOworICAgICAgICBtX3JlZnMu
YXBwZW5kKEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgKCJBcml0eSBjaGVjayBmYWlsIHJldHVy
biB0aHVua3MgZm9yIHVwIHRvIG51bUFyZ3MgPSAldSIsIG51bUV4cGVjdGVkQXJndW1lbnRzSW5j
bHVkaW5nVGhpcykpKTsKKyAgICAgICAgbV9uZXh0U2l6ZSA9IG51bUV4cGVjdGVkQXJndW1lbnRz
SW5jbHVkaW5nVGhpcyArIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCk7CisgICAgfQorICAgIAor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0NvZGVMb2NhdGlvbkxhYmVsIEFyaXR5Q2hlY2tGYWls
UmV0dXJuVGh1bmtzOjpyZXR1cm5QQ0ZvcihWTSYgdm0sIHVuc2lnbmVkIHNsb3RzVG9BZGQpCit7
CisgICAgcmV0dXJuIHJldHVyblBDc0Zvcih2bSwgc2xvdHNUb0FkZClbc2xvdHNUb0FkZCAvIHN0
YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCldOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2Vu
ZGlmIC8vIEVOQUJMRShKSVQpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmQwMzQxMzkxY2M0
MjU0N2VhMDYxYzRiOTEwNDY3NzQ1NzQ0NmYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oCkBAIC0wLDAgKzEs
NTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rc19oCisjZGVmaW5lIEFyaXR5Q2hlY2tGYWls
UmV0dXJuVGh1bmtzX2gKKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJDb2RlTG9jYXRp
b24uaCIKKyNpbmNsdWRlICJDb25jdXJyZW50SklUTG9jay5oIgorI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBBcml0eUNoZWNrRmFpbFJldHVyblRo
dW5rcyB7CitwdWJsaWM6CisgICAgQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MoKTsKKyAgICB+
QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MoKTsKKyAgICAKKyAgICAvLyBSZXR1cm5zIGEgcG9p
bnRlciB0byBhbiBhcnJheSBvZiByZXR1cm4gbGFiZWxzIGluZGV4ZWQgYnkgbWlzc2luZ0FyZ3Mu
CisgICAgQ29kZUxvY2F0aW9uTGFiZWwqIHJldHVyblBDc0ZvcihWTSYsIHVuc2lnbmVkIG51bUV4
cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcyk7CisgICAgCisgICAgQ29kZUxvY2F0aW9uTGFi
ZWwgcmV0dXJuUENGb3IoVk0mLCB1bnNpZ25lZCBzbG90c1RvQWRkKTsKKyAgICAKK3ByaXZhdGU6
CisgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDb2RlTG9jYXRpb25MYWJlbFtdPj4gbV9yZXR1
cm5QQ0FycmF5czsKKyAgICB1bnNpZ25lZCBtX25leHRTaXplOworICAgIFZlY3RvcjxNYWNyb0Fz
c2VtYmxlckNvZGVSZWY+IG1fcmVmczsKKyAgICBDb25jdXJyZW50SklUTG9jayBtX2xvY2s7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCisKKyNlbmRp
ZiAvLyBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rc19oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAppbmRleCBkZGYxZDYzNTkyMWJkNWQ1MzIzZmZl
Y2M4MWE3ZmRmODM2MmJjNjM2Li5kZDM2OTE3NWVlYzMwYmU0ZmJhODEzMTk1NjlkZWY3YTQ0OTlj
Yzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVy
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3Bw
CkBAIC0xMTAsNiArMTEwLDE3IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc0Nl
bGwoR1BSUmVnIGdwcikKICAgICBicmVha3BvaW50KCk7CiAgICAgY2hlY2tDZWxsLmxpbmsodGhp
cyk7CiB9CisKK3ZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRUYWdzSW5QbGFjZSgpCit7
CisgICAgSnVtcCBvayA9IGJyYW5jaDY0KEVxdWFsLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVn
aXN0ZXIsIFRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSk7CisgICAgYnJlYWtwb2ludCgpOwor
ICAgIG9rLmxpbmsodGhpcyk7CisgICAgCisgICAgb2sgPSBicmFuY2g2NChFcXVhbCwgR1BSSW5m
bzo6dGFnTWFza1JlZ2lzdGVyLCBUcnVzdGVkSW1tNjQoVGFnTWFzaykpOworICAgIGJyZWFrcG9p
bnQoKTsKKyAgICBvay5saW5rKHRoaXMpOworfQogI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKIHZv
aWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc0ludDMyKEdQUlJlZyBncHIpCiB7CkBAIC0x
NDUsNiArMTU2LDEwIEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc0NlbGwoR1BS
UmVnIGdwcikKICAgICBicmVha3BvaW50KCk7CiAgICAgY2hlY2tDZWxsLmxpbmsodGhpcyk7CiB9
CisKK3ZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRUYWdzSW5QbGFjZSgpCit7Cit9CiAj
ZW5kaWYgLy8gVVNFKEpTVkFMVUUzMl82NCkKIAogdm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFz
c2VydEhhc1ZhbGlkQ2FsbEZyYW1lKCkKQEAgLTE2MCw2ICsxNzUsMTMgQEAgdm9pZCBBc3NlbWJs
eUhlbHBlcnM6OmppdEFzc2VydElzTnVsbChHUFJSZWcgZ3ByKQogICAgIGJyZWFrcG9pbnQoKTsK
ICAgICBjaGVja051bGwubGluayh0aGlzKTsKIH0KKwordm9pZCBBc3NlbWJseUhlbHBlcnM6Ompp
dEFzc2VydEFyZ3VtZW50Q291bnRTYW5lKCkKK3sKKyAgICBKdW1wIG9rID0gYnJhbmNoMzIoQmVs
b3csIHBheWxvYWRGb3IoSlNTdGFjazo6QXJndW1lbnRDb3VudCksIFRydXN0ZWRJbW0zMigxMDAw
MDAwMCkpOworICAgIGJyZWFrcG9pbnQoKTsKKyAgICBvay5saW5rKHRoaXMpOworfQogI2VuZGlm
IC8vICFBU1NFUlRfRElTQUJMRUQKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRleCAzNmQ1ODMxMzkxMzQ1NmQ3NDE0
MTA3NTUxODM5N2ZmMmI2ODc0MTliLi42NWNiNzM5YTM1YzY3OTdiMzA2YjNkNWY5MDFlNDU5MjIx
NTVkMjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVs
cGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgK
QEAgLTU4LDggKzU4LDM2IEBAIHB1YmxpYzoKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaygpIHsg
cmV0dXJuIG1fY29kZUJsb2NrOyB9CiAgICAgVk0qIHZtKCkgeyByZXR1cm4gbV92bTsgfQogICAg
IEFzc2VtYmxlclR5cGVfVCYgYXNzZW1ibGVyKCkgeyByZXR1cm4gbV9hc3NlbWJsZXI7IH0KLSAg
ICAKKworICAgIHZvaWQgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKQorICAgIHsKKyAgICAg
ICAgLy8gVGhpcyBjaGVjayBpcyBib3RoIHVubmVlZGVkIGFuZCBoYXJkZXIgdG8gd3JpdGUgY29y
cmVjdGx5IGZvciBBUk02NAorI2lmICFkZWZpbmVkKE5ERUJVRykgJiYgIUNQVShBUk02NCkKKyAg
ICAgICAgSnVtcCBzdGFja1BvaW50ZXJBbGlnbmVkID0gYnJhbmNoVGVzdFB0cihaZXJvLCBzdGFj
a1BvaW50ZXJSZWdpc3RlciwgVHJ1c3RlZEltbTMyKDB4ZikpOworICAgICAgICBicmVha3BvaW50
KCk7CisgICAgICAgIHN0YWNrUG9pbnRlckFsaWduZWQubGluayh0aGlzKTsKKyNlbmRpZgorICAg
IH0KKwogI2lmIENQVShYODZfNjQpIHx8IENQVShYODYpCisgICAgc2l6ZV90IHByb2xvZ3VlU3Rh
Y2tQb2ludGVyRGVsdGEoKQorICAgIHsKKyAgICAgICAgLy8gUHJvbG9ndWUgb25seSBzYXZlcyB0
aGUgZnJhbWVQb2ludGVyUmVnaXN0ZXIKKyAgICAgICAgcmV0dXJuIHNpemVvZih2b2lkKik7Cisg
ICAgfQorCisgICAgdm9pZCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpCisgICAgeworICAgICAgICBw
dXNoKGZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgbW92ZShzdGFja1BvaW50ZXJSZWdp
c3RlciwgZnJhbWVQb2ludGVyUmVnaXN0ZXIpOworICAgIH0KKworICAgIHZvaWQgZW1pdEZ1bmN0
aW9uRXBpbG9ndWUoKQorICAgIHsKKyAgICAgICAgbW92ZShmcmFtZVBvaW50ZXJSZWdpc3Rlciwg
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBwb3AoZnJhbWVQb2ludGVyUmVnaXN0ZXIp
OworICAgIH0KKwogICAgIHZvaWQgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUlJl
ZyByZWcpCiAgICAgewogICAgICAgICBwb3AocmVnKTsKQEAgLTc3LDYgKzEwNSwyNCBAQCBwdWJs
aWM6CiAjZW5kaWYgLy8gQ1BVKFg4Nl82NCkgfHwgQ1BVKFg4NikKIAogI2lmIENQVShBUk0pIHx8
IENQVShBUk02NCkKKyAgICBzaXplX3QgcHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSgpCisgICAg
eworICAgICAgICAvLyBQcm9sb2d1ZSBzYXZlcyB0aGUgZnJhbWVQb2ludGVyUmVnaXN0ZXIgYW5k
IGxpbmtSZWdpc3RlcgorICAgICAgICByZXR1cm4gMiAqIHNpemVvZih2b2lkKik7CisgICAgfQor
CisgICAgdm9pZCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpCisgICAgeworICAgICAgICBwdXNoUGFp
cihmcmFtZVBvaW50ZXJSZWdpc3RlciwgbGlua1JlZ2lzdGVyKTsKKyAgICAgICAgbW92ZShzdGFj
a1BvaW50ZXJSZWdpc3RlciwgZnJhbWVQb2ludGVyUmVnaXN0ZXIpOworICAgIH0KKworICAgIHZv
aWQgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKQorICAgIHsKKyAgICAgICAgbW92ZShmcmFtZVBvaW50
ZXJSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBwb3BQYWlyKGZyYW1l
UG9pbnRlclJlZ2lzdGVyLCBsaW5rUmVnaXN0ZXIpOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJ
TkUgdm9pZCBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoUmVnaXN0ZXJJRCByZWcpCiAg
ICAgewogICAgICAgICBtb3ZlKGxpbmtSZWdpc3RlciwgcmVnKTsKQEAgLTk0LDYgKzE0MCwxMiBA
QCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIENQVShNSVBTKQorICAgIHNpemVfdCBwcm9sb2d1ZVN0
YWNrUG9pbnRlckRlbHRhKCkKKyAgICB7CisgICAgICAgIC8vIFByb2xvZ3VlIHNhdmVzIHRoZSBm
cmFtZVBvaW50ZXJSZWdpc3RlciBhbmQgcmV0dXJuQWRkcmVzc1JlZ2lzdGVyCisgICAgICAgIHJl
dHVybiAyICogc2l6ZW9mKHZvaWQqKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQg
cHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKFJlZ2lzdGVySUQgcmVnKQogICAgIHsKICAg
ICAgICAgbW92ZShyZXR1cm5BZGRyZXNzUmVnaXN0ZXIsIHJlZyk7CkBAIC0xMTEsNiArMTYzLDEy
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgQ1BVKFNINCkKKyAgICBzaXplX3QgcHJvbG9ndWVT
dGFja1BvaW50ZXJEZWx0YSgpCisgICAgeworICAgICAgICAvLyBQcm9sb2d1ZSBzYXZlcyB0aGUg
ZnJhbWVQb2ludGVyUmVnaXN0ZXIgYW5kIGxpbmsgcmVnaXN0ZXIKKyAgICAgICAgcmV0dXJuIDIg
KiBzaXplb2Yodm9pZCopOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBwcmVzZXJ2
ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoUmVnaXN0ZXJJRCByZWcpCiAgICAgewogICAgICAgICBt
X2Fzc2VtYmxlci5zdHNwcihyZWcpOwpAQCAtMTUwLDEwICsyMDgsNiBAQCBwdWJsaWM6CiAgICAg
ICAgIHN0b3JlUHRyKGZyb20sIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENh
bGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSkpOwogICAgIH0KIAotICAgIHZvaWQgZW1pdEdl
dFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlcklEIHRvKQotICAgIHsKLSAg
ICAgICAgbG9hZFB0cihBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJh
bWU6OnJldHVyblBDT2Zmc2V0KCkpLCB0byk7Ci0gICAgfQogICAgIHZvaWQgZW1pdFB1dFJldHVy
blBDVG9DYWxsRnJhbWVIZWFkZXIoUmVnaXN0ZXJJRCBmcm9tKQogICAgIHsKICAgICAgICAgc3Rv
cmVQdHIoZnJvbSwgQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1l
OjpyZXR1cm5QQ09mZnNldCgpKSk7CkBAIC0xNjMsNiArMjE3LDI5IEBAIHB1YmxpYzoKICAgICAg
ICAgc3RvcmVQdHIoZnJvbSwgQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2Fs
bEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CiAgICAgfQogCisgICAgLy8gZW1pdFB1dFRvQ2Fs
bEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUoKSBhbmQgcmVsYXRlZCBhcmUgdXNlZCB0byBhY2Nl
c3MgY2FsbGVlIGZyYW1lIGhlYWRlcgorICAgIC8vIGZpZWxkcyBiZWZvcmUgdGhlIGNvZGUgZnJv
bSBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpIGhhcyBleGVjdXRlZC4KKyAgICAvLyBGaXJzdCwgdGhl
IGFjY2VzcyBpcyB2aWEgdGhlIHN0YWNrIHBvaW50ZXIuIFNlY29uZCwgdGhlIGFkZHJlc3MgY2Fs
Y3VsYXRpb24gbXVzdCBhbHNvIHRha2UKKyAgICAvLyBpbnRvIGFjY291bnQgdGhhdCB0aGUgc3Rh
Y2sgcG9pbnRlciBtYXkgbm90IGhhdmUgYmVlbiBhZGp1c3RlZCBkb3duIGZvciB0aGUgcmV0dXJu
IFBDIGFuZC9vcgorICAgIC8vIGNhbGxlcidzIGZyYW1lIHBvaW50ZXIuIE9uIHNvbWUgcGxhdGZv
cm1zLCB0aGUgY2FsbGVlIGlzIHJlc3BvbnNpYmxlIGZvciBwdXNoaW5nIHRoZQorICAgIC8vICJs
aW5rIHJlZ2lzdGVyIiBjb250YWluaW5nIHRoZSByZXR1cm4gYWRkcmVzcyBpbiB0aGUgZnVuY3Rp
b24gcHJvbG9ndWUuCisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICB2b2lkIGVtaXRQdXRUb0NhbGxG
cmFtZUhlYWRlckJlZm9yZVByb2xvZ3VlKEdQUlJlZyBmcm9tLCBKU1N0YWNrOjpDYWxsRnJhbWVI
ZWFkZXJFbnRyeSBlbnRyeSkKKyAgICB7CisgICAgICAgIHN0b3JlUHRyKGZyb20sIEFkZHJlc3Mo
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGVudHJ5ICogc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXpl
b2YoUmVnaXN0ZXIpKSAtIHByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEoKSkpOworICAgIH0KKyNl
bHNlCisgICAgdm9pZCBlbWl0UHV0UGF5bG9hZFRvQ2FsbEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9n
dWUoR1BSUmVnIGZyb20sIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlckVudHJ5IGVudHJ5KQorICAg
IHsKKyAgICAgICAgc3RvcmVQdHIoZnJvbSwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3Rlciwg
ZW50cnkgKiBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpIC0gcHJvbG9n
dWVTdGFja1BvaW50ZXJEZWx0YSgpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2Ny
aXB0b3IsIGFzQml0cy5wYXlsb2FkKSkpOworICAgIH0KKworICAgIHZvaWQgZW1pdFB1dFRhZ1Rv
Q2FsbEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUoVHJ1c3RlZEltbTMyIHRhZywgSlNTdGFjazo6
Q2FsbEZyYW1lSGVhZGVyRW50cnkgZW50cnkpCisgICAgeworICAgICAgICBzdG9yZVB0cih0YWcs
IEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIGVudHJ5ICogc3RhdGljX2Nhc3Q8cHRyZGlm
Zl90PihzaXplb2YoUmVnaXN0ZXIpKSAtIHByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEoKSArIE9C
SkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSkpOworICAg
IH0KKyNlbmRpZgorCiAgICAgSnVtcCBicmFuY2hJZk5vdENlbGwoR1BSUmVnIHJlZykKICAgICB7
CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTE5NCw3ICsyNzEsNyBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIEFkZHJlc3MgdGFnRm9yKFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIpCiAgICAg
ewogICAgICAgICBBU1NFUlQodmlydHVhbFJlZ2lzdGVyLmlzVmFsaWQoKSk7Ci0gICAgICAgIHJl
dHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0ZXIu
b2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1
ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKTsKKyAgICAgICAgcmV0dXJuIEFkZHJlc3MoR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQoKSAqIHNpemVvZihS
ZWdpc3RlcikgKyBUYWdPZmZzZXQpOwogICAgIH0KICAgICBzdGF0aWMgQWRkcmVzcyB0YWdGb3Io
aW50IG9wZXJhbmQpCiAgICAgewpAQCAtMjA0LDcgKzI4MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgQWRkcmVzcyBwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIpCiAg
ICAgewogICAgICAgICBBU1NFUlQodmlydHVhbFJlZ2lzdGVyLmlzVmFsaWQoKSk7Ci0gICAgICAg
IHJldHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0
ZXIub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRW
YWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSk7CisgICAgICAgIHJldHVybiBBZGRyZXNz
KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0KCkgKiBz
aXplb2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCk7CiAgICAgfQogICAgIHN0YXRpYyBBZGRy
ZXNzIHBheWxvYWRGb3IoaW50IG9wZXJhbmQpCiAgICAgewpAQCAtMjk4LDYgKzM3NSw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIGppdEFzc2VydElzQ2VsbChHUFJSZWcpOwogICAgIHZvaWQgaml0QXNz
ZXJ0SGFzVmFsaWRDYWxsRnJhbWUoKTsKICAgICB2b2lkIGppdEFzc2VydElzTnVsbChHUFJSZWcp
OworICAgIHZvaWQgaml0QXNzZXJ0VGFnc0luUGxhY2UoKTsKKyAgICB2b2lkIGppdEFzc2VydEFy
Z3VtZW50Q291bnRTYW5lKCk7CiAjZWxzZQogICAgIHZvaWQgaml0QXNzZXJ0SXNJbnQzMihHUFJS
ZWcpIHsgfQogICAgIHZvaWQgaml0QXNzZXJ0SXNKU0ludDMyKEdQUlJlZykgeyB9CkBAIC0zMDYs
NiArMzg1LDggQEAgcHVibGljOgogICAgIHZvaWQgaml0QXNzZXJ0SXNDZWxsKEdQUlJlZykgeyB9
CiAgICAgdm9pZCBqaXRBc3NlcnRIYXNWYWxpZENhbGxGcmFtZSgpIHsgfQogICAgIHZvaWQgaml0
QXNzZXJ0SXNOdWxsKEdQUlJlZykgeyB9CisgICAgdm9pZCBqaXRBc3NlcnRUYWdzSW5QbGFjZSgp
IHsgfQorICAgIHZvaWQgaml0QXNzZXJ0QXJndW1lbnRDb3VudFNhbmUoKSB7IH0KICNlbmRpZgog
CiAgICAgLy8gVGhlc2UgbWV0aG9kcyBjb252ZXJ0IGJldHdlZW4gZG91YmxlcywgYW5kIGRvdWJs
ZXMgYm94ZWQgYW5kIEpTVmFsdWVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxw
ZXJzLmgKaW5kZXggODM2NTczYmUxZGY4MDc5MmZlODMwMGJiNTAwNzJmOTZhMzJhNDE5MC4uZDRh
NzVlY2EyMTY4MjU3ZWZiZjUwODY4ZGZhNmY5M2IwMjdlNWE0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0NDYWxsSGVscGVycy5oCkBAIC05NSw2ICs5NSwxMyBAQCBwdWJsaWM6CiAgICAg
ICAgIGFkZENhbGxBcmd1bWVudChhcmcyKTsKICAgICB9CiAgICAgCisgICAgQUxXQVlTX0lOTElO
RSB2b2lkIHNldHVwQXJndW1lbnRzKFRydXN0ZWRJbW1QdHIgYXJnMSwgR1BSUmVnIGFyZzIpCisg
ICAgeworICAgICAgICByZXNldENhbGxBcmd1bWVudHMoKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3Vt
ZW50KGFyZzEpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMik7CisgICAgfQorICAgIAog
ICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50cyhHUFJSZWcgYXJnMSwgR1BSUmVn
IGFyZzIsIEdQUlJlZyBhcmczKQogICAgIHsKICAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7
CkBAIC05MzksNiArOTQ2LDEyIEBAIHB1YmxpYzoKICAgICAgICAgbW92ZShhcmcxLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApOwogICAgIH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFy
Z3VtZW50cyhUcnVzdGVkSW1tUHRyIGFyZzEsIEdQUlJlZyBhcmcyKQorICAgIHsKKyAgICAgICAg
bW92ZShhcmcyLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBtb3ZlKGFyZzEsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgfQorICAgIAogICAgIEFMV0FZU19JTkxJTkUgdm9p
ZCBzZXR1cEFyZ3VtZW50cyhHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIpCiAgICAgewogICAgICAg
ICBzZXR1cFR3b1N0dWJBcmdzR1BSPEdQUkluZm86OmFyZ3VtZW50R1BSMCwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIxPihhcmcxLCBhcmcyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9F
eGVjdXRhYmxlQWxsb2NhdG9yLmgKaW5kZXggMDFiZTdjMWFhZWQ2MTM3NTBkNzg5Y2ZlZmU5YTI5
MDMwMTRjYmZjYS4uNTVmOWU3NzQ2NGEwMDkxM2JmMjkyNzBjZmMxYmI2ZTk1NDc0MGNjMiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgKQEAg
LTc4LDIxICs3OCw2IEBAIHZvaWQgcmVsZWFzZUV4ZWN1dGFibGVNZW1vcnkoVk0mKTsKIAogc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGppdEFsbG9jYXRpb25HcmFudWxlID0gMzI7CiAKLWlubGluZSBz
aXplX3Qgcm91bmRVcEFsbG9jYXRpb25TaXplKHNpemVfdCByZXF1ZXN0LCBzaXplX3QgZ3JhbnVs
YXJpdHkpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlQoKHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90
Pjo6bWF4KCkgLSBncmFudWxhcml0eSkgPiByZXF1ZXN0KTsKLSAgICAKLSAgICAvLyBSb3VuZCB1
cCB0byBuZXh0IHBhZ2UgYm91bmRhcnkKLSAgICBzaXplX3Qgc2l6ZSA9IHJlcXVlc3QgKyAoZ3Jh
bnVsYXJpdHkgLSAxKTsKLSAgICBzaXplID0gc2l6ZSAmIH4oZ3JhbnVsYXJpdHkgLSAxKTsKLSAg
ICBBU1NFUlQoc2l6ZSA+PSByZXF1ZXN0KTsKLSAgICByZXR1cm4gc2l6ZTsKLX0KLQotfQotCi1u
YW1lc3BhY2UgSlNDIHsKLQogdHlwZWRlZiBXVEY6Ok1ldGFBbGxvY2F0b3JIYW5kbGUgRXhlY3V0
YWJsZU1lbW9yeUhhbmRsZTsKIAogI2lmIEVOQUJMRShBU1NFTUJMRVIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5jcHAKaW5kZXggYzM1MDhiMDFkNzA0NDBkOTliMzIxNzE2Nzc4MzRiNDNhYzgwOGM1
OC4uMjg2MTc0NGEwNWZhZDE5NWM2Mjc1YWE0MDE1MGYzNGJkN2Y4NmRmNCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmNwcApAQCAtMzQsNiArMzQsNyBAQAogSlNDOjpNYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbjo6U1NFMkNoZWNrU3RhdGUgSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c19z
c2UyQ2hlY2tTdGF0ZSA9IE5vdENoZWNrZWRTU0UyOwogI2VuZGlmCiAKKyNpbmNsdWRlICJBcml0
eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1
ZGUgIkRGR0NhcGFiaWxpdGllcy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCkBAIC00Miwx
MSArNDMsMTMgQEAgSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6U1NFMkNoZWNrU3RhdGUg
SlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c19zc2UKICNpbmNsdWRlICJKU0FycmF5Lmgi
CiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNs
dWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIk9wZXJhdGlv
bnMuaCIKICNpbmNsdWRlICJSZXBhdGNoQnVmZmVyLmgiCiAjaW5jbHVkZSAiUmVzdWx0VHlwZS5o
IgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgogI2luY2x1ZGUgIlNsb3dQYXRoQ2FsbC5oIgor
I2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAjaW5jbHVkZSA8d3RmL0NyeXB0b2dyYXBoaWNh
bGx5UmFuZG9tTnVtYmVyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC05OCw2ICsxMDEs
NyBAQCB2b2lkIEpJVDo6ZW1pdEVudGVyT3B0aW1pemF0aW9uQ2hlY2soKQogICAgIEFTU0VSVCgh
bV9ieXRlY29kZU9mZnNldCk7CiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25PcHRpbWl6ZSwg
bV9ieXRlY29kZU9mZnNldCk7CiAgICAgc2tpcE9wdGltaXplLmFwcGVuZChicmFuY2hUZXN0UHRy
KFplcm8sIHJldHVyblZhbHVlR1BSKSk7CisgICAgbW92ZShyZXR1cm5WYWx1ZUdQUjIsIHN0YWNr
UG9pbnRlclJlZ2lzdGVyKTsKICAgICBqdW1wKHJldHVyblZhbHVlR1BSKTsKICAgICBza2lwT3B0
aW1pemUubGluayh0aGlzKTsKIH0KQEAgLTEyOCw2ICsxMzIsOSBAQCB2b2lkIEpJVDo6ZW1pdEVu
dGVyT3B0aW1pemF0aW9uQ2hlY2soKQogCiB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFz
cygpCiB7CisgICAgaml0QXNzZXJ0VGFnc0luUGxhY2UoKTsKKyAgICBqaXRBc3NlcnRBcmd1bWVu
dENvdW50U2FuZSgpOworICAgIAogICAgIEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbnNCZWdpbiA9
IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpOwogICAgIHVuc2lnbmVkIGluc3Ry
dWN0aW9uQ291bnQgPSBtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpOwogCkBAIC00
OTYsOCArNTAzLDcgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSVRD
b21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCiAgICAgaWYgKG1fcmFuZG9tR2VuZXJhdG9yLmdldFVp
bnQzMigpICYgMSkKICAgICAgICAgbm9wKCk7CiAKLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NB
ZnRlckNhbGwocmVnVDIpOwotICAgIGVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKHJl
Z1QyKTsKKyAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogICAgIGVtaXRQdXRJbW1lZGlhdGVU
b0NhbGxGcmFtZUhlYWRlcihtX2NvZGVCbG9jaywgSlNTdGFjazo6Q29kZUJsb2NrKTsKIAogICAg
IExhYmVsIGJlZ2luTGFiZWwodGhpcyk7CkBAIC01MDcsNyArNTEzLDcgQEAgQ29tcGlsYXRpb25S
ZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCiAg
ICAgc2FtcGxlSW5zdHJ1Y3Rpb24obV9jb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCkp
OwogI2VuZGlmCiAKLSAgICBKdW1wIHN0YWNrQ2hlY2s7CisgICAgSnVtcCBzdGFja092ZXJmbG93
OwogICAgIGlmIChtX2NvZGVCbG9jay0+Y29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUpIHsKICAg
ICAgICAgQVNTRVJUKG1fYnl0ZWNvZGVPZmZzZXQgPT0gKHVuc2lnbmVkKS0xKTsKICAgICAgICAg
aWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkgewpAQCAtNTI3LDEyICs1MzMsMTMgQEAgQ29tcGls
YXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZv
cnQpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBhZGRQdHIoVHJ1c3RlZElt
bTMyKHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGZyYW1lUmVnaXN0ZXJDb3VudEZvcihtX2NvZGVC
bG9jaykpLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBy
ZWdUMSk7Ci0gICAgICAgIHN0YWNrQ2hlY2sgPSBicmFuY2hQdHIoQWJvdmUsIEFic29sdXRlQWRk
cmVzcyhtX3ZtLT5hZGRyZXNzT2ZKU1N0YWNrTGltaXQoKSksIHJlZ1QxKTsKKyAgICAgICAgYWRk
UHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6
ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMSk7CisgICAgICAgIHN0YWNr
T3ZlcmZsb3cgPSBicmFuY2hQdHIoQWJvdmUsIEFic29sdXRlQWRkcmVzcyhtX3ZtLT5hZGRyZXNz
T2ZKU1N0YWNrTGltaXQoKSksIHJlZ1QxKTsKICAgICB9CiAKLSAgICBMYWJlbCBmdW5jdGlvbkJv
ZHkgPSBsYWJlbCgpOwotICAgIAorICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVy
T2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdp
c3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25t
ZW50KCk7CisKICAgICBwcml2YXRlQ29tcGlsZU1haW5QYXNzKCk7CiAgICAgcHJpdmF0ZUNvbXBp
bGVMaW5rUGFzcygpOwogICAgIHByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCk7CkBAIC01NDIsMTgg
KzU0OSwxNSBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJVENvbXBp
bGF0aW9uRWZmb3J0IGVmZm9ydCkKIAogICAgIExhYmVsIGFyaXR5Q2hlY2s7CiAgICAgaWYgKG1f
Y29kZUJsb2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSkgewotICAgICAgICBzdGFja0No
ZWNrLmxpbmsodGhpcyk7CisgICAgICAgIHN0YWNrT3ZlcmZsb3cubGluayh0aGlzKTsKICAgICAg
ICAgbV9ieXRlY29kZU9mZnNldCA9IDA7Ci0gICAgICAgIGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZy
YW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb25TdGFja0NoZWNrLCBtX2NvZGVCbG9jayk7
Ci0jaWZuZGVmIE5ERUJVRwotICAgICAgICBtX2J5dGVjb2RlT2Zmc2V0ID0gKHVuc2lnbmVkKS0x
OyAvLyBSZXNldCB0aGlzLCBpbiBvcmRlciB0byBndWFyZCBpdHMgdXNlIHdpdGggQVNTRVJUcy4K
LSNlbmRpZgotICAgICAgICBqdW1wKGZ1bmN0aW9uQm9keSk7CisgICAgICAgIGlmIChtYXhGcmFt
ZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIo
LW1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwor
ICAgICAgICBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24ob3Bl
cmF0aW9uVGhyb3dTdGFja092ZXJmbG93RXJyb3IsIG1fY29kZUJsb2NrKTsKIAogICAgICAgICBh
cml0eUNoZWNrID0gbGFiZWwoKTsKICAgICAgICAgc3RvcmU4KFRydXN0ZWRJbW0zMigwKSwgJm1f
Y29kZUJsb2NrLT5tX3Nob3VsZEFsd2F5c0JlSW5saW5lZCk7Ci0gICAgICAgIHByZXNlcnZlUmV0
dXJuQWRkcmVzc0FmdGVyQ2FsbChyZWdUMik7Ci0gICAgICAgIGVtaXRQdXRSZXR1cm5QQ1RvQ2Fs
bEZyYW1lSGVhZGVyKHJlZ1QyKTsKKyAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAg
ICAgICAgZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1lSGVhZGVyKG1fY29kZUJsb2NrLCBKU1N0
YWNrOjpDb2RlQmxvY2spOwogCiAgICAgICAgIGxvYWQzMihwYXlsb2FkRm9yKEpTU3RhY2s6OkFy
Z3VtZW50Q291bnQpLCByZWdUMSk7CkBAIC01NjEsMTAgKzU2NSwxNiBAQCBDb21waWxhdGlvblJl
c3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJVENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkKIAog
ICAgICAgICBtX2J5dGVjb2RlT2Zmc2V0ID0gMDsKIAorICAgICAgICBpZiAobWF4RnJhbWVFeHRl
bnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1tYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICAg
ICAgY2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG1fY29kZUJs
b2NrLT5tX2lzQ29uc3RydWN0b3IgPyBvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrIDogb3Bl
cmF0aW9uQ2FsbEFyaXR5Q2hlY2spOworICAgICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwpCisgICAgICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgICAgICBpZiAocmV0
dXJuVmFsdWVHUFIgIT0gcmVnVDApCiAgICAgICAgICAgICBtb3ZlKHJldHVyblZhbHVlR1BSLCBy
ZWdUMCk7CiAgICAgICAgIGJyYW5jaFRlc3QzMihaZXJvLCByZWdUMCkubGlua1RvKGJlZ2luTGFi
ZWwsIHRoaXMpOworICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIobV92bS0+YXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3MtPnJldHVyblBDc0ZvcigqbV92bSwgbV9jb2RlQmxvY2stPm51bVBhcmFt
ZXRlcnMoKSkpLCByZWdUNSk7CisgICAgICAgIGxvYWRQdHIoQmFzZUluZGV4KHJlZ1Q1LCByZWdU
MCwgdGltZXNQdHIoKSksIHJlZ1Q1KTsKICAgICAgICAgZW1pdE5ha2VkQ2FsbChtX3ZtLT5nZXRD
VElTdHViKGFyaXR5Rml4dXApLmNvZGUoKSk7CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECkBAIC02
NTMsMjAgKzY2MywxMiBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJ
VENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkKICAgICAgICAgaW5mby5jYWxsZWVHUFIgPSByZWdU
MDsKICAgICB9CiAKLSNpZiBFTkFCTEUoREZHX0pJVCkgfHwgRU5BQkxFKExMSU5UKQotICAgIGlm
IChjYW5CZU9wdGltaXplZE9ySW5saW5lZCgpCi0jaWYgRU5BQkxFKExMSU5UKQotICAgICAgICB8
fCB0cnVlCi0jZW5kaWYKLSAgICAgICAgKSB7Ci0gICAgICAgIENvbXBhY3RKSVRDb2RlTWFwOjpF
bmNvZGVyIGppdENvZGVNYXBFbmNvZGVyOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGJ5dGVjb2Rl
T2Zmc2V0ID0gMDsgYnl0ZWNvZGVPZmZzZXQgPCBtX2xhYmVscy5zaXplKCk7ICsrYnl0ZWNvZGVP
ZmZzZXQpIHsKLSAgICAgICAgICAgIGlmIChtX2xhYmVsc1tieXRlY29kZU9mZnNldF0uaXNTZXQo
KSkKLSAgICAgICAgICAgICAgICBqaXRDb2RlTWFwRW5jb2Rlci5hcHBlbmQoYnl0ZWNvZGVPZmZz
ZXQsIHBhdGNoQnVmZmVyLm9mZnNldE9mKG1fbGFiZWxzW2J5dGVjb2RlT2Zmc2V0XSkpOwotICAg
ICAgICB9Ci0gICAgICAgIG1fY29kZUJsb2NrLT5zZXRKSVRDb2RlTWFwKGppdENvZGVNYXBFbmNv
ZGVyLmZpbmlzaCgpKTsKKyAgICBDb21wYWN0SklUQ29kZU1hcDo6RW5jb2RlciBqaXRDb2RlTWFw
RW5jb2RlcjsKKyAgICBmb3IgKHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gMDsgYnl0ZWNvZGVP
ZmZzZXQgPCBtX2xhYmVscy5zaXplKCk7ICsrYnl0ZWNvZGVPZmZzZXQpIHsKKyAgICAgICAgaWYg
KG1fbGFiZWxzW2J5dGVjb2RlT2Zmc2V0XS5pc1NldCgpKQorICAgICAgICAgICAgaml0Q29kZU1h
cEVuY29kZXIuYXBwZW5kKGJ5dGVjb2RlT2Zmc2V0LCBwYXRjaEJ1ZmZlci5vZmZzZXRPZihtX2xh
YmVsc1tieXRlY29kZU9mZnNldF0pKTsKICAgICB9Ci0jZW5kaWYKKyAgICBtX2NvZGVCbG9jay0+
c2V0SklUQ29kZU1hcChqaXRDb2RlTWFwRW5jb2Rlci5maW5pc2goKSk7CiAKICAgICBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIgd2l0aEFyaXR5Q2hlY2s7CiAgICAgaWYgKG1fY29kZUJsb2NrLT5jb2Rl
VHlwZSgpID09IEZ1bmN0aW9uQ29kZSkKQEAgLTY4Nyw4ICs2ODksNyBAQCBDb21waWxhdGlvblJl
c3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJVENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkKICAg
ICAKICAgICBtX2NvZGVCbG9jay0+c2hyaW5rVG9GaXQoQ29kZUJsb2NrOjpMYXRlU2hyaW5rKTsK
ICAgICBtX2NvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAgYWRvcHRSZWYobmV3IERpcmVj
dEpJVENvZGUocmVzdWx0LCBKSVRDb2RlOjpCYXNlbGluZUpJVCkpLAotICAgICAgICB3aXRoQXJp
dHlDaGVjayk7CisgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHJlc3VsdCwgd2l0
aEFyaXR5Q2hlY2ssIEpJVENvZGU6OkJhc2VsaW5lSklUKSkpOwogICAgIAogI2lmIEVOQUJMRShK
SVRfVkVSQk9TRSkKICAgICBkYXRhTG9nRigiSklUIGdlbmVyYXRlZCBjb2RlIGZvciAlcCBhdCBb
JXAsICVwKS5cbiIsIG1fY29kZUJsb2NrLCByZXN1bHQuZXhlY3V0YWJsZU1lbW9yeSgpLT5zdGFy
dCgpLCByZXN1bHQuZXhlY3V0YWJsZU1lbW9yeSgpLT5lbmQoKSk7CkBAIC02OTcsNDIgKzY5OCw2
IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25F
ZmZvcnQgZWZmb3J0KQogICAgIHJldHVybiBDb21waWxhdGlvblN1Y2Nlc3NmdWw7CiB9CiAKLXZv
aWQgSklUOjpsaW5rRm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNGdW5jdGlvbiogY2FsbGVlLCBDb2Rl
QmxvY2sqIGNhbGxlckNvZGVCbG9jaywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQmxvY2ssIEpJVDo6
Q29kZVB0ciBjb2RlLCBDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbywgVk0qIHZtLCBDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kIGtpbmQpCi17Ci0gICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVy
KGNhbGxlckNvZGVCbG9jayk7Ci0KLSAgICBBU1NFUlQoIWNhbGxMaW5rSW5mby0+aXNMaW5rZWQo
KSk7Ci0gICAgY2FsbExpbmtJbmZvLT5jYWxsZWUuc2V0KCp2bSwgY2FsbExpbmtJbmZvLT5ob3RQ
YXRoQmVnaW4sIGNhbGxlckNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIGNhbGxlZSk7Ci0g
ICAgY2FsbExpbmtJbmZvLT5sYXN0U2VlbkNhbGxlZS5zZXQoKnZtLCBjYWxsZXJDb2RlQmxvY2st
Pm93bmVyRXhlY3V0YWJsZSgpLCBjYWxsZWUpOwotICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNh
bGxMaW5rSW5mby0+aG90UGF0aE90aGVyLCBjb2RlKTsKLQotICAgIGlmIChjYWxsZWVDb2RlQmxv
Y2spCi0gICAgICAgIGNhbGxlZUNvZGVCbG9jay0+bGlua0luY29taW5nQ2FsbChleGVjLCBjYWxs
TGlua0luZm8pOwotCi0gICAgLy8gUGF0Y2ggdGhlIHNsb3cgcGF0Y2ggc28gd2UgZG8gbm90IGNv
bnRpbnVlIHRvIHRyeSB0byBsaW5rLgotICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKSB7Ci0g
ICAgICAgIEFTU0VSVChjYWxsTGlua0luZm8tPmNhbGxUeXBlID09IENhbGxMaW5rSW5mbzo6Q2Fs
bAotICAgICAgICAgICAgICAgfHwgY2FsbExpbmtJbmZvLT5jYWxsVHlwZSA9PSBDYWxsTGlua0lu
Zm86OkNhbGxWYXJhcmdzKTsKLSAgICAgICAgaWYgKGNhbGxMaW5rSW5mby0+Y2FsbFR5cGUgPT0g
Q2FsbExpbmtJbmZvOjpDYWxsKSB7Ci0gICAgICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhj
YWxsTGlua0luZm8tPmNhbGxSZXR1cm5Mb2NhdGlvbiwgdm0tPmdldENUSVN0dWIobGlua0Nsb3N1
cmVDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLQotICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0luZm8tPmNhbGxS
ZXR1cm5Mb2NhdGlvbiwgdm0tPmdldENUSVN0dWIodmlydHVhbENhbGxUaHVua0dlbmVyYXRvciku
Y29kZSgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEFTU0VSVChraW5kID09IENv
ZGVGb3JDb25zdHJ1Y3QpOwotICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby0+
Y2FsbFJldHVybkxvY2F0aW9uLCB2bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsQ29uc3RydWN0VGh1bmtH
ZW5lcmF0b3IpLmNvZGUoKSk7Ci19Ci0KLXZvaWQgSklUOjpsaW5rU2xvd0NhbGwoQ29kZUJsb2Nr
KiBjYWxsZXJDb2RlQmxvY2ssIENhbGxMaW5rSW5mbyogY2FsbExpbmtJbmZvKQotewotICAgIFJl
cGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihjYWxsZXJDb2RlQmxvY2spOwotCi0gICAgcmVwYXRj
aEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLT5jYWxsUmV0dXJuTG9jYXRpb24sIGNhbGxlckNv
ZGVCbG9jay0+dm0oKS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2Rl
KCkpOwotfQotCiB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVFeGNlcHRpb25IYW5kbGVycygpCiB7
CiAgICAgaWYgKG1fZXhjZXB0aW9uQ2hlY2tzLmVtcHR5KCkgJiYgbV9leGNlcHRpb25DaGVja3NX
aXRoQ2FsbEZyYW1lUm9sbGJhY2suZW1wdHkoKSkKQEAgLTc0Miw3ICs3MDcsNyBAQCB2b2lkIEpJ
VDo6cHJpdmF0ZUNvbXBpbGVFeGNlcHRpb25IYW5kbGVycygpCiAKICAgICBpZiAoIW1fZXhjZXB0
aW9uQ2hlY2tzV2l0aENhbGxGcmFtZVJvbGxiYWNrLmVtcHR5KCkpIHsKICAgICAgICAgbV9leGNl
cHRpb25DaGVja3NXaXRoQ2FsbEZyYW1lUm9sbGJhY2subGluayh0aGlzKTsKLSAgICAgICAgZW1p
dEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjphcmd1bWVudEdQ
UjApOworICAgICAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQ
UkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgICAgIGRvTG9va3VwID0ganVtcCgpOwogICAgIH0K
IApAQCAtNzUwLDE5ICs3MTUsMzMgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlRXhjZXB0aW9u
SGFuZGxlcnMoKQogICAgICAgICBtX2V4Y2VwdGlvbkNoZWNrcy5saW5rKHRoaXMpOwogICAgIAog
ICAgIC8vIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIgaXMgcGFzc2VkIG9uZSBhcmd1bWVudCwgdGhl
IGV4ZWMgKHRoZSBDYWxsRnJhbWUqKS4KLSAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAKICAgICBpZiAoZG9Mb29rdXAuaXNT
ZXQoKSkKICAgICAgICAgZG9Mb29rdXAubGluayh0aGlzKTsKIAorICAgIG1vdmUoVHJ1c3RlZElt
bVB0cih2bSgpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKwogI2lmIENQVShYODYpCiAgICAg
Ly8gRklYTUU6IHNob3VsZCB1c2UgdGhlIGNhbGwgYWJzdHJhY3Rpb24sIGJ1dCB0aGlzIGlzIGN1
cnJlbnRseSBpbiB0aGUgU3BlY3VsYXRpdmVKSVQgbGF5ZXIhCiAgICAgcG9rZShHUFJJbmZvOjph
cmd1bWVudEdQUjApOworICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRHUFIxLCAxKTsKICNlbmRp
ZgogICAgIG1fY2FsbHMuYXBwZW5kKENhbGxSZWNvcmQoY2FsbCgpLCAodW5zaWduZWQpLTEsIEZ1
bmN0aW9uUHRyKGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIpLnZhbHVlKCkpKTsKICAgICBqdW1wVG9F
eGNlcHRpb25IYW5kbGVyKCk7CiB9CiAKK3Vuc2lnbmVkIEpJVDo6ZnJhbWVSZWdpc3RlckNvdW50
Rm9yKENvZGVCbG9jayogY29kZUJsb2NrKQoreworICAgIEFTU0VSVChzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oY29kZUJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVycykgPT0gV1RGOjpyb3VuZFVwVG9N
dWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIHN0YXRpY19jYXN0PHVuc2lnbmVk
Pihjb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKSkpOworCisgICAgcmV0dXJuIHJvdW5k
TG9jYWxSZWdpc3RlckNvdW50Rm9yRnJhbWVQb2ludGVyT2Zmc2V0KGNvZGVCbG9jay0+bV9udW1D
YWxsZWVSZWdpc3RlcnMgKyBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbEluUmVnaXN0ZXJz
KTsKK30KKworaW50IEpJVDo6c3RhY2tQb2ludGVyT2Zmc2V0Rm9yKENvZGVCbG9jayogY29kZUJs
b2NrKQoreworICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChmcmFtZVJlZ2lzdGVy
Q291bnRGb3IoY29kZUJsb2NrKSAtIDEpLm9mZnNldCgpOworfQogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggMjk4MDc1NzA2MWI2YzliZmQyZTdiM2Ix
NTM1MzgzMzgyZWM2NmI2Yy4uZmU4NTAzZTc5NDg4Y2I3ZGFiOGY4ZDRhYzQzNjAyYjMwNGMzNTJk
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCkBAIC0yNDEsMTMgKzI0MSw4IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIGppdC5wcml2YXRlQ29tcGlsZUNUSU5hdGl2ZUNh
bGwodm0sIGZ1bmMpOwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIHZvaWQgbGlua0ZvcihF
eGVjU3RhdGUqLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIENvZGVCbG9jayogY2FsbGVyQ29kZUJsb2Nr
LCBDb2RlQmxvY2sqIGNhbGxlZUNvZGVCbG9jaywgQ29kZVB0ciwgQ2FsbExpbmtJbmZvKiwgVk0q
LCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kKTsKLSAgICAgICAgc3RhdGljIHZvaWQgbGlua1Nsb3dD
YWxsKENvZGVCbG9jayogY2FsbGVyQ29kZUJsb2NrLCBDYWxsTGlua0luZm8qKTsKLSAgICAgICAg
Ci0gICAgICAgIHN0YXRpYyB1bnNpZ25lZCBmcmFtZVJlZ2lzdGVyQ291bnRGb3IoQ29kZUJsb2Nr
KiBjb2RlQmxvY2spCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBjb2RlQmxvY2stPm1f
bnVtQ2FsbGVlUmVnaXN0ZXJzOwotICAgICAgICB9CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBm
cmFtZVJlZ2lzdGVyQ291bnRGb3IoQ29kZUJsb2NrKik7CisgICAgICAgIHN0YXRpYyBpbnQgc3Rh
Y2tQb2ludGVyT2Zmc2V0Rm9yKENvZGVCbG9jayopOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAg
SklUKFZNKiwgQ29kZUJsb2NrKiA9IDApOwpAQCAtNjk3LDExICs2OTIsMTEgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oV2l0aFBy
b2ZpbGVUYWcsIEpfSklUT3BlcmF0aW9uX0VQYywgaW50LCBJbnN0cnVjdGlvbiopOwogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VaLCBp
bnQsIGludDMyX3QpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFBfSklUT3BlcmF0aW9uX0VKUywgR1BSUmVnLCBzaXplX3QpOwotICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFBfSklUT3BlcmF0aW9uX0VaLCBpbnQzMl90KTsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9F
Q0MsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VKLCBSZWdpc3RlcklEKTsKICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FSkosIFJl
Z2lzdGVySUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VPSnNzLCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsK
KyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihTcHJ0X0pJVE9wZXJh
dGlvbl9FWiwgaW50MzJfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oVl9KSVRPcGVyYXRpb25fRSk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUMsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDQywgUmVnaXN0
ZXJJRCwgUmVnaXN0ZXJJRCk7CkBAIC03MjYsNiArNzIxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25f
RVBjLCBJbnN0cnVjdGlvbiopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKFZfSklUT3BlcmF0aW9uX0VaLCBpbnQzMl90KTsKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKEpf
SklUT3BlcmF0aW9uX0UpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uTm9FeGNlcHRpb25DaGVjayhKX0pJVE9wZXJhdGlvbl9FRSwgUmVnaXN0ZXJJRCk7CiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJh
Y2tPbkV4Y2VwdGlvbihWX0pJVE9wZXJhdGlvbl9FQ2IsIENvZGVCbG9jayopOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25F
eGNlcHRpb24oWl9KSVRPcGVyYXRpb25fRSk7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCmluZGV4IDkwYzJlNGZiOTJmMDlkODMyZWQzYTk2
ZmVjYmYyNzM0MDg3N2NhZWQuLmFlZjY3MmIxY2YwM2ExM2Y5M2RlYTUzNWYzNGZkMGJmNmI5Njc3
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNwcApAQCAtMzksNiArMzksNyBA
QAogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAj
aW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKICNp
bmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJl
YW0uaD4KIApAQCAtNzEsMTAgKzcyLDE0IEBAIHZvaWQgSklUOjpjb21waWxlTG9hZFZhcmFyZ3Mo
SW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhl
YWRlcjMyKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQsIHJlZ1QwKTsKICAgICAgICAgc2xvd0Nhc2Uu
YXBwZW5kKGJyYW5jaDMyKEFib3ZlLCByZWdUMCwgVHJ1c3RlZEltbTMyKEFyZ3VtZW50czo6TWF4
QXJndW1lbnRzICsgMSkpKTsKICAgICAgICAgLy8gcmVnVDA6IGFyZ3VtZW50Q291bnRJbmNsdWRp
bmdUaGlzCi0KICAgICAgICAgbW92ZShyZWdUMCwgcmVnVDEpOworICAgICAgICBhZGQ2NChUcnVz
dGVkSW1tMzIoLWZpcnN0RnJlZVJlZ2lzdGVyICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6
ZSksIHJlZ1QxKTsKKyAgICAgICAgLy8gcmVnVDEgbm93IGhhcyB0aGUgcmVxdWlyZWQgZnJhbWUg
c2l6ZSBpbiBSZWdpc3RlciB1bml0cworICAgICAgICAvLyBSb3VuZCByZWdUMSB0byBuZXh0IG11
bHRpcGxlIG9mIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkKKyAgICAgICAgYWRkNjQoVHJ1c3Rl
ZEltbTMyKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkgLSAxKSwgcmVnVDEpOworICAgICAgICBh
bmQ2NChUcnVzdGVkSW1tMzIofihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpIC0gMSkpLCByZWdU
MSk7CisKICAgICAgICAgbmVnNjQocmVnVDEpOwotICAgICAgICBhZGQ2NChUcnVzdGVkSW1tMzIo
Zmlyc3RGcmVlUmVnaXN0ZXIgLSBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKSwgcmVnVDEp
OwogICAgICAgICBsc2hpZnQ2NChUcnVzdGVkSW1tMzIoMyksIHJlZ1QxKTsKICAgICAgICAgYWRk
UHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMSk7CiAgICAgICAgIC8vIHJlZ1QxOiBuZXdDYWxs
RnJhbWUKQEAgLTEwNSw3ICsxMTAsOCBAQCB2b2lkIEpJVDo6Y29tcGlsZUxvYWRWYXJhcmdzKElu
c3RydWN0aW9uKiBpbnN0cnVjdGlvbikKICAgICAgICAgc2xvd0Nhc2UubGluayh0aGlzKTsKIAog
ICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYXJndW1lbnRzLCByZWdUMSk7Ci0gICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25TaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MsIHJlZ1QxLCBmaXJz
dEZyZWVSZWdpc3Rlcik7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25TaXplRnJhbWVGb3JW
YXJhcmdzLCByZWdUMSwgZmlyc3RGcmVlUmVnaXN0ZXIpOworICAgIG1vdmUocmV0dXJuVmFsdWVH
UFIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHRo
aXNWYWx1ZSwgcmVnVDEpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYXJndW1lbnRzLCBy
ZWdUMik7CiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Mb2FkVmFyYXJncywgcmV0dXJuVmFs
dWVHUFIsIHJlZ1QxLCByZWdUMik7CkBAIC0xMTMsMTMgKzExOSwyNCBAQCB2b2lkIEpJVDo6Y29t
cGlsZUxvYWRWYXJhcmdzKEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKIAogICAgIGlmIChjYW5P
cHRpbWl6ZSkKICAgICAgICAgZW5kLmxpbmsodGhpcyk7CisgICAgCisgICAgYWRkUHRyKFRydXN0
ZWRJbW0zMihzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCByZWdUMSwgc3RhY2tQb2ludGVyUmVn
aXN0ZXIpOwogfQogCiB2b2lkIEpJVDo6Y29tcGlsZUNhbGxFdmFsKEluc3RydWN0aW9uKiBpbnN0
cnVjdGlvbikKIHsKLSAgICBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNl
cHRpb24ob3BlcmF0aW9uQ2FsbEV2YWwpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLXN0YXRp
Y19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSksIHN0YWNrUG9pbnRl
clJlZ2lzdGVyLCByZWdUMSk7CisgICAgY2FsbE9wZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2sob3Bl
cmF0aW9uQ2FsbEV2YWwsIHJlZ1QxKTsKKworICAgIEp1bXAgbm9FeGNlcHRpb24gPSBlbWl0RXhj
ZXB0aW9uQ2hlY2soSW52ZXJ0ZWRFeGNlcHRpb25DaGVjayk7CisgICAgYWRkUHRyKFRydXN0ZWRJ
bW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVy
KSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7ICAgIAorICAgIGV4
Y2VwdGlvbkNoZWNrKGp1bXAoKSk7CisKKyAgICBub0V4Y2VwdGlvbi5saW5rKHRoaXMpOwogICAg
IGFkZFNsb3dDYXNlKGJyYW5jaDY0KEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbTY0KEpTVmFsdWU6
OmVuY29kZShKU1ZhbHVlKCkpKSkpOwotICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJh
bWVIZWFkZXJQdHIoY2FsbEZyYW1lUmVnaXN0ZXIpOworCisgICAgYWRkUHRyKFRydXN0ZWRJbW0z
MihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSks
IGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFj
a1BvaW50ZXJBbGlnbm1lbnQoKTsKIAogICAgIHNhbXBsZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7
CiAgICAgCkBAIC0xMzAsOCArMTQ3LDEwIEBAIHZvaWQgSklUOjpjb21waWxlQ2FsbEV2YWxTbG93
Q2FzZShJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5CiB7CiAg
ICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwogCi0gICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXI2
NChKU1N0YWNrOjpDYWxsZWUsIHJlZ1QwKTsKKyAgICBsb2FkNjQoQWRkcmVzcyhzdGFja1BvaW50
ZXJSZWdpc3Rlciwgc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OkNhbGxlZSAtIHNpemVvZihD
YWxsZXJGcmFtZUFuZFBDKSksIHJlZ1QwKTsKICAgICBlbWl0TmFrZWRDYWxsKG1fdm0tPmdldENU
SVN0dWIodmlydHVhbENhbGxUaHVua0dlbmVyYXRvcikuY29kZSgpKTsKKyAgICBhZGRQdHIoVHJ1
c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVn
aXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBj
aGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogCiAgICAgc2FtcGxlQ29kZUJsb2NrKG1fY29k
ZUJsb2NrKTsKICAgICAKQEAgLTE3MCwxOCArMTg5LDE2IEBAIHZvaWQgSklUOjpjb21waWxlT3BD
YWxsKE9wY29kZUlEIG9wY29kZUlELCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIHVuc2lnbmVk
IGNhCiAgICAgICAgICAgICBkb25lLmxpbmsodGhpcyk7CiAgICAgICAgIH0KICAgICAKLSAgICAg
ICAgYWRkUHRyKFRydXN0ZWRJbW0zMihyZWdpc3Rlck9mZnNldCAqIHNpemVvZihSZWdpc3Rlcikp
LCBjYWxsRnJhbWVSZWdpc3RlciwgcmVnVDEpOwotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0z
MihhcmdDb3VudCksIEFkZHJlc3MocmVnVDEsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiBzdGF0
aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRW
YWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSkpOwotICAgIH0gLy8gcmVnVDEgaG9sZHMg
bmV3Q2FsbEZyYW1lIHdpdGggQXJndW1lbnRDb3VudCBpbml0aWFsaXplZC4KKyAgICAgICAgYWRk
UHRyKFRydXN0ZWRJbW0zMihyZWdpc3Rlck9mZnNldCAqIHNpemVvZihSZWdpc3RlcikgKyBzaXpl
b2YoQ2FsbGVyRnJhbWVBbmRQQykpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVn
aXN0ZXIpOworICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihhcmdDb3VudCksIEFkZHJlc3Mo
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiBzdGF0aWNfY2Fz
dDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgUGF5bG9hZE9mZnNldCAtIHNpemVvZihDYWxsZXJG
cmFtZUFuZFBDKSkpOworICAgIH0gLy8gU1AgaG9sZHMgbmV3Q2FsbEZyYW1lICsgc2l6ZW9mKENh
bGxlckZyYW1lQW5kUEMpLCB3aXRoIEFyZ3VtZW50Q291bnQgaW5pdGlhbGl6ZWQuCiAgICAgCiAg
ICAgdWludDMyX3QgYnl0ZWNvZGVPZmZzZXQgPSBpbnN0cnVjdGlvbiAtIG1fY29kZUJsb2NrLT5p
bnN0cnVjdGlvbnMoKS5iZWdpbigpOwogICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9IENhbGxG
cmFtZTo6TG9jYXRpb246OmVuY29kZUFzQnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpOwot
ICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGxvY2F0aW9uQml0cyksIEFkZHJlc3MoY2FsbEZyYW1l
UmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVv
ZihSZWdpc3RlcikpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFz
Qml0cy50YWcpKSk7CisgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwgQWRk
cmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHN0YXRpY19j
YXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBUYWdPZmZzZXQpKTsKICAgICBlbWl0R2V0Vmly
dHVhbFJlZ2lzdGVyKGNhbGxlZSwgcmVnVDApOyAvLyByZWdUMCBob2xkcyBjYWxsZWUuCiAKLSAg
ICBzdG9yZTY0KGNhbGxGcmFtZVJlZ2lzdGVyLCBBZGRyZXNzKHJlZ1QxLCBDYWxsRnJhbWU6OmNh
bGxlckZyYW1lT2Zmc2V0KCkpKTsKLSAgICBzdG9yZTY0KHJlZ1QwLCBBZGRyZXNzKHJlZ1QxLCBK
U1N0YWNrOjpDYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7Ci0g
ICAgbW92ZShyZWdUMSwgY2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIHN0b3JlNjQocmVnVDAsIEFk
ZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkNhbGxlZSAqIHN0YXRpY19jYXN0
PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKIAog
ICAgIGlmIChvcGNvZGVJRCA9PSBvcF9jYWxsX2V2YWwpIHsKICAgICAgICAgY29tcGlsZUNhbGxF
dmFsKGluc3RydWN0aW9uKTsKQEAgLTE5OCwxMCArMjE1LDE0IEBAIHZvaWQgSklUOjpjb21waWxl
T3BDYWxsKE9wY29kZUlEIG9wY29kZUlELCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIHVuc2ln
bmVkIGNhCiAgICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0lu
Zm9JbmRleF0uY2FsbFR5cGUgPSBDYWxsTGlua0luZm86OmNhbGxUeXBlRm9yKG9wY29kZUlEKTsK
ICAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4
XS5ieXRlY29kZUluZGV4ID0gbV9ieXRlY29kZU9mZnNldDsKIAotICAgIGxvYWRQdHIoQWRkcmVz
cyhyZWdUMCwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fc2NvcGUpKSwgcmVnVDEpOwot
ICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFpbik7
CisgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwg
bV9zY29wZSkpLCByZWdUMik7CisgICAgc3RvcmU2NChyZWdUMiwgQWRkcmVzcyhNYWNyb0Fzc2Vt
Ymxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OlNjb3BlQ2hhaW4gKiBzaXplb2Yo
UmVnaXN0ZXIpIC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CisKICAgICBtX2NhbGxTdHJ1
Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5ob3RQYXRoT3RoZXIg
PSBlbWl0TmFrZWRDYWxsKCk7CiAKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRl
ck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVn
aXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdu
bWVudCgpOworCiAgICAgc2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2NrKTsKICAgICAKICAgICBl
bWl0UHV0Q2FsbFJlc3VsdChpbnN0cnVjdGlvbik7CkBAIC0yMTYsNyArMjM3LDE0IEBAIHZvaWQg
SklUOjpjb21waWxlT3BDYWxsU2xvd0Nhc2UoT3Bjb2RlSUQgb3Bjb2RlSUQsIEluc3RydWN0aW9u
KiBpbnN0cnVjdGlvbiwgVmVjCiAKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAKLSAgICBtX2Nh
bGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5jYWxsUmV0
dXJuTG9jYXRpb24gPSBlbWl0TmFrZWRDYWxsKG9wY29kZUlEID09IG9wX2NvbnN0cnVjdCA/IG1f
dm0tPmdldENUSVN0dWIobGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKS5jb2RlKCkgOiBtX3Zt
LT5nZXRDVElTdHViKGxpbmtDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7CisgICAgVGh1bmtH
ZW5lcmF0b3IgZ2VuZXJhdG9yID0gbGlua1RodW5rR2VuZXJhdG9yRm9yKAorICAgICAgICBvcGNv
ZGVJRCA9PSBvcF9jb25zdHJ1Y3QgPyBDb2RlRm9yQ29uc3RydWN0IDogQ29kZUZvckNhbGwsCisg
ICAgICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOworICAgIAorICAgIG1fY2Fs
bFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmNhbGxSZXR1
cm5Mb2NhdGlvbiA9IGVtaXROYWtlZENhbGwobV92bS0+Z2V0Q1RJU3R1YihnZW5lcmF0b3IpLmNv
ZGUoKSk7CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvciht
X2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNr
UG9pbnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogCiAg
ICAgc2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2NrKTsKICAgICAKQEAgLTIyNiw3ICsyNTQsNyBA
QCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKE9wY29kZUlEIG9wY29kZUlELCBJbnN0
cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIFZlYwogdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlQ2xvc3Vy
ZUNhbGwoQ2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm8sIENvZGVCbG9jayogY2FsbGVlQ29kZUJs
b2NrLCBTdHJ1Y3R1cmUqIGV4cGVjdGVkU3RydWN0dXJlLCBFeGVjdXRhYmxlQmFzZSogZXhwZWN0
ZWRFeGVjdXRhYmxlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cikKIHsKICAgICBKdW1w
TGlzdCBzbG93Q2FzZXM7Ci0gICAgCisKICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQ
dHIoTm9uWmVybywgcmVnVDAsIHRhZ01hc2tSZWdpc3RlcikpOwogICAgIHNsb3dDYXNlcy5hcHBl
bmQoYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnN0cnVjdHVyZU9m
ZnNldCgpKSwgVHJ1c3RlZEltbVB0cihleHBlY3RlZFN0cnVjdHVyZSkpKTsKICAgICBzbG93Q2Fz
ZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMCwgSlNGdW5jdGlvbjo6
b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBUcnVzdGVkSW1tUHRyKGV4cGVjdGVkRXhlY3V0YWJsZSkp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAppbmRleCA2MDg2
MDM4YTI2N2JlMjhjNWU0YjMzNWE4Njc3MTkzOWQ3ZTVkNGI2Li42OWZhMGYwZTY0YzVkZjIzM2Y2
YzljYjVhYWZmMDg0Y2FkOWMyZDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVENhbGwzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRD
YWxsMzJfNjQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDgsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiUmVwYXRj
aEJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rv
b2wuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQ
cmludFN0cmVhbS5oPgogCiAKQEAgLTU2LDEwICs1Nyw5IEBAIHZvaWQgSklUOjplbWl0X29wX3Jl
dChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIHVuc2lnbmVkIGRzdCA9IGN1
cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAKICAgICBlbWl0TG9hZChkc3QsIHJlZ1Qx
LCByZWdUMCk7Ci0gICAgZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihyZWdU
Mik7Ci0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihjYWxsRnJh
bWVSZWdpc3Rlcik7CiAKLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdU
Mik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKKyAgICBlbWl0RnVuY3Rpb25F
cGlsb2d1ZSgpOwogICAgIHJldCgpOwogfQogCkBAIC03MywyMCArNzMsMTYgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfcmV0X29iamVjdF9vcl90aGlzKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgp
KSwgcmVnVDIpOwogICAgIEp1bXAgbm90T2JqZWN0ID0gZW1pdEp1bXBJZk5vdE9iamVjdChyZWdU
Mik7CiAKLSAgICBlbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKHJlZ1QyKTsK
LSAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKGNhbGxGcmFtZVJl
Z2lzdGVyKTsKLQotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHJlZ1QyKTsK
KyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOworICAgIGVtaXRGdW5jdGlvbkVwaWxv
Z3VlKCk7CiAgICAgcmV0KCk7CiAKICAgICBub3RKU0NlbGwubGluayh0aGlzKTsKICAgICBub3RP
YmplY3QubGluayh0aGlzKTsKICAgICBlbWl0TG9hZCh0aGlzUmVnLCByZWdUMSwgcmVnVDApOwog
Ci0gICAgZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihyZWdUMik7Ci0gICAg
ZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihjYWxsRnJhbWVSZWdpc3Rl
cik7Ci0KLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdUMik7CisgICAg
Y2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKKyAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgp
OwogICAgIHJldCgpOwogfQogCkBAIC0xNTEsOCArMTQ3LDEyIEBAIHZvaWQgSklUOjpjb21waWxl
TG9hZFZhcmFyZ3MoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgICAgICAvLyByZWdUMjog
YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMKIAogICAgICAgICBtb3ZlKHJlZ1QyLCByZWdUMyk7
CisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLWZpcnN0RnJlZVJlZ2lzdGVyICsgSlNTdGFj
azo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSksIHJlZ1QzKTsKKyAgICAgICAgLy8gcmVnVDEgbm93IGhh
cyB0aGUgcmVxdWlyZWQgZnJhbWUgc2l6ZSBpbiBSZWdpc3RlciB1bml0cworICAgICAgICAvLyBS
b3VuZCByZWdUMSB0byBuZXh0IG11bHRpcGxlIG9mIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkK
KyAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpIC0g
MSksIHJlZ1QzKTsKKyAgICAgICAgYW5kUHRyKFRydXN0ZWRJbW0zMih+KHN0YWNrQWxpZ25tZW50
UmVnaXN0ZXJzKCkgLSAxKSksIHJlZ1QzKTsKICAgICAgICAgbmVnMzIocmVnVDMpOwotICAgICAg
ICBhZGQzMihUcnVzdGVkSW1tMzIoZmlyc3RGcmVlUmVnaXN0ZXIgLSBKU1N0YWNrOjpDYWxsRnJh
bWVIZWFkZXJTaXplKSwgcmVnVDMpOwogICAgICAgICBsc2hpZnQzMihUcnVzdGVkSW1tMzIoMyks
IHJlZ1QzKTsKICAgICAgICAgYWRkUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMyk7CiAgICAg
ICAgIC8vIHJlZ1QzOiBuZXdDYWxsRnJhbWUKQEAgLTE4NSwyMiArMTg1LDM0IEBAIHZvaWQgSklU
Ojpjb21waWxlTG9hZFZhcmFyZ3MoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgICAgICBz
bG93Q2FzZS5saW5rKHRoaXMpOwogCiAgICAgZW1pdExvYWQoYXJndW1lbnRzLCByZWdUMSwgcmVn
VDApOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJh
cmdzLCByZWdUMSwgcmVnVDAsIGZpcnN0RnJlZVJlZ2lzdGVyKTsKLSAgICBtb3ZlKHJldHVyblZh
bHVlR1BSLCByZWdUNSk7Ci0gICAgZW1pdExvYWQodGhpc1ZhbHVlLCByZWdUMSwgcmVnVDApOwor
ICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFyYXJncywgcmVnVDEsIHJl
Z1QwLCBmaXJzdEZyZWVSZWdpc3Rlcik7CisgICAgbW92ZShyZXR1cm5WYWx1ZUdQUiwgc3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOworICAgIGVtaXRMb2FkKHRoaXNWYWx1ZSwgcmVnVDEsIHJlZ1Q0KTsK
ICAgICBlbWl0TG9hZChhcmd1bWVudHMsIHJlZ1QzLCByZWdUMik7Ci0gICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25Mb2FkVmFyYXJncywgcmVnVDUsIHJlZ1QxLCByZWdUMCwgcmVnVDMsIHJlZ1Qy
KTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkxvYWRWYXJhcmdzLCByZXR1cm5WYWx1ZUdQ
UiwgcmVnVDEsIHJlZ1Q0LCByZWdUMywgcmVnVDIpOwogICAgIG1vdmUocmV0dXJuVmFsdWVHUFIs
IHJlZ1QzKTsKIAogICAgIGlmIChjYW5PcHRpbWl6ZSkKICAgICAgICAgZW5kLmxpbmsodGhpcyk7
CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSksIHJl
Z1QzLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiB9CiAKIHZvaWQgSklUOjpjb21waWxlQ2FsbEV2
YWwoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogewotICAgIGNhbGxPcGVyYXRpb25XaXRoQ2Fs
bEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb25DYWxsRXZhbCk7CisgICAgYWRkUHRy
KFRydXN0ZWRJbW0zMigtc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoQ2FsbGVyRnJhbWVB
bmRQQykpKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIsIHJlZ1QxKTsKKworICAgIGNhbGxPcGVyYXRp
b25Ob0V4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbkNhbGxFdmFsLCByZWdUMSk7CisKKyAgICBKdW1w
IG5vRXhjZXB0aW9uID0gZW1pdEV4Y2VwdGlvbkNoZWNrKEludmVydGVkRXhjZXB0aW9uQ2hlY2sp
OworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29kZUJs
b2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVy
UmVnaXN0ZXIpOworICAgIGV4Y2VwdGlvbkNoZWNrKGp1bXAoKSk7CisKKyAgICBub0V4Y2VwdGlv
bi5saW5rKHRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKEVxdWFsLCByZWdUMSwgVHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcpKSk7Ci0gICAgZW1pdEdldENhbGxlckZy
YW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihjYWxsRnJhbWVSZWdpc3Rlcik7CisKKyAgICBhZGRQ
dHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXpl
b2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsK
KyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogCiAgICAgc2FtcGxlQ29kZUJsb2Nr
KG1fY29kZUJsb2NrKTsKICAgICAKQEAgLTIxMSw4ICsyMjMsMTMgQEAgdm9pZCBKSVQ6OmNvbXBp
bGVDYWxsRXZhbFNsb3dDYXNlKEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXNlRW50cnkKIHsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAKKyAgICBsb2FkUHRyKEFkZHJl
c3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpDYWxs
ZWUgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCByZWdUMCk7CisgICAgbG9hZFB0cihBZGRy
ZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzaXplb2YoUmVnaXN0ZXIpICogSlNTdGFjazo6Q2Fs
bGVlIC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSwgcmVnVDEpOworCiAgICAgZW1pdExvYWQo
SlNTdGFjazo6Q2FsbGVlLCByZWdUMSwgcmVnVDApOwogICAgIGVtaXROYWtlZENhbGwobV92bS0+
Z2V0Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgIGFkZFB0
cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVv
ZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwor
ICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAKICAgICBzYW1wbGVDb2RlQmxvY2so
bV9jb2RlQmxvY2spOwogICAgIApAQCAtMjUxLDE4ICsyNjgsMTcgQEAgdm9pZCBKSVQ6OmNvbXBp
bGVPcENhbGwoT3Bjb2RlSUQgb3Bjb2RlSUQsIEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgdW5z
aWduZWQgY2EKICAgICAgICAgICAgIGRvbmUubGluayh0aGlzKTsKICAgICAgICAgfQogICAgIAot
ICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHJlZ2lzdGVyT2Zmc2V0ICogc2l6ZW9mKFJlZ2lz
dGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMyk7CisgICAgICAgIGFkZFB0cihUcnVzdGVk
SW1tMzIocmVnaXN0ZXJPZmZzZXQgKiBzaXplb2YoUmVnaXN0ZXIpICsgc2l6ZW9mKENhbGxlckZy
YW1lQW5kUEMpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKIAot
ICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihhcmdDb3VudCksIHBheWxvYWRGb3IoSlNTdGFj
azo6QXJndW1lbnRDb3VudCwgcmVnVDMpKTsKLSAgICB9IC8vIHJlZ1QzIGhvbGRzIG5ld0NhbGxG
cmFtZSB3aXRoIEFyZ3VtZW50Q291bnQgaW5pdGlhbGl6ZWQuCisgICAgICAgIHN0b3JlMzIoVHJ1
c3RlZEltbTMyKGFyZ0NvdW50KSwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFj
azo6QXJndW1lbnRDb3VudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBQ
YXlsb2FkT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CisgICAgfSAvLyBTUCBo
b2xkcyBuZXdDYWxsRnJhbWUgKyBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQyksIHdpdGggQXJndW1l
bnRDb3VudCBpbml0aWFsaXplZC4KICAgICAKICAgICB1aW50MzJfdCBsb2NhdGlvbkJpdHMgPSBD
YWxsRnJhbWU6OkxvY2F0aW9uOjplbmNvZGVBc0J5dGVjb2RlSW5zdHJ1Y3Rpb24oaW5zdHJ1Y3Rp
b24pOwogICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGxvY2F0aW9uQml0cyksIHRhZ0ZvcihKU1N0
YWNrOjpBcmd1bWVudENvdW50LCBjYWxsRnJhbWVSZWdpc3RlcikpOwogICAgIGVtaXRMb2FkKGNh
bGxlZSwgcmVnVDEsIHJlZ1QwKTsgLy8gcmVnVDEsIHJlZ1QwIGhvbGRzIGNhbGxlZS4KIAotICAg
IHN0b3JlUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCBBZGRyZXNzKHJlZ1QzLCBDYWxsRnJhbWU6OmNh
bGxlckZyYW1lT2Zmc2V0KCkpKTsKLSAgICBlbWl0U3RvcmUoSlNTdGFjazo6Q2FsbGVlLCByZWdU
MSwgcmVnVDAsIHJlZ1QzKTsKLSAgICBtb3ZlKHJlZ1QzLCBjYWxsRnJhbWVSZWdpc3Rlcik7Cisg
ICAgc3RvcmUzMihyZWdUMCwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6
Q2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSArIFBheWxvYWRPZmZz
ZXQgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKKyAgICBzdG9yZTMyKHJlZ1QxLCBBZGRy
ZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBKU1N0YWNrOjpDYWxsZWUgKiBzdGF0aWNfY2FzdDxp
bnQ+KHNpemVvZihSZWdpc3RlcikpICsgVGFnT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5k
UEMpKSk7CiAKICAgICBpZiAob3Bjb2RlSUQgPT0gb3BfY2FsbF9ldmFsKSB7CiAgICAgICAgIGNv
bXBpbGVDYWxsRXZhbChpbnN0cnVjdGlvbik7CkBAIC0yODEsMTAgKzI5NywxNiBAQCB2b2lkIEpJ
VDo6Y29tcGlsZU9wQ2FsbChPcGNvZGVJRCBvcGNvZGVJRCwgSW5zdHJ1Y3Rpb24qIGluc3RydWN0
aW9uLCB1bnNpZ25lZCBjYQogICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9b
Y2FsbExpbmtJbmZvSW5kZXhdLmNhbGxUeXBlID0gQ2FsbExpbmtJbmZvOjpjYWxsVHlwZUZvcihv
cGNvZGVJRCk7CiAgICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlu
a0luZm9JbmRleF0uYnl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVPZmZzZXQ7CiAKLSAgICBsb2Fk
UHRyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlKSks
IHJlZ1QxKTsKLSAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBKU1N0YWNr
OjpTY29wZUNoYWluKTsKKyAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRP
RihKU0Z1bmN0aW9uLCBtX3Njb3BlKSksIHJlZ1QyKTsKKyAgICBzdG9yZTMyKHJlZ1QyLCBBZGRy
ZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6U2NvcGVD
aGFpbiAqIHNpemVvZihSZWdpc3RlcikgKyBQYXlsb2FkT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZy
YW1lQW5kUEMpKSk7CisgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyks
IEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OlNjb3BlQ2hhaW4gKiBzaXpl
b2YoUmVnaXN0ZXIpICsgVGFnT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CisK
KyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogICAgIG1fY2FsbFN0cnVjdHVyZVN0
dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmhvdFBhdGhPdGhlciA9IGVtaXRO
YWtlZENhbGwoKTsKIAorICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0
Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwg
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7
CisKICAgICBzYW1wbGVDb2RlQmxvY2sobV9jb2RlQmxvY2spOwogICAgIGVtaXRQdXRDYWxsUmVz
dWx0KGluc3RydWN0aW9uKTsKIH0KQEAgLTI5OSw3ICszMjEsMTQgQEAgdm9pZCBKSVQ6OmNvbXBp
bGVPcENhbGxTbG93Q2FzZShPcGNvZGVJRCBvcGNvZGVJRCwgSW5zdHJ1Y3Rpb24qIGluc3RydWN0
aW9uLCBWZWMKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIp
OwogCi0gICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9J
bmRleF0uY2FsbFJldHVybkxvY2F0aW9uID0gZW1pdE5ha2VkQ2FsbChvcGNvZGVJRCA9PSBvcF9j
b25zdHJ1Y3QgPyBtX3ZtLT5nZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvciku
Y29kZSgpIDogbV92bS0+Z2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkp
OworICAgIFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvciA9IGxpbmtUaHVua0dlbmVyYXRvckZvcigK
KyAgICAgICAgb3Bjb2RlSUQgPT0gb3BfY29uc3RydWN0ID8gQ29kZUZvckNvbnN0cnVjdCA6IENv
ZGVGb3JDYWxsLAorICAgICAgICBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKKyAg
ICAKKyAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0lu
ZGV4XS5jYWxsUmV0dXJuTG9jYXRpb24gPSBlbWl0TmFrZWRDYWxsKG1fdm0tPmdldENUSVN0dWIo
Z2VuZXJhdG9yKS5jb2RlKCkpOworCisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50
ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJl
Z2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGln
bm1lbnQoKTsKIAogICAgIHNhbXBsZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7CiAgICAgZW1pdFB1
dENhbGxSZXN1bHQoaW5zdHJ1Y3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRDb2RlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5j
cHAKaW5kZXggMjEzYjcwMDBjYmIyODM0NTgxNGRiNWUyYmJhYjQxNDQ2N2Y0YzkyZC4uZWQwODdj
ZDNhNDRkNmUwNmFlNTQ2MzdjZDNiMDg3MjJkNzM4ZTNjYSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVENvZGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJMTEludFRodW5r
cy5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKyNpbmNsdWRlICJSZWdpc3RlclByZXNlcnZh
dGlvbldyYXBwZXJHZW5lcmF0b3IuaCIKICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KIAog
bmFtZXNwYWNlIEpTQyB7CkBAIC00MSwxMSArNDIsOSBAQCBKSVRDb2RlOjp+SklUQ29kZSgpCiB7
CiB9CiAKLUpTVmFsdWUgSklUQ29kZTo6ZXhlY3V0ZShWTSogdm0sIFByb3RvQ2FsbEZyYW1lKiBw
cm90b0NhbGxGcmFtZSwgUmVnaXN0ZXIqIHRvcE9mU3RhY2spCitKU1ZhbHVlIEpJVENvZGU6OmV4
ZWN1dGUoVk0qIHZtLCBQcm90b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWUpCiB7Ci0gICAgQVNT
RVJUKCF2bS0+dG9wQ2FsbEZyYW1lIHx8ICgoUmVnaXN0ZXIqKSh2bS0+dG9wQ2FsbEZyYW1lKSA+
PSB0b3BPZlN0YWNrKSk7Ci0KLSAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShj
YWxsVG9KYXZhU2NyaXB0KGV4ZWN1dGFibGVBZGRyZXNzKCksICZ2bS0+dG9wQ2FsbEZyYW1lLCBw
cm90b0NhbGxGcmFtZSwgdG9wT2ZTdGFjaykpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNWYWx1
ZTo6ZGVjb2RlKGNhbGxUb0phdmFTY3JpcHQoZXhlY3V0YWJsZUFkZHJlc3MoKSwgdm0sIHByb3Rv
Q2FsbEZyYW1lKSk7CiAgICAgcmV0dXJuIHZtLT5leGNlcHRpb24oKSA/IGpzTnVsbCgpIDogcmVz
dWx0OwogfQogCkBAIC03Myw1MiArNzIsMzUgQEAgRlRMOjpGb3JPU1JFbnRyeUpJVENvZGUqIEpJ
VENvZGU6OmZ0bEZvck9TUkVudHJ5KCkKICAgICByZXR1cm4gMDsKIH0KIAotUGFzc1JlZlB0cjxK
SVRDb2RlPiBKSVRDb2RlOjpob3N0RnVuY3Rpb24oSklUQ29kZTo6Q29kZVJlZiBjb2RlKQotewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShjb2RlLCBIb3N0Q2FsbFRodW5r
KSk7Ci19Ci0KLURpcmVjdEpJVENvZGU6OkRpcmVjdEpJVENvZGUoSklUVHlwZSBqaXRUeXBlKQor
SklUQ29kZVdpdGhDb2RlUmVmOjpKSVRDb2RlV2l0aENvZGVSZWYoSklUVHlwZSBqaXRUeXBlKQog
ICAgIDogSklUQ29kZShqaXRUeXBlKQogewogfQogCi1EaXJlY3RKSVRDb2RlOjpEaXJlY3RKSVRD
b2RlKGNvbnN0IEpJVENvZGU6OkNvZGVSZWYgcmVmLCBKSVRUeXBlIGppdFR5cGUpCitKSVRDb2Rl
V2l0aENvZGVSZWY6OkpJVENvZGVXaXRoQ29kZVJlZihDb2RlUmVmIHJlZiwgSklUVHlwZSBqaXRU
eXBlKQogICAgIDogSklUQ29kZShqaXRUeXBlKQogICAgICwgbV9yZWYocmVmKQogewogfQogCi1E
aXJlY3RKSVRDb2RlOjp+RGlyZWN0SklUQ29kZSgpCi17Ci19Ci0KLXZvaWQgRGlyZWN0SklUQ29k
ZTo6aW5pdGlhbGl6ZUNvZGVSZWYoY29uc3QgSklUQ29kZTo6Q29kZVJlZiByZWYpCi17Ci0gICAg
UkVMRUFTRV9BU1NFUlQoIW1fcmVmKTsKLSAgICBtX3JlZiA9IHJlZjsKLX0KLQotSklUQ29kZTo6
Q29kZVB0ciBEaXJlY3RKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbCgpCitKSVRDb2RlV2l0aENvZGVS
ZWY6On5KSVRDb2RlV2l0aENvZGVSZWYoKQogewotICAgIFJFTEVBU0VfQVNTRVJUKG1fcmVmKTsK
LSAgICByZXR1cm4gbV9yZWYuY29kZSgpOwogfQogCi12b2lkKiBEaXJlY3RKSVRDb2RlOjpleGVj
dXRhYmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpCit2b2lkKiBKSVRDb2RlV2l0aENv
ZGVSZWY6OmV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkKIHsKICAgICBS
RUxFQVNFX0FTU0VSVChtX3JlZik7CiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+
KG1fcmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSArIG9mZnNldDsKIH0KIAotdm9pZCog
RGlyZWN0SklUQ29kZTo6ZGF0YUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KQordm9pZCog
SklUQ29kZVdpdGhDb2RlUmVmOjpkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpCiB7
CiAgICAgUkVMRUFTRV9BU1NFUlQobV9yZWYpOwogICAgIEFTU0VSVChvZmZzZXQgPD0gc2l6ZSgp
KTsgLy8gdXNlIDw9IGluc3RlYWQgb2YgPCBiZWNhdXNlIGl0IGlzIHZhbGlkIHRvIGFzayBmb3Ig
YW4gYWRkcmVzcyBhdCB0aGUgZXhjbHVzaXZlIGVuZCBvZiB0aGUgY29kZS4KICAgICByZXR1cm4g
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9yZWYuY29kZSgpLmRhdGFMb2NhdGlvbigpKSArIG9m
ZnNldDsKIH0KIAotdW5zaWduZWQgRGlyZWN0SklUQ29kZTo6b2Zmc2V0T2Yodm9pZCogcG9pbnRl
ckludG9Db2RlKQordW5zaWduZWQgSklUQ29kZVdpdGhDb2RlUmVmOjpvZmZzZXRPZih2b2lkKiBw
b2ludGVySW50b0NvZGUpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9yZWYpOwogICAgIGludHB0
cl90IHJlc3VsdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHBvaW50ZXJJbnRvQ29kZSkg
LSByZWludGVycHJldF9jYXN0PGludHB0cl90PihtX3JlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJl
c3MoKSk7CkBAIC0xMjYsMTggKzEwOCwxMTcgQEAgdW5zaWduZWQgRGlyZWN0SklUQ29kZTo6b2Zm
c2V0T2Yodm9pZCogcG9pbnRlckludG9Db2RlKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4ocmVzdWx0KTsKIH0KIAotc2l6ZV90IERpcmVjdEpJVENvZGU6OnNpemUoKQorc2l6ZV90
IEpJVENvZGVXaXRoQ29kZVJlZjo6c2l6ZSgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9yZWYp
OwogICAgIHJldHVybiBtX3JlZi5zaXplKCk7CiB9CiAKLWJvb2wgRGlyZWN0SklUQ29kZTo6Y29u
dGFpbnModm9pZCogYWRkcmVzcykKK2Jvb2wgSklUQ29kZVdpdGhDb2RlUmVmOjpjb250YWlucyh2
b2lkKiBhZGRyZXNzKQogewogICAgIFJFTEVBU0VfQVNTRVJUKG1fcmVmKTsKICAgICByZXR1cm4g
bV9yZWYuZXhlY3V0YWJsZU1lbW9yeSgpLT5jb250YWlucyhhZGRyZXNzKTsKIH0KIAorRGlyZWN0
SklUQ29kZTo6RGlyZWN0SklUQ29kZShKSVRUeXBlIGppdFR5cGUpCisgICAgOiBKSVRDb2RlV2l0
aENvZGVSZWYoaml0VHlwZSkKK3sKK30KKworRGlyZWN0SklUQ29kZTo6RGlyZWN0SklUQ29kZSgK
KyAgICBKSVRDb2RlOjpDb2RlUmVmIHJlZiwgSklUQ29kZTo6Q29kZVB0ciB3aXRoQXJpdHlDaGVj
aywgSklUVHlwZSBqaXRUeXBlKQorICAgIDogSklUQ29kZVdpdGhDb2RlUmVmKHJlZiwgaml0VHlw
ZSkKKyAgICAsIG1fd2l0aEFyaXR5Q2hlY2sod2l0aEFyaXR5Q2hlY2spCit7Cit9CisKK0RpcmVj
dEpJVENvZGU6On5EaXJlY3RKSVRDb2RlKCkKK3sKK30KKwordm9pZCBEaXJlY3RKSVRDb2RlOjpp
bml0aWFsaXplQ29kZVJlZihKSVRDb2RlOjpDb2RlUmVmIHJlZiwgSklUQ29kZTo6Q29kZVB0ciB3
aXRoQXJpdHlDaGVjaykKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCghbV9yZWYpOworICAgIG1fcmVm
ID0gcmVmOworICAgIG1fd2l0aEFyaXR5Q2hlY2sgPSB3aXRoQXJpdHlDaGVjazsKK30KKworRGly
ZWN0SklUQ29kZTo6UmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVycyogRGlyZWN0SklUQ29kZTo6
ZW5zdXJlV3JhcHBlcnMoKQoreworICAgIGlmICghbV93cmFwcGVycykKKyAgICAgICAgbV93cmFw
cGVycyA9IHN0ZDo6bWFrZV91bmlxdWU8UmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVycz4oKTsK
KyAgICByZXR1cm4gbV93cmFwcGVycy5nZXQoKTsKK30KKworSklUQ29kZTo6Q29kZVB0ciBEaXJl
Y3RKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbCgKKyAgICBWTSYgdm0sIEV4ZWN1dGFibGVCYXNlKiBl
eGVjdXRhYmxlLCBBcml0eUNoZWNrTW9kZSBhcml0eSwKKyAgICBSZWdpc3RlclByZXNlcnZhdGlv
bk1vZGUgcmVnaXN0ZXJzKQoreworICAgIHN3aXRjaCAoYXJpdHkpIHsKKyAgICBjYXNlIEFyaXR5
Q2hlY2tOb3RSZXF1aXJlZDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAg
Y2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlQobV9yZWYpOworICAgICAgICAgICAgcmV0dXJuIG1fcmVmLmNvZGUoKTsKKyAgICAg
ICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6IHsKKyNpZiBFTkFCTEUoSklUKQorICAgICAg
ICAgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVycyogd3JhcHBlcnMgPSBlbnN1cmVXcmFw
cGVycygpOworICAgICAgICAgICAgaWYgKCF3cmFwcGVycy0+d2l0aG91dEFyaXR5Q2hlY2spCisg
ICAgICAgICAgICAgICAgd3JhcHBlcnMtPndpdGhvdXRBcml0eUNoZWNrID0gZ2VuZXJhdGVSZWdp
c3RlclByZXNlcnZhdGlvbldyYXBwZXIodm0sIGV4ZWN1dGFibGUsIG1fcmVmLmNvZGUoKSk7Cisg
ICAgICAgICAgICByZXR1cm4gd3JhcHBlcnMtPndpdGhvdXRBcml0eUNoZWNrLmNvZGUoKTsKKyNl
bHNlCisgICAgICAgICAgICBVTlVTRURfUEFSQU0odm0pOworICAgICAgICAgICAgVU5VU0VEX1BB
UkFNKGV4ZWN1dGFibGUpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyNlbmRpZgorICAgICAgICB9IH0KKyAgICBjYXNlIE11c3RDaGVja0FyaXR5OgorICAgICAg
ICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9u
Tm90UmVxdWlyZWQ6CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChtX3dpdGhBcml0eUNoZWNr
KTsKKyAgICAgICAgICAgIHJldHVybiBtX3dpdGhBcml0eUNoZWNrOworICAgICAgICBjYXNlIE11
c3RQcmVzZXJ2ZVJlZ2lzdGVyczogeworI2lmIEVOQUJMRShKSVQpCisgICAgICAgICAgICBSZWdp
c3RlclByZXNlcnZhdGlvbldyYXBwZXJzKiB3cmFwcGVycyA9IGVuc3VyZVdyYXBwZXJzKCk7Cisg
ICAgICAgICAgICBpZiAoIXdyYXBwZXJzLT53aXRoQXJpdHlDaGVjaykKKyAgICAgICAgICAgICAg
ICB3cmFwcGVycy0+d2l0aEFyaXR5Q2hlY2sgPSBnZW5lcmF0ZVJlZ2lzdGVyUHJlc2VydmF0aW9u
V3JhcHBlcih2bSwgZXhlY3V0YWJsZSwgbV93aXRoQXJpdHlDaGVjayk7CisgICAgICAgICAgICBy
ZXR1cm4gd3JhcHBlcnMtPndpdGhBcml0eUNoZWNrLmNvZGUoKTsKKyNlbHNlCisgICAgICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgIH0gfQorICAg
IH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBDb2RlUHRy
KCk7Cit9CisKK05hdGl2ZUpJVENvZGU6Ok5hdGl2ZUpJVENvZGUoSklUVHlwZSBqaXRUeXBlKQor
ICAgIDogSklUQ29kZVdpdGhDb2RlUmVmKGppdFR5cGUpCit7Cit9CisKK05hdGl2ZUpJVENvZGU6
Ok5hdGl2ZUpJVENvZGUoQ29kZVJlZiByZWYsIEpJVFR5cGUgaml0VHlwZSkKKyAgICA6IEpJVENv
ZGVXaXRoQ29kZVJlZihyZWYsIGppdFR5cGUpCit7Cit9CisKK05hdGl2ZUpJVENvZGU6On5OYXRp
dmVKSVRDb2RlKCkKK3sKK30KKwordm9pZCBOYXRpdmVKSVRDb2RlOjppbml0aWFsaXplQ29kZVJl
ZihDb2RlUmVmIHJlZikKK3sKKyAgICBBU1NFUlQoIW1fcmVmKTsKKyAgICBtX3JlZiA9IHJlZjsK
K30KKworSklUQ29kZTo6Q29kZVB0ciBOYXRpdmVKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbCgKKyAg
ICBWTSYsIEV4ZWN1dGFibGVCYXNlKiwgQXJpdHlDaGVja01vZGUsIFJlZ2lzdGVyUHJlc2VydmF0
aW9uTW9kZSkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCghIW1fcmVmKTsKKyAgICByZXR1cm4gbV9y
ZWYuY29kZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogbmFtZXNwYWNlIFdURiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCmluZGV4IDUyYzc4MTExYTRkNjhlYjBmYWY5NzQ5
MDM4N2M1ODJlMjc2MmRlZmQuLjQxYjMxZjJmMTYwMWZmYjVmZTQ3ZWFjMTU3MzdlMGFjZDQ4ODNl
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCkBAIC0yNiwxNCArMjYsMTQgQEAK
ICNpZm5kZWYgSklUQ29kZV9oCiAjZGVmaW5lIEpJVENvZGVfaAogCi0jaWYgRU5BQkxFKEpJVCkg
fHwgRU5BQkxFKExMSU5UKQorI2luY2x1ZGUgIkFyaXR5Q2hlY2tNb2RlLmgiCiAjaW5jbHVkZSAi
Q2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiRGlzYXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiSklUU3R1
YnMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIu
aCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCIKLSNlbmRpZgorI2luY2x1ZGUg
IlJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNTQs
NyArNTQsMTQgQEAgcHVibGljOgogICAgIHR5cGVkZWYgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIENv
ZGVSZWY7CiAgICAgdHlwZWRlZiBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgQ29kZVB0cjsKIAotICAg
IGVudW0gSklUVHlwZSB7IE5vbmUsIEhvc3RDYWxsVGh1bmssIEludGVycHJldGVyVGh1bmssIEJh
c2VsaW5lSklULCBERkdKSVQsIEZUTEpJVCB9OworICAgIGVudW0gSklUVHlwZSA6IHVpbnQ4X3Qg
eworICAgICAgICBOb25lLAorICAgICAgICBIb3N0Q2FsbFRodW5rLAorICAgICAgICBJbnRlcnBy
ZXRlclRodW5rLAorICAgICAgICBCYXNlbGluZUpJVCwKKyAgICAgICAgREZHSklULAorICAgICAg
ICBGVExKSVQKKyAgICB9OwogICAgIAogICAgIHN0YXRpYyBKSVRUeXBlIGJvdHRvbVRpZXJKSVQo
KQogICAgIHsKQEAgLTE2NCw3ICsxNzEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBqaXRD
b2RlLT5qaXRUeXBlKCk7CiAgICAgfQogICAgIAotICAgIHZpcnR1YWwgQ29kZVB0ciBhZGRyZXNz
Rm9yQ2FsbCgpID0gMDsKKyAgICB2aXJ0dWFsIENvZGVQdHIgYWRkcmVzc0ZvckNhbGwoVk0mLCBF
eGVjdXRhYmxlQmFzZSosIEFyaXR5Q2hlY2tNb2RlLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90
IG9mZnNldCkgPSAwOwogICAgIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzKCkgeyByZXR1cm4gZXhl
Y3V0YWJsZUFkZHJlc3NBdE9mZnNldCgwKTsgfQogICAgIHZpcnR1YWwgdm9pZCogZGF0YUFkZHJl
c3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KSA9IDA7CkBAIC0xNzUsNyArMTgyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgRlRMOjpKSVRDb2RlKiBmdGwoKTsKICAgICB2aXJ0dWFsIEZUTDo6Rm9y
T1NSRW50cnlKSVRDb2RlKiBmdGxGb3JPU1JFbnRyeSgpOwogICAgIAotICAgIEpTVmFsdWUgZXhl
Y3V0ZShWTSosIFByb3RvQ2FsbEZyYW1lKiwgUmVnaXN0ZXIqKTsKKyAgICBKU1ZhbHVlIGV4ZWN1
dGUoVk0qLCBQcm90b0NhbGxGcmFtZSopOwogICAgIAogICAgIHZvaWQqIHN0YXJ0KCkgeyByZXR1
cm4gZGF0YUFkZHJlc3NBdE9mZnNldCgwKTsgfQogICAgIHZpcnR1YWwgc2l6ZV90IHNpemUoKSA9
IDA7CkBAIC0xODMsMzEgKzE5MCw2MiBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCBib29s
IGNvbnRhaW5zKHZvaWQqKSA9IDA7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKSVRDb2RlPiBo
b3N0RnVuY3Rpb24oQ29kZVJlZik7Ci0KIHByaXZhdGU6CiAgICAgSklUVHlwZSBtX2ppdFR5cGU7
CiB9OwogCi1jbGFzcyBEaXJlY3RKSVRDb2RlIDogcHVibGljIEpJVENvZGUgeworY2xhc3MgSklU
Q29kZVdpdGhDb2RlUmVmIDogcHVibGljIEpJVENvZGUgeworcHJvdGVjdGVkOgorICAgIEpJVENv
ZGVXaXRoQ29kZVJlZihKSVRUeXBlKTsKKyAgICBKSVRDb2RlV2l0aENvZGVSZWYoQ29kZVJlZiwg
SklUVHlwZSk7CisKIHB1YmxpYzoKLSAgICBEaXJlY3RKSVRDb2RlKEpJVFR5cGUpOwotICAgIERp
cmVjdEpJVENvZGUoY29uc3QgQ29kZVJlZiwgSklUVHlwZSk7Ci0gICAgdmlydHVhbCB+RGlyZWN0
SklUQ29kZSgpOwotICAgIAotICAgIHZvaWQgaW5pdGlhbGl6ZUNvZGVSZWYoQ29kZVJlZiByZWYp
OworICAgIHZpcnR1YWwgfkpJVENvZGVXaXRoQ29kZVJlZigpOwogCi0gICAgdmlydHVhbCBDb2Rl
UHRyIGFkZHJlc3NGb3JDYWxsKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkKiBleGVjdXRh
YmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCogZGF0YUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHVuc2lnbmVkIG9mZnNldE9mKHZvaWQqIHBvaW50ZXJJbnRvQ29kZSkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBzaXplX3Qgc2l6ZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBj
b250YWlucyh2b2lkKikgb3ZlcnJpZGU7CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgQ29k
ZVJlZiBtX3JlZjsKIH07CiAKK2NsYXNzIERpcmVjdEpJVENvZGUgOiBwdWJsaWMgSklUQ29kZVdp
dGhDb2RlUmVmIHsKK3B1YmxpYzoKKyAgICBEaXJlY3RKSVRDb2RlKEpJVFR5cGUpOworICAgIERp
cmVjdEpJVENvZGUoQ29kZVJlZiwgQ29kZVB0ciB3aXRoQXJpdHlDaGVjaywgSklUVHlwZSk7Cisg
ICAgdmlydHVhbCB+RGlyZWN0SklUQ29kZSgpOworICAgIAorICAgIHZvaWQgaW5pdGlhbGl6ZUNv
ZGVSZWYoQ29kZVJlZiByZWYsIENvZGVQdHIgd2l0aEFyaXR5Q2hlY2spOworCisgICAgdmlydHVh
bCBDb2RlUHRyIGFkZHJlc3NGb3JDYWxsKFZNJiwgRXhlY3V0YWJsZUJhc2UqLCBBcml0eUNoZWNr
TW9kZSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAg
ICBzdHJ1Y3QgUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVycyB7CisgICAgICAgIENvZGVSZWYg
d2l0aG91dEFyaXR5Q2hlY2s7CisgICAgICAgIENvZGVSZWYgd2l0aEFyaXR5Q2hlY2s7CisgICAg
fTsKKworICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcnMqIGVuc3VyZVdyYXBwZXJzKCk7
CisgICAgCisgICAgQ29kZVB0ciBtX3dpdGhBcml0eUNoZWNrOworICAgIAorICAgIHN0ZDo6dW5p
cXVlX3B0cjxSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJzPiBtX3dyYXBwZXJzOworfTsKKwor
Y2xhc3MgTmF0aXZlSklUQ29kZSA6IHB1YmxpYyBKSVRDb2RlV2l0aENvZGVSZWYgeworcHVibGlj
OgorICAgIE5hdGl2ZUpJVENvZGUoSklUVHlwZSk7CisgICAgTmF0aXZlSklUQ29kZShDb2RlUmVm
LCBKSVRUeXBlKTsKKyAgICB2aXJ0dWFsIH5OYXRpdmVKSVRDb2RlKCk7CisgICAgCisgICAgdm9p
ZCBpbml0aWFsaXplQ29kZVJlZihDb2RlUmVmIHJlZik7CisKKyAgICB2aXJ0dWFsIENvZGVQdHIg
YWRkcmVzc0ZvckNhbGwoVk0mLCBFeGVjdXRhYmxlQmFzZSosIEFyaXR5Q2hlY2tNb2RlLCBSZWdp
c3RlclByZXNlcnZhdGlvbk1vZGUpIG92ZXJyaWRlOworfTsKKwogfSAvLyBuYW1lc3BhY2UgSlND
CiAKIG5hbWVzcGFjZSBXVEYgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRFeGNlcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0
aW9ucy5jcHAKaW5kZXggODA4NGY3NzNiMjFkZDZkN2ZjMGFjMzg5ZDU3YTNkZDI2YWM0YmNkZC4u
MmI2MzdjMTE2NDZmYzY1OTdhNDE5Y2VjZTNjZjM2YzNlYzA4MjJkYiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCkBAIC00Myw2ICs0MywxMSBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogdm9pZCBnZW5lcmljVW53aW5kKFZNKiB2bSwgRXhlY1N0YXRlKiBjYWxs
RnJhbWUsIEpTVmFsdWUgZXhjZXB0aW9uVmFsdWUpCiB7CisgICAgaWYgKE9wdGlvbnM6OmJyZWFr
T25UaHJvdygpKSB7CisgICAgICAgIGRhdGFMb2coIkluIGNhbGwgZnJhbWUgIiwgUmF3UG9pbnRl
cihjYWxsRnJhbWUpLCAiIGZvciBjb2RlIGJsb2NrICIsICpjYWxsRnJhbWUtPmNvZGVCbG9jaygp
LCAiXG4iKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9CisgICAgCiAgICAgUkVMRUFTRV9BU1NF
UlQoZXhjZXB0aW9uVmFsdWUpOwogICAgIEhhbmRsZXJJbmZvKiBoYW5kbGVyID0gdm0tPmludGVy
cHJldGVyLT51bndpbmQoY2FsbEZyYW1lLCBleGNlcHRpb25WYWx1ZSk7IC8vIFRoaXMgbWF5IHVw
ZGF0ZSBjYWxsRnJhbWUuCiAKQEAgLTU2LDcgKzYxLDcgQEAgdm9pZCBnZW5lcmljVW53aW5kKFZN
KiB2bSwgRXhlY1N0YXRlKiBjYWxsRnJhbWUsIEpTVmFsdWUgZXhjZXB0aW9uVmFsdWUpCiAgICAg
ICAgIGNhdGNoUm91dGluZSA9IGNhdGNoUENGb3JJbnRlcnByZXRlci0+dS5wb2ludGVyOwogI2Vu
ZGlmCiAgICAgfSBlbHNlCi0gICAgICAgIGNhdGNoUm91dGluZSA9IExMSW50OjpnZXRDb2RlUHRy
KHJldHVybkZyb21KYXZhU2NyaXB0KTsKKyAgICAgICAgY2F0Y2hSb3V0aW5lID0gTExJbnQ6Omdl
dENvZGVQdHIoaGFuZGxlVW5jYXVnaHRFeGNlcHRpb24pOwogICAgIAogICAgIHZtLT5jYWxsRnJh
bWVGb3JUaHJvdyA9IGNhbGxGcmFtZTsKICAgICB2bS0+dGFyZ2V0TWFjaGluZVBDRm9yVGhyb3cg
PSBjYXRjaFJvdXRpbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VElubGluZUNhY2hlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
SW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCmluZGV4IDc0YjA4NmE3YzU3MzQ2M2QwNzNmZjMxNDg2
NTdiMGQwY2FjNTFmYjYuLjJmM2VmNTcwZDU4OGQ5ZTdhODczOWY0OTQwNmFlMmYxNjYxMjc1Njcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5l
cmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVH
ZW5lcmF0b3IuY3BwCkBAIC00OSw3ICs0OSw3IEBAIEpJVElubGluZUNhY2hlR2VuZXJhdG9yOjpK
SVRJbmxpbmVDYWNoZUdlbmVyYXRvcihDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZU9yaWdpCiAK
IEpJVEJ5SWRHZW5lcmF0b3I6OkpJVEJ5SWRHZW5lcmF0b3IoCiAgICAgQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdp
c3RlcnMsCi0gICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1ZhbHVlUmVncyBiYXNlLCBK
U1ZhbHVlUmVncyB2YWx1ZSwgYm9vbCByZWdpc3RlcnNGbHVzaGVkKQorICAgIEpTVmFsdWVSZWdz
IGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQpCiAgICAgOiBK
SVRJbmxpbmVDYWNoZUdlbmVyYXRvcihjb2RlQmxvY2ssIGNvZGVPcmlnaW4pCiAgICAgLCBtX2Jh
c2UoYmFzZSkKICAgICAsIG1fdmFsdWUodmFsdWUpCkBAIC02Miw3ICs2Miw2IEBAIEpJVEJ5SWRH
ZW5lcmF0b3I6OkpJVEJ5SWRHZW5lcmF0b3IoCiAgICAgbV9zdHViSW5mby0+cGF0Y2gudXNlZFJl
Z2lzdGVycy5zZXQoYmFzZSk7CiAgICAgbV9zdHViSW5mby0+cGF0Y2gudXNlZFJlZ2lzdGVycy5z
ZXQodmFsdWUpOwogICAgIAotICAgIG1fc3R1YkluZm8tPnBhdGNoLmNhbGxGcmFtZVJlZ2lzdGVy
ID0gc3RhdGljX2Nhc3Q8aW50OF90PihjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgbV9zdHViSW5m
by0+cGF0Y2guYmFzZUdQUiA9IHN0YXRpY19jYXN0PGludDhfdD4oYmFzZS5wYXlsb2FkR1BSKCkp
OwogICAgIG1fc3R1YkluZm8tPnBhdGNoLnZhbHVlR1BSID0gc3RhdGljX2Nhc3Q8aW50OF90Pih2
YWx1ZS5wYXlsb2FkR1BSKCkpOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCkBAIC0xMzAsMTEgKzEy
OSw5IEBAIHZvaWQgSklUR2V0QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fz
c2VtYmxlciYgaml0KQogCiBKSVRQdXRCeUlkR2VuZXJhdG9yOjpKSVRQdXRCeUlkR2VuZXJhdG9y
KAogICAgIENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIGNvbnN0
IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLAotICAgIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3Rl
ciwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlZyBzY3JhdGNoLAot
ICAgIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCwgRUNNQU1vZGUgZWNtYU1vZGUsIFB1dEtpbmQgcHV0
S2luZCkKLSAgICA6IEpJVEJ5SWRHZW5lcmF0b3IoCi0gICAgICAgIGNvZGVCbG9jaywgY29kZU9y
aWdpbiwgdXNlZFJlZ2lzdGVycywgY2FsbEZyYW1lUmVnaXN0ZXIsIGJhc2UsIHZhbHVlLAotICAg
ICAgICByZWdpc3RlcnNGbHVzaGVkKQorICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdz
IHZhbHVlLCBHUFJSZWcgc2NyYXRjaCwgYm9vbCByZWdpc3RlcnNGbHVzaGVkLAorICAgIEVDTUFN
b2RlIGVjbWFNb2RlLCBQdXRLaW5kIHB1dEtpbmQpCisgICAgOiBKSVRCeUlkR2VuZXJhdG9yKGNv
ZGVCbG9jaywgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycywgYmFzZSwgdmFsdWUsIHJlZ2lzdGVy
c0ZsdXNoZWQpCiAgICAgLCBtX3NjcmF0Y2goc2NyYXRjaCkKICAgICAsIG1fZWNtYU1vZGUoZWNt
YU1vZGUpCiAgICAgLCBtX3B1dEtpbmQocHV0S2luZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaAppbmRleCA2ZmYwYzA5YjUxNDNj
YzIyN2VmNGVhMWJiMjY4YmE3M2NkMzJiOGQ4Li42ZGI5ODM2ZDAyYzM1ZWVmZGM4OWIwODc0MDM0
NGEwNzJlZWEyN2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElu
bGluZUNhY2hlR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJ
bmxpbmVDYWNoZUdlbmVyYXRvci5oCkBAIC01Niw4ICs1Niw4IEBAIHByb3RlY3RlZDoKICAgICBK
SVRCeUlkR2VuZXJhdG9yKCkgeyB9CiAKICAgICBKSVRCeUlkR2VuZXJhdG9yKAotICAgICAgICBD
b2RlQmxvY2sqLCBDb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYsIEdQUlJlZyBjYWxsRnJh
bWVSZWdpc3RlciwKLSAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUs
IGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCk7CisgICAgICAgIENvZGVCbG9jayosIENvZGVPcmlnaW4s
IGNvbnN0IFJlZ2lzdGVyU2V0JiwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUs
CisgICAgICAgIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCk7CiAgICAgCiBwdWJsaWM6CiAgICAgdm9p
ZCByZXBvcnRTbG93UGF0aENhbGwoTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIHNsb3dQYXRoQmVnaW4s
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwpCkBAIC05NiwxMSArOTYsOCBAQCBwdWJsaWM6CiAK
ICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yKAogICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaywg
Q29kZU9yaWdpbiBjb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywK
LSAgICAgICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1Zh
bHVlUmVncyB2YWx1ZSwKLSAgICAgICAgYm9vbCByZWdpc3RlcnNGbHVzaGVkKQotICAgICAgICA6
IEpJVEJ5SWRHZW5lcmF0b3IoCi0gICAgICAgICAgICBjb2RlQmxvY2ssIGNvZGVPcmlnaW4sIHVz
ZWRSZWdpc3RlcnMsIGNhbGxGcmFtZVJlZ2lzdGVyLCBiYXNlLCB2YWx1ZSwKLSAgICAgICAgICAg
IHJlZ2lzdGVyc0ZsdXNoZWQpCisgICAgICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdz
IHZhbHVlLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQpCisgICAgICAgIDogSklUQnlJZEdlbmVyYXRv
cihjb2RlQmxvY2ssIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMsIGJhc2UsIHZhbHVlLCByZWdp
c3RlcnNGbHVzaGVkKQogICAgIHsKICAgICB9CiAgICAgCkBAIC0xMTIsOSArMTA5LDggQEAgcHVi
bGljOgogICAgIEpJVFB1dEJ5SWRHZW5lcmF0b3IoKSB7IH0KIAogICAgIEpJVFB1dEJ5SWRHZW5l
cmF0b3IoCi0gICAgICAgIENvZGVCbG9jayosIENvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0
JiB1c2VkUmVnaXN0ZXJzLCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAgIEpTVmFs
dWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZWcgc2NyYXRjaCwgYm9vbCByZWdp
c3RlcnNGbHVzaGVkLAotICAgICAgICBFQ01BTW9kZSwgUHV0S2luZCk7CisgICAgICAgIENvZGVC
bG9jayosIENvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBKU1Zh
bHVlUmVncyBiYXNlLAorICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gs
IGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCwgRUNNQU1vZGUsIFB1dEtpbmQpOwogICAgIAogICAgIHZv
aWQgZ2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOwogICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVElubGluZXMuaAppbmRleCA5MzMwZTc3M2U3NDUxNDM1NDIyMGVmYTY2Nzg2
M2E2ZTlkN2U3MzI2Li43MGJiNGYzZWNiNDIwM2RkMTY1MDIzZTIzNDBiZGY5ZDUyYWM1YjM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaApAQCAtOTMsNyArOTMsNiBAQCBB
TFdBWVNfSU5MSU5FIHZvaWQgSklUOjplbWl0TG9hZENoYXJhY3RlclN0cmluZyhSZWdpc3RlcklE
IHNyYywgUmVnaXN0ZXJJRCBkc3QsCiBBTFdBWVNfSU5MSU5FIEpJVDo6Q2FsbCBKSVQ6OmVtaXRO
YWtlZENhbGwoQ29kZVB0ciBmdW5jdGlvbikKIHsKICAgICBBU1NFUlQobV9ieXRlY29kZU9mZnNl
dCAhPSAodW5zaWduZWQpLTEpOyAvLyBUaGlzIG1ldGhvZCBzaG91bGQgb25seSBiZSBjYWxsZWQg
ZHVyaW5nIGhvdC9jb2xkIHBhdGggZ2VuZXJhdGlvbiwgc28gdGhhdCBtX2J5dGVjb2RlT2Zmc2V0
IGlzIHNldC4KLQogICAgIENhbGwgbmFrZWRDYWxsID0gbmVhckNhbGwoKTsKICAgICBtX2NhbGxz
LmFwcGVuZChDYWxsUmVjb3JkKG5ha2VkQ2FsbCwgbV9ieXRlY29kZU9mZnNldCwgZnVuY3Rpb24u
ZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwogICAgIHJldHVybiBuYWtlZENhbGw7CkBAIC0yMjMsMjEg
KzIyMiwyMSBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9w
ZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FWiBvcGVyYXRpbwogICAgIHJldHVybiBhcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7CiB9CiAK
LUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFBf
SklUT3BlcmF0aW9uX0VaIG9wZXJhdGlvbiwgaW50MzJfdCBvcCkKK0FMV0FZU19JTkxJTkUgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VDQyBv
cGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09wMikKIHsKLSAgICBz
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyKG9wKSk7CisgICAgc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgcmVnT3AyKTsKICAgICByZXR1cm4gYXBwZW5k
Q2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FQ0Mg
b3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIpCitBTFdBWVNf
SU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJh
dGlvbl9FT0pzcyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09w
MikKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCByZWdPcDIpOwog
ICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAK
LUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFNf
SklUT3BlcmF0aW9uX0VPSnNzIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVy
SUQgcmVnT3AyKQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxP
cGVyYXRpb24oU3BydF9KSVRPcGVyYXRpb25fRVogb3BlcmF0aW9uLCBpbnQzMl90IG9wKQogewot
ICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMik7CisgICAgc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMihvcCkpOwogICAgIHJldHVybiBh
cHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKQEAgLTI3Nyw2ICsy
NzYsMTMgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVy
YXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2UKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdp
dGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG9wZXJhdGlvbik7CiB9CiAKK0FMV0FZU19J
TkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uTm9FeGNlcHRpb25D
aGVjayhKX0pJVE9wZXJhdGlvbl9FRSBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3ApCit7Cisg
ICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wKTsKKyAgICB1cGRhdGVUb3BDYWxs
RnJhbWUoKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24pOworfQorCiBBTFdBWVNf
SU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbldpdGhDYWxsRnJh
bWVSb2xsYmFja09uRXhjZXB0aW9uKFZfSklUT3BlcmF0aW9uX0VDYiBvcGVyYXRpb24sIENvZGVC
bG9jayogcG9pbnRlcikKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3Rl
ZEltbVB0cihwb2ludGVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cAppbmRleCAyYmRhZTE5MTRkMDc1YTRkZjYwYmE2MDk4ZTMxNjM5NzFmYWI1MzFmLi5jYTdhZDEx
ZjJlMGI4YTNiOGIxODU4OTFkN2U1MjJiYWU0MDNhMjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJKU0Z1bmN0
aW9uLmgiCiAjaW5jbHVkZSAiSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oIgogI2luY2x1ZGUgIkxp
bmtCdWZmZXIuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgog
I2luY2x1ZGUgIlNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgog
CkBAIC03Myw3ICs3NCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2VuZChJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQogewogICAgIFJFTEVBU0VfQVNTRVJUKHJldHVyblZhbHVlR1BSICE9
IGNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJ
bnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJldHVyblZhbHVlR1BSKTsKLSAgICByZXN0b3JlUmV0
dXJuQWRkcmVzc0JlZm9yZVJldHVybihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJh
bWU6OnJldHVyblBDT2Zmc2V0KCkpKTsKKyAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAg
IHJldCgpOwogfQogCkBAIC0yNjIsMTQgKzI2Myw4IEBAIHZvaWQgSklUOjplbWl0X29wX3JldChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIC8vIFJldHVybiB0aGUgcmVzdWx0
IGluICVlYXguCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25b
MV0udS5vcGVyYW5kLCByZXR1cm5WYWx1ZUdQUik7CiAKLSAgICAvLyBHcmFiIHRoZSByZXR1cm4g
YWRkcmVzcy4KLSAgICBlbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKHJlZ1Qx
KTsKLQotICAgIC8vIFJlc3RvcmUgb3VyIGNhbGxlcidzICJyIi4KLSAgICBlbWl0R2V0Q2FsbGVy
RnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKGNhbGxGcmFtZVJlZ2lzdGVyKTsKLQotICAgIC8v
IFJldHVybi4KLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdUMSk7Cisg
ICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKKyAgICBlbWl0RnVuY3Rpb25FcGlsb2d1
ZSgpOwogICAgIHJldCgpOwogfQogCkBAIC0yODUsMTQgKzI4MCw4IEBAIHZvaWQgSklUOjplbWl0
X29wX3JldF9vYmplY3Rfb3JfdGhpcyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQog
ICAgIGxvYWRQdHIoQWRkcmVzcyhyZXR1cm5WYWx1ZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZz
ZXQoKSksIHJlZ1QyKTsKICAgICBKdW1wIG5vdE9iamVjdCA9IGVtaXRKdW1wSWZOb3RPYmplY3Qo
cmVnVDIpOwogCi0gICAgLy8gR3JhYiB0aGUgcmV0dXJuIGFkZHJlc3MuCi0gICAgZW1pdEdldFJl
dHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihyZWdUMSk7Ci0KLSAgICAvLyBSZXN0b3JlIG91
ciBjYWxsZXIncyAiciIuCi0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRl
clB0cihjYWxsRnJhbWVSZWdpc3Rlcik7Ci0KICAgICAvLyBSZXR1cm4uCi0gICAgcmVzdG9yZVJl
dHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocmVnVDEpOworICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KCk7CiAgICAgcmV0KCk7CiAKICAgICAvLyBSZXR1cm4gJ3RoaXMnIGluICVlYXguCkBAIC0zMDAs
MTQgKzI4OSw4IEBAIHZvaWQgSklUOjplbWl0X29wX3JldF9vYmplY3Rfb3JfdGhpcyhJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIG5vdE9iamVjdC5saW5rKHRoaXMpOwogICAg
IGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCwg
cmV0dXJuVmFsdWVHUFIpOwogCi0gICAgLy8gR3JhYiB0aGUgcmV0dXJuIGFkZHJlc3MuCi0gICAg
ZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihyZWdUMSk7Ci0KLSAgICAvLyBS
ZXN0b3JlIG91ciBjYWxsZXIncyAiciIuCi0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxG
cmFtZUhlYWRlclB0cihjYWxsRnJhbWVSZWdpc3Rlcik7Ci0KICAgICAvLyBSZXR1cm4uCi0gICAg
cmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocmVnVDEpOworICAgIGVtaXRGdW5jdGlv
bkVwaWxvZ3VlKCk7CiAgICAgcmV0KCk7CiB9CiAKQEAgLTY1MCw2ICs2MzMsOSBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9jYXRjaChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAg
IG1vdmUoVHJ1c3RlZEltbVB0cihtX3ZtKSwgcmVnVDMpOwogICAgIGxvYWQ2NChBZGRyZXNzKHJl
Z1QzLCBWTTo6Y2FsbEZyYW1lRm9yVGhyb3dPZmZzZXQoKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsK
KworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKGNvZGVCbG9j
aygpKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVy
UmVnaXN0ZXIpOworCiAgICAgbG9hZDY0KEFkZHJlc3MocmVnVDMsIFZNOjpleGNlcHRpb25PZmZz
ZXQoKSksIHJlZ1QwKTsKICAgICBzdG9yZTY0KFRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUo
SlNWYWx1ZSgpKSksIEFkZHJlc3MocmVnVDMsIFZNOjpleGNlcHRpb25PZmZzZXQoKSkpOwogICAg
IGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7
CkBAIC0xMTAzLDIwICsxMDg5LDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbG9vcF9oaW50KEluc3Ry
dWN0aW9uKikKIHsKICAgICAvLyBFbWl0IHRoZSBKSVQgb3B0aW1pemF0aW9uIGNoZWNrOiAKICAg
ICBpZiAoY2FuQmVPcHRpbWl6ZWQoKSkgewotICAgICAgICBpZiAoT3B0aW9uczo6ZW5hYmxlT1NS
RW50cnlJbkxvb3BzKCkpIHsKLSAgICAgICAgICAgIGFkZFNsb3dDYXNlKGJyYW5jaEFkZDMyKFBv
c2l0aXZlT3JaZXJvLCBUcnVzdGVkSW1tMzIoT3B0aW9uczo6ZXhlY3V0aW9uQ291bnRlckluY3Jl
bWVudEZvckxvb3AoKSksCi0gICAgICAgICAgICAgICAgQWJzb2x1dGVBZGRyZXNzKG1fY29kZUJs
b2NrLT5hZGRyZXNzT2ZKSVRFeGVjdXRlQ291bnRlcigpKSkpOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgLy8gQWRkIHdpdGggc2F0dXJhdGlvbi4KLSAgICAgICAgICAgIG1vdmUoVHJ1
c3RlZEltbVB0cihtX2NvZGVCbG9jay0+YWRkcmVzc09mSklURXhlY3V0ZUNvdW50ZXIoKSksIHJl
Z1QzKTsKLSAgICAgICAgICAgIGxvYWQzMihyZWdUMywgcmVnVDIpOwotICAgICAgICAgICAgSnVt
cCBkb250QWRkID0gYnJhbmNoMzIoCi0gICAgICAgICAgICAgICAgR3JlYXRlclRoYW4sIHJlZ1Qy
LAotICAgICAgICAgICAgICAgIFRydXN0ZWRJbW0zMihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMy
X3Q+OjptYXgoKSAtIE9wdGlvbnM6OmV4ZWN1dGlvbkNvdW50ZXJJbmNyZW1lbnRGb3JMb29wKCkp
KTsKLSAgICAgICAgICAgIGFkZDMyKFRydXN0ZWRJbW0zMihPcHRpb25zOjpleGVjdXRpb25Db3Vu
dGVySW5jcmVtZW50Rm9yTG9vcCgpKSwgcmVnVDIpOwotICAgICAgICAgICAgc3RvcmUzMihyZWdU
MiwgcmVnVDMpOwotICAgICAgICAgICAgZG9udEFkZC5saW5rKHRoaXMpOwotICAgICAgICB9Cisg
ICAgICAgIGFkZFNsb3dDYXNlKGJyYW5jaEFkZDMyKFBvc2l0aXZlT3JaZXJvLCBUcnVzdGVkSW1t
MzIoT3B0aW9uczo6ZXhlY3V0aW9uQ291bnRlckluY3JlbWVudEZvckxvb3AoKSksCisgICAgICAg
ICAgICBBYnNvbHV0ZUFkZHJlc3MobV9jb2RlQmxvY2stPmFkZHJlc3NPZkpJVEV4ZWN1dGVDb3Vu
dGVyKCkpKSk7CiAgICAgfQogCiAgICAgLy8gRW1pdCB0aGUgd2F0Y2hkb2cgdGltZXIgY2hlY2s6
CkBAIC0xMTI4LDExICsxMTAyLDEyIEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9sb29wX2hpbnQo
SW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpCiB7CiAjaWYg
RU5BQkxFKERGR19KSVQpCiAgICAgLy8gRW1pdCB0aGUgc2xvdyBwYXRoIGZvciB0aGUgSklUIG9w
dGltaXphdGlvbiBjaGVjazoKLSAgICBpZiAoY2FuQmVPcHRpbWl6ZWQoKSAmJiBPcHRpb25zOjpl
bmFibGVPU1JFbnRyeUluTG9vcHMoKSkgeworICAgIGlmIChjYW5CZU9wdGltaXplZCgpKSB7CiAg
ICAgICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKICAgICAgICAgCiAgICAgICAgIGNhbGxPcGVyYXRp
b24ob3BlcmF0aW9uT3B0aW1pemUsIG1fYnl0ZWNvZGVPZmZzZXQpOwogICAgICAgICBKdW1wIG5v
T3B0aW1pemVkRW50cnkgPSBicmFuY2hUZXN0UHRyKFplcm8sIHJldHVyblZhbHVlR1BSKTsKKyAg
ICAgICAgbW92ZShyZXR1cm5WYWx1ZUdQUjIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICAg
ICAganVtcChyZXR1cm5WYWx1ZUdQUik7CiAgICAgICAgIG5vT3B0aW1pemVkRW50cnkubGluayh0
aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
MzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3Bw
CmluZGV4IDI5ZTg4ODBhYTU2NWM1MmRkNjNiZjMyNDZhNTBiYTg5OTlmNWUwY2MuLjk4ZDEwYTNm
NGRjYjEyZDg5ZjM3YTEyZjIyNjA0Yjk0NmUwOGU2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA5LCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUGF0cmljayBHYW5zdGVy
ZXIgPHBhcm9nYUBwYXJvZ2EuY29tPgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzksNiArMzksNyBA
QAogI2luY2x1ZGUgIkpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU1Zhcmlh
YmxlT2JqZWN0LmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIk1heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiU2xvd1BhdGhDYWxsLmgiCiAjaW5j
bHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgiCiAKQEAgLTQ4LDYgKzQ5LDcgQEAgSklUOjpDb2RlUmVm
IEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKFZNKiB2bSwgTmF0aXZlRnVuY3Rpb24g
ZnVuYykKIHsKICAgICBDYWxsIG5hdGl2ZUNhbGw7CiAKKyAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1
ZSgpOwogICAgIGVtaXRQdXRJbW1lZGlhdGVUb0NhbGxGcmFtZUhlYWRlcigwLCBKU1N0YWNrOjpD
b2RlQmxvY2spOwogICAgIHN0b3JlUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCAmbV92bS0+dG9wQ2Fs
bEZyYW1lKTsKIApAQCAtNTgsMjEgKzYwLDE3IEBAIEpJVDo6Q29kZVJlZiBKSVQ6OnByaXZhdGVD
b21waWxlQ1RJTmF0aXZlQ2FsbChWTSogdm0sIE5hdGl2ZUZ1bmN0aW9uIGZ1bmMpCiAgICAgZW1p
dEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6U2NvcGVDaGFpbiwgcmVnVDEsIHJl
Z1QwKTsKICAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBKU1N0YWNrOjpT
Y29wZUNoYWluKTsKIAotICAgIHBlZWsocmVnVDEpOwotICAgIGVtaXRQdXRSZXR1cm5QQ1RvQ2Fs
bEZyYW1lSGVhZGVyKHJlZ1QxKTsKLQogICAgIC8vIENhbGxpbmcgY29udmVudGlvbjogICAgICBm
KGVjeCwgZWR4LCAuLi4pOwogICAgIC8vIEhvc3QgZnVuY3Rpb24gc2lnbmF0dXJlOiBmKEV4ZWNT
dGF0ZSopOwogICAgIG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6ZWN4KTsK
IAotICAgIHN1YlB0cihUcnVzdGVkSW1tMzIoMTYgLSBzaXplb2Yodm9pZCopKSwgc3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOyAvLyBBbGlnbiBzdGFjayBhZnRlciBjYWxsLgotCi0gICAgbW92ZShyZWdU
MCwgY2FsbEZyYW1lUmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJlc3RvcmUgY2FsbGVyIGZyYW1lIHJl
Z2lzdGVyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4KKyAgICBzdWJQdHIoVHJ1c3RlZElt
bTMyKDgpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7IC8vIEFsaWduIHN0YWNrIGZvciBjYWxsLgor
ICAgIHN0b3JlUHRyKFg4NlJlZ2lzdGVyczo6ZWN4LCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lz
dGVyKSk7CiAKICAgICAvLyBjYWxsIHRoZSBmdW5jdGlvbgogICAgIG5hdGl2ZUNhbGwgPSBjYWxs
KCk7CiAKLSAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKDE2IC0gc2l6ZW9mKHZvaWQqKSksIHN0YWNr
UG9pbnRlclJlZ2lzdGVyKTsKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKDgpLCBzdGFja1BvaW50
ZXJSZWdpc3Rlcik7CiAKICNlbGlmIENQVShBUk0pIHx8IENQVShTSDQpIHx8IENQVShNSVBTKQog
ICAgIC8vIExvYWQgY2FsbGVyIGZyYW1lJ3Mgc2NvcGUgY2hhaW4gaW50byB0aGlzIGNhbGxmcmFt
ZSBzbyB0aGF0IHdoYXRldmVyIHdlIGNhbGwgY2FuIGdldCB0byBpdHMgZ2xvYmFsIGRhdGEuCkBA
IC04MCw5ICs3OCw2IEBAIEpJVDo6Q29kZVJlZiBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXZl
Q2FsbChWTSogdm0sIE5hdGl2ZUZ1bmN0aW9uIGZ1bmMpCiAgICAgZW1pdEdldEZyb21DYWxsRnJh
bWVIZWFkZXJQdHIoSlNTdGFjazo6U2NvcGVDaGFpbiwgcmVnVDEsIHJlZ1QyKTsKICAgICBlbWl0
UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKIAot
ICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChyZWdUMyk7IC8vIENhbGxlZSBwcmVz
ZXJ2ZWQKLSAgICBlbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihyZWdUMyk7Ci0KICNp
ZiBDUFUoTUlQUykKICAgICAvLyBBbGxvY2F0ZSBzdGFjayBzcGFjZSBmb3IgKHVudXNlZCkgMTYg
Ynl0ZXMgKDgtYnl0ZSBhbGlnbmVkKSBmb3IgNCBhcmd1bWVudHMuCiAgICAgc3ViUHRyKFRydXN0
ZWRJbW0zMigxNiksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKQEAgLTkzLDcgKzg4LDYgQEAgSklU
OjpDb2RlUmVmIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKFZNKiB2bSwgTmF0aXZl
RnVuY3Rpb24gZnVuYykKICAgICBtb3ZlKGNhbGxGcmFtZVJlZ2lzdGVyLCBhcmd1bWVudEdQUjAp
OwogCiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6Q2FsbGVlLCBh
cmd1bWVudEdQUjEpOwotICAgIG1vdmUocmVnVDIsIGNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8gRWFn
ZXJseSByZXN0b3JlIGNhbGxlciBmcmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZyb20g
c3RhY2suCiAgICAgbG9hZFB0cihBZGRyZXNzKGFyZ3VtZW50R1BSMSwgT0JKRUNUX09GRlNFVE9G
KEpTRnVuY3Rpb24sIG1fZXhlY3V0YWJsZSkpLCByZWdUMik7CiAKICAgICAvLyBjYWxsIHRoZSBm
dW5jdGlvbgpAQCAtMTEzLDMwICsxMDcsMjcgQEAgSklUOjpDb2RlUmVmIEpJVDo6cHJpdmF0ZUNv
bXBpbGVDVElOYXRpdmVDYWxsKFZNKiB2bSwgTmF0aXZlRnVuY3Rpb24gZnVuYykKICAgICAvLyBD
aGVjayBmb3IgYW4gZXhjZXB0aW9uCiAgICAgSnVtcCBzYXdFeGNlcHRpb24gPSBicmFuY2gzMihO
b3RFcXVhbCwgQWJzb2x1dGVBZGRyZXNzKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHZtLT5hZGRy
ZXNzT2ZFeGNlcHRpb24oKSkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFn
KSksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0eVZhbHVlVGFnKSk7IAogCisgICAgZW1pdEZ1
bmN0aW9uRXBpbG9ndWUoKTsKICAgICAvLyBSZXR1cm4uCiAgICAgcmV0KCk7CiAKICAgICAvLyBI
YW5kbGUgYW4gZXhjZXB0aW9uCiAgICAgc2F3RXhjZXB0aW9uLmxpbmsodGhpcyk7CiAKLSAgICAv
LyBHcmFiIHRoZSByZXR1cm4gYWRkcmVzcy4KLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRl
ckNhbGwocmVnVDEpOwotCi0gICAgbW92ZShUcnVzdGVkSW1tUHRyKCZ2bS0+ZXhjZXB0aW9uTG9j
YXRpb24pLCByZWdUMik7Ci0gICAgc3RvcmVQdHIocmVnVDEsIHJlZ1QyKTsKICAgICBzdG9yZVB0
cihjYWxsRnJhbWVSZWdpc3RlciwgJm1fdm0tPnRvcENhbGxGcmFtZSk7CiAKICNpZiBDUFUoWDg2
KQotICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLTEyKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwot
ICAgIHB1c2goY2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLTQp
LCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgbG9hZFB0cihBZGRyZXNzKGNhbGxGcmFtZVJl
Z2lzdGVyKSwgWDg2UmVnaXN0ZXJzOjplY3gpOworICAgIHB1c2goWDg2UmVnaXN0ZXJzOjplY3gp
OwogI2Vsc2UKLSAgICBtb3ZlKGNhbGxGcmFtZVJlZ2lzdGVyLCBhcmd1bWVudEdQUjApOworICAg
IGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciksIGFyZ3VtZW50R1BSMCk7CiAjZW5k
aWYKICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoRnVuY3Rpb25QdHIob3BlcmF0aW9uVk1IYW5kbGVF
eGNlcHRpb24pLnZhbHVlKCkpLCByZWdUMyk7CiAgICAgY2FsbChyZWdUMyk7CiAKICNpZiBDUFUo
WDg2KQotICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoMTYpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7
CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMig4KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogI2Vu
ZGlmCiAKICAgICBqdW1wVG9FeGNlcHRpb25IYW5kbGVyKCk7CkBAIC0xNzUsNyArMTY2LDcgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfZW5kKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7
CiAgICAgQVNTRVJUKHJldHVyblZhbHVlR1BSICE9IGNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICBl
bWl0TG9hZChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMSwgcmVnVDApOwot
ICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEFkZHJlc3MoY2FsbEZyYW1lUmVn
aXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOworICAgIGVtaXRGdW5jdGlvbkVw
aWxvZ3VlKCk7CiAgICAgcmV0KCk7CiB9CiAKQEAgLTkyNyw2ICs5MTgsOSBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9jYXRjaChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIG1vdmUo
VHJ1c3RlZEltbVB0cihtX3ZtKSwgcmVnVDMpOwogICAgIC8vIG9wZXJhdGlvblRocm93IHJldHVy
bnMgdGhlIGNhbGxGcmFtZSBmb3IgdGhlIGhhbmRsZXIuCiAgICAgbG9hZDMyKEFkZHJlc3MocmVn
VDMsIFZNOjpjYWxsRnJhbWVGb3JUaHJvd09mZnNldCgpKSwgY2FsbEZyYW1lUmVnaXN0ZXIpOwor
CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IoY29kZUJsb2Nr
KCkpICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJS
ZWdpc3Rlcik7CisKICAgICAvLyBOb3cgc3RvcmUgdGhlIGV4Y2VwdGlvbiByZXR1cm5lZCBieSBv
cGVyYXRpb25UaHJvdy4KICAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMywgVk06OmV4Y2VwdGlvbk9m
ZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpKSwgcmVn
VDApOwogICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QzLCBWTTo6ZXhjZXB0aW9uT2Zmc2V0KCkgKyBP
QkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSksIHJlZ1QxKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IDViNjYwYWRhNDg4ZDUx
ZmQzMjk3MTk2ZTUyMjdlYjJkNGE4MGYwM2MuLjUwM2NmN2Q5Njk1ZGUxMTBlMmNlOTFhYzFlYzJk
NGNiNzFhZGQ4MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzAsMTIgKzMwLDEyIEBACiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAi
QXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKLSNpbmNs
dWRlICJDb21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRlICJERkdDb21waWxhdGlvbk1vZGUuaCIK
ICNpbmNsdWRlICJERkdEcml2ZXIuaCIKICNpbmNsdWRlICJERkdPU1JFbnRyeS5oIgogI2luY2x1
ZGUgIkRGR1dvcmtsaXN0LmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJFcnJvckhh
bmRsaW5nU2NvcGUuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJIb3N0
Q2FsbFJldHVyblZhbHVlLmgiCiAjaW5jbHVkZSAiSklULmgiCkBAIC03MSw3ICs3MSw3IEBAIHZv
aWQgKiBfUmV0dXJuQWRkcmVzcyh2b2lkKTsKICNlbmRpZgogCiAKLXZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25TdGFja0NoZWNrKEV4ZWNTdGF0ZSogZXhlYywgQ29kZUJsb2NrKiBjb2RlQmxv
Y2spCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93RXJyb3Io
RXhlY1N0YXRlKiBleGVjLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKICAgICAvLyBXZSBwYXNz
IGluIG91ciBvd24gY29kZSBibG9jaywgYmVjYXVzZSB0aGUgY2FsbGZyYW1lIGhhc24ndCBiZWVu
IHBvcHVsYXRlZC4KICAgICBWTSogdm0gPSBjb2RlQmxvY2stPnZtKCk7CkBAIC04MCwxMSArODAs
OCBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RhY2tDaGVjayhFeGVjU3RhdGUqIGV4
ZWMsIENvZGVCbG9jayogY29kZUJsb2NrKQogICAgICAgICBjYWxsZXJGcmFtZSA9IGV4ZWM7CiAK
ICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsZXJGcmFtZSk7Ci0KLSAg
ICBKU1N0YWNrJiBzdGFjayA9IHZtLT5pbnRlcnByZXRlci0+c3RhY2soKTsKLQotICAgIGlmIChV
TkxJS0VMWSghc3RhY2suZ3JvdygmZXhlYy0+cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9y
TG9jYWwoY29kZUJsb2NrLT5mcmFtZVJlZ2lzdGVyQ291bnQoKSkub2Zmc2V0KCldKSkpCi0gICAg
ICAgIHZtLT50aHJvd0V4Y2VwdGlvbihjYWxsZXJGcmFtZSwgY3JlYXRlU3RhY2tPdmVyZmxvd0Vy
cm9yKGNhbGxlckZyYW1lKSk7CisgICAgRXJyb3JIYW5kbGluZ1Njb3BlIGVycm9yU2NvcGUoKnZt
KTsKKyAgICB2bS0+dGhyb3dFeGNlcHRpb24oY2FsbGVyRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZs
b3dFcnJvcihjYWxsZXJGcmFtZSkpOwogfQogCiBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQ2FsbEFyaXR5Q2hlY2soRXhlY1N0YXRlKiBleGVjKQpAQCAtOTcsNyArOTQsNyBAQCBpbnQz
Ml90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2soRXhlY1N0YXRlKiBleGVj
KQogCiAgICAgaW50MzJfdCBtaXNzaW5nQXJnQ291bnQgPSBDb21tb25TbG93UGF0aHM6OmFyaXR5
Q2hlY2tGb3IoZXhlYywgJnN0YWNrLCBDb2RlRm9yQ2FsbCk7CiAgICAgaWYgKG1pc3NpbmdBcmdD
b3VudCA8IDApCi0gICAgICAgIHZtLT50aHJvd0V4Y2VwdGlvbihjYWxsZXJGcmFtZSwgY3JlYXRl
U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxlckZyYW1lKSk7CisgICAgICAgIHRocm93U3RhY2tPdmVy
Zmxvd0Vycm9yKGNhbGxlckZyYW1lKTsKIAogICAgIHJldHVybiBtaXNzaW5nQXJnQ291bnQ7CiB9
CkBAIC0xMTIsNyArMTA5LDcgQEAgaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnN0
cnVjdEFyaXR5Q2hlY2soRXhlY1N0YXRlKiBleGVjKQogCiAgICAgaW50MzJfdCBtaXNzaW5nQXJn
Q291bnQgPSBDb21tb25TbG93UGF0aHM6OmFyaXR5Q2hlY2tGb3IoZXhlYywgJnN0YWNrLCBDb2Rl
Rm9yQ29uc3RydWN0KTsKICAgICBpZiAobWlzc2luZ0FyZ0NvdW50IDwgMCkKLSAgICAgICAgdm0t
PnRocm93RXhjZXB0aW9uKGNhbGxlckZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2Fs
bGVyRnJhbWUpKTsKKyAgICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbGVyRnJhbWUp
OwogCiAgICAgcmV0dXJuIG1pc3NpbmdBcmdDb3VudDsKIH0KQEAgLTYxMiwxNSArNjA5LDEzIEBA
IHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1CiAgICAgZGlyZWN0UHV0QnlWYWwoZXhlYywgYXNPYmpl
Y3QoYmFzZVZhbHVlKSwgc3Vic2NyaXB0LCB2YWx1ZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEV2YWwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsRXZhbChFeGVjU3RhdGUqIGV4
ZWMsIEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKIHsKLSAgICBDYWxsRnJhbWUqIGNhbGxlckZyYW1l
ID0gZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKTsKLSAgICBBU1NFUlQoZXhlY0NhbGxlZS0+Y2Fs
bGVyRnJhbWUoKS0+Y29kZUJsb2NrKCktPmNvZGVUeXBlKCkgIT0gRnVuY3Rpb25Db2RlCi0gICAg
ICAgIHx8ICFleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpLT5jb2RlQmxvY2soKS0+bmVlZHNGdWxs
U2NvcGVDaGFpbigpCi0gICAgICAgIHx8IGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCktPnVuY2hl
Y2tlZFIoZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCktPmFjdGl2YXRpb25S
ZWdpc3RlcigpLm9mZnNldCgpKS5qc1ZhbHVlKCkpOworICAgIEFTU0VSVChleGVjLT5jb2RlQmxv
Y2soKS0+Y29kZVR5cGUoKSAhPSBGdW5jdGlvbkNvZGUKKyAgICAgICAgfHwgIWV4ZWMtPmNvZGVC
bG9jaygpLT5uZWVkc0Z1bGxTY29wZUNoYWluKCkKKyAgICAgICAgfHwgZXhlYy0+dW5jaGVja2Vk
UihleGVjLT5jb2RlQmxvY2soKS0+YWN0aXZhdGlvblJlZ2lzdGVyKCkub2Zmc2V0KCkpLmpzVmFs
dWUoKSk7CiAKLSAgICBleGVjQ2FsbGVlLT5zZXRTY29wZShjYWxsZXJGcmFtZS0+c2NvcGUoKSk7
Ci0gICAgZXhlY0NhbGxlZS0+c2V0UmV0dXJuUEMoc3RhdGljX2Nhc3Q8SW5zdHJ1Y3Rpb24qPihP
VVJfUkVUVVJOX0FERFJFU1MpKTsKKyAgICBleGVjQ2FsbGVlLT5zZXRTY29wZShleGVjLT5zY29w
ZSgpKTsKICAgICBleGVjQ2FsbGVlLT5zZXRDb2RlQmxvY2soMCk7CiAKICAgICBpZiAoIWlzSG9z
dEZ1bmN0aW9uKGV4ZWNDYWxsZWUtPmNhbGxlZUFzVmFsdWUoKSwgZ2xvYmFsRnVuY0V2YWwpKQpA
QCAtNjg1LDcgKzY4MCw4IEBAIHN0YXRpYyB2b2lkKiBoYW5kbGVIb3N0Q2FsbChFeGVjU3RhdGUq
IGV4ZWNDYWxsZWUsIEpTVmFsdWUgY2FsbGVlLCBDb2RlU3BlY2lhbGl6CiAgICAgcmV0dXJuIHZt
LT5nZXRDVElTdHViKHRocm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVyYXRvcikuY29k
ZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCk7CiB9CiAKLWlubGluZSBjaGFyKiBsaW5rRm9yKEV4ZWNT
dGF0ZSogZXhlY0NhbGxlZSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQoraW5saW5lIGNo
YXIqIGxpbmtGb3IoCisgICAgRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBDb2RlU3BlY2lhbGl6YXRp
b25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCiB7CiAgICAg
RXhlY1N0YXRlKiBleGVjID0gZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKTsKICAgICBWTSogdm0g
PSAmZXhlYy0+dm0oKTsKQEAgLTcwMywzOSArNjk5LDUzIEBAIGlubGluZSBjaGFyKiBsaW5rRm9y
KEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQogICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyOwogICAgIENvZGVCbG9jayogY29kZUJsb2Nr
ID0gMDsKICAgICBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbyA9IGV4ZWMtPmNvZGVCbG9jaygp
LT5nZXRDYWxsTGlua0luZm8oZXhlY0NhbGxlZS0+cmV0dXJuUEMoKSk7Ci0gICAgaWYgKGV4ZWN1
dGFibGUtPmlzSG9zdEZ1bmN0aW9uKCkpCi0gICAgICAgIGNvZGVQdHIgPSBleGVjdXRhYmxlLT5n
ZW5lcmF0ZWRKSVRDb2RlRm9yKGtpbmQpLT5hZGRyZXNzRm9yQ2FsbCgpOwotICAgIGVsc2Ugewor
ICAgIGlmIChleGVjdXRhYmxlLT5pc0hvc3RGdW5jdGlvbigpKSB7CisgICAgICAgIGNvZGVQdHIg
PSBleGVjdXRhYmxlLT5lbnRyeXBvaW50Rm9yKCp2bSwga2luZCwgTXVzdENoZWNrQXJpdHksIHJl
Z2lzdGVycyk7CisgICAgfSBlbHNlIHsKICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5j
dGlvbkV4ZWN1dGFibGUgPSBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihleGVjdXRh
YmxlKTsKICAgICAgICAgSlNPYmplY3QqIGVycm9yID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5wcmVw
YXJlRm9yRXhlY3V0aW9uKGV4ZWNDYWxsZWUsIGNhbGxlZS0+c2NvcGUoKSwga2luZCk7CiAgICAg
ICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgdm0tPnRocm93RXhjZXB0aW9uKGV4ZWMsIGNy
ZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVjKSk7CisgICAgICAgICAgICB0aHJvd1N0YWNrT3Zl
cmZsb3dFcnJvcihleGVjKTsKICAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNo
YXIqPih2bS0+Z2V0Q1RJU3R1Yih0aHJvd0V4Y2VwdGlvbkZyb21DYWxsU2xvd1BhdGhHZW5lcmF0
b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKICAgICAgICAgfQogICAgICAgICBjb2Rl
QmxvY2sgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmNvZGVCbG9ja0ZvcihraW5kKTsKKyAgICAgICAg
QXJpdHlDaGVja01vZGUgYXJpdHk7CiAgICAgICAgIGlmIChleGVjQ2FsbGVlLT5hcmd1bWVudENv
dW50SW5jbHVkaW5nVGhpcygpIDwgc3RhdGljX2Nhc3Q8c2l6ZV90Pihjb2RlQmxvY2stPm51bVBh
cmFtZXRlcnMoKSkgfHwgY2FsbExpbmtJbmZvLmNhbGxUeXBlID09IENhbGxMaW5rSW5mbzo6Q2Fs
bFZhcmFyZ3MpCi0gICAgICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5l
cmF0ZWRKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3Ioa2luZCk7CisgICAgICAgICAgICBhcml0eSA9
IE11c3RDaGVja0FyaXR5OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb2RlUHRyID0gZnVu
Y3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yKGtpbmQpLT5hZGRyZXNzRm9yQ2Fs
bCgpOworICAgICAgICAgICAgYXJpdHkgPSBBcml0eUNoZWNrTm90UmVxdWlyZWQ7CisgICAgICAg
IGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmVudHJ5cG9pbnRGb3IoKnZtLCBraW5kLCBh
cml0eSwgcmVnaXN0ZXJzKTsKICAgICB9CiAgICAgaWYgKCFjYWxsTGlua0luZm8uc2Vlbk9uY2Uo
KSkKICAgICAgICAgY2FsbExpbmtJbmZvLnNldFNlZW4oKTsKICAgICBlbHNlCi0gICAgICAgIGxp
bmtGb3IoZXhlY0NhbGxlZSwgY2FsbExpbmtJbmZvLCBjb2RlQmxvY2ssIGNhbGxlZSwgY29kZVB0
ciwga2luZCk7CisgICAgICAgIGxpbmtGb3IoZXhlY0NhbGxlZSwgY2FsbExpbmtJbmZvLCBjb2Rl
QmxvY2ssIGNhbGxlZSwgY29kZVB0ciwga2luZCwgcmVnaXN0ZXJzKTsKICAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4oY29kZVB0ci5leGVjdXRhYmxlQWRkcmVzcygpKTsKIH0KIAog
Y2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2FsbChFeGVjU3RhdGUqIGV4ZWNDYWxs
ZWUpCiB7Ci0gICAgcmV0dXJuIGxpbmtGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwpOworICAg
IHJldHVybiBsaW5rRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxsLCBSZWdpc3RlclByZXNlcnZh
dGlvbk5vdFJlcXVpcmVkKTsKIH0KIAogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5r
Q29uc3RydWN0KEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKIHsKLSAgICByZXR1cm4gbGlua0Zvcihl
eGVjQ2FsbGVlLCBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICByZXR1cm4gbGlua0ZvcihleGVjQ2Fs
bGVlLCBDb2RlRm9yQ29uc3RydWN0LCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsK
K30KKworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNS
ZWdzKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKK3sKKyAgICByZXR1cm4gbGlua0ZvcihleGVjQ2Fs
bGVlLCBDb2RlRm9yQ2FsbCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKIH0KIAotaW5saW5lIGNo
YXIqIHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kIGtpbmQsIEpTQ2VsbComIGNhbGxlZUFzRnVuY3Rpb25DZWxsKQorY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3Mo
RXhlY1N0YXRlKiBleGVjQ2FsbGVlKQoreworICAgIHJldHVybiBsaW5rRm9yKGV4ZWNDYWxsZWUs
IENvZGVGb3JDb25zdHJ1Y3QsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7Cit9CisKK2lubGluZSBj
aGFyKiB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9uKAorICAgIEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwg
Q29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVn
aXN0ZXJzLAorICAgIEpTQ2VsbComIGNhbGxlZUFzRnVuY3Rpb25DZWxsKQogewogICAgIEV4ZWNT
dGF0ZSogZXhlYyA9IGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCk7CiAgICAgVk0qIHZtID0gJmV4
ZWMtPnZtKCk7CkBAIC03NTcsMTYgKzc2NywyMCBAQCBpbmxpbmUgY2hhciogdmlydHVhbEZvcldp
dGhGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIENvZGVTcGVjaWFsaXphdGlvbktpbgog
ICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHZtLT5nZXRDVElTdHVi
KHRocm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFi
bGVBZGRyZXNzKCkpOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PGNoYXIqPihleGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3Io
a2luZCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
Y2hhcio+KGV4ZWN1dGFibGUtPmVudHJ5cG9pbnRGb3IoCisgICAgICAgICp2bSwga2luZCwgTXVz
dENoZWNrQXJpdHksIHJlZ2lzdGVycykuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CiB9CiAKLWlubGlu
ZSBjaGFyKiB2aXJ0dWFsRm9yKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgQ29kZVNwZWNpYWxpemF0
aW9uS2luZCBraW5kKQoraW5saW5lIGNoYXIqIHZpcnR1YWxGb3IoCisgICAgRXhlY1N0YXRlKiBl
eGVjQ2FsbGVlLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0
aW9uTW9kZSByZWdpc3RlcnMpCiB7CiAgICAgSlNDZWxsKiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbEln
bm9yZWQ7Ci0gICAgcmV0dXJuIHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oZXhlY0NhbGxlZSwga2lu
ZCwgY2FsbGVlQXNGdW5jdGlvbkNlbGxJZ25vcmVkKTsKKyAgICByZXR1cm4gdmlydHVhbEZvcldp
dGhGdW5jdGlvbihleGVjQ2FsbGVlLCBraW5kLCByZWdpc3RlcnMsIGNhbGxlZUFzRnVuY3Rpb25D
ZWxsSWdub3JlZCk7CiB9CiAKLXN0YXRpYyBib29sIGF0dGVtcHRUb09wdGltaXplQ2xvc3VyZUNh
bGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsLCBD
YWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbykKK3N0YXRpYyBib29sIGF0dGVtcHRUb09wdGltaXpl
Q2xvc3VyZUNhbGwoCisgICAgRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBSZWdpc3RlclByZXNlcnZh
dGlvbk1vZGUgcmVnaXN0ZXJzLCBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsLAorICAgIENh
bGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvKQogewogICAgIGlmICghY2FsbGVlQXNGdW5jdGlvbkNl
bGwpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTc4MCw3ICs3OTQsMTAgQEAgc3RhdGljIGJv
b2wgYXR0ZW1wdFRvT3B0aW1pemVDbG9zdXJlQ2FsbChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIEpT
Q2VsbCogY2FsbGVlQXMKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIEFTU0VSVChj
YWxsZWUtPmV4ZWN1dGFibGUoKS0+aGFzSklUQ29kZUZvckNhbGwoKSk7Ci0gICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGNvZGVQdHIgPSBjYWxsZWUtPmV4ZWN1dGFibGUoKS0+Z2VuZXJhdGVkSklU
Q29kZUZvckNhbGwoKS0+YWRkcmVzc0ZvckNhbGwoKTsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgY29kZVB0ciA9CisgICAgICAgIGNhbGxlZS0+ZXhlY3V0YWJsZSgpLT5nZW5lcmF0ZWRKSVRD
b2RlRm9yQ2FsbCgpLT5hZGRyZXNzRm9yQ2FsbCgKKyAgICAgICAgICAgICpleGVjQ2FsbGVlLT5j
YWxsZXJGcmFtZSgpLT5jb2RlQmxvY2soKS0+dm0oKSwgY2FsbGVlLT5leGVjdXRhYmxlKCksCisg
ICAgICAgICAgICBBcml0eUNoZWNrTm90UmVxdWlyZWQsIHJlZ2lzdGVycyk7CiAgICAgCiAgICAg
Q29kZUJsb2NrKiBjb2RlQmxvY2s7CiAgICAgaWYgKGNhbGxlZS0+ZXhlY3V0YWJsZSgpLT5pc0hv
c3RGdW5jdGlvbigpKQpAQCAtNzkzLDcgKzgxMCw3IEBAIHN0YXRpYyBib29sIGF0dGVtcHRUb09w
dGltaXplQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBKU0NlbGwqIGNhbGxlZUFz
CiAgICAgCiAgICAgbGlua0Nsb3N1cmVDYWxsKAogICAgICAgICBleGVjQ2FsbGVlLCBjYWxsTGlu
a0luZm8sIGNvZGVCbG9jaywKLSAgICAgICAgY2FsbGVlLT5zdHJ1Y3R1cmUoKSwgY2FsbGVlLT5l
eGVjdXRhYmxlKCksIGNvZGVQdHIpOworICAgICAgICBjYWxsZWUtPnN0cnVjdHVyZSgpLCBjYWxs
ZWUtPmV4ZWN1dGFibGUoKSwgY29kZVB0ciwgcmVnaXN0ZXJzKTsKICAgICAKICAgICByZXR1cm4g
dHJ1ZTsKIH0KQEAgLTgwMSwyNSArODE4LDQ2IEBAIHN0YXRpYyBib29sIGF0dGVtcHRUb09wdGlt
aXplQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBKU0NlbGwqIGNhbGxlZUFzCiBj
aGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbChFeGVjU3RhdGUqIGV4
ZWNDYWxsZWUpCiB7CiAgICAgSlNDZWxsKiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbDsKLSAgICBjaGFy
KiByZXN1bHQgPSB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9uKGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxs
LCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCk7CisgICAgY2hhciogcmVzdWx0ID0gdmlydHVhbEZvcldp
dGhGdW5jdGlvbihleGVjQ2FsbGVlLCBDb2RlRm9yQ2FsbCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25O
b3RSZXF1aXJlZCwgY2FsbGVlQXNGdW5jdGlvbkNlbGwpOwogICAgIENhbGxMaW5rSW5mbyYgY2Fs
bExpbmtJbmZvID0gZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCktPmdldENh
bGxMaW5rSW5mbyhleGVjQ2FsbGVlLT5yZXR1cm5QQygpKTsKIAotICAgIGlmICghYXR0ZW1wdFRv
T3B0aW1pemVDbG9zdXJlQ2FsbChleGVjQ2FsbGVlLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCwgY2Fs
bExpbmtJbmZvKSkKLSAgICAgICAgbGlua1Nsb3dGb3IoZXhlY0NhbGxlZSwgY2FsbExpbmtJbmZv
LCBDb2RlRm9yQ2FsbCk7CisgICAgaWYgKCFhdHRlbXB0VG9PcHRpbWl6ZUNsb3N1cmVDYWxsKGV4
ZWNDYWxsZWUsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQsIGNhbGxlZUFzRnVuY3Rp
b25DZWxsLCBjYWxsTGlua0luZm8pKQorICAgICAgICBsaW5rU2xvd0ZvcihleGVjQ2FsbGVlLCBj
YWxsTGlua0luZm8sIENvZGVGb3JDYWxsLCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVk
KTsKICAgICAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZpcnR1YWxDYWxsKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKIHsgICAgCi0gICAgcmV0
dXJuIHZpcnR1YWxGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwpOworICAgIHJldHVybiB2aXJ0
dWFsRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxsLCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJl
cXVpcmVkKTsKIH0KIAogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ29uc3Ry
dWN0KEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKIHsKLSAgICByZXR1cm4gdmlydHVhbEZvcihleGVj
Q2FsbGVlLCBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICByZXR1cm4gdmlydHVhbEZvcihleGVjQ2Fs
bGVlLCBDb2RlRm9yQ29uc3RydWN0LCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsK
IH0KIAorY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGxUaGF0UHJl
c2VydmVzUmVncyhFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCit7CisgICAgSlNDZWxsKiBjYWxsZWVB
c0Z1bmN0aW9uQ2VsbDsKKyAgICBjaGFyKiByZXN1bHQgPSB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9u
KGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxsLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMsIGNhbGxlZUFz
RnVuY3Rpb25DZWxsKTsKKyAgICBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbyA9IGV4ZWNDYWxs
ZWUtPmNhbGxlckZyYW1lKCktPmNvZGVCbG9jaygpLT5nZXRDYWxsTGlua0luZm8oZXhlY0NhbGxl
ZS0+cmV0dXJuUEMoKSk7CisKKyAgICBpZiAoIWF0dGVtcHRUb09wdGltaXplQ2xvc3VyZUNhbGwo
ZXhlY0NhbGxlZSwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCwg
Y2FsbExpbmtJbmZvKSkKKyAgICAgICAgbGlua1Nsb3dGb3IoZXhlY0NhbGxlZSwgY2FsbExpbmtJ
bmZvLCBDb2RlRm9yQ2FsbCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKKyAgICAKKyAgICByZXR1
cm4gcmVzdWx0OworfQorCitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxDYWxs
VGhhdFByZXNlcnZlc1JlZ3MoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQoreyAgICAKKyAgICByZXR1
cm4gdmlydHVhbEZvcihleGVjQ2FsbGVlLCBDb2RlRm9yQ2FsbCwgTXVzdFByZXNlcnZlUmVnaXN0
ZXJzKTsKK30KKworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ29uc3RydWN0
VGhhdFByZXNlcnZlc1JlZ3MoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQoreworICAgIHJldHVybiB2
aXJ0dWFsRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDb25zdHJ1Y3QsIE11c3RQcmVzZXJ2ZVJlZ2lz
dGVycyk7Cit9CiAKIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVMZXNzKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMikKIHsKQEAgLTk3NCw3ICsxMDEyLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkRlYnVnKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBkZWJ1Z0hvb2tJRCkKIH0KIAog
I2lmIEVOQUJMRShERkdfSklUKQotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6
ZShFeGVjU3RhdGUqIGV4ZWMsIGludDMyX3QgYnl0ZWNvZGVJbmRleCkKK1Nsb3dQYXRoUmV0dXJu
VHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgaW50
MzJfdCBieXRlY29kZUluZGV4KQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0
aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwpAQCAtMTAyNCw3ICsxMDYyLDcg
QEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMs
IGludDMyX3QgYnl0ZWNvZGVJbmRleCkKICAgICAgICAgY29kZUJsb2NrLT51cGRhdGVBbGxQcmVk
aWN0aW9ucygpOwogICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQogICAgICAgICAg
ICAgZGF0YUxvZygiQ2hvb3Npbmcgbm90IHRvIG9wdGltaXplICIsICpjb2RlQmxvY2ssICIgeWV0
LCBiZWNhdXNlIHRoZSB0aHJlc2hvbGQgaGFzbid0IGJlZW4gcmVhY2hlZC5cbiIpOwotICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsKICAgICB9CiAg
ICAgCiAgICAgaWYgKGNvZGVCbG9jay0+bV9zaG91bGRBbHdheXNCZUlubGluZWQpIHsKQEAgLTEw
MzIsMTggKzEwNzAsMTkgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShF
eGVjU3RhdGUqIGV4ZWMsIGludDMyX3QgYnl0ZWNvZGVJbmRleCkKICAgICAgICAgY29kZUJsb2Nr
LT5vcHRpbWl6ZUFmdGVyV2FybVVwKCk7CiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NS
KCkpCiAgICAgICAgICAgICBkYXRhTG9nKCJDaG9vc2luZyBub3QgdG8gb3B0aW1pemUgIiwgKmNv
ZGVCbG9jaywgIiB5ZXQsIGJlY2F1c2UgbV9zaG91bGRBbHdheXNCZUlubGluZWQgPT0gdHJ1ZS5c
biIpOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAw
KTsKICAgICB9CiAKICAgICAvLyBXZSBjYW5ub3QgYmUgaW4gdGhlIHByb2Nlc3Mgb2YgYXN5bmNo
cm9ub3VzIGNvbXBpbGF0aW9uIGFuZCBhbHNvIGhhdmUgYW4gb3B0aW1pemVkCiAgICAgLy8gcmVw
bGFjZW1lbnQuCisgICAgREZHOjpXb3JrbGlzdCogd29ya2xpc3QgPSBERkc6OmV4aXN0aW5nR2xv
YmFsREZHV29ya2xpc3RPck51bGwoKTsKICAgICBBU1NFUlQoCi0gICAgICAgICF2bS53b3JrbGlz
dAotICAgICAgICB8fCAhKHZtLndvcmtsaXN0LT5jb21waWxhdGlvblN0YXRlKERGRzo6Q29tcGls
YXRpb25LZXkoY29kZUJsb2NrLCBERkc6OkRGR01vZGUpKSAhPSBERkc6OldvcmtsaXN0OjpOb3RL
bm93bgorICAgICAgICAhd29ya2xpc3QKKyAgICAgICAgfHwgISh3b3JrbGlzdC0+Y29tcGlsYXRp
b25TdGF0ZShERkc6OkNvbXBpbGF0aW9uS2V5KGNvZGVCbG9jaywgREZHOjpERkdNb2RlKSkgIT0g
REZHOjpXb3JrbGlzdDo6Tm90S25vd24KICAgICAgICAgJiYgY29kZUJsb2NrLT5oYXNPcHRpbWl6
ZWRSZXBsYWNlbWVudCgpKSk7CiAKICAgICBERkc6OldvcmtsaXN0OjpTdGF0ZSB3b3JrbGlzdFN0
YXRlOwotICAgIGlmICh2bS53b3JrbGlzdCkgeworICAgIGlmICh3b3JrbGlzdCkgewogICAgICAg
ICAvLyBUaGUgY2FsbCB0byBERkc6OldvcmtsaXN0Ojpjb21wbGV0ZUFsbFJlYWR5UGxhbnNGb3JW
TSgpIHdpbGwgY29tcGxldGUgYWxsIHJlYWR5CiAgICAgICAgIC8vIChpLmUuIGNvbXBpbGVkKSBj
b2RlIGJsb2Nrcy4gQnV0IGlmIGl0IGNvbXBsZXRlcyBvdXJzLCB3ZSBhbHNvIG5lZWQgdG8ga25v
dwogICAgICAgICAvLyB3aGF0IHRoZSByZXN1bHQgd2FzIHNvIHRoYXQgd2UgZG9uJ3QgcGxvdyBh
aGVhZCBhbmQgYXR0ZW1wdCBPU1Igb3IgaW1tZWRpYXRlCkBAIC0xMDYyLDcgKzExMDEsNyBAQCBj
aGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgaW50
MzJfdCBieXRlY29kZUluZGV4KQogICAgICAgICAvLyBwcm9iYWJseSBhIHdhc3RlIG9mIG1lbW9y
eS4gT3VyIGdvYWwgaGVyZSBpcyB0byBjb21wbGV0ZSBjb2RlIGJsb2NrcyBhcyBzb29uIGFzCiAg
ICAgICAgIC8vIHBvc3NpYmxlIGluIG9yZGVyIHRvIG1pbmltaXplIHRoZSBjaGFuY2VzIG9mIHVz
IGV4ZWN1dGluZyBiYXNlbGluZSBjb2RlIGFmdGVyCiAgICAgICAgIC8vIG9wdGltaXplZCBjb2Rl
IGlzIGFscmVhZHkgYXZhaWxhYmxlLgotICAgICAgICB3b3JrbGlzdFN0YXRlID0gdm0ud29ya2xp
c3QtPmNvbXBsZXRlQWxsUmVhZHlQbGFuc0ZvclZNKAorICAgICAgICB3b3JrbGlzdFN0YXRlID0g
d29ya2xpc3QtPmNvbXBsZXRlQWxsUmVhZHlQbGFuc0ZvclZNKAogICAgICAgICAgICAgdm0sIERG
Rzo6Q29tcGlsYXRpb25LZXkoY29kZUJsb2NrLCBERkc6OkRGR01vZGUpKTsKICAgICB9IGVsc2UK
ICAgICAgICAgd29ya2xpc3RTdGF0ZSA9IERGRzo6V29ya2xpc3Q6Ok5vdEtub3duOwpAQCAtMTA3
Miw3ICsxMTExLDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeGVj
U3RhdGUqIGV4ZWMsIGludDMyX3QgYnl0ZWNvZGVJbmRleCkKICAgICAgICAgLy8gcmVwbGFjZW1l
bnQuCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFjb2RlQmxvY2stPmhhc09wdGltaXplZFJlcGxh
Y2VtZW50KCkpOwogICAgICAgICBjb2RlQmxvY2stPnNldE9wdGltaXphdGlvblRocmVzaG9sZEJh
c2VkT25Db21waWxhdGlvblJlc3VsdChDb21waWxhdGlvbkRlZmVycmVkKTsKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7CiAgICAgfQogCiAgICAg
aWYgKHdvcmtsaXN0U3RhdGUgPT0gREZHOjpXb3JrbGlzdDo6Q29tcGlsZWQpIHsKQEAgLTEwODUs
NyArMTEyNCw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXhlY1N0
YXRlKiBleGVjLCBpbnQzMl90IGJ5dGVjb2RlSW5kZXgpCiAgICAgICAgICAgICBjb2RlQmxvY2st
PnVwZGF0ZUFsbFByZWRpY3Rpb25zKCk7CiAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9z
ZU9TUigpKQogICAgICAgICAgICAgICAgIGRhdGFMb2coIkNvZGUgYmxvY2sgIiwgKmNvZGVCbG9j
aywgIiB3YXMgY29tcGlsZWQgYnV0IGl0IGRvZXNuJ3QgaGF2ZSBhbiBvcHRpbWl6ZWQgcmVwbGFj
ZW1lbnQuXG4iKTsKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIGVu
Y29kZVJlc3VsdCgwLCAwKTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAoY29kZUJsb2NrLT5o
YXNPcHRpbWl6ZWRSZXBsYWNlbWVudCgpKSB7CiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3Nl
T1NSKCkpCkBAIC0xMTEwLDcgKzExNDksNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBieXRlY29kZUluZGV4KQogICAgICAg
ICAgICAgICAgICAgICAiKCIsICpjb2RlQmxvY2stPnJlcGxhY2VtZW50KCksICIpIChpbiBsb29w
KS5cbiIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgY29kZUJsb2NrLT5yZXBsYWNlbWVu
dCgpLT5qZXR0aXNvbihDb3VudFJlb3B0aW1pemF0aW9uKTsKLSAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsKICAgICAgICAgfQogICAg
IH0gZWxzZSB7CiAgICAgICAgIGlmICghY29kZUJsb2NrLT5zaG91bGRPcHRpbWl6ZU5vdygpKSB7
CkBAIC0xMTE5LDcgKzExNTgsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGlt
aXplKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBieXRlY29kZUluZGV4KQogICAgICAgICAgICAg
ICAgICAgICAiRGVsYXlpbmcgb3B0aW1pemF0aW9uIGZvciAiLCAqY29kZUJsb2NrLAogICAgICAg
ICAgICAgICAgICAgICAiIGJlY2F1c2Ugb2YgaW5zdWZmaWNpZW50IHByb2ZpbGluZy5cbiIpOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4g
ZW5jb2RlUmVzdWx0KDAsIDApOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKE9wdGlvbnM6OnZl
cmJvc2VPU1IoKSkKQEAgLTExNDcsMTIgKzExODYsMTEgQEAgY2hhciogSklUX09QRVJBVElPTiBv
cGVyYXRpb25PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIGludDMyX3QgYnl0ZWNvZGVJbmRleCkK
ICAgICAgICAgfQogCiAgICAgICAgIENvbXBpbGF0aW9uUmVzdWx0IHJlc3VsdCA9IERGRzo6Y29t
cGlsZSgKLSAgICAgICAgICAgIHZtLCBjb2RlQmxvY2stPm5ld1JlcGxhY2VtZW50KCkuZ2V0KCks
IERGRzo6REZHTW9kZSwgYnl0ZWNvZGVJbmRleCwKLSAgICAgICAgICAgIG11c3RIYW5kbGVWYWx1
ZXMsIEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoKSwKLSAgICAg
ICAgICAgIHZtLmVuc3VyZVdvcmtsaXN0KCkpOworICAgICAgICAgICAgdm0sIGNvZGVCbG9jay0+
bmV3UmVwbGFjZW1lbnQoKS5nZXQoKSwgMCwgREZHOjpERkdNb2RlLCBieXRlY29kZUluZGV4LAor
ICAgICAgICAgICAgbXVzdEhhbmRsZVZhbHVlcywgSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2s6OmNyZWF0ZSgpKTsKICAgICAgICAgCiAgICAgICAgIGlmIChyZXN1bHQgIT0gQ29t
cGlsYXRpb25TdWNjZXNzZnVsKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBy
ZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOwogICAgIH0KICAgICAKICAgICBDb2RlQmxvY2sqIG9w
dGltaXplZENvZGVCbG9jayA9IGNvZGVCbG9jay0+cmVwbGFjZW1lbnQoKTsKQEAgLTExNjYsNyAr
MTIwNCw4IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXhlY1N0YXRl
KiBleGVjLCBpbnQzMl90IGJ5dGVjb2RlSW5kZXgpCiAgICAgICAgIH0KIAogICAgICAgICBjb2Rl
QmxvY2stPm9wdGltaXplU29vbigpOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y2hhcio+
KGFkZHJlc3MpOworICAgICAgICBBU1NFUlQoZXhlYy0+Y29kZUJsb2NrKCkgPT0gb3B0aW1pemVk
Q29kZUJsb2NrKTsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChhZGRyZXNzLCBleGVjLT50
b3BPZkZyYW1lKCkpOwogICAgIH0KIAogICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpIHsK
QEAgLTExOTUsMTQgKzEyMzQsMTQgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRp
bWl6ZShFeGVjU3RhdGUqIGV4ZWMsIGludDMyX3QgYnl0ZWNvZGVJbmRleCkKICAgICAgICAgICAg
ICAgICAqY29kZUJsb2NrLT5yZXBsYWNlbWVudCgpLCAiIChhZnRlciBPU1IgZmFpbCkuXG4iKTsK
ICAgICAgICAgfQogICAgICAgICBvcHRpbWl6ZWRDb2RlQmxvY2stPmpldHRpc29uKENvdW50UmVv
cHRpbWl6YXRpb24pOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJl
c3VsdCgwLCAwKTsKICAgICB9CiAKICAgICAvLyBPU1IgZmFpbGVkIHRoaXMgdGltZSwgYnV0IGl0
IG1pZ2h0IHN1Y2NlZWQgbmV4dCB0aW1lISBMZXQgdGhlIGNvZGUgcnVuIGEgYml0CiAgICAgLy8g
bG9uZ2VyIGFuZCB0aGVuIHRyeSBhZ2Fpbi4KICAgICBjb2RlQmxvY2stPm9wdGltaXplQWZ0ZXJX
YXJtVXAoKTsKICAgICAKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAs
IDApOwogfQogI2VuZGlmCiAKQEAgLTE1MzAsMTMgKzE1NjksMTMgQEAgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25JbnN0YW5jZU9mKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZXN1bHQpKTsK
IH0KIAotQ2FsbEZyYW1lKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNpemVBbmRBbGxvY0ZyYW1l
Rm9yVmFyYXJncyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVu
dHMsIGludDMyX3QgZmlyc3RGcmVlUmVnaXN0ZXIpCitDYWxsRnJhbWUqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFyYXJncyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRBcmd1bWVudHMsIGludDMyX3QgZmlyc3RGcmVlUmVnaXN0ZXIpCiB7CiAgICAg
Vk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2
bSwgZXhlYyk7CiAgICAgSlNTdGFjayogc3RhY2sgPSAmZXhlYy0+aW50ZXJwcmV0ZXIoKS0+c3Rh
Y2soKTsKICAgICBKU1ZhbHVlIGFyZ3VtZW50cyA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQXJn
dW1lbnRzKTsKLSAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IHNpemVBbmRBbGxvY0ZyYW1l
Rm9yVmFyYXJncyhleGVjLCBzdGFjaywgYXJndW1lbnRzLCBmaXJzdEZyZWVSZWdpc3Rlcik7Cisg
ICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBzaXplRnJhbWVGb3JWYXJhcmdzKGV4ZWMsIHN0
YWNrLCBhcmd1bWVudHMsIGZpcnN0RnJlZVJlZ2lzdGVyKTsKICAgICByZXR1cm4gbmV3Q2FsbEZy
YW1lOwogfQogCkBAIC0xNzI5LDEyICsxNzY4LDExIEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25Jbml0R2xvYmFsQ29uc3QoRXhlY1N0YXRlKiBleGVjLCBJbnN0cnVjdGlvbiogcGMpCiAg
ICAgcGNbMV0udS5yZWdpc3RlclBvaW50ZXItPnNldCgqdm0sIGV4ZWMtPmNvZGVCbG9jaygpLT5n
bG9iYWxPYmplY3QoKSwgdmFsdWUpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gbG9va3VwRXhj
ZXB0aW9uSGFuZGxlcihFeGVjU3RhdGUqIGV4ZWMpCit2b2lkIEpJVF9PUEVSQVRJT04gbG9va3Vw
RXhjZXB0aW9uSGFuZGxlcihWTSogdm0sIEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBWTSogdm0g
PSAmZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVj
KTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjLCBOYXRpdmVDYWxs
RnJhbWVUcmFjZXI6OlZNRW50cnlTZW50aW5lbE9LKTsKIAotICAgIEpTVmFsdWUgZXhjZXB0aW9u
VmFsdWUgPSBleGVjLT5leGNlcHRpb24oKTsKKyAgICBKU1ZhbHVlIGV4Y2VwdGlvblZhbHVlID0g
dm0tPmV4Y2VwdGlvbigpOwogICAgIEFTU0VSVChleGNlcHRpb25WYWx1ZSk7CiAgICAgCiAgICAg
Z2VuZXJpY1Vud2luZCh2bSwgZXhlYywgZXhjZXB0aW9uVmFsdWUpOwpAQCAtMTc2Nyw3ICsxODA1
LDYgQEAgYXNtICgKICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFs
dWUpICJcbiIKIEhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKIFNZTUJP
TF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAibW92IDAoJXJi
cCksICVyYnBcbiIgLy8gQ2FsbGVyRnJhbWVBbmRQQzo6Y2FsbGVyRnJhbWUKICAgICAibW92ICVy
YnAsICVyZGlcbiIKICAgICAiam1wICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJu
VmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCiApOwpAQCAtMTc3OCw4ICsxODE1LDExIEBAIGFzbSAo
CiAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBI
SURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBTWU1CT0xfU1RSSU5HKGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgIm1vdiAwKCVlYnApLCAlZWJwXG4i
IC8vIENhbGxlckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCi0gICAgIm1vdiAlZWJwLCA0KCVlc3Ap
XG4iCisgICAgIm1vdiAoJWVzcCksICVlYXhcbiIKKyAgICAicHVzaCAlZWJwXG4iCisgICAgImxl
YWwgLTQoJWVzcCksICVlc3BcbiIKKyAgICAicHVzaCAlZWJwXG4iCisgICAgInB1c2ggJWVheFxu
IgogICAgICJqbXAgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhF
eGVjU3RhdGUpICJcbiIKICk7CiAKQEAgLTE3OTIsNyArMTgzMiw2IEBAIEhJREVfU1lNQk9MKGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKICIudGh1bWIiICJcbiIKICIudGh1bWJfZnVuYyAi
IFRIVU1CX0ZVTkNfUEFSQU0oZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogU1lNQk9MX1NU
UklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgotICAgICJsZHIgcjcsIFtyNywg
IzBdIiAiXG4iIC8vIENhbGxlckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCiAgICAgIm1vdiByMCwg
cjciICJcbiIKICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVl
V2l0aEV4ZWNTdGF0ZSkgIlxuIgogKTsKQEAgLTE4MDQsNyArMTg0Myw2IEBAIGFzbSAoCiBISURF
X1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBJTkxJTkVfQVJNX0ZVTkNUSU9O
KGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpCiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJu
VmFsdWUpICI6IiAiXG4iCi0gICAgImxkciByMTEsIFtyMTEsICMwXSIgIlxuIiAvLyBDYWxsZXJG
cmFtZUFuZFBDOjpjYWxsZXJGcmFtZQogICAgICJtb3YgcjAsIHIxMSIgIlxuIgogICAgICJiICIg
TE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4i
CiApOwpAQCAtMTgxNiw3ICsxODU0LDYgQEAgYXNtICgKICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5H
KGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKIEhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0
dXJuVmFsdWUpICJcbiIKIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoi
ICJcbiIKLSAgICAibGR1ciB4MjksIFt4MjksICMwXSIgIlxuIgogICAgICAibW92IHgwLCB4Mjki
ICJcbiIKICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdp
dGhFeGVjU3RhdGUpICJcbiIKICk7CkBAIC0xODI4LDcgKzE4NjUsNiBAQCBhc20gKAogSElERV9T
WU1CT0woZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogU1lNQk9MX1NUUklORyhnZXRIb3N0
Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgogICAgIExPQURfRlVOQ1RJT05fVE9fVDkoZ2V0SG9z
dENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpCi0gICAgImx3ICRmcCwgMCgkZnApIiAiXG4i
IC8vIENhbGxlckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCiAgICAgIm1vdmUgJGEwLCAkZnAiICJc
biIKICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4
ZWNTdGF0ZSkgIlxuIgogKTsKQEAgLTE4MzksNyArMTg3NSw2IEBAIGFzbSAoCiAiLmdsb2JsICIg
U1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBISURFX1NZTUJPTChn
ZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0
dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgIm1vdi5sIEByMTQsIHIxNCIgIlxuIiAvLyBDYWxsZXJG
cmFtZUFuZFBDOjpjYWxsZXJGcmFtZQogICAgICJtb3YgcjE0LCByNCIgIlxuIgogICAgICJtb3Yu
bCAyZiwgIiBTSDRfU0NSQVRDSF9SRUdJU1RFUiAiXG4iCiAgICAgImJyYWYgIiBTSDRfU0NSQVRD
SF9SRUdJU1RFUiAiXG4iCkBAIC0xODUyLDcgKzE4ODcsNiBAQCBTWU1CT0xfU1RSSU5HKGdldEhv
c3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCiBleHRlcm4gIkMiIHsKICAgICBfX2RlY2xzcGVj
KG5ha2VkKSBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJOX1ZBTFVFX09QVElPTiBnZXRI
b3N0Q2FsbFJldHVyblZhbHVlKCkKICAgICB7Ci0gICAgICAgIF9fYXNtIG1vdiBlYnAsIFtlYnAg
KyAwXTsgLy8gQ2FsbGVyRnJhbWVBbmRQQzo6Y2FsbGVyRnJhbWUKICAgICAgICAgX19hc20gbW92
IFtlc3AgKyA0XSwgZWJwOwogICAgICAgICBfX2FzbSBqbXAgZ2V0SG9zdENhbGxSZXR1cm5WYWx1
ZVdpdGhFeGVjU3RhdGUKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5oCmluZGV4IDQzY2E2MTc3YmZiZDFkNWQzNDQ4NTY0ZTAwMTEwZWRhMmVhOTcwMzcuLjkz
M2IzMTEyMWQ2NjIxYzZiMTUwMTRmN2EyYWJkZmNkYmZmNGJmOTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxF
KEpJVCkKIAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgorI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRo
cy5oIgogI2luY2x1ZGUgIkpJVEV4Y2VwdGlvbnMuaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCiAj
aW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgpAQCAtNzIsNiArNzMsNyBAQCBleHRlcm4gIkMiIHsKICAg
ICBQYzogSW5zdHJ1Y3Rpb24qIGkuZS4gYnl0ZWNvZGUgUEMKICAgICBSOiBSZWdpc3RlcgogICAg
IFM6IHNpemVfdAorICAgIFNwcnQ6IFNsb3dQYXRoUmV0dXJuVHlwZQogICAgIFNzaTogU3RydWN0
dXJlU3R1YkluZm8qCiAgICAgU3Q6IFN0cnVjdHVyZSoKICAgICBWOiB2b2lkCkBAIC05Miw2ICs5
NCw3IEBAIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0
aW9uX0VDQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VDSSkoRXhlY1N0YXRlKiwgSlNDZWxsKiwgU3Ry
aW5nSW1wbCopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRP
cGVyYXRpb25fRUNKKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBl
ZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FREEpKEV4
ZWNTdGF0ZSosIGRvdWJsZSwgSlNBcnJheSopOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUUpKEV4ZWNTdGF0ZSosIEV4ZWNTdGF0ZSopOwog
dHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUkp
KEV4ZWNTdGF0ZSosIFN0cmluZ0ltcGwqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSk7
CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9F
SkEpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBKU0FycmF5Kik7CkBAIC0xMzMsNiArMTM2
LDcgQEAgdHlwZWRlZiBzaXplX3QgSklUX09QRVJBVElPTiAoKlNfSklUT3BlcmF0aW9uX0VKKShF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHNpemVfdCBKSVRfT1BFUkFUSU9O
ICgqU19KSVRPcGVyYXRpb25fRUpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUpOwogdHlwZWRlZiBzaXplX3QgSklUX09QRVJBVElPTiAoKlNfSklUT3BlcmF0aW9u
X0VPSnNzKShFeGVjU3RhdGUqLCBKU09iamVjdCosIEpTU3RyaW5nKik7CiB0eXBlZGVmIHNpemVf
dCBKSVRfT1BFUkFUSU9OICgqU19KSVRPcGVyYXRpb25fSikoRW5jb2RlZEpTVmFsdWUpOwordHlw
ZWRlZiBTbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiAoKlNwcnRfSklUT3BlcmF0aW9u
X0VaKShFeGVjU3RhdGUqLCBpbnQzMl90KTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgq
Vl9KSVRPcGVyYXRpb25fRSkoRXhlY1N0YXRlKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElP
TiAoKlZfSklUT3BlcmF0aW9uX0VDKShFeGVjU3RhdGUqLCBKU0NlbGwqKTsKIHR5cGVkZWYgdm9p
ZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNiKShFeGVjU3RhdGUqLCBDb2RlQmxv
Y2sqKTsKQEAgLTE3NCwxOCArMTc4LDE3IEBAIHR5cGVkZWYgY2hhciogSklUX09QRVJBVElPTiAo
KlBfSklUT3BlcmF0aW9uX0VTdEopKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIEVuY29kCiB0eXBl
ZGVmIGNoYXIqIEpJVF9PUEVSQVRJT04gKCpQX0pJVE9wZXJhdGlvbl9FU3RQUykoRXhlY1N0YXRl
KiwgU3RydWN0dXJlKiwgdm9pZCosIHNpemVfdCk7CiB0eXBlZGVmIGNoYXIqIEpJVF9PUEVSQVRJ
T04gKCpQX0pJVE9wZXJhdGlvbl9FU3RTUykoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgc2l6ZV90
LCBzaXplX3QpOwogdHlwZWRlZiBjaGFyKiBKSVRfT1BFUkFUSU9OICgqUF9KSVRPcGVyYXRpb25f
RVN0WikoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgaW50MzJfdCk7Ci10eXBlZGVmIGNoYXIqIEpJ
VF9PUEVSQVRJT04gKCpQX0pJVE9wZXJhdGlvbl9FWikoRXhlY1N0YXRlKiwgaW50MzJfdCk7CiB0
eXBlZGVmIGNoYXIqIEpJVF9PUEVSQVRJT04gKCpQX0pJVE9wZXJhdGlvbl9FWlopKEV4ZWNTdGF0
ZSosIGludDMyX3QsIGludDMyX3QpOwogdHlwZWRlZiBTdHJpbmdJbXBsKiBKSVRfT1BFUkFUSU9O
ICgqSV9KSVRPcGVyYXRpb25fRUpzcykoRXhlY1N0YXRlKiwgSlNTdHJpbmcqKTsKIHR5cGVkZWYg
SlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gKCpKc3NfSklUT3BlcmF0aW9uX0VaKShFeGVjU3RhdGUq
LCBpbnQzMl90KTsKIAogLy8gVGhpcyBtZXRob2QgaXMgdXNlZCB0byBsb29rdXAgYW4gZXhjZXB0
aW9uIGhhbmRlciwga2V5ZWQgYnkgZmF1bHRMb2NhdGlvbiwgd2hpY2ggaXMKIC8vIHRoZSByZXR1
cm4gbG9jYXRpb24gZnJvbSBvbmUgb2YgdGhlIGNhbGxzIG91dCB0byBvbmUgb2YgdGhlIGhlbHBl
ciBvcGVyYXRpb25zIGFib3ZlLgotICAgIAotdm9pZCBKSVRfT1BFUkFUSU9OIGxvb2t1cEV4Y2Vw
dGlvbkhhbmRsZXIoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworCit2b2lkIEpJVF9PUEVSQVRJ
T04gbG9va3VwRXhjZXB0aW9uSGFuZGxlcihWTSosIEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsK
IHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25WTUhhbmRsZUV4Y2VwdGlvbihFeGVjU3RhdGUq
KSBXVEZfSU5URVJOQUw7CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25TdGFja0NoZWNr
KEV4ZWNTdGF0ZSosIENvZGVCbG9jayopIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihFeGVjU3RhdGUqLCBDb2RlQmxvY2sq
KSBXVEZfSU5URVJOQUw7CiBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEFyaXR5
Q2hlY2soRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2soRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkKEV4ZWNTdGF0ZSosIFN0
cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIFN0cmluZ0ltcGwqKSBXVEZfSU5URVJO
QUw7CkBAIC0yMTMsMTIgKzIxNiwxOCBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0
QnlWYWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLAogdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFM
Owogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsR2VuZXJpYyhFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBX
VEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxF
dmFsKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmlydHVhbENhbGwoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsRXZhbChFeGVjU3RhdGUqLCBFeGVjU3RhdGUqKSBX
VEZfSU5URVJOQUw7CiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDYWxsKEV4ZWNT
dGF0ZSopIFdURl9JTlRFUk5BTDsKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0Ns
b3N1cmVDYWxsKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKK2NoYXIqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmlydHVhbENhbGwoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogY2hhciogSklU
X09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ29uc3RydWN0KEV4ZWNTdGF0ZSopIFdURl9JTlRF
Uk5BTDsKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0NvbnN0cnVjdChFeGVjU3Rh
dGUqKSBXVEZfSU5URVJOQUw7CitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDYWxs
VGhhdFByZXNlcnZlc1JlZ3MoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworY2hhciogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2VydmVzUmVncyhFeGVjU3Rh
dGUqKSBXVEZfSU5URVJOQUw7CitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxD
YWxsVGhhdFByZXNlcnZlc1JlZ3MoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworY2hhciogSklU
X09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3MoRXhl
Y1N0YXRlKikgV1RGX0lOVEVSTkFMOworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5r
Q29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3MoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworCiBz
aXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlTGVzcyhFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHNpemVfdCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVMZXNzRXEoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBzaXplX3QgSklUX09QRVJBVElPTiBvcGVy
YXRpb25Db21wYXJlR3JlYXRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUpIFdURl9JTlRFUk5BTDsKQEAgLTI0Miw3ICsyNTEsNyBAQCB2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVGhyb3dTdGF0aWNFcnJvcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwg
aW50MzJfdAogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93KEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
RGVidWcoRXhlY1N0YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwogI2lmIEVOQUJMRShERkdf
SklUKQotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeGVjU3RhdGUqLCBp
bnQzMl90KSBXVEZfSU5URVJOQUw7CitTbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25PcHRpbWl6ZShFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CiAjZW5k
aWYKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUluZGV4KEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBpbnQzMl90LCBFbmNvZGVkSlNWYWx1ZSk7CiAjaWYgVVNFKEpTVkFMVUU2
NCkKQEAgLTI2Nyw3ICsyNzYsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGVhck9m
ZkFyZ3VtZW50cyhFeGVjU3RhdGUqLCBKU0NlbGwqLCBKU0NlbGwqKSBXVEZfSQogRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWxldGVCeUlkKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlIGJhc2UsIGNvbnN0IElkZW50aWZpZXIqKSBXVEZfSU5URVJOQUw7CiBKU0NlbGwq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UE5hbWVzKEV4ZWNTdGF0ZSosIEpTT2JqZWN0Kikg
V1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnN0
YW5jZU9mKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm90bykg
V1RGX0lOVEVSTkFMOwotQ2FsbEZyYW1lKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNpemVBbmRB
bGxvY0ZyYW1lRm9yVmFyYXJncyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMs
IGludDMyX3QgZmlyc3RGcmVlUmVnaXN0ZXIpIFdURl9JTlRFUk5BTDsKK0NhbGxGcmFtZSogSklU
X09QRVJBVElPTiBvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlIGFyZ3VtZW50cywgaW50MzJfdCBmaXJzdEZyZWVSZWdpc3RlcikgV1RGX0lOVEVS
TkFMOwogQ2FsbEZyYW1lKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxvYWRWYXJhcmdzKEV4ZWNT
dGF0ZSosIENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgYXJndW1lbnRzKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblRvT2JqZWN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJO
QUw7CiAKQEAgLTI4Nyw2ICsyOTYsNjggQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbklu
aXRHbG9iYWxDb25zdChFeGVjU3RhdGUqLCBJbnN0cnVjdGlvbiopOwogCiB9IC8vIGV4dGVybiAi
QyIKIAoraW5saW5lIFBfSklUT3BlcmF0aW9uX0Ugb3BlcmF0aW9uTGlua0ZvcigKKyAgICBDb2Rl
U3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3Rl
cnMpCit7CisgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBDb2RlRm9yQ2FsbDoKKyAgICAg
ICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlv
bk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtDYWxsOworICAg
ICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgIHJldHVybiBvcGVy
YXRpb25MaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ29kZUZvckNvbnN0cnVjdDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMp
IHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAg
ICAgICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3Q7CisgICAgICAgIGNhc2UgTXVzdFBy
ZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtDb25zdHJ1
Y3RUaGF0UHJlc2VydmVzUmVnczsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9Cisg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KKworaW5s
aW5lIFBfSklUT3BlcmF0aW9uX0Ugb3BlcmF0aW9uVmlydHVhbEZvcigKKyAgICBDb2RlU3BlY2lh
bGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCit7
CisgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBDb2RlRm9yQ2FsbDoKKyAgICAgICAgc3dp
dGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJl
cXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvblZpcnR1YWxDYWxsOworICAgICAg
ICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgIHJldHVybiBvcGVyYXRp
b25WaXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ29kZUZvckNvbnN0cnVjdDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMp
IHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAg
ICAgICAgcmV0dXJuIG9wZXJhdGlvblZpcnR1YWxDb25zdHJ1Y3Q7CisgICAgICAgIGNhc2UgTXVz
dFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvblZpcnR1YWxD
b25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnczsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAg
ICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30K
KworaW5saW5lIFBfSklUT3BlcmF0aW9uX0Ugb3BlcmF0aW9uTGlua0Nsb3N1cmVDYWxsRm9yKFJl
Z2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dpdGNoIChyZWdpc3Rl
cnMpIHsKKyAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAg
IHJldHVybiBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGw7CisgICAgY2FzZSBNdXN0UHJlc2VydmVS
ZWdpc3RlcnM6CisgICAgICAgIHJldHVybiBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGxUaGF0UHJl
c2VydmVzUmVnczsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICByZXR1cm4gMDsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUo
SklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNw
cAppbmRleCA0MjQxYmFmMzJhZDljNDUyZDU3MmYyOTQ2NzRmNjYxZGJhOTgxMGZiLi4yNmRkNGQx
YWY3NDVhZmExZmJjNTNhOWMwMjNhNmU0NzQxYTY2YTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTIwLDcgKzUy
MCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogCiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29k
ZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lh
bFJlZ2lzdGVycygpLAotICAgICAgICBjYWxsRnJhbWVSZWdpc3RlciwgSlNWYWx1ZVJlZ3MocmVn
VDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIHRydWUpOworICAgICAgICBKU1ZhbHVlUmVncyhyZWdU
MCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgdHJ1ZSk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgo
KnRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRC
eUlkcy5hcHBlbmQoZ2VuKTsKQEAgLTU2Niw4ICs1NjYsOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9w
dXRfYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIEpJVFB1dEJ5
SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVj
b2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKSwKLSAgICAgICAgY2Fs
bEZyYW1lUmVnaXN0ZXIsIEpTVmFsdWVSZWdzKHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEpLCBy
ZWdUMiwgdHJ1ZSwKLSAgICAgICAgbV9jb2RlQmxvY2stPmVjbWFNb2RlKCksIGRpcmVjdCA/IERp
cmVjdCA6IE5vdERpcmVjdCk7CisgICAgICAgIEpTVmFsdWVSZWdzKHJlZ1QwKSwgSlNWYWx1ZVJl
Z3MocmVnVDEpLCByZWdUMiwgdHJ1ZSwgbV9jb2RlQmxvY2stPmVjbWFNb2RlKCksCisgICAgICAg
IGRpcmVjdCA/IERpcmVjdCA6IE5vdERpcmVjdCk7CiAgICAgCiAgICAgZ2VuLmdlbmVyYXRlRmFz
dFBhdGgoKnRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CkBAIC0x
MDc4LDcgKzEwNzgsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbChCeVZhbElu
Zm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZAogICAgIHBhdGNoQnVmZmVy
LmxpbmsoZG9uZSwgYnlWYWxJbmZvLT5iYWRUeXBlSnVtcC5sYWJlbEF0T2Zmc2V0KGJ5VmFsSW5m
by0+YmFkVHlwZUp1bXBUb0RvbmUpKTsKICAgICAKICAgICBieVZhbEluZm8tPnN0dWJSb3V0aW5l
ID0gRklOQUxJWkVfQ09ERV9GT1JfU1RVQigKLSAgICAgICAgcGF0Y2hCdWZmZXIsCisgICAgICAg
IG1fY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKICAgICAgICAgKCJCYXNlbGluZSBnZXRfYnlfdmFs
IHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLCB0b0NTdHJpbmcoKm1fY29kZUJsb2NrKS5k
YXRhKCksIHJldHVybkFkZHJlc3MudmFsdWUoKSkpOwogICAgIAogICAgIFJlcGF0Y2hCdWZmZXIg
cmVwYXRjaEJ1ZmZlcihtX2NvZGVCbG9jayk7CkBAIC0xMTQxLDEyICsxMTQxLDEyIEBAIHZvaWQg
SklUOjpwcml2YXRlQ29tcGlsZVB1dEJ5VmFsKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5B
ZGRyZXNzUHRyIHJldHVybkFkCiAgICAgYm9vbCBpc0RpcmVjdCA9IG1faW50ZXJwcmV0ZXItPmdl
dE9wY29kZUlEKGN1cnJlbnRJbnN0cnVjdGlvbi0+dS5vcGNvZGUpID09IG9wX3B1dF9ieV92YWxf
ZGlyZWN0OwogICAgIGlmICghaXNEaXJlY3QpIHsKICAgICAgICAgYnlWYWxJbmZvLT5zdHViUm91
dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCi0gICAgICAgICAgICBwYXRjaEJ1ZmZlciwK
KyAgICAgICAgICAgIG1fY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKICAgICAgICAgICAgICgiQmFz
ZWxpbmUgcHV0X2J5X3ZhbCBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwgdG9DU3RyaW5n
KCptX2NvZGVCbG9jaykuZGF0YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkpKTsKICAgICAgICAg
CiAgICAgfSBlbHNlIHsKICAgICAgICAgYnlWYWxJbmZvLT5zdHViUm91dGluZSA9IEZJTkFMSVpF
X0NPREVfRk9SX1NUVUIoCi0gICAgICAgICAgICBwYXRjaEJ1ZmZlciwKKyAgICAgICAgICAgIG1f
Y29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKICAgICAgICAgICAgICgiQmFzZWxpbmUgcHV0X2J5X3Zh
bF9kaXJlY3Qgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsIHRvQ1N0cmluZygqbV9jb2Rl
QmxvY2spLmRhdGEoKSwgcmV0dXJuQWRkcmVzcy52YWx1ZSgpKSk7CiAgICAgfQogICAgIFJlcGF0
Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihtX2NvZGVCbG9jayk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAppbmRleCA1YmM4ZDFh
YmI0NDBhOTYwMzE0ZWRkMzY4ODY3NGNmZDAxYWEwYjc5Li5kMThmZWE3MTVjYjAzYjM3YWE5MjZk
ODQ5YThlNWFiOTU2M2VjZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ4Miw3ICs0ODIsNyBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKIAogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9j
aywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdp
c3RlcnMoKSwKLSAgICAgICAgY2FsbEZyYW1lUmVnaXN0ZXIsIEpTVmFsdWVSZWdzOjpwYXlsb2Fk
T25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIHRydWUpOworICAgICAgICBK
U1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDAp
LCB0cnVlKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nh
c2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKICAgICBtX2dldEJ5SWRzLmFwcGVuZChnZW4pOwpAQCAt
NTMwLDcgKzUzMCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV9pZChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogCiAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAg
ICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNl
dDo6c3BlY2lhbFJlZ2lzdGVycygpLAotICAgICAgICBjYWxsRnJhbWVSZWdpc3RlciwgSlNWYWx1
ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKSwKKyAg
ICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDMs
IHJlZ1QyKSwKICAgICAgICAgcmVnVDEsIHRydWUsIG1fY29kZUJsb2NrLT5lY21hTW9kZSgpLCBk
aXJlY3QgPyBEaXJlY3QgOiBOb3REaXJlY3QpOwogICAgIAogICAgIGdlbi5nZW5lcmF0ZUZhc3RQ
YXRoKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1
YlJvdXRpbmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUuaApp
bmRleCAwMjBlZjY5MDc5ZDMxN2JhNmEyY2EwNzYwMDYxYjQ5OTVkY2VkYjJkLi43NDg2NTRiYmM2
MTM0N2RlOWJjNjA5ZTg2YmMxMTU2NTFhM2RkNDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRTdHViUm91dGluZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0xNTAsMTEgKzE1MCw4IEBAIHByb3RlY3RlZDoKIH07CiAK
IC8vIEhlbHBlciBmb3IgdGhlIGNyZWF0aW9uIG9mIHNpbXBsZSBzdHViIHJvdXRpbmVzIHRoYXQg
bmVlZCBubyBoZWxwIGZyb20gdGhlIEdDLgotI2RlZmluZSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVC
KHBhdGNoQnVmZmVyLCBkYXRhTG9nRkFyZ3VtZW50cykgXAotICAgIChhZG9wdFJlZihuZXcgSklU
U3R1YlJvdXRpbmUoRklOQUxJWkVfQ09ERSgocGF0Y2hCdWZmZXIpLCBkYXRhTG9nRkFyZ3VtZW50
cykpKSkKLQotI2RlZmluZSBGSU5BTElaRV9DT0RFX0ZPUl9ERkdfU1RVQihwYXRjaEJ1ZmZlciwg
ZGF0YUxvZ0ZBcmd1bWVudHMpIFwKLSAgICAoYWRvcHRSZWYobmV3IEpJVFN0dWJSb3V0aW5lKEZJ
TkFMSVpFX0RGR19DT0RFKChwYXRjaEJ1ZmZlciksIGRhdGFMb2dGQXJndW1lbnRzKSkpKQorI2Rl
ZmluZSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKGNvZGVCbG9jaywgcGF0Y2hCdWZmZXIsIGRhdGFM
b2dGQXJndW1lbnRzKSBcCisgICAgKGFkb3B0UmVmKG5ldyBKSVRTdHViUm91dGluZShGSU5BTEla
RV9DT0RFX0ZPUigoY29kZUJsb2NrKSwgKHBhdGNoQnVmZmVyKSwgZGF0YUxvZ0ZBcmd1bWVudHMp
KSkpCiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFN0dWJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmgKaW5kZXggMjRkOTVkZmQ0OWI4ZTRhZjFjMjUwNmE4NDI5N2EyYzhmZmU5NDY3ZC4uMTMzMTQ0
ZTE4OWEzOGNhZGVmMWEzNmViM2UyMmUxMmI2NjI4ZjA5MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUU3R1YnMuaApAQCAtMzcsMTQgKzM3LDEzIEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVO
QUJMRShKSVQpCiAKICNpZiBPUyhXSU5ET1dTKQotY2xhc3MgRXhlY1N0YXRlOwotY2xhc3MgUmVn
aXN0ZXI7CiBzdHJ1Y3QgUHJvdG9DYWxsRnJhbWU7CitjbGFzcyBWTTsKIAogZXh0ZXJuICJDIiB7
Ci0gICAgRW5jb2RlZEpTVmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiwgRXhlY1N0YXRlKios
IFByb3RvQ2FsbEZyYW1lKiwgUmVnaXN0ZXIqKTsKLSAgICB2b2lkIHJldHVybkZyb21KYXZhU2Ny
aXB0KCk7Ci0gICAgRW5jb2RlZEpTVmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24odm9pZCosIEV4
ZWNTdGF0ZSoqLCBQcm90b0NhbGxGcmFtZSosIFJlZ2lzdGVyKik7CisgICAgRW5jb2RlZEpTVmFs
dWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiwgVk0qLCBQcm90b0NhbGxGcmFtZSopOworICAgIEVu
Y29kZWRKU1ZhbHVlIGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHZvaWQqLCBWTSosIFByb3RvQ2FsbEZy
YW1lKik7CisgICAgdm9pZCBoYW5kbGVVbmNhdWdodEV4Y2VwdGlvbigpOwogfQogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNNU1ZDNjQuYXNt
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBiY2Q5ZGRiNDlmZGQ3ZTZjMTY0ODE5YWQ3ZjY2OTI1NzI1
ZTUyZjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20KKysrIC9kZXYvbnVsbApA
QCAtMSwyNTUgKzAsMCBAQAotOy8qCi07IENvcHlyaWdodCAoQykgMjAxMyBEaWdpYSBQbGMuIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotOwotOyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLTsgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi07
IGFyZSBtZXQ6Ci07IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci07ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLTsgMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLTsgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotOyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotOwotOyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLTsgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLTsgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci07IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi07IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotOyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi07IFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotOyBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi07IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotOyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLTsgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLTsqLwotCi1FWFRFUk4g
Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUgOiBuZWFyCi0KLVBVQkxJQyBjYWxs
VG9KYXZhU2NyaXB0Ci1QVUJMSUMgcmV0dXJuRnJvbUphdmFTY3JpcHQKLVBVQkxJQyBnZXRIb3N0
Q2FsbFJldHVyblZhbHVlCi0KLV9URVhUICAgU0VHTUVOVAotCi1jYWxsVG9KYXZhU2NyaXB0IFBS
T0MKLSAgICA7OyBUaGlzIGZ1bmN0aW9uIGlzIGJlbGlldmVkIHRvIGJlIGFuIGFjY3VyYXRlIGFk
YXB0YXRpb24gb2YgdGhlIGFzc2VtYmx5IGNyZWF0ZWQgYnkgdGhlIGxsaW50IHN0dWIgb2YgdGhl
Ci0gICAgOzsgc2FtZSBuYW1lIHdpdGggY2hhbmdlcyBmb3IgYXJndW1lbnQgcmVnaXN0ZXIgZGlm
ZmVyZW5jZXMuCi0gICAgbW92IHIxMCwgcXdvcmQgcHRyW3JzcF0KLSAgICBwdXNoIHJicAotICAg
IG1vdiByYXgsIHJicCA7IFNhdmUgcHJldmlvdXMgZnJhbWUgcG9pbnRlcgotICAgIG1vdiByYnAs
IHJzcAotICAgIHB1c2ggcjEyCi0gICAgcHVzaCByMTMKLSAgICBwdXNoIHIxNAotICAgIHB1c2gg
cjE1Ci0gICAgcHVzaCByYngKLSAgICBwdXNoIHJzaQotICAgIHB1c2ggcmRpCi0KLSAgICA7IEpJ
VCBvcGVyYXRpb25zIGNhbiB1c2UgdXAgdG8gNiBhcmdzICg0IGluIHJlZ2lzdGVycyBhbmQgMiBv
biB0aGUgc3RhY2spLgotICAgIDsgSW4gYWRkaXRpb24sIFg4Nl82NCBBQkkgc3BlY2lmaWVzIHRo
YXQgdGhlIHdvcnNlIGNhc2Ugc3RhY2sgYWxpZ25tZW50Ci0gICAgOyByZXF1aXJlbWVudCBpcyAz
MiBieXRlcy4gQmFzZWQgb24gdGhlc2UgZmFjdG9ycywgd2UgbmVlZCB0byBwYWQgdGhlIHN0YWNr
Ci0gICAgOyBhbiBhZGRpdGlvbmFsIDI4aCBieXRlcy4KLSAgICBzdWIgcnNwLCAyOGgKLQotICAg
IG1vdiByYnAsIHI5Ci0gICAgc3ViIHJicCwgNDAKLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIDQw
XSwgMAotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgMzJdLCByZHgKLQotICAgIG1vdiByYXgsIHF3
b3JkIHB0cltyZHhdCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyAyNF0sIHJheAotICAgIG1vdiBx
d29yZCBwdHJbcmJwICsgMTZdLCAxCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyA4XSwgcjEwCi0g
ICAgbW92IHF3b3JkIHB0cltyYnBdLCByYXgKLSAgICBtb3YgcmF4LCByYnAKLQotICAgIG1vdiBl
YngsIGR3b3JkIHB0cltyOCArIDQwXQotICAgIGFkZCByYngsIDYKLSAgICBzYWwgcmJ4LCAzCi0g
ICAgc3ViIHJicCwgcmJ4Ci0gICAgbW92IHF3b3JkIHB0cltyYnBdLCByYXgKLQotICAgIG1vdiBy
YXgsIDUKLQotY29weUhlYWRlckxvb3A6Ci0gICAgc3ViIHJheCwgMQotICAgIG1vdiByMTAsIHF3
b3JkIHB0cltyOCArIHJheCAqIDhdCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyByYXggKiA4ICsg
MTZdLCByMTAKLSAgICB0ZXN0IHJheCwgcmF4Ci0gICAgam56IGNvcHlIZWFkZXJMb29wCi0KLSAg
ICBtb3YgZWJ4LCBkd29yZCBwdHJbcjggKyAyNF0KLSAgICBzdWIgcmJ4LCAxCi0gICAgbW92IHIx
MGQsIGR3b3JkIHB0cltyOCArIDQwXQotICAgIHN1YiByMTAsIDEKLSAgICBjbXAgcmJ4LCByMTAK
LSAgICBqZSBjb3B5QXJncwotICAgIG1vdiByYXgsIDBhaAotCi1maWxsRXh0cmFBcmdzTG9vcDoK
LSAgICBzdWIgcjEwLCAxCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyByMTAgKiA4ICsgNTZdLCBy
YXgKLSAgICBjbXAgcmJ4LCByMTAKLSAgICBqbmUgZmlsbEV4dHJhQXJnc0xvb3AKLQotY29weUFy
Z3M6Ci0gICAgbW92IHJheCwgcXdvcmQgcHRyW3I4ICsgNDhdCi0KLWNvcHlBcmdzTG9vcDoKLSAg
ICB0ZXN0IGVieCwgZWJ4Ci0gICAganogY29weUFyZ3NEb25lCi0gICAgc3ViIGVieCwgMQotICAg
IG1vdiByMTAsIHF3b3JkIHB0cltyYXggKyByYnggKiA4XQotICAgIG1vdiBxd29yZCBwdHJbcmJw
ICsgcmJ4ICogOCArIDU2XSwgcjEwCi0gICAgam1wIGNvcHlBcmdzTG9vcAotCi1jb3B5QXJnc0Rv
bmU6Ci0gICAgbW92IHF3b3JkIHB0cltyZHhdLCByYnAKLSAgICBtb3YgcjE0LCAwRkZGRjAwMDAw
MDAwMDAwMGgKLSAgICBtb3YgcjE1LCAwRkZGRjAwMDAwMDAwMDAwMmgKLSAgICBjYWxsIHJjeAot
ICAgIGNtcCBxd29yZCBwdHJbcmJwICsgMTZdLCAxCi0gICAgamUgY2FsbGVlRnJhbWVQb3BwZWQK
LSAgICBtb3YgcmJwLCBxd29yZCBwdHJbcmJwXQotCi1jYWxsZWVGcmFtZVBvcHBlZDoKLSAgICBt
b3YgcmJ4LCBxd29yZCBwdHJbcmJwICsgMzJdIDsgVk0udG9wQ2FsbEZyYW1lCi0gICAgbW92IHIx
MCwgcXdvcmQgcHRyW3JicCArIDI0XQotICAgIG1vdiBxd29yZCBwdHJbcmJ4XSwgcjEwCi0gICAg
YWRkIHJzcCwgMjhoCi0gICAgcG9wIHJkaQotICAgIHBvcCByc2kKLSAgICBwb3AgcmJ4Ci0gICAg
cG9wIHIxNQotICAgIHBvcCByMTQKLSAgICBwb3AgcjEzCi0gICAgcG9wIHIxMgotICAgIHBvcCBy
YnAKLSAgICByZXQKLWNhbGxUb0phdmFTY3JpcHQgRU5EUAotCi1jYWxsVG9OYXRpdmVGdW5jdGlv
biBQUk9DCi0gICAgOzsgVGhpcyBmdW5jdGlvbiBpcyBiZWxpZXZlZCB0byBiZSBhbiBhY2N1cmF0
ZSBhZGFwdGF0aW9uIG9mIHRoZSBhc3NlbWJseSBjcmVhdGVkIGJ5IHRoZSBsbGludCBzdHViIG9m
IHRoZQotICAgIDs7IHNhbWUgbmFtZSB3aXRoIGNoYW5nZXMgZm9yIGFyZ3VtZW50IHJlZ2lzdGVy
IGRpZmZlcmVuY2VzLgotICAgIG1vdiByMTAsIHF3b3JkIHB0cltyc3BdCi0gICAgcHVzaCByYnAK
LSAgICBtb3YgcmF4LCByYnAgOyBTYXZlIHByZXZpb3VzIGZyYW1lIHBvaW50ZXIKLSAgICBtb3Yg
cmJwLCByc3AKLSAgICBwdXNoIHIxMgotICAgIHB1c2ggcjEzCi0gICAgcHVzaCByMTQKLSAgICBw
dXNoIHIxNQotICAgIHB1c2ggcmJ4Ci0gICAgcHVzaCByc2kKLSAgICBwdXNoIHJkaQotCi0gICAg
OyBKSVQgb3BlcmF0aW9ucyBjYW4gdXNlIHVwIHRvIDYgYXJncyAoNCBpbiByZWdpc3RlcnMgYW5k
IDIgb24gdGhlIHN0YWNrKS4KLSAgICA7IEluIGFkZGl0aW9uLCBYODZfNjQgQUJJIHNwZWNpZmll
cyB0aGF0IHRoZSB3b3JzZSBjYXNlIHN0YWNrIGFsaWdubWVudAotICAgIDsgcmVxdWlyZW1lbnQg
aXMgMzIgYnl0ZXMuIEJhc2VkIG9uIHRoZXNlIGZhY3RvcnMsIHdlIG5lZWQgdG8gcGFkIHRoZSBz
dGFjawotICAgIDsgYW4gYWRkaXRpb25hbCAyOGggYnl0ZXMuCi0gICAgc3ViIHJzcCwgMjhoCi0K
LSAgICBtb3YgcmJwLCByOQotICAgIHN1YiByYnAsIDQwCi0gICAgbW92IHF3b3JkIHB0cltyYnAg
KyA0MF0sIDAKLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIDMyXSwgcmR4Ci0KLSAgICBtb3YgcmF4
LCBxd29yZCBwdHJbcmR4XQotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgMjRdLCByYXgKLSAgICBt
b3YgcXdvcmQgcHRyW3JicCArIDE2XSwgMQotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgOF0sIHIx
MAotICAgIG1vdiBxd29yZCBwdHJbcmJwXSwgcmF4Ci0gICAgbW92IHJheCwgcmJwCi0KLSAgICBt
b3YgZWJ4LCBkd29yZCBwdHJbcjggKyA0MF0KLSAgICBhZGQgcmJ4LCA2Ci0gICAgc2FsIHJieCwg
MwotICAgIHN1YiByYnAsIHJieAotICAgIG1vdiBxd29yZCBwdHJbcmJwXSwgcmF4Ci0KLSAgICBt
b3YgcmF4LCA1Ci0KLWNvcHlIZWFkZXJMb29wOgotICAgIHN1YiByYXgsIDEKLSAgICBtb3YgcjEw
LCBxd29yZCBwdHJbcjggKyByYXggKiA4XQotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgcmF4ICog
OCArIDE2XSwgcjEwCi0gICAgdGVzdCByYXgsIHJheAotICAgIGpueiBjb3B5SGVhZGVyTG9vcAot
Ci0gICAgbW92IGVieCwgZHdvcmQgcHRyW3I4ICsgMjRdCi0gICAgc3ViIHJieCwgMQotICAgIG1v
diByMTBkLCBkd29yZCBwdHJbcjggKyA0MF0KLSAgICBzdWIgcjEwLCAxCi0gICAgY21wIHJieCwg
cjEwCi0gICAgamUgY29weUFyZ3MKLSAgICBtb3YgcmF4LCAwYWgKLQotZmlsbEV4dHJhQXJnc0xv
b3A6Ci0gICAgc3ViIHIxMCwgMQotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgcjEwICogOCArIDU2
XSwgcmF4Ci0gICAgY21wIHJieCwgcjEwCi0gICAgam5lIGZpbGxFeHRyYUFyZ3NMb29wCi0KLWNv
cHlBcmdzOgotICAgIG1vdiByYXgsIHF3b3JkIHB0cltyOCArIDQ4XQotCi1jb3B5QXJnc0xvb3A6
Ci0gICAgdGVzdCByYngsIHJieAotICAgIGp6IGNvcHlBcmdzRG9uZQotICAgIHN1YiByYngsIDEK
LSAgICBtb3YgcjEwLCBxd29yZCBwdHJbcmF4ICsgcmJ4ICogOF0KLSAgICBtb3YgcXdvcmQgcHRy
W3JicCArIHJieCAqIDggKyA1Nl0sIHIxMAotICAgIGptcCBjb3B5QXJnc0xvb3AKLQotY29weUFy
Z3NEb25lOgotICAgIG1vdiBxd29yZCBwdHJbcmR4XSwgcmJwCi0gICAgbW92IHIxNCwgMEZGRkYw
MDAwMDAwMDAwMDBoCi0gICAgbW92IHIxNSwgMEZGRkYwMDAwMDAwMDAwMDJoCi0KLSAgICBtb3Yg
cmF4LCByY3gKLSAgICBtb3YgcmN4LCByYnAKLSAgICBjYWxsIHJheAotCi0gICAgY21wIHF3b3Jk
IHB0cltyYnAgKyAxNl0sIDEKLSAgICBqZSBjYWxsZWVGcmFtZVBvcHBlZAotICAgIG1vdiByYnAs
IHF3b3JkIHB0cltyYnBdCi0KLWNhbGxlZUZyYW1lUG9wcGVkOgotICAgIG1vdiByYngsIHF3b3Jk
IHB0cltyYnAgKyAzMl0gOyBWTS50b3BDYWxsRnJhbWUKLSAgICBtb3YgcjEwLCBxd29yZCBwdHJb
cmJwICsgMjRdCi0gICAgbW92IHF3b3JkIHB0cltyYnhdLCByMTAKLSAgICBhZGQgcnNwLCAyOGgK
LSAgICBwb3AgcmRpCi0gICAgcG9wIHJzaQotICAgIHBvcCByYngKLSAgICBwb3AgcjE1Ci0gICAg
cG9wIHIxNAotICAgIHBvcCByMTMKLSAgICBwb3AgcjEyCi0gICAgcG9wIHJicAotICAgIHJldAot
Y2FsbFRvTmF0aXZlRnVuY3Rpb24gRU5EUAotCi1yZXR1cm5Gcm9tSmF2YVNjcmlwdCBQUk9DCi0g
ICAgYWRkIHJzcCwgMjhoCi0gICAgcG9wIHJkaQotICAgIHBvcCByc2kKLSAgICBwb3AgcmJ4Ci0g
ICAgcG9wIHIxNQotICAgIHBvcCByMTQKLSAgICBwb3AgcjEzCi0gICAgcG9wIHIxMgotICAgIHBv
cCByYnAKLSAgICByZXQKLXJldHVybkZyb21KYXZhU2NyaXB0IEVORFAKLQkKLWdldEhvc3RDYWxs
UmV0dXJuVmFsdWUgUFJPQwotICAgIG1vdiByYnAsIFtyYnBdIDsgQ2FsbEZyYW1lCi0gICAgbW92
IHJjeCwgcmJwIDsgcmN4IGlzIGZpcnN0IGFyZ3VtZW50IHJlZ2lzdGVyIG9uIFdpbmRvd3MKLSAg
ICBqbXAgZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUKLWdldEhvc3RDYWxsUmV0
dXJuVmFsdWUgRU5EUAotCi1fVEVYVCAgIEVORFMKLQotRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzWDg2LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzWDg2LmgKaW5kZXggYTFmYmRlZjJhMjRhMjZjMDE4NDBiYmFjNTU3MjA0ZTc1
NGViZWNjMS4uZGRkYjIxOTE3ZWFiODAzZGZjMDI1ZjViMjQ5NjVmMzVhZTg3NGM4YyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic1g4Ni5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNYODYuaApAQCAtMjAwLDIzMCArMjAwLDYgQEAg
U1lNQk9MX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKSAiOiIgIlxuIgogCiAjZW5k
aWYgLy8gQ09NUElMRVIoR0NDKQogCi0jaWYgQ09NUElMRVIoTVNWQykKLQotZXh0ZXJuICJDIiB7
Ci0KLSAgICAvLyBGSVhNRTogU2luY2UgV2luZG93cyBkb2Vzbid0IHVzZSB0aGUgTExJbnQsIHdl
IGhhdmUgaW5saW5lIHN0dWJzIGhlcmUuCi0gICAgLy8gVW50aWwgdGhlIExMSW50IGlzIGNoYW5n
ZWQgdG8gc3VwcG9ydCBXaW5kb3dzLCB0aGVzZSBzdHViIG5lZWRzIHRvIGJlIHVwZGF0ZWQuCi0g
ICAgX19kZWNsc3BlYyhuYWtlZCkgRW5jb2RlZEpTVmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lk
KiBjb2RlLCBFeGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJhbWUqLCBSZWdpc3RlciopCi0gICAgewot
ICAgICAgICBfX2FzbSB7Ci0gICAgICAgICAgICBtb3YgZWR4LCBbZXNwXQotICAgICAgICAgICAg
cHVzaCBlYnA7Ci0gICAgICAgICAgICBtb3YgZWF4LCBlYnA7Ci0gICAgICAgICAgICBtb3YgZWJw
LCBlc3A7Ci0gICAgICAgICAgICBwdXNoIGVzaTsKLSAgICAgICAgICAgIHB1c2ggZWRpOwotICAg
ICAgICAgICAgcHVzaCBlYng7Ci0gICAgICAgICAgICBzdWIgZXNwLCAweDFjOwotICAgICAgICAg
ICAgbW92IGVjeCwgZHdvcmQgcHRyW2VzcCArIDB4MzRdOwotICAgICAgICAgICAgbW92IGVzaSwg
ZHdvcmQgcHRyW2VzcCArIDB4MzhdOwotICAgICAgICAgICAgbW92IGVicCwgZHdvcmQgcHRyW2Vz
cCArIDB4M2NdOwotICAgICAgICAgICAgc3ViIGVicCwgMHgyMDsKLSAgICAgICAgICAgIG1vdiBk
d29yZCBwdHJbZWJwICsgMHgyNF0sIDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCAr
IDB4MjBdLCAwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDFjXSwgMDsKLSAg
ICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgxOF0sIGVjeDsKLSAgICAgICAgICAgIG1v
diBlYngsIFtlY3hdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDE0XSwgMDsK
LSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgxMF0sIGVieDsKLSAgICAgICAgICAg
IG1vdiBkd29yZCBwdHJbZWJwICsgMHhjXSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJb
ZWJwICsgMHg4XSwgMTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHg0XSwgZWR4
OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnBdLCBlYXg7Ci0gICAgICAgICAgICBtb3Yg
ZWF4LCBlYnA7Ci0KLSAgICAgICAgICAgIG1vdiBlZHgsIGR3b3JkIHB0cltlc2kgKyAweDI4XTsK
LSAgICAgICAgICAgIGFkZCBlZHgsIDU7Ci0gICAgICAgICAgICBzYWwgZWR4LCAzOwotICAgICAg
ICAgICAgc3ViIGVicCwgZWR4OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnBdLCBlYXg7
Ci0KLSAgICAgICAgICAgIG1vdiBlYXgsIDU7Ci0KLSAgICAgICAgY29weUhlYWRlckxvb3A6Ci0g
ICAgICAgICAgICBzdWIgZWF4LCAxOwotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyW2Vz
aSArIGVheCAqIDhdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0ciA4W2VicCArIGVheCAqIDhd
LCBlY3g7Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHIgNFtlc2kgKyBlYXggKiA4XTsK
LSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMTJbZWJwICsgZWF4ICogOF0sIGVjeDsKLSAgICAg
ICAgICAgIHRlc3QgZWF4LCBlYXg7Ci0gICAgICAgICAgICBqbnogY29weUhlYWRlckxvb3A7Ci0K
LSAgICAgICAgICAgIG1vdiBlZHgsIGR3b3JkIHB0cltlc2kgKyAweDE4XTsKLSAgICAgICAgICAg
IHN1YiBlZHgsIDE7Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZXNpICsgMHgyOF07
Ci0gICAgICAgICAgICBzdWIgZWN4LCAxOwotCi0gICAgICAgICAgICBjbXAgZWR4LCBlY3g7Ci0g
ICAgICAgICAgICBqZSBjb3B5QXJnczsKLQotICAgICAgICAgICAgeG9yIGVheCwgZWF4OwotICAg
ICAgICAgICAgbW92IGVieCwgLTQ7Ci0KLSAgICAgICAgZmlsbEV4dHJhQXJnc0xvb3A6Ci0gICAg
ICAgICAgICBzdWIgZWN4LCAxOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0ciAweDMwW2VicCAr
IGVjeCAqIDhdLCBlYXg7ICAgICAgICAgICAgCi0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDB4
MzRbZWJwICsgZWN4ICogOF0sIGVieDsKLSAgICAgICAgICAgIGNtcCBlZHgsIGVjeDsKLSAgICAg
ICAgICAgIGpuZSBmaWxsRXh0cmFBcmdzTG9vcDsKLQotICAgICAgICBjb3B5QXJnczoKLSAgICAg
ICAgICAgIG1vdiBlYXgsIGR3b3JkIHB0cltlc2kgKyAweDJjXTsKLQotICAgICAgICBjb3B5QXJn
c0xvb3A6Ci0gICAgICAgICAgICB0ZXN0IGVkeCwgZWR4OwotICAgICAgICAgICAganogY29weUFy
Z3NEb25lOwotICAgICAgICAgICAgc3ViIGVkeCwgMTsKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3
b3JkIHB0ciAwW2VheCArIGVkeCAqIDhdOwotICAgICAgICAgICAgbW92IGVieCwgZHdvcmQgcHRy
IDRbZWF4ICsgZWR4ICogOF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDB4MzBbZWJwICsg
ZWR4ICogOF0sIGVjeDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMHgzNFtlYnAgKyBlZHgg
KiA4XSwgZWJ4OwotICAgICAgICAgICAgam1wIGNvcHlBcmdzTG9vcDsKLQotICAgICAgICBjb3B5
QXJnc0RvbmU6Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZXNwICsgMHgzNF07Ci0g
ICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VjeF0sIGVicDsKLQotICAgICAgICAgICAgY2FsbCBk
d29yZCBwdHJbZXNwICsgMHgzMF07Ci0KLSAgICAgICAgICAgIGNtcCBkd29yZCBwdHJbZWJwICsg
OF0sIDE7Ci0gICAgICAgICAgICBqZSBjYWxsZWVGcmFtZVBvcHBlZDsKLSAgICAgICAgICAgIG1v
diBlYnAsIGR3b3JkIHB0cltlYnBdOwotCi0gICAgICAgIGNhbGxlZUZyYW1lUG9wcGVkOgotICAg
ICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyW2VicCArIDB4MThdOwotICAgICAgICAgICAgbW92
IGVieCwgZHdvcmQgcHRyW2VicCArIDB4MTBdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltl
Y3hdLCBlYng7Ci0KLSAgICAgICAgICAgIGFkZCBlc3AsIDB4MWM7Ci0gICAgICAgICAgICBwb3Ag
ZWJ4OwotICAgICAgICAgICAgcG9wIGVkaTsKLSAgICAgICAgICAgIHBvcCBlc2k7Ci0gICAgICAg
ICAgICBwb3AgZWJwOwotICAgICAgICAgICAgcmV0OwotICAgICAgICB9Ci0gICAgfQotCi0gICAg
X19kZWNsc3BlYyhuYWtlZCkgdm9pZCByZXR1cm5Gcm9tSmF2YVNjcmlwdCgpCi0gICAgewotICAg
ICAgICBfX2FzbSB7Ci0gICAgICAgICAgICBhZGQgZXNwLCAweDFjOwotICAgICAgICAgICAgcG9w
IGVieDsKLSAgICAgICAgICAgIHBvcCBlZGk7Ci0gICAgICAgICAgICBwb3AgZXNpOwotICAgICAg
ICAgICAgcG9wIGVicDsKLSAgICAgICAgICAgIHJldDsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IF9fZGVjbHNwZWMobmFrZWQpIEVuY29kZWRKU1ZhbHVlIGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHZv
aWQqIGNvZGUsIEV4ZWNTdGF0ZSoqLCBQcm90b0NhbGxGcmFtZSosIFJlZ2lzdGVyKikKLSAgICB7
Ci0gICAgICAgIF9fYXNtIHsKLSAgICAgICAgICAgIG1vdiBlZHgsIFtlc3BdCi0gICAgICAgICAg
ICBwdXNoIGVicDsKLSAgICAgICAgICAgIG1vdiBlYXgsIGVicDsKLSAgICAgICAgICAgIG1vdiBl
YnAsIGVzcDsKLSAgICAgICAgICAgIHB1c2ggZXNpOwotICAgICAgICAgICAgcHVzaCBlZGk7Ci0g
ICAgICAgICAgICBwdXNoIGVieDsKLSAgICAgICAgICAgIHN1YiBlc3AsIDB4MWM7Ci0gICAgICAg
ICAgICBtb3YgZWN4LCBbZXNwICsgMHgzNF07Ci0gICAgICAgICAgICBtb3YgZXNpLCBbZXNwICsg
MHgzOF07Ci0gICAgICAgICAgICBtb3YgZWJwLCBbZXNwICsgMHgzY107Ci0gICAgICAgICAgICBz
dWIgZWJwLCAweDIwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDI0XSwgMDsK
LSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgyMF0sIDA7Ci0gICAgICAgICAgICBt
b3YgZHdvcmQgcHRyW2VicCArIDB4MWNdLCAwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltl
YnAgKyAweDE4XSwgZWN4OwotICAgICAgICAgICAgbW92IGVieCwgW2VjeF07Ci0gICAgICAgICAg
ICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MTRdLCAwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0
cltlYnAgKyAweDEwXSwgZWJ4OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweGNd
LCAwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDhdLCAxOwotICAgICAgICAg
ICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDRdLCBlZHg7Ci0gICAgICAgICAgICBtb3YgZHdvcmQg
cHRyW2VicF0sIGVheDsKLSAgICAgICAgICAgIG1vdiBlYXgsIGVicDsKLQotICAgICAgICAgICAg
bW92IGVkeCwgZHdvcmQgcHRyW2VzaSArIDB4MjhdOwotICAgICAgICAgICAgYWRkIGVkeCwgNTsK
LSAgICAgICAgICAgIHNhbCBlZHgsIDM7Ci0gICAgICAgICAgICBzdWIgZWJwLCBlZHg7Ci0gICAg
ICAgICAgICBtb3YgZHdvcmQgcHRyW2VicF0sIGVheDsKLQotICAgICAgICAgICAgbW92IGVheCwg
NTsKLQotICAgICAgICBjb3B5SGVhZGVyTG9vcDoKLSAgICAgICAgICAgIHN1YiBlYXgsIDE7Ci0g
ICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZXNpICsgZWF4ICogOF07Ci0gICAgICAgICAg
ICBtb3YgZHdvcmQgcHRyIDhbZWJwICsgZWF4ICogOF0sIGVjeDsKLSAgICAgICAgICAgIG1vdiBl
Y3gsIGR3b3JkIHB0ciA0W2VzaSArIGVheCAqIDhdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0
ciAxMltlYnAgKyBlYXggKiA4XSwgZWN4OwotICAgICAgICAgICAgdGVzdCBlYXgsIGVheDsKLSAg
ICAgICAgICAgIGpueiBjb3B5SGVhZGVyTG9vcDsKLQotICAgICAgICAgICAgbW92IGVkeCwgZHdv
cmQgcHRyW2VzaSArIDB4MThdOwotICAgICAgICAgICAgc3ViIGVkeCwgMTsKLSAgICAgICAgICAg
IG1vdiBlY3gsIGR3b3JkIHB0cltlc2kgKyAweDI4XTsKLSAgICAgICAgICAgIHN1YiBlY3gsIDE7
Ci0KLSAgICAgICAgICAgIGNtcCBlZHgsIGVjeDsKLSAgICAgICAgICAgIGplIGNvcHlBcmdzOwot
Ci0gICAgICAgICAgICB4b3IgZWF4LCBlYXg7Ci0gICAgICAgICAgICBtb3YgZWJ4LCAtNDsKLQot
ICAgICAgICBmaWxsRXh0cmFBcmdzTG9vcDoKLSAgICAgICAgICAgIHN1YiBlY3gsIDE7Ci0gICAg
ICAgICAgICBtb3YgZHdvcmQgcHRyIDB4MzBbZWJwICsgZWN4ICogOF0sIGVheDsgICAgICAgICAg
ICAKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMHgzNFtlYnAgKyBlY3ggKiA4XSwgZWJ4Owot
ICAgICAgICAgICAgY21wIGVkeCwgZWN4OwotICAgICAgICAgICAgam5lIGZpbGxFeHRyYUFyZ3NM
b29wOwotCi0gICAgICAgIGNvcHlBcmdzOgotICAgICAgICAgICAgbW92IGVheCwgZHdvcmQgcHRy
W2VzaSArIDB4MmNdOwotCi0gICAgICAgIGNvcHlBcmdzTG9vcDoKLSAgICAgICAgICAgIHRlc3Qg
ZWR4LCBlZHg7Ci0gICAgICAgICAgICBqeiBjb3B5QXJnc0RvbmU7Ci0gICAgICAgICAgICBzdWIg
ZWR4LCAxOwotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyIDBbZWF4ICsgZWR4ICogOF07
Ci0gICAgICAgICAgICBtb3YgZWJ4LCBkd29yZCBwdHIgNFtlYXggKyBlZHggKiA4XTsKLSAgICAg
ICAgICAgIG1vdiBkd29yZCBwdHIgMHgzMFtlYnAgKyBlZHggKiA4XSwgZWN4OwotICAgICAgICAg
ICAgbW92IGR3b3JkIHB0ciAweDM0W2VicCArIGVkeCAqIDhdLCBlYng7Ci0gICAgICAgICAgICBq
bXAgY29weUFyZ3NMb29wOwotCi0gICAgICAgIGNvcHlBcmdzRG9uZToKLSAgICAgICAgICAgIG1v
diBlY3gsIGR3b3JkIHB0cltlc3AgKyAweDM0XTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJb
ZWN4XSwgZWJwOwotCi0gICAgICAgICAgICBtb3YgZWRpLCBkd29yZCBwdHJbZXNwICsgMHgzMF07
Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VzcCArIDB4MzBdLCBlYnA7Ci0gICAgICAgICAg
ICBtb3YgZWN4LCBlYnA7Ci0gICAgICAgICAgICBjYWxsIGVkaTsKLQotICAgICAgICAgICAgY21w
IGR3b3JkIHB0cltlYnAgKyA4XSwgMTsKLSAgICAgICAgICAgIGplIGNhbGxlZUZyYW1lUG9wcGVk
OwotICAgICAgICAgICAgbW92IGVicCwgZHdvcmQgcHRyW2VicF07Ci0KLSAgICAgICAgY2FsbGVl
RnJhbWVQb3BwZWQ6Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZWJwICsgMHgxOF07
Ci0gICAgICAgICAgICBtb3YgZWJ4LCBkd29yZCBwdHJbZWJwICsgMHgxMF07Ci0gICAgICAgICAg
ICBtb3YgZHdvcmQgcHRyW2VjeF0sIGVieDsKLQotICAgICAgICAgICAgYWRkIGVzcCwgMHgxYzsK
LSAgICAgICAgICAgIHBvcCBlYng7Ci0gICAgICAgICAgICBwb3AgZWRpOwotICAgICAgICAgICAg
cG9wIGVzaTsKLSAgICAgICAgICAgIHBvcCBlYnA7Ci0gICAgICAgICAgICByZXQ7Ci0gICAgICAg
IH0KLSAgICB9Ci19Ci0KLSNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKQotCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKIAogI2VuZGlmIC8vIEpJVFN0dWJzWDg2X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUVGh1bmtzLmNwcAppbmRleCA0YzQ4MTYzZTlmZDAzNzAyYmE2ZTllOWJhN2FlYjVkZmU4MWZh
OTlkLi41MGM3ZjY0YjYyMGU2YmMyM2I2YTQzYTVjNzBlNGFhMTRkNjU5NWE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwCkBAIC01Miw2ICs1Miw3IEBAIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBKSVRUaHVua3M6OmN0aU5hdGl2ZUNhbGwoVk0qIHZtKQogI2VuZGlmCiAg
ICAgcmV0dXJuIGN0aVN0dWIodm0sIG5hdGl2ZUNhbGxHZW5lcmF0b3IpLmNvZGUoKTsKIH0KKwog
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3RpTmF0aXZlQ29uc3RydWN0KFZNKiB2
bSkKIHsKICNpZiBFTkFCTEUoTExJTlQpCkBAIC02MSw2ICs2MiwxMiBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIgSklUVGh1bmtzOjpjdGlOYXRpdmVDb25zdHJ1Y3QoVk0qIHZtKQogICAgIHJldHVy
biBjdGlTdHViKHZtLCBuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0b3IpLmNvZGUoKTsKIH0KIAorTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3RpTmF0aXZlVGFpbENhbGwoVk0qIHZtKQor
eworICAgIEFTU0VSVCh2bS0+Y2FuVXNlSklUKCkpOworICAgIHJldHVybiBjdGlTdHViKHZtLCBu
YXRpdmVUYWlsQ2FsbEdlbmVyYXRvcikuY29kZSgpOworfQorCiBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgSklUVGh1bmtzOjpjdGlTdHViKFZNKiB2bSwgVGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9yKQog
ewogICAgIExvY2tlciBsb2NrZXIobV9sb2NrKTsKQEAgLTgwLDcgKzg3LDEyIEBAIE5hdGl2ZUV4
ZWN1dGFibGUqIEpJVFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1YihWTSogdm0sIE5hdGl2ZUZ1bmN0
aW9uIGZ1bmN0aW9uLCBOCiAgICAgaWYgKE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFi
bGUgPSBtX2hvc3RGdW5jdGlvblN0dWJNYXAtPmdldChzdGQ6Om1ha2VfcGFpcihmdW5jdGlvbiwg
Y29uc3RydWN0b3IpKSkKICAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CiAKLSAgICBO
YXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3Jl
YXRlKCp2bSwgSklUOjpjb21waWxlQ1RJTmF0aXZlQ2FsbCh2bSwgZnVuY3Rpb24pLCBmdW5jdGlv
biwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYoY3RpTmF0
aXZlQ29uc3RydWN0KHZtKSksIGNvbnN0cnVjdG9yLCBOb0ludHJpbnNpYyk7CisgICAgTmF0aXZl
RXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IE5hdGl2ZUV4ZWN1dGFibGU6OmNyZWF0ZSgK
KyAgICAgICAgKnZtLAorICAgICAgICBhZG9wdFJlZihuZXcgTmF0aXZlSklUQ29kZShKSVQ6OmNv
bXBpbGVDVElOYXRpdmVDYWxsKHZtLCBmdW5jdGlvbiksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmsp
KSwKKyAgICAgICAgZnVuY3Rpb24sCisgICAgICAgIGFkb3B0UmVmKG5ldyBOYXRpdmVKSVRDb2Rl
KE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRDb2RlUmVmKGN0aU5hdGl2
ZUNvbnN0cnVjdCh2bSkpLCBKSVRDb2RlOjpIb3N0Q2FsbFRodW5rKSksCisgICAgICAgIGNvbnN0
cnVjdG9yLCBOb0ludHJpbnNpYyk7CiAgICAgd2Vha0FkZCgqbV9ob3N0RnVuY3Rpb25TdHViTWFw
LCBzdGQ6Om1ha2VfcGFpcihmdW5jdGlvbiwgY29uc3RydWN0b3IpLCBXZWFrPE5hdGl2ZUV4ZWN1
dGFibGU+KG5hdGl2ZUV4ZWN1dGFibGUpKTsKICAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsK
IH0KQEAgLTkyLDE2ICsxMDQsMTggQEAgTmF0aXZlRXhlY3V0YWJsZSogSklUVGh1bmtzOjpob3N0
RnVuY3Rpb25TdHViKFZNKiB2bSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIFQKICAgICBpZiAo
TmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1Yk1h
cC0+Z2V0KHN0ZDo6bWFrZV9wYWlyKGZ1bmN0aW9uLCAmY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3Ry
dWN0b3IpKSkKICAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CiAKLSAgICBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgY29kZTsKKyAgICBSZWZQdHI8SklUQ29kZT4gZm9yQ2FsbDsKICAgICBp
ZiAoZ2VuZXJhdG9yKSB7Ci0gICAgICAgIGlmICh2bS0+Y2FuVXNlSklUKCkpCi0gICAgICAgICAg
ICBjb2RlID0gZ2VuZXJhdG9yKHZtKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29kZSA9
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZigpOworICAgICAgICBpZiAodm0tPmNhblVzZUpJVCgpKSB7
CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZW50cnkgPSBnZW5lcmF0b3Iodm0p
OworICAgICAgICAgICAgZm9yQ2FsbCA9IGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKGVudHJ5
LCBlbnRyeS5jb2RlKCksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmspKTsKKyAgICAgICAgfQogICAg
IH0gZWxzZQotICAgICAgICBjb2RlID0gSklUOjpjb21waWxlQ1RJTmF0aXZlQ2FsbCh2bSwgZnVu
Y3Rpb24pOwotCi0gICAgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IE5hdGl2
ZUV4ZWN1dGFibGU6OmNyZWF0ZSgqdm0sIGNvZGUsIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3Qodm0pKSwg
Y2FsbEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0b3IsIGludHJpbnNpYyk7CisgICAgICAgIGZvckNh
bGwgPSBhZG9wdFJlZihuZXcgTmF0aXZlSklUQ29kZShKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxs
KHZtLCBmdW5jdGlvbiksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmspKTsKKyAgICAKKyAgICBSZWZQ
dHI8SklUQ29kZT4gZm9yQ29uc3RydWN0ID0gYWRvcHRSZWYobmV3IE5hdGl2ZUpJVENvZGUoTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYoY3RpTmF0aXZlQ29u
c3RydWN0KHZtKSksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmspKTsKKyAgICAKKyAgICBOYXRpdmVF
eGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKCp2
bSwgZm9yQ2FsbCwgZnVuY3Rpb24sIGZvckNvbnN0cnVjdCwgY2FsbEhvc3RGdW5jdGlvbkFzQ29u
c3RydWN0b3IsIGludHJpbnNpYyk7CiAgICAgd2Vha0FkZCgqbV9ob3N0RnVuY3Rpb25TdHViTWFw
LCBzdGQ6Om1ha2VfcGFpcihmdW5jdGlvbiwgJmNhbGxIb3N0RnVuY3Rpb25Bc0NvbnN0cnVjdG9y
KSwgV2VhazxOYXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7CiAgICAgcmV0dXJu
IG5hdGl2ZUV4ZWN1dGFibGU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFRodW5rcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaApp
bmRleCA5N2U3ZWNkNmJiNzRhOTA3MGQwNDlkMzI3MTQ4YzA5MzdkMzRiNTZmLi4yZGFhNTBhYTdh
NTdlMDIyODMzZTI5Mzg2YjgwNmExMzNkOTVlNjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFRodW5rcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUVGh1bmtzLmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogCiAgICAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyIGN0aU5hdGl2ZUNhbGwoVk0qKTsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Y3RpTmF0aXZlQ29uc3RydWN0KFZNKik7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5h
dGl2ZVRhaWxDYWxsKFZNKik7ICAgIAogCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGN0aVN0
dWIoVk0qLCBUaHVua0dlbmVyYXRvcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9y
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40OTcwNGNiY2I4YTJiYmZlOWI3MGU1ZmFhZjMwODQ1ZDg5NmE0YmE5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclBy
ZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwCkBAIC0wLDAgKzEsMjIzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaCIKKwor
I2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJBc3NlbWJseUhlbHBlcnMuaCIKKyNpbmNsdWRl
ICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKKworbmFtZXNwYWNl
IEpTQyB7CisKK1JlZ2lzdGVyU2V0IHJlZ2lzdGVyc1RvUHJlc2VydmUoKQoreworICAgIFJlZ2lz
dGVyU2V0IGNhbGxlZVNhdmVzID0gUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKTsK
KyAgICAKKyAgICAvLyBObyBuZWVkIHRvIHByZXNlcnZlIEZQIHNpbmNlIHRoYXQgYWx3YXlzIGdl
dHMgcHJlc2VydmVkIGFueXdheS4KKyAgICBjYWxsZWVTYXZlcy5jbGVhcihHUFJJbmZvOjpjYWxs
RnJhbWVSZWdpc3Rlcik7CisgICAgCisgICAgcmV0dXJuIGNhbGxlZVNhdmVzOworfQorCitwdHJk
aWZmX3QgcmVnaXN0ZXJQcmVzZXJ2YXRpb25PZmZzZXQoKQoreworICAgIHVuc2lnbmVkIG51bWJl
ck9mQ2FsbGVlU2F2ZXMgPSByZWdpc3RlcnNUb1ByZXNlcnZlKCkubnVtYmVyT2ZTZXRSZWdpc3Rl
cnMoKTsKKyAgICAKKyAgICAvLyBOZWVkIHRvIHByZXNlcnZlIHRoZSBvbGQgcmV0dXJuIFBDLgor
ICAgIHVuc2lnbmVkIG51bWJlck9mVmFsdWVzVG9TYXZlID0gbnVtYmVyT2ZDYWxsZWVTYXZlcyAr
IDE7CisgICAgCisgICAgLy8gQWxpZ25tZW50LiBQcmVzZXJ2ZSB0aGUgc2FtZSBhbGlnbm1lbnQg
aW52YXJpYW50cyB0aGF0IHRoZSBjYWxsZXIgaW1wb3NlZC4KKyAgICB1bnNpZ25lZCBudW1iZXJP
Zk5ld1N0YWNrU2xvdHMgPQorICAgICAgICBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tB
bGlnbm1lbnRSZWdpc3RlcnMoKSwgbnVtYmVyT2ZWYWx1ZXNUb1NhdmUpOworICAgIAorICAgIHJl
dHVybiBzaXplb2YoUmVnaXN0ZXIpICogbnVtYmVyT2ZOZXdTdGFja1Nsb3RzOworfQorCitNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgZ2VuZXJhdGVSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXIoVk0m
IHZtLCBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHRh
cmdldCkKK3sKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKyAgICAvLyBXZSBzaG91bGRuJ3QgZXZlciBi
ZSBnZW5lcmF0aW5nIHdyYXBwZXJzIGZvciBuYXRpdmUgZnVuY3Rpb25zLgorICAgIFJlZ2lzdGVy
U2V0IHRvU2F2ZSA9IHJlZ2lzdGVyc1RvUHJlc2VydmUoKTsKKyAgICBwdHJkaWZmX3Qgb2Zmc2V0
ID0gcmVnaXN0ZXJQcmVzZXJ2YXRpb25PZmZzZXQoKTsKKyAgICAKKyAgICBBc3NlbWJseUhlbHBl
cnMgaml0KCZ2bSwgMCk7CisgICAgCisgICAgaml0LnByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVy
Q2FsbChHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0LmxvYWQzMigKKyAgICAgICAgQXNzZW1ibHlI
ZWxwZXJzOjpBZGRyZXNzKAorICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50
ZXJSZWdpc3RlciwKKyAgICAgICAgICAgIChKU1N0YWNrOjpBcmd1bWVudENvdW50IC0gSlNTdGFj
azo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFBheWxvYWRPZmZz
ZXQpLAorICAgICAgICBHUFJJbmZvOjpyZWdUMik7CisgICAgCisgICAgLy8gUGxhY2UgdGhlIHN0
YWNrIHBvaW50ZXIgd2hlcmUgd2Ugd2FudCBpdCB0byBiZS4KKyAgICBqaXQuc3ViUHRyKEFzc2Vt
Ymx5SGVscGVyczo6VHJ1c3RlZEltbTMyKG9mZnNldCksIEFzc2VtYmx5SGVscGVyczo6c3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOworICAgIAorICAgIC8vIENvbXB1dGUgdGhlIG51bWJlciBvZiB0aGlu
Z3Mgd2Ugd2lsbCBiZSBjb3B5aW5nLgorICAgIGppdC5hZGQzMigKKyAgICAgICAgQXNzZW1ibHlI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoCisgICAgICAgICAgICBKU1N0YWNrOjpDYWxsRnJhbWVIZWFk
ZXJTaXplIC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpLAorICAgICAgICBHUFJJbmZv
OjpyZWdUMik7CisKKyAgICBBU1NFUlQoIXRvU2F2ZS5nZXQoR1BSSW5mbzo6cmVnVDQpKTsKKyAg
ICBqaXQubW92ZShBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBHUFJJbmZv
OjpyZWdUNCk7CisgICAgCisgICAgQXNzZW1ibHlIZWxwZXJzOjpMYWJlbCBsb29wID0gaml0Lmxh
YmVsKCk7CisgICAgaml0LnN1YjMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKDEpLCBH
UFJJbmZvOjpyZWdUMik7CisgICAgaml0LmxvYWQ2NChBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3Mo
R1BSSW5mbzo6cmVnVDQsIG9mZnNldCksIEdQUkluZm86OnJlZ1QwKTsKKyAgICBqaXQuc3RvcmU2
NChHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDQpOworICAgIGppdC5hZGRQdHIoQXNzZW1i
bHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoc2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OnJlZ1Q0
KTsKKyAgICBqaXQuYnJhbmNoVGVzdDMyKEFzc2VtYmx5SGVscGVyczo6Tm9uWmVybywgR1BSSW5m
bzo6cmVnVDIpLmxpbmtUbyhsb29wLCAmaml0KTsKKworICAgIC8vIEF0IHRoaXMgcG9pbnQgcmVn
VDQgKyBvZmZzZXQgcG9pbnRzIHRvIHdoZXJlIHdlIHNhdmUgdGhpbmdzLgorICAgIHB0cmRpZmZf
dCBjdXJyZW50T2Zmc2V0ID0gMDsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDEsIEFz
c2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUNCwgY3VycmVudE9mZnNldCkpOwor
ICAgIAorICAgIGZvciAoR1BSUmVnIGdwciA9IEFzc2VtYmx5SGVscGVyczo6Zmlyc3RSZWdpc3Rl
cigpOyBncHIgPD0gQXNzZW1ibHlIZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsgZ3ByID0gc3RhdGlj
X2Nhc3Q8R1BSUmVnPihncHIgKyAxKSkgeworICAgICAgICBpZiAoIXRvU2F2ZS5nZXQoZ3ByKSkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjdXJyZW50T2Zmc2V0ICs9IHNpemVvZihS
ZWdpc3Rlcik7CisgICAgICAgIGppdC5zdG9yZTY0KGdwciwgQXNzZW1ibHlIZWxwZXJzOjpBZGRy
ZXNzKEdQUkluZm86OnJlZ1Q0LCBjdXJyZW50T2Zmc2V0KSk7CisgICAgfQorICAgIAorICAgIC8v
IEFzc3VtZSB0aGF0IHRoZXJlIGFyZW4ndCBhbnkgc2F2ZWQgRlAgcmVnaXN0ZXJzLgorICAgIAor
ICAgIC8vIFJlc3RvcmUgdGhlIHRhZyByZWdpc3RlcnMuCisgICAgaml0Lm1vdmUoQXNzZW1ibHlI
ZWxwZXJzOjpUcnVzdGVkSW1tNjQoVGFnVHlwZU51bWJlciksIEdQUkluZm86OnRhZ1R5cGVOdW1i
ZXJSZWdpc3Rlcik7CisgICAgaml0LmFkZDY0KEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMy
KFRhZ01hc2sgLSBUYWdUeXBlTnVtYmVyKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVy
LCBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpOworICAgIAorICAgIGppdC5tb3ZlKAorICAgICAg
ICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoCisgICAgICAgICAgICB2bS5nZXRDVElT
dHViKHJlZ2lzdGVyUmVzdG9yYXRpb25UaHVua0dlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVB
ZGRyZXNzKCkpLAorICAgICAgICBHUFJJbmZvOjpub25BcmdHUFIwKTsKKyAgICBqaXQucmVzdG9y
ZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6bm9uQXJnR1BSMCk7CisgICAgQXNz
ZW1ibHlIZWxwZXJzOjpKdW1wIGp1bXAgPSBqaXQuanVtcCgpOworICAgIAorICAgIExpbmtCdWZm
ZXIgbGlua0J1ZmZlcih2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKKyAgICBsaW5rQnVmZmVy
LmxpbmsoanVtcCwgQ29kZUxvY2F0aW9uTGFiZWwodGFyZ2V0KSk7CisKKyAgICBpZiAoT3B0aW9u
czo6dmVyYm9zZUZUTFRvSlNUaHVuaygpKQorICAgICAgICBkYXRhTG9nKCJOZWVkIGEgdGh1bmsg
Zm9yIGNhbGxzIGZyb20gRlRMIHRvIG5vbi1GVEwgdmVyc2lvbiBvZiAiLCAqZXhlY3V0YWJsZSwg
IlxuIik7CisgICAgCisgICAgcmV0dXJuIEZJTkFMSVpFX0RGR19DT0RFKGxpbmtCdWZmZXIsICgi
UmVnaXN0ZXIgcHJlc2VydmF0aW9uIHdyYXBwZXIgZm9yICVzLyVzLCAlcCIsIHRvQ1N0cmluZyhl
eGVjdXRhYmxlLT5oYXNoRm9yKENvZGVGb3JDYWxsKSkuZGF0YSgpLCB0b0NTdHJpbmcoZXhlY3V0
YWJsZS0+aGFzaEZvcihDb2RlRm9yQ29uc3RydWN0KSkuZGF0YSgpLCB0YXJnZXQuZXhlY3V0YWJs
ZUFkZHJlc3MoKSkpOworI2Vsc2UgLy8gRU5BQkxFKEZUTF9KSVQpCisgICAgVU5VU0VEX1BBUkFN
KHZtKTsKKyAgICBVTlVTRURfUEFSQU0oZXhlY3V0YWJsZSk7CisgICAgVU5VU0VEX1BBUkFNKHRh
cmdldCk7CisgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBub24tRlRMIGJ1aWxkcyBmb3IgdHdvIHJl
YXNvbnM6CisgICAgLy8gLSBJdCBqdXN0IHNvIGhhcHBlbnMgdGhhdCBjdXJyZW50bHkgb25seSB0
aGUgRlRMIGJvdHRvbXMgb3V0IGluIHRoaXMgY29kZS4KKyAgICAvLyAtIFRoZSBjb2RlIGFib3Zl
IHVzZXMgNjQtYml0IGluc3RydWN0aW9ucy4gSXQgZG9lc24ndCBuZWNlc3NhcmlseSBoYXZlIHRv
OyBpdCB3b3VsZCBiZQorICAgIC8vICAgZWFzeSB0byBjaGFuZ2UgaXQgc28gdGhhdCBpdCBkb2Vz
bid0LiBCdXQgb2J2aW91c2x5IG1ha2luZyB0aGF0IGNoYW5nZSB3b3VsZCBiZSBhCisgICAgLy8g
ICBwcmVyZXF1aXNpdGUgdG8gcmVtb3ZpbmcgdGhpcyAjaWYuCisgICAgVU5SRUFDSEFCTEVfRk9S
X1BMQVRGT1JNKCk7CisgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVJlZigpOworI2VuZGlm
IC8vIEVOQUJMRShGVExfSklUKQorfQorCitzdGF0aWMgdm9pZCBnZW5lcmF0ZVJlZ2lzdGVyUmVz
dG9yYXRpb24oQXNzZW1ibHlIZWxwZXJzJiBqaXQpCit7CisjaWYgRU5BQkxFKEZUTF9KSVQpCisg
ICAgUmVnaXN0ZXJTZXQgdG9TYXZlID0gcmVnaXN0ZXJzVG9QcmVzZXJ2ZSgpOworICAgIHB0cmRp
ZmZfdCBvZmZzZXQgPSByZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCgpOworICAgIAorICAgIEFT
U0VSVCghdG9TYXZlLmdldChHUFJJbmZvOjpyZWdUNCkpOworCisgICAgLy8gV2UgbmVlZCB0byBw
bGFjZSB0aGUgc3RhY2sgcG9pbnRlciBiYWNrIHRvIHdoZXJlIHRoZSBjYWxsZXIgdGhvdWdodCB0
aGV5IGxlZnQgaXQuCisgICAgLy8gQnV0IGFsc28sIGluIG9yZGVyIHRvIHJlY292ZXIgdGhlIHJl
Z2lzdGVycywgd2UgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyBiaWcgdGhlCisgICAgLy8gYXJndW1l
bnRzIGFyZWEgaXMuCisgICAgCisgICAgaml0LmxvYWQzMigKKyAgICAgICAgQXNzZW1ibHlIZWxw
ZXJzOjpBZGRyZXNzKAorICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJS
ZWdpc3RlciwKKyAgICAgICAgICAgIChKU1N0YWNrOjpBcmd1bWVudENvdW50IC0gSlNTdGFjazo6
Q2FsbGVyRnJhbWVBbmRQQ1NpemUpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFBheWxvYWRPZmZzZXQp
LAorICAgICAgICBHUFJJbmZvOjpyZWdUNCk7CisgICAgCisgICAgaml0Lm1vdmUoR1BSSW5mbzo6
cmVnVDQsIEdQUkluZm86OnJlZ1QyKTsKKyAgICBqaXQubHNoaWZ0MzIoQXNzZW1ibHlIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoMyksIEdQUkluZm86OnJlZ1QyKTsKKyAgICAKKyAgICBqaXQuYWRkUHRy
KEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKG9mZnNldCksIEFzc2VtYmx5SGVscGVyczo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGppdC5hZGRQdHIoQXNzZW1ibHlIZWxwZXJzOjpz
dGFja1BvaW50ZXJSZWdpc3RlciwgR1BSSW5mbzo6cmVnVDIpOworICAgIAorICAgIC8vIFdlIHNh
dmVkIHRoaW5ncyBhdDoKKyAgICAvLworICAgIC8vICAgICBhZGpTUCArIChKU1N0YWNrOjpDYWxs
RnJhbWVIZWFkZXJTaXplIC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUgKyBOdW1Bcmdz
KSAqIDgKKyAgICAvLworICAgIC8vIFdoZXJlOgorICAgIC8vCisgICAgLy8gICAgIGFkalNQID0g
b3JpZ1NQIC0gb2Zmc2V0CisgICAgLy8KKyAgICAvLyByZWdUMiBub3cgcG9pbnRzIGF0OgorICAg
IC8vCisgICAgLy8gICAgIG9yaWdTUCArIE51bUFyZ3MgKiA4CisgICAgLy8gICA9IGFkalNQICsg
b2Zmc2V0ICsgTnVtQXJncyAqIDgKKyAgICAvLyAKKyAgICAvLyBTbyBpZiB3ZSBzdWJ0cmFjdCBv
ZmZzZXQgYW5kIHRoZW4gYWRkIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgYW5kIHN1YnRy
YWN0CisgICAgLy8gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUsIHdlJ2xsIGdldCB0aGUg
dGhpbmcgd2Ugd2FudC4KKyAgICBwdHJkaWZmX3QgY3VycmVudE9mZnNldCA9IC1vZmZzZXQgKyBz
aXplb2YoUmVnaXN0ZXIpICogKAorICAgICAgICBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXpl
IC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpOworICAgIGppdC5sb2FkUHRyKEFzc2Vt
Ymx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMiwgY3VycmVudE9mZnNldCksIEdQUklu
Zm86OnJlZ1QxKTsKKyAgICAKKyAgICBmb3IgKEdQUlJlZyBncHIgPSBBc3NlbWJseUhlbHBlcnM6
OmZpcnN0UmVnaXN0ZXIoKTsgZ3ByIDw9IEFzc2VtYmx5SGVscGVyczo6bGFzdFJlZ2lzdGVyKCk7
IGdwciA9IHN0YXRpY19jYXN0PEdQUlJlZz4oZ3ByICsgMSkpIHsKKyAgICAgICAgaWYgKCF0b1Nh
dmUuZ2V0KGdwcikpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY3VycmVudE9mZnNl
dCArPSBzaXplb2YoUmVnaXN0ZXIpOworICAgICAgICBqaXQubG9hZDY0KEFzc2VtYmx5SGVscGVy
czo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMiwgY3VycmVudE9mZnNldCksIGdwcik7CisgICAgfQor
ICAgIAorICAgIC8vIFRodW5rcyBsaWtlIHRoaXMgcmVseSBvbiB0aGUgQXJndW1lbnRDb3VudCBi
ZWluZyBpbnRhY3QuIFBheSBpdCBmb3J3YXJkLgorICAgIGppdC5zdG9yZTMyKAorICAgICAgICBH
UFJJbmZvOjpyZWdUNCwKKyAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKAorICAgICAg
ICAgICAgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwKKyAgICAgICAgICAg
IChKU1N0YWNrOjpBcmd1bWVudENvdW50IC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUp
ICogc2l6ZW9mKFJlZ2lzdGVyKSArIFBheWxvYWRPZmZzZXQpKTsKKyAgICAKKyAgICBpZiAoIUFT
U0VSVF9ESVNBQkxFRCkgeworICAgICAgICBBc3NlbWJseUhlbHBlcnM6Okp1bXAgb2sgPSBqaXQu
YnJhbmNoUHRyKAorICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpBYm92ZSwgR1BSSW5mbzo6
cmVnVDEsIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0cihzdGF0aWNfY2FzdDxzaXplX3Q+
KDB4MTAwMCkpKTsKKyAgICAgICAgaml0LmJyZWFrcG9pbnQoKTsKKyAgICAgICAgb2subGluaygm
aml0KTsKKyAgICB9CisgICAgCisgICAgaml0Lmp1bXAoR1BSSW5mbzo6cmVnVDEpOworI2Vsc2Ug
Ly8gRU5BQkxFKEZUTF9KSVQpCisgICAgVU5VU0VEX1BBUkFNKGppdCk7CisgICAgVU5SRUFDSEFC
TEVfRk9SX1BMQVRGT1JNKCk7CisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCit9CisKK01hY3Jv
QXNzZW1ibGVyQ29kZVJlZiByZWdpc3RlclJlc3RvcmF0aW9uVGh1bmtHZW5lcmF0b3IoVk0qIHZt
KQoreworICAgIEFzc2VtYmx5SGVscGVycyBqaXQodm0sIDApOworICAgIGdlbmVyYXRlUmVnaXN0
ZXJSZXN0b3JhdGlvbihqaXQpOworICAgIExpbmtCdWZmZXIgbGlua0J1ZmZlcigqdm0sICZqaXQs
IEdMT0JBTF9USFVOS19JRCk7CisgICAgcmV0dXJuIEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwg
KCJSZWdpc3RlciByZXN0b3JhdGlvbiB0aHVuayIpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlND
CisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3Iu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44ZWUxZmM2YWY3MWU3MjE4NDIxZjFlNzI1MDUyOGI1NWRiOGU1NzIwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclByZXNl
cnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVnaXN0ZXJQcmVzZXJ2
YXRpb25XcmFwcGVyR2VuZXJhdG9yX2gKKyNkZWZpbmUgUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFw
cGVyR2VuZXJhdG9yX2gKKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJBcml0eUNoZWNr
TW9kZS5oIgorI2luY2x1ZGUgIkFzc2VtYmx5SGVscGVycy5oIgorI2luY2x1ZGUgIk1hY3JvQXNz
ZW1ibGVyQ29kZVJlZi5oIgorI2luY2x1ZGUgIlZNLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitS
ZWdpc3RlclNldCByZWdpc3RlcnNUb1ByZXNlcnZlKCk7CisKK3B0cmRpZmZfdCByZWdpc3RlclBy
ZXNlcnZhdGlvbk9mZnNldCgpOworCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZ2VuZXJhdGVSZWdp
c3RlclByZXNlcnZhdGlvbldyYXBwZXIoVk0mLCBFeGVjdXRhYmxlQmFzZSosIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciB0YXJnZXQpOworCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcmVnaXN0ZXJSZXN0
b3JhdGlvblRodW5rR2VuZXJhdG9yKFZNKik7CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5k
aWYgLy8gRU5BQkxFKEpJVCkKKworI2VuZGlmIC8vIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBl
ckdlbmVyYXRvcl9oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVw
YXRjaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCmluZGV4IDVj
OWFhOTY1ODY2MmE1MDZkNjk4YmRkNjJkNGQ4NDBlMjBmNWJiOTcuLjkyYjhjNDdkZGRjZTQ0YzYy
NDBkN2M2ZGQ3NWRmZGU4MjYwY2M2OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVwYXRjaC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNo
LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
LCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTEsMTEgKzUxLDYgQEAgbmFtZXNwYWNlIEpT
QyB7CiAvLyB0aGF0IHdvdWxkIG9yZGluYXJpbHkgaGF2ZSB3ZWxsLWtub3duIHZhbHVlczoKIC8v
IC0gdGFnVHlwZU51bWJlclJlZ2lzdGVyCiAvLyAtIHRhZ01hc2tSZWdpc3RlcgotLy8gLSBjYWxs
RnJhbWVSZWdpc3RlciAqKgotLy8KLS8vIFdlIGN1cnJlbnRseSBvbmx5IHVzZSB0aGUgY2FsbEZy
YW1lUmVnaXN0ZXIgZm9yIGNsb3N1cmUgY2FsbCBwYXRjaGluZywgYW5kIHdlJ3JlIG5vdCBnb2lu
ZyB0bwotLy8gZ2l2ZSB0aGUgRlRMIGNsb3N1cmUgY2FsbCBwYXRjaGluZyBzdXBwb3J0IHVudGls
IHdlIHN3aXRjaCB0byB0aGUgQyBzdGFjayAtIGJ1dCB3aGVuIHdlIGRvIHRoYXQsCi0vLyBjYWxs
RnJhbWVSZWdpc3RlciB3aWxsIGRpc2FwcGVhci4KIAogc3RhdGljIEZ1bmN0aW9uUHRyIHJlYWRD
YWxsVGFyZ2V0KFJlcGF0Y2hCdWZmZXImIHJlcGF0Y2hCdWZmZXIsIENvZGVMb2NhdGlvbkNhbGwg
Y2FsbCkKIHsKQEAgLTI5OCwyMyArMjkzLDIzIEBAIHN0YXRpYyBQcm90b0NoYWluR2VuZXJhdGlv
blJlc3VsdCBnZW5lcmF0ZVByb3RvQ2hhaW5BY2Nlc3NTdHViKEV4ZWNTdGF0ZSogZXhlYywKICNl
bmRpZgogICAgICAgICB9CiAgICAgfQorCiAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgb3BlcmF0
aW9uQ2FsbDsKICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBoYW5kbGVyQ2FsbDsKICAgICBGdW5j
dGlvblB0ciBvcGVyYXRpb25GdW5jdGlvbjsKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzdWNj
ZXNzLCBmYWlsOwogICAgIGlmIChpc0FjY2Vzc29yKSB7Ci0gICAgICAgIEdQUlJlZyBjYWxsRnJh
bWVSZWdpc3RlciA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2guY2FsbEZyYW1l
UmVnaXN0ZXIpOwogICAgICAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZUdldHRlcigpKSB7Ci0gICAg
ICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVyLCBzY3JhdGNo
R1BSLCByZXN1bHRHUFIpOworICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoc2NyYXRjaEdQUiwgcmVzdWx0R1BSKTsKICAgICAgICAgICAgIG9wZXJhdGlvbkZ1
bmN0aW9uID0gb3BlcmF0aW9uQ2FsbEdldHRlcjsKICAgICAgICAgfSBlbHNlIHsKICNpZiBVU0Uo
SlNWQUxVRTY0KQogICAgICAgICAgICAgLy8gRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMp
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0gICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRz
KGNhbGxGcmFtZVJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihwcm90b09i
amVjdCksIHNjcmF0Y2hHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHByb3BlcnR5
TmFtZS5pbXBsKCkpKTsKKyAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHByb3RvT2JqZWN0KSwgc2NyYXRj
aEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocHJvcGVydHlOYW1lLmltcGwoKSkp
OwogICAgICAgICAgICAgb3BlcmF0aW9uRnVuY3Rpb24gPSBGdW5jdGlvblB0cihzbG90LmN1c3Rv
bUdldHRlcigpKTsKICNlbHNlCiAgICAgICAgICAgICBzdHViSml0Lm1vdmUoTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW1QdHIocHJvdG9PYmplY3QpLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAg
IHN0dWJKaXQuc2V0dXBBcmd1bWVudHMoY2FsbEZyYW1lUmVnaXN0ZXIsIHNjcmF0Y2hHUFIsCisg
ICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShzY3JhdGNoR1BS
LAogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKEZ1bmN0aW9u
UHRyKHNsb3QuY3VzdG9tR2V0dGVyKCkpLmV4ZWN1dGFibGVBZGRyZXNzKCkpLAogICAgICAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHByb3BlcnR5TmFtZS5pbXBsKCkp
KTsKICAgICAgICAgICAgIG9wZXJhdGlvbkZ1bmN0aW9uID0gb3BlcmF0aW9uQ2FsbEN1c3RvbUdl
dHRlcjsKQEAgLTM1MCw5ICszNDUsMTAgQEAgc3RhdGljIFByb3RvQ2hhaW5HZW5lcmF0aW9uUmVz
dWx0IGdlbmVyYXRlUHJvdG9DaGFpbkFjY2Vzc1N0dWIoRXhlY1N0YXRlKiBleGVjLAogICAgICAg
ICBwYXRjaEJ1ZmZlci5saW5rKG9wZXJhdGlvbkNhbGwsIG9wZXJhdGlvbkZ1bmN0aW9uKTsKICAg
ICAgICAgcGF0Y2hCdWZmZXIubGluayhoYW5kbGVyQ2FsbCwgbG9va3VwRXhjZXB0aW9uSGFuZGxl
cik7CiAgICAgfQotICAgIHN0dWJSb3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfREZHX1NUVUIo
Ci0gICAgICAgIHBhdGNoQnVmZmVyLAotICAgICAgICAoIkRGRyBwcm90b3R5cGUgY2hhaW4gYWNj
ZXNzIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAorICAgIAorICAgIHN0dWJSb3V0aW5l
ID0gRklOQUxJWkVfQ09ERV9GT1JfU1RVQigKKyAgICAgICAgZXhlYy0+Y29kZUJsb2NrKCksIHBh
dGNoQnVmZmVyLAorICAgICAgICAoIlByb3RvdHlwZSBjaGFpbiBhY2Nlc3Mgc3R1YiBmb3IgJXMs
IHJldHVybiBwb2ludCAlcCIsCiAgICAgICAgICAgICB0b0NTdHJpbmcoKmV4ZWMtPmNvZGVCbG9j
aygpKS5kYXRhKCksIHN1Y2Nlc3NMYWJlbC5leGVjdXRhYmxlQWRkcmVzcygpKSk7CiAgICAgcmV0
dXJuIFByb3RvQ2hhaW5HZW5lcmF0aW9uU3VjY2VlZGVkOwogfQpAQCAtNDEyLDkgKzQwOCw5IEBA
IHN0YXRpYyBib29sIHRyeUNhY2hlR2V0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFz
ZVZhbHVlLCBjb25zdCBJZGVudGlmaWVyCiAgICAgICAgIAogICAgICAgICBsaW5rUmVzdG9yZVNj
cmF0Y2gocGF0Y2hCdWZmZXIsIG5lZWRUb1Jlc3RvcmVTY3JhdGNoLCBzdHViSW5mbywgc3VjY2Vz
cywgZmFpbCwgZmFpbHVyZUNhc2VzKTsKICAgICAgICAgCi0gICAgICAgIHN0dWJJbmZvLnN0dWJS
b3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfREZHX1NUVUIoCi0gICAgICAgICAgICBwYXRjaEJ1
ZmZlciwKLSAgICAgICAgICAgICgiREZHIEdldEJ5SWQgYXJyYXkgbGVuZ3RoIHN0dWIgZm9yICVz
LCByZXR1cm4gcG9pbnQgJXAiLAorICAgICAgICBzdHViSW5mby5zdHViUm91dGluZSA9IEZJTkFM
SVpFX0NPREVfRk9SX1NUVUIoCisgICAgICAgICAgICBleGVjLT5jb2RlQmxvY2soKSwgcGF0Y2hC
dWZmZXIsCisgICAgICAgICAgICAoIkdldEJ5SWQgYXJyYXkgbGVuZ3RoIHN0dWIgZm9yICVzLCBy
ZXR1cm4gcG9pbnQgJXAiLAogICAgICAgICAgICAgICAgIHRvQ1N0cmluZygqZXhlYy0+Y29kZUJs
b2NrKCkpLmRhdGEoKSwgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQo
CiAgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRvRG9uZSkuZXhl
Y3V0YWJsZUFkZHJlc3MoKSkpOwogICAgICAgICAKQEAgLTU3Miw3ICs1NjgsNiBAQCBzdGF0aWMg
Ym9vbCB0cnlCdWlsZEdldEJ5SURMaXN0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFs
dWUsIGNvbnN0IElkZW50aQogICAgICAgICAKICAgICAgICAgc3R1YkluZm8udS5nZXRCeUlkU2Vs
Zkxpc3QubGlzdFNpemUrKzsKICAgICAgICAgCi0gICAgICAgIEdQUlJlZyBjYWxsRnJhbWVSZWdp
c3RlciA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2guY2FsbEZyYW1lUmVnaXN0
ZXIpOwogICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1Yklu
Zm8ucGF0Y2guYmFzZUdQUik7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAgR1BSUmVn
IHJlc3VsdFRhZ0dQUiA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2gudmFsdWVU
YWdHUFIpOwpAQCAtNTk2LDYgKzU5MSwxMCBAQCBzdGF0aWMgYm9vbCB0cnlCdWlsZEdldEJ5SURM
aXN0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElkZW50aQogICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzdWNjZXNzOwogICAgICAgICAKICAgICAgICAgaWYg
KHNsb3QuaXNDYWNoZWFibGVHZXR0ZXIoKSB8fCBzbG90LmlzQ2FjaGVhYmxlQ3VzdG9tKCkpIHsK
KyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgc2hvdWxkbid0IGJlIGFzc3VtaW5nIHRo
YXQgdGhlIHRvcCBvZiBzdGFjayBpcyBzZXQgdXAgZm9yIEpTQworICAgICAgICAgICAgLy8gSklU
LXN0eWxlIEMgY2FsbHMsIHNpbmNlIHdlIG1heSBiZSBjdXJyZW50bHkgb24gdG9wIG9mIGFuIEZU
TCBmcmFtZS4KKyAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjU3MTEKKyAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHNsb3QuaXNDYWNo
ZWFibGVHZXR0ZXIoKSkgewogICAgICAgICAgICAgICAgIEFTU0VSVChzY3JhdGNoR1BSICE9IElu
dmFsaWRHUFJSZWcpOwogICAgICAgICAgICAgICAgIEFTU0VSVChiYXNlR1BSICE9IHNjcmF0Y2hH
UFIpOwpAQCAtNjEzLDE2ICs2MTIsMTYgQEAgc3RhdGljIGJvb2wgdHJ5QnVpbGRHZXRCeUlETGlz
dChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGkKICAgICAg
ICAgICAgICAgICAgICAgc3R1YkppdC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc2Ny
YXRjaEdQUiwgb2Zmc2V0UmVsYXRpdmVUb0Jhc2Uoc2xvdC5jYWNoZWRPZmZzZXQoKSkpLCBzY3Jh
dGNoR1BSKTsKICNlbmRpZgogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzdHVi
Sml0LnNldHVwQXJndW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVyLCBiYXNlR1BSLCBzY3JhdGNoR1BS
KTsKKyAgICAgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShi
YXNlR1BSLCBzY3JhdGNoR1BSKTsKICAgICAgICAgICAgICAgICBvcGVyYXRpb25GdW5jdGlvbiA9
IG9wZXJhdGlvbkNhbGxHZXR0ZXI7CiAgICAgICAgICAgICB9IGVsc2UgewogI2lmIFVTRShKU1ZB
TFVFNjQpCiAgICAgICAgICAgICAgICAgLy8gRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMp
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0gICAgICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3Vt
ZW50cyhjYWxsRnJhbWVSZWdpc3RlciwgYmFzZUdQUiwgYmFzZUdQUiwgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1wbCgpKSk7CisgICAgICAgICAgICAgICAgc3R1YkppdC5z
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYmFzZUdQUiwgYmFzZUdQUiwgTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1wbCgpKSk7CiAgICAgICAgICAgICAgICAgb3BlcmF0
aW9uRnVuY3Rpb24gPSBGdW5jdGlvblB0cihzbG90LmN1c3RvbUdldHRlcigpKTsKICNlbHNlCi0g
ICAgICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50cygKLSAgICAgICAgICAgICAgICAg
ICAgY2FsbEZyYW1lUmVnaXN0ZXIsIGJhc2VHUFIsCisgICAgICAgICAgICAgICAgc3R1YkppdC5z
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCisgICAgICAgICAgICAgICAgICAgIGJhc2VHUFIs
CiAgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKEZ1bmN0
aW9uUHRyKHNsb3QuY3VzdG9tR2V0dGVyKCkpLmV4ZWN1dGFibGVBZGRyZXNzKCkpLAogICAgICAg
ICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihpZGVudC5pbXBsKCkp
KTsKICAgICAgICAgICAgICAgICBvcGVyYXRpb25GdW5jdGlvbiA9IG9wZXJhdGlvbkNhbGxDdXN0
b21HZXR0ZXI7CkBAIC02NDQsNyArNjQzLDcgQEAgc3RhdGljIGJvb2wgdHJ5QnVpbGRHZXRCeUlE
TGlzdChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGkKICNl
bmRpZgogICAgICAgICAgICAgc3VjY2VzcyA9IHN0dWJKaXQuZW1pdEV4Y2VwdGlvbkNoZWNrKEND
YWxsSGVscGVyczo6SW52ZXJ0ZWRFeGNlcHRpb25DaGVjayk7CiAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNFeGVjU3RhdGUoKTsKKyAgICAgICAgICAgIHN0
dWJKaXQuc2V0dXBBcmd1bWVudHMoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHZtKSwgR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgICAgICAgICAgaGFuZGxlckNhbGwgPSBzdHVi
Sml0LmNhbGwoKTsKICAgICAgICAgICAgIHN0dWJKaXQuanVtcFRvRXhjZXB0aW9uSGFuZGxlcigp
OwogICAgICAgICB9IGVsc2UgewpAQCAtNjg0LDkgKzY4Myw5IEBAIHN0YXRpYyBib29sIHRyeUJ1
aWxkR2V0QnlJRExpc3QoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3Qg
SWRlbnRpCiAgICAgICAgIAogICAgICAgICBSZWZQdHI8SklUU3R1YlJvdXRpbmU+IHN0dWJSb3V0
aW5lID0KICAgICAgICAgICAgIGNyZWF0ZUpJVFN0dWJSb3V0aW5lKAotICAgICAgICAgICAgICAg
IEZJTkFMSVpFX0RGR19DT0RFKAotICAgICAgICAgICAgICAgICAgICBwYXRjaEJ1ZmZlciwKLSAg
ICAgICAgICAgICAgICAgICAgKCJERkcgR2V0QnlJZCBwb2x5bW9ycGhpYyBsaXN0IGFjY2VzcyBm
b3IgJXMsIHJldHVybiBwb2ludCAlcCIsCisgICAgICAgICAgICAgICAgRklOQUxJWkVfQ09ERV9G
T1IoCisgICAgICAgICAgICAgICAgICAgIGV4ZWMtPmNvZGVCbG9jaygpLCBwYXRjaEJ1ZmZlciwK
KyAgICAgICAgICAgICAgICAgICAgKCJHZXRCeUlkIHBvbHltb3JwaGljIGxpc3QgYWNjZXNzIGZv
ciAlcywgcmV0dXJuIHBvaW50ICVwIiwKICAgICAgICAgICAgICAgICAgICAgICAgIHRvQ1N0cmlu
ZygqZXhlYy0+Y29kZUJsb2NrKCkpLmRhdGEoKSwgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9u
LmxhYmVsQXRPZmZzZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R1YkluZm8ucGF0
Y2guZGVsdGFDYWxsVG9Eb25lKS5leGVjdXRhYmxlQWRkcmVzcygpKSksCiAgICAgICAgICAgICAg
ICAgKnZtLApAQCAtNzc1LDcgKzc3NCw3IEBAIHN0YXRpYyBWX0pJVE9wZXJhdGlvbl9FU3NpSkpJ
IGFwcHJvcHJpYXRlTGlzdEJ1aWxkaW5nUHV0QnlJZEZ1bmN0aW9uKGNvbnN0IFB1dFByCiB9CiAK
ICNpZiBFTkFCTEUoR0dDKQotc3RhdGljIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHN0b3JlVG9Xcml0
ZUJhcnJpZXJCdWZmZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBjZWxsLCBHUFJSZWcgc2Ny
YXRjaDEsIEdQUlJlZyBzY3JhdGNoMiwgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLCBTY3JhdGNo
UmVnaXN0ZXJBbGxvY2F0b3ImIGFsbG9jYXRvcikKK3N0YXRpYyBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBzdG9yZVRvV3JpdGVCYXJyaWVyQnVmZmVyKENDYWxsSGVscGVycyYgaml0LCBHUFJSZWcgY2Vs
bCwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXRjaDIsIFNjcmF0Y2hSZWdpc3RlckFsbG9j
YXRvciYgYWxsb2NhdG9yKQogewogICAgIEFTU0VSVChzY3JhdGNoMSAhPSBzY3JhdGNoMik7CiAg
ICAgV3JpdGVCYXJyaWVyQnVmZmVyKiB3cml0ZUJhcnJpZXJCdWZmZXIgPSAmaml0LnZtKCktPmhl
YXAud3JpdGVCYXJyaWVyQnVmZmVyKCk7CkBAIC04MDgsNyArODA3LDcgQEAgc3RhdGljIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIHN0b3JlVG9Xcml0ZUJhcnJpZXJCdWZmZXIoQ0NhbGxIZWxwZXJzJiBq
aXQsIEdQUlJlZwogICAgIGlmIChieXRlc1RvU3VidHJhY3QpCiAgICAgICAgIGppdC5zdWJQdHIo
TWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihieXRlc1RvU3VidHJhY3QpLCBNYWNyb0Fzc2Vt
Ymxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOyAKIAotICAgIGppdC5zZXR1cEFyZ3VtZW50cyhj
YWxsRnJhbWVSZWdpc3RlciwgY2VsbCk7CisgICAgaml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShjZWxsKTsKICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsID0gaml0LmNhbGwoKTsK
IAogICAgIGlmIChieXRlc1RvU3VidHJhY3QpCkBAIC04MjAsMTMgKzgxOSwxMyBAQCBzdGF0aWMg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgc3RvcmVUb1dyaXRlQmFycmllckJ1ZmZlcihDQ2FsbEhlbHBl
cnMmIGppdCwgR1BSUmVnCiAgICAgcmV0dXJuIGNhbGw7CiB9CiAKLXN0YXRpYyBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCB3cml0ZUJhcnJpZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBvd25lciwg
R1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXRjaDIsIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3Rl
ciwgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yJiBhbGxvY2F0b3IpCitzdGF0aWMgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgd3JpdGVCYXJyaWVyKENDYWxsSGVscGVycyYgaml0LCBHUFJSZWcgb3duZXIs
IEdQUlJlZyBzY3JhdGNoMSwgR1BSUmVnIHNjcmF0Y2gyLCBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0
b3ImIGFsbG9jYXRvcikKIHsKICAgICBBU1NFUlQob3duZXIgIT0gc2NyYXRjaDEpOwogICAgIEFT
U0VSVChvd25lciAhPSBzY3JhdGNoMik7CiAKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBkZWZp
bml0ZWx5Tm90TWFya2VkID0gREZHOjpTcGVjdWxhdGl2ZUpJVDo6Z2VuZXJpY1dyaXRlQmFycmll
cihqaXQsIG93bmVyLCBzY3JhdGNoMSwgc2NyYXRjaDIpOwotICAgIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGwgPSBzdG9yZVRvV3JpdGVCYXJyaWVyQnVmZmVyKGppdCwgb3duZXIsIHNjcmF0Y2gx
LCBzY3JhdGNoMiwgY2FsbEZyYW1lUmVnaXN0ZXIsIGFsbG9jYXRvcik7CisgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbCA9IHN0b3JlVG9Xcml0ZUJhcnJpZXJCdWZmZXIoaml0LCBvd25lciwg
c2NyYXRjaDEsIHNjcmF0Y2gyLCBhbGxvY2F0b3IpOwogICAgIGRlZmluaXRlbHlOb3RNYXJrZWQu
bGluaygmaml0KTsKICAgICByZXR1cm4gY2FsbDsKIH0KQEAgLTg0NCw5ICs4NDMsNiBAQCBzdGF0
aWMgdm9pZCBlbWl0UHV0UmVwbGFjZVN0dWIoCiAgICAgUmVmUHRyPEpJVFN0dWJSb3V0aW5lPiYg
c3R1YlJvdXRpbmUpCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7Ci0jaWYgRU5BQkxFKEdH
QykKLSAgICBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0
dWJJbmZvLnBhdGNoLmNhbGxGcmFtZVJlZ2lzdGVyKTsKLSNlbmRpZgogICAgIEdQUlJlZyBiYXNl
R1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC5iYXNlR1BSKTsKICNpZiBV
U0UoSlNWQUxVRTMyXzY0KQogICAgIEdQUlJlZyB2YWx1ZVRhZ0dQUiA9IHN0YXRpY19jYXN0PEdQ
UlJlZz4oc3R1YkluZm8ucGF0Y2gudmFsdWVUYWdHUFIpOwpAQCAtODkzLDcgKzg4OSw3IEBAIHN0
YXRpYyB2b2lkIGVtaXRQdXRSZXBsYWNlU3R1YigKICNlbmRpZgogICAgIAogI2lmIEVOQUJMRShH
R0MpCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgd3JpdGVCYXJyaWVyT3BlcmF0aW9uID0gd3Jp
dGVCYXJyaWVyKHN0dWJKaXQsIGJhc2VHUFIsIHNjcmF0Y2hHUFIxLCBzY3JhdGNoR1BSMiwgY2Fs
bEZyYW1lUmVnaXN0ZXIsIGFsbG9jYXRvcik7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgd3Jp
dGVCYXJyaWVyT3BlcmF0aW9uID0gd3JpdGVCYXJyaWVyKHN0dWJKaXQsIGJhc2VHUFIsIHNjcmF0
Y2hHUFIxLCBzY3JhdGNoR1BSMiwgYWxsb2NhdG9yKTsKICNlbmRpZgogICAgIAogICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIHN1Y2Nlc3M7CkBAIC05MTgsOSArOTE0LDkgQEAgc3RhdGljIHZvaWQg
ZW1pdFB1dFJlcGxhY2VTdHViKAogICAgIHBhdGNoQnVmZmVyLmxpbmsoc3VjY2Vzcywgc3R1Yklu
Zm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQoc3R1YkluZm8ucGF0Y2guZGVsdGFD
YWxsVG9Eb25lKSk7CiAgICAgcGF0Y2hCdWZmZXIubGluayhmYWlsdXJlLCBmYWlsdXJlTGFiZWwp
OwogICAgICAgICAgICAgCi0gICAgc3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9ERkdf
U1RVQigKLSAgICAgICAgcGF0Y2hCdWZmZXIsCi0gICAgICAgICgiREZHIFB1dEJ5SWQgcmVwbGFj
ZSBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwKKyAgICBzdHViUm91dGluZSA9IEZJTkFM
SVpFX0NPREVfRk9SX1NUVUIoCisgICAgICAgIGV4ZWMtPmNvZGVCbG9jaygpLCBwYXRjaEJ1ZmZl
ciwKKyAgICAgICAgKCJQdXRCeUlkIHJlcGxhY2Ugc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAl
cCIsCiAgICAgICAgICAgICB0b0NTdHJpbmcoKmV4ZWMtPmNvZGVCbG9jaygpKS5kYXRhKCksIHN0
dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KAogICAgICAgICAgICAgICAg
IHN0dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRvRG9uZSkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwog
fQpAQCAtOTQwLDcgKzkzNiw2IEBAIHN0YXRpYyB2b2lkIGVtaXRQdXRUcmFuc2l0aW9uU3R1YigK
IHsKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKIAotICAgIEdQUlJlZyBjYWxsRnJhbWVSZWdp
c3RlciA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2guY2FsbEZyYW1lUmVnaXN0
ZXIpOwogICAgIEdQUlJlZyBiYXNlR1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5w
YXRjaC5iYXNlR1BSKTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIEdQUlJlZyB2YWx1ZVRh
Z0dQUiA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2gudmFsdWVUYWdHUFIpOwpA
QCAtMTA2MCw3ICsxMDU1LDcgQEAgc3RhdGljIHZvaWQgZW1pdFB1dFRyYW5zaXRpb25TdHViKAog
I2VuZGlmCiAgICAgCiAjaWYgRU5BQkxFKEdHQykKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCB3
cml0ZUJhcnJpZXJPcGVyYXRpb24gPSB3cml0ZUJhcnJpZXIoc3R1YkppdCwgYmFzZUdQUiwgc2Ny
YXRjaEdQUjEsIHNjcmF0Y2hHUFIyLCBjYWxsRnJhbWVSZWdpc3RlciwgYWxsb2NhdG9yKTsKKyAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCB3cml0ZUJhcnJpZXJPcGVyYXRpb24gPSB3cml0ZUJhcnJp
ZXIoc3R1YkppdCwgYmFzZUdQUiwgc2NyYXRjaEdQUjEsIHNjcmF0Y2hHUFIyLCBhbGxvY2F0b3Ip
OwogI2VuZGlmCiAgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc3VjY2VzczsKQEAgLTEw
ODYsOSArMTA4MSw5IEBAIHN0YXRpYyB2b2lkIGVtaXRQdXRUcmFuc2l0aW9uU3R1YigKICAgICAg
ICAgU2NyYXRjaEJ1ZmZlciogc2NyYXRjaEJ1ZmZlciA9IHZtLT5zY3JhdGNoQnVmZmVyRm9yU2l6
ZShhbGxvY2F0b3IuZGVzaXJlZFNjcmF0Y2hCdWZmZXJTaXplKCkpOwogICAgICAgICBhbGxvY2F0
b3IucHJlc2VydmVVc2VkUmVnaXN0ZXJzVG9TY3JhdGNoQnVmZmVyKHN0dWJKaXQsIHNjcmF0Y2hC
dWZmZXIsIHNjcmF0Y2hHUFIxKTsKICNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBzdHViSml0
LnNldHVwQXJndW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVyLCBiYXNlR1BSLCBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbVB0cihzdHJ1Y3R1cmUpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
KHNsb3QuY2FjaGVkT2Zmc2V0KCkpLCB2YWx1ZUdQUik7CisgICAgICAgIHN0dWJKaXQuc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKGJhc2VHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
UHRyKHN0cnVjdHVyZSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2xvdC5jYWNoZWRP
ZmZzZXQoKSksIHZhbHVlR1BSKTsKICNlbHNlCi0gICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVu
dHMoY2FsbEZyYW1lUmVnaXN0ZXIsIGJhc2VHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
UHRyKHN0cnVjdHVyZSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2xvdC5jYWNoZWRP
ZmZzZXQoKSksIHZhbHVlR1BSLCB2YWx1ZVRhZ0dQUik7CisgICAgICAgIHN0dWJKaXQuc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKGJhc2VHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
UHRyKHN0cnVjdHVyZSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2xvdC5jYWNoZWRP
ZmZzZXQoKSksIHZhbHVlR1BSLCB2YWx1ZVRhZ0dQUik7CiAjZW5kaWYKICAgICAgICAgb3BlcmF0
aW9uQ2FsbCA9IHN0dWJKaXQuY2FsbCgpOwogICAgICAgICBhbGxvY2F0b3IucmVzdG9yZVVzZWRS
ZWdpc3RlcnNGcm9tU2NyYXRjaEJ1ZmZlcihzdHViSml0LCBzY3JhdGNoQnVmZmVyLCBzY3JhdGNo
R1BSMSk7CkBAIC0xMTExLDkgKzExMDYsOSBAQCBzdGF0aWMgdm9pZCBlbWl0UHV0VHJhbnNpdGlv
blN0dWIoCiAgICAgCiAgICAgc3R1YlJvdXRpbmUgPQogICAgICAgICBjcmVhdGVKSVRTdHViUm91
dGluZSgKLSAgICAgICAgICAgIEZJTkFMSVpFX0RGR19DT0RFKAotICAgICAgICAgICAgICAgIHBh
dGNoQnVmZmVyLAotICAgICAgICAgICAgICAgICgiREZHIFB1dEJ5SWQgJXN0cmFuc2l0aW9uIHN0
dWIgKCVwIC0+ICVwKSBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsCisgICAgICAgICAgICBGSU5B
TElaRV9DT0RFX0ZPUigKKyAgICAgICAgICAgICAgICBleGVjLT5jb2RlQmxvY2soKSwgcGF0Y2hC
dWZmZXIsCisgICAgICAgICAgICAgICAgKCJQdXRCeUlkICVzdHJhbnNpdGlvbiBzdHViICglcCAt
PiAlcCkgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAogICAgICAgICAgICAgICAgICAgICBzdHJ1
Y3R1cmUtPm91dE9mTGluZUNhcGFjaXR5KCkgIT0gb2xkU3RydWN0dXJlLT5vdXRPZkxpbmVDYXBh
Y2l0eSgpID8gInJlYWxsb2NhdGluZyAiIDogIiIsCiAgICAgICAgICAgICAgICAgICAgIG9sZFN0
cnVjdHVyZSwgc3RydWN0dXJlLAogICAgICAgICAgICAgICAgICAgICB0b0NTdHJpbmcoKmV4ZWMt
PmNvZGVCbG9jaygpKS5kYXRhKCksIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0
T2Zmc2V0KApAQCAtMTM5NCw5ICsxMzg5LDkgQEAgc3RhdGljIGJvb2wgdHJ5UmVwYXRjaEluKAog
CiAgICAgICAgIGxpbmtSZXN0b3JlU2NyYXRjaChwYXRjaEJ1ZmZlciwgbmVlZFRvUmVzdG9yZVNj
cmF0Y2gsIHN1Y2Nlc3MsIGZhaWwsIGZhaWx1cmVDYXNlcywgc3VjY2Vzc0xhYmVsLCBzbG93Q2Fz
ZUxhYmVsKTsKICAgICAgICAgCi0gICAgICAgIHN0dWJSb3V0aW5lID0gRklOQUxJWkVfQ09ERV9G
T1JfREZHX1NUVUIoCi0gICAgICAgICAgICBwYXRjaEJ1ZmZlciwKLSAgICAgICAgICAgICgiREZH
IEluIChmb3VuZCA9ICVzKSBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwKKyAgICAgICAg
c3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKAorICAgICAgICAgICAgZXhlYy0+
Y29kZUJsb2NrKCksIHBhdGNoQnVmZmVyLAorICAgICAgICAgICAgKCJJbiAoZm91bmQgPSAlcykg
c3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsCiAgICAgICAgICAgICAgICAgd2FzRm91bmQg
PyAieWVzIiA6ICJubyIsIHRvQ1N0cmluZygqZXhlYy0+Y29kZUJsb2NrKCkpLmRhdGEoKSwKICAg
ICAgICAgICAgICAgICBzdWNjZXNzTGFiZWwuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwogICAgIH0K
QEAgLTE0MTksMTcgKzE0MTQsMTkgQEAgdm9pZCByZXBhdGNoSW4oCiAgICAgcmVwYXRjaENhbGwo
ZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiwgb3BlcmF0aW9u
SW4pOwogfQogCi1zdGF0aWMgdm9pZCBsaW5rU2xvd0ZvcihSZXBhdGNoQnVmZmVyJiByZXBhdGNo
QnVmZmVyLCBWTSogdm0sIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBDb2RlU3BlY2lhbGl6
YXRpb25LaW5kIGtpbmQpCitzdGF0aWMgdm9pZCBsaW5rU2xvd0ZvcigKKyAgICBSZXBhdGNoQnVm
ZmVyJiByZXBhdGNoQnVmZmVyLCBWTSogdm0sIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLAor
ICAgIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2Rl
IHJlZ2lzdGVycykKIHsKLSAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkgewotICAgICAgICBy
ZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0luZm8uY2FsbFJldHVybkxvY2F0aW9uLCB2bS0+
Z2V0Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDb25zdHJ1Y3QpOwotICAg
IHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24sIHZt
LT5nZXRDVElTdHViKHZpcnR1YWxDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcikuY29kZSgpKTsKKyAg
ICByZXBhdGNoQnVmZmVyLnJlbGluaygKKyAgICAgICAgY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5M
b2NhdGlvbiwKKyAgICAgICAgdm0tPmdldENUSVN0dWIodmlydHVhbFRodW5rR2VuZXJhdG9yRm9y
KGtpbmQsIHJlZ2lzdGVycykpLmNvZGUoKSk7CiB9CiAKLXZvaWQgbGlua0ZvcihFeGVjU3RhdGUq
IGV4ZWMsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBDb2RlQmxvY2sqIGNhbGxlZUNvZGVC
bG9jaywgSlNGdW5jdGlvbiogY2FsbGVlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0ciwg
Q29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQordm9pZCBsaW5rRm9yKAorICAgIEV4ZWNTdGF0
ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8sIENvZGVCbG9jayogY2FsbGVlQ29k
ZUJsb2NrLAorICAgIEpTRnVuY3Rpb24qIGNhbGxlZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNv
ZGVQdHIsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwKKyAgICBSZWdpc3RlclByZXNlcnZh
dGlvbk1vZGUgcmVnaXN0ZXJzKQogewogICAgIEFTU0VSVCghY2FsbExpbmtJbmZvLnN0dWIpOwog
ICAgIApAQCAtMTQ0NSwzMSArMTQ0MiwzOCBAQCB2b2lkIGxpbmtGb3IoRXhlY1N0YXRlKiBleGVj
LCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQgogICAg
IEFTU0VSVCghY2FsbExpbmtJbmZvLmlzTGlua2VkKCkpOwogICAgIGNhbGxMaW5rSW5mby5jYWxs
ZWUuc2V0KGV4ZWMtPmNhbGxlckZyYW1lKCktPnZtKCksIGNhbGxMaW5rSW5mby5ob3RQYXRoQmVn
aW4sIGNhbGxlckNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIGNhbGxlZSk7CiAgICAgY2Fs
bExpbmtJbmZvLmxhc3RTZWVuQ2FsbGVlLnNldChleGVjLT5jYWxsZXJGcmFtZSgpLT52bSgpLCBj
YWxsZXJDb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLCBjYWxsZWUpOworICAgIGlmIChzaG91
bGRTaG93RGlzYXNzZW1ibHlGb3IoY2FsbGVyQ29kZUJsb2NrKSkKKyAgICAgICAgZGF0YUxvZygi
TGlua2luZyBjYWxsIGluICIsICpjYWxsZXJDb2RlQmxvY2ssICIgYXQgIiwgY2FsbExpbmtJbmZv
LmNvZGVPcmlnaW4sICIgdG8gIiwgcG9pbnRlckR1bXAoY2FsbGVlQ29kZUJsb2NrKSwgIiwgZW50
cnlwb2ludCBhdCAiLCBjb2RlUHRyLCAiXG4iKTsKICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhj
YWxsTGlua0luZm8uaG90UGF0aE90aGVyLCBjb2RlUHRyKTsKICAgICAKICAgICBpZiAoY2FsbGVl
Q29kZUJsb2NrKQogICAgICAgICBjYWxsZWVDb2RlQmxvY2stPmxpbmtJbmNvbWluZ0NhbGwoZXhl
Yy0+Y2FsbGVyRnJhbWUoKSwgJmNhbGxMaW5rSW5mbyk7CiAgICAgCiAgICAgaWYgKGtpbmQgPT0g
Q29kZUZvckNhbGwpIHsKLSAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZv
LmNhbGxSZXR1cm5Mb2NhdGlvbiwgdm0tPmdldENUSVN0dWIobGlua0Nsb3N1cmVDYWxsVGh1bmtH
ZW5lcmF0b3IpLmNvZGUoKSk7CisgICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5r
SW5mby5jYWxsUmV0dXJuTG9jYXRpb24sIHZtLT5nZXRDVElTdHViKGxpbmtDbG9zdXJlQ2FsbFRo
dW5rR2VuZXJhdG9yRm9yKHJlZ2lzdGVycykpLmNvZGUoKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgCiAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgbGlu
a1Nsb3dGb3IocmVwYXRjaEJ1ZmZlciwgdm0sIGNhbGxMaW5rSW5mbywgQ29kZUZvckNvbnN0cnVj
dCk7CisgICAgbGlua1Nsb3dGb3IocmVwYXRjaEJ1ZmZlciwgdm0sIGNhbGxMaW5rSW5mbywgQ29k
ZUZvckNvbnN0cnVjdCwgcmVnaXN0ZXJzKTsKIH0KIAotdm9pZCBsaW5rU2xvd0ZvcihFeGVjU3Rh
dGUqIGV4ZWMsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBDb2RlU3BlY2lhbGl6YXRpb25L
aW5kIGtpbmQpCit2b2lkIGxpbmtTbG93Rm9yKAorICAgIEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExp
bmtJbmZvJiBjYWxsTGlua0luZm8sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwKKyAgICBS
ZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQogewogICAgIENvZGVCbG9jayogY2Fs
bGVyQ29kZUJsb2NrID0gZXhlYy0+Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCk7CiAgICAgVk0q
IHZtID0gY2FsbGVyQ29kZUJsb2NrLT52bSgpOwogICAgIAogICAgIFJlcGF0Y2hCdWZmZXIgcmVw
YXRjaEJ1ZmZlcihjYWxsZXJDb2RlQmxvY2spOwogICAgIAotICAgIGxpbmtTbG93Rm9yKHJlcGF0
Y2hCdWZmZXIsIHZtLCBjYWxsTGlua0luZm8sIGtpbmQpOworICAgIGxpbmtTbG93Rm9yKHJlcGF0
Y2hCdWZmZXIsIHZtLCBjYWxsTGlua0luZm8sIGtpbmQsIHJlZ2lzdGVycyk7CiB9CiAKLXZvaWQg
bGlua0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0lu
Zm8sIENvZGVCbG9jayogY2FsbGVlQ29kZUJsb2NrLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRXhl
Y3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyKQor
dm9pZCBsaW5rQ2xvc3VyZUNhbGwoCisgICAgRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8m
IGNhbGxMaW5rSW5mbywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQmxvY2ssCisgICAgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlLCBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIgY29kZVB0ciwKKyAgICBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQog
ewogICAgIEFTU0VSVCghY2FsbExpbmtJbmZvLnN0dWIpOwogICAgIApAQCAtMTQ4Miw2ICsxNDg2
LDE1IEBAIHZvaWQgbGlua0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZv
JiBjYWxsTGlua0luZm8sIENvZGVCbG9jayogY2FsCiAgICAgCiAgICAgQ0NhbGxIZWxwZXJzOjpK
dW1wTGlzdCBzbG93UGF0aDsKICAgICAKKyAgICBwdHJkaWZmX3Qgb2Zmc2V0VG9GcmFtZSA9IC1z
aXplb2YoQ2FsbGVyRnJhbWVBbmRQQyk7CisKKyAgICBpZiAoIUFTU0VSVF9ESVNBQkxFRCkgewor
ICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgb2tBcmd1bWVudENvdW50ID0gc3R1YkppdC5icmFu
Y2gzMigKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6QmVsb3csIENDYWxsSGVscGVyczo6QWRk
cmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJk
aWZmX3Q+KHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpBcmd1bWVudENvdW50KSArIG9mZnNl
dFRvRnJhbWUgKyBQYXlsb2FkT2Zmc2V0KSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMTAw
MDAwMDApKTsKKyAgICAgICAgc3R1YkppdC5icmVha3BvaW50KCk7CisgICAgICAgIG9rQXJndW1l
bnRDb3VudC5saW5rKCZzdHViSml0KTsKKyAgICB9CisgICAgICAgICAgICAKICNpZiBVU0UoSlNW
QUxVRTY0KQogICAgIC8vIFdlIGNhbiBzYWZlbHkgY2xvYmJlciBldmVyeXRoaW5nIGV4Y2VwdCB0
aGUgY2FsbGVlR1BSLiBXZSBjYW4ndCByZWx5IG9uIHRhZ01hc2tSZWdpc3RlcgogICAgIC8vIGJl
aW5nIHNldC4gU28gd2UgZG8gdGhpcyB0aGUgaGFyZCB3YXkuCkBAIC0xNTA3LDE4ICsxNTIwLDE4
IEBAIHZvaWQgbGlua0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBj
YWxsTGlua0luZm8sIENvZGVCbG9jayogY2FsCiAgICAgc3R1YkppdC5sb2FkUHRyKAogICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoY2FsbGVlR1BSLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZlNj
b3BlQ2hhaW4oKSksCiAgICAgICAgIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKLQorICAgIAog
I2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgc3R1YkppdC5zdG9yZTY0KAogICAgICAgICBHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUiwKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3Rl
cikgKiBKU1N0YWNrOjpTY29wZUNoYWluKSkpOworICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJk
aWZmX3Q+KHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpTY29wZUNoYWluKSArIG9mZnNldFRv
RnJhbWUpKTsKICNlbHNlCiAgICAgc3R1YkppdC5zdG9yZVB0cigKICAgICAgICAgR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIsCi0gICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIp
ICogSlNTdGFjazo6U2NvcGVDaGFpbikgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVz
Y3JpcHRvciwgYXNCaXRzLnBheWxvYWQpKSk7CisgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVz
cyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRp
ZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pICsgT0JKRUNUX09G
RlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSArIG9mZnNldFRv
RnJhbWUpKTsKICAgICBzdHViSml0LnN0b3JlMzIoCiAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAotICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6
ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pICsgT0JKRUNUX09GRlNFVE9GKEVu
Y29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKSk7CisgICAgICAgIENDYWxsSGVscGVy
czo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHN0YXRpY19j
YXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pICsg
T0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpICsgb2Zm
c2V0VG9GcmFtZSkpOwogI2VuZGlmCiAgICAgCiAgICAgQXNzZW1ibHlIZWxwZXJzOjpDYWxsIGNh
bGwgPSBzdHViSml0Lm5lYXJDYWxsKCk7CkBAIC0xNTI5LDIwICsxNTQyLDI0IEBAIHZvaWQgbGlu
a0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8s
IENvZGVCbG9jayogY2FsCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICBzdHViSml0Lm1vdmUo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIEdQUkluZm86OnJl
Z1QxKTsKICNlbmRpZgotICAgIHN0dWJKaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1Q
dHIoY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5leGVjdXRhYmxlQWRkcmVzcygpKSwg
R1BSSW5mbzo6bm9uQXJnR1BSMik7Ci0gICAgc3R1YkppdC5yZXN0b3JlUmV0dXJuQWRkcmVzc0Jl
Zm9yZVJldHVybihHUFJJbmZvOjpub25BcmdHUFIyKTsKKyAgICBzdHViSml0Lm1vdmUoQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24uZXhl
Y3V0YWJsZUFkZHJlc3MoKSksIEdQUkluZm86OnJlZ1QyKTsKKyAgICAKKyAgICBzdHViSml0LnJl
c3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86OnJlZ1QyKTsKICAgICBBc3Nl
bWJseUhlbHBlcnM6Okp1bXAgc2xvdyA9IHN0dWJKaXQuanVtcCgpOwogICAgIAogICAgIExpbmtC
dWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmc3R1YkppdCwgY2FsbGVyQ29kZUJsb2NrKTsKICAgICAK
ICAgICBwYXRjaEJ1ZmZlci5saW5rKGNhbGwsIEZ1bmN0aW9uUHRyKGNvZGVQdHIuZXhlY3V0YWJs
ZUFkZHJlc3MoKSkpOwotICAgIHBhdGNoQnVmZmVyLmxpbmsoZG9uZSwgY2FsbExpbmtJbmZvLmNh
bGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KDApKTsKLSAgICBwYXRjaEJ1ZmZlci5saW5r
KHNsb3csIENvZGVMb2NhdGlvbkxhYmVsKHZtLT5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGh1bmtH
ZW5lcmF0b3IpLmNvZGUoKSkpOworICAgIGlmIChKSVRDb2RlOjppc09wdGltaXppbmdKSVQoY2Fs
bGVyQ29kZUJsb2NrLT5qaXRUeXBlKCkpKQorICAgICAgICBwYXRjaEJ1ZmZlci5saW5rKGRvbmUs
IGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNldCgwKSk7CisgICAg
ZWxzZQorICAgICAgICBwYXRjaEJ1ZmZlci5saW5rKGRvbmUsIGNhbGxMaW5rSW5mby5ob3RQYXRo
T3RoZXIubGFiZWxBdE9mZnNldCgwKSk7CisgICAgcGF0Y2hCdWZmZXIubGluayhzbG93LCBDb2Rl
TG9jYXRpb25MYWJlbCh2bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsVGh1bmtHZW5lcmF0b3JGb3IoQ29k
ZUZvckNhbGwsIHJlZ2lzdGVycykpLmNvZGUoKSkpOwogICAgIAogICAgIFJlZlB0cjxDbG9zdXJl
Q2FsbFN0dWJSb3V0aW5lPiBzdHViUm91dGluZSA9IGFkb3B0UmVmKG5ldyBDbG9zdXJlQ2FsbFN0
dWJSb3V0aW5lKAotICAgICAgICBGSU5BTElaRV9ERkdfQ09ERSgKLSAgICAgICAgICAgIHBhdGNo
QnVmZmVyLAotICAgICAgICAgICAgKCJERkcgY2xvc3VyZSBjYWxsIHN0dWIgZm9yICVzLCByZXR1
cm4gcG9pbnQgJXAsIHRhcmdldCAlcCAoJXMpIiwKKyAgICAgICAgRklOQUxJWkVfQ09ERV9GT1Io
CisgICAgICAgICAgICBjYWxsZXJDb2RlQmxvY2ssIHBhdGNoQnVmZmVyLAorICAgICAgICAgICAg
KCJDbG9zdXJlIGNhbGwgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCwgdGFyZ2V0ICVwICgl
cykiLAogICAgICAgICAgICAgICAgIHRvQ1N0cmluZygqY2FsbGVyQ29kZUJsb2NrKS5kYXRhKCks
IGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNldCgwKS5leGVjdXRh
YmxlQWRkcmVzcygpLAogICAgICAgICAgICAgICAgIGNvZGVQdHIuZXhlY3V0YWJsZUFkZHJlc3Mo
KSwgdG9DU3RyaW5nKHBvaW50ZXJEdW1wKGNhbGxlZUNvZGVCbG9jaykpLmRhdGEoKSkpLAogICAg
ICAgICAqdm0sIGNhbGxlckNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIHN0cnVjdHVyZSwg
ZXhlY3V0YWJsZSwgY2FsbExpbmtJbmZvLmNvZGVPcmlnaW4pKTsKQEAgLTE1NTIsNyArMTU2OSw3
IEBAIHZvaWQgbGlua0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBj
YWxsTGlua0luZm8sIENvZGVCbG9jayogY2FsCiAgICAgcmVwYXRjaEJ1ZmZlci5yZXBsYWNlV2l0
aEp1bXAoCiAgICAgICAgIFJlcGF0Y2hCdWZmZXI6OnN0YXJ0T2ZCcmFuY2hQdHJXaXRoUGF0Y2hP
blJlZ2lzdGVyKGNhbGxMaW5rSW5mby5ob3RQYXRoQmVnaW4pLAogICAgICAgICBDb2RlTG9jYXRp
b25MYWJlbChzdHViUm91dGluZS0+Y29kZSgpLmNvZGUoKSkpOwotICAgIGxpbmtTbG93Rm9yKHJl
cGF0Y2hCdWZmZXIsIHZtLCBjYWxsTGlua0luZm8sIENvZGVGb3JDYWxsKTsKKyAgICBsaW5rU2xv
d0ZvcihyZXBhdGNoQnVmZmVyLCB2bSwgY2FsbExpbmtJbmZvLCBDb2RlRm9yQ2FsbCwgcmVnaXN0
ZXJzKTsKICAgICAKICAgICBjYWxsTGlua0luZm8uc3R1YiA9IHN0dWJSb3V0aW5lLnJlbGVhc2Uo
KTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgKaW5kZXggZmFhNzg3NjEzMzAz
OGM1M2RmM2FkZmMwMjFiNWU2MmY3YTg3ZmE0ZC4uNzk2Yzg1NTkxZjNkMjE0MmIwYmM4NzI5ZTJh
YzY3MWFhZjFhMTUzOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBh
dGNoLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgKQEAgLTQxLDkg
KzQxLDkgQEAgdm9pZCBidWlsZEdldEJ5SURQcm90b0xpc3QoRXhlY1N0YXRlKiwgSlNWYWx1ZSwg
Y29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnQKIHZvaWQgcmVwYXRjaFB1dEJ5SUQoRXhl
Y1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFB1dFByb3BlcnR5U2xv
dCYsIFN0cnVjdHVyZVN0dWJJbmZvJiwgUHV0S2luZCk7CiB2b2lkIGJ1aWxkUHV0QnlJZExpc3Qo
RXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFB1dFByb3BlcnR5
U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvJiwgUHV0S2luZCk7CiB2b2lkIHJlcGF0Y2hJbihFeGVj
U3RhdGUqLCBKU0NlbGwqLCBjb25zdCBJZGVudGlmaWVyJiwgYm9vbCB3YXNGb3VuZCwgY29uc3Qg
UHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mKTsKLXZvaWQgbGlua0ZvcihFeGVjU3Rh
dGUqLCBDYWxsTGlua0luZm8mLCBDb2RlQmxvY2sqLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7Ci12b2lkIGxpbmtTbG93
Rm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVTcGVjaWFsaXphdGlvbktpbmQpOwot
dm9pZCBsaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29kZUJsb2Nr
KiwgU3RydWN0dXJlKiwgRXhlY3V0YWJsZUJhc2UqLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIpOwor
dm9pZCBsaW5rRm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVCbG9jayosIEpTRnVu
Y3Rpb24qIGNhbGxlZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyLCBDb2RlU3BlY2lhbGl6YXRpb25L
aW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUpOwordm9pZCBsaW5rU2xvd0ZvcihFeGVjU3Rh
dGUqLCBDYWxsTGlua0luZm8mLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLCBSZWdpc3RlclByZXNl
cnZhdGlvbk1vZGUpOwordm9pZCBsaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiwgQ2FsbExpbmtJ
bmZvJiwgQ29kZUJsb2NrKiwgU3RydWN0dXJlKiwgRXhlY3V0YWJsZUJhc2UqLCBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSk7CiB2b2lkIHJlc2V0R2V0QnlJ
RChSZXBhdGNoQnVmZmVyJiwgU3RydWN0dXJlU3R1YkluZm8mKTsKIHZvaWQgcmVzZXRQdXRCeUlE
KFJlcGF0Y2hCdWZmZXImLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwogdm9pZCByZXNldEluKFJlcGF0
Y2hCdWZmZXImLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9TcGVjaWFsaXplZFRodW5rSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1NwZWNpYWxpemVkVGh1bmtKSVQuaAppbmRleCA2ZWMxZTcxYTdiYTg3YTIyYmEyN2Mz
MTRjMjcwZjQ5YjM3OWU4OGMyLi5kODA1MzdiNDE4YmExYjYxNmNhOGMzMzJhZWM0MWM1YWE4Mjdh
MjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NwZWNpYWxpemVkVGh1
bmtKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NwZWNpYWxpemVkVGh1bmtK
SVQuaApAQCAtNDEsNiArNDEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3BlY2lhbGl6
ZWRUaHVua0pJVChWTSogdm0sIGludCBleHBlY3RlZEFyZ0NvdW50KQogICAgICAgICAgICAgOiBK
U0ludGVyZmFjZUpJVCh2bSkKICAgICAgICAgeworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uUHJv
bG9ndWUoKTsKICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgd2UgaGF2ZSB0aGUgZXhwZWN0ZWQg
bnVtYmVyIG9mIGFyZ3VtZW50cwogICAgICAgICAgICAgbV9mYWlsdXJlcy5hcHBlbmQoYnJhbmNo
MzIoTm90RXF1YWwsIHBheWxvYWRGb3IoSlNTdGFjazo6QXJndW1lbnRDb3VudCksIFRydXN0ZWRJ
bW0zMihleHBlY3RlZEFyZ0NvdW50ICsgMSkpKTsKICAgICAgICAgfQpAQCAtNDgsNiArNDksNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgZXhwbGljaXQgU3BlY2lhbGl6ZWRUaHVua0pJVChW
TSogdm0pCiAgICAgICAgICAgICA6IEpTSW50ZXJmYWNlSklUKHZtKQogICAgICAgICB7CisgICAg
ICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogICAgICAgICB9CiAgICAgICAgIAogICAg
ICAgICB2b2lkIGxvYWREb3VibGVBcmd1bWVudChpbnQgYXJndW1lbnQsIEZQUmVnaXN0ZXJJRCBk
c3QsIFJlZ2lzdGVySUQgc2NyYXRjaCkKQEAgLTk3LDcgKzk5LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChzcmMgIT0gcmVnVDApCiAgICAgICAgICAgICAg
ICAgbW92ZShzcmMsIHJlZ1QwKTsKLSAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJh
bWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKSwgY2FsbEZyYW1lUmVn
aXN0ZXIpOworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAg
IHJldCgpOwogICAgICAgICB9CiAjZWxzZQpAQCAtMTA1LDcgKzEwNyw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKHBheWxvYWQsIHBheWxv
YWQgPT0gcmVnVDApOwogICAgICAgICAgICAgQVNTRVJUX1VOVVNFRCh0YWcsIHRhZyA9PSByZWdU
MSk7Ci0gICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxG
cmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAg
ICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICByZXQoKTsKICAgICAgICAg
fQogI2VuZGlmCkBAIC0xMzYsNyArMTM4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAg
ICBsb3dOb25aZXJvLmxpbmsodGhpcyk7CiAgICAgICAgICAgICBoaWdoTm9uWmVyby5saW5rKHRo
aXMpOwogI2VuZGlmCi0gICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0
ZXIsIENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsK
KyAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICByZXQoKTsK
ICAgICAgICAgfQogCkBAIC0xNDUsNyArMTQ3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
ICAgICBpZiAoc3JjICE9IHJlZ1QwKQogICAgICAgICAgICAgICAgIG1vdmUoc3JjLCByZWdUMCk7
CiAgICAgICAgICAgICB0YWdSZXR1cm5Bc0ludDMyKCk7Ci0gICAgICAgICAgICBsb2FkUHRyKEFk
ZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSks
IGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7
CiAgICAgICAgICAgICByZXQoKTsKICAgICAgICAgfQogCkBAIC0xNTQsNyArMTU2LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBpZiAoc3JjICE9IHJlZ1QwKQogICAgICAgICAgICAg
ICAgIG1vdmUoc3JjLCByZWdUMCk7CiAgICAgICAgICAgICB0YWdSZXR1cm5Bc0pTQ2VsbCgpOwot
ICAgICAgICAgICAgbG9hZFB0cihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6
OmNhbGxlckZyYW1lT2Zmc2V0KCkpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgICAgICBl
bWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgcmV0KCk7CiAgICAgICAgIH0KICAg
ICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJh
dG9ycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAK
aW5kZXggMTE4NzVjY2JmY2YyOGRlOWY5YjBlNmE4MGNiNmY3ZmY2ZTdkZGQxYi4uMjU3ODhmYzA5
N2JlMTdkNjEyMjEwMDNkYzY3ZWIzNzNmNmQxZWM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0FycmF5SXRlcmF0
b3IuaCIKICNpbmNsdWRlICJKU1N0YWNrLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU3BlY2lh
bGl6ZWRUaHVua0pJVC5oIgogI2luY2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KQEAgLTY2LDEwICs2
Nyw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB0aHJvd0V4Y2VwdGlvbkZyb21DYWxsU2xvd1Bh
dGhHZW5lcmF0b3IoVk0qIHZtKQogICAgIC8vIGV2ZW4gdGhvdWdoIHdlIHdvbid0IHVzZSBpdC4K
ICAgICBqaXQucHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUkluZm86Om5vblByZXNl
cnZlZE5vblJldHVybkdQUik7CiAKLSAgICAvLyBUaGUgQ2FsbEZyYW1lIHJlZ2lzdGVyIHBvaW50
cyB0byB0aGUgKGZhaWxlZCkgY2FsbGVlIGZyYW1lLCBzbyB3ZSBuZWVkIHRvIHBvcCBiYWNrIG9u
ZSBmcmFtZS4KLSAgICBqaXQuZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0
cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0KLSAgICBqaXQuc2V0dXBBcmd1bWVudHNF
eGVjU3RhdGUoKTsKKyAgICBqaXQuc2V0dXBBcmd1bWVudHMoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKHZtKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgIGppdC5tb3ZlKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KGxvb2t1cEV4Y2Vw
dGlvbkhhbmRsZXIpKSwgR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAgICAgZW1pdFBvaW50ZXJWYWxp
ZGF0aW9uKGppdCwgR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAgICAgaml0LmNhbGwoR1BSSW5mbzo6
bm9uQXJnR1BSMCk7CkBAIC04MiwyOSArODAsMjggQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHRo
cm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVyYXRvcihWTSogdm0pCiBzdGF0aWMgdm9p
ZCBzbG93UGF0aEZvcigKICAgICBDQ2FsbEhlbHBlcnMmIGppdCwgVk0qIHZtLCBQX0pJVE9wZXJh
dGlvbl9FIHNsb3dQYXRoRnVuY3Rpb24pCiB7Ci0gICAgaml0LnByZXNlcnZlUmV0dXJuQWRkcmVz
c0FmdGVyQ2FsbChHUFJJbmZvOjpub25BcmdHUFIyKTsKLSAgICBlbWl0UG9pbnRlclZhbGlkYXRp
b24oaml0LCBHUFJJbmZvOjpub25BcmdHUFIyKTsKLSAgICBqaXQuZW1pdFB1dFJldHVyblBDVG9D
YWxsRnJhbWVIZWFkZXIoR1BSSW5mbzo6bm9uQXJnR1BSMik7CisgICAgaml0LmVtaXRGdW5jdGlv
blByb2xvZ3VlKCk7CiAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
LCAmdm0tPnRvcENhbGxGcmFtZSk7CisgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsKQorICAgICAgICBqaXQuYWRkUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKC1tYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVn
aXN0ZXIpOwogICAgIGppdC5zZXR1cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOwogICAgIGppdC5tb3Zl
KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KHNsb3dQYXRo
RnVuY3Rpb24pKSwgR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAgICAgZW1pdFBvaW50ZXJWYWxpZGF0
aW9uKGppdCwgR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAgICAgaml0LmNhbGwoR1BSSW5mbzo6bm9u
QXJnR1BSMCk7CisgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAg
ICBqaXQuYWRkUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9y
U2xvd1BhdGhDYWxsKSwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAg
CiAgICAgLy8gVGhpcyBzbG93IGNhbGwgd2lsbCByZXR1cm4gdGhlIGFkZHJlc3Mgb2Ygb25lIG9m
IHRoZSBmb2xsb3dpbmc6CiAgICAgLy8gMSkgRXhjZXB0aW9uIHRocm93aW5nIHRodW5rLgogICAg
IC8vIDIpIEhvc3QgY2FsbCByZXR1cm4gdmFsdWUgcmV0dXJuZXIgdGhpbmd5LgogICAgIC8vIDMp
IFRoZSBmdW5jdGlvbiB0byBjYWxsLgotICAgIGppdC5lbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZy
YW1lSGVhZGVyUHRyKEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUik7Ci0gICAgaml0
LmVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bVB0cigwKSk7Ci0gICAgZW1pdFBvaW50ZXJWYWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6bm9uUHJl
c2VydmVkTm9uUmV0dXJuR1BSKTsKLSAgICBqaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVS
ZXR1cm4oR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKICAgICBlbWl0UG9pbnRl
clZhbGlkYXRpb24oaml0LCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgaml0LmVtaXRG
dW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgaml0Lmp1bXAoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIp
OwogfQogCiBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtGb3JUaHVua0dlbmVyYXRv
cigKLSAgICBWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKKyAgICBWTSogdm0s
IENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJl
Z2lzdGVycykKIHsKICAgICAvLyBUaGUgcmV0dXJuIGFkZHJlc3MgaXMgb24gdGhlIHN0YWNrIG9y
IGluIHRoZSBsaW5rIHJlZ2lzdGVyLiBXZSB3aWxsIGhlbmNlCiAgICAgLy8gc2F2ZSB0aGUgcmV0
dXJuIGFkZHJlc3MgdG8gdGhlIGNhbGwgZnJhbWUgd2hpbGUgd2UgbWFrZSBhIEMrKyBmdW5jdGlv
biBjYWxsCkBAIC0xMTQsMzggKzExMSw1OSBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IGxpbmtGb3JUaHVua0dlbmVyYXRvcigKICAgICAKICAgICBDQ2FsbEhlbHBlcnMgaml0KHZtKTsK
ICAgICAKLSAgICBzbG93UGF0aEZvcihqaXQsIHZtLCBraW5kID09IENvZGVGb3JDYWxsID8gb3Bl
cmF0aW9uTGlua0NhbGwgOiBvcGVyYXRpb25MaW5rQ29uc3RydWN0KTsKKyAgICBzbG93UGF0aEZv
cihqaXQsIHZtLCBvcGVyYXRpb25MaW5rRm9yKGtpbmQsIHJlZ2lzdGVycykpOwogICAgIAogICAg
IExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0LCBHTE9CQUxfVEhVTktfSUQpOwogICAg
IHJldHVybiBGSU5BTElaRV9DT0RFKAogICAgICAgICBwYXRjaEJ1ZmZlciwKLSAgICAgICAgKCJM
aW5rICVzIHNsb3cgcGF0aCB0aHVuayIsIGtpbmQgPT0gQ29kZUZvckNhbGwgPyAiY2FsbCIgOiAi
Y29uc3RydWN0IikpOworICAgICAgICAoIkxpbmsgJXMlcyBzbG93IHBhdGggdGh1bmsiLCBraW5k
ID09IENvZGVGb3JDYWxsID8gImNhbGwiIDogImNvbnN0cnVjdCIsIHJlZ2lzdGVycyA9PSBNdXN0
UHJlc2VydmVSZWdpc3RlcnMgPyAiIHRoYXQgcHJlc2VydmVzIHJlZ2lzdGVycyIgOiAiIikpOwog
fQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NhbGxUaHVua0dlbmVyYXRvcihWTSogdm0p
CiB7Ci0gICAgcmV0dXJuIGxpbmtGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNhbGwpOwor
ICAgIHJldHVybiBsaW5rRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxsLCBSZWdpc3Rl
clByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxp
bmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcihWTSogdm0pCiB7Ci0gICAgcmV0dXJuIGxpbmtGb3JU
aHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNvbnN0cnVjdCk7CisgICAgcmV0dXJuIGxpbmtGb3JU
aHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNvbnN0cnVjdCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25O
b3RSZXF1aXJlZCk7CiB9CiAKLS8vIEZvciBjbG9zdXJlIG9wdGltaXphdGlvbnMsIHdlIG9ubHkg
aW5jbHVkZSBjYWxscywgc2luY2UgaWYgeW91J3JlIHVzaW5nIGNsb3N1cmVzIGZvcgotLy8gb2Jq
ZWN0IGNvbnN0cnVjdGlvbiB0aGVuIHlvdSdyZSBnb2luZyB0byBsb3NlIGJpZyB0aW1lIGFueXdh
eS4KLU1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRvcihW
TSogdm0pCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NhbGxUaGF0UHJlc2VydmVzUmVnc1Ro
dW5rR2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4gbGlua0ZvclRodW5rR2VuZXJhdG9y
KHZtLCBDb2RlRm9yQ2FsbCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKK30KKworTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIGxpbmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9y
KFZNKiB2bSkKK3sKKyAgICByZXR1cm4gbGlua0ZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9y
Q29uc3RydWN0LCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworfQorCitzdGF0aWMgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIGxpbmtDbG9zdXJlQ2FsbEZvclRodW5rR2VuZXJhdG9yKAorICAgIFZNKiB2
bSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKIHsKICAgICBDQ2FsbEhlbHBl
cnMgaml0KHZtKTsKICAgICAKLSAgICBzbG93UGF0aEZvcihqaXQsIHZtLCBvcGVyYXRpb25MaW5r
Q2xvc3VyZUNhbGwpOworICAgIHNsb3dQYXRoRm9yKGppdCwgdm0sIG9wZXJhdGlvbkxpbmtDbG9z
dXJlQ2FsbEZvcihyZWdpc3RlcnMpKTsKICAgICAKICAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVy
KCp2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKLSAgICByZXR1cm4gRklOQUxJWkVfQ09ERShw
YXRjaEJ1ZmZlciwgKCJMaW5rIGNsb3N1cmUgY2FsbCBzbG93IHBhdGggdGh1bmsiKSk7CisgICAg
cmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgiTGluayBjbG9zdXJlIGNhbGwgJXMg
c2xvdyBwYXRoIHRodW5rIiwgcmVnaXN0ZXJzID09IE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyA/ICIg
dGhhdCBwcmVzZXJ2ZXMgcmVnaXN0ZXJzIiA6ICIiKSk7Cit9CisKKy8vIEZvciBjbG9zdXJlIG9w
dGltaXphdGlvbnMsIHdlIG9ubHkgaW5jbHVkZSBjYWxscywgc2luY2UgaWYgeW91J3JlIHVzaW5n
IGNsb3N1cmVzIGZvcgorLy8gb2JqZWN0IGNvbnN0cnVjdGlvbiB0aGVuIHlvdSdyZSBnb2luZyB0
byBsb3NlIGJpZyB0aW1lIGFueXdheS4KK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2xvc3Vy
ZUNhbGxUaHVua0dlbmVyYXRvcihWTSogdm0pCit7CisgICAgcmV0dXJuIGxpbmtDbG9zdXJlQ2Fs
bEZvclRodW5rR2VuZXJhdG9yKHZtLCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsK
K30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDbG9zdXJlQ2FsbFRoYXRQcmVzZXJ2ZXNS
ZWdzVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQoreworICAgIHJldHVybiBsaW5rQ2xvc3VyZUNhbGxG
b3JUaHVua0dlbmVyYXRvcih2bSwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKIH0KIAogc3RhdGlj
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsRm9yVGh1bmtHZW5lcmF0b3IoCi0gICAgVk0q
IHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCisgICAgVk0qIHZtLCBDb2RlU3BlY2lh
bGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCiB7
CiAgICAgLy8gVGhlIGNhbGxlZSBpcyBpbiByZWdUMCAoZm9yIEpTVkFMVUUzMl82NCwgdGhlIHRh
ZyBpcyBpbiByZWdUMSkuCiAgICAgLy8gVGhlIHJldHVybiBhZGRyZXNzIGlzIG9uIHRoZSBzdGFj
aywgb3IgaW4gdGhlIGxpbmsgcmVnaXN0ZXIuIFdlIHdpbGwgaGVuY2UKQEAgLTE2MCwzMyArMTc4
LDM0IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbEZvclRodW5rR2VuZXJh
dG9yKAogICAgIC8vIHRoZSBERkcga25vd3MgdGhhdCB0aGUgdmFsdWUgaXMgZGVmaW5pdGVseSBh
IGNlbGwsIG9yIGRlZmluaXRlbHkgYSBmdW5jdGlvbi4KICAgICAKICNpZiBVU0UoSlNWQUxVRTY0
KQorICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0KFRhZ01hc2spLCBHUFJJ
bmZvOjpyZWdUMik7CisgICAgCiAgICAgc2xvd0Nhc2UuYXBwZW5kKAogICAgICAgICBqaXQuYnJh
bmNoVGVzdDY0KAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpOb25aZXJvLCBHUFJJbmZvOjpy
ZWdUMCwgR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKSk7CisgICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6Ok5vblplcm8sIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMikpOwogI2Vsc2UKICAg
ICBzbG93Q2FzZS5hcHBlbmQoCiAgICAgICAgIGppdC5icmFuY2gzMigKICAgICAgICAgICAgIEND
YWxsSGVscGVyczo6Tm90RXF1YWwsIEdQUkluZm86OnJlZ1QxLAogICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpKTsKICNlbmRpZgotICAgIGpp
dC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgSlNDZWxsOjpz
dHJ1Y3R1cmVPZmZzZXQoKSksIEdQUkluZm86Om5vbkFyZ0dQUjIpOworICAgIGppdC5sb2FkUHRy
KENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgSlNDZWxsOjpzdHJ1Y3R1cmVP
ZmZzZXQoKSksIEdQUkluZm86OnJlZ1QyKTsKICAgICBzbG93Q2FzZS5hcHBlbmQoCiAgICAgICAg
IGppdC5icmFuY2hQdHIoCiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLAotICAg
ICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86Om5vbkFyZ0dQUjIsIFN0cnVj
dHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLAorICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKEdQUkluZm86OnJlZ1QyLCBTdHJ1Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgpKSwKICAgICAg
ICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihKU0Z1bmN0aW9uOjppbmZvKCkpKSk7
CiAgICAgCiAgICAgLy8gTm93IHdlIGtub3cgd2UgaGF2ZSBhIEpTRnVuY3Rpb24uCiAgICAgCiAg
ICAgaml0LmxvYWRQdHIoCiAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpy
ZWdUMCwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLAotICAgICAgICBHUFJJbmZv
Ojpub25BcmdHUFIyKTsKLSAgICBzbG93Q2FzZS5hcHBlbmQoCi0gICAgICAgIGppdC5icmFuY2gz
MigKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6TGVzc1RoYW4sCi0gICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MoCi0gICAgICAgICAgICAgICAgR1BSSW5mbzo6bm9uQXJnR1BSMiwg
RXhlY3V0YWJsZUJhc2U6Om9mZnNldE9mTnVtUGFyYW1ldGVyc0ZvcihraW5kKSksCi0gICAgICAg
ICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSkpOworICAgICAgICBHUFJJbmZvOjpy
ZWdUMik7CisgICAgaml0LmxvYWRQdHIoCisgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcygK
KyAgICAgICAgICAgIEdQUkluZm86OnJlZ1QyLCBFeGVjdXRhYmxlQmFzZTo6b2Zmc2V0T2ZKSVRD
b2RlV2l0aEFyaXR5Q2hlY2tGb3Ioa2luZCwgcmVnaXN0ZXJzKSksCisgICAgICAgIEdQUkluZm86
OnJlZ1QyKTsKKyAgICBzbG93Q2FzZS5hcHBlbmQoaml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxw
ZXJzOjpaZXJvLCBHUFJJbmZvOjpyZWdUMikpOwogICAgIAogICAgIC8vIE5vdyB3ZSBrbm93IHRo
YXQgd2UgaGF2ZSBhIENvZGVCbG9jaywgYW5kIHdlJ3JlIGNvbW1pdHRlZCB0byBtYWtpbmcgYSBm
YXN0CiAgICAgLy8gY2FsbC4KQEAgLTE5NSw2MiArMjE0LDYwIEBAIHN0YXRpYyBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgdmlydHVhbEZvclRodW5rR2VuZXJhdG9yKAogICAgICAgICBDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIEpTRnVuY3Rpb246Om9mZnNldE9mU2NvcGVDaGFp
bigpKSwKICAgICAgICAgR1BSSW5mbzo6cmVnVDEpOwogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAg
aml0LnN0b3JlNjQoCi0gICAgICAgIEdQUkluZm86OnJlZ1QxLAotICAgICAgICBDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoCi0gICAgICAgICAgICBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwKLSAg
ICAgICAgICAgIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKiBKU1N0
YWNrOjpTY29wZUNoYWluKSk7CisgICAgaml0LmVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlckJlZm9y
ZVByb2xvZ3VlKEdQUkluZm86OnJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKICNlbHNlCi0g
ICAgaml0LnN0b3JlUHRyKAotICAgICAgICBHUFJJbmZvOjpyZWdUMSwKLSAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKAotICAgICAgICAgICAgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIs
Ci0gICAgICAgICAgICBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpICog
SlNTdGFjazo6U2NvcGVDaGFpbiArCi0gICAgICAgICAgICBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2Rl
ZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQpKSk7Ci0gICAgaml0LnN0b3JlMzIoCi0g
ICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAotICAg
ICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoCi0gICAgICAgICAgICBHUFJJbmZvOjpjYWxsRnJh
bWVSZWdpc3RlciwKLSAgICAgICAgICAgIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJl
Z2lzdGVyKSkgKiBKU1N0YWNrOjpTY29wZUNoYWluICsKLSAgICAgICAgICAgIE9CSkVDVF9PRkZT
RVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSkpOworICAgIGppdC5lbWl0
UHV0UGF5bG9hZFRvQ2FsbEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUoR1BSSW5mbzo6cmVnVDEs
IEpTU3RhY2s6OlNjb3BlQ2hhaW4pOworICAgIGppdC5lbWl0UHV0VGFnVG9DYWxsRnJhbWVIZWFk
ZXJCZWZvcmVQcm9sb2d1ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxs
VGFnKSwKKyAgICAgICAgSlNTdGFjazo6U2NvcGVDaGFpbik7CiAjZW5kaWYKICAgICAKLSAgICBq
aXQubG9hZFB0cigKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86Om5vbkFy
Z0dQUjIsIEV4ZWN1dGFibGVCYXNlOjpvZmZzZXRPZkpJVENvZGVXaXRoQXJpdHlDaGVja0Zvcihr
aW5kKSksCi0gICAgICAgIEdQUkluZm86OnJlZ1QwKTsKLSAgICAKICAgICAvLyBNYWtlIGEgdGFp
bCBjYWxsLiBUaGlzIHdpbGwgcmV0dXJuIGJhY2sgdG8gSklUIGNvZGUuCi0gICAgZW1pdFBvaW50
ZXJWYWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6cmVnVDApOwotICAgIGppdC5qdW1wKEdQUkluZm86
OnJlZ1QwKTsKKyAgICBlbWl0UG9pbnRlclZhbGlkYXRpb24oaml0LCBHUFJJbmZvOjpyZWdUMik7
CisgICAgaml0Lmp1bXAoR1BSSW5mbzo6cmVnVDIpOwogCiAgICAgc2xvd0Nhc2UubGluaygmaml0
KTsKICAgICAKICAgICAvLyBIZXJlIHdlIGRvbid0IGtub3cgYW55dGhpbmcsIHNvIHJldmVydCB0
byB0aGUgZnVsbCBzbG93IHBhdGguCiAgICAgCi0gICAgc2xvd1BhdGhGb3Ioaml0LCB2bSwga2lu
ZCA9PSBDb2RlRm9yQ2FsbCA/IG9wZXJhdGlvblZpcnR1YWxDYWxsIDogb3BlcmF0aW9uVmlydHVh
bENvbnN0cnVjdCk7CisgICAgc2xvd1BhdGhGb3Ioaml0LCB2bSwgb3BlcmF0aW9uVmlydHVhbEZv
cihraW5kLCByZWdpc3RlcnMpKTsKICAgICAKICAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCp2
bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKICAgICByZXR1cm4gRklOQUxJWkVfQ09ERSgKICAg
ICAgICAgcGF0Y2hCdWZmZXIsCi0gICAgICAgICgiVmlydHVhbCAlcyBzbG93IHBhdGggdGh1bmsi
LCBraW5kID09IENvZGVGb3JDYWxsID8gImNhbGwiIDogImNvbnN0cnVjdCIpKTsKKyAgICAgICAg
KCJWaXJ0dWFsICVzJXMgc2xvdyBwYXRoIHRodW5rIiwga2luZCA9PSBDb2RlRm9yQ2FsbCA/ICJj
YWxsIiA6ICJjb25zdHJ1Y3QiLCByZWdpc3RlcnMgPT0gTXVzdFByZXNlcnZlUmVnaXN0ZXJzID8g
IiB0aGF0IHByZXNlcnZlcyByZWdpc3RlcnMiIDogIiIpKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogewotICAgIHJldHVybiB2
aXJ0dWFsRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxsKTsKKyAgICByZXR1cm4gdmly
dHVhbEZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ2FsbCwgUmVnaXN0ZXJQcmVzZXJ2YXRp
b25Ob3RSZXF1aXJlZCk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsQ29uc3Ry
dWN0VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogewotICAgIHJldHVybiB2aXJ0dWFsRm9yVGh1bmtH
ZW5lcmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1Y3QpOworICAgIHJldHVybiB2aXJ0dWFsRm9yVGh1
bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1Y3QsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90
UmVxdWlyZWQpOwogfQogCi1zdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdl
bmVyYXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKK01hY3JvQXNzZW1i
bGVyQ29kZVJlZiB2aXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0q
IHZtKQoreworICAgIHJldHVybiB2aXJ0dWFsRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JD
YWxsLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworfQorCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
dmlydHVhbENvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQor
eworICAgIHJldHVybiB2aXJ0dWFsRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1
Y3QsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7Cit9CisKK2VudW0gVGh1bmtFbnRyeVR5cGUgeyBF
bnRlclZpYUNhbGwsIEVudGVyVmlhSnVtcCB9OworCitzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIG5hdGl2ZUZvckdlbmVyYXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2lu
ZCwgVGh1bmtFbnRyeVR5cGUgZW50cnlUeXBlID0gRW50ZXJWaWFDYWxsKQogewogICAgIGludCBl
eGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbiA9IE5hdGl2ZUV4ZWN1dGFibGU6Om9mZnNldE9mTmF0
aXZlRnVuY3Rpb25Gb3Ioa2luZCk7CiAgICAgCiAgICAgSlNJbnRlcmZhY2VKSVQgaml0KHZtKTsK
LSAgICAKKworICAgIGlmIChlbnRyeVR5cGUgPT0gRW50ZXJWaWFDYWxsKQorICAgICAgICBqaXQu
ZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKKwogICAgIGppdC5lbWl0UHV0SW1tZWRpYXRlVG9DYWxs
RnJhbWVIZWFkZXIoMCwgSlNTdGFjazo6Q29kZUJsb2NrKTsKICAgICBqaXQuc3RvcmVQdHIoSlNJ
bnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCAmdm0tPnRvcENhbGxGcmFtZSk7CiAKQEAg
LTI2MSwyMiArMjc4LDE4IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9y
R2VuZXJhdG9yKFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBrCiAgICAgaml0LmVtaXRH
ZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OlNjb3BlQ2hhaW4sIEpTSW50ZXJmYWNl
SklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQuZW1pdFB1dENlbGxU
b0NhbGxGcmFtZUhlYWRlcihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hh
aW4pOwogCi0gICAgaml0LnBlZWsoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQuZW1p
dFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLQog
ICAgIC8vIENhbGxpbmcgY29udmVudGlvbjogICAgICBmKGVjeCwgZWR4LCAuLi4pOwogICAgIC8v
IEhvc3QgZnVuY3Rpb24gc2lnbmF0dXJlOiBmKEV4ZWNTdGF0ZSopOwogICAgIGppdC5tb3ZlKEpT
SW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjplY3gpOwogCi0g
ICAgaml0LnN1YlB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDE2IC0gc2l6ZW9mKHZv
aWQqKSksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7IC8vIEFsaWduIHN0
YWNrIGFmdGVyIGNhbGwuCisgICAgaml0LnN1YlB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZElt
bTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOyAvLyBBbGlnbiBz
dGFjayBhZnRlciBwcm9sb2d1ZS4KIAogICAgIC8vIGNhbGwgdGhlIGZ1bmN0aW9uCiAgICAgaml0
LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OkNhbGxlZSwgSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QxKTsKICAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhK
U0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwg
SlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6cmVn
VDAsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlcik7IC8vIEVhZ2VybHkgcmVzdG9y
ZSBjYWxsZXIgZnJhbWUgcmVnaXN0ZXIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrLgogICAg
IGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwg
ZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKIAotICAgIGppdC5hZGRQdHIoSlNJbnRlcmZh
Y2VKSVQ6OlRydXN0ZWRJbW0zMigxNiAtIHNpemVvZih2b2lkKikpLCBKU0ludGVyZmFjZUpJVDo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRy
dXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKIAog
I2VsaWYgQ1BVKFg4Nl82NCkKICAgICAvLyBMb2FkIGNhbGxlciBmcmFtZSdzIHNjb3BlIGNoYWlu
IGludG8gdGhpcyBjYWxsZnJhbWUgc28gdGhhdCB3aGF0ZXZlciB3ZSBjYWxsIGNhbgpAQCAtMjg0
LDIzICsyOTcsMTUgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5l
cmF0b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGsKICAgICBqaXQuZW1pdEdldENh
bGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDApOwog
ICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpTY29wZUNoYWlu
LCBKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7CiAgICAgaml0
LmVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU1N0
YWNrOjpTY29wZUNoYWluKTsKLQotICAgIGppdC5wZWVrKEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7
Ci0gICAgaml0LmVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKEpTSW50ZXJmYWNlSklU
OjpyZWdUMSk7Ci0KICNpZiAhT1MoV0lORE9XUykKICAgICAvLyBDYWxsaW5nIGNvbnZlbnRpb246
ICAgICAgZihlZGksIGVzaSwgZWR4LCBlY3gsIC4uLik7CiAgICAgLy8gSG9zdCBmdW5jdGlvbiBz
aWduYXR1cmU6IGYoRXhlY1N0YXRlKik7CiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNh
bGxGcmFtZVJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVkaSk7CiAKLSAgICBqaXQuc3ViUHRyKEpT
SW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMTYgLSBzaXplb2YoaW50NjRfdCkpLCBKU0ludGVy
ZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOyAvLyBBbGlnbiBzdGFjayBhZnRlciBjYWxs
LgotCiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OkNhbGxl
ZSwgWDg2UmVnaXN0ZXJzOjplc2kpOwogICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpB
ZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZXNpLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUo
KSksIFg4NlJlZ2lzdGVyczo6cjkpOwotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdU
MCwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJseSByZXN0b3Jl
IGNhbGxlciBmcmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2suCiAgICAg
aml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjpyOSwgZXhlY3V0
YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKIAotICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6
OlRydXN0ZWRJbW0zMigxNiAtIHNpemVvZihpbnQ2NF90KSksIEpTSW50ZXJmYWNlSklUOjpzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CiAjZWxzZQogICAgIC8vIENhbGxpbmcgY29udmVudGlvbjogICAg
ICBmKGVjeCwgZWR4LCByOCwgcjksIC4uLik7CiAgICAgLy8gSG9zdCBmdW5jdGlvbiBzaWduYXR1
cmU6IGYoRXhlY1N0YXRlKik7CkBAIC0zMTEsNyArMzE2LDYgQEAgc3RhdGljIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25L
aW5kIGsKIAogICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpD
YWxsZWUsIFg4NlJlZ2lzdGVyczo6ZWR4KTsKICAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJ
VDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVkeCwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRh
YmxlKCkpLCBYODZSZWdpc3RlcnM6OnI5KTsKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6
cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlcik7IC8vIEVhZ2VybHkgcmVz
dG9yZSBjYWxsZXIgZnJhbWUgcmVnaXN0ZXIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrLgog
ICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6cjksIGV4
ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CiAKICAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNl
SklUOjpUcnVzdGVkSW1tMzIoNCAqIHNpemVvZihpbnQ2NF90KSArIDE2IC0gc2l6ZW9mKGludDY0
X3QpKSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKQEAgLTMzMCwyOCAr
MzM0LDE4IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9y
KFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBrCiAgICAgaml0LmVtaXRHZXRGcm9tQ2Fs
bEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OlNjb3BlQ2hhaW4sIEpTSW50ZXJmYWNlSklUOjpyZWdU
MSwgQVJNNjRSZWdpc3RlcnM6OngzKTsKICAgICBqaXQuZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhl
YWRlcihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOwogCi0gICAg
aml0LnByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChKU0ludGVyZmFjZUpJVDo6cmVnVDMp
OyAvLyBDYWxsZWUgcHJlc2VydmVkCi0gICAgaml0LmVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1l
SGVhZGVyKEFSTTY0UmVnaXN0ZXJzOjpscik7Ci0KICAgICAvLyBIb3N0IGZ1bmN0aW9uIHNpZ25h
dHVyZTogZihFeGVjU3RhdGUqKTsKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIEFSTTY0UmVnaXN0ZXJzOjp4MCk7CiAKICAgICBqaXQuZW1pdEdldEZyb21D
YWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6Q2FsbGVlLCBBUk02NFJlZ2lzdGVyczo6eDEpOwog
ICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEFSTTY0UmVnaXN0ZXJzOjp4
MSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBBUk02NFJlZ2lzdGVyczo6eDIp
OwotICAgIGppdC5tb3ZlKEFSTTY0UmVnaXN0ZXJzOjp4MywgSlNJbnRlcmZhY2VKSVQ6OmNhbGxG
cmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJseSByZXN0b3JlIGNhbGxlciBmcmFtZSByZWdpc3RlciB0
byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2suCiAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6
OkFkZHJlc3MoQVJNNjRSZWdpc3RlcnM6OngyLCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikp
OwotCi0gICAgaml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEpTSW50ZXJmYWNl
SklUOjpyZWdUMyk7Ci0KICNlbGlmIENQVShBUk0pIHx8IENQVShTSDQpIHx8IENQVShNSVBTKQog
ICAgIC8vIExvYWQgY2FsbGVyIGZyYW1lJ3Mgc2NvcGUgY2hhaW4gaW50byB0aGlzIGNhbGxmcmFt
ZSBzbyB0aGF0IHdoYXRldmVyIHdlIGNhbGwgY2FuIGdldCB0byBpdHMgZ2xvYmFsIGRhdGEuCiAg
ICAgaml0LmVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QyKTsKICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNT
dGFjazo6U2NvcGVDaGFpbiwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU0ludGVyZmFjZUpJVDo6
cmVnVDIpOwogICAgIGppdC5lbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKEpTSW50ZXJmYWNl
SklUOjpyZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFpbik7CiAKLSAgICBqaXQucHJlc2VydmVSZXR1
cm5BZGRyZXNzQWZ0ZXJDYWxsKEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7IC8vIENhbGxlZSBwcmVz
ZXJ2ZWQKLSAgICBqaXQuZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QzKTsKLQogI2lmIENQVShNSVBTKQogICAgIC8vIEFsbG9jYXRlIHN0YWNrIHNw
YWNlIGZvciAodW51c2VkKSAxNiBieXRlcyAoOC1ieXRlIGFsaWduZWQpIGZvciA0IGFyZ3VtZW50
cy4KICAgICBqaXQuc3ViUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMTYpLCBKU0lu
dGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwpAQCAtMzYyLDcgKzM1Niw2IEBAIHN0
YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2bSwgQ29k
ZVNwZWNpYWxpemF0aW9uS2luZCBrCiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxG
cmFtZVJlZ2lzdGVyLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwKTsKIAogICAgIGppdC5l
bWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpDYWxsZWUsIEpTSW50ZXJmYWNl
SklUOjphcmd1bWVudEdQUjEpOwotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdUMiwg
SlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJseSByZXN0b3JlIGNh
bGxlciBmcmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2suCiAgICAgaml0
LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50
R1BSMSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBKU0ludGVyZmFjZUpJVDo6
cmVnVDIpOwogICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNl
SklUOjpyZWdUMiwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKIApAQCAtMzcwLDggKzM2
Myw2IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZN
KiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBrCiAgICAgLy8gUmVzdG9yZSBzdGFjayBzcGFj
ZQogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxNiksIEpTSW50
ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAjZW5kaWYKLQotICAgIGppdC5yZXN0
b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwogI2Vs
c2UKICNlcnJvciAiSklUIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybS4iCiAgICAgVU5V
U0VEX1BBUkFNKGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKTsKQEAgLTM4OSwyNSArMzgwLDIx
IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2
bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBrCiAgICAgICAgIEpTSW50ZXJmYWNlSklUOjpUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZykpOwogI2VuZGlmCiAKKyAgICBqaXQuZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAvLyBSZXR1cm4uCiAgICAgaml0LnJldCgpOwogCiAg
ICAgLy8gSGFuZGxlIGFuIGV4Y2VwdGlvbgogICAgIGV4Y2VwdGlvbkhhbmRsZXIubGluaygmaml0
KTsKIAotICAgIC8vIEdyYWIgdGhlIHJldHVybiBhZGRyZXNzLgotICAgIGppdC5wcmVzZXJ2ZVJl
dHVybkFkZHJlc3NBZnRlckNhbGwoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICAKLSAgICBq
aXQubW92ZShKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbVB0cigmdm0tPmV4Y2VwdGlvbkxvY2F0
aW9uKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKLSAgICBqaXQuc3RvcmVQdHIoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QxLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwotCiAgICAgaml0LnN0b3JlUHRy
KEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgJnZtLT50b3BDYWxsRnJhbWUpOwog
CiAjaWYgQ1BVKFg4NikgJiYgVVNFKEpTVkFMVUUzMl82NCkKICAgICBqaXQuYWRkUHRyKEpTSW50
ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoLTEyKSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKLSAgICBqaXQucHVzaChKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0
ZXIpOworICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNl
SklUOjpjYWxsRnJhbWVSZWdpc3RlciksIEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7CisgICAgaml0
LnB1c2goSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICNlbHNlCi0gICAgaml0Lm1vdmUoSlNJbnRl
cmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIw
KTsKKyAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJ
VDo6Y2FsbEZyYW1lUmVnaXN0ZXIpLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwKTsKICNl
bmRpZgogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tUHRyKEZ1bmN0aW9u
UHRyKG9wZXJhdGlvblZNSGFuZGxlRXhjZXB0aW9uKS52YWx1ZSgpKSwgSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QzKTsKICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwpAQCAtNDE4LDcg
KzQwNSw3IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9y
KFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBrCiAgICAgaml0Lmp1bXBUb0V4Y2VwdGlv
bkhhbmRsZXIoKTsKIAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0LCBHTE9C
QUxfVEhVTktfSUQpOwotICAgIHJldHVybiBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIm5h
dGl2ZSAlcyB0cmFtcG9saW5lIiwgdG9DU3RyaW5nKGtpbmQpLmRhdGEoKSkpOworICAgIHJldHVy
biBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIm5hdGl2ZSAlcyVzIHRyYW1wb2xpbmUiLCBl
bnRyeVR5cGUgPT0gRW50ZXJWaWFKdW1wID8gIlRhaWwgIiA6ICIiLCB0b0NTdHJpbmcoa2luZCku
ZGF0YSgpKSk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVDYWxsR2VuZXJhdG9y
KFZNKiB2bSkKQEAgLTQyNiw2ICs0MTMsMTEgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2
ZUNhbGxHZW5lcmF0b3IoVk0qIHZtKQogICAgIHJldHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0s
IENvZGVGb3JDYWxsKTsKIH0KIAorTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZVRhaWxDYWxs
R2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZtLCBD
b2RlRm9yQ2FsbCwgRW50ZXJWaWFKdW1wKTsKK30KKwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5h
dGl2ZUNvbnN0cnVjdEdlbmVyYXRvcihWTSogdm0pCiB7CiAgICAgcmV0dXJuIG5hdGl2ZUZvckdl
bmVyYXRvcih2bSwgQ29kZUZvckNvbnN0cnVjdCk7CkBAIC00MzUsMTQgKzQyNywxNiBAQCBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgYXJpdHlGaXh1cChWTSogdm0pCiB7CiAgICAgSlNJbnRlcmZhY2VK
SVQgaml0KHZtKTsKIAotICAgIC8vIFdlIGVudGVyIHdpdGggZml4dXAgY291bnQgaW4gcmVnVDAK
KyAgICAvLyBXZSBlbnRlciB3aXRoIGZpeHVwIGNvdW50LCBpbiBhbGlnbmVkIHN0YWNrIHVuaXRz
LCBpbiByZWdUMCBhbmQgdGhlIHJldHVybiB0aHVuayBpbgorICAgIC8vIHJlZ1Q1LiBXZSB1c2Ug
Vk06OmN1cnJlbnRSZXR1cm5UaHVua1BDIGluc3RlYWQgb2YgcmVnVDUgb24gWDg2LTMyLgogI2lm
IFVTRShKU1ZBTFVFNjQpCiAjICBpZiBDUFUoWDg2XzY0KQogICAgIGppdC5wb3AoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1Q0KTsKICMgIGVuZGlmCisgICAgaml0LmxzaGlmdDMyKEpTSW50ZXJmYWNlSklU
OjpUcnVzdGVkSW1tMzIobG9nU3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSksIEpTSW50ZXJmYWNl
SklUOjpyZWdUMCk7CiAgICAgaml0Lm5lZzY0KEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7CiAgICAg
aml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU0ludGVyZmFjZUpJ
VDo6cmVnVDMpOwotICAgIGppdC5sb2FkMzIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRl
cmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU1N0YWNrOjpBcmd1bWVudENvdW50ICogOCks
IEpTSW50ZXJmYWNlSklUOjpyZWdUMik7CisgICAgaml0LmxvYWQzMihKU0ludGVyZmFjZUpJVDo6
QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3Vt
ZW50Q291bnQgKiBzaXplb2YoUmVnaXN0ZXIpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKICAg
ICBqaXQuYWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMihKU1N0YWNrOjpDYWxsRnJh
bWVIZWFkZXJTaXplKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKIAogICAgIC8vIE1vdmUgY3Vy
cmVudCBmcmFtZSBkb3duIHJlZ1QwIG51bWJlciBvZiBzbG90cwpAQCAtNDUyLDE3ICs0NDYsMjcg
QEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5Rml4dXAoVk0qIHZtKQogICAgIGppdC5hZGRQ
dHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qz
KTsKICAgICBqaXQuYnJhbmNoU3ViMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIEpTSW50ZXJm
YWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMikubGlua1RvKGNv
cHlMb29wLCAmaml0KTsKIAotICAgIC8vIEZpbGwgaW4gcmVnVDAgbWlzc2luZyBhcmcgc2xvdHMg
d2l0aCB1bmRlZmluZWQKKyAgICAvLyBGaWxsIGluIHJlZ1QwIC0gMSBtaXNzaW5nIGFyZyBzbG90
cyB3aXRoIHVuZGVmaW5lZAogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QyKTsKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6VHJ1c3Rl
ZEltbTY0KFZhbHVlVW5kZWZpbmVkKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKKyAgICBqaXQu
YWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QyKTsKICAgICBKU0ludGVyZmFjZUpJVDo6TGFiZWwgZmlsbFVuZGVmaW5lZExvb3Aoaml0Lmxh
YmVsKCkpOwogICAgIGppdC5zdG9yZTY0KEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgTWFjcm9Bc3Nl
bWJsZXI6OkJhc2VJbmRleChKU0ludGVyZmFjZUpJVDo6cmVnVDMsIEpTSW50ZXJmYWNlSklUOjpy
ZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQpKTsKICAgICBqaXQuYWRkUHRyKEpTSW50
ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoOCksIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7CiAgICAg
aml0LmJyYW5jaEFkZDMyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCBKU0ludGVyZmFjZUpJVDo6
VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpLmxpbmtUbyhmaWxsVW5kZWZp
bmVkTG9vcCwgJmppdCk7Ci0KLSAgICAvLyBBZGp1c3QgY2FsbCBmcmFtZSByZWdpc3RlciB0byBh
Y2NvdW50IGZvciBtaXNzaW5nIGFyZ3MKLSAgICBqaXQubHNoaWZ0NjQoSlNJbnRlcmZhY2VKSVQ6
OlRydXN0ZWRJbW0zMigzKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKLSAgICBqaXQuYWRkUHRy
KEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVy
KTsKKyAgICAKKyAgICAvLyBBZGp1c3QgY2FsbCBmcmFtZSByZWdpc3RlciBhbmQgc3RhY2sgcG9p
bnRlciB0byBhY2NvdW50IGZvciBtaXNzaW5nIGFyZ3MKKyAgICBqaXQubW92ZShKU0ludGVyZmFj
ZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7CisgICAgaml0LmxzaGlmdDY0KEpT
SW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMyksIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Cisg
ICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklUOjpjYWxs
RnJhbWVSZWdpc3Rlcik7CisgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpT
SW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisKKyAgICAvLyBTYXZlIHRoZSBv
cmlnaW5hbCByZXR1cm4gUEMuCisgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJl
c3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBD
T2Zmc2V0KCkpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJl
Z1QxLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCkpOworICAgIAor
ICAgIC8vIEluc3RhbGwgdGhlIG5ldyByZXR1cm4gUEMuCisgICAgaml0LnN0b3JlUHRyKEdQUklu
Zm86OnJlZ1Q1LCBKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOwogCiAjICBpZiBDUFUo
WDg2XzY0KQogICAgIGppdC5wdXNoKEpTSW50ZXJmYWNlSklUOjpyZWdUNCk7CkBAIC00NzIsOSAr
NDc2LDEwIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcml0eUZpeHVwKFZNKiB2bSkKICMgIGlm
IENQVShYODYpCiAgICAgaml0LnBvcChKU0ludGVyZmFjZUpJVDo6cmVnVDQpOwogIyAgZW5kaWYK
KyAgICBqaXQubHNoaWZ0MzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMihsb2dTdGFja0Fs
aWdubWVudFJlZ2lzdGVycygpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQubmVn
MzIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6
Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7Ci0gICAgaml0LmxvYWQz
MihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiA4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsK
KyAgICBqaXQubG9hZDMyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpj
YWxsRnJhbWVSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHNpemVvZihSZWdpc3Rl
cikpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwogICAgIGppdC5hZGQzMihKU0ludGVyZmFjZUpJ
VDo6VHJ1c3RlZEltbTMyKEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpLCBKU0ludGVyZmFj
ZUpJVDo6cmVnVDIpOwogCiAgICAgLy8gTW92ZSBjdXJyZW50IGZyYW1lIGRvd24gcmVnVDAgbnVt
YmVyIG9mIHNsb3RzCkBAIC00ODYsOCArNDkxLDkgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFy
aXR5Rml4dXAoVk0qIHZtKQogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJ
bW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKICAgICBqaXQuYnJhbmNoU3ViMzIoTWFj
cm9Bc3NlbWJsZXI6Ok5vblplcm8sIEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpT
SW50ZXJmYWNlSklUOjpyZWdUMikubGlua1RvKGNvcHlMb29wLCAmaml0KTsKIAotICAgIC8vIEZp
bGwgaW4gcmVnVDAgbWlzc2luZyBhcmcgc2xvdHMgd2l0aCB1bmRlZmluZWQKKyAgICAvLyBGaWxs
IGluIHJlZ1QwIC0gMSBtaXNzaW5nIGFyZyBzbG90cyB3aXRoIHVuZGVmaW5lZAogICAgIGppdC5t
b3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKKyAgICBq
aXQuYWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QyKTsKICAgICBKU0ludGVyZmFjZUpJVDo6TGFiZWwgZmlsbFVuZGVmaW5lZExvb3Aoaml0
LmxhYmVsKCkpOwogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMCks
IEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7CiAgICAgaml0LnN0b3JlMzIoSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QxLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUMywg
SlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCkpOwpAQCAt
NDk3LDEwICs1MDMsMjUgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5Rml4dXAoVk0qIHZt
KQogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QzKTsKICAgICBqaXQuYnJhbmNoQWRkMzIoTWFjcm9Bc3NlbWJsZXI6Ok5v
blplcm8sIEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNlSklUOjpy
ZWdUMikubGlua1RvKGZpbGxVbmRlZmluZWRMb29wLCAmaml0KTsKIAotICAgIC8vIEFkanVzdCBj
YWxsIGZyYW1lIHJlZ2lzdGVyIHRvIGFjY291bnQgZm9yIG1pc3NpbmcgYXJncwotICAgIGppdC5s
c2hpZnQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDMpLCBKU0ludGVyZmFjZUpJVDo6
cmVnVDApOwotICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFj
ZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIC8vIEFkanVzdCBjYWxsIGZyYW1lIHJlZ2lz
dGVyIGFuZCBzdGFjayBwb2ludGVyIHRvIGFjY291bnQgZm9yIG1pc3NpbmcgYXJncworICAgIGpp
dC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKKyAg
ICBqaXQubHNoaWZ0MzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigzKSwgSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QxKTsKKyAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJ
bnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICBqaXQuYWRkUHRyKEpTSW50ZXJm
YWNlSklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKIAor
ICAgIC8vIFNhdmUgdGhlIG9yaWdpbmFsIHJldHVybiBQQy4KKyAgICBqaXQubG9hZFB0cihKU0lu
dGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENh
bGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSksIEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQuc3Rv
cmVQdHIoR1BSSW5mbzo6cmVnVDEsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QzLCBKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1l
c0VpZ2h0KSk7CisgICAgCisgICAgLy8gSW5zdGFsbCB0aGUgbmV3IHJldHVybiBQQy4KKyAgICAv
LyBGSVhNRTogSSBkb24ndCB0aGluayBjdXJyZW50UmV0dXJuVGh1bmtQQyBpcyB1c2VkIGFuZCBz
aG91bGQgYmUgZGVsZXRlZC4KKyMgIGlmIDAKKyAgICBqaXQubG9hZFB0cigmdm0tPmN1cnJlbnRS
ZXR1cm5UaHVua1BDLCBHUFJJbmZvOjpyZWdUMik7CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86
OnJlZ1QyLCBKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOworIyAgIGVsc2UKKyAgICBq
aXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDUsIEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50
ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgp
KSk7CisjICAgZW5kaWYKKyAgICAKICMgIGlmIENQVShYODYpCiAgICAgaml0LnB1c2goSlNJbnRl
cmZhY2VKSVQ6OnJlZ1Q0KTsKICMgIGVuZGlmCkBAIC01NTQsNyArNTc1LDcgQEAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIGNoYXJDb2RlQXRUaHVua0dlbmVyYXRvcihWTSogdm0pCiAgICAgU3BlY2lh
bGl6ZWRUaHVua0pJVCBqaXQodm0sIDEpOwogICAgIHN0cmluZ0NoYXJMb2FkKGppdCwgdm0pOwog
ICAgIGppdC5yZXR1cm5JbnQzMihTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7Ci0gICAgcmV0
dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiY2hhckNv
ZGVBdCIpOworICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVU
YWlsQ2FsbCh2bSksICJjaGFyQ29kZUF0Iik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBj
aGFyQXRUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC01NjMsNyArNTg0LDcgQEAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIGNoYXJBdFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKICAgICBzdHJpbmdDaGFy
TG9hZChqaXQsIHZtKTsKICAgICBjaGFyVG9TdHJpbmcoaml0LCB2bSwgU3BlY2lhbGl6ZWRUaHVu
a0pJVDo6cmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwLCBTcGVjaWFsaXplZFRodW5r
SklUOjpyZWdUMSk7CiAgICAgaml0LnJldHVybkpTQ2VsbChTcGVjaWFsaXplZFRodW5rSklUOjpy
ZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNh
bGwodm0pLCAiY2hhckF0Iik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMt
PmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImNoYXJBdCIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgZnJvbUNoYXJDb2RlVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtNTczLDcgKzU5NCw3
IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBmcm9tQ2hhckNvZGVUaHVua0dlbmVyYXRvcihWTSog
dm0pCiAgICAgaml0LmxvYWRJbnQzMkFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJl
Z1QwKTsKICAgICBjaGFyVG9TdHJpbmcoaml0LCB2bSwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVn
VDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdU
MSk7CiAgICAgaml0LnJldHVybkpTQ2VsbChTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7Ci0g
ICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAi
ZnJvbUNoYXJDb2RlIik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0
aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImZyb21DaGFyQ29kZSIpOwogfQogCiBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgc3FydFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAgLTU4NSw3ICs2MDYsNyBAQCBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgc3FydFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKICAgICBqaXQu
bG9hZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNp
YWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKICAgICBqaXQuc3FydERvdWJsZShTcGVjaWFsaXplZFRo
dW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwKTsKICAgICBqaXQu
cmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwotICAgIHJldHVybiBq
aXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgInNxcnQiKTsKKyAg
ICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0p
LCAic3FydCIpOwogfQogCiAKQEAgLTYxMSw3ICs2MzIsOSBAQCBkb3VibGUganNSb3VuZChkb3Vi
bGUgZCkKICAgICAgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24jI1RodW5rKSAi
XG4iIFwKICAgICAgICAgSElERV9TWU1CT0woZnVuY3Rpb24jI1RodW5rKSAiXG4iIFwKICAgICAg
ICAgU1lNQk9MX1NUUklORyhmdW5jdGlvbiMjVGh1bmspICI6IiAiXG4iIFwKKyAgICAgICAgInB1
c2hxICVyYXhcbiIgXAogICAgICAgICAiY2FsbCAiIEdMT0JBTF9SRUZFUkVOQ0UoZnVuY3Rpb24p
ICJcbiIgXAorICAgICAgICAicG9wcSAlcmN4XG4iIFwKICAgICAgICAgInJldFxuIiBcCiAgICAg
KTtcCiAgICAgZXh0ZXJuICJDIiB7IFwKQEAgLTYyNiwxMiArNjQ5LDEyIEBAIGRvdWJsZSBqc1Jv
dW5kKGRvdWJsZSBkKQogICAgICAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhmdW5jdGlvbiMj
VGh1bmspICJcbiIgXAogICAgICAgICBISURFX1NZTUJPTChmdW5jdGlvbiMjVGh1bmspICJcbiIg
XAogICAgICAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uIyNUaHVuaykgIjoiICJcbiIgXAotICAg
ICAgICAic3VibCAkOCwgJWVzcFxuIiBcCisgICAgICAgICJzdWJsICQyMCwgJWVzcFxuIiBcCiAg
ICAgICAgICJtb3ZzZCAleG1tMCwgKCVlc3ApIFxuIiBcCiAgICAgICAgICJjYWxsICIgR0xPQkFM
X1JFRkVSRU5DRShmdW5jdGlvbikgIlxuIiBcCiAgICAgICAgICJmc3RwbCAoJWVzcCkgXG4iIFwK
ICAgICAgICAgIm1vdnNkICglZXNwKSwgJXhtbTAgXG4iIFwKLSAgICAgICAgImFkZGwgJDgsICVl
c3BcbiIgXAorICAgICAgICAiYWRkbCAkMjAsICVlc3BcbiIgXAogICAgICAgICAicmV0XG4iIFwK
ICAgICApO1wKICAgICBleHRlcm4gIkMiIHsgXApAQCAtNzMzLDcgKzc1Niw3IEBAIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBmbG9vclRodW5rR2VuZXJhdG9yKFZNKiB2bSkKICAgICBkb3VibGVSZXN1
bHQubGluaygmaml0KTsKICAgICBqaXQucmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6
OmZwUmVnVDApOwogI2VuZGlmIC8vIENQVShBUk02NCkKLSAgICByZXR1cm4gaml0LmZpbmFsaXpl
KHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJmbG9vciIpOworICAgIHJldHVybiBq
aXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJmbG9vciIp
OwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2VpbFRodW5rR2VuZXJhdG9yKFZNKiB2bSkK
QEAgLTc1Niw3ICs3NzksNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2VpbFRodW5rR2VuZXJh
dG9yKFZNKiB2bSkKICAgICBqaXQucmV0dXJuSW50MzIoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVn
VDApOwogICAgIGRvdWJsZVJlc3VsdC5saW5rKCZqaXQpOwogICAgIGppdC5yZXR1cm5Eb3VibGUo
U3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2
bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiY2VpbCIpOworICAgIHJldHVybiBqaXQu
ZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJjZWlsIik7CiB9
CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiByb3VuZFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAg
LTc5MCw3ICs4MTMsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcm91bmRUaHVua0dlbmVyYXRv
cihWTSogdm0pCiAgICAgaml0LnJldHVybkludDMyKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1Qw
KTsKICAgICBkb3VibGVSZXN1bHQubGluaygmaml0KTsKICAgICBqaXQucmV0dXJuRG91YmxlKFNw
ZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwotICAgIHJldHVybiBqaXQuZmluYWxpemUodm0t
PmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgInJvdW5kIik7CisgICAgcmV0dXJuIGppdC5m
aW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgInJvdW5kIik7CiB9
CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBleHBUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC04
MDMsNyArODI2LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGV4cFRodW5rR2VuZXJhdG9yKFZN
KiB2bSkKICAgICBqaXQubG9hZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6
OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKICAgICBqaXQuY2FsbERvdWJs
ZVRvRG91YmxlUHJlc2VydmluZ1JldHVybihVbmFyeURvdWJsZU9wV3JhcHBlcihleHApKTsKICAg
ICBqaXQucmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwotICAgIHJl
dHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImV4cCIp
OworICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2Fs
bCh2bSksICJleHAiKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxvZ1RodW5rR2VuZXJh
dG9yKFZNKiB2bSkKQEAgLTgxNiw3ICs4MzksNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbG9n
VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogICAgIGppdC5sb2FkRG91YmxlQXJndW1lbnQoMCwgU3Bl
Y2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwog
ICAgIGppdC5jYWxsRG91YmxlVG9Eb3VibGVQcmVzZXJ2aW5nUmV0dXJuKFVuYXJ5RG91YmxlT3BX
cmFwcGVyKGxvZykpOwogICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6
ZnBSZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2
ZUNhbGwodm0pLCAibG9nIik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMt
PmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImxvZyIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgYWJzVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtODM2LDcgKzg1OSw3IEBAIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBhYnNUaHVua0dlbmVyYXRvcihWTSogdm0pCiAgICAgaml0LmxvYWREb3Vi
bGVBcmd1bWVudCgwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRo
dW5rSklUOjpyZWdUMCk7CiAgICAgaml0LmFic0RvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpm
cFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QxKTsKICAgICBqaXQucmV0dXJuRG91
YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEpOwotICAgIHJldHVybiBqaXQuZmluYWxp
emUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImFicyIpOworICAgIHJldHVybiBq
aXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJhYnMiKTsK
IH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHBvd1RodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAg
LTg4OCw3ICs5MTEsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcG93VGh1bmtHZW5lcmF0b3Io
Vk0qIHZtKQogICAgIH0gZWxzZQogICAgICAgICBqaXQuYXBwZW5kRmFpbHVyZShub25JbnRFeHBv
bmVudCk7CiAKLSAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZl
Q2FsbCh2bSksICJwb3ciKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+
Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAicG93Iik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZiBpbXVsVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtOTIxLDcgKzk0NCw3IEBAIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBpbXVsVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogICAgIH0gZWxzZQogICAg
ICAgICBqaXQuYXBwZW5kRmFpbHVyZShub25JbnRBcmcxSnVtcCk7CiAKLSAgICByZXR1cm4gaml0
LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJpbXVsIik7CisgICAg
cmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwg
ImltdWwiKTsKIH0KIAogc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcnJheUl0ZXJhdG9y
TmV4dFRodW5rR2VuZXJhdG9yKFZNKiB2bSwgQXJyYXlJdGVyYXRpb25LaW5kIGtpbmQpCkBAIC05
NjEsNyArOTg0LDcgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcnJheUl0ZXJhdG9y
TmV4dFRodW5rR2VuZXJhdG9yKFZNKiB2bSwgQXJyYXlJdGVyYXQKICAgICBpZiAoa2luZCA9PSBB
cnJheUl0ZXJhdGVLZXkpIHsKICAgICAgICAgaml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgQWRk
cmVzcyhTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUNCwgSlNBcnJheUl0ZXJhdG9yOjpvZmZzZXRP
Zk5leHRJbmRleCgpKSk7CiAgICAgICAgIGppdC5yZXR1cm5JbnQzMihTcGVjaWFsaXplZFRodW5r
SklUOjpyZWdUMSk7Ci0gICAgICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5j
dGlOYXRpdmVDYWxsKHZtKSwgImFycmF5LWl0ZXJhdG9yLW5leHQta2V5Iik7CisgICAgICAgIHJl
dHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJh
cnJheS1pdGVyYXRvci1uZXh0LWtleSIpOwogICAgICAgICAKICAgICB9CiAgICAgQVNTRVJUKGtp
bmQgPT0gQXJyYXlJdGVyYXRlVmFsdWUpOwpAQCAtMTAxMiw3ICsxMDM1LDcgQEAgc3RhdGljIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBhcnJheUl0ZXJhdG9yTmV4dFRodW5rR2VuZXJhdG9yKFZNKiB2
bSwgQXJyYXlJdGVyYXQKICAgICBqaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBBZGRyZXNzKFNw
ZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1Q0LCBKU0FycmF5SXRlcmF0b3I6Om9mZnNldE9mTmV4dElu
ZGV4KCkpKTsKICAgICBqaXQucmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVn
VDApOwogICAgIAotICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRp
dmVDYWxsKHZtKSwgImFycmF5LWl0ZXJhdG9yLW5leHQtdmFsdWUiKTsKKyAgICByZXR1cm4gaml0
LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAiYXJyYXktaXRl
cmF0b3ItbmV4dC12YWx1ZSIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJyYXlJdGVy
YXRvck5leHRLZXlUaHVua0dlbmVyYXRvcihWTSogdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9UaHVua0dlbmVyYXRvcnMuaAppbmRleCAwZTI3NjI4OTA4YzJmNzE2ZjIxZjBhZDZlYzA2
NmQzNTgyY2I2ZDU0Li5jMzVhMmY1NDc5OWNjOGE2YTQ0OGRmZWFmMTFiNWVmM2FmZGVjMDg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmgKQEAgLTI2LDYg
KzI2LDggQEAKICNpZm5kZWYgVGh1bmtHZW5lcmF0b3JzX2gKICNkZWZpbmUgVGh1bmtHZW5lcmF0
b3JzX2gKIAorI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKKyNpbmNsdWRlICJS
ZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaCIKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvci5oIgog
CiAjaWYgRU5BQkxFKEpJVCkKQEAgLTM1LDE0ICszNyw4MiBAQCBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgdGhyb3dFeGNlcHRpb25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9yKFZNKik7CiAKIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgbGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKFZNKik7CitNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgbGlua0NhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKFZNKik7
CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1
bmtHZW5lcmF0b3IoVk0qKTsKKworaW5saW5lIFRodW5rR2VuZXJhdG9yIGxpbmtUaHVua0dlbmVy
YXRvckZvcigKKyAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBD
b2RlRm9yQ2FsbDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBS
ZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIGxpbmtD
YWxsVGh1bmtHZW5lcmF0b3I7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgor
ICAgICAgICAgICAgcmV0dXJuIGxpbmtDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRv
cjsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIENvZGVGb3JDb25zdHJ1Y3Q6
CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgIHJldHVybiBsaW5rQ29uc3RydWN0VGh1
bmtHZW5lcmF0b3I7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAg
ICAgICAgcmV0dXJuIGxpbmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9y
OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
bGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IoVk0qKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJl
ZiBsaW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKFZNKik7CisK
K2lubGluZSBUaHVua0dlbmVyYXRvciBsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRvckZvcihS
ZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQoreworICAgIHN3aXRjaCAocmVnaXN0
ZXJzKSB7CisgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAg
ICByZXR1cm4gbGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3I7CisgICAgY2FzZSBNdXN0UHJl
c2VydmVSZWdpc3RlcnM6CisgICAgICAgIHJldHVybiBsaW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2Vy
dmVzUmVnc1RodW5rR2VuZXJhdG9yOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiAwOworfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVh
bENhbGxUaHVua0dlbmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxD
b25zdHJ1Y3RUaHVua0dlbmVyYXRvcihWTSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1
YWxDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcihWTSopOworTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmIHZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9y
KFZNKik7CisKK2lubGluZSBUaHVua0dlbmVyYXRvciB2aXJ0dWFsVGh1bmtHZW5lcmF0b3JGb3Io
CisgICAgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1v
ZGUgcmVnaXN0ZXJzKQoreworICAgIHN3aXRjaCAoa2luZCkgeworICAgIGNhc2UgQ29kZUZvckNh
bGw6CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgIGNhc2UgUmVnaXN0ZXJQ
cmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgIHJldHVybiB2aXJ0dWFsQ2FsbFRo
dW5rR2VuZXJhdG9yOworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAg
ICAgICAgIHJldHVybiB2aXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3I7
CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2RlRm9yQ29uc3RydWN0Ogor
ICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1cm4gdmlydHVhbENvbnN0cnVjdFRo
dW5rR2VuZXJhdG9yOworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAg
ICAgICAgIHJldHVybiB2aXJ0dWFsQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVy
YXRvcjsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KIAogTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIG5hdGl2ZUNhbGxHZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRp
dmVDb25zdHJ1Y3RHZW5lcmF0b3IoVk0qKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVU
YWlsQ2FsbEdlbmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5Rml4dXAo
Vk0qKTsKIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJDb2RlQXRUaHVua0dlbmVyYXRvcihW
TSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50Q0xvb3Au
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50Q0xvb3AuY3BwCmluZGV4IDE4
YzJiOTljMTJjNDhlZWUxMDFmMmUwNDZlZDNkYTJjNjVmODJhMmYuLjI3ZGIxMTVlMzFiNDRkOWFi
ZTYwM2M0OGJkZWI4MzYyYzBlNmZiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludENMb29wLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRDTG9vcC5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIExMSW50IHsKIAogdm9p
ZCBDTG9vcDo6aW5pdGlhbGl6ZSgpCiB7Ci0gICAgZXhlY3V0ZSgwLCBnZXRPcGNvZGUobGxpbnRf
dW51c2VkKSwgdHJ1ZSk7CisgICAgZXhlY3V0ZShsbGludF91bnVzZWQsIDAsIDAsIDAsIHRydWUp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBMTEludApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50Q0xvb3AuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludENMb29wLmgKaW5kZXggODc1OTU3MWYzNWRlNjYyYTkzNjViMzlkMGNiN2UzNzdhZDA3YTA4
OS4uYjM1NzcxMjhjY2Q2OWNjZmFiYmRjNDc0OTgyNzBlZTA3OWY1ODJhMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50Q0xvb3AuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRDTG9vcC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVk
ZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogI2luY2x1ZGUgIk9wY29k
ZS5oIgorI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogbmFt
ZXNwYWNlIExMSW50IHsKQEAgLTQwLDcgKzQxLDcgQEAgY29uc3QgT3Bjb2RlSUQgbGxpbnRfdW51
c2VkID0gbGxpbnRfZW5kOwogY2xhc3MgQ0xvb3AgewogcHVibGljOgogICAgIHN0YXRpYyB2b2lk
IGluaXRpYWxpemUoKTsKLSAgICBzdGF0aWMgSlNWYWx1ZSBleGVjdXRlKENhbGxGcmFtZSosIE9w
Y29kZSBlbnRyeU9wY29kZSwgYm9vbCBpc0luaXRpYWxpemF0aW9uUGFzcyA9IGZhbHNlKTsKKyAg
ICBzdGF0aWMgSlNWYWx1ZSBleGVjdXRlKE9wY29kZUlEIGVudHJ5T3Bjb2RlSUQsIHZvaWQqIGV4
ZWN1dGFibGVBZGRyZXNzLCBWTSosIFByb3RvQ2FsbEZyYW1lKiwgYm9vbCBpc0luaXRpYWxpemF0
aW9uUGFzcyA9IGZhbHNlKTsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAppbmRleCBhYzc3ODM2YzBiYjk0
MTlkZWRiZGU4YzY1MzhjZmY2M2I3YjA5ZGIwLi5lN2Y5YzZkN2E1YzQ4OWMxNWMwYjY2NTUxMmM5
M2UxNzMxZDk3MzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnREYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNw
cApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkluc3RydWN0aW9uLmgiCiAjaW5jbHVkZSAi
SlNTY29wZS5oIgogI2luY2x1ZGUgIkxMSW50Q0xvb3AuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIk9wY29kZS5oIgogI2luY2x1ZGUgIlBy
b3BlcnR5T2Zmc2V0LmgiCiAKQEAgLTg3LDYgKzg4LDcgQEAgdm9pZCBEYXRhOjpwZXJmb3JtQXNz
ZXJ0aW9ucyhWTSYgdm0pCiAgICAgQVNTRVJUKEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUg
PT0gQ2FsbEZyYW1lSGVhZGVyU2xvdHMpOwogCiAgICAgQVNTRVJUKCFDYWxsRnJhbWU6OmNhbGxl
ckZyYW1lT2Zmc2V0KCkpOworICAgIEFTU0VSVChKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6
ZSA9PSAoUHRyU2l6ZSAqIDIpIC8gU2xvdFNpemUpOwogICAgIEFTU0VSVChDYWxsRnJhbWU6OnJl
dHVyblBDT2Zmc2V0KCkgPT0gQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpICsgUHRyU2l6
ZSk7CiAgICAgQVNTRVJUKEpTU3RhY2s6OkNvZGVCbG9jayAqIHNpemVvZihSZWdpc3RlcikgPT0g
Q2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpICsgUHRyU2l6ZSk7CiAgICAgQVNTRVJUKEpTU3Rh
Y2s6OlNjb3BlQ2hhaW4gKiBzaXplb2YoUmVnaXN0ZXIpID09IEpTU3RhY2s6OkNvZGVCbG9jayAq
IHNpemVvZihSZWdpc3RlcikgKyBTbG90U2l6ZSk7CkBAIC0xMjMsNiArMTI1LDEzIEBAIHZvaWQg
RGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoVk0mIHZtKQogICAgIEFTU0VSVChWYWx1ZVVuZGVmaW5l
ZCA9PSAoVGFnQml0VHlwZU90aGVyIHwgVGFnQml0VW5kZWZpbmVkKSk7CiAgICAgQVNTRVJUKFZh
bHVlTnVsbCA9PSBUYWdCaXRUeXBlT3RoZXIpOwogI2VuZGlmCisjaWYgQ1BVKFg4Nl82NCkgfHwg
Q1BVKEFSTTY0KSB8fCBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIEFTU0VSVChtYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbCA9PSAwKTsKKyNlbGlmIENQVShBUk0pIHx8IENQVShTSDQpCisg
ICAgQVNTRVJUKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID09IDI0KTsKKyNlbGlmIENQ
VShYODYpIHx8IENQVShNSVBTKQorICAgIEFTU0VSVChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRo
Q2FsbCA9PSA0MCk7CisjZW5kaWYKICAgICBBU1NFUlQoU3RyaW5nVHlwZSA9PSA1KTsKICAgICBB
U1NFUlQoT2JqZWN0VHlwZSA9PSAxNyk7CiAgICAgQVNTRVJUKEZpbmFsT2JqZWN0VHlwZSA9PSAx
OCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBv
aW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3Bw
CmluZGV4IDk5M2VjNjdiOTkzYjA0Zjg0NTQxMmUzN2JkZmE2ZGMxNWQ4ZDU3ZjkuLjVkOTFiZTYz
MDNkYmQ1ZDU2ZThjYzBjZTY1YjcxNWM1MmEyN2MyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCkBAIC0zMyw2ICszMyw4IEBACiAjaW5j
bHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJMTEludFRodW5rcy5oIgogI2luY2x1ZGUgIkxv
d0xldmVsSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRo
Q2FsbC5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAjaW5jbHVkZSAiVk0uaCIKIAog
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTEludCB7CkBAIC00NSwxNCArNDcsMTIgQEAgc3Rh
dGljIHZvaWQgc2V0RnVuY3Rpb25FbnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxv
Y2spCiAgICAgaWYgKHZtLmNhblVzZUpJVCgpKSB7CiAgICAgICAgIGlmIChraW5kID09IENvZGVG
b3JDYWxsKSB7CiAgICAgICAgICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAgICAg
ICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZv
ckNhbGxFbnRyeVRodW5rR2VuZXJhdG9yKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpLAot
ICAgICAgICAgICAgICAgIHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDYWxsQXJpdHlDaGVja1Ro
dW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgICAgICAgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJl
Y3RKSVRDb2RlKHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDYWxsRW50cnlUaHVua0dlbmVyYXRv
ciksIHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDYWxsQXJpdHlDaGVja1RodW5rR2VuZXJhdG9y
KS5jb2RlKCksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7
CiAgICAgICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAgICAgIGFkb3B0UmVmKG5l
dyBEaXJlY3RKSVRDb2RlKHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDb25zdHJ1Y3RFbnRyeVRo
dW5rR2VuZXJhdG9yKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpLAotICAgICAgICAgICAg
dm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNvbnN0cnVjdEFyaXR5Q2hlY2tUaHVua0dlbmVyYXRv
cikuY29kZSgpKTsKKyAgICAgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHZtLmdl
dENUSVN0dWIoZnVuY3Rpb25Gb3JDb25zdHJ1Y3RFbnRyeVRodW5rR2VuZXJhdG9yKSwgdm0uZ2V0
Q1RJU3R1YihmdW5jdGlvbkZvckNvbnN0cnVjdEFyaXR5Q2hlY2tUaHVua0dlbmVyYXRvcikuY29k
ZSgpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogI2VuZGlmIC8vIEVOQUJMRShKSVQpCkBAIC02MCwxNCArNjAsMTIgQEAgc3RhdGljIHZvaWQg
c2V0RnVuY3Rpb25FbnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCiAgICAg
VU5VU0VEX1BBUkFNKHZtKTsKICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkgewogICAgICAg
ICBjb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0
SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9m
dW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSwK
LSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxs
aW50X2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5X2NoZWNrKSk7CisgICAgICAgICAgICBhZG9wdFJl
ZihuZXcgRGlyZWN0SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29k
ZVJlZihsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1ZSksIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5X2No
ZWNrKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsKICAgICBjb2RlQmxvY2st
PnNldEpJVENvZGUoCi0gICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X2Z1bmN0aW9uX2Zvcl9jb25z
dHJ1Y3RfcHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0gICAgICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X2Z1bmN0aW9uX2Zv
cl9jb25zdHJ1Y3RfYXJpdHlfY2hlY2spKTsKKyAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJ
VENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfZnVu
Y3Rpb25fZm9yX2NvbnN0cnVjdF9wcm9sb2d1ZSksIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3Jl
YXRlTExJbnRDb2RlUHRyKGxsaW50X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlfY2hlY2sp
LCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwogfQogCiBzdGF0aWMgdm9pZCBzZXRFdmFs
RW50cnlwb2ludChWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrKQpAQCAtNzUsMTYgKzczLDE0
IEBAIHN0YXRpYyB2b2lkIHNldEV2YWxFbnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2Rl
QmxvY2spCiAjaWYgRU5BQkxFKEpJVCkKICAgICBpZiAodm0uY2FuVXNlSklUKCkpIHsKICAgICAg
ICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKAotICAgICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVj
dEpJVENvZGUodm0uZ2V0Q1RJU3R1YihldmFsRW50cnlUaHVua0dlbmVyYXRvciksIEpJVENvZGU6
OkludGVycHJldGVyVGh1bmspKSwKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigp
KTsKKyAgICAgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHZtLmdldENUSVN0dWIo
ZXZhbEVudHJ5VGh1bmtHZW5lcmF0b3IpLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKSwgSklUQ29k
ZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZiAv
LyBFTkFCTEUoSklUKQogCiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKICAgICBjb2RlQmxvY2stPnNl
dEpJVENvZGUoCi0gICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X2V2YWxfcHJvbG9ndWUpLCBKSVRD
b2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigp
KTsKKyAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfZXZhbF9wcm9sb2d1ZSksIE1hY3JvQXNzZW1i
bGVyQ29kZVB0cigpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwogfQogCiBzdGF0aWMg
dm9pZCBzZXRQcm9ncmFtRW50cnlwb2ludChWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrKQpA
QCAtOTIsMTYgKzg4LDE0IEBAIHN0YXRpYyB2b2lkIHNldFByb2dyYW1FbnRyeXBvaW50KFZNJiB2
bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCiAjaWYgRU5BQkxFKEpJVCkKICAgICBpZiAodm0uY2Fu
VXNlSklUKCkpIHsKICAgICAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKAotICAgICAgICAgICAg
YWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1Yihwcm9ncmFtRW50cnlUaHVu
a0dlbmVyYXRvciksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSwKLSAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0cigpKTsKKyAgICAgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RK
SVRDb2RlKHZtLmdldENUSVN0dWIocHJvZ3JhbUVudHJ5VGh1bmtHZW5lcmF0b3IpLCBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIoKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoSklUKQogCiAgICAgVU5VU0VEX1BBUkFN
KHZtKTsKICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAgIGFkb3B0UmVmKG5ldyBE
aXJlY3RKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxs
aW50X3Byb2dyYW1fcHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0gICAg
ICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpKTsKKyAgICAgICAgYWRvcHRSZWYobmV3IERpcmVj
dEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRf
cHJvZ3JhbV9wcm9sb2d1ZSksIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpLCBKSVRDb2RlOjpJbnRl
cnByZXRlclRodW5rKSkpOwogfQogCiB2b2lkIHNldEVudHJ5cG9pbnQoVk0mIHZtLCBDb2RlQmxv
Y2sqIGNvZGVCbG9jaykKQEAgLTEyMyw3ICsxMTcsOSBAQCB2b2lkIHNldEVudHJ5cG9pbnQoVk0m
IHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKIAogdW5zaWduZWQgZnJhbWVSZWdpc3RlckNvdW50
Rm9yKENvZGVCbG9jayogY29kZUJsb2NrKQogewotICAgIHJldHVybiBjb2RlQmxvY2stPm1fbnVt
Q2FsbGVlUmVnaXN0ZXJzOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY29kZUJs
b2NrLT5tX251bUNhbGxlZVJlZ2lzdGVycykgPT0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0
YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihjb2RlQmxvY2st
Pm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKSkpOworCisgICAgcmV0dXJuIHJvdW5kTG9jYWxSZWdpc3Rl
ckNvdW50Rm9yRnJhbWVQb2ludGVyT2Zmc2V0KGNvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3Rl
cnMgKyBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbEluUmVnaXN0ZXJzKTsKIH0KIAogfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0b3IuY3BwCmluZGV4IGEwY2JmYTBiYTNlMDc2OWZj
NTQ0MWIyZTNhNzE5ZDA5NzQzZDQzYWYuLjYwNGNjMjYzY2Y5N2UwODZmZWQwNmVjOTAzYjBlYzE5
ODNlNzgxMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9m
ZnNldHNFeHRyYWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dE9mZnNldHNFeHRyYWN0b3IuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJBcnJh
eVByb2ZpbGUuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJDb21tb25TbG93
UGF0aHMuaCIKICNpbmNsdWRlICJEZWJ1Z2dlci5oIgogI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIK
ICNpbmNsdWRlICJIZWFwLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRPcGNvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9wY29k
ZS5oCmluZGV4IDdlZTUzZGY4MjNjZjUzODJkMDU4N2JkN2ExZWZiNDMxYmI0ZDc4YzYuLmZhMWZh
NmFhOGQ5ZmVhNGIxNDNiZDBmOGYwNzViYzRhYmZjMmNmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9wY29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludE9wY29kZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICszNCwxOCBAQAogCiAj
ZGVmaW5lIEZPUl9FQUNIX0xMSU5UX05PSklUX05BVElWRV9IRUxQRVIobWFjcm8pIFwKICAgICBt
YWNybyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlLCAxKSBcCi0gICAgbWFjcm8ocmV0dXJuRnJvbUph
dmFTY3JpcHQsIDEpCisgICAgbWFjcm8obGxpbnRfcmV0dXJuX3RvX2hvc3QsIDEpIFwKKyAgICBt
YWNybyhsbGludF9jYWxsX3RvX2phdmFzY3JpcHQsIDEpIFwKKyAgICBtYWNybyhsbGludF9jYWxs
X3RvX25hdGl2ZV9mdW5jdGlvbiwgMSkgXAorICAgIG1hY3JvKGhhbmRsZVVuY2F1Z2h0RXhjZXB0
aW9uLCAxKSBcCisgICAgXAorICAgIG1hY3JvKGxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9q
c18xLCAxKSBcCisgICAgbWFjcm8obGxpbnRfY2xvb3BfZGlkX3JldHVybl9mcm9tX2pzXzIsIDEp
IFwKKyAgICBtYWNybyhsbGludF9jbG9vcF9kaWRfcmV0dXJuX2Zyb21fanNfMywgMSkgXAorICAg
IG1hY3JvKGxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc180LCAxKSBcCisgICAgbWFjcm8o
bGxpbnRfY2xvb3BfZGlkX3JldHVybl9mcm9tX2pzXzUsIDEpIFwKKyAgICBtYWNybyhsbGludF9j
bG9vcF9kaWRfcmV0dXJuX2Zyb21fanNfNiwgMSkgXAorICAgIG1hY3JvKGxsaW50X2Nsb29wX2Rp
ZF9yZXR1cm5fZnJvbV9qc183LCAxKSBcCiAKICNlbHNlIC8vICFFTkFCTEUoTExJTlRfQ19MT09Q
KQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0
aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApp
bmRleCAyNjI2NDE3MWQ2YzcwMzg0Y2NkMDAzOTYwNjk2ZmIxMDgwZjI3NGJjLi44NjM1MmQ0NWQy
M2Q5NjY4NTQxY2Q3ZTljNmE0NWEwNTBlNjBkZjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDb21tb25TbG93
UGF0aHMuaCIKICNpbmNsdWRlICJDb21tb25TbG93UGF0aHNFeGNlcHRpb25zLmgiCisjaW5jbHVk
ZSAiRXJyb3JIYW5kbGluZ1Njb3BlLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCiAjaW5j
bHVkZSAiSG9zdENhbGxSZXR1cm5WYWx1ZS5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCkBA
IC01MSw2ICs1Miw3IEBACiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRlcnByZXRlci5oIgogI2luY2x1
ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorI2luY2x1
ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlUmFyZURhdGFJbmxpbmVz
LmgiCiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAKQEAgLTgyLDcgKzg0LDcg
QEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTEludCB7CiAgICAgICAgIHJldHVybiBlbmNv
ZGVSZXN1bHQoZmlyc3QsIHNlY29uZCk7ICAgICAgICBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAK
LSNkZWZpbmUgTExJTlRfRU5EX0lNUEwoKSBMTElOVF9SRVRVUk5fVFdPKHBjLCBleGVjKQorI2Rl
ZmluZSBMTElOVF9FTkRfSU1QTCgpIExMSU5UX1JFVFVSTl9UV08ocGMsIDApCiAKICNkZWZpbmUg
TExJTlRfVEhST1coZXhjZXB0aW9uVG9UaHJvdykgZG8geyAgICAgICAgICAgICAgICAgICAgICAg
IFwKICAgICAgICAgdm0udGhyb3dFeGNlcHRpb24oZXhlYywgZXhjZXB0aW9uVG9UaHJvdyk7ICAg
ICAgICAgICAgICAgIFwKQEAgLTEzNywyMiArMTM5LDI4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgTExJbnQgewogI2RlZmluZSBMTElOVF9DQUxMX1RIUk9XKGV4ZWMsIGV4Y2VwdGlvblRv
VGhyb3cpIGRvIHsgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBFeGVjU3RhdGUqIF9fY3Rf
ZXhlYyA9IChleGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAg
ICB2bS50aHJvd0V4Y2VwdGlvbihfX2N0X2V4ZWMsIGV4Y2VwdGlvblRvVGhyb3cpOyAgICAgICAg
ICAgICAgICAgXAotICAgICAgICBMTElOVF9DQUxMX0VORF9JTVBMKF9fY3RfZXhlYywgY2FsbFRv
VGhyb3coX19jdF9leGVjKSk7ICAgICAgICAgXAorICAgICAgICBMTElOVF9DQUxMX0VORF9JTVBM
KDAsIGNhbGxUb1Rocm93KF9fY3RfZXhlYykpOyAgICAgICAgICAgICAgICAgXAogICAgIH0gd2hp
bGUgKGZhbHNlKQogCiAjZGVmaW5lIExMSU5UX0NBTExfQ0hFQ0tfRVhDRVBUSU9OKGV4ZWMpIGRv
IHsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIEV4ZWNTdGF0ZSogX19jY2Vf
ZXhlYyA9IChleGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAg
IGlmIChVTkxJS0VMWSh2bS5leGNlcHRpb24oKSkpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgICAgICAgICBMTElOVF9DQUxMX0VORF9JTVBMKF9fY2NlX2V4ZWMsIGNh
bGxUb1Rocm93KF9fY2NlX2V4ZWMpKTsgICBcCisgICAgICAgICAgICBMTElOVF9DQUxMX0VORF9J
TVBMKDAsIGNhbGxUb1Rocm93KF9fY2NlX2V4ZWMpKTsgICAgICAgICAgICBcCiAgICAgfSB3aGls
ZSAoZmFsc2UpCiAKICNkZWZpbmUgTExJTlRfQ0FMTF9SRVRVUk4oZXhlYywgY2FsbFRhcmdldCkg
ZG8geyAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgRXhlY1N0YXRlKiBfX2NyX2V4
ZWMgPSAoZXhlYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAg
dm9pZCogX19jcl9jYWxsVGFyZ2V0ID0gKGNhbGxUYXJnZXQpOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICAgICAgTExJTlRfQ0FMTF9DSEVDS19FWENFUFRJT04oX19jcl9leGVjLT5j
YWxsZXJGcmFtZSgpKTsgICAgICAgICAgIFwKKyAgICAgICAgTExJTlRfQ0FMTF9DSEVDS19FWENF
UFRJT04oX19jcl9leGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgTExJ
TlRfQ0FMTF9FTkRfSU1QTChfX2NyX2V4ZWMsIF9fY3JfY2FsbFRhcmdldCk7ICAgICAgICAgICAg
ICAgIFwKICAgICB9IHdoaWxlIChmYWxzZSkKIAorI2RlZmluZSBMTElOVF9SRVRVUk5fQ0FMTEVF
X0ZSQU1FKGV4ZWNDYWxsZWUpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBF
eGVjU3RhdGUqIF9fcmNmX2V4ZWMgPSAoZXhlY0NhbGxlZSk7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgICAgICBMTElOVF9SRVRVUk5fVFdPKHBjLCBfX3JjZl9leGVjKTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gd2hpbGUgKGZhbHNlKQorICAgIAorCiBl
eHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF90cmFjZV9vcGVyYW5kKEV4ZWNTdGF0
ZSogZXhlYywgSW5zdHJ1Y3Rpb24qIHBjLCBpbnQgZnJvbVdoZXJlLCBpbnQgb3BlcmFuZCkKIHsK
ICAgICBMTElOVF9CRUdJTigpOwpAQCAtMjQyLDYgKzI1MCwxMCBAQCBMTElOVF9TTE9XX1BBVEhf
REVDTCh0cmFjZSkKICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludHB0cl90PihwYyAtIGV4ZWMt
PmNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpKSwKICAgICAgICAgICAgIG9wY29k
ZU5hbWVzW2V4ZWMtPnZtKCkuaW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bjb2Rl
KV0sCiAgICAgICAgICAgICBleGVjLT5zY29wZSgpLCBwYyk7CisgICAgaWYgKGV4ZWMtPnZtKCku
aW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bjb2RlKSA9PSBvcF9lbnRlcikgewor
ICAgICAgICBkYXRhTG9nRigiRnJhbWUgd2lsbCBldmVudHVhbGx5IHJldHVybiB0byAlcFxuIiwg
ZXhlYy0+cmV0dXJuUEMoKS52YWx1ZSgpKTsKKyAgICAgICAgKmJpdHdpc2VfY2FzdDx2b2xhdGls
ZSBjaGFyKj4oZXhlYy0+cmV0dXJuUEMoKS52YWx1ZSgpKTsKKyAgICB9CiAgICAgaWYgKGV4ZWMt
PnZtKCkuaW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bjb2RlKSA9PSBvcF9yZXQp
IHsKICAgICAgICAgZGF0YUxvZ0YoIldpbGwgYmUgcmV0dXJuaW5nIHRvICVwXG4iLCBleGVjLT5y
ZXR1cm5QQygpLnZhbHVlKCkpOwogICAgICAgICBkYXRhTG9nRigiVGhlIG5ldyBjZnIgd2lsbCBi
ZSAlcFxuIiwgZXhlYy0+Y2FsbGVyRnJhbWUoKSk7CkBAIC0zMjUsMTUgKzMzNywxNyBAQCBzdGF0
aWMgU2xvd1BhdGhSZXR1cm5UeXBlIGVudHJ5T1NSKEV4ZWNTdGF0ZSogZXhlYywgSW5zdHJ1Y3Rp
b24qLCBDb2RlQmxvY2sqIGNvZAogICAgIAogICAgIGlmICghc2hvdWxkSklUKGV4ZWMpKSB7CiAg
ICAgICAgIGNvZGVCbG9jay0+ZG9udEpJVEFueXRpbWVTb29uKCk7Ci0gICAgICAgIExMSU5UX1JF
VFVSTl9UV08oMCwgZXhlYyk7CisgICAgICAgIExMSU5UX1JFVFVSTl9UV08oMCwgMCk7CiAgICAg
fQogICAgIGlmICghaml0Q29tcGlsZUFuZFNldEhldXJpc3RpY3MoY29kZUJsb2NrLCBleGVjKSkK
LSAgICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCBleGVjKTsKKyAgICAgICAgTExJTlRfUkVUVVJO
X1RXTygwLCAwKTsKICAgICAKICAgICBpZiAoa2luZCA9PSBQcm9sb2d1ZSkKLSAgICAgICAgTExJ
TlRfUkVUVVJOX1RXTyhjb2RlQmxvY2stPmppdENvZGUoKS0+ZXhlY3V0YWJsZUFkZHJlc3MoKSwg
ZXhlYyk7CisgICAgICAgIExMSU5UX1JFVFVSTl9UV08oY29kZUJsb2NrLT5qaXRDb2RlKCktPmV4
ZWN1dGFibGVBZGRyZXNzKCksIDApOwogICAgIEFTU0VSVChraW5kID09IEFyaXR5Q2hlY2spOwot
ICAgIExMSU5UX1JFVFVSTl9UV08oY29kZUJsb2NrLT5qaXRDb2RlV2l0aEFyaXR5Q2hlY2soKS5l
eGVjdXRhYmxlQWRkcmVzcygpLCBleGVjKTsKKyAgICBMTElOVF9SRVRVUk5fVFdPKGNvZGVCbG9j
ay0+aml0Q29kZSgpLT5hZGRyZXNzRm9yQ2FsbCgKKyAgICAgICAgKmNvZGVCbG9jay0+dm0oKSwg
Y29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgTXVzdENoZWNrQXJpdHksCisgICAgICAgIFJl
Z2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpLmV4ZWN1dGFibGVBZGRyZXNzKCksIDApOwog
fQogI2Vsc2UgLy8gRU5BQkxFKEpJVCkKIHN0YXRpYyBTbG93UGF0aFJldHVyblR5cGUgZW50cnlP
U1IoRXhlY1N0YXRlKiBleGVjLCBJbnN0cnVjdGlvbiosIENvZGVCbG9jayogY29kZUJsb2NrLCBj
b25zdCBjaGFyKiwgRW50cnlLaW5kKQpAQCAtMzgxLDExICszOTUsMTEgQEAgTExJTlRfU0xPV19Q
QVRIX0RFQ0wobG9vcF9vc3IpCiAgICAgCiAgICAgaWYgKCFzaG91bGRKSVQoZXhlYykpIHsKICAg
ICAgICAgY29kZUJsb2NrLT5kb250SklUQW55dGltZVNvb24oKTsKLSAgICAgICAgTExJTlRfUkVU
VVJOX1RXTygwLCBleGVjKTsKKyAgICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCAwKTsKICAgICB9
CiAgICAgCiAgICAgaWYgKCFqaXRDb21waWxlQW5kU2V0SGV1cmlzdGljcyhjb2RlQmxvY2ssIGV4
ZWMpKQotICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIGV4ZWMpOworICAgICAgICBMTElOVF9S
RVRVUk5fVFdPKDAsIDApOwogICAgIAogICAgIEFTU0VSVChjb2RlQmxvY2stPmppdFR5cGUoKSA9
PSBKSVRDb2RlOjpCYXNlbGluZUpJVCk7CiAgICAgCkBAIC0zOTgsMTAgKzQxMiwxMCBAQCBMTElO
VF9TTE9XX1BBVEhfREVDTChsb29wX29zcikKICAgICB2b2lkKiBqdW1wVGFyZ2V0ID0gY29kZUJs
b2NrLT5qaXRDb2RlKCktPmV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQobWFwcGluZy0+bV9tYWNo
aW5lQ29kZU9mZnNldCk7CiAgICAgQVNTRVJUKGp1bXBUYXJnZXQpOwogICAgIAotICAgIExMSU5U
X1JFVFVSTl9UV08oanVtcFRhcmdldCwgZXhlYyk7CisgICAgTExJTlRfUkVUVVJOX1RXTyhqdW1w
VGFyZ2V0LCBleGVjLT50b3BPZkZyYW1lKCkpOwogI2Vsc2UgLy8gRU5BQkxFKEpJVCkKICAgICBj
b2RlQmxvY2stPmRvbnRKSVRBbnl0aW1lU29vbigpOwotICAgIExMSU5UX1JFVFVSTl9UV08oMCwg
ZXhlYyk7CisgICAgTExJTlRfUkVUVVJOX1RXTygwLCAwKTsKICNlbmRpZiAvLyBFTkFCTEUoSklU
KQogfQogCkBAIC00MzcsMTMgKzQ1MSwzNCBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzdGFja19j
aGVjaykKICAgICBkYXRhTG9nRigiTnVtIHZhcnMgPSAldS5cbiIsIGV4ZWMtPmNvZGVCbG9jaygp
LT5tX251bVZhcnMpOwogICAgIGRhdGFMb2dGKCJDdXJyZW50IGVuZCBpcyBhdCAlcC5cbiIsIGV4
ZWMtPnZtKCkuaW50ZXJwcmV0ZXItPnN0YWNrKCkuZW5kKCkpOwogI2VuZGlmCi0gICAgQVNTRVJU
KCFleGVjLT52bSgpLmludGVycHJldGVyLT5zdGFjaygpLmNvbnRhaW5zQWRkcmVzcygmZXhlYy0+
cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoZXhlYy0+Y29kZUJsb2NrKCktPm1f
bnVtQ2FsbGVlUmVnaXN0ZXJzKS5vZmZzZXQoKV0pKTsKLSAgICBpZiAoVU5MSUtFTFkoIXZtLmlu
dGVycHJldGVyLT5zdGFjaygpLmdyb3coJmV4ZWMtPnJlZ2lzdGVycygpW3ZpcnR1YWxSZWdpc3Rl
ckZvckxvY2FsKGV4ZWMtPmNvZGVCbG9jaygpLT5tX251bUNhbGxlZVJlZ2lzdGVycykub2Zmc2V0
KCldKSkpIHsKLSAgICAgICAgZXhlYyA9IGV4ZWMtPmNhbGxlckZyYW1lKCk7Ci0gICAgICAgIENv
bW1vblNsb3dQYXRoczo6aW50ZXJwcmV0ZXJUaHJvd0luQ2FsbGVyKGV4ZWMsIGNyZWF0ZVN0YWNr
T3ZlcmZsb3dFcnJvcihleGVjKSk7Ci0gICAgICAgIHBjID0gcmV0dXJuVG9UaHJvd0ZvclRocm93
bkV4Y2VwdGlvbihleGVjKTsKLSAgICB9Ci0gICAgTExJTlRfRU5EX0lNUEwoKTsKKworICAgIC8v
IFRoaXMgc3RhY2sgY2hlY2sgaXMgZG9uZSBpbiB0aGUgcHJvbG9ndWUgZm9yIGEgZnVuY3Rpb24g
Y2FsbCwgYW5kIHRoZQorICAgIC8vIENhbGxGcmFtZSBpcyBub3QgY29tcGxldGVseSBzZXQgdXAg
eWV0LiBGb3IgZXhhbXBsZSwgaWYgdGhlIGZyYW1lIG5lZWRzCisgICAgLy8gYW4gYWN0aXZhdGlv
biBvYmplY3QsIHRoZSBhY3RpdmF0aW9uIG9iamVjdCB3aWxsIG9ubHkgYmUgc2V0IHVwIGFmdGVy
CisgICAgLy8gd2Ugc3RhcnQgZXhlY3V0aW5nIHRoZSBmdW5jdGlvbi4gSWYgd2UgbmVlZCB0byB0
aHJvdyBhIFN0YWNrT3ZlcmZsb3dFcnJvcgorICAgIC8vIGhlcmUsIHRoZW4gd2UgbmVlZCB0byB0
ZWxsIHRoZSBwcm9sb2d1ZSB0byBzdGFydCB0aGUgc3RhY2sgdW53aW5kaW5nIGZyb20KKyAgICAv
LyB0aGUgY2FsbGVyIGZyYW1lICh3aGljaCBpcyBmdWxseSBzZXQgdXApIGluc3RlYWQuIFRvIGRv
IHRoYXQsIHdlIHJldHVybgorICAgIC8vIHRoZSBjYWxsZXIncyBDYWxsRnJhbWUgaW4gdGhlIHNl
Y29uZCByZXR1cm4gdmFsdWUuCisgICAgLy8KKyAgICAvLyBJZiB0aGUgc3RhY2sgY2hlY2sgc3Vj
Y2VlZHMgYW5kIHdlIGRvbid0IG5lZWQgdG8gdGhyb3cgdGhlIGVycm9yLCB0aGVuCisgICAgLy8g
d2UnbGwgcmV0dXJuIDAgaW5zdGVhZC4gVGhlIHByb2xvZ3VlIHdpbGwgY2hlY2sgZm9yIGEgbm9u
LXplcm8gdmFsdWUKKyAgICAvLyB3aGVuIGRldGVybWluaW5nIHdoZXRoZXIgdG8gc2V0IHRoZSBj
YWxsRnJhbWUgb3Igbm90LgorCisgICAgLy8gRm9yIEpJVCBlbmFibGVkIGJ1aWxkcyB3aGljaCB1
c2VzIHRoZSBDIHN0YWNrLCB0aGUgc3RhY2sgaXMgbm90IGdyb3dhYmxlLgorICAgIC8vIEhlbmNl
LCBpZiB3ZSBnZXQgaGVyZSwgdGhlbiB3ZSBrbm93IGEgc3RhY2sgb3ZlcmZsb3cgaXMgaW1taW5l
bnQuIFNvLCBqdXN0CisgICAgLy8gdGhyb3cgdGhlIFN0YWNrT3ZlcmZsb3dFcnJvciB1bmNvbmRp
dGlvbmFsbHkuCisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICBBU1NFUlQoIXZtLmludGVy
cHJldGVyLT5zdGFjaygpLmNvbnRhaW5zQWRkcmVzcyhleGVjLT50b3BPZkZyYW1lKCkpKTsKKyAg
ICBpZiAoTElLRUxZKHZtLmludGVycHJldGVyLT5zdGFjaygpLmVuc3VyZUNhcGFjaXR5Rm9yKGV4
ZWMtPnRvcE9mRnJhbWUoKSkpKQorICAgICAgICBMTElOVF9SRVRVUk5fVFdPKHBjLCAwKTsKKyNl
bmRpZgorCisgICAgZXhlYyA9IGV4ZWMtPmNhbGxlckZyYW1lKCk7CisgICAgdm0udG9wQ2FsbEZy
YW1lID0gZXhlYzsKKyAgICBFcnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29wZSh2bSk7CisgICAg
Q29tbW9uU2xvd1BhdGhzOjppbnRlcnByZXRlclRocm93SW5DYWxsZXIoZXhlYywgY3JlYXRlU3Rh
Y2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKKyAgICBwYyA9IHJldHVyblRvVGhyb3dGb3JUaHJvd25F
eGNlcHRpb24oZXhlYyk7CisgICAgTExJTlRfUkVUVVJOX1RXTyhwYywgZXhlYyk7CiB9CiAKIExM
SU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jcmVhdGVfYWN0aXZhdGlvbikKQEAgLTEwNDUs
NyArMTA4MCw3IEBAIGlubGluZSBTbG93UGF0aFJldHVyblR5cGUgc2V0VXBDYWxsKEV4ZWNTdGF0
ZSogZXhlY0NhbGxlZSwgSW5zdHJ1Y3Rpb24qIHBjLCBDb2RlCiAgICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyIGNvZGVQdHI7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSAwOwogICAgIGlmIChl
eGVjdXRhYmxlLT5pc0hvc3RGdW5jdGlvbigpKQotICAgICAgICBjb2RlUHRyID0gZXhlY3V0YWJs
ZS0+aG9zdENvZGVFbnRyeUZvcihraW5kKTsKKyAgICAgICAgY29kZVB0ciA9IGV4ZWN1dGFibGUt
PmVudHJ5cG9pbnRGb3Iodm0sIGtpbmQsIE11c3RDaGVja0FyaXR5LCBSZWdpc3RlclByZXNlcnZh
dGlvbk5vdFJlcXVpcmVkKTsKICAgICBlbHNlIHsKICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxl
KiBmdW5jdGlvbkV4ZWN1dGFibGUgPSBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihl
eGVjdXRhYmxlKTsKICAgICAgICAgSlNPYmplY3QqIGVycm9yID0gZnVuY3Rpb25FeGVjdXRhYmxl
LT5wcmVwYXJlRm9yRXhlY3V0aW9uKGV4ZWNDYWxsZWUsIGNhbGxlZS0+c2NvcGUoKSwga2luZCk7
CkBAIC0xMDUzLDEyICsxMDg4LDE2IEBAIGlubGluZSBTbG93UGF0aFJldHVyblR5cGUgc2V0VXBD
YWxsKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgSW5zdHJ1Y3Rpb24qIHBjLCBDb2RlCiAgICAgICAg
ICAgICBMTElOVF9DQUxMX1RIUk9XKGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCksIGVycm9yKTsK
ICAgICAgICAgY29kZUJsb2NrID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5jb2RlQmxvY2tGb3Ioa2lu
ZCk7CiAgICAgICAgIEFTU0VSVChjb2RlQmxvY2spOworICAgICAgICBBcml0eUNoZWNrTW9kZSBh
cml0eTsKICAgICAgICAgaWYgKGV4ZWNDYWxsZWUtPmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlz
KCkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSkKLSAg
ICAgICAgICAgIGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmpzQ29kZVdpdGhBcml0eUNo
ZWNrRW50cnlGb3Ioa2luZCk7CisgICAgICAgICAgICBhcml0eSA9IE11c3RDaGVja0FyaXR5Owog
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5q
c0NvZGVFbnRyeUZvcihraW5kKTsKKyAgICAgICAgICAgIGFyaXR5ID0gQXJpdHlDaGVja05vdFJl
cXVpcmVkOworICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5lbnRyeXBvaW50
Rm9yKHZtLCBraW5kLCBhcml0eSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CiAg
ICAgfQogICAgIAorICAgIEFTU0VSVCghIWNvZGVQdHIpOworICAgIAogICAgIGlmICghTExJTlRf
QUxXQVlTX0FDQ0VTU19TTE9XICYmIGNhbGxMaW5rSW5mbykgewogICAgICAgICBFeGVjU3RhdGUq
IGV4ZWNDYWxsZXIgPSBleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpOwogICAgICAgICAKQEAgLTEx
MTAsMTkgKzExNDksMTkgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2NvbnN0cnVj
dCkKICAgICByZXR1cm4gZ2VuZXJpY0NhbGwoZXhlYywgcGMsIENvZGVGb3JDb25zdHJ1Y3QpOwog
fQogCi1MTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfc2l6ZV9hbmRfYWxsb2NfZnJhbWVf
Zm9yX3ZhcmFyZ3MpCitMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfc2l6ZV9mcmFtZV9m
b3JfdmFyYXJncykKIHsKICAgICBMTElOVF9CRUdJTigpOwogICAgIC8vIFRoaXMgbmVlZHMgdG86
CiAgICAgLy8gLSBTZXQgdXAgYSBjYWxsIGZyYW1lIHdoaWxlIHJlc3BlY3RpbmcgdGhlIHZhcmlh
YmxlIGFyZ3VtZW50cy4KICAgICAKLSAgICBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUgPSBzaXplQW5k
QWxsb2NGcmFtZUZvclZhcmFyZ3MoZXhlYywgJnZtLmludGVycHJldGVyLT5zdGFjaygpLAorICAg
IEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSA9IHNpemVGcmFtZUZvclZhcmFyZ3MoZXhlYywgJnZtLmlu
dGVycHJldGVyLT5zdGFjaygpLAogICAgICAgICBMTElOVF9PUF9DKDQpLmpzVmFsdWUoKSwgcGNb
NV0udS5vcGVyYW5kKTsKICAgICBMTElOVF9DQUxMX0NIRUNLX0VYQ0VQVElPTihleGVjKTsKICAg
ICAKICAgICB2bS5uZXdDYWxsRnJhbWVSZXR1cm5WYWx1ZSA9IGV4ZWNDYWxsZWU7CiAKLSAgICBM
TElOVF9FTkQoKTsKKyAgICBMTElOVF9SRVRVUk5fQ0FMTEVFX0ZSQU1FKGV4ZWNDYWxsZWUpOwog
fQogCiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfY2FsbF92YXJhcmdzKQpAQCAtMTMx
MiwxMyArMTM1MSw2IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wcm9maWxlX2Rp
ZF9jYWxsKQogICAgIExMSU5UX0VORCgpOwogfQogCi1MTElOVF9TTE9XX1BBVEhfREVDTCh0aHJv
d19mcm9tX25hdGl2ZV9jYWxsKQotewotICAgIExMSU5UX0JFR0lOKCk7Ci0gICAgQVNTRVJUKHZt
LmV4Y2VwdGlvbigpKTsKLSAgICBMTElOVF9FTkQoKTsKLX0KLQogTExJTlRfU0xPV19QQVRIX0RF
Q0woc2xvd19wYXRoX2hhbmRsZV9leGNlcHRpb24pCiB7CiAgICAgTExJTlRfQkVHSU5fTk9fU0VU
X1BDKCk7CkBAIC0xMzg4LDYgKzE0MjAsMjMgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19w
YXRoX3B1dF90b19zY29wZSkKICAgICBMTElOVF9FTkQoKTsKIH0KIAorU2xvd1BhdGhSZXR1cm5U
eXBlIGxsaW50X3Rocm93X3N0YWNrX292ZXJmbG93X2Vycm9yKFZNKiB2bSwgUHJvdG9DYWxsRnJh
bWUqIHByb3RvRnJhbWUpCit7CisgICAgRXhlY1N0YXRlKiBleGVjID0gdm0tPnRvcENhbGxGcmFt
ZTsKKyAgICBpZiAoIWV4ZWMpCisgICAgICAgIGV4ZWMgPSBwcm90b0ZyYW1lLT5zY29wZSgpLT5n
bG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOworICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9y
KGV4ZWMpOworICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7Cit9CisKKyNpZiBFTkFCTEUo
TExJTlRfQ19MT09QKQorU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3N0YWNrX2NoZWNrX2F0X3Zt
X2VudHJ5KFZNKiB2bSwgUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCit7CisgICAgYm9vbCBzdWNj
ZXNzID0gdm0tPmludGVycHJldGVyLT5zdGFjaygpLmVuc3VyZUNhcGFjaXR5Rm9yKG5ld1RvcE9m
U3RhY2spOworICAgIHJldHVybiBlbmNvZGVSZXN1bHQocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o
c3VjY2VzcyksIDApOworfQorI2VuZGlmCisKIGV4dGVybiAiQyIgdm9pZCBsbGludF93cml0ZV9i
YXJyaWVyX3Nsb3coRXhlY1N0YXRlKiwgSlNDZWxsKiBjZWxsKQogewogICAgIEhlYXA6OndyaXRl
QmFycmllcihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1Bh
dGhzLmgKaW5kZXggOGQ2MGFmYTI0YWRmYTMwMmIxNTI4YTBlNDNlYzIzMjc3MGU4ZmU3ZS4uOThh
ODcwMmI4MmIzMzQ2YjhmZTNjN2I1ZTYyNGVjNTQyNmQyMDgwZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2LDYgKzM2LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKIGNsYXNzIEV4ZWNTdGF0ZTsKIHN0cnVjdCBJbnN0cnVjdGlvbjsKK3N0cnVjdCBQ
cm90b0NhbGxGcmFtZTsKIAogbmFtZXNwYWNlIExMSW50IHsKIApAQCAtMTAxLDcgKzEwMiw3IEBA
IExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbmV3X2Z1bmMpOwogTExJTlRf
U0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZXdfZnVuY19leHApOwogTExJTlRfU0xP
V19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9jYWxsKTsKIExMSU5UX1NMT1dfUEFUSF9ISURE
RU5fREVDTChzbG93X3BhdGhfY29uc3RydWN0KTsKLUxMSU5UX1NMT1dfUEFUSF9ISURERU5fREVD
TChzbG93X3BhdGhfc2l6ZV9hbmRfYWxsb2NfZnJhbWVfZm9yX3ZhcmFyZ3MpOworTExJTlRfU0xP
V19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9zaXplX2ZyYW1lX2Zvcl92YXJhcmdzKTsKIExM
SU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfY2FsbF92YXJhcmdzKTsKIExMSU5U
X1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfY2FsbF9ldmFsKTsKIExMSU5UX1NMT1df
UEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfdGVhcl9vZmZfYWN0aXZhdGlvbik7CkBAIC0xMTks
MTEgKzEyMCwxNCBAQCBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2hhbmRs
ZV93YXRjaGRvZ190aW1lcik7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRo
X2RlYnVnKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHJvZmlsZV93
aWxsX2NhbGwpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wcm9maWxl
X2RpZF9jYWxsKTsKLUxMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTCh0aHJvd19mcm9tX25hdGl2
ZV9jYWxsKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaGFuZGxlX2V4
Y2VwdGlvbik7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3Jlc29sdmVf
c2NvcGUpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfZnJvbV9z
Y29wZSk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3B1dF90b19zY29w
ZSk7CitleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF90aHJvd19zdGFja19vdmVy
Zmxvd19lcnJvcihWTSosIFByb3RvQ2FsbEZyYW1lKik7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9P
UCkKK2V4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3N0YWNrX2NoZWNrX2F0X3Zt
X2VudHJ5KFZNKiwgUmVnaXN0ZXIqKTsKKyNlbmRpZgogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
TExJbnQKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1
bmtzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFRodW5rcy5jcHAKaW5k
ZXggOTQyOWU2Y2I1MmRiZTA5YzE3M2E1MWY2MjY5ZTEyOWY5YWQwODY3Ni4uM2VjMTRkMjQxMGQz
ZThkYzY0ODA4NTc5OTMzMmU1OTNlNWMzZjJkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRUaHVua3MuY3BwCkBAIC05NCw1OCArOTQsMTYgQEAgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIHByb2dyYW1FbnRyeVRodW5rR2VuZXJhdG9yKFZNKiB2bSkKIAogLy8gTm9uLUpJVCAo
aS5lLiBDIExvb3AgTExJTlQpIGNhc2U6CiAKLXR5cGVkZWYgSlNWYWx1ZSAoKkV4ZWN1dGVDb2Rl
KSAoQ2FsbEZyYW1lKiwgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3MpOwotCi10ZW1wbGF0ZTxFeGVj
dXRlQ29kZSBleGVjdXRlPgotRW5jb2RlZEpTVmFsdWUgZG9DYWxsVG9KYXZhU2NyaXB0KHZvaWQq
IGV4ZWN1dGFibGVBZGRyZXNzLCBQcm90b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWUpCitFbmNv
ZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBWTSog
dm0sIFByb3RvQ2FsbEZyYW1lKiBwcm90b0NhbGxGcmFtZSkKIHsKLSAgICBDb2RlQmxvY2sqIGNv
ZGVCbG9jayA9IHByb3RvQ2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKLSAgICBKU1Njb3BlKiBzY29w
ZSA9IHByb3RvQ2FsbEZyYW1lLT5zY29wZSgpOwotICAgIEpTT2JqZWN0KiBjYWxsZWUgPSBwcm90
b0NhbGxGcmFtZS0+Y2FsbGVlKCk7Ci0gICAgaW50IGFyZ0NvdW50SW5jbHVkaW5nVGhpcyA9IHBy
b3RvQ2FsbEZyYW1lLT5hcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygpOwotICAgIGludCBhcmdD
b3VudCA9IHByb3RvQ2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCk7Ci0gICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBwcm90b0NhbGxGcmFtZS0+dGhpc1ZhbHVlKCk7Ci0gICAgSlNTdGFjayYgc3RhY2sg
PSBzY29wZS0+dm0oKS0+aW50ZXJwcmV0ZXItPnN0YWNrKCk7Ci0KLSAgICBDYWxsRnJhbWUqIG5l
d0NhbGxGcmFtZSA9IHN0YWNrLnB1c2hGcmFtZShjb2RlQmxvY2ssIHNjb3BlLCBhcmdDb3VudElu
Y2x1ZGluZ1RoaXMsIGNhbGxlZSk7Ci0gICAgaWYgKFVOTElLRUxZKCFuZXdDYWxsRnJhbWUpKSB7
Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBzY29wZS0+Z2xvYmFsT2Jq
ZWN0KCk7Ci0gICAgICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhl
YygpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93U3RhY2tPdmVyZmxvd0Vy
cm9yKGV4ZWMpKTsKLSAgICB9Ci0KLSAgICAvLyBTZXQgdGhlIGFyZ3VtZW50cyBmb3IgdGhlIGNh
bGxlZToKLSAgICBuZXdDYWxsRnJhbWUtPnNldFRoaXNWYWx1ZSh0aGlzVmFsdWUpOwotICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgYXJnQ291bnQ7ICsraSkKLSAgICAgICAgbmV3Q2FsbEZyYW1lLT5z
ZXRBcmd1bWVudChpLCBwcm90b0NhbGxGcmFtZS0+YXJndW1lbnQoaSkpOwotCi0gICAgSlNWYWx1
ZSByZXN1bHQgPSBleGVjdXRlKG5ld0NhbGxGcmFtZSwgZXhlY3V0YWJsZUFkZHJlc3MpOwotCi0g
ICAgc3RhY2sucG9wRnJhbWUobmV3Q2FsbEZyYW1lKTsKLQorICAgIEpTVmFsdWUgcmVzdWx0ID0g
Q0xvb3A6OmV4ZWN1dGUobGxpbnRfY2FsbF90b19qYXZhc2NyaXB0LCBleGVjdXRhYmxlQWRkcmVz
cywgdm0sIHByb3RvQ2FsbEZyYW1lKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3Vs
dCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBleGVjdXRlSlMoQ2FsbEZyYW1lKiBuZXdD
YWxsRnJhbWUsIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzKQotewotICAgIE9wY29kZSBlbnRyeU9w
Y29kZSA9ICpyZWludGVycHJldF9jYXN0PE9wY29kZSo+KCZleGVjdXRhYmxlQWRkcmVzcyk7Ci0g
ICAgcmV0dXJuIENMb29wOjpleGVjdXRlKG5ld0NhbGxGcmFtZSwgZW50cnlPcGNvZGUpOwotfQot
Ci1FbmNvZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNz
LCBFeGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lLCBSZWdpc3Rlciop
Ci17Ci0gICAgcmV0dXJuIGRvQ2FsbFRvSmF2YVNjcmlwdDxleGVjdXRlSlM+KGV4ZWN1dGFibGVB
ZGRyZXNzLCBwcm90b0NhbGxGcmFtZSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBleGVj
dXRlTmF0aXZlKENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lLCB2b2lkKiBleGVjdXRhYmxlQWRkcmVz
cykKLXsKLSAgICBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8TmF0
aXZlRnVuY3Rpb24+KGV4ZWN1dGFibGVBZGRyZXNzKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZGVj
b2RlKGZ1bmN0aW9uKG5ld0NhbGxGcmFtZSkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBjYWxsVG9O
YXRpdmVGdW5jdGlvbih2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgRXhlY1N0YXRlKiosIFByb3Rv
Q2FsbEZyYW1lKiBwcm90b0NhbGxGcmFtZSwgUmVnaXN0ZXIqKQorRW5jb2RlZEpTVmFsdWUgY2Fs
bFRvTmF0aXZlRnVuY3Rpb24odm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFZNKiB2bSwgUHJvdG9D
YWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lKQogewotICAgIHJldHVybiBkb0NhbGxUb0phdmFTY3Jp
cHQ8ZXhlY3V0ZU5hdGl2ZT4oZXhlY3V0YWJsZUFkZHJlc3MsIHByb3RvQ2FsbEZyYW1lKTsKKyAg
ICBKU1ZhbHVlIHJlc3VsdCA9IENMb29wOjpleGVjdXRlKGxsaW50X2NhbGxfdG9fbmF0aXZlX2Z1
bmN0aW9uLCBleGVjdXRhYmxlQWRkcmVzcywgdm0sIHByb3RvQ2FsbEZyYW1lKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoSklUKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuaAppbmRleCA4YTg5NGFhNDFj
Mjg5MWY4Y2JiMzcyMDliZGFhMjk3ZDZhNjg5ZGM3Li4zNjE4Njk1MmNhZDg4ZGQyYzhkZTA0OGIx
ZjdjOGFiYTFhNGNiZmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRUaHVua3MuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVu
a3MuaApAQCAtMzQsMTYgKzM0LDE0IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBFeGVj
U3RhdGU7Ci1jbGFzcyBSZWdpc3RlcjsKIGNsYXNzIFZNOwogc3RydWN0IFByb3RvQ2FsbEZyYW1l
OwogCiBleHRlcm4gIkMiIHsKLSAgICBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZv
aWQqLCBFeGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJhbWUqLCBSZWdpc3RlciopOwotICAgIEVuY29k
ZWRKU1ZhbHVlIGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHZvaWQqLCBFeGVjU3RhdGUqKiwgUHJvdG9D
YWxsRnJhbWUqLCBSZWdpc3RlciopOworICAgIEVuY29kZWRKU1ZhbHVlIGNhbGxUb0phdmFTY3Jp
cHQodm9pZCosIFZNKiwgUHJvdG9DYWxsRnJhbWUqKTsKKyAgICBFbmNvZGVkSlNWYWx1ZSBjYWxs
VG9OYXRpdmVGdW5jdGlvbih2b2lkKiwgVk0qLCBQcm90b0NhbGxGcmFtZSopOwogI2lmIEVOQUJM
RShKSVQpCi0gICAgdm9pZCByZXR1cm5Gcm9tSmF2YVNjcmlwdCgpOworICAgIHZvaWQgaGFuZGxl
VW5jYXVnaHRFeGNlcHRpb24oKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KaW5kZXggYmU4NGRlZTM2NmNi
ZWRjMmIzZjE5NzdkMzkyMTQyYjBkOGE1N2UzYS4uMTllN2YzMzY1YThjNDA3ZWQxMDQwYTg3NTUz
MTBlYjY4Yjk1MWMyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtMzgsOSArMzgsMTIgQEAgY29uc3QgQ2FsbEZyYW1l
SGVhZGVyU2xvdHMgPSA2CiBlbHNlCiBjb25zdCBQdHJTaXplID0gNAogY29uc3QgQ2FsbEZyYW1l
SGVhZGVyU2xvdHMgPSA1Citjb25zdCBDYWxsRnJhbWVBbGlnblNsb3RzID0gMQogZW5kCiBjb25z
dCBTbG90U2l6ZSA9IDgKIAorY29uc3QgQ2FsbGVyRnJhbWVBbmRQQ1NpemUgPSAyICogUHRyU2l6
ZQorCiBjb25zdCBDYWxsZXJGcmFtZSA9IDAKIGNvbnN0IFJldHVyblBDID0gQ2FsbGVyRnJhbWUg
KyBQdHJTaXplCiBjb25zdCBDb2RlQmxvY2sgPSBSZXR1cm5QQyArIFB0clNpemUKQEAgLTcxLDYg
Kzc0LDE2IEBAIGNvbnN0IERlbGV0ZWRWYWx1ZVRhZyA9IC03CiBjb25zdCBMb3dlc3RUYWcgPSBE
ZWxldGVkVmFsdWVUYWcKIGVuZAogCitpZiBYODZfNjQgb3IgQVJNNjQgb3IgQ19MT09QCitjb25z
dCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDAKK2Vsc2lmIEFSTSBvciBBUk12N19U
UkFESVRJT05BTCBvciBBUk12NyBvciBTSDQKK2NvbnN0IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsID0gMjQKK2Vsc2lmIFg4NgorY29uc3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwgPSA0MAorZWxzaWYgTUlQUworY29uc3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwg
PSA0MAorZW5kCisKICMgV2F0Y2hwb2ludCBzdGF0ZXMKIGNvbnN0IENsZWFyV2F0Y2hwb2ludCA9
IDAKIGNvbnN0IElzV2F0Y2hlZCA9IDEKQEAgLTg1LDcgKzk4LDcgQEAgaWYgSlNWQUxVRTY0CiAg
ICAgIyAgIHRvIEMgZnVuY3Rpb25zLgogICAgICMgLSBDIGNhbGxzIGFyZSBzdGlsbCBnaXZlbiB0
aGUgSW5zdHJ1Y3Rpb24qIHJhdGhlciB0aGFuIHRoZSBQQyBpbmRleC4KICAgICAjICAgVGhpcyBy
ZXF1aXJlcyBhbiBhZGQgYmVmb3JlIHRoZSBjYWxsLCBhbmQgYSBzdWIgYWZ0ZXIuCi0gICAgY29u
c3QgUEMgPSB0NAorICAgIGNvbnN0IFBDID0gdDUKICAgICBjb25zdCBQQiA9IHQ2CiAgICAgY29u
c3QgdGFnVHlwZU51bWJlciA9IGNzcjEKICAgICBjb25zdCB0YWdNYXNrID0gY3NyMgpAQCAtMTAz
LDcgKzExNiw3IEBAIGlmIEpTVkFMVUU2NAogICAgIGVuZAogCiBlbHNlCi0gICAgY29uc3QgUEMg
PSB0NAorICAgIGNvbnN0IFBDID0gdDUKICAgICBtYWNybyBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24o
b2Zmc2V0LCBkZXN0KQogICAgICAgICBsb2FkaXMgb2Zmc2V0ICogNFtQQ10sIGRlc3QKICAgICBl
bmQKQEAgLTIxMCw2ICsyMjMsNTIgQEAgbWFjcm8gYXNzZXJ0KGFzc2VydGlvbikKICAgICBlbmQK
IGVuZAogCittYWNybyBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wUmVnLCBsb2NhdGlv
bikKKyAgICBpZiBBUk02NCBvciBDX0xPT1AKKyAgICAgICAgIyBBUk02NCB3aWxsIGNoZWNrIGZv
ciB1cyEKKyAgICAgICAgIyBDX0xPT1AgZG9lcyBub3QgbmVlZCB0aGUgYWxpZ25tZW50LCBhbmQg
Y2FuIHVzZSBhIGxpdHRsZSBwZXJmCisgICAgICAgICMgaW1wcm92ZW1lbnQgZnJvbSBhdm9pZGlu
ZyB1c2VsZXNzIHdvcmsuCisgICAgZWxzZQorICAgICAgICBpZiBBUk0gb3IgQVJNdjcgb3IgQVJN
djdfVFJBRElUSU9OQUwKKyAgICAgICAgICAgICMgQVJNIGNhbid0IGRvIGxvZ2ljYWwgb3BzIHdp
dGggdGhlIHNwIGFzIGEgc291cmNlCisgICAgICAgICAgICBtb3ZlIHNwLCB0ZW1wUmVnCisgICAg
ICAgICAgICBhbmRwIDB4ZiwgdGVtcFJlZworICAgICAgICBlbHNlCisgICAgICAgICAgICBhbmRw
IHNwLCAweGYsIHRlbXBSZWcKKyAgICAgICAgZW5kCisgICAgICAgIGJ0cHogdGVtcFJlZywgLnN0
YWNrUG9pbnRlck9rYXkKKyAgICAgICAgbW92ZSBsb2NhdGlvbiwgdGVtcFJlZworICAgICAgICBi
cmVhaworICAgIC5zdGFja1BvaW50ZXJPa2F5OgorICAgIGVuZAorZW5kCisKK21hY3JvIHByZXNl
cnZlQ2FsbGVyUENBbmRDRlIoKQorICAgIGlmIENfTE9PUCBvciBBUk0gb3IgQVJNdjcgb3IgQVJN
djdfVFJBRElUSU9OQUwgb3IgTUlQUyBvciBTSDQKKyAgICAgICAgcHVzaCBscgorICAgICAgICBw
dXNoIGNmcgorICAgIGVsc2lmIFg4NiBvciBYODZfNjQKKyAgICAgICAgcHVzaCBjZnIKKyAgICBl
bHNpZiBBUk02NAorICAgICAgICBwdXNoTFJBbmRGUAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IK
KyAgICBlbmQKKyAgICBtb3ZlIHNwLCBjZnIKK2VuZAorCittYWNybyByZXN0b3JlQ2FsbGVyUENB
bmRDRlIoKQorICAgIG1vdmUgY2ZyLCBzcAorICAgIGlmIENfTE9PUCBvciBBUk0gb3IgQVJNdjcg
b3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUyBvciBTSDQKKyAgICAgICAgcG9wIGNmcgorICAg
ICAgICBwb3AgbHIKKyAgICBlbHNpZiBYODYgb3IgWDg2XzY0CisgICAgICAgIHBvcCBjZnIKKyAg
ICBlbHNpZiBBUk02NAorICAgICAgICBwb3BMUkFuZEZQCisgICAgZW5kCitlbmQKKwogbWFjcm8g
cHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKGRlc3RpbmF0aW9uUmVnaXN0ZXIpCiAgICAg
aWYgQ19MT09QIG9yIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBBUk02NCBv
ciBNSVBTIG9yIFNINAogICAgICAgICAjIEluIENfTE9PUCBjYXNlLCB3ZSdyZSBvbmx5IHByZXNl
cnZpbmcgdGhlIGJ5dGVjb2RlIHZQQy4KQEAgLTIzMiwzMSArMjkxLDEyMiBAQCBtYWNybyByZXN0
b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihzb3VyY2VSZWdpc3RlcikKICAgICBlbmQKIGVu
ZAogCittYWNybyBmdW5jdGlvblByb2xvZ3VlKCkKKyAgICBpZiBYODYgb3IgWDg2XzY0CisgICAg
ICAgIHB1c2ggY2ZyCisgICAgZWxzaWYgQVJNNjQKKyAgICAgICAgcHVzaExSQW5kRlAKKyAgICBl
bHNpZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMK
KyAgICAgICAgcHVzaCBscgorICAgICAgICBwdXNoIGNmcgorICAgIGVuZAorICAgIG1vdmUgc3As
IGNmcgorZW5kCisKK21hY3JvIGZ1bmN0aW9uRXBpbG9ndWUoKQorICAgIGlmIFg4NiBvciBYODZf
NjQKKyAgICAgICAgcG9wIGNmcgorICAgIGVsc2lmIEFSTTY0CisgICAgICAgIHBvcExSQW5kRlAK
KyAgICBlbHNpZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9y
IE1JUFMKKyAgICAgICAgcG9wIGNmcgorICAgICAgICBwb3AgbHIKKyAgICBlbmQKK2VuZAorCitt
YWNybyBjYWxsVG9KYXZhU2NyaXB0UHJvbG9ndWUoKQorICAgIGlmIFg4Nl82NAorICAgICAgICBw
dXNoIGNmcgorICAgICAgICBwdXNoIHQwCisgICAgZWxzaWYgWDg2CisgICAgICAgIHB1c2ggY2Zy
CisgICAgZWxzaWYgQVJNNjQKKyAgICAgICAgcHVzaExSQW5kRlAKKyAgICBlbHNpZiBDX0xPT1Ag
b3IgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMKKyAgICAgICAgcHVz
aCBscgorICAgICAgICBwdXNoIGNmcgorICAgIGVuZAorICAgIHB1c2hDYWxsZWVTYXZlcworICAg
IGlmIFg4NgorICAgICAgICBzdWJwIDEyLCBzcAorICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBB
Uk12N19UUkFESVRJT05BTAorICAgICAgICBzdWJwIDQsIHNwCisgICAgICAgIG1vdmUgc3AsIHQ0
CisgICAgICAgIGNscmJwIHQ0LCAweGYsIHQ1CisgICAgICAgIG1vdmUgdDUsIHNwCisgICAgICAg
IHN0b3JlcCB0NCwgW3NwXQorICAgIGVuZAorZW5kCisKK21hY3JvIGNhbGxUb0phdmFTY3JpcHRF
cGlsb2d1ZSgpCisgICAgYWRkcCBDYWxsRnJhbWVIZWFkZXJTbG90cyAqIDgsIGNmciwgc3AKKyAg
ICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJdLCBjZnIKKworICAgIGlmIFg4NgorICAgICAgICBhZGRw
IDEyLCBzcAorICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTAorICAg
ICAgICBwb3AgdDQKKyAgICAgICAgbW92ZSB0NCwgc3AKKyAgICAgICAgYWRkcCA0LCBzcAorICAg
IGVuZAorCisgICAgcG9wQ2FsbGVlU2F2ZXMKKyAgICBpZiBYODZfNjQKKyAgICAgICAgcG9wIHQy
CisgICAgICAgIHBvcCBjZnIKKyAgICBlbHNpZiBYODYKKyAgICAgICAgcG9wIGNmcgorICAgIGVs
c2lmIEFSTTY0CisgICAgICAgIHBvcExSQW5kRlAKKyAgICBlbHNpZiBDX0xPT1Agb3IgQVJNIG9y
IEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMKKyAgICAgICAgcG9wIGNmcgorICAg
ICAgICBwb3AgbHIKKyAgICBlbmQKK2VuZAorCittYWNybyBtb3ZlU3RhY2tQb2ludGVyRm9yQ29k
ZUJsb2NrKGNvZGVCbG9jaywgc2NyYXRjaCkKKyAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVtQ2Fs
bGVlUmVnaXN0ZXJzW2NvZGVCbG9ja10sIHNjcmF0Y2gKKyAgICBsc2hpZnRwIDMsIHNjcmF0Y2gK
KyAgICBhZGRwIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCBzY3JhdGNoCisgICAgc3Vi
cCBjZnIsIHNjcmF0Y2gsIHNwCitlbmQKKworbWFjcm8gcmVzdG9yZVN0YWNrUG9pbnRlckFmdGVy
Q2FsbCgpCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQyCisgICAgbW92ZVN0YWNrUG9pbnRl
ckZvckNvZGVCbG9jayh0MiwgdDQpCitlbmQKKwogbWFjcm8gdHJhY2VFeGVjdXRpb24oKQogICAg
IGlmIEVYRUNVVElPTl9UUkFDSU5HCiAgICAgICAgIGNhbGxTbG93UGF0aChfbGxpbnRfdHJhY2Up
CiAgICAgZW5kCiBlbmQKIAotbWFjcm8gY2FsbFRhcmdldEZ1bmN0aW9uKGNhbGxMaW5rSW5mbykK
K21hY3JvIGNhbGxUYXJnZXRGdW5jdGlvbihjYWxsTGlua0luZm8sIGNhbGxlZUZyYW1lUHRyKQor
ICAgIG1vdmUgY2FsbGVlRnJhbWVQdHIsIHNwCiAgICAgaWYgQ19MT09QCiAgICAgICAgIGNsb29w
Q2FsbEpTRnVuY3Rpb24gTExJbnRDYWxsTGlua0luZm86Om1hY2hpbmVDb2RlVGFyZ2V0W2NhbGxM
aW5rSW5mb10KICAgICBlbHNlCiAgICAgICAgIGNhbGwgTExJbnRDYWxsTGlua0luZm86Om1hY2hp
bmVDb2RlVGFyZ2V0W2NhbGxMaW5rSW5mb10KLSAgICAgICAgZGlzcGF0Y2hBZnRlckNhbGwoKQog
ICAgIGVuZAorICAgIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQorICAgIGRpc3BhdGNo
QWZ0ZXJDYWxsKCkKIGVuZAogCiBtYWNybyBzbG93UGF0aEZvckNhbGwoc2xvd1BhdGgpCiAgICAg
Y2FsbENhbGxTbG93UGF0aCgKICAgICAgICAgc2xvd1BhdGgsCiAgICAgICAgIG1hY3JvIChjYWxs
ZWUpCisgICAgICAgICAgICBidHB6IHQxLCAuZG9udFVwZGF0ZVNQCisgICAgICAgICAgICBhZGRw
IENhbGxlckZyYW1lQW5kUENTaXplLCB0MSwgc3AKKyAgICAgICAgLmRvbnRVcGRhdGVTUDoKICAg
ICAgICAgICAgIGlmIENfTE9PUAogICAgICAgICAgICAgICAgIGNsb29wQ2FsbEpTRnVuY3Rpb24g
Y2FsbGVlCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgY2FsbCBjYWxsZWUKLSAg
ICAgICAgICAgICAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCiAgICAgICAgICAgICBlbmQKKyAgICAg
ICAgICAgIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQorICAgICAgICAgICAgZGlzcGF0
Y2hBZnRlckNhbGwoKQogICAgICAgICBlbmQpCiBlbmQKIApAQCAtMzI1LDI2ICs0NzUsNDggQEAg
ZW5kCiAjIERvIHRoZSBiYXJlIG1pbmltdW0gcmVxdWlyZWQgdG8gZXhlY3V0ZSBjb2RlLiBTZXRz
IHVwIHRoZSBQQywgbGVhdmUgdGhlIENvZGVCbG9jayoKICMgaW4gdDEuIE1heSBhbHNvIHRyaWdn
ZXIgcHJvbG9ndWUgZW50cnkgT1NSLgogbWFjcm8gcHJvbG9ndWUoY29kZUJsb2NrR2V0dGVyLCBj
b2RlQmxvY2tTZXR0ZXIsIG9zclNsb3dQYXRoLCB0cmFjZVNsb3dQYXRoKQotICAgIHByZXNlcnZl
UmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MikKLSAgICAKICAgICAjIFNldCB1cCB0aGUgY2FsbCBm
cmFtZSBhbmQgY2hlY2sgaWYgd2Ugc2hvdWxkIE9TUi4KLSAgICBzdG9yZXAgdDIsIFJldHVyblBD
W2Nmcl0KKyAgICBwcmVzZXJ2ZUNhbGxlclBDQW5kQ0ZSKCkKKwogICAgIGlmIEVYRUNVVElPTl9U
UkFDSU5HCisgICAgICAgIHN1YnAgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwsIHNwCiAg
ICAgICAgIGNhbGxTbG93UGF0aCh0cmFjZVNsb3dQYXRoKQorICAgICAgICBhZGRwIG1heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCBzcAogICAgIGVuZAogICAgIGNvZGVCbG9ja0dldHRlcih0
MSkKK2lmIENfTE9PUAorZWxzZQogICAgIGJhZGRpcyA1LCBDb2RlQmxvY2s6Om1fbGxpbnRFeGVj
dXRlQ291bnRlciArIEV4ZWN1dGlvbkNvdW50ZXI6Om1fY291bnRlclt0MV0sIC5jb250aW51ZQot
ICAgIGNDYWxsMihvc3JTbG93UGF0aCwgY2ZyLCBQQykKLSAgICBtb3ZlIHQxLCBjZnIKKyAgICBp
ZiBKU1ZBTFVFNjQKKyAgICAgICAgY0NhbGwyKG9zclNsb3dQYXRoLCBjZnIsIFBDKQorICAgIGVs
c2UKKyAgICAgICAgIyBXZSBhcmUgYWZ0ZXIgdGhlIGZ1bmN0aW9uIHByb2xvZ3VlLCBidXQgYmVm
b3JlIHdlIGhhdmUgc2V0IHVwIHNwIGZyb20gdGhlIENvZGVCbG9jay4KKyAgICAgICAgIyBUZW1w
b3JhcmlseSBhbGlnbiBzdGFjayBwb2ludGVyIGZvciB0aGlzIGNhbGwuCisgICAgICAgIHN1YnAg
OCwgc3AKKyAgICAgICAgY0NhbGwyKG9zclNsb3dQYXRoLCBjZnIsIFBDKQorICAgICAgICBhZGRw
IDgsIHNwCisgICAgZW5kCiAgICAgYnRweiB0MCwgLnJlY292ZXIKLSAgICBsb2FkcCBSZXR1cm5Q
Q1tjZnJdLCB0MgotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQyKQorICAg
IG1vdmUgY2ZyLCBzcCAjIHJlc3RvcmUgdGhlIHByZXZpb3VzIHNwCisgICAgIyBwb3AgdGhlIGNh
bGxlckZyYW1lIHNpbmNlIHdlIHdpbGwganVtcCB0byBhIGZ1bmN0aW9uIHRoYXQgd2FudHMgdG8g
c2F2ZSBpdAorICAgIGlmIEFSTTY0CisgICAgICAgIHBvcExSQW5kRlAKKyAgICBlbHNpZiBBUk0g
b3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUyBvciBTSDQKKyAgICAgICAgcG9w
IGNmcgorICAgICAgICBwb3AgbHIKKyAgICBlbHNlCisgICAgICAgIHBvcCBjZnIKKyAgICBlbmQK
ICAgICBqbXAgdDAKIC5yZWNvdmVyOgogICAgIGNvZGVCbG9ja0dldHRlcih0MSkKIC5jb250aW51
ZToKK2VuZAorCiAgICAgY29kZUJsb2NrU2V0dGVyKHQxKQogICAgIAorICAgIG1vdmVTdGFja1Bv
aW50ZXJGb3JDb2RlQmxvY2sodDEsIHQyKQorCiAgICAgIyBTZXQgdXAgdGhlIFBDLgogICAgIGlm
IEpTVkFMVUU2NAogICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW3QxXSwg
UEIKQEAgLTM4OSwxNCArNTYxLDE2IEBAIG1hY3JvIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24ocHJv
ZmlsZUFyZ1NraXApCiAgICAgICAgIAogICAgICMgQ2hlY2sgc3RhY2sgaGVpZ2h0LgogICAgIGxv
YWRpIENvZGVCbG9jazo6bV9udW1DYWxsZWVSZWdpc3RlcnNbdDFdLCB0MAotICAgIGFkZGkgMSwg
dDAgIyBBY2NvdW50IHRoYXQgbG9jYWwwIGdvZXMgYXQgc2xvdCAtMQogICAgIGxvYWRwIENvZGVC
bG9jazo6bV92bVt0MV0sIHQyCiAgICAgbHNoaWZ0cCAzLCB0MAorICAgIGFkZGkgbWF4RnJhbWVF
eHRlbnRGb3JTbG93UGF0aENhbGwsIHQwCiAgICAgc3VicCBjZnIsIHQwLCB0MAogICAgIGJwYmVx
IFZNOjptX2pzU3RhY2tMaW1pdFt0Ml0sIHQwLCAuc3RhY2tIZWlnaHRPSwogCiAgICAgIyBTdGFj
ayBoZWlnaHQgY2hlY2sgZmFpbGVkIC0gbmVlZCB0byBjYWxsIGEgc2xvd19wYXRoLgogICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc3RhY2tfY2hlY2spCisgICAgYnBlcSB0MSwgMCwgLnN0YWNrSGVp
Z2h0T0sKKyAgICBtb3ZlIHQxLCBjZnIKIC5zdGFja0hlaWdodE9LOgogZW5kCiAKQEAgLTQyMywy
NSArNTk3LDY5IEBAIG1hY3JvIGFsbG9jYXRlSlNPYmplY3QoYWxsb2NhdG9yLCBzdHJ1Y3R1cmUs
IHJlc3VsdCwgc2NyYXRjaDEsIHNsb3dDYXNlKQogZW5kCiAKIG1hY3JvIGRvUmV0dXJuKCkKLSAg
ICBsb2FkcCBSZXR1cm5QQ1tjZnJdLCB0MgotICAgIGxvYWRwIENhbGxlckZyYW1lW2Nmcl0sIGNm
cgotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQyKQorICAgIHJlc3RvcmVD
YWxsZXJQQ0FuZENGUigpCiAgICAgcmV0CiBlbmQKIAotaWYgQ19MT09QCi1lbHNlCiAjIHN0dWIg
dG8gY2FsbCBpbnRvIEphdmFTY3JpcHQgb3IgTmF0aXZlIGZ1bmN0aW9ucwotIyBFbmNvZGVkSlNW
YWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqIGNvZGUsIEV4ZWNTdGF0ZSoqIHZtLCBQcm90b0Nh
bGxGcmFtZSogcHJvdG9GcmFtZSwgUmVnaXN0ZXIqIHRvcE9mU3RhY2spCi0jIEVuY29kZWRKU1Zh
bHVlIGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHZvaWQqIGNvZGUsIEV4ZWNTdGF0ZSoqIHZtLCBQcm90
b0NhbGxGcmFtZSogcHJvdG9GcmFtZSwgUmVnaXN0ZXIqIHRvcE9mU3RhY2spCisjIEVuY29kZWRK
U1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQodm9pZCogY29kZSwgRXhlY1N0YXRlKiogdm1Ub3BDYWxs
RnJhbWUsIFByb3RvQ2FsbEZyYW1lKiBwcm90b0ZyYW1lKQorIyBFbmNvZGVkSlNWYWx1ZSBjYWxs
VG9OYXRpdmVGdW5jdGlvbih2b2lkKiBjb2RlLCBFeGVjU3RhdGUqKiB2bVRvcENhbGxGcmFtZSwg
UHJvdG9DYWxsRnJhbWUqIHByb3RvRnJhbWUpCiAjIE5vdGUsIGlmIHRoZXNlIHN0dWJzIG9yIG9u
ZSBvZiB0aGVpciByZWxhdGVkIG1hY3JvcyBhcmUgY2hhbmdlZCwgbWFrZSB0aGUKICMgZXF1aXZh
bGVudCBjaGFuZ2VzIGluIGppdC9KSVRTdHVic1g4Ni5oIGFuZC9vciBqaXQvSklUU3R1YnNNU1ZD
NjQuYXNtCisKK2lmIENfTE9PUAorX2xsaW50X2NhbGxfdG9famF2YXNjcmlwdDoKK2Vsc2UKIF9j
YWxsVG9KYXZhU2NyaXB0OgotICAgIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlSmF2YVNjcmlwdENh
bGwsIGRvUmV0dXJuRnJvbUphdmFTY3JpcHQpCitlbmQKKyAgICBkb0NhbGxUb0phdmFTY3JpcHQo
bWFrZUphdmFTY3JpcHRDYWxsKQogCisKK2lmIENfTE9PUAorX2xsaW50X2NhbGxfdG9fbmF0aXZl
X2Z1bmN0aW9uOgorZWxzZQogX2NhbGxUb05hdGl2ZUZ1bmN0aW9uOgotICAgIGRvQ2FsbFRvSmF2
YVNjcmlwdChtYWtlSG9zdEZ1bmN0aW9uQ2FsbCwgZG9SZXR1cm5Gcm9tSG9zdEZ1bmN0aW9uKQog
ZW5kCisgICAgZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VIb3N0RnVuY3Rpb25DYWxsKQorCisKK2lm
IENfTE9PUAorZWxzZQorIyB2b2lkIHNhbml0aXplU3RhY2tGb3JWTUltcGwoVk0qIHZtKQorX3Nh
bml0aXplU3RhY2tGb3JWTUltcGw6CisgICAgaWYgWDg2XzY0CisgICAgICAgIGNvbnN0IHZtID0g
dDQKKyAgICAgICAgY29uc3QgYWRkcmVzcyA9IHQxCisgICAgICAgIGNvbnN0IHplcm9WYWx1ZSA9
IHQwCisgICAgZWxzaWYgWDg2CisgICAgICAgIGNvbnN0IHZtID0gdDIKKyAgICAgICAgY29uc3Qg
YWRkcmVzcyA9IHQxCisgICAgICAgIGNvbnN0IHplcm9WYWx1ZSA9IHQwCisgICAgZWxzZQorICAg
ICAgICBjb25zdCB2bSA9IGEwCisgICAgICAgIGNvbnN0IGFkZHJlc3MgPSB0MQorICAgICAgICBj
b25zdCB6ZXJvVmFsdWUgPSB0MgorICAgIGVuZAorCisgICAgaWYgWDg2CisgICAgICAgIGxvYWRw
IDRbc3BdLCB2bQorICAgIGVuZAorCisgICAgbG9hZHAgVk06Om1fbGFzdFN0YWNrVG9wW3ZtXSwg
YWRkcmVzcworICAgIGJwYmVxIHNwLCBhZGRyZXNzLCAuemVyb0ZpbGxEb25lCisKKyAgICBtb3Zl
IDAsIHplcm9WYWx1ZQorLnplcm9GaWxsTG9vcDoKKyAgICBzdG9yZXAgemVyb1ZhbHVlLCBbYWRk
cmVzc10KKyAgICBhZGRwIFB0clNpemUsIGFkZHJlc3MKKyAgICBicGEgc3AsIGFkZHJlc3MsIC56
ZXJvRmlsbExvb3AKKworLnplcm9GaWxsRG9uZToKKyAgICBtb3ZlIHNwLCBhZGRyZXNzCisgICAg
c3RvcmVwIGFkZHJlc3MsIFZNOjptX2xhc3RTdGFja1RvcFt2bV0KKyAgICByZXQKK2VuZAorCiAK
ICMgSW5kaWNhdGUgdGhlIGJlZ2lubmluZyBvZiBMTEludC4KIF9sbGludF9iZWdpbjoKQEAgLTcz
MSw4ICs5NDksMTUgQEAgX2xsaW50X29wX2NvbnN0cnVjdDoKIAogX2xsaW50X29wX2NhbGxfdmFy
YXJnczoKICAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfc2l6ZV9hbmRfYWxsb2NfZnJhbWVfZm9yX3ZhcmFyZ3MpCisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfc2l6ZV9mcmFtZV9mb3JfdmFyYXJncykKICAgICBicmFuY2hJZkV4
Y2VwdGlvbihfbGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZSkKKyAgICAjIGNh
bGxlZUZyYW1lIGluIHQxCisgICAgaWYgSlNWQUxVRTY0CisgICAgICAgIG1vdmUgdDEsIHNwCisg
ICAgZWxzZQorICAgICAgICAjIFRoZSBjYWxsZWVGcmFtZSBpcyBub3Qgc3RhY2sgYWxpZ25lZCwg
bW92ZSBkb3duIGJ5IENhbGxlckZyYW1lQW5kUENTaXplIHRvIGFsaWduCisgICAgICAgIHN1YnAg
dDEsIENhbGxlckZyYW1lQW5kUENTaXplLCBzcAorICAgIGVuZAogICAgIHNsb3dQYXRoRm9yQ2Fs
bChfbGxpbnRfc2xvd19wYXRoX2NhbGxfdmFyYXJncykKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5jcHAKaW5kZXggNDgxNDhjNmY0
NTRmOTI5NGMyMDM4YzIzZjdkY2IyYmM5YmQ0ZjRjMi4uOWJjNTVkZTI0NDZjMmRiNzg5YzA2N2E1
MTc4YzA0YzFiMTFhZDllYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEyLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTAsNiArOTAsMTIgQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzo6TExJbnQ7CiAjZGVmaW5lIE9GRkxJTkVfQVNNX0JFR0lOCiAjZGVmaW5lIE9GRkxJTkVf
QVNNX0VORAogCisjaWYgRU5BQkxFKE9QQ09ERV9UUkFDSU5HKQorI2RlZmluZSBUUkFDRV9PUENP
REUob3Bjb2RlKSBkYXRhTG9nRigiICAgb3AgJXNcbiIsICNvcGNvZGUpCisjZWxzZQorI2RlZmlu
ZSBUUkFDRV9PUENPREUob3Bjb2RlKQorI2VuZGlmCisKIC8vIFRvIGtlZXAgY29tcGlsZXJzIGhh
cHB5IGluIGNhc2Ugb2YgdW51c2VkIGxhYmVscywgZm9yY2UgdXNhZ2Ugb2YgdGhlIGxhYmVsOgog
I2RlZmluZSBVU0VfTEFCRUwobGFiZWwpIFwKICAgICBkbyB7IFwKQEAgLTk3LDcgKzEwMyw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M6OkxMSW50OwogICAgICAgICAgICAgZ290byBsYWJlbDsgXAog
ICAgIH0gd2hpbGUgKGZhbHNlKQogCi0jZGVmaW5lIE9GRkxJTkVfQVNNX09QQ09ERV9MQUJFTChv
cGNvZGUpIERFRklORV9PUENPREUob3Bjb2RlKSBVU0VfTEFCRUwob3Bjb2RlKTsKKyNkZWZpbmUg
T0ZGTElORV9BU01fT1BDT0RFX0xBQkVMKG9wY29kZSkgREVGSU5FX09QQ09ERShvcGNvZGUpIFVT
RV9MQUJFTChvcGNvZGUpOyBUUkFDRV9PUENPREUob3Bjb2RlKTsKIAogI2lmIEVOQUJMRShDT01Q
VVRFRF9HT1RPX09QQ09ERVMpCiAjZGVmaW5lIE9GRkxJTkVfQVNNX0dMVUVfTEFCRUwobGFiZWwp
ICBsYWJlbDogVVNFX0xBQkVMKGxhYmVsKTsKQEAgLTIxMiwxMCArMjE4LDE0IEBAIHN0cnVjdCBD
TG9vcFJlZ2lzdGVyIHsKICNlbmRpZiAvLyAhQ1BVKEJJR19FTkRJQU4pCiAjZW5kaWYgLy8gIVVT
RShKU1ZBTFVFNjQpCiAKKyAgICAgICAgaW50cHRyX3QqIGlwOwogICAgICAgICBpbnQ4X3QqIGk4
cDsKICAgICAgICAgdm9pZCogdnA7CisgICAgICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOwogICAg
ICAgICBFeGVjU3RhdGUqIGV4ZWNTdGF0ZTsKICAgICAgICAgdm9pZCogaW5zdHJ1Y3Rpb247Cisg
ICAgICAgIFZNKiB2bTsKKyAgICAgICAgUHJvdG9DYWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lOwog
ICAgICAgICBOYXRpdmVGdW5jdGlvbiBuYXRpdmVGdW5jOwogI2lmIFVTRShKU1ZBTFVFNjQpCiAg
ICAgICAgIGludDY0X3QgaTY0OwpAQCAtMjI2LDYgKzIzNiwxMiBAQCBzdHJ1Y3QgQ0xvb3BSZWdp
c3RlciB7CiAgICAgICAgIE9wY29kZSBvcGNvZGU7CiAgICAgfTsKIAorICAgIG9wZXJhdG9yIEV4
ZWNTdGF0ZSooKSB7IHJldHVybiBleGVjU3RhdGU7IH0KKyAgICBvcGVyYXRvciBJbnN0cnVjdGlv
biooKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PEluc3RydWN0aW9uKj4oaW5zdHJ1Y3Rpb24p
OyB9CisgICAgb3BlcmF0b3IgVk0qKCkgeyByZXR1cm4gdm07IH0KKyAgICBvcGVyYXRvciBQcm90
b0NhbGxGcmFtZSooKSB7IHJldHVybiBwcm90b0NhbGxGcmFtZTsgfQorICAgIG9wZXJhdG9yIFJl
Z2lzdGVyKigpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UmVnaXN0ZXIqPih2cCk7IH0KKwog
I2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgaW5saW5lIHZvaWQgY2xlYXJIaWdoV29yZCgpIHsgaTMy
cGFkZGluZyA9IDA7IH0KICNlbHNlCkBAIC0yMzcsNyArMjUzLDcgQEAgc3RydWN0IENMb29wUmVn
aXN0ZXIgewogLy8gVGhlIGxsaW50IEMrKyBpbnRlcnByZXRlciBsb29wOgogLy8KIAotSlNWYWx1
ZSBDTG9vcDo6ZXhlY3V0ZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwgT3Bjb2RlIGVudHJ5T3Bjb2Rl
LCBib29sIGlzSW5pdGlhbGl6YXRpb25QYXNzKQorSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0ZShPcGNv
ZGVJRCBlbnRyeU9wY29kZUlELCB2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgVk0qIHZtLCBQcm90
b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWUsIGJvb2wgaXNJbml0aWFsaXphdGlvblBhc3MpCiB7
CiAgICAgI2RlZmluZSBDQVNUIHJlaW50ZXJwcmV0X2Nhc3QKICAgICAjZGVmaW5lIFNJR05fQklU
MzIoeCkgKCh4KSAmIDB4ODAwMDAwMDApCkBAIC0yNzIsOCArMjg4LDYgQEAgSlNWYWx1ZSBDTG9v
cDo6ZXhlY3V0ZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwgT3Bjb2RlIGVudHJ5T3Bjb2RlLCBib29s
IGlzSW5pdGlhbGkKICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAgICB9CiAKLSAgICBBU1NF
UlQoY2FsbEZyYW1lLT52bSgpLnRvcENhbGxGcmFtZSA9PSBjYWxsRnJhbWUpOwotCiAgICAgLy8g
RGVmaW5lIHRoZSBwc2V1ZG8gcmVnaXN0ZXJzIHVzZWQgYnkgdGhlIExMSU5UIEMgTG9vcCBiYWNr
ZW5kOgogICAgIEFTU0VSVChzaXplb2YoQ0xvb3BSZWdpc3RlcikgPT0gc2l6ZW9mKGludHB0cl90
KSk7CiAKQEAgLTMwOCw1MCArMzIyLDQ4IEBAIEpTVmFsdWUgQ0xvb3A6OmV4ZWN1dGUoQ2FsbEZy
YW1lKiBjYWxsRnJhbWUsIE9wY29kZSBlbnRyeU9wY29kZSwgYm9vbCBpc0luaXRpYWxpCiAgICAg
Ly8gMi4gMzIgYml0IHJlc3VsdCB2YWx1ZXMgd2lsbCBiZSBpbiB0aGUgbG93IDMyLWJpdCBvZiB0
MC4KICAgICAvLyAzLiA2NCBiaXQgcmVzdWx0IHZhbHVlcyB3aWxsIGJlIGluIHQwLgogCi0gICAg
Q0xvb3BSZWdpc3RlciB0MCwgdDEsIHQyLCB0MzsKKyAgICBDTG9vcFJlZ2lzdGVyIHQwLCB0MSwg
dDIsIHQzLCB0NSwgc3AsIGNmciwgbHIsIHBjOwogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgQ0xv
b3BSZWdpc3RlciByQmFzZVBDLCB0YWdUeXBlTnVtYmVyLCB0YWdNYXNrOworICAgIENMb29wUmVn
aXN0ZXIgcGNCYXNlLCB0YWdUeXBlTnVtYmVyLCB0YWdNYXNrOwogI2VuZGlmCi0gICAgQ0xvb3BS
ZWdpc3RlciByUmV0VlBDOwogICAgIENMb29wRG91YmxlUmVnaXN0ZXIgZDAsIGQxOwogCi0gICAg
Ly8gS2VlcCB0aGUgY29tcGlsZXIgaGFwcHkuIFdlIGRvbid0IHJlYWxseSBuZWVkIHRoaXMsIGJ1
dCB0aGUgY29tcGlsZXIKLSAgICAvLyB3aWxsIGNvbXBsYWluLiBUaGlzIG1ha2VzIHRoZSB3YXJu
aW5nIGdvIGF3YXkuCi0gICAgdDAuaSA9IDA7Ci0gICAgdDEuaSA9IDA7Ci0KLSAgICBWTSogdm0g
PSAmY2FsbEZyYW1lLT52bSgpOwotCi0gICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJh
bWUtPmNvZGVCbG9jaygpOwotICAgIEluc3RydWN0aW9uKiB2UEM7CisgICAgbHIub3Bjb2RlID0g
Z2V0T3Bjb2RlKGxsaW50X3JldHVybl90b19ob3N0KTsKKyAgICBzcC52cCA9IHZtLT5pbnRlcnBy
ZXRlci0+c3RhY2soKS50b3BPZlN0YWNrKCkgKyAxOworICAgIGNmci5jYWxsRnJhbWUgPSB2bS0+
dG9wQ2FsbEZyYW1lOworI2lmbmRlZiBOREVCVUcKKyAgICB2b2lkKiBzdGFydFNQID0gc3AudnA7
CisgICAgQ2FsbEZyYW1lKiBzdGFydENGUiA9IGNmci5jYWxsRnJhbWU7CisjZW5kaWYKIAotICAg
IC8vIHJQQyBpcyBhbiBhbGlhcyBmb3IgdlBDLiBTZXQgdXAgdGhlIGFsaWFzOgotICAgIENMb29w
UmVnaXN0ZXImIHJQQyA9ICpDQVNUPENMb29wUmVnaXN0ZXIqPigmdlBDKTsKLQotI2lmIFVTRShK
U1ZBTFVFMzJfNjQpCi0gICAgdlBDID0gY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigp
OwotI2Vsc2UgLy8gVVNFKEpTVkFMVUU2NCkKLSAgICB2UEMgPSAwOwotICAgIHJCYXNlUEMudnAg
PSBjb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7CisgICAgLy8gSW5pdGlhbGl6ZSB0
aGUgaW5jb21pbmcgYXJncyBmb3IgZG9DYWxsVG9KYXZhU2NyaXB0OgorICAgIHQwLnZwID0gZXhl
Y3V0YWJsZUFkZHJlc3M7CisgICAgdDEudm0gPSB2bTsKKyAgICB0Mi5wcm90b0NhbGxGcmFtZSA9
IHByb3RvQ2FsbEZyYW1lOwogCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAvLyBGb3IgdGhlIEFT
TSBsbGludCwgSklUU3R1YnMgdGFrZXMgY2FyZSBvZiB0aGlzIGluaXRpYWxpemF0aW9uLiBXZSBk
bwogICAgIC8vIGl0IGV4cGxpY2l0bHkgaGVyZSBmb3IgdGhlIEMgbG9vcDoKICAgICB0YWdUeXBl
TnVtYmVyLmkgPSAweEZGRkYwMDAwMDAwMDAwMDA7CiAgICAgdGFnTWFzay5pID0gMHhGRkZGMDAw
MDAwMDAwMDAyOwogI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiAKLSAgICAvLyBjZnIgaXMgYW4g
YWxpYXMgZm9yIGNhbGxGcmFtZS4gU2V0IHVwIHRoaXMgYWxpYXM6Ci0gICAgQ0xvb3BSZWdpc3Rl
ciYgY2ZyID0gKkNBU1Q8Q0xvb3BSZWdpc3Rlcio+KCZjYWxsRnJhbWUpOwotCi0gICAgLy8gU2lt
dWxhdGUgYSBuYXRpdmUgcmV0dXJuIFBDIHdoaWNoIHNob3VsZCBuZXZlciBiZSB1c2VkOgotICAg
IHJSZXRWUEMuaSA9IDB4YmJhZGJlZWY7Ci0KICAgICAvLyBJbnRlcnByZXRlciB2YXJpYWJsZXMg
Zm9yIHZhbHVlIHBhc3NpbmcgYmV0d2VlbiBvcGNvZGVzIGFuZC9vciBoZWxwZXJzOgogICAgIE5h
dGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmMgPSAwOwogICAgIEpTVmFsdWUgZnVuY3Rpb25SZXR1cm5W
YWx1ZTsKLSAgICBPcGNvZGUgb3Bjb2RlOworICAgIE9wY29kZSBvcGNvZGUgPSBnZXRPcGNvZGUo
ZW50cnlPcGNvZGVJRCk7CiAKLSAgICBvcGNvZGUgPSBlbnRyeU9wY29kZTsKKyAgICAjZGVmaW5l
IFBVU0goY2xvb3BSZWcpIFwKKyAgICAgICAgZG8geyBcCisgICAgICAgICAgICBzcC5pcC0tOyBc
CisgICAgICAgICAgICAqc3AuaXAgPSBjbG9vcFJlZy5pOyBcCisgICAgICAgIH0gd2hpbGUgKGZh
bHNlKQorICAgIAorICAgICNkZWZpbmUgUE9QKGNsb29wUmVnKSBcCisgICAgICAgIGRvIHsgXAor
ICAgICAgICAgICAgY2xvb3BSZWcuaSA9ICpzcC5pcDsgXAorICAgICAgICAgICAgc3AuaXArKzsg
XAorICAgICAgICB9IHdoaWxlIChmYWxzZSkKIAogICAgICNpZiBFTkFCTEUoT1BDT0RFX1NUQVRT
KQogICAgICAgICAjZGVmaW5lIFJFQ09SRF9PUENPREVfU1RBVFMoX19vcGNvZGUpIFwKQEAgLTM2
MSw5ICszNzMsOSBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKENhbGxGcmFtZSogY2FsbEZyYW1l
LCBPcGNvZGUgZW50cnlPcGNvZGUsIGJvb2wgaXNJbml0aWFsaQogICAgICNlbmRpZgogCiAgICAg
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgICNkZWZpbmUgRkVUQ0hfT1BDT0RFKCkgdlBD
LT51Lm9wY29kZQorICAgICAgICAjZGVmaW5lIEZFVENIX09QQ09ERSgpIHBjLm9wY29kZQogICAg
ICNlbHNlIC8vIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICNkZWZpbmUgRkVUQ0hfT1BDT0RFKCkg
KmJpdHdpc2VfY2FzdDxPcGNvZGUqPihyQmFzZVBDLmk4cCArIHJQQy5pICogOCkKKyAgICAgICAg
I2RlZmluZSBGRVRDSF9PUENPREUoKSAqYml0d2lzZV9jYXN0PE9wY29kZSo+KHBjQmFzZS5pOHAg
KyBwYy5pICogOCkKICAgICAjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKIAogICAgICNkZWZpbmUg
TkVYVF9JTlNUUlVDVElPTigpIFwKQEAgLTQxMiwxNCArNDI0LDIyIEBAIEpTVmFsdWUgQ0xvb3A6
OmV4ZWN1dGUoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIE9wY29kZSBlbnRyeU9wY29kZSwgYm9vbCBp
c0luaXRpYWxpCiAKICAgICAgICAgI2luY2x1ZGUgIkxMSW50QXNzZW1ibHkuaCIKIAorICAgICAg
ICBPRkZMSU5FX0FTTV9HTFVFX0xBQkVMKGxsaW50X3JldHVybl90b19ob3N0KQorICAgICAgICB7
CisgICAgICAgICAgICBBU1NFUlQoc3RhcnRTUCA9PSBzcC52cCk7CisgICAgICAgICAgICBBU1NF
UlQoc3RhcnRDRlIgPT0gY2ZyLmNhbGxGcmFtZSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlKHQxLmksIHQwLmkpOyAvLyByZXR1cm5pbmcgSlNWYWx1
ZSh0YWcsIHBheWxvYWQpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpkZWNv
ZGUodDAuZW5jb2RlZEpTVmFsdWUpOworI2VuZGlmCisgICAgICAgIH0KKwogICAgICAgICAvLyBJ
biB0aGUgQVNNIGxsaW50LCBnZXRIb3N0Q2FsbFJldHVyblZhbHVlKCkgaXMgYSBwaWVjZSBvZiBn
bHVlCi0gICAgICAgIC8vIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5IHRoZSBKSVQgKHNlZSBkZmcvREZH
T3BlcmF0aW9ucy5jcHApLgorICAgICAgICAvLyBmdW5jdGlvbiBwcm92aWRlZCBieSB0aGUgSklU
IChzZWUgaml0L0pJVE9wZXJhdGlvbnMuY3BwKS4KICAgICAgICAgLy8gV2Ugc2ltdWxhdGUgaXQg
aGVyZSB3aXRoIGEgcHNlZHVvLW9wY29kZSBoYW5kbGVyLgogICAgICAgICBPRkZMSU5FX0FTTV9H
TFVFX0xBQkVMKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IC8vIFRoZSBBU00gcGFydCBwb3BzIHRoZSBmcmFtZToKLSAgICAgICAgICAgIGNhbGxGcmFtZSA9
IGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKTsKLQogICAgICAgICAgICAgLy8gVGhlIHBhcnQgaW4g
Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUoKToKICAgICAgICAgICAgIEpTVmFs
dWUgcmVzdWx0ID0gdm0tPmhvc3RDYWxsUmV0dXJuVmFsdWU7CiAjaWYgVVNFKEpTVkFMVUUzMl82
NCkKQEAgLTQyOCwxMiArNDQ4LDggQEAgSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0ZShDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgT3Bjb2RlIGVudHJ5T3Bjb2RlLCBib29sIGlzSW5pdGlhbGkKICNlbHNlCiAg
ICAgICAgICAgICB0MC5lbmNvZGVkSlNWYWx1ZSA9IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwog
I2VuZGlmCi0gICAgICAgICAgICBnb3RvIGRvUmV0dXJuSGVscGVyOwotICAgICAgICB9Ci0KLSAg
ICAgICAgT0ZGTElORV9BU01fR0xVRV9MQUJFTChyZXR1cm5Gcm9tSmF2YVNjcmlwdCkKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIHZtLT5leGNlcHRpb24oKTsKKyAgICAgICAgICAgIG9w
Y29kZSA9IGxyLm9wY29kZTsKKyAgICAgICAgICAgIERJU1BBVENIX09QQ09ERSgpOwogICAgICAg
ICB9CiAKICNpZiAhRU5BQkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykKQEAgLTQ0Myw1NSArNDU5
LDYgQEAgSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0ZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwgT3Bjb2Rl
IGVudHJ5T3Bjb2RlLCBib29sIGlzSW5pdGlhbGkKIAogICAgIH0gLy8gRU5EIGJ5dGVjb2RlIGhh
bmRsZXIgY2FzZXMuCiAKLSAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIC8vIEJ5dGVjb2RlIGhl
bHBlcnM6Ci0KLSAgICBkb1JldHVybkhlbHBlcjogewotICAgICAgICBBU1NFUlQoISFjYWxsRnJh
bWUpOwotICAgICAgICBpZiAoY2FsbEZyYW1lLT5pc1ZNRW50cnlTZW50aW5lbCgpKSB7Ci0jaWYg
VVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKHQxLmksIHQwLmkp
OyAvLyByZXR1cm5pbmcgSlNWYWx1ZSh0YWcsIHBheWxvYWQpOwotI2Vsc2UKLSAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodDAuZW5jb2RlZEpTVmFsdWUpOwotI2VuZGlmCi0gICAg
ICAgIH0KLQotICAgICAgICAvLyBUaGUgbm9ybWFsIEFTTSBsbGludCBjYWxsIGltcGxlbWVudGF0
aW9uIHJldHVybnMgdG8gdGhlIGNhbGxlciBhcwotICAgICAgICAvLyByZWNvcmRlZCBpbiByUmV0
VlBDLCBhbmQgdGhlIGNhbGxlciB3b3VsZCBmZXRjaCB0aGUgcmV0dXJuIGFkZHJlc3MKLSAgICAg
ICAgLy8gZnJvbSBBcmd1bWVudENvdW50LnRhZygpIChzZWUgdGhlIGRpc3BhdGNoQWZ0ZXJDYWxs
KCkgbWFjcm8gdXNlZCBpbgotICAgICAgICAvLyB0aGUgY2FsbFRhcmdldEZ1bmN0aW9uKCkgbWFj
cm8gaW4gdGhlIGxsaW50IGFzbSBmaWxlcykuCi0gICAgICAgIC8vCi0gICAgICAgIC8vIEZvciB0
aGUgQyBsb29wLCB3ZSBkb24ndCBoYXZlIHRoZSBKSVQgc3R1YiB0byBkbyB0aGlzIHdvcmsgZm9y
IHVzLiBTbywKLSAgICAgICAgLy8gd2UganVtcCB0byBsbGludF9nZW5lcmljX3JldHVybl9wb2lu
dC4KLQotICAgICAgICB2UEMgPSBjYWxsRnJhbWUtPmN1cnJlbnRWUEMoKTsKLQotI2lmIFVTRShK
U1ZBTFVFNjQpCi0gICAgICAgIC8vIEJhc2VkIG9uIExvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20n
cyBkaXNwYXRjaEFmdGVyQ2FsbCgpOgotCi0gICAgICAgIC8vIFdoZW4gcmV0dXJuaW5nIGZyb20g
YSBuYXRpdmUgdHJhbXBvbGluZSBjYWxsLCB1bmxpa2UgdGhlIGFzc2VtYmx5Ci0gICAgICAgIC8v
IExMSW50LCB3ZSBjYW4ndCBzaW1wbHkgcmV0dXJuIHRvIHRoZSBjYWxsZXIuIEluIG91ciBjYXNl
LCB3ZSBncmFiCi0gICAgICAgIC8vIHRoZSBjYWxsZXIncyBWUEMgYW5kIHJlc3VtZSBleGVjdXRp
b24gdGhlcmUuIEhvd2V2ZXIsIHRoZSBjYWxsZXIncwotICAgICAgICAvLyBWUEMgcmV0dXJuZWQg
YnkgY2FsbEZyYW1lLT5jdXJyZW50VlBDKCkgaXMgaW4gdGhlIGZvcm0gb2YgdGhlIHJlYWwKLSAg
ICAgICAgLy8gYWRkcmVzcyBvZiB0aGUgdGFyZ2V0IGJ5dGVjb2RlLCBidXQgdGhlIDY0LWJpdCBs
bGludCBleHBlY3RzIHRoZQotICAgICAgICAvLyBWUEMgdG8gYmUgYSBieXRlY29kZSBvZmZzZXQu
IEhlbmNlLCB3ZSBuZWVkIHRvIG1hcCBpdCBiYWNrIHRvIGEKLSAgICAgICAgLy8gYnl0ZWNvZGUg
b2Zmc2V0IGJlZm9yZSB3ZSBkaXNwYXRjaCB2aWEgdGhlIHVzdWFsIGRpc3BhdGNoIG1lY2hhbmlz
bQotICAgICAgICAvLyBpLmUuIE5FWFRfSU5TVFJVQ1RJT04oKToKLQotICAgICAgICBjb2RlQmxv
Y2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwotICAgICAgICBBU1NFUlQoY29kZUJsb2NrKTsK
LSAgICAgICAgclBDLnZwID0gY2FsbEZyYW1lLT5jdXJyZW50VlBDKCk7Ci0gICAgICAgIHJQQy5p
ID0gclBDLmk4cCAtIHJlaW50ZXJwcmV0X2Nhc3Q8aW50OF90Kj4oY29kZUJsb2NrLT5pbnN0cnVj
dGlvbnMoKS5iZWdpbigpKTsKLSAgICAgICAgclBDLmkgPj49IDM7Ci0KLSAgICAgICAgckJhc2VQ
Qy52cCA9IGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKTsKLSNlbmRpZiAvLyBVU0Uo
SlNWQUxVRTY0KQotCi0gICAgICAgIGdvdG8gbGxpbnRfZ2VuZXJpY19yZXR1cm5fcG9pbnQ7Ci0K
LSAgICB9IC8vIEVORCBkb1JldHVybkhlbHBlci4KLQotCiAjaWYgRU5BQkxFKENPTVBVVEVEX0dP
VE9fT1BDT0RFUykKICAgICAvLyBLZWVwIHRoZSBjb21waWxlciBoYXBweSBzbyB0aGF0IGl0IGRv
ZXNuJ3QgY29tcGxhaW4gYWJvdXQgdW51c2VkCiAgICAgLy8gbGFiZWxzIGZvciB0aGUgTExJbnQg
dHJhbXBvbGluZSBnbHVlLiBUaGUgbGFiZWxzIGFyZSBhdXRvbWF0aWNhbGx5CkBAIC01MjMsMTIg
KzQ5MCwxMiBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKENhbGxGcmFtZSogY2FsbEZyYW1lLCBP
cGNvZGUgZW50cnlPcGNvZGUsIGJvb2wgaXNJbml0aWFsaQogCiAvLyBUaGVzZSBhcmUgZm9yIGJ1
aWxkaW5nIGFuIGludGVycHJldGVyIGZyb20gZ2VuZXJhdGVkIGFzc2VtYmx5IGNvZGU6CiAjaWYg
Q1BVKFg4Nl82NCkgJiYgQ09NUElMRVIoQ0xBTkcpCi0jZGVmaW5lIE9GRkxJTkVfQVNNX0JFR0lO
ICAgYXNtICggXAorI2RlZmluZSBPRkZMSU5FX0FTTV9CRUdJTiAgIGFzbSAoICAgICAgICAgICAg
ICAgIFwKICAgICAiLmNmaV9zdGFydHByb2NcbiIKIAotI2RlZmluZSBPRkZMSU5FX0FTTV9FTkQg
ICAgIFwKLSAgICAiLmNmaV9lbmRwcm9jXG4iIFwKLSk7CisjZGVmaW5lIE9GRkxJTkVfQVNNX0VO
RCAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICIuY2ZpX2VuZHByb2NcbiIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwog
I2Vsc2UKICNkZWZpbmUgT0ZGTElORV9BU01fQkVHSU4gICBhc20gKAogI2RlZmluZSBPRkZMSU5F
X0FTTV9FTkQgICAgICk7CkBAIC01NTEsOSArNTE4LDkgQEAgSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0
ZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwgT3Bjb2RlIGVudHJ5T3Bjb2RlLCBib29sIGlzSW5pdGlh
bGkKICAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhsYWJlbCkgIlxuIiAgICAgICAgIFwKICAg
ICBISURFX1NZTUJPTChsYWJlbCkgIlxuIiAgICAgICAgICAgICAgICAgICAgIFwKICAgICBTWU1C
T0xfU1RSSU5HKGxhYmVsKSAiOlxuIiAgICAgICAgICAgICAgICAgIFwKLSAgICAiLmNmaV9kZWZf
Y2ZhIHJicCwgMFxuIiAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAiLmNmaV9vZmZzZXQgMTYs
IDhcbiIgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAiLmNmaV9vZmZzZXQgNiwgMFxuIgor
ICAgICIuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2XG4iICAgICAgICAgICAgICAgICAgXAorICAgICIu
Y2ZpX29mZnNldCAlcmJwLCAtMTZcbiIgICAgICAgICAgICAgICAgICAgXAorICAgICIuY2ZpX2Rl
Zl9jZmFfcmVnaXN0ZXIgcmJwXG4iCiAjZWxzZQogI2RlZmluZSBPRkZMSU5FX0FTTV9HTE9CQUxf
TEFCRUwobGFiZWwpICAgICAgICAgXAogICAgICIudGV4dFxuIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCBmMWE0NzBlYWVhYjkwMWMzYTc0
MWM5MDllM2E1MzY2MDliNDhmYWI0Li5jODhmZmNlYmQ0NmI4MDVhMDkxMGFkMTYzMTMxMjliMDFl
NWQxZTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChD
KSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29w
eXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAyLDkgKzEwMiwxMSBA
QCBtYWNybyBjQ2FsbDIoZnVuY3Rpb24sIGFyZzEsIGFyZzIpCiAgICAgICAgIG1vdmUgYXJnMiwg
YTEKICAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgIGVsc2lmIFg4NgotICAgICAgICBwb2tlIGFy
ZzEsIDAKLSAgICAgICAgcG9rZSBhcmcyLCAxCisgICAgICAgIHN1YnAgOCwgc3AKKyAgICAgICAg
cHVzaCBhcmcyCisgICAgICAgIHB1c2ggYXJnMQogICAgICAgICBjYWxsIGZ1bmN0aW9uCisgICAg
ICAgIGFkZHAgMTYsIHNwCiAgICAgZWxzaWYgU0g0CiAgICAgICAgIHNldGFyZ3MgYXJnMSwgYXJn
MgogICAgICAgICBjYWxsIGZ1bmN0aW9uCkBAIC0xMjQsMTEgKzEyNiwxMiBAQCBtYWNybyBjQ2Fs
bDQoZnVuY3Rpb24sIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpCiAgICAgICAgIG1vdmUgYXJnNCwg
YTMKICAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgIGVsc2lmIFg4NgotICAgICAgICBwb2tlIGFy
ZzEsIDAKLSAgICAgICAgcG9rZSBhcmcyLCAxCi0gICAgICAgIHBva2UgYXJnMywgMgotICAgICAg
ICBwb2tlIGFyZzQsIDMKKyAgICAgICAgcHVzaCBhcmc0CisgICAgICAgIHB1c2ggYXJnMworICAg
ICAgICBwdXNoIGFyZzIKKyAgICAgICAgcHVzaCBhcmcxCiAgICAgICAgIGNhbGwgZnVuY3Rpb24K
KyAgICAgICAgYWRkcCAxNiwgc3AKICAgICBlbHNpZiBTSDQKICAgICAgICAgc2V0YXJncyBhcmcx
LCBhcmcyLCBhcmczLCBhcmc0CiAgICAgICAgIGNhbGwgZnVuY3Rpb24KQEAgLTE0Miw4NSArMTQ1
LDQyIEBAIGVuZAogbWFjcm8gY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQogICAgIGNDYWxsMihzbG93
UGF0aCwgY2ZyLCBQQykKICAgICBtb3ZlIHQwLCBQQwotICAgIG1vdmUgdDEsIGNmcgotZW5kCi0K
LW1hY3JvIGZ1bmN0aW9uUHJvbG9ndWUoZXh0cmFTdGFja1NwYWNlKQotICAgIGlmIFg4NgotICAg
ICAgICBwdXNoIGNmcgotICAgICAgICBtb3ZlIHNwLCBjZnIKLSAgICBlbmQKLSAgICBwdXNoQ2Fs
bGVlU2F2ZXMKLSAgICBpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQ
UwotICAgICAgICBwdXNoIGNmcgotICAgICAgICBwdXNoIGxyCi0gICAgZW5kCi0gICAgc3VicCBl
eHRyYVN0YWNrU3BhY2UsIHNwCiBlbmQKIAotbWFjcm8gZnVuY3Rpb25FcGlsb2d1ZShleHRyYVN0
YWNrU3BhY2UpCi0gICAgYWRkcCBleHRyYVN0YWNrU3BhY2UsIHNwCi0gICAgaWYgQVJNIG9yIEFS
TXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMKLSAgICAgICAgcG9wIGxyCi0gICAgICAg
IHBvcCBjZnIKLSAgICBlbmQKLSAgICBwb3BDYWxsZWVTYXZlcworbWFjcm8gZG9DYWxsVG9KYXZh
U2NyaXB0KG1ha2VDYWxsKQogICAgIGlmIFg4NgotICAgICAgICBwb3AgY2ZyCi0gICAgZW5kCi1l
bmQKKyAgICAgICAgY29uc3QgZW50cnkgPSB0NAorICAgICAgICBjb25zdCB2bSA9IHQzCisgICAg
ICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gdDUKIAotbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0
KG1ha2VDYWxsLCBkb1JldHVybikKLSAgICBpZiBYODYKLSAgICAgICAgY29uc3QgZW50cnkgPSB0
NQotICAgICAgICBjb25zdCB2bVRvcENhbGxGcmFtZSA9IHQyCi0gICAgICAgIGNvbnN0IHByb3Rv
Q2FsbEZyYW1lID0gdDQKLQotICAgICAgICBjb25zdCBleHRyYVN0YWNrU3BhY2UgPSAyOAogICAg
ICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQwCiAgICAgICAgIGNvbnN0IHByZXZpb3VzUEMgPSB0
MQogICAgICAgICBjb25zdCB0ZW1wMSA9IHQwICMgU2FtZSBhcyBwcmV2aW91c0NGUgogICAgICAg
ICBjb25zdCB0ZW1wMiA9IHQxICMgU2FtZSBhcyBwcmV2aW91c1BDCi0gICAgICAgIGNvbnN0IHRl
bXAzID0gdDIgIyBzYW1lIGFzIHZtVG9wQ2FsbEZyYW1lCi0gICAgICAgIGNvbnN0IHRlbXA0ID0g
dDMKLSAgICBlbHNpZiBBUk0gb3IgQVJNdjdfVFJBRElUSU9OQUwKLSAgICAgICAgY29uc3QgZW50
cnkgPSBhMAotICAgICAgICBjb25zdCB2bVRvcENhbGxGcmFtZSA9IGExCi0gICAgICAgIGNvbnN0
IHByb3RvQ2FsbEZyYW1lID0gYTIKLSAgICAgICAgY29uc3QgdG9wT2ZTdGFjayA9IGEzCi0KLSAg
ICAgICAgY29uc3QgZXh0cmFTdGFja1NwYWNlID0gMTYKLSAgICAgICAgY29uc3QgcHJldmlvdXND
RlIgPSB0MwotICAgICAgICBjb25zdCBwcmV2aW91c1BDID0gbHIKLSAgICAgICAgY29uc3QgdGVt
cDEgPSB0MyAjIFNhbWUgYXMgcHJldmlvdXNDRlIKLSAgICAgICAgY29uc3QgdGVtcDIgPSBhMyAj
IFNhbWUgYXMgdG9wT2ZTdGFjawotICAgICAgICBjb25zdCB0ZW1wMyA9IHQ0Ci0gICAgICAgIGNv
bnN0IHRlbXA0ID0gdDUKLSAgICBlbHNpZiBBUk12NworICAgICAgICBjb25zdCB0ZW1wMyA9IHQy
CisgICAgICAgIGNvbnN0IHRlbXA0ID0gdDMgIyBzYW1lIGFzIHZtCisgICAgZWxzaWYgQVJNIG9y
IEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIENfTE9PUAogICAgICAgICBjb25zdCBlbnRy
eSA9IGEwCi0gICAgICAgIGNvbnN0IHZtVG9wQ2FsbEZyYW1lID0gYTEKKyAgICAgICAgY29uc3Qg
dm0gPSBhMQogICAgICAgICBjb25zdCBwcm90b0NhbGxGcmFtZSA9IGEyCi0gICAgICAgIGNvbnN0
IHRvcE9mU3RhY2sgPSBhMwogCi0gICAgICAgIGNvbnN0IGV4dHJhU3RhY2tTcGFjZSA9IDI4CiAg
ICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0gdDMKICAgICAgICAgY29uc3QgcHJldmlvdXNQQyA9
IGxyCiAgICAgICAgIGNvbnN0IHRlbXAxID0gdDMgIyBTYW1lIGFzIHByZXZpb3VzQ0ZSCi0gICAg
ICAgIGNvbnN0IHRlbXAyID0gYTMgIyBTYW1lIGFzIHRvcE9mU3RhY2sKLSAgICAgICAgY29uc3Qg
dGVtcDMgPSB0NAotICAgICAgICBjb25zdCB0ZW1wNCA9IHQ1CisgICAgICAgIGNvbnN0IHRlbXAy
ID0gdDQKKyAgICAgICAgY29uc3QgdGVtcDMgPSB0NQorICAgICAgICBjb25zdCB0ZW1wNCA9IHQ0
ICMgU2FtZSBhcyB0ZW1wMgogICAgIGVsc2lmIE1JUFMKICAgICAgICAgY29uc3QgZW50cnkgPSBh
MAogICAgICAgICBjb25zdCB2bVRvcENhbGxGcmFtZSA9IGExCiAgICAgICAgIGNvbnN0IHByb3Rv
Q2FsbEZyYW1lID0gYTIKICAgICAgICAgY29uc3QgdG9wT2ZTdGFjayA9IGEzCiAKLSAgICAgICAg
Y29uc3QgZXh0cmFTdGFja1NwYWNlID0gMzYKICAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0
MgogICAgICAgICBjb25zdCBwcmV2aW91c1BDID0gbHIKICAgICAgICAgY29uc3QgdGVtcDEgPSB0
MwotICAgICAgICBjb25zdCB0ZW1wMiA9IHQ0Ci0gICAgICAgIGNvbnN0IHRlbXAzID0gdDUKKyAg
ICAgICAgY29uc3QgdGVtcDIgPSB0NQorICAgICAgICBjb25zdCB0ZW1wMyA9IHQ0CiAgICAgICAg
IGNvbnN0IHRlbXA0ID0gdDYKICAgICBlbHNpZiBTSDQKICAgICAgICAgY29uc3QgZW50cnkgPSBh
MApAQCAtMjI4LDcgKzE4OCw2IEBAIG1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwg
ZG9SZXR1cm4pCiAgICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gYTIKICAgICAgICAgY29u
c3QgdG9wT2ZTdGFjayA9IGEzCiAKLSAgICAgICAgY29uc3QgZXh0cmFTdGFja1NwYWNlID0gMjAK
ICAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0MwogICAgICAgICBjb25zdCBwcmV2aW91c1BD
ID0gbHIKICAgICAgICAgY29uc3QgdGVtcDEgPSB0MyAjIFNhbWUgYXMgcHJldmlvdXNDRlIKQEAg
LTIzNyw0OSArMTk2LDc4IEBAIG1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9S
ZXR1cm4pCiAgICAgICAgIGNvbnN0IHRlbXA0ID0gdDkKICAgICBlbmQKIAorICAgIGNhbGxUb0ph
dmFTY3JpcHRQcm9sb2d1ZSgpCisKICAgICBpZiBYODYKLSAgICAgICAgbG9hZHAgW3NwXSwgcHJl
dmlvdXNQQwotICAgICAgICBtb3ZlIGNmciwgcHJldmlvdXNDRlIKLSAgICBlbmQKLSAgICBmdW5j
dGlvblByb2xvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKLSAgICBpZiBYODYKLSAgICAgICAgbG9hZHAg
ZXh0cmFTdGFja1NwYWNlKzIwW3NwXSwgZW50cnkKLSAgICAgICAgbG9hZHAgZXh0cmFTdGFja1Nw
YWNlKzI0W3NwXSwgdm1Ub3BDYWxsRnJhbWUKLSAgICAgICAgbG9hZHAgZXh0cmFTdGFja1NwYWNl
KzI4W3NwXSwgcHJvdG9DYWxsRnJhbWUKLSAgICAgICAgbG9hZHAgZXh0cmFTdGFja1NwYWNlKzMy
W3NwXSwgY2ZyCisgICAgICAgIGxvYWRwIDM2W3NwXSwgdm0KKyAgICAgICAgbG9hZHAgMzJbc3Bd
LCBlbnRyeQogICAgIGVsc2UKICAgICAgICAgbW92ZSBjZnIsIHByZXZpb3VzQ0ZSCi0gICAgICAg
IG1vdmUgdG9wT2ZTdGFjaywgY2ZyCiAgICAgZW5kCiAKLSAgICBzdWJwIChDYWxsRnJhbWVIZWFk
ZXJTbG90cy0xKSo4LCBjZnIKLSAgICBzdG9yZXAgMCwgQXJndW1lbnRDb3VudCs0W2Nmcl0KKyAg
ICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wMiwgMHhiYWQwZGMwMSkKKworICAgICMg
VGhlIHN0YWNrIHJlc2VydmVkIHpvbmUgZW5zdXJlcyB0aGF0IHdlIGhhdmUgYWRlcXVhdGUgc3Bh
Y2UgZm9yIHRoZQorICAgICMgVk1FbnRyeVNlbnRpbmVsRnJhbWUuIFByb2NlZWQgd2l0aCBhbGxv
Y2F0aW5nIGFuZCBpbml0aWFsaXppbmcgdGhlCisgICAgIyBzZW50aW5lbCBmcmFtZS4KKyAgICBt
b3ZlIHNwLCBjZnIKKyAgICBzdWJwIENhbGxGcmFtZUhlYWRlclNsb3RzICogOCwgY2ZyCiAgICAg
c3RvcmVwIDAsIEFyZ3VtZW50Q291bnRbY2ZyXQotICAgIHN0b3JlcCAwLCBDYWxsZWUrNFtjZnJd
Ci0gICAgc3RvcmVwIHZtVG9wQ2FsbEZyYW1lLCBDYWxsZWVbY2ZyXQotICAgIGxvYWRwIFt2bVRv
cENhbGxGcmFtZV0sIHRlbXA0Ci0gICAgc3RvcmVwIDAsIFNjb3BlQ2hhaW4rNFtjZnJdCi0gICAg
c3RvcmVwIHRlbXA0LCBTY29wZUNoYWluW2Nmcl0KLSAgICBzdG9yZXAgMCwgQ29kZUJsb2NrKzRb
Y2ZyXQorICAgIHN0b3JlcCB2bSwgQ2FsbGVlW2Nmcl0KKyAgICBsb2FkcCBWTTo6dG9wQ2FsbEZy
YW1lW3ZtXSwgdGVtcDIKKyAgICBzdG9yZXAgdGVtcDIsIFNjb3BlQ2hhaW5bY2ZyXQogICAgIHN0
b3JlcCAxLCBDb2RlQmxvY2tbY2ZyXQorICAgIGlmIFg4NgorICAgICAgICBsb2FkcCAyOFtzcF0s
IHByZXZpb3VzUEMKKyAgICAgICAgbG9hZHAgMjRbc3BdLCBwcmV2aW91c0NGUgorICAgIGVuZAog
ICAgIHN0b3JlcCBwcmV2aW91c1BDLCBSZXR1cm5QQ1tjZnJdCiAgICAgc3RvcmVwIHByZXZpb3Vz
Q0ZSLCBDYWxsZXJGcmFtZVtjZnJdCi0gICAgbW92ZSBjZnIsIHRlbXAxCisKKyAgICBpZiBYODYK
KyAgICAgICAgbG9hZHAgNDBbc3BdLCBwcm90b0NhbGxGcmFtZQorICAgIGVuZAogCiAgICAgbG9h
ZGkgUHJvdG9DYWxsRnJhbWU6OnBhZGRlZEFyZ0NvdW50W3Byb3RvQ2FsbEZyYW1lXSwgdGVtcDIK
ICAgICBhZGRwIENhbGxGcmFtZUhlYWRlclNsb3RzLCB0ZW1wMiwgdGVtcDIKICAgICBsc2hpZnRw
IDMsIHRlbXAyCi0gICAgc3VicCB0ZW1wMiwgY2ZyCi0gICAgc3RvcmVwIHRlbXAxLCBDYWxsZXJG
cmFtZVtjZnJdCisgICAgc3VicCBjZnIsIHRlbXAyLCB0ZW1wMQorCisgICAgIyBFbnN1cmUgdGhh
dCB3ZSBoYXZlIGVub3VnaCBhZGRpdGlvbmFsIHN0YWNrIGNhcGFjaXR5IGZvciB0aGUgaW5jb21p
bmcgYXJncywKKyAgICAjIGFuZCB0aGUgZnJhbWUgZm9yIHRoZSBKUyBjb2RlIHdlJ3JlIGV4ZWN1
dGluZy4gV2UgbmVlZCB0byBkbyB0aGlzIGNoZWNrCisgICAgIyBiZWZvcmUgd2Ugc3RhcnQgY29w
eWluZyB0aGUgYXJncyBmcm9tIHRoZSBwcm90b0NhbGxGcmFtZSBiZWxvdy4KKyAgICBicGFlcSB0
ZW1wMSwgVk06Om1fanNTdGFja0xpbWl0W3ZtXSwgLnN0YWNrSGVpZ2h0T0sKKworICAgIHN1YnAg
Y2ZyLCA4LCBzcAorCisgICAgaWYgQ19MT09QCisgICAgICAgIG1vdmUgZW50cnksIHRlbXAyCisg
ICAgICAgIG1vdmUgdm0sIHRlbXAzCisgICAgICAgIGNsb29wQ2FsbFNsb3dQYXRoIF9sbGludF9z
dGFja19jaGVja19hdF92bV9lbnRyeSwgdm0sIHRlbXAxCisgICAgICAgIGJwZXEgdDAsIDAsIC5z
dGFja0NoZWNrRmFpbGVkCisgICAgICAgIG1vdmUgdGVtcDIsIGVudHJ5CisgICAgICAgIG1vdmUg
dGVtcDMsIHZtCisgICAgICAgIGptcCAuc3RhY2tIZWlnaHRPSworCisuc3RhY2tDaGVja0ZhaWxl
ZDoKKyAgICAgICAgbW92ZSB0ZW1wMiwgZW50cnkKKyAgICAgICAgbW92ZSB0ZW1wMywgdm0KKyAg
ICBlbmQKIAorICAgIGNDYWxsMihfbGxpbnRfdGhyb3dfc3RhY2tfb3ZlcmZsb3dfZXJyb3IsIHZt
LCBwcm90b0NhbGxGcmFtZSkKKyAgICBjYWxsVG9KYXZhU2NyaXB0RXBpbG9ndWUoKQorICAgIHJl
dAorCisuc3RhY2tIZWlnaHRPSzoKKyAgICBtb3ZlIHRlbXAxLCBzcAogICAgIG1vdmUgNSwgdGVt
cDEKIAogLmNvcHlIZWFkZXJMb29wOgogICAgIHN1YmkgMSwgdGVtcDEKLSAgICBsb2FkcCBbcHJv
dG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMKLSAgICBzdG9yZXAgdGVtcDMsIENvZGVCbG9j
a1tjZnIsIHRlbXAxLCA4XQotICAgIGxvYWRwIDRbcHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwg
dGVtcDMKLSAgICBzdG9yZXAgdGVtcDMsIENvZGVCbG9jays0W2NmciwgdGVtcDEsIDhdCisgICAg
bG9hZGkgVGFnT2Zmc2V0W3Byb3RvQ2FsbEZyYW1lLCB0ZW1wMSwgOF0sIHRlbXAzCisgICAgc3Rv
cmVpIHRlbXAzLCBUYWdPZmZzZXQgKyBDb2RlQmxvY2tbc3AsIHRlbXAxLCA4XQorICAgIGxvYWRp
IFBheWxvYWRPZmZzZXRbcHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMKKyAgICBzdG9y
ZWkgdGVtcDMsIFBheWxvYWRPZmZzZXQgKyBDb2RlQmxvY2tbc3AsIHRlbXAxLCA4XQogICAgIGJ0
aW56IHRlbXAxLCAuY29weUhlYWRlckxvb3AKIAogICAgIGxvYWRpIFByb3RvQ2FsbEZyYW1lOjph
cmdDb3VudEFuZENvZGVPcmlnaW5WYWx1ZVtwcm90b0NhbGxGcmFtZV0sIHRlbXAyCkBAIC0yODgs
MTIgKzI3NiwxMCBAQCBtYWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0dXJu
KQogICAgIHN1YmkgMSwgdGVtcDMKIAogICAgIGJpZXEgdGVtcDIsIHRlbXAzLCAuY29weUFyZ3MK
LSAgICBtb3ZlIDAsIHRlbXAxCi0gICAgbW92ZSBVbmRlZmluZWRUYWcsIHRlbXA0CiAuZmlsbEV4
dHJhQXJnc0xvb3A6CiAgICAgc3ViaSAxLCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMSwgVGhpc0Fy
Z3VtZW50T2Zmc2V0KzgrUGF5bG9hZE9mZnNldFtjZnIsIHRlbXAzLCA4XQotICAgIHN0b3JlcCB0
ZW1wNCwgVGhpc0FyZ3VtZW50T2Zmc2V0KzgrVGFnT2Zmc2V0W2NmciwgdGVtcDMsIDhdCisgICAg
c3RvcmVpIFVuZGVmaW5lZFRhZywgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOCArIFRhZ09mZnNldFtz
cCwgdGVtcDMsIDhdCisgICAgc3RvcmVpIDAsIFRoaXNBcmd1bWVudE9mZnNldCArIDggKyBQYXls
b2FkT2Zmc2V0W3NwLCB0ZW1wMywgOF0KICAgICBiaW5lcSB0ZW1wMiwgdGVtcDMsIC5maWxsRXh0
cmFBcmdzTG9vcAogCiAuY29weUFyZ3M6CkBAIC0zMDIsNTIgKzI4OCw4NyBAQCBtYWNybyBkb0Nh
bGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0dXJuKQogLmNvcHlBcmdzTG9vcDoKICAgICBi
dGl6IHRlbXAyLCAuY29weUFyZ3NEb25lCiAgICAgc3ViaSAxLCB0ZW1wMgotICAgIGxvYWRwIFBh
eWxvYWRPZmZzZXRbdGVtcDEsIHRlbXAyLCA4XSwgdGVtcDMKLSAgICBsb2FkcCBUYWdPZmZzZXRb
dGVtcDEsIHRlbXAyLCA4XSwgdGVtcDQKLSAgICBzdG9yZXAgdGVtcDMsIFRoaXNBcmd1bWVudE9m
ZnNldCs4K1BheWxvYWRPZmZzZXRbY2ZyLCB0ZW1wMiwgOF0KLSAgICBzdG9yZXAgdGVtcDQsIFRo
aXNBcmd1bWVudE9mZnNldCs4K1RhZ09mZnNldFtjZnIsIHRlbXAyLCA4XQorICAgIGxvYWRpIFRh
Z09mZnNldFt0ZW1wMSwgdGVtcDIsIDhdLCB0ZW1wMworICAgIHN0b3JlaSB0ZW1wMywgVGhpc0Fy
Z3VtZW50T2Zmc2V0ICsgOCArIFRhZ09mZnNldFtzcCwgdGVtcDIsIDhdCisgICAgbG9hZGkgUGF5
bG9hZE9mZnNldFt0ZW1wMSwgdGVtcDIsIDhdLCB0ZW1wMworICAgIHN0b3JlaSB0ZW1wMywgVGhp
c0FyZ3VtZW50T2Zmc2V0ICsgOCArIFBheWxvYWRPZmZzZXRbc3AsIHRlbXAyLCA4XQogICAgIGpt
cCAuY29weUFyZ3NMb29wCiAKIC5jb3B5QXJnc0RvbmU6Ci0gICAgaWYgWDg2Ci0gICAgICAgIGxv
YWRwIGV4dHJhU3RhY2tTcGFjZSsyNFtzcF0sIHZtVG9wQ2FsbEZyYW1lCi0gICAgZW5kCi0gICAg
c3RvcmVwIGNmciwgW3ZtVG9wQ2FsbEZyYW1lXQorICAgIHN0b3JlcCBzcCwgVk06OnRvcENhbGxG
cmFtZVt2bV0KIAotICAgIG1ha2VDYWxsKGVudHJ5LCB0ZW1wMSkKKyAgICBtYWtlQ2FsbChlbnRy
eSwgdGVtcDEsIHRlbXAyKQogCiAgICAgYnBlcSBDb2RlQmxvY2tbY2ZyXSwgMSwgLmNhbGxlZUZy
YW1lUG9wcGVkCiAgICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgY2ZyCiAKIC5jYWxsZWVGcmFt
ZVBvcHBlZDoKLSAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdGVtcDMgIyBWTS50b3BDYWxsRnJhbWUK
LSAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHRlbXA0Ci0gICAgc3RvcmVwIHRlbXA0LCBbdGVt
cDNdCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRlbXAzICMgVk0KKyAgICBsb2FkcCBTY29wZUNo
YWluW2Nmcl0sIHRlbXA0ICMgcHJldmlvdXMgdG9wQ2FsbEZyYW1lCisgICAgc3RvcmVwIHRlbXA0
LCBWTTo6dG9wQ2FsbEZyYW1lW3RlbXAzXQogCi0gICAgZG9SZXR1cm4oZXh0cmFTdGFja1NwYWNl
KQorICAgIGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1ZSgpCisgICAgcmV0CiBlbmQKIAotbWFjcm8g
bWFrZUphdmFTY3JpcHRDYWxsKGVudHJ5LCB0ZW1wKQotICAgIGNhbGwgZW50cnkKK21hY3JvIG1h
a2VKYXZhU2NyaXB0Q2FsbChlbnRyeSwgdGVtcCwgdW51c2VkKQorICAgIGFkZHAgQ2FsbGVyRnJh
bWVBbmRQQ1NpemUsIHNwCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDIsIDB4YmFk
MGRjMDIpCisgICAgaWYgQ19MT09QCisgICAgICAgIGNsb29wQ2FsbEpTRnVuY3Rpb24gZW50cnkK
KyAgICBlbHNlCisgICAgICAgIGNhbGwgZW50cnkKKyAgICBlbmQKKyAgICBjaGVja1N0YWNrUG9p
bnRlckFsaWdubWVudCh0MiwgMHhiYWQwZGMwMykKKyAgICBzdWJwIENhbGxlckZyYW1lQW5kUENT
aXplLCBzcAogZW5kCiAKLW1hY3JvIG1ha2VIb3N0RnVuY3Rpb25DYWxsKGVudHJ5LCB0ZW1wKQot
ICAgIG1vdmUgZW50cnksIHRlbXAKLSAgICBpZiBYODYKLSAgICAgICAgIyBQdXQgY2ZyIG9uIHN0
YWNrIGFzIGFyZzAsIGFsc28gcHV0IGl0IGluIGVjeCBmb3IgImZhc3RjYWxsIiB0YXJnZXRzCi0g
ICAgICAgIHBva2UgY2ZyLCAwCi0gICAgICAgIG1vdmUgY2ZyLCB0MgorbWFjcm8gbWFrZUhvc3RG
dW5jdGlvbkNhbGwoZW50cnksIHRlbXAxLCB0ZW1wMikKKyAgICBtb3ZlIGVudHJ5LCB0ZW1wMQor
ICAgIGlmIENfTE9PUAorICAgICAgICBtb3ZlIHNwLCBhMAorICAgICAgICBzdG9yZXAgY2ZyLCBb
c3BdCisgICAgICAgIHN0b3JlcCBsciwgUHRyU2l6ZVtzcF0KKyAgICAgICAgY2xvb3BDYWxsTmF0
aXZlIHRlbXAxCiAgICAgZWxzZQotICAgICAgICBtb3ZlIGNmciwgYTAKKyAgICAgICAgaWYgWDg2
CisgICAgICAgICAgICAjIFB1dCBjYWxsZWUgZnJhbWUgcG9pbnRlciBvbiBzdGFjayBhcyBhcmcw
LCBhbHNvIHB1dCBpdCBpbiBlY3ggZm9yICJmYXN0Y2FsbCIgdGFyZ2V0cworICAgICAgICAgICAg
bW92ZSAwLCB0ZW1wMgorICAgICAgICAgICAgbW92ZSB0ZW1wMiwgNFtzcF0gIyBwdXQgMCBpbiBS
ZXR1cm5QQworICAgICAgICAgICAgbW92ZSBjZnIsIFtzcF0gIyBwdXQgY2FsbGVyIGZyYW1lIHBv
aW50ZXIgaW50byBjYWxsZWUgZnJhbWUgc2luY2UgY2FsbGVlIHByb2xvZ3VlIGNhbid0CisgICAg
ICAgICAgICBtb3ZlIHNwLCB0MiAjIHQyIGlzIGVjeAorICAgICAgICAgICAgcHVzaCB0ZW1wMiAj
IFB1c2ggZHVtbXkgYXJnMQorICAgICAgICAgICAgcHVzaCB0MgorICAgICAgICBlbHNlCisgICAg
ICAgICAgICBtb3ZlIHNwLCBhMAorICAgICAgICAgICAgYWRkcCBDYWxsZXJGcmFtZUFuZFBDU2l6
ZSwgc3AKKyAgICAgICAgZW5kCisgICAgICAgIGNhbGwgdGVtcDEKKyAgICAgICAgaWYgWDg2Cisg
ICAgICAgICAgICBhZGRwIDgsIHNwCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHN1YnAgQ2Fs
bGVyRnJhbWVBbmRQQ1NpemUsIHNwCisgICAgICAgIGVuZAogICAgIGVuZAotICAgIGNhbGwgdGVt
cAogZW5kCiAKLW1hY3JvIGRvUmV0dXJuRnJvbUphdmFTY3JpcHQoZXh0cmFTdGFja1NwYWNlKQot
X3JldHVybkZyb21KYXZhU2NyaXB0OgotICAgIGZ1bmN0aW9uRXBpbG9ndWUoZXh0cmFTdGFja1Nw
YWNlKQorX2hhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uOgorICAgIGxvYWRwIFNjb3BlQ2hhaW4gKyBQ
YXlsb2FkT2Zmc2V0W2Nmcl0sIHQzCisgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCisgICAg
bG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MworICAg
IGxvYWRwIFZNOjpjYWxsRnJhbWVGb3JUaHJvd1t0M10sIGNmcgorCisgICAgIyBTbyBmYXIsIHdl
J3ZlIHVud291bmQgdGhlIHN0YWNrIHRvIHRoZSBmcmFtZSBqdXN0IGJlbG93IHRoZSBzZW50aW5l
bCBmcmFtZS4KKyAgICAjIFdlIG5lZWQgdG8gcG9wIHRvIHRoZSBzZW50aW5lbCBmcmFtZSBhbmQg
ZG8gdGhlIG5lY2Vzc2FyeSBjbGVhbiB1cCBmb3IKKyAgICAjIHJldHVybmluZyB0byB0aGUgY2Fs
bGVyIEMgZnJhbWUuCisgICAgbG9hZHAgQ2FsbGVyRnJhbWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0s
IGNmcgorCisgICAgbG9hZHAgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MyAjIFZNCisg
ICAgbG9hZHAgU2NvcGVDaGFpbiArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDUgIyBwcmV2aW91cyB0
b3BDYWxsRnJhbWUKKyAgICBzdG9yZXAgdDUsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCisKKyAgICBj
YWxsVG9KYXZhU2NyaXB0RXBpbG9ndWUoKQogICAgIHJldAotZW5kCiAKIG1hY3JvIGRvUmV0dXJu
RnJvbUhvc3RGdW5jdGlvbihleHRyYVN0YWNrU3BhY2UpCiAgICAgZnVuY3Rpb25FcGlsb2d1ZShl
eHRyYVN0YWNrU3BhY2UpCkBAIC0zNzcsMTQgKzM5OCwxMiBAQCBlbmQKIG1hY3JvIGNhbGxDYWxs
U2xvd1BhdGgoc2xvd1BhdGgsIGFjdGlvbikKICAgICBzdG9yZXAgUEMsIEFyZ3VtZW50Q291bnQg
KyBUYWdPZmZzZXRbY2ZyXQogICAgIGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQQykKLSAgICBtb3Zl
IHQxLCBjZnIKICAgICBhY3Rpb24odDApCiBlbmQKIAogbWFjcm8gY2FsbFdhdGNoZG9nVGltZXJI
YW5kbGVyKHRocm93SGFuZGxlcikKICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBUYWdP
ZmZzZXRbY2ZyXQogICAgIGNDYWxsMihfbGxpbnRfc2xvd19wYXRoX2hhbmRsZV93YXRjaGRvZ190
aW1lciwgY2ZyLCBQQykKLSAgICBtb3ZlIHQxLCBjZnIKICAgICBidHBueiB0MCwgdGhyb3dIYW5k
bGVyCiAgICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdLCBQQwogZW5kCkBA
IC0zOTUsOCArNDE0LDggQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQogICAgICAg
ICBtYWNybyAoKQogICAgICAgICAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zm
c2V0W2Nmcl0KICAgICAgICAgICAgIGNDYWxsMihfbGxpbnRfbG9vcF9vc3IsIGNmciwgUEMpCi0g
ICAgICAgICAgICBtb3ZlIHQxLCBjZnIKICAgICAgICAgICAgIGJ0cHogdDAsIC5yZWNvdmVyCisg
ICAgICAgICAgICBtb3ZlIHQxLCBzcAogICAgICAgICAgICAgam1wIHQwCiAgICAgICAgIC5yZWNv
dmVyOgogICAgICAgICAgICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdLCBQ
QwpAQCAtNTUzLDE4ICs1NzIsMzQgQEAgZW5kCiAjIEVudHJ5cG9pbnRzIGludG8gdGhlIGludGVy
cHJldGVyCiAKICMgRXhwZWN0cyB0aGF0IENvZGVCbG9jayBpcyBpbiB0MSwgd2hpY2ggaXMgd2hh
dCBwcm9sb2d1ZSgpIGxlYXZlcyBiZWhpbmQuCi1tYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9u
ZUxhYmVsLCBzbG93X3BhdGgpCittYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBz
bG93UGF0aCkKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudFtjZnJdLCB0
MAogICAgIGJpYWVxIHQwLCBDb2RlQmxvY2s6Om1fbnVtUGFyYW1ldGVyc1t0MV0sIGRvbmVMYWJl
bAotICAgIGNDYWxsMihzbG93X3BhdGgsIGNmciwgUEMpICAgIyBUaGlzIHNsb3dfcGF0aCBoYXMg
YSBzaW1wbGUgcHJvdG9jb2w6IHQwID0gMCA9PiBubyBlcnJvciwgdDAgIT0gMCA9PiBlcnJvcgot
ICAgIGJ0aXogdDAsIC5pc0FyaXR5Rml4dXBOZWVkZWQKKyAgICBjQ2FsbDIoc2xvd1BhdGgsIGNm
ciwgUEMpICAgIyBUaGlzIHNsb3dQYXRoIGhhcyBhIHNpbXBsZSBwcm90b2NvbDogdDAgPSAwID0+
IG5vIGVycm9yLCB0MCAhPSAwID0+IGVycm9yCisgICAgYnRpeiB0MCwgLm5vRXJyb3IKICAgICBt
b3ZlIHQxLCBjZnIgICAjIHQxIGNvbnRhaW5zIGNhbGxlciBmcmFtZQogICAgIGptcCBfbGxpbnRf
dGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQogCi0uaXNBcml0eUZpeHVwTmVlZGVkOgor
Lm5vRXJyb3I6CisgICAgIyB0MSBwb2ludHMgdG8gQXJpdHlDaGVja0RhdGEuCisgICAgbG9hZHAg
Q29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6dGh1bmtUb0NhbGxbdDFdLCB0MgorICAg
IGJ0cHogdDIsIC5wcm9jZWVkSW5saW5lCisgICAgCisgICAgbG9hZHAgQ29tbW9uU2xvd1BhdGhz
OjpBcml0eUNoZWNrRGF0YTo6cmV0dXJuUENbdDFdLCB0NQorICAgIGxvYWRwIENvbW1vblNsb3dQ
YXRoczo6QXJpdHlDaGVja0RhdGE6OnBhZGRlZFN0YWNrU3BhY2VbdDFdLCB0MAorICAgIGNhbGwg
dDIKKyAgICBpZiBBU1NFUlRfRU5BQkxFRAorICAgICAgICBsb2FkcCBSZXR1cm5QQ1tjZnJdLCB0
MAorICAgICAgICBsb2FkcCBbdDBdLCB0MAorICAgIGVuZAorICAgIGptcCAuY29udGludWUKKwor
LnByb2NlZWRJbmxpbmU6CisgICAgbG9hZGkgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0
YTo6cGFkZGVkU3RhY2tTcGFjZVt0MV0sIHQxCiAgICAgYnRpeiB0MSwgLmNvbnRpbnVlCiAKLSAg
ICAvLyBNb3ZlIGZyYW1lIHVwICJ0MSIgc2xvdHMKKyAgICAvLyBNb3ZlIGZyYW1lIHVwICJ0MSAq
IDIiIHNsb3RzCisgICAgbHNoaWZ0cCAxLCB0MQogICAgIG5lZ2kgdDEKICAgICBtb3ZlIGNmciwg
dDMKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudFtjZnJdLCB0MgpAQCAt
NTg5LDYgKzYyNCw3IEBAIG1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNsb3df
cGF0aCkKIAogICAgIGxzaGlmdHAgMywgdDEKICAgICBhZGRwIHQxLCBjZnIKKyAgICBhZGRwIHQx
LCBzcAogLmNvbnRpbnVlOgogICAgICMgUmVsb2FkIENvZGVCbG9jayBhbmQgUEMsIHNpbmNlIHRo
ZSBzbG93X3BhdGggY2xvYmJlcmVkIGl0LgogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MQpA
QCAtNTk2LDcgKzYzMiw2IEBAIG1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNs
b3dfcGF0aCkKICAgICBqbXAgZG9uZUxhYmVsCiBlbmQKIAotCiBtYWNybyBicmFuY2hJZkV4Y2Vw
dGlvbihsYWJlbCkKICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCiAgICAgYW5kcCBNYXJr
ZWRCbG9ja01hc2ssIHQzCkBAIC02MTEsNiArNjQ2LDcgQEAgZW5kCiAKIF9sbGludF9vcF9lbnRl
cjoKICAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQo
dDIsIDB4ZGVhZDAwZTEpCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQyICAgICAgICAgICAg
ICAgIC8vIHQyPENvZGVCbG9jaz4gPSBjZnIuQ29kZUJsb2NrCiAgICAgbG9hZGkgQ29kZUJsb2Nr
OjptX251bVZhcnNbdDJdLCB0MiAgICAgIC8vIHQyPHNpemVfdD4gPSB0MjxDb2RlQmxvY2s+Lm1f
bnVtVmFycwogICAgIGJ0aXogdDIsIC5vcEVudGVyRG9uZQpAQCAtMTkyMCwxMiArMTk1NiwxMSBA
QCBtYWNybyBkb0NhbGwoc2xvd1BhdGgpCiAgICAgc3RvcmVpIHQwLCBTY29wZUNoYWluICsgUGF5
bG9hZE9mZnNldFt0M10KICAgICBsb2FkaSAxMltQQ10sIHQyCiAgICAgc3RvcmVpIFBDLCBBcmd1
bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KLSAgICBzdG9yZXAgY2ZyLCBDYWxsZXJGcmFtZVt0
M10KICAgICBzdG9yZWkgdDIsIEFyZ3VtZW50Q291bnQgKyBQYXlsb2FkT2Zmc2V0W3QzXQogICAg
IHN0b3JlaSBDZWxsVGFnLCBDYWxsZWUgKyBUYWdPZmZzZXRbdDNdCiAgICAgc3RvcmVpIENlbGxU
YWcsIFNjb3BlQ2hhaW4gKyBUYWdPZmZzZXRbdDNdCi0gICAgbW92ZSB0MywgY2ZyCi0gICAgY2Fs
bFRhcmdldEZ1bmN0aW9uKHQxKQorICAgIGFkZHAgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHQzCisg
ICAgY2FsbFRhcmdldEZ1bmN0aW9uKHQxLCB0MykKIAogLm9wQ2FsbFNsb3c6CiAgICAgc2xvd1Bh
dGhGb3JDYWxsKHNsb3dQYXRoKQpAQCAtMjAzOSwxMCArMjA3NCwxMiBAQCBfbGxpbnRfb3BfY2F0
Y2g6CiAgICAgIyB0aGUgaW50ZXJwcmV0ZXIncyB0aHJvdyB0cmFtcG9saW5lIChzZWUgX2xsaW50
X3Rocm93X3RyYW1wb2xpbmUpLgogICAgICMgVGhlIHRocm93aW5nIGNvZGUgbXVzdCBoYXZlIGtu
b3duIHRoYXQgd2Ugd2VyZSB0aHJvd2luZyB0byB0aGUgaW50ZXJwcmV0ZXIsCiAgICAgIyBhbmQg
aGF2ZSBzZXQgVk06OnRhcmdldEludGVycHJldGVyUENGb3JUaHJvdy4KLSAgICBsb2FkcCBTY29w
ZUNoYWluW2Nmcl0sIHQzCisgICAgbG9hZHAgU2NvcGVDaGFpbiArIFBheWxvYWRPZmZzZXRbY2Zy
XSwgdDMKICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKICAgICBsb2FkcCBNYXJrZWRCbG9j
azo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCiAgICAgbG9hZHAgVk06OmNhbGxG
cmFtZUZvclRocm93W3QzXSwgY2ZyCisgICAgcmVzdG9yZVN0YWNrUG9pbnRlckFmdGVyQ2FsbCgp
CisKICAgICBsb2FkaSBWTTo6dGFyZ2V0SW50ZXJwcmV0ZXJQQ0ZvclRocm93W3QzXSwgUEMKICAg
ICBsb2FkaSBWTTo6bV9leGNlcHRpb24gKyBQYXlsb2FkT2Zmc2V0W3QzXSwgdDAKICAgICBsb2Fk
aSBWTTo6bV9leGNlcHRpb24gKyBUYWdPZmZzZXRbdDNdLCB0MQpAQCAtMjExNiw3NCArMjE1Myw2
MiBAQCBfbGxpbnRfdGhyb3dfZHVyaW5nX2NhbGxfdHJhbXBvbGluZToKIAogCiBtYWNybyBuYXRp
dmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikKKworICAgIGZ1bmN0
aW9uUHJvbG9ndWUoKQogICAgIHN0b3JlcCAwLCBDb2RlQmxvY2tbY2ZyXQogICAgIGxvYWRwIENh
bGxlckZyYW1lW2Nmcl0sIHQwCiAgICAgbG9hZGkgU2NvcGVDaGFpbiArIFBheWxvYWRPZmZzZXRb
dDBdLCB0MQogICAgIHN0b3JlaSBDZWxsVGFnLCBTY29wZUNoYWluICsgVGFnT2Zmc2V0W2Nmcl0K
ICAgICBzdG9yZWkgdDEsIFNjb3BlQ2hhaW4gKyBQYXlsb2FkT2Zmc2V0W2Nmcl0KICAgICBpZiBY
ODYKLSAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwotICAgICAgICBhbmRwIE1hcmtl
ZEJsb2NrTWFzaywgdDMKLSAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdl
YWtTZXQ6Om1fdm1bdDNdLCB0MworICAgICAgICBzdWJwIDgsIHNwICMgYWxpZ24gc3RhY2sgcG9p
bnRlcgorICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDEKKyAgICAgICAgbG9hZHAgTWFy
a2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDFdLCB0MwogICAgICAgICBzdG9y
ZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQotICAgICAgICBwZWVrIDAsIHQxCi0gICAgICAg
IHN0b3JlcCB0MSwgUmV0dXJuUENbY2ZyXQogICAgICAgICBtb3ZlIGNmciwgdDIgICMgdDIgPSBl
Y3gKLSAgICAgICAgc3VicCAxNiAtIDQsIHNwCisgICAgICAgIHN0b3JlcCB0MiwgW3NwXQogICAg
ICAgICBsb2FkaSBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCiAgICAgICAgIGxvYWRw
IEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0MV0sIHQxCi0gICAgICAgIG1vdmUgdDAsIGNmcgor
ICAgICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MywgMHhkZWFkMDAwMSkKICAgICAg
ICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAgICAgYWRkcCAxNiAt
IDQsIHNwCi0gICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKLSAgICAgICAgYW5kcCBN
YXJrZWRCbG9ja01hc2ssIHQzCi0gICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQg
KyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKLSAgICBlbHNpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdf
VFJBRElUSU9OQUwgb3IgTUlQUyBvciBTSDQKICAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJd
LCB0MwogICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKICAgICAgICAgbG9hZHAgTWFy
a2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwotICAgICAgICBzdG9y
ZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQotICAgICAgICBtb3ZlIHQwLCB0MgotICAgICAg
ICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDMpCi0gICAgICAgIHN0b3JlcCB0Mywg
UmV0dXJuUENbY2ZyXQotICAgICAgICBtb3ZlIGNmciwgdDAKLSAgICAgICAgbG9hZGkgQ2FsbGVl
ICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MQotICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4
ZWN1dGFibGVbdDFdLCB0MQotICAgICAgICBtb3ZlIHQyLCBjZnIKKyAgICAgICAgYWRkcCA4LCBz
cAorICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBDX0xPT1Ag
b3IgTUlQUyBvciBTSDQKKyAgICAgICAgc3VicCA4LCBzcCAjIGFsaWduIHN0YWNrIHBvaW50ZXIK
KyAgICAgICAgIyB0MSBhbHJlYWR5IGNvbnRhaW5zIHRoZSBTY29wZUNoYWluLgorICAgICAgICBh
bmRwIE1hcmtlZEJsb2NrTWFzaywgdDEKKyAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vh
a1NldCArIFdlYWtTZXQ6Om1fdm1bdDFdLCB0MQorICAgICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9w
Q2FsbEZyYW1lW3QxXQogICAgICAgICBpZiBNSVBTIG9yIFNINAotICAgICAgICAgICAgbW92ZSB0
MCwgYTAKKyAgICAgICAgICAgIG1vdmUgY2ZyLCBhMAorICAgICAgICBlbHNlCisgICAgICAgICAg
ICBtb3ZlIGNmciwgdDAKICAgICAgICAgZW5kCi0gICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNl
dFRvRnVuY3Rpb25bdDFdCi0gICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJu
KHQzKQotICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCi0gICAgICAgIGFuZHAgTWFy
a2VkQmxvY2tNYXNrLCB0MwotICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsg
V2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgZWxzaWYgQ19MT09QCi0gICAgICAgIGxvYWRwIFNj
b3BlQ2hhaW5bY2ZyXSwgdDMKLSAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCi0gICAg
ICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMK
LSAgICAgICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0M10KLSAgICAgICAgbW92ZSB0
MCwgdDIKLSAgICAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQzKQotICAgICAg
ICBzdG9yZXAgdDMsIFJldHVyblBDW2Nmcl0KLSAgICAgICAgbW92ZSBjZnIsIHQwCiAgICAgICAg
IGxvYWRpIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKICAgICAgICAgbG9hZHAgSlNG
dW5jdGlvbjo6bV9leGVjdXRhYmxlW3QxXSwgdDEKLSAgICAgICAgbW92ZSB0MiwgY2ZyCi0gICAg
ICAgIGNsb29wQ2FsbE5hdGl2ZSBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAg
ICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDMpCisgICAgICAgIGNoZWNrU3Rh
Y2tQb2ludGVyQWxpZ25tZW50KHQzLCAweGRlYWQwMDAxKQorICAgICAgICBpZiBDX0xPT1AKKyAg
ICAgICAgICAgIGNsb29wQ2FsbE5hdGl2ZSBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0K
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlv
blt0MV0KKyAgICAgICAgZW5kCiAgICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKICAg
ICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCiAgICAgICAgIGxvYWRwIE1hcmtlZEJsb2Nr
OjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKKyAgICAgICAgYWRkcCA4LCBzcAog
ICAgIGVsc2UKICAgICAgICAgZXJyb3IKICAgICBlbmQKLSAgICBiaW5lcSBWTTo6bV9leGNlcHRp
b24gKyBUYWdPZmZzZXRbdDNdLCBFbXB0eVZhbHVlVGFnLCAuZXhjZXB0aW9uCisgICAgCisgICAg
ZnVuY3Rpb25FcGlsb2d1ZSgpCisgICAgYmluZXEgVk06Om1fZXhjZXB0aW9uICsgVGFnT2Zmc2V0
W3QzXSwgRW1wdHlWYWx1ZVRhZywgLmhhbmRsZUV4Y2VwdGlvbgogICAgIHJldAotLmV4Y2VwdGlv
bjoKLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDEpICMgVGhpcyBpcyByZWFs
bHkgb25seSBuZWVkZWQgb24gWDg2Ci0gICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09mZnNl
dFtjZnJdLCBQQwotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfdGhyb3dfZnJvbV9uYXRpdmVfY2Fs
bCkKKworLmhhbmRsZUV4Y2VwdGlvbjoKKyAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1l
W3QzXQorICAgIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQogICAgIGptcCBfbGxpbnRf
dGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQogZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KaW5kZXggMWJj
NWVkNjhkN2U0NjQ0ZjdkNzEzOTAxYzZhNDUwYzVmOTVjNDgyNS4uZDIwYmI2NTkyZjBhNzRjNjVj
YTQyYmNmMjMwNGIyYzM0ODhmY2NhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KQEAgLTEsNCArMSw0IEBACi0jIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUyLDkg
KzUyLDEwIEBAIG1hY3JvIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKIGVuZAogCiBtYWNybyBjQ2FsbDIo
ZnVuY3Rpb24sIGFyZzEsIGFyZzIpCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDQs
IDB4YmFkMGMwMDIpCiAgICAgaWYgWDg2XzY0Ci0gICAgICAgIG1vdmUgYXJnMSwgdDUKLSAgICAg
ICAgbW92ZSBhcmcyLCB0NAorICAgICAgICBtb3ZlIGFyZzEsIHQ0CisgICAgICAgIG1vdmUgYXJn
MiwgdDUKICAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgIGVsc2lmIEFSTTY0CiAgICAgICAgIG1v
dmUgYXJnMSwgdDAKQEAgLTY5LDkgKzcwLDEwIEBAIGVuZAogCiAjIFRoaXMgYmFyZWx5IHdvcmtz
LiBhcmczIGFuZCBhcmc0IHNob3VsZCBwcm9iYWJseSBiZSBpbW1lZGlhdGVzLgogbWFjcm8gY0Nh
bGw0KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0KQorICAgIGNoZWNrU3RhY2tQb2lu
dGVyQWxpZ25tZW50KHQ0LCAweGJhZDBjMDA0KQogICAgIGlmIFg4Nl82NAotICAgICAgICBtb3Zl
IGFyZzEsIHQ1Ci0gICAgICAgIG1vdmUgYXJnMiwgdDQKKyAgICAgICAgbW92ZSBhcmcxLCB0NAor
ICAgICAgICBtb3ZlIGFyZzIsIHQ1CiAgICAgICAgIG1vdmUgYXJnMywgdDEKICAgICAgICAgbW92
ZSBhcmc0LCB0MgogICAgICAgICBjYWxsIGZ1bmN0aW9uCkBAIC04OCw2NiArOTAsNDkgQEAgbWFj
cm8gY0NhbGw0KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0KQogICAgIGVuZAogZW5k
CiAKLW1hY3JvIGZ1bmN0aW9uUHJvbG9ndWUoZXh0cmFTdGFja1NwYWNlKQorbWFjcm8gZG9DYWxs
VG9KYXZhU2NyaXB0KG1ha2VDYWxsKQogICAgIGlmIFg4Nl82NAotICAgICAgICBwdXNoIGNmcgot
ICAgICAgICBtb3ZlIHNwLCBjZnIKLSAgICBlbHNpZiBBUk02NAotICAgICAgICBwdXNoTFJBbmRG
UAotICAgIGVuZAotICAgIHB1c2hDYWxsZWVTYXZlcwotICAgIGlmIFg4Nl82NAotICAgICAgICBz
dWJwIGV4dHJhU3RhY2tTcGFjZSwgc3AKLSAgICBlbmQKLWVuZAotCi1tYWNybyBmdW5jdGlvbkVw
aWxvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKLSAgICBpZiBYODZfNjQKLSAgICAgICAgYWRkcCBleHRy
YVN0YWNrU3BhY2UsIHNwCi0gICAgZW5kCi0gICAgcG9wQ2FsbGVlU2F2ZXMKLSAgICBpZiBYODZf
NjQKLSAgICAgICAgcG9wIGNmcgotICAgIGVsc2lmIEFSTTY0Ci0gICAgICAgIHBvcExSQW5kRlAK
LSAgICBlbmQKLWVuZAotCi1tYWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0
dXJuKQotICAgIGlmIFg4Nl82NAotICAgICAgICBjb25zdCBlbnRyeSA9IHQ1Ci0gICAgICAgIGNv
bnN0IHZtVG9wQ2FsbEZyYW1lID0gdDQKKyAgICAgICAgY29uc3QgZW50cnkgPSB0NAorICAgICAg
ICBjb25zdCB2bSA9IHQ1CiAgICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gdDEKLSAgICAg
ICAgY29uc3QgdG9wT2ZTdGFjayA9IHQyCiAKLSAgICAgICAgY29uc3QgZXh0cmFTdGFja1NwYWNl
ID0gOAogICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQwCiAgICAgICAgIGNvbnN0IHByZXZp
b3VzUEMgPSB0NgogICAgICAgICBjb25zdCB0ZW1wMSA9IHQwCiAgICAgICAgIGNvbnN0IHRlbXAy
ID0gdDMKICAgICAgICAgY29uc3QgdGVtcDMgPSB0NgotICAgIGVsc2lmIEFSTTY0CisgICAgZWxz
aWYgQVJNNjQgb3IgQ19MT09QCiAgICAgICAgIGNvbnN0IGVudHJ5ID0gYTAKLSAgICAgICAgY29u
c3Qgdm1Ub3BDYWxsRnJhbWUgPSBhMQorICAgICAgICBjb25zdCB2bSA9IGExCiAgICAgICAgIGNv
bnN0IHByb3RvQ2FsbEZyYW1lID0gYTIKLSAgICAgICAgY29uc3QgdG9wT2ZTdGFjayA9IGEzCiAK
LSAgICAgICAgY29uc3QgZXh0cmFTdGFja1NwYWNlID0gMAotICAgICAgICBjb25zdCBwcmV2aW91
c0NGUiA9IHQ0CisgICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0gdDUKICAgICAgICAgY29uc3Qg
cHJldmlvdXNQQyA9IGxyCiAgICAgICAgIGNvbnN0IHRlbXAxID0gdDMKLSAgICAgICAgY29uc3Qg
dGVtcDIgPSB0NQorICAgICAgICBjb25zdCB0ZW1wMiA9IHQ0CiAgICAgICAgIGNvbnN0IHRlbXAz
ID0gdDYKICAgICBlbmQKIAotICAgIGZ1bmN0aW9uUHJvbG9ndWUoZXh0cmFTdGFja1NwYWNlKQor
ICAgIGNhbGxUb0phdmFTY3JpcHRQcm9sb2d1ZSgpCisKKyAgICBpZiBYODZfNjQKKyAgICAgICAg
bG9hZHAgNyo4W3NwXSwgcHJldmlvdXNQQworICAgICAgICBtb3ZlIDYqOFtzcF0sIHByZXZpb3Vz
Q0ZSCisgICAgZWxzaWYgQVJNNjQKKyAgICAgICAgbW92ZSBjZnIsIHByZXZpb3VzQ0ZSCisgICAg
ZW5kCisKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wMiwgMHhiYWQwZGMwMSkK
IAotICAgIG1vdmUgdG9wT2ZTdGFjaywgY2ZyCi0gICAgc3VicCAoQ2FsbEZyYW1lSGVhZGVyU2xv
dHMtMSkqOCwgY2ZyCisgICAgIyBUaGUgc3RhY2sgcmVzZXJ2ZWQgem9uZSBlbnN1cmVzIHRoYXQg
d2UgaGF2ZSBhZGVxdWF0ZSBzcGFjZSBmb3IgdGhlCisgICAgIyBWTUVudHJ5U2VudGluZWxGcmFt
ZS4gUHJvY2VlZCB3aXRoIGFsbG9jYXRpbmcgYW5kIGluaXRpYWxpemluZyB0aGUKKyAgICAjIHNl
bnRpbmVsIGZyYW1lLgorICAgIG1vdmUgc3AsIGNmcgorICAgIHN1YnAgQ2FsbEZyYW1lSGVhZGVy
U2xvdHMgKiA4LCBjZnIKICAgICBzdG9yZXAgMCwgQXJndW1lbnRDb3VudFtjZnJdCi0gICAgc3Rv
cmVwIHZtVG9wQ2FsbEZyYW1lLCBDYWxsZWVbY2ZyXQotICAgIGxvYWRwIFt2bVRvcENhbGxGcmFt
ZV0sIHRlbXAxCi0gICAgc3RvcmVwIHRlbXAxLCBTY29wZUNoYWluW2Nmcl0KKyAgICBzdG9yZXAg
dm0sIENhbGxlZVtjZnJdCisgICAgbG9hZHAgVk06OnRvcENhbGxGcmFtZVt2bV0sIHRlbXAyCisg
ICAgc3RvcmVwIHRlbXAyLCBTY29wZUNoYWluW2Nmcl0KICAgICBzdG9yZXAgMSwgQ29kZUJsb2Nr
W2Nmcl0KICAgICBpZiBYODZfNjQKICAgICAgICAgbG9hZHAgNyo4W3NwXSwgcHJldmlvdXNQQwpA
QCAtMTU1LDIwICsxNDAsNDUgQEAgbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBk
b1JldHVybikKICAgICBlbmQKICAgICBzdG9yZXAgcHJldmlvdXNQQywgUmV0dXJuUENbY2ZyXQog
ICAgIHN0b3JlcCBwcmV2aW91c0NGUiwgQ2FsbGVyRnJhbWVbY2ZyXQotICAgIG1vdmUgY2ZyLCB0
ZW1wMQogCiAgICAgbG9hZGkgUHJvdG9DYWxsRnJhbWU6OnBhZGRlZEFyZ0NvdW50W3Byb3RvQ2Fs
bEZyYW1lXSwgdGVtcDIKICAgICBhZGRwIENhbGxGcmFtZUhlYWRlclNsb3RzLCB0ZW1wMiwgdGVt
cDIKICAgICBsc2hpZnRwIDMsIHRlbXAyCi0gICAgc3VicCB0ZW1wMiwgY2ZyCi0gICAgc3RvcmVw
IHRlbXAxLCBDYWxsZXJGcmFtZVtjZnJdCisgICAgc3VicCBjZnIsIHRlbXAyLCB0ZW1wMQorCisg
ICAgIyBFbnN1cmUgdGhhdCB3ZSBoYXZlIGVub3VnaCBhZGRpdGlvbmFsIHN0YWNrIGNhcGFjaXR5
IGZvciB0aGUgaW5jb21pbmcgYXJncywKKyAgICAjIGFuZCB0aGUgZnJhbWUgZm9yIHRoZSBKUyBj
b2RlIHdlJ3JlIGV4ZWN1dGluZy4gV2UgbmVlZCB0byBkbyB0aGlzIGNoZWNrCisgICAgIyBiZWZv
cmUgd2Ugc3RhcnQgY29weWluZyB0aGUgYXJncyBmcm9tIHRoZSBwcm90b0NhbGxGcmFtZSBiZWxv
dy4KKyAgICBicGFlcSB0ZW1wMSwgVk06Om1fanNTdGFja0xpbWl0W3ZtXSwgLnN0YWNrSGVpZ2h0
T0sKKworICAgIG1vdmUgY2ZyLCBzcAorCisgICAgaWYgQ19MT09QCisgICAgICAgIG1vdmUgZW50
cnksIHRlbXAyCisgICAgICAgIG1vdmUgdm0sIHRlbXAzCisgICAgICAgIGNsb29wQ2FsbFNsb3dQ
YXRoIF9sbGludF9zdGFja19jaGVja19hdF92bV9lbnRyeSwgdm0sIHRlbXAxCisgICAgICAgIGJw
ZXEgdDAsIDAsIC5zdGFja0NoZWNrRmFpbGVkCisgICAgICAgIG1vdmUgdGVtcDIsIGVudHJ5Cisg
ICAgICAgIG1vdmUgdGVtcDMsIHZtCisgICAgICAgIGptcCAuc3RhY2tIZWlnaHRPSworCisuc3Rh
Y2tDaGVja0ZhaWxlZDoKKyAgICAgICAgbW92ZSB0ZW1wMiwgZW50cnkKKyAgICAgICAgbW92ZSB0
ZW1wMywgdm0KKyAgICBlbmQKKworICAgIGNDYWxsMihfbGxpbnRfdGhyb3dfc3RhY2tfb3ZlcmZs
b3dfZXJyb3IsIHZtLCBwcm90b0NhbGxGcmFtZSkKKyAgICBjYWxsVG9KYXZhU2NyaXB0RXBpbG9n
dWUoKQorICAgIHJldAogCisuc3RhY2tIZWlnaHRPSzoKKyAgICBtb3ZlIHRlbXAxLCBzcAogICAg
IG1vdmUgNSwgdGVtcDEKIAogLmNvcHlIZWFkZXJMb29wOgogICAgIHN1YmkgMSwgdGVtcDEKLSAg
ICBsb2FkcCBbcHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMKLSAgICBzdG9yZXAgdGVt
cDMsIENvZGVCbG9ja1tjZnIsIHRlbXAxLCA4XQorICAgIGxvYWRxIFtwcm90b0NhbGxGcmFtZSwg
dGVtcDEsIDhdLCB0ZW1wMworICAgIHN0b3JlcSB0ZW1wMywgQ29kZUJsb2NrW3NwLCB0ZW1wMSwg
OF0KICAgICBidGlueiB0ZW1wMSwgLmNvcHlIZWFkZXJMb29wCiAKICAgICBsb2FkaSBQcm90b0Nh
bGxGcmFtZTo6YXJnQ291bnRBbmRDb2RlT3JpZ2luVmFsdWVbcHJvdG9DYWxsRnJhbWVdLCB0ZW1w
MgpAQCAtMTgwLDcgKzE5MCw3IEBAIG1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwg
ZG9SZXR1cm4pCiAgICAgbW92ZSBWYWx1ZVVuZGVmaW5lZCwgdGVtcDEKIC5maWxsRXh0cmFBcmdz
TG9vcDoKICAgICBzdWJpIDEsIHRlbXAzCi0gICAgc3RvcmVwIHRlbXAxLCBUaGlzQXJndW1lbnRP
ZmZzZXQrOFtjZnIsIHRlbXAzLCA4XQorICAgIHN0b3JlcSB0ZW1wMSwgVGhpc0FyZ3VtZW50T2Zm
c2V0ICsgOFtzcCwgdGVtcDMsIDhdCiAgICAgYmluZXEgdGVtcDIsIHRlbXAzLCAuZmlsbEV4dHJh
QXJnc0xvb3AKIAogLmNvcHlBcmdzOgpAQCAtMTg5LDUzICsxOTksOTcgQEAgbWFjcm8gZG9DYWxs
VG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBkb1JldHVybikKIC5jb3B5QXJnc0xvb3A6CiAgICAgYnRp
eiB0ZW1wMiwgLmNvcHlBcmdzRG9uZQogICAgIHN1YmkgMSwgdGVtcDIKLSAgICBsb2FkcCBbdGVt
cDEsIHRlbXAyLCA4XSwgdGVtcDMKLSAgICBzdG9yZXAgdGVtcDMsIFRoaXNBcmd1bWVudE9mZnNl
dCs4W2NmciwgdGVtcDIsIDhdCisgICAgbG9hZHEgW3RlbXAxLCB0ZW1wMiwgOF0sIHRlbXAzCisg
ICAgc3RvcmVxIHRlbXAzLCBUaGlzQXJndW1lbnRPZmZzZXQgKyA4W3NwLCB0ZW1wMiwgOF0KICAg
ICBqbXAgLmNvcHlBcmdzTG9vcAogCiAuY29weUFyZ3NEb25lOgotICAgIHN0b3JlcCBjZnIsIFt2
bVRvcENhbGxGcmFtZV0KKyAgICBpZiBBUk02NAorICAgICAgICBtb3ZlIHNwLCB0ZW1wMgorICAg
ICAgICBzdG9yZXAgdGVtcDIsIFZNOjp0b3BDYWxsRnJhbWVbdm1dCisgICAgZWxzZQorICAgICAg
ICBzdG9yZXAgc3AsIFZNOjp0b3BDYWxsRnJhbWVbdm1dCisgICAgZW5kCiAKICAgICBtb3ZlIDB4
ZmZmZjAwMDAwMDAwMDAwMCwgY3NyMQogICAgIGFkZHAgMiwgY3NyMSwgY3NyMgogCisgICAgY2hl
Y2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVtcDMsIDB4YmFkMGRjMDIpCisKICAgICBtYWtlQ2Fs
bChlbnRyeSwgdGVtcDEpCiAKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wMywg
MHhiYWQwZGMwMykKKwogICAgIGJwZXEgQ29kZUJsb2NrW2Nmcl0sIDEsIC5jYWxsZWVGcmFtZVBv
cHBlZAogICAgIGxvYWRwIENhbGxlckZyYW1lW2Nmcl0sIGNmcgogCiAuY2FsbGVlRnJhbWVQb3Bw
ZWQ6Ci0gICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRlbXAyICMgVk0udG9wQ2FsbEZyYW1lCi0gICAg
bG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMywgW3RlbXAyXQor
ICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0ZW1wMiAjIFZNCisgICAgbG9hZHAgU2NvcGVDaGFpbltj
ZnJdLCB0ZW1wMyAjIHByZXZpb3VzIHRvcENhbGxGcmFtZQorICAgIHN0b3JlcCB0ZW1wMywgVk06
OnRvcENhbGxGcmFtZVt0ZW1wMl0KKworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHRl
bXAzLCAweGJhZDBkYzA0KQogCi0gICAgZG9SZXR1cm4oZXh0cmFTdGFja1NwYWNlKQorICAgIGlm
IFg4Nl82NAorICAgICAgICBwb3AgdDUKKyAgICBlbmQKKyAgICBjYWxsVG9KYXZhU2NyaXB0RXBp
bG9ndWUoKQorCisgICAgcmV0CiBlbmQKIAorCiBtYWNybyBtYWtlSmF2YVNjcmlwdENhbGwoZW50
cnksIHRlbXApCi0gICAgY2FsbCBlbnRyeQorICAgIGFkZHAgMTYsIHNwCisgICAgaWYgQ19MT09Q
CisgICAgICAgIGNsb29wQ2FsbEpTRnVuY3Rpb24gZW50cnkKKyAgICBlbHNlCisgICAgICAgIGNh
bGwgZW50cnkKKyAgICBlbmQKKyAgICBzdWJwIDE2LCBzcAogZW5kCiAKKwogbWFjcm8gbWFrZUhv
c3RGdW5jdGlvbkNhbGwoZW50cnksIHRlbXApCiAgICAgbW92ZSBlbnRyeSwgdGVtcAogICAgIGlm
IFg4Nl82NAotICAgICAgICBtb3ZlIGNmciwgdDUKKyAgICAgICAgbW92ZSBzcCwgdDQKICAgICBl
bHNpZiBBUk02NCBvciBDX0xPT1AKLSAgICAgICAgbW92ZSBjZnIsIGEwCisgICAgICAgIG1vdmUg
c3AsIGEwCisgICAgZW5kCisgICAgaWYgQ19MT09QCisgICAgICAgIHN0b3JlcCBjZnIsIFtzcF0K
KyAgICAgICAgc3RvcmVwIGxyLCA4W3NwXQorICAgICAgICBjbG9vcENhbGxOYXRpdmUgdGVtcAor
ICAgIGVsc2UKKyAgICAgICAgYWRkcCAxNiwgc3AgCisgICAgICAgIGNhbGwgdGVtcAorICAgICAg
ICBzdWJwIDE2LCBzcAogICAgIGVuZAotICAgIGNhbGwgdGVtcAogZW5kCiAKLW1hY3JvIGRvUmV0
dXJuRnJvbUphdmFTY3JpcHQoZXh0cmFTdGFja1NwYWNlKQotX3JldHVybkZyb21KYXZhU2NyaXB0
OgotICAgIGZ1bmN0aW9uRXBpbG9ndWUoZXh0cmFTdGFja1NwYWNlKQotICAgIHJldAotZW5kCiAK
LW1hY3JvIGRvUmV0dXJuRnJvbUhvc3RGdW5jdGlvbihleHRyYVN0YWNrU3BhY2UpCi0gICAgZnVu
Y3Rpb25FcGlsb2d1ZShleHRyYVN0YWNrU3BhY2UpCitfaGFuZGxlVW5jYXVnaHRFeGNlcHRpb246
CisgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MworICAgIGFuZHAgTWFya2VkQmxvY2tNYXNr
LCB0MworICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3Qz
XSwgdDMKKyAgICBsb2FkcCBWTTo6Y2FsbEZyYW1lRm9yVGhyb3dbdDNdLCBjZnIKKworICAgICMg
U28gZmFyLCB3ZSd2ZSB1bndvdW5kIHRoZSBzdGFjayB0byB0aGUgZnJhbWUganVzdCBiZWxvdyB0
aGUgc2VudGluZWwgZnJhbWUsIGV4Y2VwdAorICAgICMgaW4gdGhlIGNhc2Ugb2Ygc3RhY2sgb3Zl
cmZsb3cgaW4gdGhlIGZpcnN0IGZ1bmN0aW9uIGNhbGxlZCBmcm9tIGNhbGxUb0phdmFTY3JpcHQu
CisgICAgIyBDaGVjayBpZiB3ZSBuZWVkIHRvIHBvcCB0byB0aGUgc2VudGluZWwgZnJhbWUgYW5k
IGRvIHRoZSBuZWNlc3NhcnkgY2xlYW4gdXAgZm9yCisgICAgIyByZXR1cm5pbmcgdG8gdGhlIGNh
bGxlciBDIGZyYW1lLgorICAgIGJwZXEgQ29kZUJsb2NrW2Nmcl0sIDEsIC5oYW5kbGVVbmNhdWdo
dEV4Y2VwdGlvbkFscmVhZHlJc1NlbnRpbmVsCisgICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwg
Y2ZyCisuaGFuZGxlVW5jYXVnaHRFeGNlcHRpb25BbHJlYWR5SXNTZW50aW5lbDoKKworICAgIGxv
YWRwIENhbGxlZVtjZnJdLCB0MyAjIFZNCisgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0NSAj
IHByZXZpb3VzIHRvcENhbGxGcmFtZQorICAgIHN0b3JlcCB0NSwgVk06OnRvcENhbGxGcmFtZVt0
M10KKworICAgIGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1ZSgpCiAgICAgcmV0Ci1lbmQKKwogCiBt
YWNybyBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCiAgICAgbGVhcCBbUEIsIFBDLCA4XSwgUEMKQEAg
LTI0NCw3ICsyOTgsNiBAQCBlbmQKIAogbWFjcm8gcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCiAg
ICAgbW92ZSB0MCwgUEMKLSAgICBtb3ZlIHQxLCBjZnIKICAgICBtb3ZlIHQzLCBQQgogICAgIHN1
YnAgUEIsIFBDCiAgICAgcnNoaWZ0cCAzLCBQQwpAQCAtMjczLDcgKzMyNiw2IEBAIG1hY3JvIGNh
bGxDYWxsU2xvd1BhdGgoc2xvd1BhdGgsIGFjdGlvbikKICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50
Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQogICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKICAgICBj
Q2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCi0gICAgbW92ZSB0MSwgY2ZyCiAgICAgYWN0aW9uKHQw
KQogZW5kCiAKQEAgLTI4MSw3ICszMzMsNiBAQCBtYWNybyBjYWxsV2F0Y2hkb2dUaW1lckhhbmRs
ZXIodGhyb3dIYW5kbGVyKQogICAgIHN0b3JlaSBQQywgQXJndW1lbnRDb3VudCArIFRhZ09mZnNl
dFtjZnJdCiAgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQogICAgIGNDYWxsMihfbGxpbnRfc2xv
d19wYXRoX2hhbmRsZV93YXRjaGRvZ190aW1lciwgY2ZyLCBQQykKLSAgICBtb3ZlIHQxLCBjZnIK
ICAgICBidHBueiB0MCwgdGhyb3dIYW5kbGVyCiAgICAgbW92ZSB0MywgUEIKICAgICBsb2FkaSBB
cmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCkBAIC0yOTQsOCArMzQ1LDggQEAgbWFj
cm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQogICAgICAgICAgICAgc3RvcmVpIFBDLCBBcmd1
bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KICAgICAgICAgICAgIHByZXBhcmVTdGF0ZUZvckND
YWxsKCkKICAgICAgICAgICAgIGNDYWxsMihfbGxpbnRfbG9vcF9vc3IsIGNmciwgUEMpCi0gICAg
ICAgICAgICBtb3ZlIHQxLCBjZnIKICAgICAgICAgICAgIGJ0cHogdDAsIC5yZWNvdmVyCisgICAg
ICAgICAgICBtb3ZlIHQxLCBzcAogICAgICAgICAgICAgam1wIHQwCiAgICAgICAgIC5yZWNvdmVy
OgogICAgICAgICAgICAgbW92ZSB0MywgUEIKQEAgLTM4NywxOSArNDM4LDM1IEBAIGVuZAogIyBF
bnRyeXBvaW50cyBpbnRvIHRoZSBpbnRlcnByZXRlci4KIAogIyBFeHBlY3RzIHRoYXQgQ29kZUJs
b2NrIGlzIGluIHQxLCB3aGljaCBpcyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KLW1h
Y3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNsb3dfcGF0aCkKK21hY3JvIGZ1bmN0
aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNsb3dQYXRoKQogICAgIGxvYWRpIFBheWxvYWRPZmZz
ZXQgKyBBcmd1bWVudENvdW50W2Nmcl0sIHQwCiAgICAgYmlhZXEgdDAsIENvZGVCbG9jazo6bV9u
dW1QYXJhbWV0ZXJzW3QxXSwgZG9uZUxhYmVsCiAgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQot
ICAgIGNDYWxsMihzbG93X3BhdGgsIGNmciwgUEMpICAgIyBUaGlzIHNsb3dfcGF0aCBoYXMgYSBz
aW1wbGUgcHJvdG9jb2w6IHQwID0gMCA9PiBubyBlcnJvciwgdDAgIT0gMCA9PiBlcnJvcgotICAg
IGJ0aXogdDAsIC5pc0FyaXR5Rml4dXBOZWVkZWQKKyAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwg
UEMpICAgIyBUaGlzIHNsb3dQYXRoIGhhcyB0aGUgcHJvdG9jb2w6IHQwID0gMCA9PiBubyBlcnJv
ciwgdDAgIT0gMCA9PiBlcnJvcgorICAgIGJ0aXogdDAsIC5ub0Vycm9yCiAgICAgbW92ZSB0MSwg
Y2ZyICAgIyB0MSBjb250YWlucyBjYWxsZXIgZnJhbWUKICAgICBqbXAgX2xsaW50X3Rocm93X2Zy
b21fc2xvd19wYXRoX3RyYW1wb2xpbmUKIAotLmlzQXJpdHlGaXh1cE5lZWRlZDoKKy5ub0Vycm9y
OgorICAgICMgdDEgcG9pbnRzIHRvIEFyaXR5Q2hlY2tEYXRhLgorICAgIGxvYWRwIENvbW1vblNs
b3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnRodW5rVG9DYWxsW3QxXSwgdDIKKyAgICBidHB6IHQy
LCAucHJvY2VlZElubGluZQorICAgIAorICAgIGxvYWRwIENvbW1vblNsb3dQYXRoczo6QXJpdHlD
aGVja0RhdGE6OnJldHVyblBDW3QxXSwgdDUKKyAgICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFy
aXR5Q2hlY2tEYXRhOjpwYWRkZWRTdGFja1NwYWNlW3QxXSwgdDAKKyAgICBjYWxsIHQyCisgICAg
aWYgQVNTRVJUX0VOQUJMRUQKKyAgICAgICAgbG9hZHAgUmV0dXJuUENbY2ZyXSwgdDAKKyAgICAg
ICAgbG9hZHAgW3QwXSwgdDAKKyAgICBlbmQKKyAgICBqbXAgLmNvbnRpbnVlCisKKy5wcm9jZWVk
SW5saW5lOgorICAgIGxvYWRpIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnBhZGRl
ZFN0YWNrU3BhY2VbdDFdLCB0MQogICAgIGJ0aXogdDEsIC5jb250aW51ZQogCi0gICAgLy8gTW92
ZSBmcmFtZSB1cCAidDEiIHNsb3RzCisgICAgLy8gTW92ZSBmcmFtZSB1cCAidDEgKiAyIiBzbG90
cworICAgIGxzaGlmdHAgMSwgdDEKICAgICBuZWdxIHQxCiAgICAgbW92ZSBjZnIsIHQzCiAgICAg
bG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRbY2ZyXSwgdDIKQEAgLTQyMCw2ICs0
ODcsNyBAQCBtYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93X3BhdGgpCiAK
ICAgICBsc2hpZnRwIDMsIHQxCiAgICAgYWRkcCB0MSwgY2ZyCisgICAgYWRkcCB0MSwgc3AKIAog
LmNvbnRpbnVlOgogICAgICMgUmVsb2FkIENvZGVCbG9jayBhbmQgcmVzZXQgUEMsIHNpbmNlIHRo
ZSBzbG93X3BhdGggY2xvYmJlcmVkIHRoZW0uCkBAIC00MjksNyArNDk3LDYgQEAgbWFjcm8gZnVu
Y3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvd19wYXRoKQogICAgIGptcCBkb25lTGFiZWwK
IGVuZAogCi0KIG1hY3JvIGJyYW5jaElmRXhjZXB0aW9uKGxhYmVsKQogICAgIGxvYWRwIFNjb3Bl
Q2hhaW5bY2ZyXSwgdDMKICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKQEAgLTQ0NCw2ICs1
MTEsNyBAQCBlbmQKIAogX2xsaW50X29wX2VudGVyOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MiwgMHhkZWFkMDBlMSkKICAgICBsb2FkcCBD
b2RlQmxvY2tbY2ZyXSwgdDIgICAgICAgICAgICAgICAgLy8gdDI8Q29kZUJsb2NrPiA9IGNmci5D
b2RlQmxvY2sKICAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVtVmFyc1t0Ml0sIHQyICAgICAgLy8g
dDI8c2l6ZV90PiA9IHQyPENvZGVCbG9jaz4ubV9udW1WYXJzCiAgICAgYnRpeiB0MiwgLm9wRW50
ZXJEb25lCkBAIC0xNzE3LDEwICsxNzg1LDkgQEAgbWFjcm8gZG9DYWxsKHNsb3dQYXRoKQogICAg
IHN0b3JlcSB0MCwgU2NvcGVDaGFpblt0M10KICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMywg
dDIpCiAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KLSAgICBz
dG9yZXEgY2ZyLCBDYWxsZXJGcmFtZVt0M10KICAgICBzdG9yZWkgdDIsIEFyZ3VtZW50Q291bnQg
KyBQYXlsb2FkT2Zmc2V0W3QzXQotICAgIG1vdmUgdDMsIGNmcgotICAgIGNhbGxUYXJnZXRGdW5j
dGlvbih0MSkKKyAgICBhZGRwIENhbGxlckZyYW1lQW5kUENTaXplLCB0MworICAgIGNhbGxUYXJn
ZXRGdW5jdGlvbih0MSwgdDMpCiAKIC5vcENhbGxTbG93OgogICAgIHNsb3dQYXRoRm9yQ2FsbChz
bG93UGF0aCkKQEAgLTE4NDAsNiArMTkwNyw4IEBAIF9sbGludF9vcF9jYXRjaDoKICAgICBhbmRw
IE1hcmtlZEJsb2NrTWFzaywgdDMKICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsg
V2Vha1NldDo6bV92bVt0M10sIHQzCiAgICAgbG9hZHAgVk06OmNhbGxGcmFtZUZvclRocm93W3Qz
XSwgY2ZyCisgICAgcmVzdG9yZVN0YWNrUG9pbnRlckFmdGVyQ2FsbCgpCisKICAgICBsb2FkcCBD
b2RlQmxvY2tbY2ZyXSwgUEIKICAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW1BC
XSwgUEIKICAgICBsb2FkcCBWTTo6dGFyZ2V0SW50ZXJwcmV0ZXJQQ0ZvclRocm93W3QzXSwgUEMK
QEAgLTE4NzksNiArMTk0OCw4IEBAIF9sbGludF90aHJvd19kdXJpbmdfY2FsbF90cmFtcG9saW5l
OgogCiAKIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0
aW9uKQorCisgICAgZnVuY3Rpb25Qcm9sb2d1ZSgpCiAgICAgc3RvcmVwIDAsIENvZGVCbG9ja1tj
ZnJdCiAgICAgaWYgWDg2XzY0CiAgICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDAKQEAg
LTE4ODgsMTkgKzE5NTksMTUgQEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJs
ZU9mZnNldFRvRnVuY3Rpb24pCiAgICAgICAgIGxvYWRwIENhbGxlckZyYW1lW2Nmcl0sIHQwCiAg
ICAgICAgIGxvYWRxIFNjb3BlQ2hhaW5bdDBdLCB0MQogICAgICAgICBzdG9yZXEgdDEsIFNjb3Bl
Q2hhaW5bY2ZyXQotICAgICAgICBwZWVrIDAsIHQxCi0gICAgICAgIHN0b3JlcCB0MSwgUmV0dXJu
UENbY2ZyXQotICAgICAgICBtb3ZlIGNmciwgdDUgICMgdDUgPSByZGkKLSAgICAgICAgc3VicCAx
NiAtIDgsIHNwCi0gICAgICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0NCAjIHQ0ID0gcnNpCi0gICAg
ICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0NF0sIHQxCi0gICAgICAgIG1vdmUg
dDAsIGNmciAjIFJlc3RvcmUgY2ZyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjaworICAgICAg
ICBtb3ZlIGNmciwgdDQgICMgdDQgPSByZGkKKyAgICAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQ1
ICMgdDUgPSByc2kKKyAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3Q1XSwg
dDEKKyAgICAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDMsIDB4ZGVhZDAwMDEpCiAg
ICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCi0gICAgICAgIGFkZHAg
MTYgLSA4LCBzcAogICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCiAgICAgICAgIGFu
ZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFr
U2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgZWxzaWYgQVJNNjQKKyAgICBlbHNpZiBB
Uk02NCBvciBDX0xPT1AKICAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MAogICAgICAg
ICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDAKICAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1f
d2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDBdLCB0MApAQCAtMTkxNCwzMCArMTk4MSwxMSBAQCBt
YWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikKICAg
ICAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQxCiAgICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1f
ZXhlY3V0YWJsZVt0MV0sIHQxCiAgICAgICAgIG1vdmUgdDIsIGNmciAjIFJlc3RvcmUgY2ZyIHRv
IGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjawotICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRU
b0Z1bmN0aW9uW3QxXQotICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0
MykKLSAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwotICAgICAgICBhbmRwIE1hcmtl
ZEJsb2NrTWFzaywgdDMKLSAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdl
YWtTZXQ6Om1fdm1bdDNdLCB0MwotICAgIGVsc2lmIENfTE9PUAotICAgICAgICBsb2FkcCBDYWxs
ZXJGcmFtZVtjZnJdLCB0MAotICAgICAgICBsb2FkcCBTY29wZUNoYWluW3QwXSwgdDEKLSAgICAg
ICAgc3RvcmVwIHQxLCBTY29wZUNoYWluW2Nmcl0KLQotICAgICAgICBsb2FkcCBTY29wZUNoYWlu
W2Nmcl0sIHQzCi0gICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwotICAgICAgICBsb2Fk
cCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgICAg
IHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCi0KLSAgICAgICAgbW92ZSB0MCwgdDIK
LSAgICAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQzKQotICAgICAgICBzdG9y
ZXAgdDMsIFJldHVyblBDW2Nmcl0KLSAgICAgICAgbW92ZSBjZnIsIHQwCi0gICAgICAgIGxvYWRw
IENhbGxlZVtjZnJdLCB0MQotICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVb
dDFdLCB0MQotICAgICAgICBtb3ZlIHQyLCBjZnIKLSAgICAgICAgY2xvb3BDYWxsTmF0aXZlIGV4
ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQotCisgICAgICAgIGlmIENfTE9PUAorICAgICAg
ICAgICAgY2xvb3BDYWxsTmF0aXZlIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQorICAg
ICAgICBlbHNlCisgICAgICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3Qx
XQorICAgICAgICBlbmQKICAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4o
dDMpCiAgICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKICAgICAgICAgYW5kcCBNYXJr
ZWRCbG9ja01hc2ssIHQzCkBAIC0xOTQ2LDE2ICsxOTk0LDE0IEBAIG1hY3JvIG5hdGl2ZUNhbGxU
cmFtcG9saW5lKGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKQogICAgICAgICBlcnJvcgogICAg
IGVuZAogCi0gICAgYnRxbnogVk06Om1fZXhjZXB0aW9uW3QzXSwgLmV4Y2VwdGlvbgorICAgIGZ1
bmN0aW9uRXBpbG9ndWUoKQorCisgICAgYnRxbnogVk06Om1fZXhjZXB0aW9uW3QzXSwgLmhhbmRs
ZUV4Y2VwdGlvbgogICAgIHJldAotLmV4Y2VwdGlvbjoKLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJl
c3NBZnRlckNhbGwodDEpICMgVGhpcyBpcyByZWFsbHkgb25seSBuZWVkZWQgb24gWDg2XzY0Ci0g
ICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdLCBQQwotICAgIGxvYWRwIENv
ZGVCbG9ja1tjZnJdLCBQQgotICAgIGxvYWRwIENvZGVCbG9jazo6bV92bVtQQl0sIHQwCi0gICAg
bG9hZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9uc1tQQl0sIFBCCi0gICAgc3RvcmVwIGNmciwg
Vk06OnRvcENhbGxGcmFtZVt0MF0KLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Rocm93X2Zyb21f
bmF0aXZlX2NhbGwpCisKKy5oYW5kbGVFeGNlcHRpb246CisgICAgc3RvcmVwIGNmciwgVk06OnRv
cENhbGxGcmFtZVt0M10KKyAgICByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKICAgICBq
bXAgX2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUKIGVuZAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGx2bS9saWJyYXJ5L0xMVk1FeHBvcnRzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbHZtL2xpYnJhcnkvTExWTUV4cG9ydHMuY3BwCmluZGV4
IDZlNzRiNTBhNDc1OWFlMzFiMGU3MWI3YmE4ZjU2MmUxYmRjMjY3N2YuLjQ5NDBhNGM3NjBlMDM5
MGNmMzNhMmUyOTdhNjhkNWMzNWQzNTcyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbHZtL2xpYnJhcnkvTExWTUV4cG9ydHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbHZtL2xpYnJhcnkvTExWTUV4cG9ydHMuY3BwCkBAIC00Miw2ICs0MiwxMCBAQCBleHRl
cm4gIkMiIEpTQzo6TExWTUFQSSogaW5pdGlhbGl6ZUFuZEdldEpTQ0xMVk1BUEkodm9pZCAoKmNh
bGxiYWNrKShjb25zdCBjaGFyKgogICAgIGdfbGx2bVRyYXBDYWxsYmFjayA9IGNhbGxiYWNrOwog
ICAgIAogICAgIExMVk1JbnN0YWxsRmF0YWxFcnJvckhhbmRsZXIobGx2bUNyYXNoKTsKKworICAg
IGlmICghTExWTVN0YXJ0TXVsdGl0aHJlYWRlZCgpKQorICAgICAgICBjYWxsYmFjaygiQ291bGQg
bm90IHN0YXJ0IExMVk0gbXVsdGl0aHJlYWRpbmciKTsKKyAgICAKICAgICBMTFZNTGlua0luTUNK
SVQoKTsKICAgICBMTFZNSW5pdGlhbGl6ZU5hdGl2ZVRhcmdldCgpOwogICAgIExMVk1Jbml0aWFs
aXplWDg2QXNtUHJpbnRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vYXJtLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJi
CmluZGV4IDEwYjMzOWViNjdiOGMwODhhYjRhNzg3Y2VkOGY1ZmM2ZDE0ZjA2NWIuLmMzZGJjNTEw
YzA4NDY3NjgyYmUyNWM4OWU2YzUwNDQ3Yjk5ZWVjMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybS5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9hcm0ucmIKQEAgLTYwMSw2ICs2MDEsOCBAQCBjbGFzcyBJbnN0cnVjdGlvbgog
ICAgICAgICAgICAgJGFzbS5wdXRzICJzbXVsbCAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzNdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29w
ZXJhbmRzWzFdLmFybU9wZXJhbmR9IgogICAgICAgICB3aGVuICJtZW1mZW5jZSIKICAgICAgICAg
ICAgICRhc20ucHV0cyAiZG1iIHN5IgorICAgICAgICB3aGVuICJjbHJicCIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAiYmljICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0u
YXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIGxvd2VyRGVmYXVsdAogICAgICAgICBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vYXJtNjQucmIKaW5kZXggZTBhMjNmZjM3ODFlZWM5OWM4OTMxODE1YzgyZmM0
NTQwOTNlOGFlYi4uMjA4ODIxNmMwY2M5YWJhNmVmMGMwMTAyMzM0ZjY4YzFhY2RkYjZkZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIKQEAgLTQwLDE0ICs0MCwx
NCBAQCByZXF1aXJlICJyaXNjIgogIyAgeDEgID0+IHQxLCBhMSwgcjEKICMgIHgyICA9PiB0Miwg
YTIKICMgIHgzICA9PiBhMworIyAgeDUgID0+IHQ1CisjICB4NiAgPT4gdDYKICMgIHg5ICA9PiAo
bm9uQXJnR1BSMSBpbiBiYXNlbGluZSkKLSMgeDEwICA9PiB0NCAodW51c2VkIGluIGJhc2VsaW5l
KQotIyB4MTEgID0+IHQ1ICh1bnVzZWQgaW4gYmFzZWxpbmUpCi0jIHgxMiAgPT4gdDYgKHVudXNl
ZCBpbiBiYXNlbGluZSkKICMgeDEzICA9PiBzY3JhdGNoICh1bnVzZWQgaW4gYmFzZWxpbmUpCiAj
IHgxNiAgPT4gc2NyYXRjaAogIyB4MTcgID0+IHNjcmF0Y2gKICMgeDIzICA9PiB0MworIyB4MjQg
ID0+IHQ0CiAjIHgyNyAgPT4gY3NyMSAodGFnVHlwZU51bWJlcikKICMgeDI4ICA9PiBjc3IyICh0
YWdNYXNrKQogIyB4MjkgID0+IGNmcgpAQCAtMTEzLDExICsxMTMsMTEgQEAgY2xhc3MgUmVnaXN0
ZXJJRAogICAgICAgICB3aGVuICd0MycKICAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDIzJywg
a2luZCkKICAgICAgICAgd2hlbiAndDQnCi0gICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gxMCcs
IGtpbmQpCisgICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gyNCcsIGtpbmQpCiAgICAgICAgIHdo
ZW4gJ3Q1JwotICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4MTEnLCBraW5kKQorICAgICAgICAg
ICAgYXJtNjRHUFJOYW1lKCd4NScsIGtpbmQpCiAgICAgICAgIHdoZW4gJ3Q2JwotICAgICAgICAg
ICAgYXJtNjRHUFJOYW1lKCd4MTInLCBraW5kKQorICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4
NicsIGtpbmQpCiAgICAgICAgIHdoZW4gJ2NmcicKICAgICAgICAgICAgIGFybTY0R1BSTmFtZSgn
eDI5Jywga2luZCkKICAgICAgICAgd2hlbiAnY3NyMScKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Nsb29wLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vY2xvb3AucmIKaW5kZXggODUyZTg2NGU5OWEzYjg3YjVkYzFkZWIwMGRhY2M0N2U1
ODkyZTNmOS4uOWI5MjA0N2RlMjE2ZjdlYjY4YTFiYjI2ZjJiNmJlYTk3ODdiMjI3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY2xvb3AucmIKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY2xvb3AucmIKQEAgLTEsNCArMSw0IEBACi0j
IENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENv
cHlyaWdodCAoQykgMjAxMiwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAj
CiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTY4LDM0ICs2OCwyMiBAQCBDX0xPT1BfU0NS
QVRDSF9GUFIgPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCJkNiIpCiBjbGFzcyBSZWdpc3RlcklECiAg
ICAgZGVmIGNsRHVtcAogICAgICAgICBjYXNlIG5hbWUKLSAgICAgICAgd2hlbiAiYTAiCi0gICAg
ICAgICAgICAiYTAiCi0gICAgICAgIHdoZW4gImExIgotICAgICAgICAgICAgImExIgotICAgICAg
ICB3aGVuICJhMiIKLSAgICAgICAgICAgICJhMiIKLSAgICAgICAgd2hlbiAiYTMiCi0gICAgICAg
ICAgICAiYTMiCi0gICAgICAgIHdoZW4gImE0IgotICAgICAgICAgICAgImE0IgotICAgICAgICB3
aGVuICJhNSIKLSAgICAgICAgICAgICJhNSIKLSAgICAgICAgd2hlbiAiYTYiCi0gICAgICAgICAg
ICAiYTYiCi0gICAgICAgIHdoZW4gImE2IgotICAgICAgICAgICAgImE2IgotICAgICAgICB3aGVu
ICJ0MCIKKyAgICAgICAgIyBUaGUgY2xvb3AgaXMgbW9kZWxsZWQgb24gdGhlIEFSTSBpbXBsZW1l
bnRhdGlvbi4gSGVuY2UsIHRoZSBhMC1hMworICAgICAgICAjIHJlZ2lzdGVycyBhcmUgYWxpYXNl
cyBmb3IgcjAtcjMgaS5lLiB0MC10MyBpbiBvdXIgY2FzZS4KKyAgICAgICAgd2hlbiAidDAiLCAi
YTAiCiAgICAgICAgICAgICAidDAiCi0gICAgICAgIHdoZW4gInQxIgorICAgICAgICB3aGVuICJ0
MSIsICJhMSIKICAgICAgICAgICAgICJ0MSIKLSAgICAgICAgd2hlbiAidDIiCisgICAgICAgIHdo
ZW4gInQyIiwgImEyIgogICAgICAgICAgICAgInQyIgotICAgICAgICB3aGVuICJ0MyIKKyAgICAg
ICAgd2hlbiAidDMiLCAiYTMiCiAgICAgICAgICAgICAidDMiCiAgICAgICAgIHdoZW4gInQ0Igot
ICAgICAgICAgICAgInJQQyIKKyAgICAgICAgICAgICJwYyIKKyAgICAgICAgd2hlbiAidDUiCisg
ICAgICAgICAgICAidDUiCiAgICAgICAgIHdoZW4gInQ2IgotICAgICAgICAgICAgInJCYXNlUEMi
CisgICAgICAgICAgICAicGNCYXNlIgogICAgICAgICB3aGVuICJjc3IxIgogICAgICAgICAgICAg
InRhZ1R5cGVOdW1iZXIiCiAgICAgICAgIHdoZW4gImNzcjIiCkBAIC0xMDMsNyArOTEsNyBAQCBj
bGFzcyBSZWdpc3RlcklECiAgICAgICAgIHdoZW4gImNmciIKICAgICAgICAgICAgICJjZnIiCiAg
ICAgICAgIHdoZW4gImxyIgotICAgICAgICAgICAgInJSZXRWUEMiCisgICAgICAgICAgICAibHIi
CiAgICAgICAgIHdoZW4gInNwIgogICAgICAgICAgICAgInNwIgogICAgICAgICBlbHNlCkBAIC01
NTUsMTQgKzU0MywxNCBAQCBlbmQKICMgb3BlcmFuZHM6IGNhbGxUYXJnZXQsIGN1cnJlbnRGcmFt
ZSwgY3VycmVudFBDCiBkZWYgY2xvb3BFbWl0Q2FsbFNsb3dQYXRoKG9wZXJhbmRzKQogICAgICRh
c20ucHV0YyAieyIKLSAgICAkYXNtLnB1dGMgIiAgICBFeGVjU3RhdGUqIGV4ZWMgPSBDQVNUPEV4
ZWNTdGF0ZSo+KCN7b3BlcmFuZHNbMV0uY2xWYWx1ZSg6dm9pZFB0cil9KTsiCi0gICAgJGFzbS5w
dXRjICIgICAgSW5zdHJ1Y3Rpb24qIHBjID0gQ0FTVDxJbnN0cnVjdGlvbio+KCN7b3BlcmFuZHNb
Ml0uY2xWYWx1ZSg6dm9pZFB0cil9KTsiCi0gICAgJGFzbS5wdXRjICIgICAgU2xvd1BhdGhSZXR1
cm5UeXBlIHJlc3VsdCA9ICN7b3BlcmFuZHNbMF0uY0xhYmVsfShleGVjLCBwYyk7IgotICAgICRh
c20ucHV0YyAiICAgIGRlY29kZVJlc3VsdChyZXN1bHQsIHQwLmluc3RydWN0aW9uLCB0MS52cCk7
IgorICAgICRhc20ucHV0YyAiICAgIFNsb3dQYXRoUmV0dXJuVHlwZSByZXN1bHQgPSAje29wZXJh
bmRzWzBdLmNMYWJlbH0oI3tvcGVyYW5kc1sxXS5jbER1bXB9LCAje29wZXJhbmRzWzJdLmNsRHVt
cH0pOyIKKyAgICAkYXNtLnB1dGMgIiAgICBkZWNvZGVSZXN1bHQocmVzdWx0LCB0MC52cCwgdDEu
dnApOyIKICAgICAkYXNtLnB1dGMgIn0iCiBlbmQKIAogY2xhc3MgSW5zdHJ1Y3Rpb24KKyAgICBA
QGRpZFJldHVybkZyb21KU0xhYmVsQ291bnRlciA9IDAKKwogICAgIGRlZiBsb3dlckNfTE9PUAog
ICAgICAgICAkYXNtLmNvZGVPcmlnaW4gY29kZU9yaWdpblN0cmluZyBpZiAkZW5hYmxlQ29kZU9y
aWdpbkNvbW1lbnRzCiAgICAgICAgICRhc20uYW5ub3RhdGlvbiBhbm5vdGF0aW9uIGlmICRlbmFi
bGVJbnN0ckFubm90YXRpb25zICYmIChvcGNvZGUgIT0gImNsb29wRG8iKQpAQCAtODc2LDcgKzg2
NCw4IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgIHdoZW4gImJyZWFrIgogICAgICAgICAg
ICAgJGFzbS5wdXRjICJDUkFTSCgpOyAvLyBicmVhayBpbnN0cnVjdGlvbiBub3QgaW1wbGVtZW50
ZWQuIgogICAgICAgICB3aGVuICJyZXQiCi0gICAgICAgICAgICAkYXNtLnB1dGMgImdvdG8gZG9S
ZXR1cm5IZWxwZXI7IgorICAgICAgICAgICAgJGFzbS5wdXRjICJvcGNvZGUgPSBsci5vcGNvZGU7
IgorICAgICAgICAgICAgJGFzbS5wdXRjICJESVNQQVRDSF9PUENPREUoKTsiCiAKICAgICAgICAg
d2hlbiAiY2JlcSIKICAgICAgICAgICAgIGNsb29wRW1pdENvbXBhcmVBbmRTZXQob3BlcmFuZHMs
IDp1aW50OCwgIj09IikKQEAgLTEwOTcsNiArMTA4NiwxMiBAQCBjbGFzcyBJbnN0cnVjdGlvbgog
ICAgICAgICAgICAgY2xvb3BFbWl0T3BBbmRCcmFuY2gob3BlcmFuZHMsICJ8IiwgOmludDMyLCAi
IT0gMCIpCiAgICAgICAgICAgICAKICAgICAgICAgd2hlbiAibWVtZmVuY2UiCisKKyAgICAgICAg
d2hlbiAicHVzaCIKKyAgICAgICAgICAgICRhc20ucHV0YyAiUFVTSCgje29wZXJhbmRzWzBdLmNs
RHVtcH0pOyIKKyAgICAgICAgd2hlbiAicG9wIgorICAgICAgICAgICAgJGFzbS5wdXRjICJQT1Ao
I3tvcGVyYW5kc1swXS5jbER1bXB9KTsiCisKICAgICAgICAgd2hlbiAicHVzaENhbGxlZVNhdmVz
IgogICAgICAgICB3aGVuICJwb3BDYWxsZWVTYXZlcyIKIApAQCAtMTExMyw4ICsxMTA4LDExIEBA
IGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICMgdXNlIG9mIHRoZSBjYWxsIGluc3RydWN0aW9u
LiBJbnN0ZWFkLCB3ZSBqdXN0IGltcGxlbWVudCBKUyBjYWxscwogICAgICAgICAjIGFzIGFuIG9w
Y29kZSBkaXNwYXRjaC4KICAgICAgICAgd2hlbiAiY2xvb3BDYWxsSlNGdW5jdGlvbiIKKyAgICAg
ICAgICAgIEBAZGlkUmV0dXJuRnJvbUpTTGFiZWxDb3VudGVyICs9IDEKKyAgICAgICAgICAgICRh
c20ucHV0YyAibHIub3Bjb2RlID0gZ2V0T3Bjb2RlKGxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJv
bV9qc18je0BAZGlkUmV0dXJuRnJvbUpTTGFiZWxDb3VudGVyfSk7IgogICAgICAgICAgICAgJGFz
bS5wdXRjICJvcGNvZGUgPSAje29wZXJhbmRzWzBdLmNsVmFsdWUoOm9wY29kZSl9OyIKICAgICAg
ICAgICAgICRhc20ucHV0YyAiRElTUEFUQ0hfT1BDT0RFKCk7IgorICAgICAgICAgICAgJGFzbS5w
dXRzTGFiZWwoImxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc18je0BAZGlkUmV0dXJuRnJv
bUpTTGFiZWxDb3VudGVyfSIpCiAKICAgICAgICAgIyBXZSBjYW4ndCBkbyBnZW5lcmljIGZ1bmN0
aW9uIGNhbGxzIHdpdGggYW4gYXJiaXRyYXJ5IHNldCBvZiBhcmdzLCBidXQKICAgICAgICAgIyBm
b3J0dW5hdGVseSB3ZSBkb24ndCBoYXZlIHRvIGhlcmUuIEFsbCBuYXRpdmUgZnVuY3Rpb24gY2Fs
bHMgYWx3YXlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9p
bnN0cnVjdGlvbnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVj
dGlvbnMucmIKaW5kZXggNWEzNDYzZmM5YWNjYTVlY2MyZTUyY2E4NTMzNGJkOTU3NDE5MDQ0MC4u
OTg5ZWU4MmMyNzgzYWU2MTEwOGM4MWQ4NGRlZmUxYjdlNjE1YzAzZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgpAQCAtMjU4LDYgKzI1
OCwxMSBAQCBYODZfSU5TVFJVQ1RJT05TID0KICAgICAgImlkaXZpIgogICAgIF0KIAorQVJNX0lO
U1RSVUNUSU9OUyA9CisgICAgWworICAgICAiY2xyYnAiCisgICAgXQorCiBBUk02NF9JTlNUUlVD
VElPTlMgPQogICAgIFsKICAgICAgInBvcExSQW5kRlAiLCAgICMgQVJNNjQgcmVxdWlyZXMgcmVn
aXN0ZXJzIHRvIGJlIHB1c2hlZCBhbmQgcG9wcGVkIGluIHBhaXJzLApAQCAtMzEzLDcgKzMxOCw3
IEBAIENYWF9JTlNUUlVDVElPTlMgPQogICAgICAiY2xvb3BEbyIsICAgICAgICAgICAgICAjIG5v
IG9wZXJhbmRzCiAgICAgXQogCi1JTlNUUlVDVElPTlMgPSBNQUNST19JTlNUUlVDVElPTlMgKyBY
ODZfSU5TVFJVQ1RJT05TICsgQVJNNjRfSU5TVFJVQ1RJT05TICsgUklTQ19JTlNUUlVDVElPTlMg
KyBNSVBTX0lOU1RSVUNUSU9OUyArIFNINF9JTlNUUlVDVElPTlMgKyBDWFhfSU5TVFJVQ1RJT05T
CitJTlNUUlVDVElPTlMgPSBNQUNST19JTlNUUlVDVElPTlMgKyBYODZfSU5TVFJVQ1RJT05TICsg
QVJNX0lOU1RSVUNUSU9OUyArIEFSTTY0X0lOU1RSVUNUSU9OUyArIFJJU0NfSU5TVFJVQ1RJT05T
ICsgTUlQU19JTlNUUlVDVElPTlMgKyBTSDRfSU5TVFJVQ1RJT05TICsgQ1hYX0lOU1RSVUNUSU9O
UwogCiBJTlNUUlVDVElPTl9QQVRURVJOID0gUmVnZXhwLm5ldygnXFxBKCgnICsgSU5TVFJVQ1RJ
T05TLmpvaW4oJyl8KCcpICsgJykpXFxaJykKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL29mZmxpbmVhc20veDg2LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20veDg2LnJiCmluZGV4IGU0N2YyOTU2MTE1MDc2ODRkMTY0ZWQ0ZjgyZWJlOWRmYTU2NDcyNzYu
LmMxNjEyNDJiZTY3NmJmNmZkYjYzZjU1NDYzOWVkYmUxNzY5M2VjMDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIKQEAgLTE1MCwxNSArMTUwLDE1IEBAIGNsYXNzIFJl
Z2lzdGVySUQKICAgICAgICAgd2hlbiAidDQiCiAgICAgICAgICAgICBjYXNlIGtpbmQKICAgICAg
ICAgICAgIHdoZW4gOmJ5dGUKLSAgICAgICAgICAgICAgICAiJXNpbCIKKyAgICAgICAgICAgICAg
ICAiJWRpbCIKICAgICAgICAgICAgIHdoZW4gOmhhbGYKLSAgICAgICAgICAgICAgICAiJXNpIgor
ICAgICAgICAgICAgICAgICIlZGkiCiAgICAgICAgICAgICB3aGVuIDppbnQKLSAgICAgICAgICAg
ICAgICAiJWVzaSIKKyAgICAgICAgICAgICAgICAiJWVkaSIKICAgICAgICAgICAgIHdoZW4gOnB0
cgotICAgICAgICAgICAgICAgIGlzWDY0ID8gIiVyc2kiIDogIiVlc2kiCisgICAgICAgICAgICAg
ICAgaXNYNjQgPyAiJXJkaSIgOiAiJWVkaSIKICAgICAgICAgICAgIHdoZW4gOnF1YWQKLSAgICAg
ICAgICAgICAgICBpc1g2NCA/ICIlcnNpIiA6IHJhaXNlCisgICAgICAgICAgICAgICAgaXNYNjQg
PyAiJXJkaSIgOiByYWlzZQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJhaXNl
CiAgICAgICAgICAgICBlbmQKQEAgLTIwNiwxNSArMjA2LDE1IEBAIGNsYXNzIFJlZ2lzdGVySUQK
ICAgICAgICAgd2hlbiAidDUiCiAgICAgICAgICAgICBjYXNlIGtpbmQKICAgICAgICAgICAgIHdo
ZW4gOmJ5dGUKLSAgICAgICAgICAgICAgICAiJWRpbCIKKyAgICAgICAgICAgICAgICAiJXNpbCIK
ICAgICAgICAgICAgIHdoZW4gOmhhbGYKLSAgICAgICAgICAgICAgICAiJWRpIgorICAgICAgICAg
ICAgICAgICIlc2kiCiAgICAgICAgICAgICB3aGVuIDppbnQKLSAgICAgICAgICAgICAgICAiJWVk
aSIKKyAgICAgICAgICAgICAgICAiJWVzaSIKICAgICAgICAgICAgIHdoZW4gOnB0cgotICAgICAg
ICAgICAgICAgIGlzWDY0ID8gIiVyZGkiIDogIiVlZGkiCisgICAgICAgICAgICAgICAgaXNYNjQg
PyAiJXJzaSIgOiAiJWVzaSIKICAgICAgICAgICAgIHdoZW4gOnF1YWQKLSAgICAgICAgICAgICAg
ICBpc1g2NCA/ICIlcmRpIiA6IHJhaXNlCisgICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJzaSIg
OiByYWlzZQogICAgICAgICAgICAgZW5kCiAgICAgICAgIHdoZW4gInQ2IgogICAgICAgICAgICAg
cmFpc2UgIkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdpblN0
cmluZ30iIHVubGVzcyBpc1g2NApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9QYXJzZXJFcnJvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJF
cnJvci5oCmluZGV4IGJhYTQ0NjVkMDc4ZGUxNzY0YWE4ZWYyN2I3NTU5MWE4YmJiZTVhYWMuLmRm
MzhhMDY3NDI5YWViMmJiNzY5YTVmYjgzOTY0MDRmZTg4YTQ1NjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyRXJyb3IuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1BhcnNlckVycm9yLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUg
UGFyc2VyRXJyb3JfaAogCiAjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJFcnJvckhhbmRs
aW5nU2NvcGUuaCIKICNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCiAjaW5jbHVkZSAiUGFy
c2VyVG9rZW5zLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC05NCw4ICs5
NSwxMCBAQCBzdHJ1Y3QgUGFyc2VyRXJyb3IgewogICAgICAgICAgICAgcmV0dXJuIGFkZEVycm9y
SW5mbyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgY3JlYXRlU3ludGF4RXJyb3IoZ2xvYmFs
T2JqZWN0LCBtX21lc3NhZ2UpLCBtX2xpbmUsIHNvdXJjZSk7CiAgICAgICAgIGNhc2UgRXZhbEVy
cm9yOgogICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVN5bnRheEVycm9yKGdsb2JhbE9iamVjdCwg
bV9tZXNzYWdlKTsKLSAgICAgICAgY2FzZSBTdGFja092ZXJmbG93OgorICAgICAgICBjYXNlIFN0
YWNrT3ZlcmZsb3c6IHsKKyAgICAgICAgICAgIEVycm9ySGFuZGxpbmdTY29wZSBlcnJvclNjb3Bl
KGdsb2JhbE9iamVjdC0+dm0oKSk7CiAgICAgICAgICAgICByZXR1cm4gY3JlYXRlU3RhY2tPdmVy
Zmxvd0Vycm9yKGdsb2JhbE9iamVjdCk7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBPdXRPZk1l
bW9yeToKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9i
amVjdCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcAppbmRleCA1NTc2NmNlNWM4MGVhMTlmZTI4YzJk
OTI2NDM0MDNmOTgyYTE0YmE2Li4wMDhjYWYxY2Q5MWFmZGQzOTM0NWY5Yjk0Yzk3NzY2OTcyMjBk
OGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJD
b21waWxhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVyQ29tcGlsYXRpb24uY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02Nyw2ICs2NywxMSBAQCB2b2lkIENvbXBp
bGF0aW9uOjphZGREZXNjcmlwdGlvbihjb25zdCBDb21waWxlZEJ5dGVjb2RlJiBjb21waWxlZEJ5
dGVjb2RlKQogICAgIG1fZGVzY3JpcHRpb25zLmFwcGVuZChjb21waWxlZEJ5dGVjb2RlKTsKIH0K
IAordm9pZCBDb21waWxhdGlvbjo6YWRkRGVzY3JpcHRpb24oY29uc3QgT3JpZ2luU3RhY2smIHN0
YWNrLCBjb25zdCBDU3RyaW5nJiBkZXNjcmlwdGlvbikKK3sKKyAgICBhZGREZXNjcmlwdGlvbihD
b21waWxlZEJ5dGVjb2RlKHN0YWNrLCBkZXNjcmlwdGlvbikpOworfQorCiBFeGVjdXRpb25Db3Vu
dGVyKiBDb21waWxhdGlvbjo6ZXhlY3V0aW9uQ291bnRlckZvcihjb25zdCBPcmlnaW5TdGFjayYg
b3JpZ2luKQogewogICAgIHN0ZDo6dW5pcXVlX3B0cjxFeGVjdXRpb25Db3VudGVyPiYgY291bnRl
ciA9IG1fY291bnRlcnMuYWRkKG9yaWdpbiwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRp
b24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9u
LmgKaW5kZXggZGMyODEwNTI1Yjc3YzY4NmM2MTExYTM5MDQ0ODNhMmU0YjBhMjFkNS4uZDE2NzU3
ZTJhZWUzYzYxMWM4OGFiYmZhMTNiZWZiNTVhNjE2ZDZiZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICBDb21waWxhdGlvbktpbmQga2luZCgpIGNvbnN0
IHsgcmV0dXJuIG1fa2luZDsgfQogICAgIAogICAgIHZvaWQgYWRkRGVzY3JpcHRpb24oY29uc3Qg
Q29tcGlsZWRCeXRlY29kZSYpOworICAgIHZvaWQgYWRkRGVzY3JpcHRpb24oY29uc3QgT3JpZ2lu
U3RhY2smLCBjb25zdCBDU3RyaW5nJiBkZXNjcmlwdGlvbik7CiAgICAgRXhlY3V0aW9uQ291bnRl
ciogZXhlY3V0aW9uQ291bnRlckZvcihjb25zdCBPcmlnaW5TdGFjayYpOwogICAgIHZvaWQgYWRk
T1NSRXhpdFNpdGUoY29uc3QgVmVjdG9yPGNvbnN0IHZvaWQqPiYgY29kZUFkZHJlc3Nlcyk7CiAg
ICAgT1NSRXhpdCogYWRkT1NSRXhpdCh1bnNpZ25lZCBpZCwgY29uc3QgT3JpZ2luU3RhY2smLCBF
eGl0S2luZCwgYm9vbCBpc1dhdGNocG9pbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uS2luZC5jcHAKaW5kZXggNzhj
ZTcwNTg2ZGQwMWJlNWI2MzNjZWRiMmQwY2FmYWZjYTQyYzljZS4uM2ZiZTI1MTkyNWFkYjM4M2I3
OGJlNWExZWQxZTJjZTQ1YmI4ODMzOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbktpbmQuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Miw2ICs0Miwx
MiBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgSlNDOjpQcm9maWxlcjo6
Q29tcGlsYXRpb25LaW5kIGtpbmQpCiAgICAgY2FzZSBKU0M6OlByb2ZpbGVyOjpERkc6CiAgICAg
ICAgIG91dC5wcmludCgiREZHIik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEpTQzo6UHJv
ZmlsZXI6OkZUTDoKKyAgICAgICAgb3V0LnByaW50KCJGVEwiKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIGNhc2UgSlNDOjpQcm9maWxlcjo6RlRMRm9yT1NSRW50cnk6CisgICAgICAgIG91dC5wcmlu
dCgiRlRMRm9yT1NSRW50cnkiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIENSQVNIKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uS2luZC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmgKaW5kZXggNDgwNmQz
OWI5M2ZiMDg0NGZkNDA2MTQ0MjE3MjgxN2Q2Mzg1MDIwYi4uNTc1ZWMyOTQ3YTc2MWU0ZmZjZTVk
MjJjNDllOWFmZGMxYjQ1YTc4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmgKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDcgKzMxLDkgQEAgbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiBlbnVtIENvbXBpbGF0aW9uS2luZCB7
CiAgICAgTExJbnQsCiAgICAgQmFzZWxpbmUsCi0gICAgREZHCisgICAgREZHLAorICAgIEZUTCwK
KyAgICBGVExGb3JPU1JFbnRyeQogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OlByb2ZpbGVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcml0eUNoZWNrTW9k
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJpdHlDaGVja01vZGUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mMjA5MGMwNTdmZGFmMGNiMWEwOTRhOTJmYTk5NTY2MTQ3OWRmM2Y3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJpdHlDaGVja01vZGUu
aApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgQXJpdHlDaGVja01vZGVfaAorI2RlZmluZSBBcml0eUNoZWNrTW9k
ZV9oCisKK25hbWVzcGFjZSBKU0MgeworCitlbnVtIEFyaXR5Q2hlY2tNb2RlIHsKKyAgICBBcml0
eUNoZWNrTm90UmVxdWlyZWQsCisgICAgTXVzdENoZWNrQXJpdHkKK307CisKK30gLy8gbmFtZXNw
YWNlIEpTQworCisjZW5kaWYgLy8gQXJpdHlDaGVja01vZGVfaAorCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAppbmRleCBmNmExNDJlNmQy
YzA1NDIxMjE1MjQ4N2IzOTEzOThiNTg0ZGE3YmY2Li4wNzU4NzVmYjIzMTZhNTU1NzA1MGE2Njkw
Y2QwZjk4ODI0ODRmNWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25TbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vblNsb3dQYXRocy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDEwICsyOSwx
MiBAQAogI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJMRShMTElOVCkKIAogI2luY2x1ZGUgIkFyZ3Vt
ZW50cy5oIgorI2luY2x1ZGUgIkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgiCiAjaW5jbHVk
ZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUg
IkNvZGVQcm9maWxpbmcuaCIKICNpbmNsdWRlICJDb21tb25TbG93UGF0aHNFeGNlcHRpb25zLmgi
CisjaW5jbHVkZSAiRXJyb3JIYW5kbGluZ1Njb3BlLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVy
LmgiCiAjaW5jbHVkZSAiSG9zdENhbGxSZXR1cm5WYWx1ZS5oIgogI2luY2x1ZGUgIkludGVycHJl
dGVyLmgiCkBAIC0xNjEsMjggKzE2Myw0NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQ0FM
TF9FTkRfSU1QTChjckV4ZWMsIGNyQ2FsbFRhcmdldCk7ICAgICAgICAgICAgICAgIFwKICAgICB9
IHdoaWxlIChmYWxzZSkKIAorc3RhdGljIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGEq
IHNldHVwQXJpdHlDaGVja0RhdGEoVk0mIHZtLCBpbnQgc2xvdHNUb0FkZCkKK3sKKyAgICBDb21t
b25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhKiByZXN1bHQgPSB2bS5hcml0eUNoZWNrRGF0YS5n
ZXQoKTsKKyAgICByZXN1bHQtPnBhZGRlZFN0YWNrU3BhY2UgPSBzbG90c1RvQWRkOworI2lmIEVO
QUJMRShKSVQpCisgICAgaWYgKHZtLmNhblVzZUpJVCgpKSB7CisgICAgICAgIHJlc3VsdC0+dGh1
bmtUb0NhbGwgPSB2bS5nZXRDVElTdHViKGFyaXR5Rml4dXApLmNvZGUoKS5leGVjdXRhYmxlQWRk
cmVzcygpOworICAgICAgICByZXN1bHQtPnJldHVyblBDID0gdm0uYXJpdHlDaGVja0ZhaWxSZXR1
cm5UaHVua3MtPnJldHVyblBDRm9yKHZtLCBzbG90c1RvQWRkICogc3RhY2tBbGlnbm1lbnRSZWdp
c3RlcnMoKSkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKKyAgICB9IGVsc2UKKyNlbmRpZgorICAgIHsK
KyAgICAgICAgcmVzdWx0LT50aHVua1RvQ2FsbCA9IDA7CisgICAgICAgIHJlc3VsdC0+cmV0dXJu
UEMgPSAwOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBTTE9XX1BBVEhfREVDTChz
bG93X3BhdGhfY2FsbF9hcml0eUNoZWNrKQogewogICAgIEJFR0lOKCk7Ci0gICAgaW50IFNsb3Rz
VG9BZGQgPSBDb21tb25TbG93UGF0aHM6OmFyaXR5Q2hlY2tGb3IoZXhlYywgJnZtLmludGVycHJl
dGVyLT5zdGFjaygpLCBDb2RlRm9yQ2FsbCk7Ci0gICAgaWYgKFNsb3RzVG9BZGQgPCAwKSB7Cisg
ICAgaW50IHNsb3RzVG9BZGQgPSBDb21tb25TbG93UGF0aHM6OmFyaXR5Q2hlY2tGb3IoZXhlYywg
JnZtLmludGVycHJldGVyLT5zdGFjaygpLCBDb2RlRm9yQ2FsbCk7CisgICAgaWYgKHNsb3RzVG9B
ZGQgPCAwKSB7CiAgICAgICAgIGV4ZWMgPSBleGVjLT5jYWxsZXJGcmFtZSgpOworICAgICAgICBF
cnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29wZShleGVjLT52bSgpKTsKICAgICAgICAgQ29tbW9u
U2xvd1BhdGhzOjppbnRlcnByZXRlclRocm93SW5DYWxsZXIoZXhlYywgY3JlYXRlU3RhY2tPdmVy
Zmxvd0Vycm9yKGV4ZWMpKTsKICAgICAgICAgUkVUVVJOX1RXTyhiaXR3aXNlX2Nhc3Q8dm9pZCo+
KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oMSkpLCBleGVjKTsKICAgICB9Ci0gICAgUkVUVVJOX1RX
TygwLCByZWludGVycHJldF9jYXN0PEV4ZWNTdGF0ZSo+KFNsb3RzVG9BZGQpKTsKKyAgICBSRVRV
Uk5fVFdPKDAsIHNldHVwQXJpdHlDaGVja0RhdGEodm0sIHNsb3RzVG9BZGQpKTsKIH0KIAogU0xP
V19QQVRIX0RFQ0woc2xvd19wYXRoX2NvbnN0cnVjdF9hcml0eUNoZWNrKQogewogICAgIEJFR0lO
KCk7Ci0gICAgaW50IFNsb3RzVG9BZGQgPSBDb21tb25TbG93UGF0aHM6OmFyaXR5Q2hlY2tGb3Io
ZXhlYywgJnZtLmludGVycHJldGVyLT5zdGFjaygpLCBDb2RlRm9yQ29uc3RydWN0KTsKLSAgICBp
ZiAoU2xvdHNUb0FkZCA8IDApIHsKKyAgICBpbnQgc2xvdHNUb0FkZCA9IENvbW1vblNsb3dQYXRo
czo6YXJpdHlDaGVja0ZvcihleGVjLCAmdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCksIENvZGVGb3JD
b25zdHJ1Y3QpOworICAgIGlmIChzbG90c1RvQWRkIDwgMCkgewogICAgICAgICBleGVjID0gZXhl
Yy0+Y2FsbGVyRnJhbWUoKTsKKyAgICAgICAgRXJyb3JIYW5kbGluZ1Njb3BlIGVycm9yU2NvcGUo
ZXhlYy0+dm0oKSk7CiAgICAgICAgIENvbW1vblNsb3dQYXRoczo6aW50ZXJwcmV0ZXJUaHJvd0lu
Q2FsbGVyKGV4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVjKSk7CiAgICAgICAgIFJF
VFVSTl9UV08oYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KDEpKSwg
ZXhlYyk7CiAgICAgfQotICAgIFJFVFVSTl9UV08oMCwgcmVpbnRlcnByZXRfY2FzdDxFeGVjU3Rh
dGUqPihTbG90c1RvQWRkKSk7CisgICAgUkVUVVJOX1RXTygwLCBzZXR1cEFyaXR5Q2hlY2tEYXRh
KHZtLCBzbG90c1RvQWRkKSk7CiB9CiAKIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF90b3VjaF9l
bnRyeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNs
b3dQYXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhz
LmgKaW5kZXggY2ZjOGJkYmI3NmFkZDczNzY5OTlmMWIyZjI2YWUyYjU5ZmM3YTliNy4uNjhmNjQw
ODRmYTI4MTEyZmVlMGQ5NDQyZGJkZWUzOGQ1MjExNDU3MSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKQEAgLTQ5LDYgKzQ5LDEyIEBAIG5h
bWVzcGFjZSBKU0MgewogCiBuYW1lc3BhY2UgQ29tbW9uU2xvd1BhdGhzIHsKIAorc3RydWN0IEFy
aXR5Q2hlY2tEYXRhIHsKKyAgICB1bnNpZ25lZCBwYWRkZWRTdGFja1NwYWNlOworICAgIHZvaWQq
IHRodW5rVG9DYWxsOworICAgIHZvaWQqIHJldHVyblBDOworfTsKKwogQUxXQVlTX0lOTElORSBp
bnQgYXJpdHlDaGVja0ZvcihFeGVjU3RhdGUqIGV4ZWMsIEpTU3RhY2sqIHN0YWNrLCBDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kIGtpbmQpCiB7CiAgICAgSlNGdW5jdGlvbiogY2FsbGVlID0ganNDYXN0
PEpTRnVuY3Rpb24qPihleGVjLT5jYWxsZWUoKSk7CkBAIC01OCwxOCArNjQsMTIgQEAgQUxXQVlT
X0lOTElORSBpbnQgYXJpdHlDaGVja0ZvcihFeGVjU3RhdGUqIGV4ZWMsIEpTU3RhY2sqIHN0YWNr
LCBDb2RlU3BlY2lhbGl6YXQKICAgICAKICAgICBBU1NFUlQoYXJndW1lbnRDb3VudEluY2x1ZGlu
Z1RoaXMgPCBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSk7CiAgICAgaW50IG1pc3NpbmdB
cmd1bWVudENvdW50ID0gbmV3Q29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkgLSBhcmd1bWVudENv
dW50SW5jbHVkaW5nVGhpczsKLSAgICBpbnQgcGFkZGVkTWlzc2luZ0FyZ3VtZW50Q291bnQgPSBX
VEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgbWlzc2lu
Z0FyZ3VtZW50Q291bnQpOworICAgIGludCBuZWVkZWRTdGFja1NwYWNlID0gbWlzc2luZ0FyZ3Vt
ZW50Q291bnQgKyAxOyAvLyBBbGxvdyBzcGFjZSB0byBzYXZlIHRoZSBvcmlnaW5hbCByZXR1cm4g
UEMuCisgICAgaW50IHBhZGRlZFN0YWNrU3BhY2UgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yo
c3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgbmVlZGVkU3RhY2tTcGFjZSk7CiAKLSNpZiBVU0Uo
U0VQQVJBVEVfQ19BTkRfSlNfU1RBQ0spCi0gICAgaWYgKCFzdGFjay0+Z3JvdyhleGVjLT5yZWdp
c3RlcnMoKSAtIHBhZGRlZE1pc3NpbmdBcmd1bWVudENvdW50KSkKKyAgICBpZiAoIXN0YWNrLT5l
bnN1cmVDYXBhY2l0eUZvcihleGVjLT5yZWdpc3RlcnMoKSAtIHBhZGRlZFN0YWNrU3BhY2UpKQog
ICAgICAgICByZXR1cm4gLTE7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzdGFjayk7Ci0gICAg
aWYgKCFleGVjLT52bSgpLmlzU2FmZVRvUmVjdXJzZShwYWRkZWRNaXNzaW5nQXJndW1lbnRDb3Vu
dCAqIHNpemVvZihSZWdpc3RlcikpKQotICAgICAgICByZXR1cm4gLTE7Ci0jZW5kaWYgLy8gVVNF
KFNFUEFSQVRFX0NfQU5EX0pTX1NUQUNLKQotCi0gICAgcmV0dXJuIHBhZGRlZE1pc3NpbmdBcmd1
bWVudENvdW50OworICAgIHJldHVybiBwYWRkZWRTdGFja1NwYWNlIC8gc3RhY2tBbGlnbm1lbnRS
ZWdpc3RlcnMoKTsKIH0KIAogaW5saW5lIGJvb2wgb3BJbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgcHJvcE5hbWUsIEpTVmFsdWUgYmFzZVZhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyMmM1ZmU1
MjMxMTk3M2I0YzJlOGNiZDU2YjViZDc1ZWRjODJjOTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuY3BwCkBAIC0wLDAg
KzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkVycm9ySGFuZGxpbmdTY29wZS5oIgorCisj
aW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcHRpb25zLmgiCisjaW5jbHVkZSAi
Vk0uaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK0Vycm9ySGFuZGxpbmdTY29wZTo6RXJyb3JIYW5k
bGluZ1Njb3BlKFZNJiB2bSkKKyAgICA6IG1fdm0odm0pCit7CisgICAgaWYgKCFtX3ZtLnN0YWNr
UG9pbnRlckF0Vk1FbnRyeSkKKyAgICAgICAgbV92bS5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSB0
aGlzOworICAgIHNpemVfdCBuZXdSZXNlcnZlZFpvbmVTaXplID0gT3B0aW9uczo6ZXJyb3JNb2Rl
UmVzZXJ2ZWRab25lU2l6ZSgpOworICAgIG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplID0gbV92bS51
cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNpemUobmV3UmVzZXJ2ZWRab25lU2l6ZSk7
CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICBtX3ZtLmludGVycHJldGVyLT5zdGFjaygp
LnNldFJlc2VydmVkWm9uZVNpemUobmV3UmVzZXJ2ZWRab25lU2l6ZSk7CisjZW5kaWYKK30KKwor
RXJyb3JIYW5kbGluZ1Njb3BlOjp+RXJyb3JIYW5kbGluZ1Njb3BlKCkKK3sKKyAgICBpZiAobV92
bS5zdGFja1BvaW50ZXJBdFZNRW50cnkgPT0gdGhpcykKKyAgICAgICAgbV92bS5zdGFja1BvaW50
ZXJBdFZNRW50cnkgPSBudWxscHRyOworICAgIG1fdm0udXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNl
cnZlZFpvbmVTaXplKG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplKTsKKyNpZiBFTkFCTEUoTExJTlRf
Q19MT09QKQorICAgIG1fdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCkuc2V0UmVzZXJ2ZWRab25lU2l6
ZShtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2Ug
SlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckhhbmRs
aW5nU2NvcGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySGFuZGxpbmdT
Y29wZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ1MWIyNDFlNDhjMjUzY2EyYjdkODEzYTFiZDFmNmM2MTkyMzEz
OGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
ckhhbmRsaW5nU2NvcGUuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRXJyb3JIYW5kbGluZ1Njb3BlX2gKKyNk
ZWZpbmUgRXJyb3JIYW5kbGluZ1Njb3BlX2gKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIFZN
OworCitjbGFzcyBFcnJvckhhbmRsaW5nU2NvcGUgeworcHVibGljOgorICAgIEpTX0VYUE9SVF9Q
UklWQVRFIEVycm9ySGFuZGxpbmdTY29wZShWTSYpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIH5F
cnJvckhhbmRsaW5nU2NvcGUoKTsKK3ByaXZhdGU6CisgICAgVk0mIG1fdm07CisgICAgc2l6ZV90
IG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNl
bmRpZiAvLyBFcnJvckhhbmRsaW5nU2NvcGVfaAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCmluZGV4IDhmNDQyNDhlMzg2MTU5NTQ3
NWQyYzFjYTJjYWViZmE5MDYzZmRiZGQuLjA1ZTExZTBiODBhMzQzMGFlYWIyMmIwMjIyYTIxMmY0
YThlMmM0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRlICJDb2RlQmxvY2su
aCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKKyNpbmNsdWRlICJFcnJvckhhbmRsaW5nU2NvcGUu
aCIKICNpbmNsdWRlICJFcnJvckluc3RhbmNlLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3RG
dW5jdGlvbnMuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgpAQCAtMTYwLDE0ICsxNjEsMTYgQEAg
SlNPYmplY3QqIHRocm93T3V0T2ZNZW1vcnlFcnJvcihFeGVjU3RhdGUqIGV4ZWMpCiAKIEpTT2Jq
ZWN0KiB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSW50
ZXJwcmV0ZXI6OkVycm9ySGFuZGxpbmdNb2RlIG1vZGUoZXhlYyk7Ci0gICAgcmV0dXJuIGV4ZWMt
PnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMp
KTsKKyAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIEVycm9ySGFuZGxpbmdTY29wZSBlcnJv
clNjb3BlKHZtKTsKKyAgICByZXR1cm4gdm0udGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlU3Rh
Y2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKIH0KIAogSlNPYmplY3QqIHRocm93VGVybWluYXRlZEV4
ZWN1dGlvbkV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSW50ZXJwcmV0ZXI6OkVy
cm9ySGFuZGxpbmdNb2RlIG1vZGUoZXhlYyk7Ci0gICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dF
eGNlcHRpb24oZXhlYywgY3JlYXRlVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbigmZXhlYy0+
dm0oKSkpOworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgRXJyb3JIYW5kbGluZ1Njb3Bl
IGVycm9yU2NvcGUodm0pOworICAgIHJldHVybiB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVh
dGVUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKCZ2bSkpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFi
bGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5k
ZXggYmJkNmVkMjNlMjZmYTJjZDk3NWQ2MzdjNTRhMmVkMmU2MTViMGY5MS4uNmJjNDY0ZDM3ZWU5
NTdlMDg4YjFiNzcyOTE0ODg0YjdmYjFlNzcxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJMTElu
dEVudHJ5cG9pbnQuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2Vy
LmgiCisjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTExOCwxMiArMTE5
LDE0IEBAIHZvaWQgU2NyaXB0RXhlY3V0YWJsZTo6aW5zdGFsbENvZGUoQ29kZUJsb2NrKiBnZW5l
cmljQ29kZUJsb2NrKQogICAgIHN3aXRjaCAoa2luZCkgewogICAgIGNhc2UgQ29kZUZvckNhbGw6
CiAgICAgICAgIG1faml0Q29kZUZvckNhbGwgPSBnZW5lcmljQ29kZUJsb2NrLT5qaXRDb2RlKCk7
Ci0gICAgICAgIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVjayA9IGdlbmVyaWNDb2RlQmxv
Y2stPmppdENvZGVXaXRoQXJpdHlDaGVjaygpOworICAgICAgICBtX2ppdENvZGVGb3JDYWxsV2l0
aEFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKKyAgICAgICAgbV9qaXRDb2Rl
Rm9yQ2FsbFdpdGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdzID0gTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyKCk7CiAgICAgICAgIG1fbnVtUGFyYW1ldGVyc0ZvckNhbGwgPSBnZW5lcmljQ29kZUJsb2Nr
LT5udW1QYXJhbWV0ZXJzKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29kZUZvckNvbnN0
cnVjdDoKICAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0ID0gZ2VuZXJpY0NvZGVCbG9jay0+
aml0Q29kZSgpOwotICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayA9
IGdlbmVyaWNDb2RlQmxvY2stPmppdENvZGVXaXRoQXJpdHlDaGVjaygpOworICAgICAgICBtX2pp
dENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayA9IE1hY3JvQXNzZW1ibGVyQ29kZVB0cigp
OworICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZl
UmVncyA9IE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpOwogICAgICAgICBtX251bVBhcmFtZXRlcnNG
b3JDb25zdHJ1Y3QgPSBnZW5lcmljQ29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KQEAgLTEzMyw3ICsxMzYsNiBAQCB2b2lkIFNjcmlwdEV4ZWN1dGFibGU6
Omluc3RhbGxDb2RlKENvZGVCbG9jayogZ2VuZXJpY0NvZGVCbG9jaykKICAgICAgICAgUHJvZ3Jh
bUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBqc0Nhc3Q8UHJvZ3JhbUV4ZWN1dGFibGUqPih0aGlz
KTsKICAgICAgICAgUHJvZ3JhbUNvZGVCbG9jayogY29kZUJsb2NrID0gc3RhdGljX2Nhc3Q8UHJv
Z3JhbUNvZGVCbG9jayo+KGdlbmVyaWNDb2RlQmxvY2spOwogICAgICAgICAKLSAgICAgICAgQVNT
RVJUKCFjb2RlQmxvY2stPmppdENvZGVXaXRoQXJpdHlDaGVjaygpKTsKICAgICAgICAgQVNTRVJU
KGtpbmQgPT0gQ29kZUZvckNhbGwpOwogICAgICAgICAKICAgICAgICAgb2xkQ29kZUJsb2NrID0g
ZXhlY3V0YWJsZS0+bV9wcm9ncmFtQ29kZUJsb2NrOwpAQCAtMTQ1LDcgKzE0Nyw2IEBAIHZvaWQg
U2NyaXB0RXhlY3V0YWJsZTo6aW5zdGFsbENvZGUoQ29kZUJsb2NrKiBnZW5lcmljQ29kZUJsb2Nr
KQogICAgICAgICBFdmFsRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IGpzQ2FzdDxFdmFsRXhlY3V0
YWJsZSo+KHRoaXMpOwogICAgICAgICBFdmFsQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBzdGF0aWNf
Y2FzdDxFdmFsQ29kZUJsb2NrKj4oZ2VuZXJpY0NvZGVCbG9jayk7CiAgICAgICAgIAotICAgICAg
ICBBU1NFUlQoIWNvZGVCbG9jay0+aml0Q29kZVdpdGhBcml0eUNoZWNrKCkpOwogICAgICAgICBB
U1NFUlQoa2luZCA9PSBDb2RlRm9yQ2FsbCk7CiAgICAgICAgIAogICAgICAgICBvbGRDb2RlQmxv
Y2sgPSBleGVjdXRhYmxlLT5tX2V2YWxDb2RlQmxvY2s7CkBAIC02MTAsNiArNjExLDQ2IEBAIFN0
cmluZyBGdW5jdGlvbkV4ZWN1dGFibGU6OnBhcmFtU3RyaW5nKCkgY29uc3QKICAgICByZXR1cm4g
bV91bmxpbmtlZEV4ZWN1dGFibGUtPnBhcmFtU3RyaW5nKCk7CiB9CiAKK3ZvaWQgRXhlY3V0YWJs
ZUJhc2U6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBFeGVjdXRhYmxlQmFz
ZSogcmVhbFRoaXMgPSBjb25zdF9jYXN0PEV4ZWN1dGFibGVCYXNlKj4odGhpcyk7CisgICAgCisg
ICAgaWYgKGNsYXNzSW5mbygpID09IE5hdGl2ZUV4ZWN1dGFibGU6OmluZm8oKSkgeworICAgICAg
ICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmUgPSBqc0Nhc3Q8TmF0aXZlRXhlY3V0YWJsZSo+KHJl
YWxUaGlzKTsKKyAgICAgICAgb3V0LnByaW50KCJOYXRpdmVFeGVjdXRhYmxlOiIsIFJhd1BvaW50
ZXIoYml0d2lzZV9jYXN0PHZvaWQqPihuYXRpdmUtPmZ1bmN0aW9uKCkpKSwgIi8iLCBSYXdQb2lu
dGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4obmF0aXZlLT5jb25zdHJ1Y3RvcigpKSkpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIAorICAgIGlmIChjbGFzc0luZm8oKSA9PSBFdmFsRXhlY3V0
YWJsZTo6aW5mbygpKSB7CisgICAgICAgIEV2YWxFeGVjdXRhYmxlKiBldmFsID0ganNDYXN0PEV2
YWxFeGVjdXRhYmxlKj4ocmVhbFRoaXMpOworICAgICAgICBpZiAoQ29kZUJsb2NrKiBjb2RlQmxv
Y2sgPSBldmFsLT5jb2RlQmxvY2soKSkKKyAgICAgICAgICAgIG91dC5wcmludCgqY29kZUJsb2Nr
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgb3V0LnByaW50KCJFdmFsRXhlY3V0YWJsZSB3
L28gQ29kZUJsb2NrIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgaWYgKGNs
YXNzSW5mbygpID09IFByb2dyYW1FeGVjdXRhYmxlOjppbmZvKCkpIHsKKyAgICAgICAgUHJvZ3Jh
bUV4ZWN1dGFibGUqIGV2YWwgPSBqc0Nhc3Q8UHJvZ3JhbUV4ZWN1dGFibGUqPihyZWFsVGhpcyk7
CisgICAgICAgIGlmIChDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV2YWwtPmNvZGVCbG9jaygpKQor
ICAgICAgICAgICAgb3V0LnByaW50KCpjb2RlQmxvY2spOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBvdXQucHJpbnQoIlByb2dyYW1FeGVjdXRhYmxlIHcvbyBDb2RlQmxvY2siKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9u
ID0ganNDYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KHJlYWxUaGlzKTsKKyAgICBpZiAoIWZ1bmN0
aW9uLT5laXRoZXJDb2RlQmxvY2soKSkKKyAgICAgICAgb3V0LnByaW50KCJGdW5jdGlvbkV4ZWN1
dGFibGUgdy9vIENvZGVCbG9jayIpOworICAgIGVsc2UgeworICAgICAgICBDb21tYVByaW50ZXIg
Y29tbWEoIi8iKTsKKyAgICAgICAgaWYgKGZ1bmN0aW9uLT5jb2RlQmxvY2tGb3JDYWxsKCkpCisg
ICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsICpmdW5jdGlvbi0+Y29kZUJsb2NrRm9yQ2FsbCgp
KTsKKyAgICAgICAgaWYgKGZ1bmN0aW9uLT5jb2RlQmxvY2tGb3JDb25zdHJ1Y3QoKSkKKyAgICAg
ICAgICAgIG91dC5wcmludChjb21tYSwgKmZ1bmN0aW9uLT5jb2RlQmxvY2tGb3JDb25zdHJ1Y3Qo
KSk7CisgICAgfQorfQorCiBDb2RlQmxvY2tIYXNoIEV4ZWN1dGFibGVCYXNlOjpoYXNoRm9yKENv
ZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkgY29uc3QKIHsKICAgICBpZiAodGhpcy0+Y2xhc3NJ
bmZvKCkgPT0gTmF0aXZlRXhlY3V0YWJsZTo6aW5mbygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXhlY3V0YWJsZS5oCmluZGV4IDZmZjI3YWVlOWZjM2I4MjY4YWU2Yjk3NmE5ZWRk
ODZjM2Y5MDI1NWMuLjE5ODk3NmJiM2ZlNmU2ZTkxMTc5ODEyZDFjYWY5YjhiZjliZmQwYmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKQEAgLTI2LDYgKzI2
LDcgQEAKICNpZm5kZWYgRXhlY3V0YWJsZV9oCiAjZGVmaW5lIEV4ZWN1dGFibGVfaAogCisjaW5j
bHVkZSAiQXJpdHlDaGVja01vZGUuaCIKICNpbmNsdWRlICJDYWxsRGF0YS5oIgogI2luY2x1ZGUg
IkNvZGVCbG9ja0hhc2guaCIKICNpbmNsdWRlICJDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmgiCkBA
IC0zNiw2ICszNyw3IEBACiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKSVRD
b2RlLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJSZWdpc3RlclBy
ZXNlcnZhdGlvbk1vZGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKICNpbmNsdWRlICJT
b3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiVW5saW5rZWRDb2RlQmxvY2suaCIKQEAgLTE0NCwzNyAr
MTQ2LDk0IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVj
dCk7CiAgICAgICAgIHJldHVybiBnZW5lcmF0ZWRKSVRDb2RlRm9yQ29uc3RydWN0KCk7CiAgICAg
fQotCi0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGdlbmVyYXRlZEpJVENvZGVGb3JDYWxsV2l0
aEFyaXR5Q2hlY2soKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1faml0Q29kZUZvckNhbGwpOwot
ICAgICAgICBBU1NFUlQobV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrKTsKLSAgICAgICAg
cmV0dXJuIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVjazsKLSAgICB9Ci0KLSAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgZ2VuZXJhdGVkSklUQ29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNo
ZWNrKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX2ppdENvZGVGb3JDb25zdHJ1Y3QpOwotICAg
ICAgICBBU1NFUlQobV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2spOwotICAgICAg
ICByZXR1cm4gbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2s7Ci0gICAgfQotICAg
ICAgICAKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgZ2VuZXJhdGVkSklUQ29kZVdpdGhBcml0
eUNoZWNrRm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKLSAgICB7Ci0gICAgICAgIGlm
IChraW5kID09IENvZGVGb3JDYWxsKQotICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRlZEpJVENv
ZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2soKTsKLSAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZv
ckNvbnN0cnVjdCk7Ci0gICAgICAgIHJldHVybiBnZW5lcmF0ZWRKSVRDb2RlRm9yQ29uc3RydWN0
V2l0aEFyaXR5Q2hlY2soKTsKLSAgICB9Ci0gICAgICAgIAotICAgIHN0YXRpYyBwdHJkaWZmX3Qg
b2Zmc2V0T2ZKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCBr
aW5kKQotICAgIHsKLSAgICAgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpCi0gICAgICAgICAg
ICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEV4ZWN1dGFibGVCYXNlLCBtX2ppdENvZGVGb3JDYWxs
V2l0aEFyaXR5Q2hlY2spOwotICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ29uc3RydWN0
KTsKLSAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihFeGVjdXRhYmxlQmFzZSwgbV9qaXRD
b2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2spOworICAgIAorICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVB0ciBlbnRyeXBvaW50Rm9yKAorICAgICAgICBWTSYgdm0sIENvZGVTcGVjaWFsaXphdGlv
bktpbmQga2luZCwgQXJpdHlDaGVja01vZGUgYXJpdHksIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9k
ZSByZWdpc3RlcnMpCisgICAgeworICAgICAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIGEgY2FjaGVk
IHJlc3VsdC4gV2Ugb25seSBoYXZlIGl0IGZvciBhcml0eSBjaGVjayBiZWNhdXNlIHdlIHVzZSB0
aGUKKyAgICAgICAgLy8gbm8tYXJpdHkgZW50cnlwb2ludCBpbiBub24tdmlydHVhbCBjYWxscywg
d2hpY2ggd2lsbCAiY2FjaGUiIHRoaXMgdmFsdWUgZGlyZWN0bHkgaW4KKyAgICAgICAgLy8gbWFj
aGluZSBjb2RlLgorICAgICAgICBpZiAoYXJpdHkgPT0gTXVzdENoZWNrQXJpdHkpIHsKKyAgICAg
ICAgICAgIHN3aXRjaCAoa2luZCkgeworICAgICAgICAgICAgY2FzZSBDb2RlRm9yQ2FsbDoKKyAg
ICAgICAgICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICAgICAgICAgIGNhc2Ug
UmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgICAgICAgICAgaWYg
KE1hY3JvQXNzZW1ibGVyQ29kZVB0ciByZXN1bHQgPSBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5
Q2hlY2spCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lz
dGVyczoKKyAgICAgICAgICAgICAgICAgICAgaWYgKE1hY3JvQXNzZW1ibGVyQ29kZVB0ciByZXN1
bHQgPSBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MpCisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIENvZGVGb3JDb25zdHJ1Y3Q6CisgICAgICAgICAgICAgICAgc3dpdGNoIChyZWdp
c3RlcnMpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVx
dWlyZWQ6CisgICAgICAgICAgICAgICAgICAgIGlmIChNYWNyb0Fzc2VtYmxlckNvZGVQdHIgcmVz
dWx0ID0gbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2spCisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKE1hY3JvQXNzZW1ibGVyQ29kZVB0ciByZXN1bHQgPSBtX2ppdENvZGVGb3JDb25z
dHJ1Y3RXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZlUmVncykKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgcmVzdWx0ID0KKyAgICAgICAgICAgIGdl
bmVyYXRlZEpJVENvZGVGb3Ioa2luZCktPmFkZHJlc3NGb3JDYWxsKHZtLCB0aGlzLCBhcml0eSwg
cmVnaXN0ZXJzKTsKKyAgICAgICAgaWYgKGFyaXR5ID09IE11c3RDaGVja0FyaXR5KSB7CisgICAg
ICAgICAgICAvLyBDYWNoZSB0aGUgcmVzdWx0OyB0aGlzIGlzIG5lY2Vzc2FyeSBmb3IgdGhlIEpJ
VCdzIHZpcnR1YWwgY2FsbCBvcHRpbWl6YXRpb25zLgorICAgICAgICAgICAgc3dpdGNoIChraW5k
KSB7CisgICAgICAgICAgICBjYXNlIENvZGVGb3JDYWxsOgorICAgICAgICAgICAgICAgIHN3aXRj
aCAocmVnaXN0ZXJzKSB7CisgICAgICAgICAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlv
bk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgICAgICAgICBtX2ppdENvZGVGb3JDYWxsV2l0aEFy
aXR5Q2hlY2sgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgICAgICAgICBt
X2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MgPSByZXN1bHQ7Cisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ29kZUZvckNvbnN0cnVjdDoKKyAgICAgICAg
ICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICAgICAgICAgIGNhc2UgUmVnaXN0
ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgICAgICAgICAgbV9qaXRDb2Rl
Rm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAg
ICAgICAgICAgICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVja0FuZFBy
ZXNlcnZlUmVncyA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgc3RhdGljIHB0cmRpZmZf
dCBvZmZzZXRPZkpJVENvZGVXaXRoQXJpdHlDaGVja0ZvcigKKyAgICAgICAgQ29kZVNwZWNpYWxp
emF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQorICAg
IHsKKyAgICAgICAgc3dpdGNoIChraW5kKSB7CisgICAgICAgIGNhc2UgQ29kZUZvckNhbGw6Cisg
ICAgICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICAgICAgY2FzZSBSZWdpc3Rl
clByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgICAgIHJldHVybiBPQkpFQ1Rf
T0ZGU0VUT0YoRXhlY3V0YWJsZUJhc2UsIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVjayk7
CisgICAgICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgICAg
ICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEV4ZWN1dGFibGVCYXNlLCBtX2ppdENvZGVGb3JDYWxs
V2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MpOworICAgICAgICAgICAgfQorICAgICAgICBj
YXNlIENvZGVGb3JDb25zdHJ1Y3Q6CisgICAgICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgewor
ICAgICAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAg
ICAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRXhlY3V0YWJsZUJhc2UsIG1faml0Q29k
ZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrKTsKKyAgICAgICAgICAgIGNhc2UgTXVzdFByZXNl
cnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRXhl
Y3V0YWJsZUJhc2UsIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrQW5kUHJlc2Vy
dmVSZWdzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgICAgIAorICAg
IAogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZOdW1QYXJhbWV0ZXJzRm9yKENvZGVTcGVj
aWFsaXphdGlvbktpbmQga2luZCkKICAgICB7CiAgICAgICAgIGlmIChraW5kID09IENvZGVGb3JD
YWxsKQpAQCAtMjEwLDIyICsyNjksOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gaW50
cmluc2ljKCk7CiAgICAgICAgIHJldHVybiBOb0ludHJpbnNpYzsKICAgICB9CisgICAgCisgICAg
dm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgICAgIAotICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBob3N0Q29kZUVudHJ5Rm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBnZW5lcmF0ZWRKSVRDb2RlRm9yKGtpbmQpLT5hZGRyZXNz
Rm9yQ2FsbCgpOwotICAgIH0KLQotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBqc0NvZGVFbnRy
eUZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCi0gICAgewotICAgICAgICByZXR1cm4g
Z2VuZXJhdGVkSklUQ29kZUZvcihraW5kKS0+YWRkcmVzc0ZvckNhbGwoKTsKLSAgICB9Ci0KLSAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIganNDb2RlV2l0aEFyaXR5Q2hlY2tFbnRyeUZvcihDb2Rl
U3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCi0gICAgewotICAgICAgICByZXR1cm4gZ2VuZXJhdGVk
SklUQ29kZVdpdGhBcml0eUNoZWNrRm9yKGtpbmQpOwotICAgIH0KLQogcHJvdGVjdGVkOgogICAg
IEV4ZWN1dGFibGVCYXNlKiBtX3ByZXY7CiAgICAgRXhlY3V0YWJsZUJhc2UqIG1fbmV4dDsKQEAg
LTIzNCw2ICsyODAsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVmUHRyPEpJVENvZGU+IG1faml0Q29k
ZUZvckNvbnN0cnVjdDsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgbV9qaXRDb2RlRm9yQ2Fs
bFdpdGhBcml0eUNoZWNrOwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBtX2ppdENvZGVGb3JD
b25zdHJ1Y3RXaXRoQXJpdHlDaGVjazsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgbV9qaXRD
b2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdzOworICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZl
UmVnczsKIH07CiAKIGNsYXNzIE5hdGl2ZUV4ZWN1dGFibGUgOiBwdWJsaWMgRXhlY3V0YWJsZUJh
c2UgewpAQCAtMjQyLDE0ICsyOTAsMTEgQEAgY2xhc3MgTmF0aXZlRXhlY3V0YWJsZSA6IHB1Ymxp
YyBFeGVjdXRhYmxlQmFzZSB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBFeGVjdXRhYmxlQmFzZSBC
YXNlOwogCi0gICAgc3RhdGljIE5hdGl2ZUV4ZWN1dGFibGUqIGNyZWF0ZShWTSYgdm0sIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBjYWxsVGh1bmssIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgY29uc3RydWN0VGh1bmssIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVj
dG9yLCBJbnRyaW5zaWMgaW50cmluc2ljKQorICAgIHN0YXRpYyBOYXRpdmVFeGVjdXRhYmxlKiBj
cmVhdGUoVk0mIHZtLCBQYXNzUmVmUHRyPEpJVENvZGU+IGNhbGxUaHVuaywgTmF0aXZlRnVuY3Rp
b24gZnVuY3Rpb24sIFBhc3NSZWZQdHI8SklUQ29kZT4gY29uc3RydWN0VGh1bmssIE5hdGl2ZUZ1
bmN0aW9uIGNvbnN0cnVjdG9yLCBJbnRyaW5zaWMgaW50cmluc2ljKQogICAgIHsKICAgICAgICAg
TmF0aXZlRXhlY3V0YWJsZSogZXhlY3V0YWJsZTsKICAgICAgICAgZXhlY3V0YWJsZSA9IG5ldyAo
Tm90TnVsbCwgYWxsb2NhdGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+KHZtLmhlYXApKSBOYXRpdmVF
eGVjdXRhYmxlKHZtLCBmdW5jdGlvbiwgY29uc3RydWN0b3IpOwotICAgICAgICBpZiAoIWNhbGxU
aHVuaykKLSAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9uKHZtLCAwLCAwLCBp
bnRyaW5zaWMpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBleGVjdXRhYmxlLT5maW5pc2hD
cmVhdGlvbih2bSwgSklUQ29kZTo6aG9zdEZ1bmN0aW9uKGNhbGxUaHVuayksIEpJVENvZGU6Omhv
c3RGdW5jdGlvbihjb25zdHJ1Y3RUaHVuayksIGludHJpbnNpYyk7CisgICAgICAgIGV4ZWN1dGFi
bGUtPmZpbmlzaENyZWF0aW9uKHZtLCBjYWxsVGh1bmssIGNvbnN0cnVjdFRodW5rLCBpbnRyaW5z
aWMpOwogICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICB9CiAKQEAgLTI4OCw4ICszMzMs
NiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFBhc3NSZWZQ
dHI8SklUQ29kZT4gY2FsbFRodW5rLCBQYXNzUmVmUHRyPEpJVENvZGU+IGNvbnN0cnVjdFRodW5r
LCBJbnRyaW5zaWMgaW50cmluc2ljKQogICAgIHsKICAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24odm0pOwotICAgICAgICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2sgPSBjYWxsVGh1
bmsgPyBjYWxsVGh1bmstPmFkZHJlc3NGb3JDYWxsKCkgOiBNYWNyb0Fzc2VtYmxlckNvZGVQdHIo
KTsKLSAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSBjb25zdHJ1
Y3RUaHVuayA/IGNvbnN0cnVjdFRodW5rLT5hZGRyZXNzRm9yQ2FsbCgpIDogTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyKCk7CiAgICAgICAgIG1faml0Q29kZUZvckNhbGwgPSBjYWxsVGh1bms7CiAgICAg
ICAgIG1faml0Q29kZUZvckNvbnN0cnVjdCA9IGNvbnN0cnVjdFRodW5rOwogICAgICAgICBtX2lu
dHJpbnNpYyA9IGludHJpbnNpYzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ0pTVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pT
VmFsdWUuaAppbmRleCA4NWFjMzJiZGRmZmRhNmY1NTU4YTgwY2UxYzBkYmJhNmUxZDUyM2MwLi45
MThkZTE0ZDUyODM1NDU1Y2RjNjdhZTc5ZjE3YzgzOGRjYmFjMDM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCkBAIC05Nyw2ICs5Nyw5IEBAIHVuaW9uIEVu
Y29kZWRWYWx1ZURlc2NyaXB0b3IgewogI2VuZGlmCiB9OwogCisjZGVmaW5lIFRhZ09mZnNldCAo
T0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKQorI2Rl
ZmluZSBQYXlsb2FkT2Zmc2V0IChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRv
ciwgYXNCaXRzLnBheWxvYWQpKQorCiBlbnVtIFdoaWNoVmFsdWVXb3JkIHsKICAgICBUYWdXb3Jk
LAogICAgIFBheWxvYWRXb3JkCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0xvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNw
cAppbmRleCA3NjA0MDc1ZjhiOWYzOTRmYWM0YWZiMmRjYWQ4M2ZlNzcwYjlmYTcxLi44NDE1YWQ1
ZWM1ZDgyZWFiYjdmMWEyM2NjYzRlMmM3ZWE0NzQ0YzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTTG9jay5jcHAKQEAgLTI5MCw2ICsyOTAsMTAgQEAgSlNMb2NrOjpEcm9wQWxs
TG9ja3M6OkRyb3BBbGxMb2NrcyhFeGVjU3RhdGUqIGV4ZWMsIEFsd2F5c0Ryb3BMb2Nrc1RhZyBh
bHdheXNEcm8KICNpZiBQTEFURk9STShJT1MpCiAgICAgU3BpbkxvY2tIb2xkZXIgaG9sZGVyKCZz
cGluTG9jayk7CiAjZW5kaWYKKyAgICBtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSA9IG1fdm0tPnJl
c2VydmVkWm9uZVNpemUoKTsKKyAgICBtX3NhdmVkU3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gbV92
bS0+c3RhY2tQb2ludGVyQXRWTUVudHJ5OworICAgIG1fdm0tPnN0YWNrUG9pbnRlckF0Vk1FbnRy
eSA9IG51bGxwdHI7CisKICAgICBpZiAoYWx3YXlzRHJvcExvY2tzKQogICAgICAgICBtX2xvY2tD
b3VudCA9IG1fdm0tPmFwaUxvY2soKS5kcm9wQWxsTG9ja3NVbmNvbmRpdGlvbmFsbHkoc3Bpbkxv
Y2spOwogICAgIGVsc2UKQEAgLTMwNiw2ICszMTAsMTAgQEAgSlNMb2NrOjpEcm9wQWxsTG9ja3M6
OkRyb3BBbGxMb2NrcyhWTSogdm0sIEFsd2F5c0Ryb3BMb2Nrc1RhZyBhbHdheXNEcm9wTG9ja3Mp
CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFNwaW5Mb2NrSG9sZGVyIGhvbGRlcigmc3BpbkxvY2sp
OwogI2VuZGlmCisgICAgbV9zYXZlZFJlc2VydmVkWm9uZVNpemUgPSBtX3ZtLT5yZXNlcnZlZFpv
bmVTaXplKCk7CisgICAgbV9zYXZlZFN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9IG1fdm0tPnN0YWNr
UG9pbnRlckF0Vk1FbnRyeTsKKyAgICBtX3ZtLT5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSBudWxs
cHRyOworCiAgICAgaWYgKGFsd2F5c0Ryb3BMb2NrcykKICAgICAgICAgbV9sb2NrQ291bnQgPSBt
X3ZtLT5hcGlMb2NrKCkuZHJvcEFsbExvY2tzVW5jb25kaXRpb25hbGx5KHNwaW5Mb2NrKTsKICAg
ICBlbHNlCkBAIC0zMjEsNiArMzI5LDkgQEAgSlNMb2NrOjpEcm9wQWxsTG9ja3M6On5Ecm9wQWxs
TG9ja3MoKQogICAgIFNwaW5Mb2NrSG9sZGVyIGhvbGRlcigmc3BpbkxvY2spOwogI2VuZGlmCiAg
ICAgbV92bS0+YXBpTG9jaygpLmdyYWJBbGxMb2NrcyhtX2xvY2tDb3VudCwgc3BpbkxvY2spOwor
CisgICAgbV92bS0+c3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gbV9zYXZlZFN0YWNrUG9pbnRlckF0
Vk1FbnRyeTsKKyAgICBtX3ZtLT51cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNpemUo
bV9zYXZlZFJlc2VydmVkWm9uZVNpemUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgKaW5kZXggMzAwMmFkZDY0N2EyNTAwZDg1NWRh
YjBhZGZjOTc3M2VjODcyZGZmZS4uMGRhY2RmMGJjOWY4MWFhNWM2NzNjZWQ5ZGYyY2Q5YWU5ZGUx
NjI3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgKQEAgLTk1LDEwICs5
NSw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wg
Y3VycmVudFRocmVhZElzSG9sZGluZ0xvY2soKTsKIAotICAgICAgICB1bnNpZ25lZCBkcm9wQWxs
TG9ja3MoU3BpbkxvY2smKTsKLSAgICAgICAgdW5zaWduZWQgZHJvcEFsbExvY2tzVW5jb25kaXRp
b25hbGx5KFNwaW5Mb2NrJik7Ci0gICAgICAgIHZvaWQgZ3JhYkFsbExvY2tzKHVuc2lnbmVkIGxv
Y2tDb3VudCwgU3BpbkxvY2smKTsKLQogICAgICAgICB2b2lkIHdpbGxEZXN0cm95Vk0oVk0qKTsK
IAogICAgICAgICBjbGFzcyBEcm9wQWxsTG9ja3MgewpAQCAtMTE0LDkgKzExMCwxNSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgcHJpdmF0ZToKICAgICAgICAgICAgIGludHB0cl90IG1fbG9j
a0NvdW50OwogICAgICAgICAgICAgUmVmUHRyPFZNPiBtX3ZtOworICAgICAgICAgICAgc2l6ZV90
IG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplOworICAgICAgICAgICAgdm9pZCogbV9zYXZlZFN0YWNr
UG9pbnRlckF0Vk1FbnRyeTsKICAgICAgICAgfTsKIAogICAgIHByaXZhdGU6CisgICAgICAgIHVu
c2lnbmVkIGRyb3BBbGxMb2NrcyhTcGluTG9jayYpOworICAgICAgICB1bnNpZ25lZCBkcm9wQWxs
TG9ja3NVbmNvbmRpdGlvbmFsbHkoU3BpbkxvY2smKTsKKyAgICAgICAgdm9pZCBncmFiQWxsTG9j
a3ModW5zaWduZWQgbG9ja0NvdW50LCBTcGluTG9jayYpOworCiAgICAgICAgIFNwaW5Mb2NrIG1f
c3BpbkxvY2s7CiAgICAgICAgIE11dGV4IG1fbG9jazsKICAgICAgICAgVGhyZWFkSWRlbnRpZmll
ciBtX293bmVyVGhyZWFkOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2Jq
ZWN0LmNwcAppbmRleCA5ODI2Mjg5MTcxYjhkNDBmY2Y4YWM0NTA1ZmJhYjY3N2RkNWFlMWZiLi4w
ZDNkN2UzZTBhY2U5MmQxN2I3ZDgxZmFlMWI5YmIyYWJlOThhZWIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcApAQCAtNjU0LDcgKzY1NCw3IEBAIE5F
VkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHVlIHVuZmlsdGVyZWQpCiAgICAg
ICAgICAgICAgICAgQVNTRVJUKGluVmFsdWUuaXNPYmplY3QoKSk7CiAgICAgICAgICAgICAgICAg
QVNTRVJUKGlzSlNBcnJheShhc09iamVjdChpblZhbHVlKSkgfHwgYXNPYmplY3QoaW5WYWx1ZSkt
PmluaGVyaXRzKEpTQXJyYXk6OmluZm8oKSkpOwogICAgICAgICAgICAgICAgIGlmIChvYmplY3RT
dGFjay5zaXplKCkgKyBhcnJheVN0YWNrLnNpemUoKSA+IG1heGltdW1GaWx0ZXJSZWN1cnNpb24p
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBtX2V4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24o
bV9leGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IobV9leGVjKSk7CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMpOwogCiAgICAgICAg
ICAgICAgICAgSlNBcnJheSogYXJyYXkgPSBhc0FycmF5KGluVmFsdWUpOwogICAgICAgICAgICAg
ICAgIGFycmF5U3RhY2sucHVzaChhcnJheSk7CkBAIC03MDUsNyArNzA1LDcgQEAgTkVWRVJfSU5M
SU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAg
ICAgICBBU1NFUlQoaW5WYWx1ZS5pc09iamVjdCgpKTsKICAgICAgICAgICAgICAgICBBU1NFUlQo
IWlzSlNBcnJheShhc09iamVjdChpblZhbHVlKSkgJiYgIWFzT2JqZWN0KGluVmFsdWUpLT5pbmhl
cml0cyhKU0FycmF5OjppbmZvKCkpKTsKICAgICAgICAgICAgICAgICBpZiAob2JqZWN0U3RhY2su
c2l6ZSgpICsgYXJyYXlTdGFjay5zaXplKCkgPiBtYXhpbXVtRmlsdGVyUmVjdXJzaW9uKQotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gbV9leGVjLT52bSgpLnRocm93RXhjZXB0aW9uKG1fZXhl
YywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYykpOworICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gdGhyb3dTdGFja092ZXJmbG93RXJyb3IobV9leGVjKTsKIAogICAgICAgICAgICAg
ICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChpblZhbHVlKTsKICAgICAgICAgICAgICAg
ICBvYmplY3RTdGFjay5wdXNoKG9iamVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnMuY3BwCmluZGV4IGFhOGNjYzc1MTc1NmQ1NmYzNjdjYmZjYmI2YzMxYjZlZDBkYmRj
YzIuLjkyNjNmMjgyZGZiNjZlNjVkMjUwZDAzMTMyN2ExNjU1MDk2NmJjMWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgor
I2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAjaW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4K
ICNpbmNsdWRlIDx3dGYvUGFnZUJsb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgpAQCAtMTc1LDYgKzE3Niw0NSBAQCBjb25zdCBPcHRpb25zOjpFbnRyeUluZm8gT3B0aW9uczo6
c19vcHRpb25zSW5mb1tPcHRpb25zOjpudW1iZXJPZk9wdGlvbnNdID0gewogI3VuZGVmIEZPUl9F
QUNIX09QVElPTgogfTsKIAorc3RhdGljIHZvaWQgcmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucygp
Cit7CisjaWYgIUVOQUJMRShKSVQpCisgICAgT3B0aW9uczo6dXNlSklUKCkgPSBmYWxzZTsKKyAg
ICBPcHRpb25zOjp1c2VERkdKSVQoKSA9IGZhbHNlOworI2VuZGlmCisjaWYgIUVOQUJMRShZQVJS
X0pJVCkKKyAgICBPcHRpb25zOjp1c2VSZWdFeHBKSVQoKSA9IGZhbHNlOworI2VuZGlmCisgICAg
CisgICAgaWYgKE9wdGlvbnM6OnNob3dEaXNhc3NlbWJseSgpCisgICAgICAgIHx8IE9wdGlvbnM6
OnNob3dERkdEaXNhc3NlbWJseSgpCisgICAgICAgIHx8IE9wdGlvbnM6OmR1bXBCeXRlY29kZUF0
REZHVGltZSgpCisgICAgICAgIHx8IE9wdGlvbnM6OmR1bXBHcmFwaEF0RWFjaFBoYXNlKCkKKyAg
ICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uKCkKKyAgICAgICAgfHwgT3B0aW9u
czo6bG9nQ29tcGlsYXRpb25DaGFuZ2VzKCkKKyAgICAgICAgfHwgT3B0aW9uczo6dmFsaWRhdGVH
cmFwaCgpCisgICAgICAgIHx8IE9wdGlvbnM6OnZhbGlkYXRlR3JhcGhBdEVhY2hQaGFzZSgpCisg
ICAgICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VPU1IoKQorICAgICAgICB8fCBPcHRpb25zOjp2ZXJi
b3NlQ29tcGlsYXRpb25RdWV1ZSgpCisgICAgICAgIHx8IE9wdGlvbnM6OnJlcG9ydENvbXBpbGVU
aW1lcygpCisgICAgICAgIHx8IE9wdGlvbnM6OnJlcG9ydEZUTENvbXBpbGVUaW1lcygpCisgICAg
ICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VDRkEoKQorICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3Nl
RlRMRmFpbHVyZSgpKQorICAgICAgICBPcHRpb25zOjphbHdheXNDb21wdXRlSGFzaCgpID0gdHJ1
ZTsKKyAgICAKKyAgICAvLyBDb21wdXRlIHRoZSBtYXhpbXVtIHZhbHVlIG9mIHRoZSByZW9wdGlt
aXphdGlvbiByZXRyeSBjb3VudGVyLiBUaGlzIGlzIHNpbXBseQorICAgIC8vIHRoZSBsYXJnZXN0
IHZhbHVlIGF0IHdoaWNoIHdlIGRvbid0IG92ZXJmbG93IHRoZSBleGVjdXRlIGNvdW50ZXIsIHdo
ZW4gdXNpbmcgaXQKKyAgICAvLyB0byBsZWZ0LXNoaWZ0IHRoZSBleGVjdXRpb24gY291bnRlciBi
eSB0aGlzIGFtb3VudC4gQ3VycmVudGx5IHRoZSB2YWx1ZSBlbmRzCisgICAgLy8gdXAgYmVpbmcg
MTgsIHNvIHRoaXMgbG9vcCBpcyBub3Qgc28gdGVycmlibGU7IGl0IHByb2JhYmx5IHRha2VzIHVw
IH4xMDAgY3ljbGVzCisgICAgLy8gdG90YWwgb24gYSAzMi1iaXQgcHJvY2Vzc29yLgorICAgIE9w
dGlvbnM6OnJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4KCkgPSAwOworICAgIHdoaWxlICgo
c3RhdGljX2Nhc3Q8aW50NjRfdD4oT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxv
bmdXYXJtVXAoKSkgPDwgKE9wdGlvbnM6OnJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4KCkg
KyAxKSkgPD0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90
Pjo6bWF4KCkpKQorICAgICAgICBPcHRpb25zOjpyZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1h
eCgpKys7CisKKyAgICBBU1NFUlQoKHN0YXRpY19jYXN0PGludDY0X3Q+KE9wdGlvbnM6OnRocmVz
aG9sZEZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVwKCkpIDw8IE9wdGlvbnM6OnJlb3B0aW1pemF0
aW9uUmV0cnlDb3VudGVyTWF4KCkpID4gMCk7CisgICAgQVNTRVJUKChzdGF0aWNfY2FzdDxpbnQ2
NF90PihPcHRpb25zOjp0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpKSA8PCBP
cHRpb25zOjpyZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1heCgpKSA8PSBzdGF0aWNfY2FzdDxp
bnQ2NF90PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSkpOworfQorCiB2b2lk
IE9wdGlvbnM6OmluaXRpYWxpemUoKQogewogICAgIC8vIEluaXRpYWxpemUgZWFjaCBvZiB0aGUg
b3B0aW9ucyB3aXRoIHRoZWlyIGRlZmF1bHQgdmFsdWVzOgpAQCAtMjA0LDMwICsyNDQsMTIgQEAg
dm9pZCBPcHRpb25zOjppbml0aWFsaXplKCkKICAgICA7IC8vIERlY29uZnVzZSBlZGl0b3JzIHRo
YXQgZG8gYXV0byBpbmRlbnRhdGlvbgogI2VuZGlmCiAgICAgCi0jaWYgIUVOQUJMRShKSVQpCi0g
ICAgdXNlSklUKCkgPSBmYWxzZTsKLSAgICB1c2VERkdKSVQoKSA9IGZhbHNlOwotI2VuZGlmCi0j
aWYgIUVOQUJMRShZQVJSX0pJVCkKLSAgICB1c2VSZWdFeHBKSVQoKSA9IGZhbHNlOwotI2VuZGlm
CisgICAgcmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucygpOwogCiAgICAgLy8gRG8gcmFuZ2UgY2hl
Y2tzIHdoZXJlIG5lZWRlZCBhbmQgbWFrZSBjb3JyZWN0aW9ucyB0byB0aGUgb3B0aW9uczoKLSAg
ICBBU1NFUlQodGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSA+PSB0aHJlc2hv
bGRGb3JPcHRpbWl6ZUFmdGVyV2FybVVwKCkpOwotICAgIEFTU0VSVCh0aHJlc2hvbGRGb3JPcHRp
bWl6ZUFmdGVyV2FybVVwKCkgPj0gdGhyZXNob2xkRm9yT3B0aW1pemVTb29uKCkpOwotICAgIEFT
U0VSVCh0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyV2FybVVwKCkgPj0gMCk7Ci0KLSAgICAvLyBD
b21wdXRlIHRoZSBtYXhpbXVtIHZhbHVlIG9mIHRoZSByZW9wdGltaXphdGlvbiByZXRyeSBjb3Vu
dGVyLiBUaGlzIGlzIHNpbXBseQotICAgIC8vIHRoZSBsYXJnZXN0IHZhbHVlIGF0IHdoaWNoIHdl
IGRvbid0IG92ZXJmbG93IHRoZSBleGVjdXRlIGNvdW50ZXIsIHdoZW4gdXNpbmcgaXQKLSAgICAv
LyB0byBsZWZ0LXNoaWZ0IHRoZSBleGVjdXRpb24gY291bnRlciBieSB0aGlzIGFtb3VudC4gQ3Vy
cmVudGx5IHRoZSB2YWx1ZSBlbmRzCi0gICAgLy8gdXAgYmVpbmcgMTgsIHNvIHRoaXMgbG9vcCBp
cyBub3Qgc28gdGVycmlibGU7IGl0IHByb2JhYmx5IHRha2VzIHVwIH4xMDAgY3ljbGVzCi0gICAg
Ly8gdG90YWwgb24gYSAzMi1iaXQgcHJvY2Vzc29yLgotICAgIHJlb3B0aW1pemF0aW9uUmV0cnlD
b3VudGVyTWF4KCkgPSAwOwotICAgIHdoaWxlICgoc3RhdGljX2Nhc3Q8aW50NjRfdD4odGhyZXNo
b2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSkgPDwgKHJlb3B0aW1pemF0aW9uUmV0cnlD
b3VudGVyTWF4KCkgKyAxKSkgPD0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpudW1lcmljX2xp
bWl0czxpbnQzMj46Om1heCgpKSkKLSAgICAgICAgcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJN
YXgoKSsrOwotCi0gICAgQVNTRVJUKChzdGF0aWNfY2FzdDxpbnQ2NF90Pih0aHJlc2hvbGRGb3JP
cHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpKSA8PCByZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1h
eCgpKSA+IDApOwotICAgIEFTU0VSVCgoc3RhdGljX2Nhc3Q8aW50NjRfdD4odGhyZXNob2xkRm9y
T3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSkgPDwgcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJN
YXgoKSkgPD0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMj46
Om1heCgpKSk7CisgICAgQVNTRVJUKE9wdGlvbnM6OnRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJM
b25nV2FybVVwKCkgPj0gT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlcldhcm1VcCgp
KTsKKyAgICBBU1NFUlQoT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlcldhcm1VcCgp
ID49IE9wdGlvbnM6OnRocmVzaG9sZEZvck9wdGltaXplU29vbigpKTsKKyAgICBBU1NFUlQoT3B0
aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlcldhcm1VcCgpID49IDApOwogfQogCiAvLyBQ
YXJzZXMgYSBzaW5nbGUgY29tbWFuZCBsaW5lIG9wdGlvbiBpbiB0aGUgZm9ybWF0ICI8b3B0aW9u
TmFtZT49PHZhbHVlPiIKQEAgLTI1MSw2ICsyNzMsNyBAQCBib29sIE9wdGlvbnM6OnNldE9wdGlv
bihjb25zdCBjaGFyKiBhcmcpCiAgICAgICAgIGJvb2wgc3VjY2VzcyA9IHBhcnNlKHZhbHVlU3Ry
LCB2YWx1ZSk7ICAgICAgICAgIFwKICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgbmFtZV8oKSA9IHZhbHVlOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICByZWNvbXB1dGVEZXBlbmRlbnRP
cHRpb25zKCk7ICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHJldHVybiB0cnVlOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICB9ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIHJldHVybiBmYWxzZTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTI1OSw3ICsyODIsNyBAQCBib29s
IE9wdGlvbnM6OnNldE9wdGlvbihjb25zdCBjaGFyKiBhcmcpCiAgICAgSlNDX09QVElPTlMoRk9S
X0VBQ0hfT1BUSU9OKQogI3VuZGVmIEZPUl9FQUNIX09QVElPTgogCi0gICAgICAgIHJldHVybiBm
YWxzZTsgLy8gTm8gb3B0aW9uIG1hdGNoZWQuCisgICAgcmV0dXJuIGZhbHNlOyAvLyBObyBvcHRp
b24gbWF0Y2hlZC4KIH0KIAogdm9pZCBPcHRpb25zOjpkdW1wQWxsT3B0aW9ucyhGSUxFKiBzdHJl
YW0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKaW5kZXggYzg4YjNhYzZj
MzZiZTkwOGEyMmUwNDI1MmNkNzU5NzZlMmFlMGRlYy4uMDViNmZlMDFkMWZhZDRlMjJhNDMxYWVj
Mzc2NzIzYTJjMWZhOTkyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAy
MDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkpTRXhw
b3J0TWFjcm9zLmgiCiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC05NCw2
ICs5NSwxMCBAQCB0eXBlZGVmIE9wdGlvblJhbmdlIG9wdGlvblJhbmdlOwogICAgIHYoYm9vbCwg
dXNlREZHSklULCB0cnVlKSBcCiAgICAgdihib29sLCB1c2VSZWdFeHBKSVQsIHRydWUpIFwKICAg
ICBcCisgICAgdih1bnNpZ25lZCwgbWF4UGVyVGhyZWFkU3RhY2tVc2FnZSwgNCAqIE1CKSBcCisg
ICAgdih1bnNpZ25lZCwgcmVzZXJ2ZWRab25lU2l6ZSwgMTI4ICogS0IpIFwKKyAgICB2KHVuc2ln
bmVkLCBlcnJvck1vZGVSZXNlcnZlZFpvbmVTaXplLCA2NCAqIEtCKSBcCisgICAgXAogICAgIHYo
Ym9vbCwgY3Jhc2hJZkNhbnRBbGxvY2F0ZUpJVE1lbW9yeSwgZmFsc2UpIFwKICAgICBcCiAgICAg
dihib29sLCBmb3JjZURGR0NvZGVCbG9ja0xpdmVuZXNzLCBmYWxzZSkgXApAQCAtMTE4LDExICsx
MjMsMTkgQEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25SYW5nZTsKICAgICB2KGJvb2wsIHZl
cmJvc2VDYWxsTGluaywgZmFsc2UpIFwKICAgICB2KGJvb2wsIHZlcmJvc2VDb21waWxhdGlvblF1
ZXVlLCBmYWxzZSkgXAogICAgIHYoYm9vbCwgcmVwb3J0Q29tcGlsZVRpbWVzLCBmYWxzZSkgXAor
ICAgIHYoYm9vbCwgcmVwb3J0RlRMQ29tcGlsZVRpbWVzLCBmYWxzZSkgXAogICAgIHYoYm9vbCwg
dmVyYm9zZUNGQSwgZmFsc2UpIFwKKyAgICB2KGJvb2wsIHZlcmJvc2VGVExUb0pTVGh1bmssIGZh
bHNlKSBcCisgICAgdihib29sLCB2ZXJib3NlRlRMRmFpbHVyZSwgZmFsc2UpIFwKKyAgICB2KGJv
b2wsIGFsd2F5c0NvbXB1dGVIYXNoLCBmYWxzZSkgXAorICAgIHYoYm9vbCwgdGVzdFRoZUZUTCwg
ZmFsc2UpIFwKKyAgICB2KGJvb2wsIHZlcmJvc2VTYW5pdGl6ZVN0YWNrLCBmYWxzZSkgXAogICAg
IFwKLSAgICB2KGJvb2wsIGVuYWJsZU9TUkVudHJ5SW5Mb29wcywgdHJ1ZSkgXAorICAgIHYoYm9v
bCwgZW5hYmxlT1NSRW50cnlUb0RGRywgdHJ1ZSkgXAorICAgIHYoYm9vbCwgZW5hYmxlT1NSRW50
cnlUb0ZUTCwgdHJ1ZSkgXAogICAgIFwKICAgICB2KGJvb2wsIHVzZUV4cGVyaW1lbnRhbEZUTCwg
ZmFsc2UpIFwKKyAgICB2KGJvb2wsIGVuYWJsZUV4cGVyaW1lbnRhbEZUTENvdmVyYWdlLCBmYWxz
ZSkgXAogICAgIHYoYm9vbCwgdXNlRlRMVEJBQSwgdHJ1ZSkgXAogICAgIHYoYm9vbCwgZW5hYmxl
TExWTUZhc3RJU2VsLCBmYWxzZSkgXAogICAgIHYoYm9vbCwgdXNlTExWTVNtYWxsQ29kZU1vZGVs
LCBmYWxzZSkgXApAQCAtMTM0LDEwICsxNDcsMTIgQEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRp
b25SYW5nZTsKICAgICB2KHVuc2lnbmVkLCBsbHZtQmFja2VuZE9wdGltaXphdGlvbkxldmVsLCAy
KSBcCiAgICAgdih1bnNpZ25lZCwgbGx2bU9wdGltaXphdGlvbkxldmVsLCAyKSBcCiAgICAgdih1
bnNpZ25lZCwgbGx2bVNpemVMZXZlbCwgMCkgXAorICAgIHYoYm9vbCwgbGx2bURpc2FsbG93QVZY
LCB0cnVlKSBcCiAgICAgdihib29sLCBmdGxDcmFzaGVzLCBmYWxzZSkgLyogZm9vbC1wcm9vZiB3
YXkgb2YgY2hlY2tpbmcgdGhhdCB5b3UgZW5kZWQgdXAgaW4gdGhlIEZUTC4gOy0pICovXAogICAg
IFwKICAgICB2KGJvb2wsIGVuYWJsZUNvbmN1cnJlbnRKSVQsIHRydWUpIFwKLSAgICB2KHVuc2ln
bmVkLCBudW1iZXJPZkNvbXBpbGVyVGhyZWFkcywgY29tcHV0ZU51bWJlck9mV29ya2VyVGhyZWFk
cygyKSAtIDEpIFwKKyAgICB2KHVuc2lnbmVkLCBudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcywg
Y29tcHV0ZU51bWJlck9mV29ya2VyVGhyZWFkcygyKSAtIDEpIFwKKyAgICB2KHVuc2lnbmVkLCBu
dW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkcywgY29tcHV0ZU51bWJlck9mV29ya2VyVGhyZWFkcyg4
KSAtIDEpIFwKICAgICBcCiAgICAgdihib29sLCBlbmFibGVQcm9maWxlciwgZmFsc2UpIFwKICAg
ICBcCkBAIC0xNDYsNiArMTYxLDggQEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25SYW5nZTsK
ICAgICBcCiAgICAgdihib29sLCBlbmFibGVBcmNoaXRlY3R1cmVTcGVjaWZpY09wdGltaXphdGlv
bnMsIHRydWUpIFwKICAgICBcCisgICAgdihib29sLCBicmVha09uVGhyb3csIGZhbHNlKSBcCisg
ICAgXAogICAgIHYodW5zaWduZWQsIG1heGltdW1PcHRpbWl6YXRpb25DYW5kaWRhdGVJbnN0cnVj
dGlvbkNvdW50LCAxMDAwMCkgXAogICAgIFwKICAgICB2KHVuc2lnbmVkLCBtYXhpbXVtRnVuY3Rp
b25Gb3JDYWxsSW5saW5lQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3VudCwgMTgwKSBcCkBAIC0xNTQs
NiArMTcxLDEyIEBAIHR5cGVkZWYgT3B0aW9uUmFuZ2Ugb3B0aW9uUmFuZ2U7CiAgICAgXAogICAg
IC8qIERlcHRoIG9mIGlubGluZSBzdGFjaywgc28gMSA9IG5vIGlubGluaW5nLCAyID0gb25lIGxl
dmVsLCBldGMuICovIFwKICAgICB2KHVuc2lnbmVkLCBtYXhpbXVtSW5saW5pbmdEZXB0aCwgNSkg
XAorICAgIHYodW5zaWduZWQsIG1heGltdW1JbmxpbmluZ1JlY3Vyc2lvbiwgMikgXAorICAgIHYo
dW5zaWduZWQsIG1heGltdW1JbmxpbmluZ0RlcHRoRm9yTXVzdElubGluZSwgNykgXAorICAgIHYo
dW5zaWduZWQsIG1heGltdW1JbmxpbmluZ1JlY3Vyc2lvbkZvck11c3RJbmxpbmUsIDMpIFwKKyAg
ICBcCisgICAgdihib29sLCBlbmFibGVQb2x5dmFyaWFudENhbGxJbmxpbmluZywgdHJ1ZSkgXAor
ICAgIHYoYm9vbCwgZW5hYmxlUG9seXZhcmlhbnRCeUlkSW5saW5pbmcsIHRydWUpIFwKICAgICBc
CiAgICAgdih1bnNpZ25lZCwgbWF4aW11bUJpbmFyeVN0cmluZ1N3aXRjaENhc2VMZW5ndGgsIDUw
KSBcCiAgICAgdih1bnNpZ25lZCwgbWF4aW11bUJpbmFyeVN0cmluZ1N3aXRjaFRvdGFsTGVuZ3Ro
LCAyMDAwKSBcCkBAIC0yMTAsNiArMjMzLDcgQEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25S
YW5nZTsKICAgICB2KGJvb2wsIHNob3dPYmplY3RTdGF0aXN0aWNzLCBmYWxzZSkgXAogICAgIFwK
ICAgICB2KGJvb2wsIGxvZ0dDLCBmYWxzZSkgXAorICAgIHYoYm9vbCwgZGlzYWJsZUdDLCBmYWxz
ZSkgXAogICAgIHYodW5zaWduZWQsIGdjTWF4SGVhcFNpemUsIDApIFwKICAgICB2KGJvb2wsIHJl
Y29yZEdDUGF1c2VUaW1lcywgZmFsc2UpIFwKICAgICB2KGJvb2wsIGxvZ0hlYXBTdGF0aXN0aWNz
QXRFeGl0LCBmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzM1MWRiNGEzMjYzYTQ4
MTFmYTRjNGU4MmJjMDQ0YTllZGMzZTM4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oCkBAIC0wLDAgKzEs
MzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGVfaAorI2RlZmluZSBSZWdpc3RlclByZXNlcnZh
dGlvbk1vZGVfaAorCituYW1lc3BhY2UgSlNDIHsKKworZW51bSBSZWdpc3RlclByZXNlcnZhdGlv
bk1vZGUgeworICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQsCisgICAgTXVzdFBy
ZXNlcnZlUmVnaXN0ZXJzCit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIFJl
Z2lzdGVyUHJlc2VydmF0aW9uTW9kZV9oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0YWNrQWxpZ25tZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdGFja0FsaWdubWVudC5oCmluZGV4IGI4MDNlNGRlZGQ5OGVkMjhhYjI5YzJkMTkwMjVk
NDM3Yzg2OTc2YzguLmQyOTgwMmIzZmRiY2U1NTkyNmM2M2EzYjEyY2RiYjRlNWI1MzQxNTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrQWxpZ25tZW50LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tBbGlnbm1lbnQuaApAQCAt
MjcsNiArMjcsOCBAQAogI2RlZmluZSBTdGFja0FsaWdubWVudF9oCiAKICNpbmNsdWRlICJKU0NK
U1ZhbHVlLmgiCisjaW5jbHVkZSAiSlNTdGFjay5oIgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFz
Lmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC0zOCw2ICs0MCwyNSBAQCBpbmxpbmUgdW5zaWdu
ZWQgc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKQogICAgIHJldHVybiBzdGFja0FsaWdubWVudEJ5
dGVzKCkgLyBzaXplb2YoRW5jb2RlZEpTVmFsdWUpOwogfQogCisvLyBBbGlnbiBhcmd1bWVudCBj
b3VudCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBDYWxsRnJhbWVIZWFkZXJTaXplIG1heSBiZQor
Ly8gYW4gInVuYWxpZ25lZCIgY291bnQgb2YgcmVnaXN0ZXJzLgoraW5saW5lIHVuc2lnbmVkIHJv
dW5kQXJndW1lbnRDb3VudFRvQWxpZ25GcmFtZSh1bnNpZ25lZCBhcmd1bWVudENvdW50KQorewor
ICAgIHJldHVybiBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3Rl
cnMoKSwgYXJndW1lbnRDb3VudCArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpIC0gSlNT
dGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsKK30KKworLy8gQWxpZ24gbG9jYWwgcmVnaXN0ZXIg
Y291bnQgdG8gbWFrZSB0aGUgbGFzdCBsb2NhbCBlbmQgb24gYSBzdGFjayBhbGlnbmVkIGFkZHJl
c3MgZ2l2ZW4gdGhlCisvLyBDYWxsRnJhbWUgaXMgYXQgYW4gYWRkcmVzcyB0aGF0IGlzIHN0YWNr
IGFsaWduZWQgbWludXMgSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUKK2lubGluZSB1bnNp
Z25lZCByb3VuZExvY2FsUmVnaXN0ZXJDb3VudEZvckZyYW1lUG9pbnRlck9mZnNldCh1bnNpZ25l
ZCBsb2NhbFJlZ2lzdGVyQ291bnQpCit7CisgICAgcmV0dXJuIFdURjo6cm91bmRVcFRvTXVsdGlw
bGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBsb2NhbFJlZ2lzdGVyQ291bnQgKyBKU1N0
YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSkgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6
ZTsKK30KKworaW5saW5lIHVuc2lnbmVkIGxvZ1N0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkKK3sK
KyAgICByZXR1cm4gV1RGOjpmYXN0TG9nMihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBTdGFja0FsaWdubWVudF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVj
a2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1JlY3Vyc2lvbkNo
ZWNrZXIuY3BwCmluZGV4IDFmMjA0MjMxZTk2MjgyZjQ1MTMwMmQxMmM1OTYwNmZiN2ZmMjUwMmYu
LjY3MjQ2YWE2MDQ2OTI1Nzk5MTI0ZTZjZDgxNjUxNWI1ZDc1Yjk4Y2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1JlY3Vyc2lvbkNoZWNrZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1JlY3Vyc2lvbkNoZWNrZXIu
Y3BwCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBKU1ZhbHVlIFN0cmluZ1Jl
Y3Vyc2lvbkNoZWNrZXI6OnRocm93U3RhY2tPdmVyZmxvd0Vycm9yKCkKIHsKLSAgICByZXR1cm4g
bV9leGVjLT52bSgpLnRocm93RXhjZXB0aW9uKG1fZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vy
cm9yKG1fZXhlYykpOworICAgIHJldHVybiBKU0M6OnRocm93U3RhY2tPdmVyZmxvd0Vycm9yKG1f
ZXhlYyk7CiB9CiAKIEpTVmFsdWUgU3RyaW5nUmVjdXJzaW9uQ2hlY2tlcjo6ZW1wdHlTdHJpbmco
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKaW5kZXggODc4
MWFiMDA3MzRiMjBhMDljZGVlMTdjM2I1ZGVkNjVjZDBmZDc5OS4uMDQyOTFmN2U4ZGQyNGU4YWIz
M2Q3NWFmMWRhNDU2OGYyYmM5OWU2OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmUuY3BwCkBAIC0xMDQ4LDggKzEwNDgsMTMgQEAgdm9pZCBTdHJ1Y3R1cmU6OmR1
bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBpZiAodGFibGUpIHsKICAgICAgICAgUHJv
cGVydHlUYWJsZTo6aXRlcmF0b3IgaXRlciA9IHRhYmxlLT5iZWdpbigpOwogICAgICAgICBQcm9w
ZXJ0eVRhYmxlOjppdGVyYXRvciBlbmQgPSB0YWJsZS0+ZW5kKCk7Ci0gICAgICAgIGZvciAoOyBp
dGVyICE9IGVuZDsgKytpdGVyKQorICAgICAgICBmb3IgKDsgaXRlciAhPSBlbmQ7ICsraXRlcikg
ewogICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCBpdGVyLT5rZXksICI6Iiwgc3RhdGljX2Nh
c3Q8aW50PihpdGVyLT5vZmZzZXQpKTsKKyAgICAgICAgICAgIGlmIChpdGVyLT5zcGVjaWZpY1Zh
bHVlKSB7CisgICAgICAgICAgICAgICAgRHVtcENvbnRleHQgZHVtbXlDb250ZXh0OworICAgICAg
ICAgICAgICAgIG91dC5wcmludCgiPT4iLCBSYXdQb2ludGVyKGl0ZXItPnNwZWNpZmljVmFsdWUu
Z2V0KCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgc3Ry
dWN0dXJlLT5tX2xvY2sudW5sb2NrKCk7CiAgICAgfQpAQCAtMTA1OSw2ICsxMDY0LDEwIEBAIHZv
aWQgU3RydWN0dXJlOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgICAgIGlmICgh
c3RydWN0dXJlLT5tX25hbWVJblByZXZpb3VzKQogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIG91dC5wcmludChjb21tYSwgc3RydWN0dXJlLT5tX25hbWVJblByZXZpb3VzLmdldCgpLCAi
OiIsIHN0YXRpY19jYXN0PGludD4oc3RydWN0dXJlLT5tX29mZnNldCkpOworICAgICAgICBpZiAo
c3RydWN0dXJlLT5tX3NwZWNpZmljVmFsdWVJblByZXZpb3VzKSB7CisgICAgICAgICAgICBEdW1w
Q29udGV4dCBkdW1teUNvbnRleHQ7CisgICAgICAgICAgICBvdXQucHJpbnQoIj0+IiwgUmF3UG9p
bnRlcihzdHJ1Y3R1cmUtPm1fc3BlY2lmaWNWYWx1ZUluUHJldmlvdXMuZ2V0KCkpKTsKKyAgICAg
ICAgfQogICAgIH0KICAgICAKICAgICBvdXQucHJpbnQoIn0sICIsIEluZGV4aW5nVHlwZUR1bXAo
aW5kZXhpbmdUeXBlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCA5
NTU4YjhkNzIzNDEwYjAwZTE2MDE0ZDcwNTFmZDM1NmIwYmZmMDg2Li4zMzY1ZTQ1ZGJjYzMyZGZk
MDJjYmY3NDdkMmI5YmRkN2I3NWYwMmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0u
Y3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMSwgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgs
IDIwMTEsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCwxMSArMzAsMTMgQEAKICNpbmNsdWRlICJW
TS5oIgogCiAjaW5jbHVkZSAiQXJnTGlzdC5oIgorI2luY2x1ZGUgIkFyaXR5Q2hlY2tGYWlsUmV0
dXJuVGh1bmtzLmgiCiAjaW5jbHVkZSAiQXJyYXlCdWZmZXJOZXV0ZXJpbmdXYXRjaHBvaW50Lmgi
CiAjaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgog
I2luY2x1ZGUgIkNvZGVDYWNoZS5oIgogI2luY2x1ZGUgIkNvbW1vbklkZW50aWZpZXJzLmgiCisj
aW5jbHVkZSAiQ29tbW9uU2xvd1BhdGhzLmgiCiAjaW5jbHVkZSAiREZHTG9uZ0xpdmVkU3RhdGUu
aCIKICNpbmNsdWRlICJERkdXb3JrbGlzdC5oIgogI2luY2x1ZGUgIkRlYnVnZ2VyQWN0aXZhdGlv
bi5oIgpAQCAtNDksNiArNTEsNyBAQAogI2luY2x1ZGUgIklkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJJbmNyZW1lbnRhbFN3ZWVwZXIuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1
ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRlICJKU0FQSVZhbHVlV3JhcHBlci5oIgogI2luY2x1ZGUg
IkpTQWN0aXZhdGlvbi5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKQEAgLTE2Niw2ICsxNjksNyBA
QCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgLCB2bVR5cGUo
dm1UeXBlKQogICAgICwgY2xpZW50RGF0YSgwKQogICAgICwgdG9wQ2FsbEZyYW1lKENhbGxGcmFt
ZTo6bm9DYWxsZXIoKSkKKyAgICAsIHN0YWNrUG9pbnRlckF0Vk1FbnRyeSgwKQogICAgICwgYXJy
YXlDb25zdHJ1Y3RvclRhYmxlKGFkb3B0UHRyKG5ldyBIYXNoVGFibGUoSlNDOjphcnJheUNvbnN0
cnVjdG9yVGFibGUpKSkKICAgICAsIGFycmF5UHJvdG90eXBlVGFibGUoYWRvcHRQdHIobmV3IEhh
c2hUYWJsZShKU0M6OmFycmF5UHJvdG90eXBlVGFibGUpKSkKICAgICAsIGJvb2xlYW5Qcm90b3R5
cGVUYWJsZShhZG9wdFB0cihuZXcgSGFzaFRhYmxlKEpTQzo6Ym9vbGVhblByb3RvdHlwZVRhYmxl
KSkpCkBAIC0yMTcsNyArMjIxLDcgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhl
YXBUeXBlKQogICAgICwgbV9pbml0aWFsaXppbmdPYmplY3RDbGFzcygwKQogI2VuZGlmCiAgICAg
LCBtX3N0YWNrTGltaXQoMCkKLSNpZiBVU0UoU0VQQVJBVEVfQ19BTkRfSlNfU1RBQ0spCisjaWYg
RU5BQkxFKExMSU5UX0NfTE9PUCkKICAgICAsIG1fanNTdGFja0xpbWl0KDApCiAjZW5kaWYKICAg
ICAsIG1faW5EZWZpbmVPd25Qcm9wZXJ0eShmYWxzZSkKQEAgLTIyNSw3ICsyMjksMTEgQEAgVk06
OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogewogICAgIGludGVycHJldGVy
ID0gbmV3IEludGVycHJldGVyKCp0aGlzKTsKICAgICBTdGFja0JvdW5kcyBzdGFjayA9IHd0ZlRo
cmVhZERhdGEoKS5zdGFjaygpOwotICAgIHNldFN0YWNrTGltaXQoc3RhY2sucmVjdXJzaW9uTGlt
aXQoKSk7CisgICAgdXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVTaXplKE9wdGlvbnM6
OnJlc2VydmVkWm9uZVNpemUoKSk7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICBpbnRl
cnByZXRlci0+c3RhY2soKS5zZXRSZXNlcnZlZFpvbmVTaXplKE9wdGlvbnM6OnJlc2VydmVkWm9u
ZVNpemUoKSk7CisjZW5kaWYKKyAgICBzZXRMYXN0U3RhY2tUb3Aoc3RhY2sub3JpZ2luKCkpOwog
CiAgICAgLy8gTmVlZCB0byBiZSBjYXJlZnVsIHRvIGtlZXAgZXZlcnl0aGluZyBjb25zaXN0ZW50
IGhlcmUKICAgICBKU0xvY2tIb2xkZXIgbG9jayh0aGlzKTsKQEAgLTI2Nyw3ICsyNzUsOSBAQCBW
TTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAKICNpZiBFTkFCTEUoSklU
KQogICAgIGppdFN0dWJzID0gYWRvcHRQdHIobmV3IEpJVFRodW5rcygpKTsKKyAgICBhcml0eUNo
ZWNrRmFpbFJldHVyblRodW5rcyA9IHN0ZDo6bWFrZV91bmlxdWU8QXJpdHlDaGVja0ZhaWxSZXR1
cm5UaHVua3M+KCk7CiAjZW5kaWYKKyAgICBhcml0eUNoZWNrRGF0YSA9IHN0ZDo6bWFrZV91bmlx
dWU8Q29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YT4oKTsKIAogI2lmIEVOQUJMRShGVExf
SklUKQogICAgIGZ0bFRodW5rcyA9IHN0ZDo6bWFrZV91bmlxdWU8RlRMOjpUaHVua3M+KCk7CkBA
IC0yODAsNyArMjkwLDcgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBl
KQogI2VuZGlmCiAKICAgICBoZWFwLm5vdGlmeUlzU2FmZVRvQ29sbGVjdCgpOwotCisgICAgCiAg
ICAgTExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKCp0aGlzKTsKICAgICAKICAgICBpZiAo
T3B0aW9uczo6ZW5hYmxlUHJvZmlsZXIoKSkgewpAQCAtMzA2LDYgKzMxNiwxNiBAQCBWTTo6Vk0o
Vk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgbV90eXBlZEFycmF5Q29udHJv
bGxlciA9IGFkb3B0UmVmKG5ldyBTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcigpKTsKIH0KIAor
I2lmIEVOQUJMRShERkdfSklUKQorc3RhdGljIHZvaWQgY2xlYW5Xb3JrbGlzdChWTSYgdm0sIERG
Rzo6V29ya2xpc3QqIHdvcmtsaXN0KQoreworICAgIGlmICghd29ya2xpc3QpCisgICAgICAgIHJl
dHVybjsKKyAgICB3b3JrbGlzdC0+d2FpdFVudGlsQWxsUGxhbnNGb3JWTUFyZVJlYWR5KHZtKTsK
KyAgICB3b3JrbGlzdC0+cmVtb3ZlQWxsUmVhZHlQbGFuc0ZvclZNKHZtKTsKK30KKyNlbmRpZiAv
LyBFTkFCTEUoREZHX0pJVCkKKwogVk06On5WTSgpCiB7CiAgICAgLy8gTmV2ZXIgR0MsIGV2ZXIg
YWdhaW4uCkBAIC0zMTQsMTAgKzMzNCw4IEBAIFZNOjp+Vk0oKQogI2lmIEVOQUJMRShERkdfSklU
KQogICAgIC8vIE1ha2Ugc3VyZSBjb25jdXJyZW50IGNvbXBpbGF0aW9ucyBhcmUgZG9uZSwgYnV0
IGRvbid0IGluc3RhbGwgdGhlbSwgc2luY2UgdGhlcmUgaXMKICAgICAvLyBubyBwb2ludCB0byBk
b2luZyBzby4KLSAgICBpZiAod29ya2xpc3QpIHsKLSAgICAgICAgd29ya2xpc3QtPndhaXRVbnRp
bEFsbFBsYW5zRm9yVk1BcmVSZWFkeSgqdGhpcyk7Ci0gICAgICAgIHdvcmtsaXN0LT5yZW1vdmVB
bGxSZWFkeVBsYW5zRm9yVk0oKnRoaXMpOwotICAgIH0KKyAgICBjbGVhbldvcmtsaXN0KCp0aGlz
LCBERkc6OmV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RPck51bGwoKSk7CisgICAgY2xlYW5Xb3Jr
bGlzdCgqdGhpcywgREZHOjpleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxsKCkpOwogI2Vu
ZGlmIC8vIEVOQUJMRShERkdfSklUKQogICAgIAogICAgIC8vIENsZWFyIHRoaXMgZmlyc3QgdG8g
ZW5zdXJlIHRoYXQgbm9ib2R5IHRyaWVzIHRvIHJlbW92ZSB0aGVtc2VsdmVzIGZyb20gaXQuCkBA
IC00NjEsOCArNDc5LDggQEAgTmF0aXZlRXhlY3V0YWJsZSogVk06OmdldEhvc3RGdW5jdGlvbihO
YXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgSW50cmluc2ljIGludHJpbnMKIE5hdGl2ZUV4ZWN1dGFi
bGUqIFZNOjpnZXRIb3N0RnVuY3Rpb24oTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIE5hdGl2ZUZ1
bmN0aW9uIGNvbnN0cnVjdG9yKQogewogICAgIHJldHVybiBOYXRpdmVFeGVjdXRhYmxlOjpjcmVh
dGUoKnRoaXMsCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2Rl
UmVmKGxsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUpLCBmdW5jdGlvbiwKLSAgICAgICAgTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfbmF0aXZlX2NvbnN0
cnVjdF90cmFtcG9saW5lKSwgY29uc3RydWN0b3IsCisgICAgICAgIGFkb3B0UmVmKG5ldyBOYXRp
dmVKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50
X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUpLCBKSVRDb2RlOjpIb3N0Q2FsbFRodW5rKSksIGZ1bmN0
aW9uLAorICAgICAgICBhZG9wdFJlZihuZXcgTmF0aXZlSklUQ29kZShNYWNyb0Fzc2VtYmxlckNv
ZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9uYXRpdmVfY29uc3RydWN0X3RyYW1wb2xp
bmUpLCBKSVRDb2RlOjpIb3N0Q2FsbFRodW5rKSksIGNvbnN0cnVjdG9yLAogICAgICAgICBOb0lu
dHJpbnNpYyk7CiB9CiAKQEAgLTQ5MCwxNCArNTA4LDIxIEBAIHZvaWQgVk06OnN0b3BTYW1wbGlu
ZygpCiAgICAgaW50ZXJwcmV0ZXItPnN0b3BTYW1wbGluZygpOwogfQogCi12b2lkIFZNOjpwcmVw
YXJlVG9EaXNjYXJkQ29kZSgpCi17CiAjaWYgRU5BQkxFKERGR19KSVQpCitzdGF0aWMgdm9pZCBw
cmVwYXJlVG9EaXNjYXJkQ29kZUZvcihWTSYgdm0sIERGRzo6V29ya2xpc3QqIHdvcmtsaXN0KQor
ewogICAgIGlmICghd29ya2xpc3QpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICB3b3JrbGlz
dC0+Y29tcGxldGVBbGxQbGFuc0ZvclZNKCp0aGlzKTsKLSNlbmRpZgorICAgIHdvcmtsaXN0LT5j
b21wbGV0ZUFsbFBsYW5zRm9yVk0odm0pOworfQorI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQor
Cit2b2lkIFZNOjpwcmVwYXJlVG9EaXNjYXJkQ29kZSgpCit7CisjaWYgRU5BQkxFKERGR19KSVQp
CisgICAgcHJlcGFyZVRvRGlzY2FyZENvZGVGb3IoKnRoaXMsIERGRzo6ZXhpc3RpbmdHbG9iYWxE
RkdXb3JrbGlzdE9yTnVsbCgpKTsKKyAgICBwcmVwYXJlVG9EaXNjYXJkQ29kZUZvcigqdGhpcywg
REZHOjpleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxsKCkpOworI2VuZGlmIC8vIEVOQUJM
RShERkdfSklUKQogfQogCiB2b2lkIFZNOjpkaXNjYXJkQWxsQ29kZSgpCkBAIC02MzIsNiArNjU3
LDExIEBAIHN0YXRpYyB2b2lkIGFwcGVuZFNvdXJjZVRvRXJyb3IoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIEVycm9ySW5zdGFuY2UqIGV4Y2VwdGlvbiwKICAgICAKIEpTVmFsdWUgVk06OnRocm93RXhj
ZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBlcnJvcikKIHsKKyAgICBpZiAoT3B0aW9u
czo6YnJlYWtPblRocm93KCkpIHsKKyAgICAgICAgZGF0YUxvZygiSW4gY2FsbCBmcmFtZSAiLCBS
YXdQb2ludGVyKGV4ZWMpLCAiIGZvciBjb2RlIGJsb2NrICIsICpleGVjLT5jb2RlQmxvY2soKSwg
IlxuIik7CisgICAgICAgIENSQVNIKCk7CisgICAgfQorICAgIAogICAgIEFTU0VSVChleGVjID09
IHRvcENhbGxGcmFtZSB8fCBleGVjID09IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Z2xv
YmFsRXhlYygpIHx8IGV4ZWMgPT0gZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpLT5nbG9iYWxF
eGVjKCkpOwogICAgIAogICAgIFZlY3RvcjxTdGFja0ZyYW1lPiBzdGFja1RyYWNlOwpAQCAtNzA2
LDYgKzczNiwyNCBAQCB2b2lkIFZNOjogY2xlYXJFeGNlcHRpb25TdGFjaygpCiAgICAgbV9leGNl
cHRpb25TdGFjayA9IFJlZkNvdW50ZWRBcnJheTxTdGFja0ZyYW1lPigpOwogfQogCitzaXplX3Qg
Vk06OnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6ZShzaXplX3QgcmVzZXJ2ZWRa
b25lU2l6ZSkKK3sKKyAgICBzaXplX3Qgb2xkUmVzZXJ2ZWRab25lU2l6ZSA9IG1fcmVzZXJ2ZWRa
b25lU2l6ZTsKKyAgICBtX3Jlc2VydmVkWm9uZVNpemUgPSByZXNlcnZlZFpvbmVTaXplOworCisg
ICAgdm9pZCogc3RhY2tMaW1pdDsKKyAgICBpZiAoc3RhY2tQb2ludGVyQXRWTUVudHJ5KSB7Cisg
ICAgICAgIEFTU0VSVCh3dGZUaHJlYWREYXRhKCkuc3RhY2soKS5pc0dyb3dpbmdEb3dud2FyZCgp
KTsKKyAgICAgICAgY2hhciogc3RhcnRPZlN0YWNrID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4o
c3RhY2tQb2ludGVyQXRWTUVudHJ5KTsKKyAgICAgICAgY2hhciogZGVzaXJlZFN0YWNrTGltaXQg
PSBzdGFydE9mU3RhY2sgLSBPcHRpb25zOjptYXhQZXJUaHJlYWRTdGFja1VzYWdlKCkgKyByZXNl
cnZlZFpvbmVTaXplOworICAgICAgICBzdGFja0xpbWl0ID0gd3RmVGhyZWFkRGF0YSgpLnN0YWNr
KCkucmVjdXJzaW9uTGltaXQocmVzZXJ2ZWRab25lU2l6ZSwgZGVzaXJlZFN0YWNrTGltaXQpOwor
ICAgIH0gZWxzZQorICAgICAgICBzdGFja0xpbWl0ID0gd3RmVGhyZWFkRGF0YSgpLnN0YWNrKCku
cmVjdXJzaW9uTGltaXQocmVzZXJ2ZWRab25lU2l6ZSk7CisKKyAgICBzZXRTdGFja0xpbWl0KHN0
YWNrTGltaXQpOworICAgIHJldHVybiBvbGRSZXNlcnZlZFpvbmVTaXplOworfQorCiB2b2lkIHJl
bGVhc2VFeGVjdXRhYmxlTWVtb3J5KFZNJiB2bSkKIHsKICAgICB2bS5yZWxlYXNlRXhlY3V0YWJs
ZU1lbW9yeSgpOwpAQCAtNzIyLDE2ICs3NzAsMTkgQEAgdm9pZCBWTTo6Z2F0aGVyQ29uc2VydmF0
aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzKQogICAgICAgICB9
CiAgICAgfQogfQorI2VuZGlmCiAKLURGRzo6V29ya2xpc3QqIFZNOjplbnN1cmVXb3JrbGlzdCgp
Cit2b2lkIGxvZ1Nhbml0aXplU3RhY2soVk0qIHZtKQogewotICAgIGlmICghREZHOjplbmFibGVD
b25jdXJyZW50SklUKCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIGlmICghd29ya2xpc3QpCi0g
ICAgICAgIHdvcmtsaXN0ID0gREZHOjpnbG9iYWxXb3JrbGlzdCgpOwotICAgIHJldHVybiB3b3Jr
bGlzdC5nZXQoKTsKKyAgICBpZiAoT3B0aW9uczo6dmVyYm9zZVNhbml0aXplU3RhY2soKSAmJiB2
bS0+dG9wQ2FsbEZyYW1lKSB7CisgICAgICAgIGludCBkdW1teTsKKyAgICAgICAgZGF0YUxvZygK
KyAgICAgICAgICAgICJTYW5pdGl6aW5nIHN0YWNrIHdpdGggdG9wIGNhbGwgZnJhbWUgYXQgIiwg
UmF3UG9pbnRlcih2bS0+dG9wQ2FsbEZyYW1lKSwKKyAgICAgICAgICAgICIsIGN1cnJlbnQgc3Rh
Y2sgcG9pbnRlciBhdCAiLCBSYXdQb2ludGVyKCZkdW1teSksICIsIGluICIsCisgICAgICAgICAg
ICBwb2ludGVyRHVtcCh2bS0+dG9wQ2FsbEZyYW1lLT5jb2RlQmxvY2soKSksICIgYW5kIGxhc3Qg
Y29kZSBvcmlnaW4gPSAiLAorICAgICAgICAgICAgdm0tPnRvcENhbGxGcmFtZS0+Y29kZU9yaWdp
bigpLCAiXG4iKTsKKyAgICB9CiB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShSRUdFWFBfVFJBQ0lO
RykKIHZvaWQgVk06OmFkZFJlZ0V4cFRvVHJhY2UoUmVnRXhwKiByZWdFeHApCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk0uaAppbmRleCA1MGEzMTVlZTQzMzg5OWQwMDAxMDI5ZTgxMDY0NDlkZmJh
ZWJiMDQ3Li44MzZmMmFkNjczMmJmOWVmZGYyMjA0OGNkZmU3NjU2NzI3YzA3NTk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTY4LDYgKzY4LDcgQEAKIAogbmFtZXNwYWNlIEpT
QyB7CiAKKyAgICBjbGFzcyBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rczsKICAgICBjbGFzcyBD
b2RlQmxvY2s7CiAgICAgY2xhc3MgQ29kZUNhY2hlOwogICAgIGNsYXNzIENvbW1vbklkZW50aWZp
ZXJzOwpAQCAtMTAzLDcgKzEwNCw2IEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVOQUJMRShERkdf
SklUKQogICAgIG5hbWVzcGFjZSBERkcgewogICAgIGNsYXNzIExvbmdMaXZlZFN0YXRlOwotICAg
IGNsYXNzIFdvcmtsaXN0OwogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKICNpZiBF
TkFCTEUoRlRMX0pJVCkKQEAgLTExMSw2ICsxMTEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBj
bGFzcyBUaHVua3M7CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorICAgIG5hbWVz
cGFjZSBDb21tb25TbG93UGF0aHMgeworICAgIHN0cnVjdCBBcml0eUNoZWNrRGF0YTsKKyAgICB9
CiAKICAgICBzdHJ1Y3QgSGFzaFRhYmxlOwogICAgIHN0cnVjdCBJbnN0cnVjdGlvbjsKQEAgLTIw
NCwxMCArMjA3LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgdm9pZCBtYWtlVXNhYmxl
RnJvbU11bHRpcGxlVGhyZWFkcygpIHsgaGVhcC5tYWNoaW5lVGhyZWFkcygpLm1ha2VVc2FibGVG
cm9tTXVsdGlwbGVUaHJlYWRzKCk7IH0KICAgICAgICAgCi0jaWYgRU5BQkxFKERGR19KSVQpCi0g
ICAgICAgIERGRzo6V29ya2xpc3QqIGVuc3VyZVdvcmtsaXN0KCk7Ci0jZW5kaWYgLy8gRU5BQkxF
KERGR19KSVQpCi0KICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8SlNMb2NrPiBtX2FwaUxv
Y2s7CiAKQEAgLTIyNCwxMiArMjIzLDEyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAKICNp
ZiBFTkFCTEUoREZHX0pJVCkKICAgICAgICAgT3duUHRyPERGRzo6TG9uZ0xpdmVkU3RhdGU+IGRm
Z1N0YXRlOwotICAgICAgICBSZWZQdHI8REZHOjpXb3JrbGlzdD4gd29ya2xpc3Q7CiAjZW5kaWYg
Ly8gRU5BQkxFKERGR19KSVQpCiAKICAgICAgICAgVk1UeXBlIHZtVHlwZTsKICAgICAgICAgQ2xp
ZW50RGF0YSogY2xpZW50RGF0YTsKICAgICAgICAgRXhlY1N0YXRlKiB0b3BDYWxsRnJhbWU7Cisg
ICAgICAgIHZvaWQqIHN0YWNrUG9pbnRlckF0Vk1FbnRyeTsKICAgICAgICAgV2F0Y2hkb2cgd2F0
Y2hkb2c7CiAKICAgICAgICAgY29uc3QgT3duUHRyPGNvbnN0IEhhc2hUYWJsZT4gYXJyYXlDb25z
dHJ1Y3RvclRhYmxlOwpAQCAtMzQxLDcgKzM0MCwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgICAgIHJldHVybiBqaXRTdHVicy0+Y3RpU3R1Yih0aGlzLCBnZW5lcmF0b3IpOwogICAgICAg
ICB9CiAgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGdldEhvc3RGdW5jdGlvbihOYXRpdmVGdW5j
dGlvbiwgSW50cmluc2ljKTsKLSNlbmRpZgorICAgICAgICAKKyAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzPiBhcml0eUNoZWNrRmFpbFJldHVyblRodW5r
czsKKyNpZiBDUFUoWDg2KQorICAgICAgICB2b2lkKiBjdXJyZW50UmV0dXJuVGh1bmtQQzsKKyNl
bmRpZiAvLyBDUFUoWDg2KQorI2VuZGlmIC8vIEVOQUJMRShKSVQpCisgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhPiBhcml0eUNoZWNrRGF0YTsK
ICNpZiBFTkFCTEUoRlRMX0pJVCkKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEZUTDo6VGh1bmtz
PiBmdGxUaHVua3M7CiAjZW5kaWYKQEAgLTM3MywxMiArMzc4LDE2IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBKU1ZhbHVlIHRocm93RXhjZXB0aW9uKEV4ZWNT
dGF0ZSosIEpTVmFsdWUpOwogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogdGhy
b3dFeGNlcHRpb24oRXhlY1N0YXRlKiwgSlNPYmplY3QqKTsKICAgICAgICAgCisgICAgICAgIHNp
emVfdCByZXNlcnZlZFpvbmVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9yZXNlcnZlZFpvbmVTaXpl
OyB9CisgICAgICAgIHNpemVfdCB1cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNpemUo
c2l6ZV90IHJlc2VydmVkWm9uZVNpemUpOworCiAgICAgICAgIHZvaWQqKiBhZGRyZXNzT2ZKU1N0
YWNrTGltaXQoKSB7IHJldHVybiAmbV9qc1N0YWNrTGltaXQ7IH0KKyNpZiBFTkFCTEUoTExJTlRf
Q19MT09QKQogICAgICAgICB2b2lkKiBqc1N0YWNrTGltaXQoKSB7IHJldHVybiBtX2pzU3RhY2tM
aW1pdDsgfQogICAgICAgICB2b2lkIHNldEpTU3RhY2tMaW1pdCh2b2lkKiBsaW1pdCkgeyBtX2pz
U3RhY2tMaW1pdCA9IGxpbWl0OyB9Ci0KKyNlbmRpZgogICAgICAgICB2b2lkKiBzdGFja0xpbWl0
KCkgeyByZXR1cm4gbV9zdGFja0xpbWl0OyB9Ci0gICAgICAgIHZvaWQgc2V0U3RhY2tMaW1pdCh2
b2lkKiBsaW1pdCkgeyBtX3N0YWNrTGltaXQgPSBsaW1pdDsgfQorCiAgICAgICAgIGJvb2wgaXNT
YWZlVG9SZWN1cnNlKHNpemVfdCBuZWVkZWRTdGFja0luQnl0ZXMgPSAwKSBjb25zdAogICAgICAg
ICB7CiAgICAgICAgICAgICBBU1NFUlQod3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkuaXNHcm93aW5n
RG93bndhcmQoKSk7CkBAIC0zODcsMTAgKzM5NiwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgICAgIHJldHVybiBjdXJyID49IGxpbWl0ICYmIHN0YXRpY19jYXN0PHNpemVfdD4oY3VyciAt
IGxpbWl0KSA+PSBuZWVkZWRTdGFja0luQnl0ZXM7CiAgICAgICAgIH0KIAorICAgICAgICB2b2lk
KiBsYXN0U3RhY2tUb3AoKSB7IHJldHVybiBtX2xhc3RTdGFja1RvcDsgfQorICAgICAgICB2b2lk
IHNldExhc3RTdGFja1RvcCh2b2lkKiBsYXN0U3RhY2tUb3ApIHsgbV9sYXN0U3RhY2tUb3AgPSBs
YXN0U3RhY2tUb3A7IH0KKwogICAgICAgICBjb25zdCBDbGFzc0luZm8qIGNvbnN0IGpzQXJyYXlD
bGFzc0luZm87CiAgICAgICAgIGNvbnN0IENsYXNzSW5mbyogY29uc3QganNGaW5hbE9iamVjdENs
YXNzSW5mbzsKIAotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIGV4Y2VwdGlvbkxvY2F0aW9uOwog
ICAgICAgICBKU1ZhbHVlIGhvc3RDYWxsUmV0dXJuVmFsdWU7CiAgICAgICAgIEV4ZWNTdGF0ZSog
bmV3Q2FsbEZyYW1lUmV0dXJuVmFsdWU7CiAgICAgICAgIEV4ZWNTdGF0ZSogY2FsbEZyYW1lRm9y
VGhyb3c7CkBAIC00MTMsNyArNDI0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAg
ICAgLy8gbWF4KHNjcmF0Y2ggYnVmZmVyIHNpemUpICogNC4KICAgICAgICAgICAgICAgICBzaXpl
T2ZMYXN0U2NyYXRjaEJ1ZmZlciA9IHNpemUgKiAyOwogCi0gICAgICAgICAgICAgICAgc2NyYXRj
aEJ1ZmZlcnMuYXBwZW5kKFNjcmF0Y2hCdWZmZXI6OmNyZWF0ZShzaXplT2ZMYXN0U2NyYXRjaEJ1
ZmZlcikpOworICAgICAgICAgICAgICAgIFNjcmF0Y2hCdWZmZXIqIG5ld0J1ZmZlciA9IFNjcmF0
Y2hCdWZmZXI6OmNyZWF0ZShzaXplT2ZMYXN0U2NyYXRjaEJ1ZmZlcik7CisgICAgICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQobmV3QnVmZmVyKTsKKyAgICAgICAgICAgICAgICBzY3JhdGNoQnVm
ZmVycy5hcHBlbmQobmV3QnVmZmVyKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgU2Ny
YXRjaEJ1ZmZlciogcmVzdWx0ID0gc2NyYXRjaEJ1ZmZlcnMubGFzdCgpOwpAQCAtNDk1LDYgKzUw
OCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBWTShWTVR5cGUsIEhlYXBUeXBlKTsKICAg
ICAgICAgc3RhdGljIFZNKiYgc2hhcmVkSW5zdGFuY2VJbnRlcm5hbCgpOwogICAgICAgICB2b2lk
IGNyZWF0ZU5hdGl2ZVRodW5rKCk7CisKKyAgICAgICAgdm9pZCBzZXRTdGFja0xpbWl0KHZvaWQq
IGxpbWl0KSB7IG1fc3RhY2tMaW1pdCA9IGxpbWl0OyB9CisKICNpZiBFTkFCTEUoQVNTRU1CTEVS
KQogICAgICAgICBib29sIG1fY2FuVXNlQXNzZW1ibGVyOwogI2VuZGlmCkBAIC01MDcsOCArNTIz
LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCiAgICAgICAg
IGNvbnN0IENsYXNzSW5mbyogbV9pbml0aWFsaXppbmdPYmplY3RDbGFzczsKICNlbmRpZgotCi0j
aWYgVVNFKFNFUEFSQVRFX0NfQU5EX0pTX1NUQUNLKQorICAgICAgICBzaXplX3QgbV9yZXNlcnZl
ZFpvbmVTaXplOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiAgICAgICAgIHN0cnVjdCB7CiAg
ICAgICAgICAgICB2b2lkKiBtX3N0YWNrTGltaXQ7CiAgICAgICAgICAgICB2b2lkKiBtX2pzU3Rh
Y2tMaW1pdDsKQEAgLTUxOSw2ICs1MzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAg
IHZvaWQqIG1fanNTdGFja0xpbWl0OwogICAgICAgICB9OwogI2VuZGlmCisgICAgICAgIHZvaWQq
IG1fbGFzdFN0YWNrVG9wOwogICAgICAgICBKU1ZhbHVlIG1fZXhjZXB0aW9uOwogICAgICAgICBi
b29sIG1faW5EZWZpbmVPd25Qcm9wZXJ0eTsKICAgICAgICAgT3duUHRyPENvZGVDYWNoZT4gbV9j
b2RlQ2FjaGU7CkBAIC01NDQsNiArNTYxLDIyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBy
ZXR1cm4gJm1fdm0tPmhlYXA7CiAgICAgfQogCisjaWYgIUVOQUJMRShMTElOVF9DX0xPT1ApCisg
ICAgZXh0ZXJuICJDIiB2b2lkIHNhbml0aXplU3RhY2tGb3JWTUltcGwoVk0qKTsKKyNlbmRpZgor
CisgICAgdm9pZCBsb2dTYW5pdGl6ZVN0YWNrKFZNKik7CisKKyAgICBBTFdBWVNfSU5MSU5FIHZv
aWQgc2FuaXRpemVTdGFja0ZvclZNKFZNKiB2bSkKKyAgICB7CisgICAgICAgIGxvZ1Nhbml0aXpl
U3RhY2sodm0pOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgICAgIHZtLT5pbnRlcnBy
ZXRlci0+c3RhY2soKS5zYW5pdGl6ZVN0YWNrKCk7CisjZWxzZQorICAgICAgICBzYW5pdGl6ZVN0
YWNrRm9yVk1JbXBsKHZtKTsKKyNlbmRpZgorICAgIH0KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAK
ICNlbmRpZiAvLyBWTV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTUVudHJ5U2NvcGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRy
eVNjb3BlLmNwcAppbmRleCA0Nzc4MmNlM2JjYTNlYWQzZDlhZjRlYjNiNWZhZDViZDViOWFjZmU4
Li44NDkzYzYyYWVhNDAzOGEyNTY3NGFkODRkOTdjMTczMDdiMGQ5YTQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5jcHAKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYgKzI3LDcgQEAK
ICNpbmNsdWRlICJWTUVudHJ5U2NvcGUuaCIKIAogI2luY2x1ZGUgIkRlYnVnZ2VyLmgiCisjaW5j
bHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgiCiAjaW5jbHVkZSA8d3RmL1N0YWNrQm91
bmRzLmg+CiAKQEAgLTM0LDEyICszNSwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogVk1FbnRyeVNj
b3BlOjpWTUVudHJ5U2NvcGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQog
ICAgIDogbV92bSh2bSkKLSAgICAsIG1fc3RhY2sod3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkpCiAg
ICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3QpCi0gICAgLCBtX3ByZXYodm0uZW50cnlT
Y29wZSkKLSAgICAsIG1fcHJldlN0YWNrTGltaXQodm0uc3RhY2tMaW1pdCgpKQogICAgICwgbV9y
ZWNvbXBpbGF0aW9uTmVlZGVkKGZhbHNlKQogeworICAgIEFTU0VSVCh3dGZUaHJlYWREYXRhKCku
c3RhY2soKS5pc0dyb3dpbmdEb3dud2FyZCgpKTsKICAgICBpZiAoIXZtLmVudHJ5U2NvcGUpIHsK
ICNpZiBFTkFCTEUoQVNTRU1CTEVSKQogICAgICAgICBpZiAoRXhlY3V0YWJsZUFsbG9jYXRvcjo6
dW5kZXJNZW1vcnlQcmVzc3VyZSgpKQpAQCAtNTEsMTcgKzUwLDI0IEBAIFZNRW50cnlTY29wZTo6
Vk1FbnRyeVNjb3BlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICAg
ICAgLy8gb2JzZXJ2ZSB0aW1lIHhvbmUgY2hhbmdlcy4KICAgICAgICAgdm0ucmVzZXREYXRlQ2Fj
aGUoKTsKICAgICB9Ci0gICAgLy8gQ2xlYXIgdGhlIGV4Y2VwdGlvbiBzdGFjayBiZXR3ZWVuIGVu
dHJpZXMKLSAgICB2bS5jbGVhckV4Y2VwdGlvblN0YWNrKCk7CiAKLSAgICB2b2lkKiBsaW1pdCA9
IG1fc3RhY2sucmVjdXJzaW9uTGltaXQocmVxdWlyZWRDYXBhY2l0eSgpKTsKLSAgICB2bS5zZXRT
dGFja0xpbWl0KGxpbWl0KTsKKyAgICBpZiAoIXZtLnN0YWNrUG9pbnRlckF0Vk1FbnRyeSkgewor
ICAgICAgICB2bS5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSB0aGlzOworICAgICAgICBtX3NhdmVk
UmVzZXJ2ZWRab25lU2l6ZSA9IHZtLnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6
ZShPcHRpb25zOjpyZXNlcnZlZFpvbmVTaXplKCkpOworICAgIH0KKworICAgIC8vIENsZWFyIHRo
ZSBjYXB0dXJlZCBleGNlcHRpb24gc3RhY2sgYmV0d2VlbiBlbnRyaWVzCisgICAgdm0uY2xlYXJF
eGNlcHRpb25TdGFjaygpOwogfQogCiBWTUVudHJ5U2NvcGU6On5WTUVudHJ5U2NvcGUoKQogewot
ICAgIG1fdm0uZW50cnlTY29wZSA9IG1fcHJldjsKLSAgICBtX3ZtLnNldFN0YWNrTGltaXQobV9w
cmV2U3RhY2tMaW1pdCk7CisgICAgaWYgKG1fdm0uZW50cnlTY29wZSA9PSB0aGlzKQorICAgICAg
ICBtX3ZtLmVudHJ5U2NvcGUgPSBudWxscHRyOworICAgIGlmIChtX3ZtLnN0YWNrUG9pbnRlckF0
Vk1FbnRyeSA9PSB0aGlzKSB7CisgICAgICAgIG1fdm0uc3RhY2tQb2ludGVyQXRWTUVudHJ5ID0g
bnVsbHB0cjsKKyAgICAgICAgbV92bS51cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNp
emUobV9zYXZlZFJlc2VydmVkWm9uZVNpemUpOworICAgIH0KIAogICAgIGlmIChtX3JlY29tcGls
YXRpb25OZWVkZWQpIHsKICAgICAgICAgaWYgKG1fdm0uZW50cnlTY29wZSkKQEAgLTczLDIzICs3
OSw0IEBAIFZNRW50cnlTY29wZTo6flZNRW50cnlTY29wZSgpCiAgICAgfQogfQogCi1zaXplX3Qg
Vk1FbnRyeVNjb3BlOjpyZXF1aXJlZENhcGFjaXR5KCkgY29uc3QKLXsKLSAgICBJbnRlcnByZXRl
ciogaW50ZXJwcmV0ZXIgPSBtX3ZtLmludGVycHJldGVyOwotCi0gICAgLy8gV2UgcmVxdWlyZSBh
IHNtYWxsZXIgc3RhY2sgYnVkZ2V0IGZvciB0aGUgZXJyb3Igc3RhY2suIFRoaXMgaXMgdG8gYWxs
b3cKLSAgICAvLyBzb21lIG1pbmltYWwgSlMgZXhlY3V0aW9uIHRvIHByb2NlZWQgYW5kIGRvIHRo
ZSB3b3JrIG9mIHRocm93aW5nIGEgc3RhY2sKLSAgICAvLyBvdmVyZmxvdyBlcnJvciBpZiBuZWVk
ZWQuIEluIGNvbnRyYXN0LCBhcmJpdHJhcnkgSlMgY29kZSB3aWxsIHJlcXVpcmUgdGhlCi0gICAg
Ly8gbW9yZSBnZW5lcm91cyBzdGFjayBidWRnZXQgaW4gb3JkZXIgdG8gcHJvY2VlZC4KLSAgICAv
LwotICAgIC8vIFRoZXNlIHNpemVzIHdlcmUgZGVyaXZlZCBmcm9tIHRoZSBzdGFjayB1c2FnZSBv
ZiBhIG51bWJlciBvZiBzaXRlcyB3aGVuCi0gICAgLy8gbGF5b3V0IG9jY3VycyB3aGVuIHdlJ3Zl
IGFscmVhZHkgY29uc3VtZWQgbW9zdCBvZiB0aGUgQyBzdGFjay4KLSAgICBjb25zdCBzaXplX3Qg
cmVxdWlyZWRTdGFjayA9IDEyOCAqIEtCOwotICAgIGNvbnN0IHNpemVfdCBlcnJvck1vZGVSZXF1
aXJlZFN0YWNrID0gNjQgKiBLQjsKLQotICAgIHNpemVfdCByZXF1aXJlZENhcGFjaXR5ID0gaW50
ZXJwcmV0ZXItPmlzSW5FcnJvckhhbmRsaW5nTW9kZSgpID8gZXJyb3JNb2RlUmVxdWlyZWRTdGFj
ayA6IHJlcXVpcmVkU3RhY2s7Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9zdGFjay5zaXplKCkgPj0g
cmVxdWlyZWRDYXBhY2l0eSk7Ci0gICAgcmV0dXJuIHJlcXVpcmVkQ2FwYWNpdHk7Ci19Ci0KIH0g
Ly8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk1FbnRyeVNjb3BlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5
U2NvcGUuaAppbmRleCBkNWJhODIzZDA0YzIwODdhMGIyODBhODZlZjA1NDYwN2RmNmI2NjFhLi45
YTljY2JmZTQ1YjBiZjhmNWM2ZjVmYjliOTgwYjZjMmIwMGIyN2JjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDUsMTYgKzQ1LDEwIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFJlY29tcGlsYXRpb25OZWVkZWQoYm9vbCByZWNvbXBpbGVOZWVkZWQp
IHsgbV9yZWNvbXBpbGF0aW9uTmVlZGVkID0gcmVjb21waWxlTmVlZGVkOyB9CiAKIHByaXZhdGU6
Ci0gICAgc2l6ZV90IHJlcXVpcmVkQ2FwYWNpdHkoKSBjb25zdDsKLQogICAgIFZNJiBtX3ZtOwog
ICAgIFN0YWNrU3RhdHM6OkNoZWNrUG9pbnQgbV9zdGFja0NoZWNrUG9pbnQ7Ci0gICAgU3RhY2tC
b3VuZHMgbV9zdGFjazsKICAgICBKU0dsb2JhbE9iamVjdCogbV9nbG9iYWxPYmplY3Q7Ci0KLSAg
ICAvLyBtX3ByZXYgYW5kIG1fcHJldlN0YWNrTGltaXQgbWF5IGJlbG9uZyB0byBhIGRpZmZlcmVu
dCB0aHJlYWQncyBzdGFjay4KLSAgICBWTUVudHJ5U2NvcGUqIG1fcHJldjsKLSAgICB2b2lkKiBt
X3ByZXZTdGFja0xpbWl0OworICAgIHNpemVfdCBtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZTsKICAg
ICBib29sIG1fcmVjb21waWxhdGlvbk5lZWRlZDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5
LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtY29uc3RhbnQtb3Zl
cmZsb3ctcmVjb3ZlcnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjRiYjJjYmUzY2E3Y2Q2ZjIyYzEzZjBkNWZj
MDZiN2NlZTBhNDFkYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvYWRkLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCkBAIC0wLDAgKzEs
MTUgQEAKK2Z1bmN0aW9uIGZvbyhhKSB7CisgICAgcmV0dXJuIGEuZiArIDIwMDAwMDAwMDA7Cit9
CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsK
KyAgICB2YXIgcmVzdWx0ID0gZm9vKHtmOjF9KTsKKyAgICBpZiAocmVzdWx0ICE9IDIwMDAwMDAw
MDEpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwor
dmFyIHJlc3VsdCA9IGZvbyh7ZjoyMDAwMDAwMDAwfSk7CitpZiAocmVzdWx0ICE9IDQwMDAwMDAw
MDApCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtaW50NTItY29uc3RhbnQt
b3ZlcmZsb3ctcmVjb3ZlcnkuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2FkZC1pbnQ1Mi1jb25zdGFudC1vdmVyZmxvdy1yZWNvdmVyeS5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTQ4
ZDM0ZmMxOTBjNTk4NjIwMTRkZTYyNDBlNDhiYTZjZGY2NjFmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtaW50NTItY29uc3RhbnQtb3Zl
cmZsb3ctcmVjb3ZlcnkuanMKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gZm9vKGEpIHsKKyAg
ICByZXR1cm4gYSAqIDIwOTcxNDQgKyAxMDczNzQ1OTIwOworfQorCitub0lubGluZShmb28pOwor
Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZv
bygxMDczNzM2MzgzKTsKKyAgICBpZiAocmVzdWx0ICE9IDIyNTE3ODA4ODY5MzYwNzIpCisgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3Vs
dCA9IGZvbygxMDczNzQ1OTE5KTsKK2lmIChyZXN1bHQgIT0gMjI1MTgwMDg4NTMwMTI1NikKKyAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1pbnQ1Mi1sYXJnZS1jb25zdGFudC1v
dmVyZmxvdy1yZWNvdmVyeS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
YWRkLWludDUyLWxhcmdlLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM2NGJjM2ZlNTI5ZWZkYzU5MjIyZDJlMDgzM2RmZmJiMzY5MWNhNWQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1pbnQ1Mi1sYXJnZS1j
b25zdGFudC1vdmVyZmxvdy1yZWNvdmVyeS5qcwpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiBm
b28oYSkgeworICAgIHJldHVybiBhICogMjA5NzE0NCArIDEwMDAwMDAwMDAwOworfQorCitub0lu
bGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFy
IHJlc3VsdCA9IGZvbygxMDczNzQxMTUxKTsKKyAgICBpZiAocmVzdWx0ICE9IDIyNTE3OTk4MTIz
NzI3NDQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30K
KwordmFyIHJlc3VsdCA9IGZvbygxMDczNzQxMTUyKTsKK2lmIChyZXN1bHQgIT0gMjI1MTc5OTgx
NDQ2OTg4OCkKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1vdmVyZmxvdy1y
ZWNvdmVyeS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLW92ZXJm
bG93LXJlY292ZXJ5LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlMTcxOGM1YzJiZTBlZGNkZGE2OTk4MGViYjMy
ZmEzMjgzZTQyZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2FkZC1vdmVyZmxvdy1yZWNvdmVyeS5qcwpAQCAtMCwwICsxLDE1IEBACitmdW5j
dGlvbiBmb28oYSwgYikgeworICAgIHJldHVybiBhLmYgKyBiLmY7Cit9CisKK25vSW5saW5lKGZv
byk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0
ID0gZm9vKHtmOjF9LCB7ZjoyfSk7CisgICAgaWYgKHJlc3VsdCAhPSAzKQorICAgICAgICB0aHJv
dyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28o
e2Y6MjAwMDAwMDAwMH0sIHtmOjIwMDAwMDAwMDB9KTsKK2lmIChyZXN1bHQgIT0gNDAwMDAwMDAw
MCkKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1zbWFsbC1jb25zdGFudC1v
dmVyZmxvdy1yZWNvdmVyeS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
YWRkLXNtYWxsLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0ZDlm
MDRmNjhkZTg4ZDhkY2JjYjQ0ZGFkMTlmNTlhZDEyODQ2MzAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1zbWFsbC1jb25zdGFudC1vdmVy
Zmxvdy1yZWNvdmVyeS5qcwpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiBmb28oYSkgeworICAg
IHJldHVybiBhLmYgKyAxMDAwOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyh7ZjoxfSk7CisgICAg
aWYgKHJlc3VsdCAhPSAxMDAxKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIg
KyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28oe2Y6MjE0NzQ4MzE0OH0pOworaWYgKHJl
c3VsdCAhPSAyMTQ3NDg0MTQ4KQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJy
YXktcHVzaC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJyYXktcHVz
aC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wNTYwOTg3YWJlZTE3ZjEzYjMwNTFjOTliNDI0NWJkYTJlNTliMzAy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9h
cnJheS1wdXNoLmpzCkBAIC0wLDAgKzEsMTggQEAKK2Z1bmN0aW9uIGZvbygpIHsKKyAgICB2YXIg
YXJyYXkgPSBbXTsKKyAgICB2YXIgcmVzdWx0ID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCA0MjsgKytpKQorICAgICAgICByZXN1bHQucHVzaChhcnJheS5wdXNoKDcgLSBpKSk7CisgICAg
cmV0dXJuIFthcnJheSwgcmVzdWx0XTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oKTsKKyAgICBp
ZiAocmVzdWx0WzBdLnRvU3RyaW5nKCkgIT0gIjcsNiw1LDQsMywyLDEsMCwtMSwtMiwtMywtNCwt
NSwtNiwtNywtOCwtOSwtMTAsLTExLC0xMiwtMTMsLTE0LC0xNSwtMTYsLTE3LC0xOCwtMTksLTIw
LC0yMSwtMjIsLTIzLC0yNCwtMjUsLTI2LC0yNywtMjgsLTI5LC0zMCwtMzEsLTMyLC0zMywtMzQi
KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBhcnJheTogIiArIHJlc3VsdFswXTsKKyAgICBp
ZiAocmVzdWx0WzFdLnRvU3RyaW5nKCkgIT0gIjEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEz
LDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDI5LDMwLDMxLDMy
LDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyIikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBi
YWQgYXJyYXk6ICIgKyByZXN1bHRbMV07Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvZW1wdHktZnVuY3Rpb24uanMgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2VtcHR5LWZ1bmN0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxMmU1MTA1
ZWEyMzg1NTdhY2E5NmI3ZWU0ZDRlYjg4YjBkNTU4OGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2VtcHR5LWZ1bmN0aW9uLmpzCkBAIC0wLDAg
KzEsMTAgQEAKK2Z1bmN0aW9uIGZvbygpIHsgfQorCitub0lubGluZShmb28pOworCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbygpOworICAg
IGlmIChyZXN1bHQgIT09IHZvaWQgMCkKKyAgICAgICAgdGhyb3cgIllvdSBicm9rZSBKU0Mgc28g
aGFyZCB0aGF0IGV2ZW4gdGhlIGVtcHR5IGZ1bmN0aW9uIGRvZXNuJ3Qgd29yazogIiArIHJlc3Vs
dDsKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9l
eGl0LWFmdGVyLWludDMyLXRvLWRvdWJsZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvZXhpdC1hZnRlci1pbnQzMi10by1kb3VibGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTgwYzVh
OWI3MmE4ZGIzYzAwY2U4MDRjNDVjOGZiYzk1MDZhOTk3NgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1pbnQzMi10by1kb3Vi
bGUuanMKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gZm9vKHgsIG8pIHsKKyAgICByZXR1cm4g
by5mICsgeDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oNDIuNSwge2Y6NX0pOworICAgIGlmIChy
ZXN1bHQgIT0gNDcuNSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVz
dWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9vKCI0MiIsIHtmOjV9KTsKK2lmIChyZXN1bHQgIT0g
IjU0MiIpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDUy
LXRvLWRvdWJsZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1h
ZnRlci1pbnQ1Mi10by1kb3VibGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDZiYWIzYjFkYWMxNWY2OGQyM2E0
NzIyOWZiYmI3MWE2YzZmYTk4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1pbnQ1Mi10by1kb3VibGUuanMKQEAgLTAsMCAr
MSwxNiBAQAorZnVuY3Rpb24gZm9vKGEsIGIsIGMpIHsKKyAgICByZXR1cm4gYS5mICsgYi5mICsg
Yy5mOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsg
KytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyh7ZjoyMDAwMDAwMDAwfSwge2Y6MjAwMDAwMDAw
MH0sIHtmOjAuNX0pOworICAgIGlmIChyZXN1bHQgIT0gNDAwMDAwMDAwMC41KQorICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBm
b28oe2Y6MjAwMDAwMDAwMH0sIHtmOjIwMDAwMDAwMDB9LCB7ZjoiNDIifSk7CitpZiAocmVzdWx0
ICE9ICI0MDAwMDAwMDAwNDIiKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9l
eGl0LWFmdGVyLWludDUyLXRvLXZhbHVlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9leGl0LWFmdGVyLWludDUyLXRvLXZhbHVlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyZWQxZjg1
MzUwMjUwNjE4MDY2ZmJhYjI5Mzk5NGE0MjJmZTkwNTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItaW50NTItdG8tdmFsdWUu
anMKQEAgLTAsMCArMSwyNSBAQAorZnVuY3Rpb24gZm9vKGEsIGIsIGMpIHsKKyAgICBjLmYuZiA9
IGEuZiArIGIuZjsKK30KKworbm9JbmxpbmUoZm9vKTsKKwordmFyIGNvdW50ZXIgPSAwOworZnVu
Y3Rpb24gbWFrZVdlaXJkT2JqZWN0KCkgeworICAgIHZhciByZXN1bHQgPSB7fTsKKyAgICByZXN1
bHRbImJsYWgiICsgKGNvdW50ZXIrKyldID0gNDI7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciBvID0gbWFrZVdlaXJk
T2JqZWN0KCk7CisgICAgZm9vKHtmOjIwMDAwMDAwMDB9LCB7ZjoyMDAwMDAwMDAwfSwge2Y6b30p
OworICAgIGlmIChvLmYgIT0gNDAwMDAwMDAwMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgdGhpbmd5OworTnVtYmVyLnByb3RvdHlwZS5f
X2RlZmluZVNldHRlcl9fKCJmIiwgZnVuY3Rpb24odmFsdWUpIHsgdGhpbmd5ID0gdmFsdWU7IH0p
OworZm9vKHtmOjIwMDAwMDAwMDB9LCB7ZjoyMDAwMDAwMDAwfSwge2Y6NDJ9KTsKK2lmICh0aGlu
Z3kgIT0gNDAwMDAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyB0aGlu
Z3k7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQt
YWZ0ZXItbGx2bS1mb2xkcy1sYXJnZS1pbnQtY29uc3RhbnQuanMgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItbGx2bS1mb2xkcy1sYXJnZS1pbnQtY29uc3Rh
bnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDhkMzVmZTViZDMwYTA0OWQ2NjkxMDgzZDNhOWNhMWJjMzE0MDFh
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
ZXhpdC1hZnRlci1sbHZtLWZvbGRzLWxhcmdlLWludC1jb25zdGFudC5qcwpAQCAtMCwwICsxLDE4
IEBACitmdW5jdGlvbiBmb28obywgaW8pIHsKKyAgICB2YXIgaSA9IGlvLmY7CisgICAgaWYgKGkg
IT0gOTIxNjApCisgICAgICAgIG8uZyA9IDQyOworICAgIHJldHVybiBvLmYuZiArIGk7Cit9CisK
K25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAg
ICB2YXIgcmVzdWx0ID0gZm9vKHtmOntmOjQyfX0sIHtmOjkyMTYwfSk7CisgICAgaWYgKHJlc3Vs
dCAhPSA5MjIwMikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0
OworfQorCit2YXIgcmVzdWx0ID0gZm9vKHtmOntnOjIwLCBmOjIxfX0sIHtmOjkyMTYwfSk7Citp
ZiAocmVzdWx0ICE9IDkyMTgxKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhp
dC1mcm9tLWZ0bC13aXRoLWFyaXR5LWNoZWNrLWZhaWwuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2V4aXQtZnJvbS1mdGwtd2l0aC1hcml0eS1jaGVjay1mYWlsLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZiZTNiMjEwYTAxZTAwNTZlN2E2ZDRlY2MxMTlmZWY3Y2VkZDI5ZWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtZnJv
bS1mdGwtd2l0aC1hcml0eS1jaGVjay1mYWlsLmpzCkBAIC0wLDAgKzEsMTggQEAKK2Z1bmN0aW9u
IGZvbyhvLCBhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpLCBqKSB7CisgICAgcmV0dXJuIG8uZjsK
K30KKworZnVuY3Rpb24gYmFyKG8pIHsKKyAgICByZXR1cm4gZm9vKG8pOworfQorCitub0lubGlu
ZShmb28pOworbm9JbmxpbmUoYmFyKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsr
aSkKKyAgICBiYXIoe2Y6NDJ9KTsKKwordmFyIHJlc3VsdCA9IGJhcih7ZzoyNCwgZjo0M30pOwor
aWYgKHJlc3VsdCAhPSA0MykKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRs
LWFyaXRoY29zLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtYXJp
dGhjb3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhhMWY1ZmMzMDJmMjJiYzZjNjdiYjJkZmFmMjg1NGRhNmY0
YTM0NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvZnRsLWFyaXRoY29zLmpzCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7Cisg
ICAgcmV0dXJuIE1hdGguY29zKHgpOworfQorCitub0lubGluZShmb28pOworCit2YXIgaiA9IDA7
Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgIGogPSBmb28oaSk7CisKK2lm
ICgtMC41MDk4NzUzNzI0MTc5MDA5ICE9IGopeworICAgIHRocm93ICJFcnJvciIKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRoc2luLmpz
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtYXJpdGhzaW4uanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjU1OWY0ZDQ5MDUxOWQyNzcxOWQ1YjQzOTMwMThhOTQ4NDVhOTUyNgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRo
c2luLmpzCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIE1h
dGguc2luKHgpOworfQorCitub0lubGluZShmb28pOworCit2YXIgaiA9IDA7Citmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgIGogPSBmb28oaSk7CisKK2lmICgwLjg2MDI0ODI4
MDc4OTc0MiAhPSBqKXsKKyAgICB0aHJvdyAiRXJyb3IiCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1hcml0aHNxcnQuanMgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1hcml0aHNxcnQuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGJl
MDFjZTRiNzBlMjQwNTgwMDU0N2ZlZTZiMDFkNzE2MjcyN2NjMgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRoc3FydC5qcwpAQCAt
MCwwICsxLDEzIEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBNYXRoLnNxcnQoeCk7
Cit9CisKK25vSW5saW5lKGZvbyk7CisKK3ZhciBqID0gMDsKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDAwOyArK2kpCisgICAgaiA9IGZvbyhpKTsKKworaWYgKCAzMTYuMjI2MTg0ODc0MDU1ICE9
IGopeworICAgIHRocm93ICJFcnJvciIKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dGJ5aWQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2Z0bC1wdXRieWlkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkZmQ5ZTRiZTY5ZjY1Yjk1
MjU2ZTBkMDM2MWMyOTY0NGQ1Mzk1NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1wdXRieWlkLmpzCkBAIC0wLDAgKzEsMTMgQEAKKwor
T2JqZWN0LnByb3RvdHlwZS5fX2RlZmluZVNldHRlcl9fKCJyIiwgZnVuY3Rpb24odmFsKXsgbyA9
IHZhbCB9KQorCitmdW5jdGlvbiBmb28oeCl7CisgICAgdmFyIG4gPSB7IH0KKyAgICBuLnIgPSB4
OworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytp
KQorICAgIGZvbyhpKTsKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9mdGwtcHV0YnlpZGRpcmVjdC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvZnRsLXB1dGJ5aWRkaXJlY3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjUwYWQwZGNiMjZkNDFh
ZjdhYmQ5ZTY3MWY3NDNhOTNiOGRmYjNmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dGJ5aWRkaXJlY3QuanMKQEAgLTAsMCArMSwx
MiBAQAorZnVuY3Rpb24gZm9vKHgpeworICAgIHJldHVybiB7IDAgOiAxICwgYSA6IHggfQorfQor
Citub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAg
IG8gPSBmb28oaSk7CisKK2lmIChvLmEgIT0gOTk5OTkgfHwgb1swXSAhPSAxKQorICAgIHRocm93
ICJFcnJvciIKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9nZXQtYnktaWQtdGhyb3ctZnJvbS1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZyb20t
Z2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWIzMDFkNzY5ZGQ3
NmZhZWQwNWFlZjYzZDc4YzA5OGJkYzE1YTY5ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZyb20tZ2V0dGVyLXRo
cm91Z2gtb3B0aW1pemVkLWNvZGUuanMKQEAgLTAsMCArMSwzNyBAQAorZnVuY3Rpb24gZm9vKG8p
IHsKKyAgICByZXR1cm4gby5mICsgMTsKK30KKworbm9JbmxpbmUoZm9vKTsKKwordmFyIHNob3Vs
ZFRocm93ID0gZmFsc2U7CisKK2Z1bmN0aW9uIG1ha2VXaXRoR2V0dGVyKCkgeworICAgIHZhciBv
ID0ge307CisgICAgby5fX2RlZmluZUdldHRlcl9fKCJmIiwgZnVuY3Rpb24oKSB7CisgICAgICAg
IGlmIChzaG91bGRUaHJvdykKKyAgICAgICAgICAgIHRocm93ICJoZWxsbyI7CisgICAgICAgIHJl
dHVybiA0MjsKKyAgICB9KTsKKyAgICByZXR1cm4gbzsKK30KKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oe2Y6MjN9KTsKKyAgICBpZiAo
cmVzdWx0ICE9IDI0KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7CisgICAgcmVzdWx0ID0gZm9vKG1ha2VXaXRoR2V0dGVyKCkpOworICAgIGlmIChyZXN1bHQg
IT0gNDMpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30K
KwordmFyIGRpZFRocm93OwordHJ5IHsKKyAgICBzaG91bGRUaHJvdyA9IHRydWU7CisgICAgZm9v
KG1ha2VXaXRoR2V0dGVyKCkpOworfSBjYXRjaCAoZSkgeworICAgIGRpZFRocm93ID0gZTsKK30K
KworaWYgKGRpZFRocm93ICE9ICJoZWxsbyIpCisgICAgdGhyb3cgIkVycm9yOiBkaWRuJ3QgdGhy
b3cgb3IgdGhyZXcgd3JvbmcgZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLXVu
ZXhwZWN0ZWQtZ2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUtdGhhdC1kb2VzLW5vdC1leGl0
LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktaWQtdGhyb3ct
ZnJvbS11bmV4cGVjdGVkLWdldHRlci10aHJvdWdoLW9wdGltaXplZC1jb2RlLXRoYXQtZG9lcy1u
b3QtZXhpdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTRkMGNlYjZlY2IwYWI5N2ZmMDk3MWQwNGFjZTYxOTNi
M2UwNGI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9nZXQtYnktaWQtdGhyb3ctZnJvbS11bmV4cGVjdGVkLWdldHRlci10aHJvdWdoLW9wdGlt
aXplZC1jb2RlLXRoYXQtZG9lcy1ub3QtZXhpdC5qcwpAQCAtMCwwICsxLDM1IEBACitmdW5jdGlv
biBmb28obykgeworICAgIHJldHVybiBvLmY7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0
aW9uIG1ha2VXaXRoR2V0dGVyKCkgeworICAgIHZhciBvID0ge307CisgICAgby5fX2RlZmluZUdl
dHRlcl9fKCJmIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIHRocm93ICJoZWxsbyI7CisgICAgfSk7
CisgICAgcmV0dXJuIG87Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsK
KyAgICB2YXIgcmVzdWx0ID0gZm9vKHtmOjIzfSk7CisgICAgaWYgKHJlc3VsdCAhPSAyMykKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9
IGZvbyh7ZzoxMiwgZjoxM30pOworICAgIGlmIChyZXN1bHQgIT0gMTMpCisgICAgICAgIHRocm93
ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBmb28oe2c6MTIs
IGg6MTMsIGY6MTR9KTsKKyAgICBpZiAocmVzdWx0ICE9IDE0KQorICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciBkaWRUaHJvdzsKK3RyeSB7Cisg
ICAgZm9vKG1ha2VXaXRoR2V0dGVyKCkpOworfSBjYXRjaCAoZSkgeworICAgIGRpZFRocm93ID0g
ZTsKK30KKworaWYgKGRpZFRocm93ICE9ICJoZWxsbyIpCisgICAgdGhyb3cgIkVycm9yOiBkaWRu
J3QgdGhyb3cgb3IgdGhyZXcgd3JvbmcgZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1m
cm9tLXVuZXhwZWN0ZWQtZ2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLXVuZXhwZWN0
ZWQtZ2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWVmNzcyNmE0
ODk4ZTU3NjQxYzJhZTNjMWUwYjAxNTdiZmZmMWFkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZyb20tdW5leHBl
Y3RlZC1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwpAQCAtMCwwICsxLDM1IEBACitm
dW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBvLmYgKyAxOworfQorCitub0lubGluZShmb28p
OworCitmdW5jdGlvbiBtYWtlV2l0aEdldHRlcigpIHsKKyAgICB2YXIgbyA9IHt9OworICAgIG8u
X19kZWZpbmVHZXR0ZXJfXygiZiIsIGZ1bmN0aW9uKCkgeworICAgICAgICB0aHJvdyAiaGVsbG8i
OworICAgIH0pOworICAgIHJldHVybiBvOworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
MDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyh7ZjoyM30pOworICAgIGlmIChyZXN1bHQg
IT0gMjQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAg
ICByZXN1bHQgPSBmb28oe2c6MTIsIGY6MTN9KTsKKyAgICBpZiAocmVzdWx0ICE9IDE0KQorICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0g
Zm9vKHtnOjEyLCBoOjEzLCBmOjE0fSk7CisgICAgaWYgKHJlc3VsdCAhPSAxNSkKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgZGlkVGhyb3c7
Cit0cnkgeworICAgIGZvbyhtYWtlV2l0aEdldHRlcigpKTsKK30gY2F0Y2ggKGUpIHsKKyAgICBk
aWRUaHJvdyA9IGU7Cit9CisKK2lmIChkaWRUaHJvdyAhPSAiaGVsbG8iKQorICAgIHRocm93ICJF
cnJvcjogZGlkbid0IHRocm93IG9yIHRocmV3IHdyb25nIGV4Y2VwdGlvbjogIiArIGRpZFRocm93
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pYy10aHJv
dy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9pYy10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2
NDA0MjY0YTQwMzY5MGZiNTk5ZjE2MDliMDliZTliNTNiMzQwNWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ljLXRocm93LXRocm91Z2gtb3B0
aW1pemVkLWNvZGUuanMKQEAgLTAsMCArMSwyOSBAQAorZnVuY3Rpb24gZm9vKG8pIHsKKyAgICBy
ZXR1cm4gby5mICsgMTsKK30KKworTnVtYmVyLnByb3RvdHlwZS5mID0gNDI7CisKK25vSW5saW5l
KGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVz
dWx0ID0gZm9vKDIzKTsKKyAgICBpZiAocmVzdWx0ICE9IDQzKQorICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0gZm9vKHtmOjI1fSk7Cisg
ICAgaWYgKHJlc3VsdCAhPSAyNikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAi
ICsgcmVzdWx0OworICAgIHJlc3VsdCA9IGZvbyh7ZzoxMiwgZjoxM30pOworICAgIGlmIChyZXN1
bHQgIT0gMTQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsK
K30KKwordmFyIGRpZFRocm93OwordHJ5IHsKKyAgICBmb28odm9pZCAwKTsKK30gY2F0Y2ggKGUp
IHsKKyAgICBkaWRUaHJvdyA9IGU7Cit9CisKK2lmICghZGlkVGhyb3cgfHwgZGlkVGhyb3cudG9T
dHJpbmcoKS5pbmRleE9mKCJUeXBlRXJyb3I6IikgIT0gMCkKKyAgICB0aHJvdyAiRXJyb3I6IGRp
ZG4ndCB0aHJvdyBvciB0aHJldyB3cm9uZyBleGNlcHRpb246ICIgKyBkaWRUaHJvdzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW5saW5lLWNhbGwtdmFy
YXJncy1hbmQtY2FsbC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW5s
aW5lLWNhbGwtdmFyYXJncy1hbmQtY2FsbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDAxZDI1NjAwZGU0NTVk
OTIyMzY2NjJmMTZmZjY2MjAwYzI0ZTQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2FsbC12YXJhcmdzLWFuZC1jYWxsLmpzCkBA
IC0wLDAgKzEsMjUgQEAKK2Z1bmN0aW9uIGZvbyhhLCBiKSB7CisgICAgcmV0dXJuIGJhcihhLCBi
KTsKK30KKworZnVuY3Rpb24gYmFyKGEsIGIpIHsKKyAgICB2YXIgeCA9IGJhei5hcHBseShudWxs
LCBhcmd1bWVudHMpOworICAgIHZhciB5ID0gYmF6KGEsIGIpCisgICAgcmV0dXJuIHggKyB5ICog
MzsKK30KKworZnVuY3Rpb24gYmF6KGEsIGIpIHsKKyAgICByZXR1cm4gYSArIGIgKiAyOworfQor
Citub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7Cisg
ICAgdmFyIHJlc3VsdCA9IGZvbyg3LCAxMSk7CisgICAgaWYgKHJlc3VsdCAhPSAxMTYpCisgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3Vs
dCA9IGZvbyg1LCAyMTQ3NDgzNjQ2KTsKK2lmIChyZXN1bHQgIT0gMTcxNzk4NjkxODgpCisgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2FsbC12YXJhcmdzLmpzIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2FsbC12YXJhcmdzLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmFlN2E1NDUwOWE3MjkyMjk1MDljOWNmYjExZGFhMDFkYjM3NDFhNmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2lubGluZS1j
YWxsLXZhcmFyZ3MuanMKQEAgLTAsMCArMSwyMyBAQAorZnVuY3Rpb24gZm9vKGEsIGIpIHsKKyAg
ICByZXR1cm4gYmFyKGEsIGIpOworfQorCitmdW5jdGlvbiBiYXIoYSwgYikgeworICAgIHJldHVy
biBiYXouYXBwbHkobnVsbCwgYXJndW1lbnRzKTsKK30KKworZnVuY3Rpb24gYmF6KGEsIGIpIHsK
KyAgICByZXR1cm4gYSArIGIgKiAyOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyg3LCAxMSk7Cisg
ICAgaWYgKHJlc3VsdCAhPSAyOSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAi
ICsgcmVzdWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9vKDUsIDIxNDc0ODM2NDYpOworaWYgKHJl
c3VsdCAhPSA0Mjk0OTY3Mjk3KQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW5s
aW5lLWNsb3N1cmUtY2FsbC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
aW5saW5lLWNsb3N1cmUtY2FsbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDlhNjE0ZGZhNGVjOGYzNDZhMjAw
MTJhNjBiZGU4OThkYmFhYjBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2xvc3VyZS1jYWxsLmpzCkBAIC0wLDAgKzEsMTYgQEAK
K2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uKHkpIHsgcmV0dXJuIHggKyB5
OyB9Cit9CisKK2Z1bmN0aW9uIGJhcihhLCBiKSB7CisgICAgcmV0dXJuIGZvbyhhKShiKTsKK30K
Kworbm9JbmxpbmUoZm9vKTsKK25vSW5saW5lKGJhcik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gYmFyKGksIGkgKyAxKTsKKyAgICBpZiAo
cmVzdWx0ICE9IGkgKiAyICsgMSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0IGZv
ciAiICsgaSArICI6ICIgKyByZXN1bHQ7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtaW4tYW5kLW91dC1vZi1ib3VuZHMu
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwt
aW4tYW5kLW91dC1vZi1ib3VuZHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTcwZjg1ZWZhNzdhZTY0NjM2NjVh
ZDM1NjVhNzk4ZjhhZmRlZGE3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZhbC1pbi1hbmQtb3V0LW9mLWJvdW5kcy5q
cwpAQCAtMCwwICsxLDE4IEBACitmdW5jdGlvbiBmb28oYSkgeworICAgIGFbNDJdID0gOTUwMTA7
Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3QobGVuZ3RoLCBleHBlY3RlZCkg
eworICAgIHZhciBhID0gbmV3IEludDE2QXJyYXkobGVuZ3RoKTsKKyAgICBmb28oYSk7CisgICAg
dmFyIHJlc3VsdCA9IGFbNDJdOworICAgIGlmIChyZXN1bHQgIT0gZXhwZWN0ZWQpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHZhbHVlIGF0IGFbNDJdOiAiICsgcmVzdWx0OworfQorCitmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdGVzdCgxMCwgdm9pZCAwKTsKKyAg
ICB0ZXN0KDEwMCwgMjk0NzQpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLWluLWJvdW5kcy10aGVuLWV4aXQtb3V0LW9m
LWJvdW5kcy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYtcHV0
LWJ5LXZhbC1pbi1ib3VuZHMtdGhlbi1leGl0LW91dC1vZi1ib3VuZHMuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGVkNzQ2MmE0MzIzMjdiZDIzOGQzOWU5M2IzOGY4NTM0NjkxNTQ2MwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZhbC1p
bi1ib3VuZHMtdGhlbi1leGl0LW91dC1vZi1ib3VuZHMuanMKQEAgLTAsMCArMSwxOSBAQAorZnVu
Y3Rpb24gZm9vKGEpIHsKKyAgICBhWzQyXSA9IDk1MDEwOworfQorCitub0lubGluZShmb28pOwor
CitmdW5jdGlvbiB0ZXN0KGxlbmd0aCwgZXhwZWN0ZWQpIHsKKyAgICB2YXIgYSA9IG5ldyBJbnQx
NkFycmF5KGxlbmd0aCk7CisgICAgZm9vKGEpOworICAgIHZhciByZXN1bHQgPSBhWzQyXTsKKyAg
ICBpZiAocmVzdWx0ICE9IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCB2YWx1
ZSBhdCBhWzQyXTogIiArIHJlc3VsdDsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7
ICsraSkKKyAgICB0ZXN0KDEwMCwgMjk0NzQpOworCit0ZXN0KDEwLCB2b2lkIDApOworCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12
YWwtb3V0LW9mLWJvdW5kcy1ib3VuZHMtdGhlbi1kby1pbi1ib3VuZHMuanMgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtb3V0LW9mLWJvdW5kcy1i
b3VuZHMtdGhlbi1kby1pbi1ib3VuZHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JiOTY0Y2EwNzM2ZDNhNjA0
MjYxNTM3MDVkNWNlYTMxZDE3ODE3NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZhbC1vdXQtb2YtYm91bmRzLWJvdW5k
cy10aGVuLWRvLWluLWJvdW5kcy5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBmb28oYSkg
eworICAgIGFbNDJdID0gOTUwMTA7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRl
c3QobGVuZ3RoLCBleHBlY3RlZCkgeworICAgIHZhciBhID0gbmV3IEludDE2QXJyYXkobGVuZ3Ro
KTsKKyAgICBmb28oYSk7CisgICAgdmFyIHJlc3VsdCA9IGFbNDJdOworICAgIGlmIChyZXN1bHQg
IT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHZhbHVlIGF0IGFbNDJdOiAi
ICsgcmVzdWx0OworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgIHRl
c3QoMTAsIHZvaWQgMCk7CisKK3Rlc3QoMTAwLCAyOTQ3NCk7CisKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW52YWxpZGF0aW9uLXBvaW50LmpzIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnZhbGlkYXRpb24tcG9pbnQuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmY4YjU1YzdjNjNiZWZiZjNjNjllOGE5ZDhjMjY1ZjVlMjA0YTdiYgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW52YWxpZGF0
aW9uLXBvaW50LmpzCkBAIC0wLDAgKzEsMjQgQEAKK2Z1bmN0aW9uIGZvbyhvLCBwKSB7CisgICAg
cG9zc2libHlEb0JhZFRoaW5ncyhwKTsKKyAgICByZXR1cm4gby5mKCk7Cit9Citub0lubGluZShm
b28pOworCitmdW5jdGlvbiBUaGluZ3koKSB7IH0KK1RoaW5neS5wcm90b3R5cGUuZiA9IGZ1bmN0
aW9uKCkgeyByZXR1cm4gNDI7IH0KKworZnVuY3Rpb24gcG9zc2libHlEb0JhZFRoaW5ncyhwKSB7
CisgICAgaWYgKHApCisgICAgICAgIFRoaW5neS5wcm90b3R5cGUuZiA9IGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gMjQ7IH0KK30KK25vSW5saW5lKHBvc3NpYmx5RG9CYWRUaGluZ3MpOworCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhuZXcgVGhp
bmd5KCksIGZhbHNlKTsKKyAgICBpZiAocmVzdWx0ICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28obmV3IFRo
aW5neSgpLCB0cnVlKTsKK2lmIChyZXN1bHQgIT0gMjQpCisgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0OiAiICsgcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9tYWtlLXJvcGUtMi5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvbWFrZS1yb3BlLTIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjJhMjNhYjU1ODMwYmVlMTViZGQ5NDRj
YzJkMWU4ODYyNTZjMWNhMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvbWFrZS1yb3BlLTIuanMKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24g
Zm9vKHgpIHsKKyAgICByZXR1cm4gImhlbGxvIiArIHg7Cit9CisKK25vSW5saW5lKGZvbyk7CisK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9v
KCIgd29ybGQiKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAg
ICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQgdHlw
ZTogIiArIHJlc3VsdDsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAiaGVsbG8gd29ybGQiKQor
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWFrZS1yb3BlLTMuanMg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0zLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjNhODUyY2MzNzFhYmU0ODM4NmEyMDBjMGM1NjdjMzVjMmFjYWVjOGQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0z
LmpzCkBAIC0wLDAgKzEsMTYgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuICJoZWxs
byIgKyB4ICsgIiEhIjsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oIiB3b3JsZCIpOworICAgIGlm
ICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7
CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCB0eXBlOiAiICsgcmVzdWx0OworICAg
IH0KKyAgICBpZiAocmVzdWx0ICE9ICJoZWxsbyB3b3JsZCEhIikKKyAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1hcnJheS1zdG9yYWdlLWFycmF5LXdpdGgtc2l6
ZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWFycmF5LXN0b3Jh
Z2UtYXJyYXktd2l0aC1zaXplLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkNjFiZTk1NmFjNTVhYWYxMjBhOWQ4
NGFlYzRiNmVhOTJlYTNjMmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL25ldy1hcnJheS1zdG9yYWdlLWFycmF5LXdpdGgtc2l6ZS5qcwpAQCAt
MCwwICsxLDIzIEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBuZXcgQXJyYXkoeCk7
Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkgeworICAgIHZhciBy
ZXN1bHQgPSBmb28oc2l6ZSk7CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0gc2l6ZSkKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHZhciBzYXdUaGlu
Z3MgPSBmYWxzZTsKKyAgICBmb3IgKHZhciBzIGluIHJlc3VsdCkKKyAgICAgICAgc2F3VGhpbmdz
ID0gdHJ1ZTsKKyAgICBpZiAoc2F3VGhpbmdzKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGFycmF5
IGlzIGluIGJhZCBzdGF0ZTogIiArIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAiNDIuNSI7Cisg
ICAgaWYgKHJlc3VsdFswXSAhPSAiNDIuNSIpCisgICAgICAgIHRocm93ICJFcnJvcjogYXJyYXkg
aXMgaW4gd2llcmQgc3RhdGU6ICIgKyByZXN1bHQ7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDAwOyArK2kpIHsKKyAgICB0ZXN0KDEwMDAwMDApOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctYXJyYXktd2l0aC1zaXplLXdpdGgtYmFk
LXRpbWUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1hcnJheS13
aXRoLXNpemUtd2l0aC1iYWQtdGltZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTY3NzQxNTZmMjljYjkxYmRi
NTk5MTNhZjQ1OTEyMTRiNTQ3NmQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctYXJyYXktd2l0aC1zaXplLXdpdGgtYmFkLXRpbWUuanMK
QEAgLTAsMCArMSwzNCBAQAorZnVuY3Rpb24gZm9vKHgpIHsKKyAgICByZXR1cm4gbmV3IEFycmF5
KHgpOworfQorCitub0lubGluZShmb28pOworCit2YXIgcG9rZTsKK0FycmF5LnByb3RvdHlwZS5f
X2RlZmluZVNldHRlcl9fKCIxIiwgZnVuY3Rpb24oKSB7CisgICAgcG9rZSA9ICJwb2tlIjsKK30p
OworCitmdW5jdGlvbiB0ZXN0KHNpemUpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHNpemUpOwor
ICAgIGlmIChyZXN1bHQubGVuZ3RoICE9IHNpemUpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICB2YXIgc2F3VGhpbmdzID0gZmFsc2U7CisgICAgZm9y
ICh2YXIgcyBpbiByZXN1bHQpIHsKKyAgICAgICAgaWYgKHMgIT0gIjEiKQorICAgICAgICAgICAg
c2F3VGhpbmdzID0gdHJ1ZTsKKyAgICB9CisgICAgaWYgKHNhd1RoaW5ncykKKyAgICAgICAgdGhy
b3cgIkVycm9yOiBhcnJheSBpcyBpbiBiYWQgc3RhdGU6ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gIjQyLjUiOworICAgIGlmIChyZXN1bHRbMF0gIT0gIjQyLjUiKQorICAgICAgICB0aHJv
dyAiRXJyb3I6IGFycmF5IGlzIGluIHdpZXJkIHN0YXRlOiAiICsgcmVzdWx0OworICAgIHBva2Ug
PSBudWxsOworICAgIHJlc3VsdFsxXSA9IDQyOworICAgIGlmIChwb2tlICE9ICJwb2tlIikKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBzZXR0ZXIgbm90IGNhbGxlZC4iOworfQorCitmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdGVzdCg0Mik7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1jb250aWd1b3VzLWFycmF5LXdp
dGgtc2l6ZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWNvbnRp
Z3VvdXMtYXJyYXktd2l0aC1zaXplLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwOGE2ZjY3ZTgxOTVhNWUyNTQx
MjY5ODdjOTk0NWJiZTZjNWQ5YzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL25ldy1jb250aWd1b3VzLWFycmF5LXdpdGgtc2l6ZS5qcwpAQCAt
MCwwICsxLDMxIEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBuZXcgQXJyYXkoeCk7
Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkgeworICAgIHZhciBy
ZXN1bHQgPSBmb28oc2l6ZSk7CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0gc2l6ZSkgeworICAg
ICAgICBwcmludCgiR290IGEgd2VpcmQgbGVuZ3RoOiAiICsgcmVzdWx0Lmxlbmd0aCk7CisgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICB9CisgICAgdmFy
IHNhd1RoaW5ncyA9IGZhbHNlOworICAgIGZvciAodmFyIHMgaW4gcmVzdWx0KQorICAgICAgICBz
YXdUaGluZ3MgPSB0cnVlOworICAgIGlmIChzYXdUaGluZ3MpIHsKKyAgICAgICAgcHJpbnQoIlNh
dyB0aGluZ3MhIik7CisgICAgICAgIHRocm93ICJFcnJvcjogYXJyYXkgaXMgaW4gYmFkIHN0YXRl
OiAiICsgcmVzdWx0OworICAgIH0KKyAgICByZXN1bHRbMF0gPSAiNDIuNSI7CisgICAgaWYgKHJl
c3VsdFswXSAhPSAiNDIuNSIpIHsKKyAgICAgICAgcHJpbnQoIkRpZG4ndCBzdG9yZSB3aGF0IEkg
dGhvdWdodCBJIHN0b3JlZC4iKTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiBhcnJheSBpcyBpbiB3
aWVyZCBzdGF0ZTogIiArIHJlc3VsdDsKKyAgICB9Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDAwOyArK2kpIHsKKyAgICB0ZXN0KDApOworICAgIHRlc3QoMSk7CisgICAgdGVzdCg0Mik7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1k
b3VibGUtYXJyYXktd2l0aC1zaXplLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9uZXctZG91YmxlLWFycmF5LXdpdGgtc2l6ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NGYyOGJhNjQz
ODljZmMwYTVlMDA3ZGI2NWVhYmY5YjBlZTc2NDhhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctZG91YmxlLWFycmF5LXdpdGgtc2l6ZS5q
cwpAQCAtMCwwICsxLDI1IEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBuZXcgQXJy
YXkoeCk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkgeworICAg
IHZhciByZXN1bHQgPSBmb28oc2l6ZSk7CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0gc2l6ZSkK
KyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHZhciBz
YXdUaGluZ3MgPSBmYWxzZTsKKyAgICBmb3IgKHZhciBzIGluIHJlc3VsdCkKKyAgICAgICAgc2F3
VGhpbmdzID0gdHJ1ZTsKKyAgICBpZiAoc2F3VGhpbmdzKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGFycmF5IGlzIGluIGJhZCBzdGF0ZTogIiArIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSA0Mi41
OworICAgIGlmIChyZXN1bHRbMF0gIT0gNDIuNSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBhcnJh
eSBpcyBpbiB3aWVyZCBzdGF0ZTogIiArIHJlc3VsdDsKK30KKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDA7ICsraSkgeworICAgIHRlc3QoMCk7CisgICAgdGVzdCgxKTsKKyAgICB0ZXN0KDQy
KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3
LWludDMyLWFycmF5LXdpdGgtc2l6ZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvbmV3LWludDMyLWFycmF5LXdpdGgtc2l6ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjhjNWRiNzIw
N2VkYTQ0M2M3ZjIyYjJiMjMxNjVjMTFlZjRmMjQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctaW50MzItYXJyYXktd2l0aC1zaXplLmpz
CkBAIC0wLDAgKzEsMjUgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIG5ldyBBcnJh
eSh4KTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gdGVzdChzaXplKSB7CisgICAg
dmFyIHJlc3VsdCA9IGZvbyhzaXplKTsKKyAgICBpZiAocmVzdWx0Lmxlbmd0aCAhPSBzaXplKQor
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgdmFyIHNh
d1RoaW5ncyA9IGZhbHNlOworICAgIGZvciAodmFyIHMgaW4gcmVzdWx0KQorICAgICAgICBzYXdU
aGluZ3MgPSB0cnVlOworICAgIGlmIChzYXdUaGluZ3MpCisgICAgICAgIHRocm93ICJFcnJvcjog
YXJyYXkgaXMgaW4gYmFkIHN0YXRlOiAiICsgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDQyOwor
ICAgIGlmIChyZXN1bHRbMF0gIT0gNDIpCisgICAgICAgIHRocm93ICJFcnJvcjogYXJyYXkgaXMg
aW4gd2llcmQgc3RhdGU6ICIgKyByZXN1bHQ7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpIHsKKyAgICB0ZXN0KDApOworICAgIHRlc3QoMSk7CisgICAgdGVzdCg0Mik7Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy11bmRl
Y2lkZWQtYXJyYXktd2l0aC1zaXplLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9uZXctdW5kZWNpZGVkLWFycmF5LXdpdGgtc2l6ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTQyYzdl
MjExZGVlMzE0MDcyNmRmYzdkOWUxMGZhNDFmODAyZjlkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctdW5kZWNpZGVkLWFycmF5LXdpdGgt
c2l6ZS5qcwpAQCAtMCwwICsxLDIyIEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBu
ZXcgQXJyYXkoeCk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkg
eworICAgIHZhciByZXN1bHQgPSBmb28oc2l6ZSk7CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0g
c2l6ZSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAg
IHZhciBzYXdUaGluZ3MgPSBmYWxzZTsKKyAgICBmb3IgKHZhciBzIGluIHJlc3VsdCkKKyAgICAg
ICAgc2F3VGhpbmdzID0gdHJ1ZTsKKyAgICBpZiAoc2F3VGhpbmdzKQorICAgICAgICB0aHJvdyAi
RXJyb3I6IGFycmF5IGlzIGluIGJhZCBzdGF0ZTogIiArIHJlc3VsdDsKK30KKworZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHRlc3QoMCk7CisgICAgdGVzdCgxKTsKKyAg
ICB0ZXN0KDQyKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvcHV0LWJ5LWlkLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3B1dC1ieS1pZC10aHJvdy10aHJvdWdoLW9wdGlt
aXplZC1jb2RlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3NTQxYmE5NjMyZTRlZjg5NjlmZTg2NDUyMTEyNjc3
Yzc5ZDE2NzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3B1dC1ieS1pZC10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCkBAIC0wLDAg
KzEsMzMgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIG8uZiA9
IDQyOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsg
KytpKSB7CisgICAgdmFyIG8gPSB7fTsKKyAgICBmb28obyk7CisgICAgaWYgKG8uZiAhPSA0MikK
KyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgby5mOworICAgIG8gPSB7Zjoy
M307CisgICAgZm9vKG8pOworICAgIGlmIChvLmYgIT0gNDIpCisgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdDogIiArIG8uZjsKKyAgICBvID0ge2c6MTJ9OworICAgIGZvbyhvKTsKKyAg
ICBpZiAoby5mICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyBv
LmY7Cit9CisKK3ZhciBkaWRUaHJvdzsKK3RyeSB7CisgICAgdmFyIG8gPSB7fTsKKyAgICBPYmpl
Y3QuZnJlZXplKG8pOworICAgIGZvbyhvKTsKK30gY2F0Y2ggKGUpIHsKKyAgICBkaWRUaHJvdyA9
IGU7Cit9CisKK2lmICghZGlkVGhyb3cgfHwgZGlkVGhyb3cudG9TdHJpbmcoKS5pbmRleE9mKCJU
eXBlRXJyb3I6IikgIT0gMCkKKyAgICB0aHJvdyAiRXJyb3I6IGRpZG4ndCB0aHJvdyBvciB0aHJl
dyB3cm9uZyBleGNlcHRpb246ICIgKyBkaWRUaHJvdzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVjdXJzZS1pbmZpbml0ZWx5LW9uLWdldHRlci5qcyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVjdXJzZS1pbmZpbml0ZWx5LW9u
LWdldHRlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTBiZThiNDJmNzA4MTBmZTExYThjMzk3NmI4NzQ3YzFk
YzhiNDdhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9yZWN1cnNlLWluZmluaXRlbHktb24tZ2V0dGVyLmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICB2YXIgbyA9IHt9OworICAgIG8uX19k
ZWZpbmVHZXR0ZXJfXygiZiIsIGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gby5mOworICAg
IH0pOworICAgIHZhciBkaWRUaHJvdzsKKyAgICB2YXIgcmVzdWx0OworICAgIHJlc3VsdCA9ICJu
b3Qgc2V0IjsKKyAgICB0cnkgeworICAgICAgICByZXN1bHQgPSBvLmY7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICBkaWRUaHJvdyA9IGU7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gIm5v
dCBzZXQiKQorICAgICAgICB0aHJvdyAiRGlkIHNldCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAg
aWYgKCFkaWRUaHJvdyB8fCBkaWRUaHJvdy50b1N0cmluZygpLmluZGV4T2YoIlJhbmdlRXJyb3Ii
KSAhPSAwKQorICAgICAgICB0aHJvdyAiQmFkIGV4Y2VwdGlvbjogIiArIGRpZFRocm93OworfQor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3JlcGVhdGVk
LWFyaXR5LWNoZWNrLWZhaWwuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3JlcGVhdGVkLWFyaXR5LWNoZWNrLWZhaWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODM4YzQ4ZjczMDJhYzA5
YTAwODQzYWIxM2IyYWFlMjgwYTVkYTY1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVwZWF0ZWQtYXJpdHktY2hlY2stZmFpbC5qcwpAQCAt
MCwwICsxLDggQEAKK2Z1bmN0aW9uIGJhcihhLGIsYyxkLGUsZixnLGgsaSxqLGspIHsKK30KKwor
bm9JbmxpbmUoYmFyKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwMDsgKytpKQorICAg
IGJhcigpOworCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3J1bnRpbWUtdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvcnVudGltZS10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2Rl
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFkOWRmMWRkZmJjNTI3ZjcwN2FjNzJmYjBkNTM2MDhkZDZiNmYxOTgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3J1
bnRpbWUtdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwpAQCAtMCwwICsxLDMzIEBACitm
dW5jdGlvbiBmb28oYSwgcykgeworICAgIHJldHVybiBhW3NdICsgMTsKK30KKwordmFyIHNob3Vs
ZFRocm93ID0gZmFsc2U7CitmdW5jdGlvbiBiYXIoKSB7CisgICAgaWYgKHNob3VsZFRocm93KQor
ICAgICAgICB0aHJvdyAiaGVsbG8iOworICAgIHJldHVybiA0MjsKK30KKwordmFyIGEgPSB7fTsK
K2EuX19kZWZpbmVHZXR0ZXJfXygiYmFyIiwgYmFyKTsKKworbm9JbmxpbmUoZm9vKTsKK25vSW5s
aW5lKGJhcik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIg
cmVzdWx0ID0gZm9vKGEsICJiYXIiKTsKKyAgICBpZiAocmVzdWx0ICE9IDQzKQorICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciBkaWRUaHJvdzsK
K3RyeSB7CisgICAgc2hvdWxkVGhyb3cgPSB0cnVlOworICAgIGZvbyhhLCAiYmFyIik7Cit9IGNh
dGNoIChlKSB7CisgICAgZGlkVGhyb3cgPSBlOworfQorCitpZiAoZGlkVGhyb3cgIT0gImhlbGxv
IikKKyAgICB0aHJvdyAiRXJyb3I6IGRpZG4ndCB0aHJvdyBvciB0aHJldyB3cm9uZyBleGNlcHRp
b246ICIgKyBkaWRUaHJvdzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3Mvc2ltcGxlLXBvbHl2YXJpYW50LWNhbGwtaW5saW5pbmctZXhhbXBsZS5qcyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2ltcGxlLXBvbHl2YXJpYW50LWNhbGwt
aW5saW5pbmctZXhhbXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzNiMjc2Y2FjYjhlNGE3MzRhYjIzYjQy
Yjg2MmY1NjVkOGY0ZTAzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtY2FsbC1pbmxpbmluZy1leGFtcGxlLmpz
CkBAIC0wLDAgKzEsMzIgQEAKK2Z1bmN0aW9uIGZvbyhiYXopIHsKKyAgICByZXR1cm4gYmFyKGJh
eik7Cit9CisKK2Z1bmN0aW9uIGZ1enooYmF6KSB7CisgICAgcmV0dXJuIGJhcihiYXopOworfQor
CitmdW5jdGlvbiBiYXIoYmF6KSB7CisgICAgcmV0dXJuIGJheigpOworfQorCitmdW5jdGlvbiBi
YXoxKCkgeworICAgIHJldHVybiA0MjsKK30KKworZnVuY3Rpb24gYmF6MigpIHsKKyAgICByZXR1
cm4gMjQ7Cit9CisKK25vSW5saW5lKGZvbyk7Citub0lubGluZShmdXp6KTsKKworZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oYmF6MSk7Cisg
ICAgaWYgKHJlc3VsdCAhPSA0MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAi
ICsgcmVzdWx0OworICAgIHZhciByZXN1bHQgPSBmdXp6KGJhejIpOworICAgIGlmIChyZXN1bHQg
IT0gMjQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30K
KwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW1wbGUt
cG9seXZhcmlhbnQtZ2V0LWJ5LWlkLWlubGluaW5nLWV4YW1wbGUuanMgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1nZXQtYnktaWQtaW5saW5p
bmctZXhhbXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTRhYjA5YzczMDg0MGZlZjFiN2QwZTU4ZGE4Mjk2
ODE0MmM1ZDhmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtZ2V0LWJ5LWlkLWlubGluaW5nLWV4YW1wbGUuanMK
QEAgLTAsMCArMSwyNCBAQAorZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gYmFyKG8pOwor
fQorCitmdW5jdGlvbiBmdXp6KG8pIHsKKyAgICByZXR1cm4gYmFyKG8pOworfQorCitmdW5jdGlv
biBiYXIobykgeworICAgIHJldHVybiBvLmY7Cit9CisKK25vSW5saW5lKGZvbyk7Citub0lubGlu
ZShmdXp6KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciBy
ZXN1bHQgPSBmb28oe2Y6NDJ9KTsKKyAgICBpZiAocmVzdWx0ICE9IDQyKQorICAgICAgICB0aHJv
dyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgdmFyIHJlc3VsdCA9IGZ1enoo
e2c6MjMsIGY6MjR9KTsKKyAgICBpZiAocmVzdWx0ICE9IDI0KQorICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2ltcGxlLXBvbHl2YXJpYW50LXB1dC1ieS1pZC1pbmxp
bmluZy1leGFtcGxlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW1w
bGUtcG9seXZhcmlhbnQtcHV0LWJ5LWlkLWlubGluaW5nLWV4YW1wbGUuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGViNjI3MmY3ZWU4ZmY0OTc5Nzg5MzkyNWQ5MmM5N2FkN2I1NzQxNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2ltcGxlLXBvbHl2YXJpYW50
LXB1dC1ieS1pZC1pbmxpbmluZy1leGFtcGxlLmpzCkBAIC0wLDAgKzEsMjYgQEAKK2Z1bmN0aW9u
IGZvbyhvKSB7CisgICAgYmFyKG8pOworfQorCitmdW5jdGlvbiBmdXp6KG8pIHsKKyAgICBiYXIo
byk7Cit9CisKK2Z1bmN0aW9uIGJhcihvKSB7CisgICAgby5mID0gNDI7Cit9CisKK25vSW5saW5l
KGZvbyk7Citub0lubGluZShmdXp6KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsr
aSkgeworICAgIHZhciBvID0ge307CisgICAgZm9vKG8pOworICAgIGlmIChvLmYgIT0gNDIpCisg
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIG8uZjsKKyAgICBvID0ge2Y6MjN9
OworICAgIHZhciByZXN1bHQgPSBmdXp6KG8pOworICAgIGlmIChvLmYgIT0gNDIpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIG8uZjsKK30KKwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90aHJvdy10aHJvdWdoLW9wdGltaXplZC1j
b2RlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90aHJvdy10aHJvdWdo
LW9wdGltaXplZC1jb2RlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmZWIyNDBlZDM3OGZhMWY4MWNhM2UwMGI1
MTdkODIwZDU1OTcxOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL3Rocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMKQEAgLTAsMCArMSwz
MCBAQAorZnVuY3Rpb24gZm9vKGYpIHsKKyAgICByZXR1cm4gZigxKSArIDE7Cit9CisKK3ZhciBz
aG91bGRUaHJvdyA9IGZhbHNlOworZnVuY3Rpb24gYmFyKHgpIHsKKyAgICBpZiAoc2hvdWxkVGhy
b3cpCisgICAgICAgIHRocm93ICJoZWxsbyI7CisgICAgcmV0dXJuIDQyIC0geDsKK30KKworbm9J
bmxpbmUoZm9vKTsKK25vSW5saW5lKGJhcik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAw
OyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKGJhcik7CisgICAgaWYgKHJlc3VsdCAhPSA0
MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2
YXIgZGlkVGhyb3c7Cit0cnkgeworICAgIHNob3VsZFRocm93ID0gdHJ1ZTsKKyAgICBmb28oYmFy
KTsKK30gY2F0Y2ggKGUpIHsKKyAgICBkaWRUaHJvdyA9IGU7Cit9CisKK2lmIChkaWRUaHJvdyAh
PSAiaGVsbG8iKQorICAgIHRocm93ICJFcnJvcjogZGlkbid0IHRocm93IG9yIHRocmV3IHdyb25n
IGV4Y2VwdGlvbjogIiArIGRpZFRocm93OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tb2JqZWN0LW9yLXN0cmluZy5qcyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLW9iamVjdC1vci1zdHJp
bmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDM2MzhjMTRjZjFlZDY3MTU0MzE3YWY4YWRhYTBhMGU4ZmVjNzE2
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
dG8tc3RyaW5nLW9uLW9iamVjdC1vci1zdHJpbmcuanMKQEAgLTAsMCArMSwyNyBAQAorZnVuY3Rp
b24gRm9vKCkgeyB9CisKK0Zvby5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHsgcmV0
dXJuICJoZWxsbyIgfTsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gU3RyaW5nKG8p
OworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytp
KSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhuZXcgRm9vKCkpOworICAgIGlmICh0eXBlb2YgcmVz
dWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRo
cm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3Vs
dCAhPSAiaGVsbG8iKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7CisgICAgCisgICAgcmVzdWx0ID0gZm9vKCJ3b3JsZCIpOworICAgIGlmICh0eXBlb2YgcmVz
dWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRo
cm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3Vs
dCAhPSAid29ybGQiKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Rv
LXN0cmluZy1vbi1vYmplY3QuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3RvLXN0cmluZy1vbi1vYmplY3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBhODlhNGM0MzM1ZDdiM2UxZGUz
ZDRlZDNjYjg2NWI5YTBlMDU3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLW9iamVjdC5qcwpAQCAtMCwwICsxLDE5IEBA
CitmdW5jdGlvbiBGb28oKSB7IH0KKworRm9vLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9u
KCkgeyByZXR1cm4gImhlbGxvIiB9OworCitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBT
dHJpbmcobyk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKG5ldyBGb28oKSk7CisgICAgaWYgKHR5
cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBp
ZiAocmVzdWx0ICE9ICJoZWxsbyIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDog
IiArIHJlc3VsdDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vYmplY3QuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJpbmctb2JqZWN0LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmU0NDM1ZTVhYWMxYjRlNDMzYzAxOTNmYjM3MzFmNzc4ZGUxODIyNTIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJp
bmctb2JqZWN0LmpzCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0
dXJuIFN0cmluZyhvKTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28obmV3IFN0cmluZygiaGVsbG8i
KSk7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3Jp
YmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmci
OworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJoZWxsbyIpCisgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vci1zdHJpbmctb2JqZWN0
LXRoZW4tb2JqZWN0LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1z
dHJpbmctb24tc3RyaW5nLW9yLXN0cmluZy1vYmplY3QtdGhlbi1vYmplY3QuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOGViMDQwYjc4YTFmNmMyNDdiNzhmYWY4NWY1YWE1N2QzM2Y5MDE5YgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0
cmluZy1vci1zdHJpbmctb2JqZWN0LXRoZW4tb2JqZWN0LmpzCkBAIC0wLDAgKzEsMzUgQEAKK2Z1
bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJuIFN0cmluZyhvKTsKK30KKworbm9JbmxpbmUoZm9v
KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQg
PSBmb28obmV3IFN0cmluZygiaGVsbG8iKSk7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0
cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9y
OiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJoZWxs
byIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICAK
KyAgICByZXN1bHQgPSBmb28oIndvcmxkIik7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0
cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9y
OiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJ3b3Js
ZCIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwor
ZnVuY3Rpb24gRm9vKCkgeyB9CisKK0Zvby5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigp
IHsgcmV0dXJuICJoZWxsbyIgfTsKKwordmFyIHJlc3VsdCA9IGZvbyhuZXcgRm9vKCkpOworaWYg
KHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICBkZXNjcmliZShyZXN1bHQpOworICAg
IHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKK30KK2lmIChyZXN1bHQgIT0g
ImhlbGxvIikKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1z
dHJpbmctb3Itc3RyaW5nLW9iamVjdC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vci1zdHJpbmctb2JqZWN0LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVhNWRlOTZmNDdkYzEwNTc1MmVkMDIzNDM0MTRhOWRiNzg3ODI2NGIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJp
bmctb3Itc3RyaW5nLW9iamVjdC5qcwpAQCAtMCwwICsxLDIzIEBACitmdW5jdGlvbiBmb28obykg
eworICAgIHJldHVybiBTdHJpbmcobyk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKG5ldyBTdHJp
bmcoImhlbGxvIikpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAg
ICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0
IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAiaGVsbG8iKQorICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgCisgICAgcmVzdWx0ID0g
Zm9vKCJ3b3JsZCIpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAg
ICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0
IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAid29ybGQiKQorICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi12YWx1ZS1vci1zdHJp
bmcuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi12
YWx1ZS1vci1zdHJpbmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGNlZDZjMDgzYTRjOGNhMzg1OWU3ZjdhZmY3
MDFjYThjZTRkZDI2YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXZhbHVlLW9yLXN0cmluZy5qcwpAQCAtMCwwICsxLDIz
IEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBTdHJpbmcobyk7Cit9CisKK25vSW5s
aW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIg
cmVzdWx0ID0gZm9vKDQyKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgewor
ICAgICAgICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBp
c24ndCBhIHN0cmluZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gIjQyIikKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIAorICAgIHJlc3VsdCA9
IGZvbygid29ybGQiKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAg
ICAgICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24n
dCBhIHN0cmluZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gIndvcmxkIikKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tdmFsdWUuanMgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi12YWx1ZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40MDhlNWJhNGM5ZWQxZTA2ODUwOWJjMzU1ZDBmZmE2ZjVkNGM3NDRjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJp
bmctb24tdmFsdWUuanMKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gZm9vKG8pIHsKKyAgICBy
ZXR1cm4gU3RyaW5nKG8pOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyg0Mik7CisgICAgaWYgKHR5
cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBp
ZiAocmVzdWx0ICE9ICI0MiIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiAr
IHJlc3VsdDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0JhZ1RvSGFzaE1hcC5oIGIv
U291cmNlL1dURi93dGYvQmFnVG9IYXNoTWFwLmgKaW5kZXggYzFiZTdmZjk1MTA3YTNhMWY0NDUz
ZjQ4N2ZlOTMzYmYwMzRhNzZkYy4uNTM5Nzk1ZmRlMWY1NzcxMjY2MjFkNzRjMTNhNmYyZjU2NGE3
NTg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQmFnVG9IYXNoTWFwLmgKKysrIGIvU291
cmNlL1dURi93dGYvQmFnVG9IYXNoTWFwLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDggKzMyLDggQEAKIAogbmFtZXNwYWNlIFdU
RiB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEVsZW1lbnRUeXBlLCB0eXBlbmFtZSBLZXlUeXBlLCB0
eXBlbmFtZSBLZXlHZXR0ZXJGdW5jdG9yPgotdm9pZCB0b0hhc2hNYXAoQmFnPEVsZW1lbnRUeXBl
PiYgYmFnLCBLZXlHZXR0ZXJGdW5jdG9yJiBnZXRLZXksIEhhc2hNYXA8S2V5VHlwZSwgRWxlbWVu
dFR5cGUqPiYgcmVzdWx0KQordGVtcGxhdGU8dHlwZW5hbWUgRWxlbWVudFR5cGUsIHR5cGVuYW1l
IEtleVR5cGUsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleUdldHRlckZ1bmN0b3I+Cit2
b2lkIHRvSGFzaE1hcChCYWc8RWxlbWVudFR5cGU+JiBiYWcsIEtleUdldHRlckZ1bmN0b3ImIGdl
dEtleSwgSGFzaE1hcDxLZXlUeXBlLCBFbGVtZW50VHlwZSosIEhhc2hBcmc+JiByZXN1bHQpCiB7
CiAgICAgZm9yICh0eXBlbmFtZSBCYWc8RWxlbWVudFR5cGU+OjppdGVyYXRvciBpdGVyID0gYmFn
LmJlZ2luKCk7ICEhaXRlcjsgKytpdGVyKSB7CiAgICAgICAgIEVsZW1lbnRUeXBlKiBlbGVtZW50
ID0gKml0ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm0uaAppbmRleCBhYTBhYzU3MzQxNGIzMjhkOWE1OWE3NTkxMzhmYmQ0
MWM0ZmYwYjJlLi43MmNhNjRhZTNkMzc3YTg1OWU3MzIxOGM4NWRhZjEwMjQxYjkxNTkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmgKQEAgLTY2MCwxMiArNjYwLDEyIEBACiAjZGVmaW5lIEVOQUJMRV9KSVQgMAogI2Vu
ZGlmCiAKLS8qIFRoZSBKSVQgaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9uIGFsbCB4ODYsIHg4Ni02
NCwgQVJNICYgTUlQUyBwbGF0Zm9ybXMgZXhjZXB0IFdpbjY0LiAqLworLyogVGhlIEpJVCBpcyBl
bmFibGVkIGJ5IGRlZmF1bHQgb24gYWxsIHg4NiwgeDg2LTY0LCBBUk0gJiBNSVBTIHBsYXRmb3Jt
cyBleGNlcHQgV2luZG93cy4gKi8KICNpZiAhZGVmaW5lZChFTkFCTEVfSklUKSBcCiAgICAgJiYg
KENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQVShBUk0pIHx8IENQVShBUk02NCkgfHwgQ1BV
KE1JUFMpKSBcCiAgICAgJiYgKE9TKERBUldJTikgfHwgIUNPTVBJTEVSKEdDQykgfHwgR0NDX1ZF
UlNJT05fQVRfTEVBU1QoNCwgMSwgMCkpIFwKICAgICAmJiAhT1MoV0lOQ0UpIFwKLSAgICAmJiAh
KE9TKFdJTkRPV1MpICYmIENQVShYODZfNjQpKQorICAgICYmICFPUyhXSU5ET1dTKQogI2RlZmlu
ZSBFTkFCTEVfSklUIDEKICNlbmRpZgogCkBAIC04MzUsMTQgKzgzNSw2IEBACiAjZW5kaWYKICNl
bmRpZgogCi0vKiBGSVhNRTogV2UgY3VycmVudGx5IHVuY29uZGl0aW9uYWxseSB1c2Ugc3BlYXJh
dGUgc3RhY2tzLiBXaGVuIHdlIHN3aXRjaCB0byB1c2luZyB0aGUKLSAgIEMgc3RhY2sgZm9yIEpT
IGZyYW1lcywgd2UnbGwgbmVlZCB0byBtYWtlIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uYWwgb24g
RU5BQkxFKExMSU5UX0NMT09QKQotICAgb25seS4KLSovCi0jaWYgRU5BQkxFKExMSU5UX0NMT09Q
KSB8fCAxCi0jZGVmaW5lIFdURl9VU0VfU0VQQVJBVEVfQ19BTkRfSlNfU1RBQ0sgMQotI2VuZGlm
Ci0KIC8qIFBpY2sgd2hpY2ggYWxsb2NhdG9yIHRvIHVzZTsgd2Ugb25seSBuZWVkIGFuIGV4ZWN1
dGFibGUgYWxsb2NhdG9yIGlmIHRoZSBhc3NlbWJsZXIgaXMgY29tcGlsZWQgaW4uCiAgICBPbiB4
ODYtNjQgd2UgdXNlIGEgc2luZ2xlIGZpeGVkIG1tYXAsIG9uIG90aGVyIHBsYXRmb3JtcyB3ZSBt
bWFwIG9uIGRlbWFuZC4gKi8KICNpZiBFTkFCTEUoQVNTRU1CTEVSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvU3RhY2tCb3VuZHMuaCBiL1NvdXJjZS9XVEYvd3RmL1N0YWNrQm91bmRzLmgK
aW5kZXggY2EzOTc0OTZmMDQ5MTVkZDQ5YTk4MTEwZjQzYjIwOTQ4NDQ2MTc4YS4uNzg3NjdjYzI4
NDY2NDQ4ZGM2MDA1OTNhN2I1MjMzNjZlYzY1Yjk2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvU3RhY2tCb3VuZHMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TdGFja0JvdW5kcy5oCkBAIC0y
Nyw2ICsyNyw4IEBACiAjaWZuZGVmIFN0YWNrQm91bmRzX2gKICNkZWZpbmUgU3RhY2tCb3VuZHNf
aAogCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorCiBuYW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgU3Rh
Y2tCb3VuZHMgewpAQCAtNjcsNiArNjksMTcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Y2hhcio+KG1fYm91bmQpIC0gbWluQXZhaWxhYmxlRGVsdGE7CiAgICAgfQogCisg
ICAgdm9pZCogcmVjdXJzaW9uTGltaXQoc2l6ZV90IGhvc3Rab25lU2l6ZSwgdm9pZCogZGVzaXJl
ZExpbWl0KSBjb25zdAorICAgIHsKKyAgICAgICAgY2hlY2tDb25zaXN0ZW5jeSgpOworICAgICAg
ICBpZiAoaXNHcm93aW5nRG93bndhcmQoKSkgeworICAgICAgICAgICAgY2hhciogZW5kT2ZTdGFj
a1dpdGhIb3N0Wm9uZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fYm91bmQpICsgaG9zdFpv
bmVTaXplOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KGRlc2lyZWRMaW1pdCwgcmVpbnRl
cnByZXRfY2FzdDx2b2lkKj4oZW5kT2ZTdGFja1dpdGhIb3N0Wm9uZSkpOworICAgICAgICB9Cisg
ICAgICAgIGNoYXIqIGVuZE9mU3RhY2tXaXRoSG9zdFpvbmUgPSByZWludGVycHJldF9jYXN0PGNo
YXIqPihtX2JvdW5kKSAtIGhvc3Rab25lU2l6ZTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWluKGRl
c2lyZWRMaW1pdCwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oZW5kT2ZTdGFja1dpdGhIb3N0Wm9u
ZSkpOworICAgIH0KKwogICAgIGJvb2wgaXNHcm93aW5nRG93bndhcmQoKSBjb25zdAogICAgIHsK
ICAgICAgICAgQVNTRVJUKG1fb3JpZ2luICYmIG1fYm91bmQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRp
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9Db250ZW50
U2VhcmNoVXRpbGl0aWVzLmgKaW5kZXggOGVlZTEyNTYxYmI3NTdkMjg0MzIzNWUyMmFkNjcxNTVh
MWU5MjhlNS4uMDdjNDdjYWEwZmEwODUxY2M0M2U1ZmIyODFiNjhiMjA0MTEzZTM1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvaW5zcGVjdG9yL0NvbnRlbnRT
ZWFyY2hVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9p
bnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxpdGllcy5oCkBAIC0yLDMgKzIsNyBAQAogI2RlZmlu
ZSBXZWJDb3JlX0ZXRF9Db250ZW50U2VhcmNoVXRpbGl0aWVzX2gKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmg+CiAjZW5kaWYKKyNpZm5kZWYgV2ViQ29y
ZV9GV0RfQ29udGVudFNlYXJjaFV0aWxpdGllc19oCisjZGVmaW5lIFdlYkNvcmVfRldEX0NvbnRl
bnRTZWFyY2hVdGlsaXRpZXNfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnRlbnRTZWFy
Y2hVdGlsaXRpZXMuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvaW5zcGVjdG9yL1NjcmlwdEJyZWFrcG9pbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L0ZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9TY3JpcHRCcmVha3BvaW50LmgKaW5kZXggMTlk
ZTQyNTczYmI5ZDI0YTE5OGI1MGRiZDA5MmI2OWI1ZWE5OThiYy4uMzYyMGE0ZjBiYzIxNjEyMjE0
MWQwYmVkMTBmNjcxYzcwODEzYzA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvaW5zcGVjdG9yL1NjcmlwdEJyZWFrcG9pbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Gb3J3YXJkaW5nSGVhZGVycy9pbnNwZWN0b3IvU2NyaXB0QnJlYWtwb2ludC5oCkBAIC0y
LDMgKzIsNyBAQAogI2RlZmluZSBXZWJDb3JlX0ZXRF9TY3JpcHRCcmVha3BvaW50X2gKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRCcmVha3BvaW50Lmg+CiAjZW5kaWYKKyNpZm5kZWYg
V2ViQ29yZV9GV0RfU2NyaXB0QnJlYWtwb2ludF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX1Njcmlw
dEJyZWFrcG9pbnRfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdEJyZWFrcG9pbnQu
aD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMv
aW5zcGVjdG9yL1NjcmlwdERlYnVnTGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL2luc3BlY3Rvci9TY3JpcHREZWJ1Z0xpc3RlbmVyLmgKaW5kZXggZWM2ZmVhN2Uy
NzAyODljOTJmYTA3NzYyMzFhM2M4Zjc4NWEzMjc1MS4uMTlkZDcwY2ViYmI3NGYxNzdkOTQ1MmE2
MTQxODQxYTE3Mzc0MGNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hl
YWRlcnMvaW5zcGVjdG9yL1NjcmlwdERlYnVnTGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy9pbnNwZWN0b3IvU2NyaXB0RGVidWdMaXN0ZW5lci5oCkBAIC0y
LDMgKzIsNyBAQAogI2RlZmluZSBXZWJDb3JlX0ZXRF9TY3JpcHREZWJ1Z0xpc3RlbmVyX2gKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHREZWJ1Z0xpc3RlbmVyLmg+CiAjZW5kaWYKKyNp
Zm5kZWYgV2ViQ29yZV9GV0RfU2NyaXB0RGVidWdMaXN0ZW5lcl9oCisjZGVmaW5lIFdlYkNvcmVf
RldEX1NjcmlwdERlYnVnTGlzdGVuZXJfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Njcmlw
dERlYnVnTGlzdGVuZXIuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9y
d2FyZGluZ0hlYWRlcnMvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuaCBiL1NvdXJjZS9XZWJD
b3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjZmZDJmZTAxZDFhNWQzMTE4NmE0MmMwNTNmZDMzMjY2Y2ZlNTQyMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvRXJyb3JI
YW5kbGluZ1Njb3BlLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0Vycm9y
SGFuZGxpbmdTY29wZV9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0Vycm9ySGFuZGxpbmdTY29wZV9o
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRXJyb3JIYW5kbGluZ1Njb3BlLmg+CisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3lhcnIvUmVndWxh
ckV4cHJlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3lhcnIvUmVn
dWxhckV4cHJlc3Npb24uaAppbmRleCAwOTlmYTQ2NDZmYTlkNzI1ZWFkOTI0NmM5ZjRmNzhkOWNh
NDdhMjJiLi5iYzI5M2UwNDk2NjZlOTFjNzE4MTJiZDhiNTFkZWQxYjRkOGFkZWZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy95YXJyL1JlZ3VsYXJFeHByZXNz
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMveWFyci9SZWd1bGFy
RXhwcmVzc2lvbi5oCkBAIC0yLDMgKzIsNyBAQAogI2RlZmluZSBXZWJDb3JlX0ZXRF9SZWd1bGFy
RXhwcmVzc2lvbl9oCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVndWxhckV4cHJlc3Npb24u
aD4KICNlbmRpZgorI2lmbmRlZiBXZWJDb3JlX0ZXRF9SZWd1bGFyRXhwcmVzc2lvbl9oCisjZGVm
aW5lIFdlYkNvcmVfRldEX1JlZ3VsYXJFeHByZXNzaW9uX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9SZWd1bGFyRXhwcmVzc2lvbi5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBhMTM4NWI4YThkNjQ4MTAwN2I0NTk0
NzI5ZTdlMmE0OTIzNTMwYjRjLi42YTU3YmNmMjkwYjRhZjJlZGU5ZDY5Mzk0ZmI0MGVlZWFmNDU2
Nzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2oKQEAgLTE4NTAyLDYgKzE4NTAyLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZv
cndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcQ29uc3RydWN0RGF0YS5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxEYXRlSW5zdGFuY2UuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVc
RXJyb3IuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJz
XHJ1bnRpbWVcRXJyb3JIYW5kbGluZ1Njb3BlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEVycm9yUHJvdG90eXBlLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEV4Y2VwdGlv
bkhlbHBlcnMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFk
ZXJzXHJ1bnRpbWVcRXhlY3V0YWJsZS5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDkwMDY3MjFjMjlj
Nzc0NWM1YTc2MTQzZDI3ZTBlNDIxMTEyYmU4MWMuLmJkYjAyODJhOTgyY2UyZDk0NmI1NGM2YWU2
MWRlODEyNDYzNWQ2NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTEyNDkyLDYgKzEyNDkyLDkgQEAKICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcRXJyb3Iu
aCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFk
ZXJzXHJ1bnRpbWVcRXJyb3JIYW5kbGluZ1Njb3BlLmgiPgorICAgICAgPEZpbHRlcj5Gb3J3YXJk
aW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEVycm9yUHJvdG90eXBl
LmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUJpbmRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5n
LmNwcAppbmRleCBhMzJkMzMyYWQyZTlhN2I4ZDE1ZjMwYmU0YTk1Njk5OTljZjk4ZWRhLi41ODIy
MWQwMGU0OTZiN2EwOTdlMDk4MmI0NDM5MWMwM2IyOGY0YzJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRl
IDxpbnRlcnByZXRlci9JbnRlcnByZXRlci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRGF0ZUluc3Rh
bmNlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvRXJy
b3JIYW5kbGluZ1Njb3BlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmg+
CiAjaW5jbHVkZSA8cnVudGltZS9KU0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRy
YXMuaD4KQEAgLTE1NCw3ICsxNTUsNyBAQCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgZXhjZXB0aW9uLCBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcgogICAgIGlm
IChpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24oZXhjZXB0aW9uKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgSW50ZXJwcmV0ZXI6OkVycm9ySGFuZGxpbmdNb2RlIG1vZGUoZXhlYyk7Cisg
ICAgRXJyb3JIYW5kbGluZ1Njb3BlIGVycm9yU2NvcGUoZXhlYy0+dm0oKSk7CiAKICAgICBSZWZQ
dHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnJvbUV4
Y2VwdGlvbihleGVjLCBleGNlcHRpb24sIFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6
ZVRvQ2FwdHVyZSkpOwogICAgIGV4ZWMtPmNsZWFyRXhjZXB0aW9uKCk7CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzZiYmZiYjA1ZGYxNWQzZjE5
Y2ZkMzgyYjU4MTI1NzUxYzNjNDBlMy4uMTg2ODY5OTM5MTliZjk0NDUzNjRjZDg5NDYzZGQ2Yzdl
MTZjN2M1OSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDE0LTAxLTI4ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVu
YmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTWVyZ2UgdGhlIGpzQ1N0YWNrIGJyYW5jaAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NzYzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2Rp
c3BsYXktcHJvZmlsZXItb3V0cHV0OgorICAgICAgICAqIFNjcmlwdHMvcnVuLWpzYy1zdHJlc3Mt
dGVzdHM6CisKIDIwMTQtMDEtMjggIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQgQVBJIHRvIGFsbG93IHNldHRpbmcgdGhlIHBy
b2Nlc3MgbW9kZWwgaW4gV2ViS2l0V2ViQ29udGV4dApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy9kaXNwbGF5LXByb2ZpbGVyLW91dHB1dCBiL1Rvb2xzL1NjcmlwdHMvZGlzcGxheS1wcm9maWxl
ci1vdXRwdXQKaW5kZXggOTZhZjNmNTljZjRmOWM3YTljYjFmYjJlMzg2MjkyMTdjZTQ4YmJiMy4u
OGIyNjIyYTlmZTBiMWM0YWIyZDI5ZjgyYmI3MTBkMjg0ZDRlODYzYSAxMDA3NTUKLS0tIGEvVG9v
bHMvU2NyaXB0cy9kaXNwbGF5LXByb2ZpbGVyLW91dHB1dAorKysgYi9Ub29scy9TY3JpcHRzL2Rp
c3BsYXktcHJvZmlsZXItb3V0cHV0CkBAIC0xLDYgKzEsNiBAQAogIyEvdXNyL2Jpbi9lbnYgcnVi
eQogCi0jIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQzNyw3ICs0
MzcsMTEgQEAgJGNvbXBpbGF0aW9ucyA9ICRqc29uWyJjb21waWxhdGlvbnMiXS5tYXAgewogICAg
IHwgc3ViSnNvbiB8CiAgICAgQ29tcGlsYXRpb24ubmV3KHN1Ykpzb24pCiB9Ci0kZW5naW5lcyA9
IFsiQmFzZWxpbmUiLCAiREZHIl0KKyRlbmdpbmVzID0gWyJCYXNlbGluZSIsICJERkciLCAiRlRM
IiwgIkZUTEZvck9TUkVudHJ5Il0KKworZGVmIGlzT3B0aW1pemluZyhlbmdpbmUpCisgICAgZW5n
aW5lID09ICJERkciIG9yIGVuZ2luZSA9PSAiRlRMIiBvciBlbmdpbmUgPT0gIkZUTEZvck9TUkVu
dHJ5IgorZW5kCiAKICRzaG93Q291bnRzID0gdHJ1ZQogJHNvcnRNb2RlID0gOnRpbWUKQEAgLTU3
Miw5ICs1NzYsOSBAQCBkZWYgc3VtbWFyeShtb2RlKQogICAgIGlmIG1vZGUgPT0gOmZ1bGwKICAg
ICAgICAgcHJpbnQoIiAiICsgKCIgIiAqIGluc3RydWN0aW9uQ291bnRDb2xzKSkKICAgICBlbmQK
LSAgICBwcmludCgiICIgKyBjZW50ZXIoIkJhc2UvREZHIiwgY291bnRDb2xzKSkKKyAgICBwcmlu
dCgiICIgKyBjZW50ZXIoIkJhc2UvREZHL0ZUTC9GVExPU1IiLCBjb3VudENvbHMpKQogICAgIGlm
IG1vZGUgPT0gOmZ1bGwKLSAgICAgICAgcHJpbnQoIiAiICsgY2VudGVyKCJCYXNlL0RGRyIsIG1h
Y2hpbmVDb3VudENvbHMpKQorICAgICAgICBwcmludCgiICIgKyBjZW50ZXIoIkJhc2UvREZHL0ZU
TC9GVExPU1IiLCBtYWNoaW5lQ291bnRDb2xzKSkKICAgICAgICAgcHJpbnQoIiAiICsgKCIgIiAq
IGNvbXBpbGF0aW9uc0NvbHMpKQogICAgICAgICBwcmludCgiICIgKyBjZW50ZXIoIlNyYy9Ub3Rh
bCIsIGlubGluZXNDb2xzKSkKICAgICAgICAgcHJpbnQoIiAiICsgKCIgIiAqIGV4aXRDb3VudENv
bHMpKQpAQCAtNjc0LDcgKzY3OCw3IEBAIGRlZiBleGVjdXRlQ29tbWFuZCgqY29tbWFuZEFycmF5
KQogICAgICAgICAgICAgaWYgJHNob3dDb3VudHMKICAgICAgICAgICAgICAgICBwdXRzKGNlbnRl
cigiU291cmNlIENvdW50cyIsIGNvdW50Q29scykgKyAiICIgKyBjZW50ZXIoIk1hY2hpbmUgQ291
bnRzIiwgbWFjaGluZUNvbHMpICsKICAgICAgICAgICAgICAgICAgICAgICgiICIgKiBwYWQpICsg
Y2VudGVyKCJCeXRlY29kZSBmb3IgI3tieXRlY29kZXN9Iiwgc2NyZWVuV2lkdGggLSBwYWQgLSBj
b3VudENvbHMgLSAxIC0gbWFjaGluZUNvbHMpKQotICAgICAgICAgICAgICAgIHB1dHMoY2VudGVy
KCJCYXNlL0RGRyIsIGNvdW50Q29scykgKyAiICIgKyBjZW50ZXIoIkJhc2UvREZHIiwgY291bnRD
b2xzKSkKKyAgICAgICAgICAgICAgICBwdXRzKGNlbnRlcigiQmFzZS9ERkcvRlRML0ZUTE9TUiIs
IGNvdW50Q29scykgKyAiICIgKyBjZW50ZXIoIkJhc2UvREZHL0ZUTC9GVExPU1IiLCBjb3VudENv
bHMpKQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHB1dHMoIkJ5dGVjb2RlIGZv
ciAje2J5dGVjb2Rlc306IikKICAgICAgICAgICAgIGVuZApAQCAtODk0LDcgKzg5OCw3IEBAIGRl
ZiBleGVjdXRlQ29tbWFuZCgqY29tbWFuZEFycmF5KQogICAgICAgICAgICAgcHV0cygiQ29tcGls
YXRpb24gI3tjb21waWxhdGlvbn06IikKICAgICAgICAgICAgIGlmICRzaG93Q291bnRzCiAgICAg
ICAgICAgICAgICAgcHV0cyhjZW50ZXIoIkFjdHVhbCBDb3VudHMiLCBhY3R1YWxDb3VudENvbHMp
ICsgIiAiICsgY2VudGVyKCJTb3VyY2UgQ291bnRzIiwgc291cmNlQ291bnRDb2xzKSArICIgIiAr
IGNlbnRlcigiRGlzYXNzZW1ibHkgaW4gI3tjb21waWxhdGlvbi5lbmdpbmV9Iiwgc2NyZWVuV2lk
dGggLSAxIC0gc291cmNlQ291bnRDb2xzIC0gMSAtIGFjdHVhbENvdW50Q29scykpCi0gICAgICAg
ICAgICAgICAgcHV0cygoIiAiICogYWN0dWFsQ291bnRDb2xzKSArICIgIiArIGNlbnRlcigiQmFz
ZS9ERkciLCBzb3VyY2VDb3VudENvbHMpKQorICAgICAgICAgICAgICAgIHB1dHMoKCIgIiAqIGFj
dHVhbENvdW50Q29scykgKyAiICIgKyBjZW50ZXIoIkJhc2UvREZHL0ZUTC9GVExPU1IiLCBzb3Vy
Y2VDb3VudENvbHMpKQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHB1dHMoIkRp
c2Fzc2VtYmx5IGluICN7Y29tcGlsYXRpb24uZW5naW5lfSIpCiAgICAgICAgICAgICBlbmQKQEAg
LTkwNSwxMSArOTA5LDE1IEBAIGRlZiBleGVjdXRlQ29tbWFuZCgqY29tbWFuZEFycmF5KQogICAg
ICAgICAgICAgICAgIHwgZGVzY3JpcHRpb24gfAogICAgICAgICAgICAgICAgICMgRklYTUU6IFdl
IHNob3VsZCBoYXZlIGEgYmV0dGVyIHdheSBvZiBkZXRlY3RpbmcgdGhpbmdzIGxpa2UgQ291bnRF
eGVjdXRpb24gbm9kZXMKICAgICAgICAgICAgICAgICAjIGFuZCBzbG93IHBhdGggZW50cmllcyBp
biB0aGUgYmFzZWxpbmUgSklULgotICAgICAgICAgICAgICAgIGlmIGRlc2NyaXB0aW9uLmRlc2Ny
aXB0aW9uID1+IC9Db3VudEV4ZWN1dGlvblwoLyBhbmQgY29tcGlsYXRpb24uZW5naW5lID09ICJE
RkciCisgICAgICAgICAgICAgICAgaWYgZGVzY3JpcHRpb24uZGVzY3JpcHRpb24gPX4gL0NvdW50
RXhlY3V0aW9uXCgvIGFuZCBpc09wdGltaXppbmcoY29tcGlsYXRpb24uZW5naW5lKQogICAgICAg
ICAgICAgICAgICAgICBzaG91bGRTaG93ID0gZmFsc2UKICAgICAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgICAgIHNob3VsZFNob3cgPSB0cnVlCiAgICAgICAgICAgICAgICAgZW5k
CisgICAgICAgICAgICAgICAgaWYgbm90IGRlc2NyaXB0aW9uLm9yaWdpbi5lbXB0eT8gYW5kIG5v
dCBkZXNjcmlwdGlvbi5vcmlnaW5bLTFdCisgICAgICAgICAgICAgICAgICAgIHAgZGVzY3JpcHRp
b24ub3JpZ2luCisgICAgICAgICAgICAgICAgICAgIHAgZGVzY3JpcHRpb24uZGVzY3JpcHRpb24K
KyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICBpZiBkZXNjcmlwdGlvbi5vcmln
aW4uZW1wdHk/IG9yIG5vdCBkZXNjcmlwdGlvbi5vcmlnaW5bLTFdLnNob3VsZEhhdmVDb3VudHM/
IG9yIChjb21waWxhdGlvbi5lbmdpbmUgPT0gIkJhc2VsaW5lIiBhbmQgZGVzY3JpcHRpb24uZGVz
Y3JpcHRpb24gPX4gL15ccypcKFNcKS8pCiAgICAgICAgICAgICAgICAgICAgIGFjdHVhbENvdW50
c1N0cmluZyA9ICIiCiAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUNvdW50c1N0cmluZyA9ICIi
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzIGIvVG9vbHMv
U2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwppbmRleCAxMTQ3Yzc3ZDA3NWQ2NDU4NmE5NTJl
OTljN2VkZGI1MGM1YzlmYjBhLi5hMmM0NWVhODNmMDJjMzZkOTdlMGU2ZDFkYzQ0YTk1MTI4Y2Ri
YjAxIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCisrKyBi
L1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKQEAgLTE4MCw2ICsxODAsOCBAQCAk
bnVtRmFpbHVyZXMgPSAwCiAKIEVBR0VSX09QVElPTlMgPSBbIi0tdGhyZXNob2xkRm9ySklUQWZ0
ZXJXYXJtVXA9MTAiLCAiLS10aHJlc2hvbGRGb3JKSVRTb29uPTEwIiwgIi0tdGhyZXNob2xkRm9y
T3B0aW1pemVBZnRlcldhcm1VcD0yMCIsICItLXRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJMb25n
V2FybVVwPTIwIiwgIi0tdGhyZXNob2xkRm9yT3B0aW1pemVTb29uPTIwIiwgIi0tdGhyZXNob2xk
Rm9yRlRMT3B0aW1pemVBZnRlcldhcm1VcD0yMCIsICItLXRocmVzaG9sZEZvckZUTE9wdGltaXpl
U29vbj0yMCJdCiAKK0ZUTF9PUFRJT05TID0gWyItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVlIiwg
Ii0tZW5hYmxlRXhwZXJpbWVudGFsRlRMQ292ZXJhZ2U9dHJ1ZSJdCisKICRydW5saXN0ID0gW10K
IAogZGVmIGZyYW1ld29ya0Zyb21KU0NQYXRoKGpzY1BhdGgpCkBAIC01MzIsMTkgKzUzNCwxOSBA
QCBkZWYgcnVuTm9DSklUVmFsaWRhdGVQaGFzZXMKIGVuZAogCiBkZWYgcnVuRGVmYXVsdEZUTAot
ICAgIHJ1bigiZGVmYXVsdC1mdGwiLCAiLS11c2VFeHBlcmltZW50YWxGVEw9dHJ1ZSIpCisgICAg
cnVuKCJkZWZhdWx0LWZ0bCIsICpGVExfT1BUSU9OUykKIGVuZAogCiBkZWYgcnVuRlRMTm9DSklU
Ci0gICAgcnVuKCJmdGwtbm8tY2ppdCIsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAi
LS11c2VFeHBlcmltZW50YWxGVEw9dHJ1ZSIpCisgICAgcnVuKCJmdGwtbm8tY2ppdCIsICItLWVu
YWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAqRlRMX09QVElPTlMpCiBlbmQKIAogZGVmIHJ1bkZU
TE5vQ0pJVFZhbGlkYXRlCi0gICAgcnVuKCJmdGwtbm8tY2ppdC12YWxpZGF0ZSIsICItLWVuYWJs
ZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS11c2VFeHBlcmltZW50YWxGVEw9dHJ1ZSIsICItLXZh
bGlkYXRlR3JhcGg9dHJ1ZSIpCisgICAgcnVuKCJmdGwtbm8tY2ppdC12YWxpZGF0ZSIsICItLWVu
YWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUdyYXBoPXRydWUiLCAqRlRMX09Q
VElPTlMpCiBlbmQKIAogZGVmIHJ1bkZUTE5vQ0pJVE9TUlZhbGlkYXRpb24KLSAgICBydW4oImZ0
bC1uby1jaml0LW9zci12YWxpZGF0aW9uIiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIs
ICItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVlIiwgIi0tdmFsaWRhdGVGVExPU1JFeGl0TGl2ZW5l
c3M9dHJ1ZSIpCisgICAgcnVuKCJmdGwtbm8tY2ppdC1vc3ItdmFsaWRhdGlvbiIsICItLWVuYWJs
ZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUZUTE9TUkV4aXRMaXZlbmVzcz10cnVl
IiwgKkZUTF9PUFRJT05TKQogZW5kCiAKIGRlZiBydW5ERkdFYWdlcgpAQCAtNTU2LDE1ICs1NTgs
MTUgQEAgZGVmIHJ1bkRGR0VhZ2VyTm9DSklUVmFsaWRhdGUKIGVuZAogCiBkZWYgcnVuRlRMRWFn
ZXIKLSAgICBydW4oImZ0bC1lYWdlciIsICItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVlIiwgKkVB
R0VSX09QVElPTlMpCisgICAgcnVuKCJmdGwtZWFnZXIiLCAqKEZUTF9PUFRJT05TICsgRUFHRVJf
T1BUSU9OUykpCiBlbmQKIAogZGVmIHJ1bkZUTEVhZ2VyTm9DSklUVmFsaWRhdGUKLSAgICBydW4o
ImZ0bC1lYWdlci1uby1jaml0IiwgIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRydWUiLCAiLS1lbmFi
bGVDb25jdXJyZW50SklUPWZhbHNlIiwgIi0tdmFsaWRhdGVHcmFwaD10cnVlIiwgKkVBR0VSX09Q
VElPTlMpCisgICAgcnVuKCJmdGwtZWFnZXItbm8tY2ppdCIsICItLWVuYWJsZUNvbmN1cnJlbnRK
SVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUdyYXBoPXRydWUiLCAqKEZUTF9PUFRJT05TICsgRUFHRVJf
T1BUSU9OUykpCiBlbmQKIAogZGVmIHJ1bkZUTEVhZ2VyTm9DSklUT1NSVmFsaWRhdGlvbgotICAg
IHJ1bigiZnRsLWVhZ2VyLW5vLWNqaXQtb3NyLXZhbGlkYXRpb24iLCAiLS11c2VFeHBlcmltZW50
YWxGVEw9dHJ1ZSIsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUZU
TE9TUkV4aXRMaXZlbmVzcz10cnVlIiwgKkVBR0VSX09QVElPTlMpCisgICAgcnVuKCJmdGwtZWFn
ZXItbm8tY2ppdC1vc3ItdmFsaWRhdGlvbiIsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2Ui
LCAiLS12YWxpZGF0ZUZUTE9TUkV4aXRMaXZlbmVzcz10cnVlIiwgKihGVExfT1BUSU9OUyArIEVB
R0VSX09QVElPTlMpKQogZW5kCiAKIGRlZiBydW5BbHdheXNUcmlnZ2VyQ29weVBoYXNlCkBAIC02
NDYsMTMgKzY0OCwzNCBAQCBkZWYgcnVuTGF5b3V0VGVzdERGR0VhZ2VyTm9DSklUCiAgICAgcnVu
TGF5b3V0VGVzdCgiZGZnLWVhZ2VyLW5vLWNqaXQiLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZh
bHNlIiwgKkVBR0VSX09QVElPTlMpCiBlbmQKIAotZGVmIGRlZmF1bHRSdW5MYXlvdXRUZXN0Citk
ZWYgcnVuTGF5b3V0VGVzdERlZmF1bHRGVEwKKyAgICBydW5MYXlvdXRUZXN0KCJmdGwiLCAiLS10
ZXN0VGhlRlRMPXRydWUiLCAqRlRMX09QVElPTlMpCitlbmQKKworZGVmIHJ1bkxheW91dFRlc3RG
VExOb0NKSVQKKyAgICBydW5MYXlvdXRUZXN0KCJmdGwtbm8tY2ppdCIsICItLXRlc3RUaGVGVEw9
dHJ1ZSIsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAqRlRMX09QVElPTlMpCitlbmQK
KworZGVmIHJ1bkxheW91dFRlc3RGVExFYWdlck5vQ0pJVAorICAgIHJ1bkxheW91dFRlc3QoImZ0
bC1lYWdlci1uby1jaml0IiwgIi0tdGVzdFRoZUZUTD10cnVlIiwgIi0tZW5hYmxlQ29uY3VycmVu
dEpJVD1mYWxzZSIsICooRlRMX09QVElPTlMgKyBFQUdFUl9PUFRJT05TKSkKK2VuZAorCitkZWYg
bm9GVExSdW5MYXlvdXRUZXN0CiAgICAgcnVuTGF5b3V0VGVzdERlZmF1bHQKICAgICBydW5MYXlv
dXRUZXN0Tm9MTEludAogICAgIHJ1bkxheW91dFRlc3ROb0NKSVQKICAgICBydW5MYXlvdXRUZXN0
REZHRWFnZXJOb0NKSVQKIGVuZAogCitkZWYgZGVmYXVsdFJ1bkxheW91dFRlc3QKKyAgICBub0ZU
TFJ1bkxheW91dFRlc3QKKyAgICBpZiAkZW5hYmxlRlRMCisgICAgICAgIHJ1bkxheW91dFRlc3RE
ZWZhdWx0RlRMCisgICAgICAgIHJ1bkxheW91dFRlc3RGVExOb0NKSVQKKyAgICAgICAgcnVuTGF5
b3V0VGVzdEZUTEVhZ2VyTm9DSklUCisgICAgZW5kCitlbmQKKwogZGVmIHByZXBhcmVFeHRyYVJl
bGF0aXZlRmlsZXMoZXh0cmFGaWxlcywgZGVzdGluYXRpb24pCiAgICAgRGlyLmNoZGlyKCRvdXRw
dXREaXIpIHsKICAgICAgICAgZXh0cmFGaWxlcy5lYWNoIHsKQEAgLTcwNiw2ICs3MjksMTAgQEAg
ZGVmIHJ1bk1vemlsbGFUZXN0RGVmYXVsdChtb2RlLCAqZXh0cmFGaWxlcykKICAgICBydW5Nb3pp
bGxhVGVzdChuaWwsIG1vZGUsIGV4dHJhRmlsZXMpCiBlbmQKIAorZGVmIHJ1bk1vemlsbGFUZXN0
RGVmYXVsdEZUTChtb2RlLCAqZXh0cmFGaWxlcykKKyAgICBydW5Nb3ppbGxhVGVzdCgiZnRsIiwg
bW9kZSwgZXh0cmFGaWxlcywgKkZUTF9PUFRJT05TKQorZW5kCisKIGRlZiBydW5Nb3ppbGxhVGVz
dExMSW50KG1vZGUsICpleHRyYUZpbGVzKQogICAgIHJ1bk1vemlsbGFUZXN0KCJsbGludCIsIG1v
ZGUsIGV4dHJhRmlsZXMsICItLXVzZUpJVD1mYWxzZSIpCiBlbmQKQEAgLTcxOCwxMSArNzQ1LDE5
IEBAIGRlZiBydW5Nb3ppbGxhVGVzdERGR0VhZ2VyTm9DSklUVmFsaWRhdGVQaGFzZXMobW9kZSwg
KmV4dHJhRmlsZXMpCiAgICAgcnVuTW96aWxsYVRlc3QoImRmZy1lYWdlci1uby1jaml0LXZhbGlk
YXRlLXBoYXNlcyIsIG1vZGUsIGV4dHJhRmlsZXMsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFs
c2UiLCAiLS12YWxpZGF0ZUJ5dGVjb2RlPXRydWUiLCAiLS12YWxpZGF0ZUdyYXBoQXRFYWNoUGhh
c2U9dHJ1ZSIsICpFQUdFUl9PUFRJT05TKQogZW5kCiAKK2RlZiBydW5Nb3ppbGxhVGVzdEZUTEVh
Z2VyTm9DSklUVmFsaWRhdGVQaGFzZXMobW9kZSwgKmV4dHJhRmlsZXMpCisgICAgcnVuTW96aWxs
YVRlc3QoImZ0bC1lYWdlci1uby1jaml0LXZhbGlkYXRlLXBoYXNlcyIsIG1vZGUsIGV4dHJhRmls
ZXMsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUJ5dGVjb2RlPXRy
dWUiLCAiLS12YWxpZGF0ZUdyYXBoQXRFYWNoUGhhc2U9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBF
QUdFUl9PUFRJT05TKSkKK2VuZAorCiBkZWYgZGVmYXVsdFJ1bk1vemlsbGFUZXN0KG1vZGUsICpl
eHRyYUZpbGVzKQogICAgIHJ1bk1vemlsbGFUZXN0RGVmYXVsdChtb2RlLCAqZXh0cmFGaWxlcykK
ICAgICBydW5Nb3ppbGxhVGVzdExMSW50KG1vZGUsICpleHRyYUZpbGVzKQogICAgIHJ1bk1vemls
bGFUZXN0QmFzZWxpbmVKSVQobW9kZSwgKmV4dHJhRmlsZXMpCiAgICAgcnVuTW96aWxsYVRlc3RE
RkdFYWdlck5vQ0pJVFZhbGlkYXRlUGhhc2VzKG1vZGUsICpleHRyYUZpbGVzKQorICAgIGlmICRl
bmFibGVGVEwKKyAgICAgICAgcnVuTW96aWxsYVRlc3REZWZhdWx0RlRMKG1vZGUsICpleHRyYUZp
bGVzKQorICAgICAgICBydW5Nb3ppbGxhVGVzdEZUTEVhZ2VyTm9DSklUVmFsaWRhdGVQaGFzZXMo
bW9kZSwgKmV4dHJhRmlsZXMpCisgICAgZW5kCiBlbmQKIAogZGVmIHNraXAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MjYw
MmI5ODgwYTQ0ZjM5OGY5YmVhZTk1ZjI3ZDIyODFhMGY2NGJjLi42YzU4ZWFkY2NlOTQ4MWY4NTFk
OGE2ZGVjZmM1Zjg0NmQxMjVjNjk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTQtMDEtMjgg
IE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBNZXJn
ZSB0aGUganNDU3RhY2sgYnJhbmNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjc3NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGpzL2xhcmdlLWV4cHJlc3Npb25zLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdGVwYW5vdl9jb250YWluZXIuanM6CisgICAg
ICAgICoganMvcmVncmVzcy9zdGVwYW5vdl9jb250YWluZXItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGpzL3JlZ3Jlc3Mvc3RlcGFub3ZfY29udGFpbmVyLmh0bWw6CisgICAgICAgICoganMvc2Ny
aXB0LXRlc3RzL2RmZy1hZGQtbm90LW51bWJlci5qczoKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVz
dHMvbGFyZ2UtZXhwcmVzc2lvbnMuanM6CisKIDIwMTQtMDEtMjcgIEJyaWFuIEJ1cmcgIDxiYnVy
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogY2xlYW4gdXAgaW5pdGlhbGl6
YXRpb24gb2YgbWFuYWdlcnMgYW5kIG9ic2VydmVycyBpbiBJbnNwZWN0b3JUZXN0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9sYXJnZS1leHByZXNzaW9ucy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9qcy9sYXJnZS1leHByZXNzaW9ucy1leHBlY3RlZC50eHQKaW5kZXggODc5ZTI2NDll
ZjRjOTlkYjU2ZjJlZmZmMThjMzEyZTI4NzJhYmM1NC4uYWEwNjE0M2I3NDJmOTI2MWM4MDRmMGY2
MzM5MjFmNWY5ZTc1OGVjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvbGFyZ2UtZXhwcmVz
c2lvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2xhcmdlLWV4cHJlc3Npb25z
LWV4cGVjdGVkLnR4dApAQCAtNSw3ICs1LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAog
UEFTUyBldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwKSkgaXMgcmVw
ZWF0ZWRTdHJpbmcoImEiLCAxMDApCiBQQVNTIGV2YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0
ZXJBIiwgIisiLCAxMDAwKSkgaXMgcmVwZWF0ZWRTdHJpbmcoImEiLCAxMDAwKQotUEFTUyBldmFs
KHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwMDApKSBpcyByZXBlYXRlZFN0
cmluZygiYSIsIDEwMDAwKQorUEFTUyBldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIs
ICIrIiwgMTAwMDApKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE91dCBvZiBtZW1vcnkuCiBQQVNT
IGV2YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDAwMDApKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IE91dCBvZiBtZW1vcnkuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L3N0ZXBhbm92X2NvbnRhaW5lci5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL3N0ZXBhbm92X2NvbnRhaW5lci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MzI4MzcxMDhkNzgwZGYyYWNiMjEwY2U3N2E0ODA2MWNjMGJiYzNhYi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9zdGVwYW5vdl9jb250YWluZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw2NDA0
ICswLDAgQEAKLS8vQCBzbG93IQotLy9AIHJ1bkRlZmF1bHQKLS8vQCBydW5EZWZhdWx0RlRMIGlm
ICRlbmFibGVGVEwKLQotLy8gTm90ZTogRm9yIG1heGltdW0tc3BlZWQgY29kZSwgc2VlICJPcHRp
bWl6aW5nIENvZGUiIG9uIHRoZSBFbXNjcmlwdGVuIHdpa2ksIGh0dHBzOi8vZ2l0aHViLmNvbS9r
cmlwa2VuL2Vtc2NyaXB0ZW4vd2lraS9PcHRpbWl6aW5nLUNvZGUKLS8vIE5vdGU6IFNvbWUgRW1z
Y3JpcHRlbiBzZXR0aW5ncyBtYXkgbGltaXQgdGhlIHNwZWVkIG9mIHRoZSBnZW5lcmF0ZWQgY29k
ZS4KLS8vIFRoZSBNb2R1bGUgb2JqZWN0OiBPdXIgaW50ZXJmYWNlIHRvIHRoZSBvdXRzaWRlIHdv
cmxkLiBXZSBpbXBvcnQKLS8vIGFuZCBleHBvcnQgdmFsdWVzIG9uIGl0LCBhbmQgZG8gdGhlIHdv
cmsgdG8gZ2V0IHRoYXQgdGhyb3VnaAotLy8gY2xvc3VyZSBjb21waWxlciBpZiBuZWNlc3Nhcnku
IFRoZXJlIGFyZSB2YXJpb3VzIHdheXMgTW9kdWxlIGNhbiBiZSB1c2VkOgotLy8gMS4gTm90IGRl
ZmluZWQuIFdlIGNyZWF0ZSBpdCBoZXJlCi0vLyAyLiBBIGZ1bmN0aW9uIHBhcmFtZXRlciwgZnVu
Y3Rpb24oTW9kdWxlKSB7IC4uZ2VuZXJhdGVkIGNvZGUuLiB9Ci0vLyAzLiBwcmUtcnVuIGFwcGVu
ZGVkIGl0LCB2YXIgTW9kdWxlID0ge307IC4uZ2VuZXJhdGVkIGNvZGUuLgotLy8gNC4gRXh0ZXJu
YWwgc2NyaXB0IHRhZyBkZWZpbmVzIHZhciBNb2R1bGUuCi0vLyBXZSBuZWVkIHRvIGRvIGFuIGV2
YWwgaW4gb3JkZXIgdG8gaGFuZGxlIHRoZSBjbG9zdXJlIGNvbXBpbGVyCi0vLyBjYXNlLCB3aGVy
ZSB0aGlzIGNvZGUgaGVyZSBpcyBtaW5pZmllZCBidXQgTW9kdWxlIHdhcyBkZWZpbmVkCi0vLyBl
bHNld2hlcmUgKGUuZy4gY2FzZSA0IGFib3ZlKS4gV2UgYWxzbyBuZWVkIHRvIGNoZWNrIGlmIE1v
ZHVsZQotLy8gYWxyZWFkeSBleGlzdHMgKGUuZy4gY2FzZSAzIGFib3ZlKS4KLS8vIE5vdGUgdGhh
dCBpZiB5b3Ugd2FudCB0byBydW4gY2xvc3VyZSwgYW5kIGFsc28gdG8gdXNlIE1vZHVsZQotLy8g
YWZ0ZXIgdGhlIGdlbmVyYXRlZCBjb2RlLCB5b3Ugd2lsbCBuZWVkIHRvIGRlZmluZSAgIHZhciBN
b2R1bGUgPSB7fTsKLS8vIGJlZm9yZSB0aGUgY29kZS4gVGhlbiB0aGF0IG9iamVjdCB3aWxsIGJl
IHVzZWQgaW4gdGhlIGNvZGUsIGFuZCB5b3UKLS8vIGNhbiBjb250aW51ZSB0byB1c2UgTW9kdWxl
IGFmdGVyd2FyZHMgYXMgd2VsbC4KLXZhciBNb2R1bGU7Ci1pZiAoIU1vZHVsZSkgTW9kdWxlID0g
ZXZhbCgnKGZ1bmN0aW9uKCkgeyB0cnkgeyByZXR1cm4gTW9kdWxlIHx8IHt9IH0gY2F0Y2goZSkg
eyByZXR1cm4ge30gfSB9KSgpJyk7Ci0vLyBTb21ldGltZXMgYW4gZXhpc3RpbmcgTW9kdWxlIG9i
amVjdCBleGlzdHMgd2l0aCBwcm9wZXJ0aWVzCi0vLyBtZWFudCB0byBvdmVyd3JpdGUgdGhlIGRl
ZmF1bHQgbW9kdWxlIGZ1bmN0aW9uYWxpdHkuIEhlcmUKLS8vIHdlIGNvbGxlY3QgdGhvc2UgcHJv
cGVydGllcyBhbmQgcmVhcHBseSBfYWZ0ZXJfIHdlIGNvbmZpZ3VyZQotLy8gdGhlIGN1cnJlbnQg
ZW52aXJvbm1lbnQncyBkZWZhdWx0cyB0byBhdm9pZCBoYXZpbmcgdG8gYmUgc28KLS8vIGRlZmVu
c2l2ZSBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCi12YXIgbW9kdWxlT3ZlcnJpZGVzID0ge307Ci1m
b3IgKHZhciBrZXkgaW4gTW9kdWxlKSB7Ci0gIGlmIChNb2R1bGUuaGFzT3duUHJvcGVydHkoa2V5
KSkgewotICAgIG1vZHVsZU92ZXJyaWRlc1trZXldID0gTW9kdWxlW2tleV07Ci0gIH0KLX0KLS8v
IFRoZSBlbnZpcm9ubWVudCBzZXR1cCBjb2RlIGJlbG93IGlzIGN1c3RvbWl6ZWQgdG8gdXNlIE1v
ZHVsZS4KLS8vICoqKiBFbnZpcm9ubWVudCBzZXR1cCBjb2RlICoqKgotdmFyIEVOVklST05NRU5U
X0lTX05PREUgPSB0eXBlb2YgcHJvY2VzcyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIHJlcXVpcmUg
PT09ICdmdW5jdGlvbic7Ci12YXIgRU5WSVJPTk1FTlRfSVNfV0VCID0gdHlwZW9mIHdpbmRvdyA9
PT0gJ29iamVjdCc7Ci12YXIgRU5WSVJPTk1FTlRfSVNfV09SS0VSID0gdHlwZW9mIGltcG9ydFNj
cmlwdHMgPT09ICdmdW5jdGlvbic7Ci12YXIgRU5WSVJPTk1FTlRfSVNfU0hFTEwgPSAhRU5WSVJP
Tk1FTlRfSVNfV0VCICYmICFFTlZJUk9OTUVOVF9JU19OT0RFICYmICFFTlZJUk9OTUVOVF9JU19X
T1JLRVI7Ci1pZiAoRU5WSVJPTk1FTlRfSVNfTk9ERSkgewotICAvLyBFeHBvc2UgZnVuY3Rpb25h
bGl0eSBpbiB0aGUgc2FtZSBzaW1wbGUgd2F5IHRoYXQgdGhlIHNoZWxscyB3b3JrCi0gIC8vIE5v
dGUgdGhhdCB3ZSBwb2xsdXRlIHRoZSBnbG9iYWwgbmFtZXNwYWNlIGhlcmUsIG90aGVyd2lzZSB3
ZSBicmVhayBpbiBub2RlCi0gIE1vZHVsZVsncHJpbnQnXSA9IGZ1bmN0aW9uKHgpIHsKLSAgICBw
cm9jZXNzWydzdGRvdXQnXS53cml0ZSh4ICsgJ1xuJyk7Ci0gIH07Ci0gIE1vZHVsZVsncHJpbnRF
cnInXSA9IGZ1bmN0aW9uKHgpIHsKLSAgICBwcm9jZXNzWydzdGRlcnInXS53cml0ZSh4ICsgJ1xu
Jyk7Ci0gIH07Ci0gIHZhciBub2RlRlMgPSByZXF1aXJlKCdmcycpOwotICB2YXIgbm9kZVBhdGgg
PSByZXF1aXJlKCdwYXRoJyk7Ci0gIE1vZHVsZVsncmVhZCddID0gZnVuY3Rpb24oZmlsZW5hbWUs
IGJpbmFyeSkgewotICAgIGZpbGVuYW1lID0gbm9kZVBhdGhbJ25vcm1hbGl6ZSddKGZpbGVuYW1l
KTsKLSAgICB2YXIgcmV0ID0gbm9kZUZTWydyZWFkRmlsZVN5bmMnXShmaWxlbmFtZSk7Ci0gICAg
Ly8gVGhlIHBhdGggaXMgYWJzb2x1dGUgaWYgdGhlIG5vcm1hbGl6ZWQgdmVyc2lvbiBpcyB0aGUg
c2FtZSBhcyB0aGUgcmVzb2x2ZWQuCi0gICAgaWYgKCFyZXQgJiYgZmlsZW5hbWUgIT0gbm9kZVBh
dGhbJ3Jlc29sdmUnXShmaWxlbmFtZSkpIHsKLSAgICAgIGZpbGVuYW1lID0gcGF0aC5qb2luKF9f
ZGlybmFtZSwgJy4uJywgJ3NyYycsIGZpbGVuYW1lKTsKLSAgICAgIHJldCA9IG5vZGVGU1sncmVh
ZEZpbGVTeW5jJ10oZmlsZW5hbWUpOwotICAgIH0KLSAgICBpZiAocmV0ICYmICFiaW5hcnkpIHJl
dCA9IHJldC50b1N0cmluZygpOwotICAgIHJldHVybiByZXQ7Ci0gIH07Ci0gIE1vZHVsZVsncmVh
ZEJpbmFyeSddID0gZnVuY3Rpb24oZmlsZW5hbWUpIHsgcmV0dXJuIE1vZHVsZVsncmVhZCddKGZp
bGVuYW1lLCB0cnVlKSB9OwotICBNb2R1bGVbJ2xvYWQnXSA9IGZ1bmN0aW9uKGYpIHsKLSAgICBn
bG9iYWxFdmFsKHJlYWQoZikpOwotICB9OwotICBNb2R1bGVbJ2FyZ3VtZW50cyddID0gcHJvY2Vz
c1snYXJndiddLnNsaWNlKDIpOwotICBtb2R1bGUuZXhwb3J0cyA9IE1vZHVsZTsKLX0KLWVsc2Ug
aWYgKEVOVklST05NRU5UX0lTX1NIRUxMKSB7Ci0gIE1vZHVsZVsncHJpbnQnXSA9IHByaW50Owot
ICBpZiAodHlwZW9mIHByaW50RXJyICE9ICd1bmRlZmluZWQnKSBNb2R1bGVbJ3ByaW50RXJyJ10g
PSBwcmludEVycjsgLy8gbm90IHByZXNlbnQgaW4gdjggb3Igb2xkZXIgc20KLSAgaWYgKHR5cGVv
ZiByZWFkICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgTW9kdWxlWydyZWFkJ10gPSByZWFkOwotICB9
IGVsc2UgewotICAgIE1vZHVsZVsncmVhZCddID0gZnVuY3Rpb24oKSB7IHRocm93ICdubyByZWFk
KCkgYXZhaWxhYmxlIChqc2M/KScgfTsKLSAgfQotICBNb2R1bGVbJ3JlYWRCaW5hcnknXSA9IGZ1
bmN0aW9uKGYpIHsKLSAgICByZXR1cm4gcmVhZChmLCAnYmluYXJ5Jyk7Ci0gIH07Ci0gIGlmICh0
eXBlb2Ygc2NyaXB0QXJncyAhPSAndW5kZWZpbmVkJykgewotICAgIE1vZHVsZVsnYXJndW1lbnRz
J10gPSBzY3JpcHRBcmdzOwotICB9IGVsc2UgaWYgKHR5cGVvZiBhcmd1bWVudHMgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICBNb2R1bGVbJ2FyZ3VtZW50cyddID0gYXJndW1lbnRzOwotICB9Ci0gIHRo
aXNbJ01vZHVsZSddID0gTW9kdWxlOwotfQotZWxzZSBpZiAoRU5WSVJPTk1FTlRfSVNfV0VCIHx8
IEVOVklST05NRU5UX0lTX1dPUktFUikgewotICBNb2R1bGVbJ3JlYWQnXSA9IGZ1bmN0aW9uKHVy
bCkgewotICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICB4aHIub3Blbign
R0VUJywgdXJsLCBmYWxzZSk7Ci0gICAgeGhyLnNlbmQobnVsbCk7Ci0gICAgcmV0dXJuIHhoci5y
ZXNwb25zZVRleHQ7Ci0gIH07Ci0gIGlmICh0eXBlb2YgYXJndW1lbnRzICE9ICd1bmRlZmluZWQn
KSB7Ci0gICAgTW9kdWxlWydhcmd1bWVudHMnXSA9IGFyZ3VtZW50czsKLSAgfQotICBpZiAoRU5W
SVJPTk1FTlRfSVNfV0VCKSB7Ci0gICAgTW9kdWxlWydwcmludCddID0gZnVuY3Rpb24oeCkgewot
ICAgICAgY29uc29sZS5sb2coeCk7Ci0gICAgfTsKLSAgICBNb2R1bGVbJ3ByaW50RXJyJ10gPSBm
dW5jdGlvbih4KSB7Ci0gICAgICBjb25zb2xlLmxvZyh4KTsKLSAgICB9OwotICAgIHRoaXNbJ01v
ZHVsZSddID0gTW9kdWxlOwotICB9IGVsc2UgaWYgKEVOVklST05NRU5UX0lTX1dPUktFUikgewot
ICAgIC8vIFdlIGNhbiBkbyB2ZXJ5IGxpdHRsZSBoZXJlLi4uCi0gICAgdmFyIFRSWV9VU0VfRFVN
UCA9IGZhbHNlOwotICAgIE1vZHVsZVsncHJpbnQnXSA9IChUUllfVVNFX0RVTVAgJiYgKHR5cGVv
ZihkdW1wKSAhPT0gInVuZGVmaW5lZCIpID8gKGZ1bmN0aW9uKHgpIHsKLSAgICAgIGR1bXAoeCk7
Ci0gICAgfSkgOiAoZnVuY3Rpb24oeCkgewotICAgICAgLy8gc2VsZi5wb3N0TWVzc2FnZSh4KTsg
Ly8gZW5hYmxlIHRoaXMgaWYgeW91IHdhbnQgc3Rkb3V0IHRvIGJlIHNlbnQgYXMgbWVzc2FnZXMK
LSAgICB9KSk7Ci0gICAgTW9kdWxlWydsb2FkJ10gPSBpbXBvcnRTY3JpcHRzOwotICB9Ci19Ci1l
bHNlIHsKLSAgLy8gVW5yZWFjaGFibGUgYmVjYXVzZSBTSEVMTCBpcyBkZXBlbmRhbnQgb24gdGhl
IG90aGVycwotICB0aHJvdyAnVW5rbm93biBydW50aW1lIGVudmlyb25tZW50LiBXaGVyZSBhcmUg
d2U/JzsKLX0KLWZ1bmN0aW9uIGdsb2JhbEV2YWwoeCkgewotICBldmFsLmNhbGwobnVsbCwgeCk7
Ci19Ci1pZiAoIU1vZHVsZVsnbG9hZCddID09ICd1bmRlZmluZWQnICYmIE1vZHVsZVsncmVhZCdd
KSB7Ci0gIE1vZHVsZVsnbG9hZCddID0gZnVuY3Rpb24oZikgewotICAgIGdsb2JhbEV2YWwoTW9k
dWxlWydyZWFkJ10oZikpOwotICB9OwotfQotaWYgKCFNb2R1bGVbJ3ByaW50J10pIHsKLSAgTW9k
dWxlWydwcmludCddID0gZnVuY3Rpb24oKXt9OwotfQotaWYgKCFNb2R1bGVbJ3ByaW50RXJyJ10p
IHsKLSAgTW9kdWxlWydwcmludEVyciddID0gTW9kdWxlWydwcmludCddOwotfQotaWYgKCFNb2R1
bGVbJ2FyZ3VtZW50cyddKSB7Ci0gIE1vZHVsZVsnYXJndW1lbnRzJ10gPSBbXTsKLX0KLS8vICoq
KiBFbnZpcm9ubWVudCBzZXR1cCBjb2RlICoqKgotLy8gQ2xvc3VyZSBoZWxwZXJzCi1Nb2R1bGUu
cHJpbnQgPSBNb2R1bGVbJ3ByaW50J107Ci1Nb2R1bGUucHJpbnRFcnIgPSBNb2R1bGVbJ3ByaW50
RXJyJ107Ci0vLyBDYWxsYmFja3MKLU1vZHVsZVsncHJlUnVuJ10gPSBbXTsKLU1vZHVsZVsncG9z
dFJ1biddID0gW107Ci0vLyBNZXJnZSBiYWNrIGluIHRoZSBvdmVycmlkZXMKLWZvciAodmFyIGtl
eSBpbiBtb2R1bGVPdmVycmlkZXMpIHsKLSAgaWYgKG1vZHVsZU92ZXJyaWRlcy5oYXNPd25Qcm9w
ZXJ0eShrZXkpKSB7Ci0gICAgTW9kdWxlW2tleV0gPSBtb2R1bGVPdmVycmlkZXNba2V5XTsKLSAg
fQotfQotLy8gPT09IEF1dG8tZ2VuZXJhdGVkIHByZWFtYmxlIGxpYnJhcnkgc3R1ZmYgPT09Ci0v
Lz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS8vIFJ1bnRpbWUgY29k
ZSBzaGFyZWQgd2l0aCBjb21waWxlcgotLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci12YXIgUnVudGltZSA9IHsKLSAgc3RhY2tTYXZlOiBmdW5jdGlvbiAoKSB7Ci0g
ICAgcmV0dXJuIFNUQUNLVE9QOwotICB9LAotICBzdGFja1Jlc3RvcmU6IGZ1bmN0aW9uIChzdGFj
a1RvcCkgewotICAgIFNUQUNLVE9QID0gc3RhY2tUb3A7Ci0gIH0sCi0gIGZvcmNlQWxpZ246IGZ1
bmN0aW9uICh0YXJnZXQsIHF1YW50dW0pIHsKLSAgICBxdWFudHVtID0gcXVhbnR1bSB8fCA0Owot
ICAgIGlmIChxdWFudHVtID09IDEpIHJldHVybiB0YXJnZXQ7Ci0gICAgaWYgKGlzTnVtYmVyKHRh
cmdldCkgJiYgaXNOdW1iZXIocXVhbnR1bSkpIHsKLSAgICAgIHJldHVybiBNYXRoLmNlaWwodGFy
Z2V0L3F1YW50dW0pKnF1YW50dW07Ci0gICAgfSBlbHNlIGlmIChpc051bWJlcihxdWFudHVtKSAm
JiBpc1Bvd2VyT2ZUd28ocXVhbnR1bSkpIHsKLSAgICAgIHZhciBsb2dnID0gbG9nMihxdWFudHVt
KTsKLSAgICAgIHJldHVybiAnKCgoKCcgK3RhcmdldCArICcpKycgKyAocXVhbnR1bS0xKSArICcp
Pj4nICsgbG9nZyArICcpPDwnICsgbG9nZyArICcpJzsKLSAgICB9Ci0gICAgcmV0dXJuICdNYXRo
LmNlaWwoKCcgKyB0YXJnZXQgKyAnKS8nICsgcXVhbnR1bSArICcpKicgKyBxdWFudHVtOwotICB9
LAotICBpc051bWJlclR5cGU6IGZ1bmN0aW9uICh0eXBlKSB7Ci0gICAgcmV0dXJuIHR5cGUgaW4g
UnVudGltZS5JTlRfVFlQRVMgfHwgdHlwZSBpbiBSdW50aW1lLkZMT0FUX1RZUEVTOwotICB9LAot
ICBpc1BvaW50ZXJUeXBlOiBmdW5jdGlvbiBpc1BvaW50ZXJUeXBlKHR5cGUpIHsKLSAgcmV0dXJu
IHR5cGVbdHlwZS5sZW5ndGgtMV0gPT0gJyonOwotfSwKLSAgaXNTdHJ1Y3RUeXBlOiBmdW5jdGlv
biBpc1N0cnVjdFR5cGUodHlwZSkgewotICBpZiAoaXNQb2ludGVyVHlwZSh0eXBlKSkgcmV0dXJu
IGZhbHNlOwotICBpZiAoaXNBcnJheVR5cGUodHlwZSkpIHJldHVybiB0cnVlOwotICBpZiAoLzw/
eyA/W159XSogP30+Py8udGVzdCh0eXBlKSkgcmV0dXJuIHRydWU7IC8vIHsgaTMyLCBpOCB9IGV0
Yy4gLSBhbm9ueW1vdXMgc3RydWN0IHR5cGVzCi0gIC8vIFNlZSBjb21tZW50IGluIGlzU3RydWN0
UG9pbnRlclR5cGUoKQotICByZXR1cm4gdHlwZVswXSA9PSAnJSc7Ci19LAotICBJTlRfVFlQRVM6
IHsiaTEiOjAsImk4IjowLCJpMTYiOjAsImkzMiI6MCwiaTY0IjowfSwKLSAgRkxPQVRfVFlQRVM6
IHsiZmxvYXQiOjAsImRvdWJsZSI6MH0sCi0gIG9yNjQ6IGZ1bmN0aW9uICh4LCB5KSB7Ci0gICAg
dmFyIGwgPSAoeCB8IDApIHwgKHkgfCAwKTsKLSAgICB2YXIgaCA9IChNYXRoLnJvdW5kKHggLyA0
Mjk0OTY3Mjk2KSB8IE1hdGgucm91bmQoeSAvIDQyOTQ5NjcyOTYpKSAqIDQyOTQ5NjcyOTY7Ci0g
ICAgcmV0dXJuIGwgKyBoOwotICB9LAotICBhbmQ2NDogZnVuY3Rpb24gKHgsIHkpIHsKLSAgICB2
YXIgbCA9ICh4IHwgMCkgJiAoeSB8IDApOwotICAgIHZhciBoID0gKE1hdGgucm91bmQoeCAvIDQy
OTQ5NjcyOTYpICYgTWF0aC5yb3VuZCh5IC8gNDI5NDk2NzI5NikpICogNDI5NDk2NzI5NjsKLSAg
ICByZXR1cm4gbCArIGg7Ci0gIH0sCi0gIHhvcjY0OiBmdW5jdGlvbiAoeCwgeSkgewotICAgIHZh
ciBsID0gKHggfCAwKSBeICh5IHwgMCk7Ci0gICAgdmFyIGggPSAoTWF0aC5yb3VuZCh4IC8gNDI5
NDk2NzI5NikgXiBNYXRoLnJvdW5kKHkgLyA0Mjk0OTY3Mjk2KSkgKiA0Mjk0OTY3Mjk2OwotICAg
IHJldHVybiBsICsgaDsKLSAgfSwKLSAgZ2V0TmF0aXZlVHlwZVNpemU6IGZ1bmN0aW9uICh0eXBl
LCBxdWFudHVtU2l6ZSkgewotICAgIGlmIChSdW50aW1lLlFVQU5UVU1fU0laRSA9PSAxKSByZXR1
cm4gMTsKLSAgICB2YXIgc2l6ZSA9IHsKLSAgICAgICclaTEnOiAxLAotICAgICAgJyVpOCc6IDEs
Ci0gICAgICAnJWkxNic6IDIsCi0gICAgICAnJWkzMic6IDQsCi0gICAgICAnJWk2NCc6IDgsCi0g
ICAgICAiJWZsb2F0IjogNCwKLSAgICAgICIlZG91YmxlIjogOAotICAgIH1bJyUnK3R5cGVdOyAv
LyBhZGQgJyUnIHNpbmNlIGZsb2F0IGFuZCBkb3VibGUgY29uZnVzZSBDbG9zdXJlIGNvbXBpbGVy
IGFzIGtleXMsIGFuZCBhbHNvIHNwaWRlcm1vbmtleSBhcyBhIGNvbXBpbGVyIHdpbGwgcmVtb3Zl
ICdzIGZyb20gJ19pOCcgZXRjCi0gICAgaWYgKCFzaXplKSB7Ci0gICAgICBpZiAodHlwZS5jaGFy
QXQodHlwZS5sZW5ndGgtMSkgPT0gJyonKSB7Ci0gICAgICAgIHNpemUgPSBSdW50aW1lLlFVQU5U
VU1fU0laRTsgLy8gQSBwb2ludGVyCi0gICAgICB9IGVsc2UgaWYgKHR5cGVbMF0gPT0gJ2knKSB7
Ci0gICAgICAgIHZhciBiaXRzID0gcGFyc2VJbnQodHlwZS5zdWJzdHIoMSkpOwotICAgICAgICBh
c3NlcnQoYml0cyAlIDggPT0gMCk7Ci0gICAgICAgIHNpemUgPSBiaXRzLzg7Ci0gICAgICB9Ci0g
ICAgfQotICAgIHJldHVybiBzaXplOwotICB9LAotICBnZXROYXRpdmVGaWVsZFNpemU6IGZ1bmN0
aW9uICh0eXBlKSB7Ci0gICAgcmV0dXJuIE1hdGgubWF4KFJ1bnRpbWUuZ2V0TmF0aXZlVHlwZVNp
emUodHlwZSksIFJ1bnRpbWUuUVVBTlRVTV9TSVpFKTsKLSAgfSwKLSAgZGVkdXA6IGZ1bmN0aW9u
IGRlZHVwKGl0ZW1zLCBpZGVudCkgewotICB2YXIgc2VlbiA9IHt9OwotICBpZiAoaWRlbnQpIHsK
LSAgICByZXR1cm4gaXRlbXMuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0pIHsKLSAgICAgIGlmIChzZWVu
W2l0ZW1baWRlbnRdXSkgcmV0dXJuIGZhbHNlOwotICAgICAgc2VlbltpdGVtW2lkZW50XV0gPSB0
cnVlOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSk7Ci0gIH0gZWxzZSB7Ci0gICAgcmV0dXJu
IGl0ZW1zLmZpbHRlcihmdW5jdGlvbihpdGVtKSB7Ci0gICAgICBpZiAoc2VlbltpdGVtXSkgcmV0
dXJuIGZhbHNlOwotICAgICAgc2VlbltpdGVtXSA9IHRydWU7Ci0gICAgICByZXR1cm4gdHJ1ZTsK
LSAgICB9KTsKLSAgfQotfSwKLSAgc2V0OiBmdW5jdGlvbiBzZXQoKSB7Ci0gIHZhciBhcmdzID0g
dHlwZW9mIGFyZ3VtZW50c1swXSA9PT0gJ29iamVjdCcgPyBhcmd1bWVudHNbMF0gOiBhcmd1bWVu
dHM7Ci0gIHZhciByZXQgPSB7fTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsg
aSsrKSB7Ci0gICAgcmV0W2FyZ3NbaV1dID0gMDsKLSAgfQotICByZXR1cm4gcmV0OwotfSwKLSAg
U1RBQ0tfQUxJR046IDgsCi0gIGdldEFsaWduU2l6ZTogZnVuY3Rpb24gKHR5cGUsIHNpemUsIHZh
cmFyZykgewotICAgIC8vIHdlIGFsaWduIGk2NHMgYW5kIGRvdWJsZXMgb24gNjQtYml0IGJvdW5k
YXJpZXMsIHVubGlrZSB4ODYKLSAgICBpZiAodHlwZSA9PSAnaTY0JyB8fCB0eXBlID09ICdkb3Vi
bGUnIHx8IHZhcmFyZykgcmV0dXJuIDg7Ci0gICAgaWYgKCF0eXBlKSByZXR1cm4gTWF0aC5taW4o
c2l6ZSwgOCk7IC8vIGFsaWduIHN0cnVjdHVyZXMgaW50ZXJuYWxseSB0byA2NCBiaXRzCi0gICAg
cmV0dXJuIE1hdGgubWluKHNpemUgfHwgKHR5cGUgPyBSdW50aW1lLmdldE5hdGl2ZUZpZWxkU2l6
ZSh0eXBlKSA6IDApLCBSdW50aW1lLlFVQU5UVU1fU0laRSk7Ci0gIH0sCi0gIGNhbGN1bGF0ZVN0
cnVjdEFsaWdubWVudDogZnVuY3Rpb24gY2FsY3VsYXRlU3RydWN0QWxpZ25tZW50KHR5cGUpIHsK
LSAgICB0eXBlLmZsYXRTaXplID0gMDsKLSAgICB0eXBlLmFsaWduU2l6ZSA9IDA7Ci0gICAgdmFy
IGRpZmZzID0gW107Ci0gICAgdmFyIHByZXYgPSAtMTsKLSAgICB2YXIgaW5kZXggPSAwOwotICAg
IHR5cGUuZmxhdEluZGV4ZXMgPSB0eXBlLmZpZWxkcy5tYXAoZnVuY3Rpb24oZmllbGQpIHsKLSAg
ICAgIGluZGV4Kys7Ci0gICAgICB2YXIgc2l6ZSwgYWxpZ25TaXplOwotICAgICAgaWYgKFJ1bnRp
bWUuaXNOdW1iZXJUeXBlKGZpZWxkKSB8fCBSdW50aW1lLmlzUG9pbnRlclR5cGUoZmllbGQpKSB7
Ci0gICAgICAgIHNpemUgPSBSdW50aW1lLmdldE5hdGl2ZVR5cGVTaXplKGZpZWxkKTsgLy8gcGFj
ayBjaGFyOyBjaGFyOyBpbiBzdHJ1Y3RzLCBhbHNvIGNoYXJbWF1zLgotICAgICAgICBhbGlnblNp
emUgPSBSdW50aW1lLmdldEFsaWduU2l6ZShmaWVsZCwgc2l6ZSk7Ci0gICAgICB9IGVsc2UgaWYg
KFJ1bnRpbWUuaXNTdHJ1Y3RUeXBlKGZpZWxkKSkgewotICAgICAgICBpZiAoZmllbGRbMV0gPT09
ICcwJykgewotICAgICAgICAgIC8vIHRoaXMgaXMgWzAgeCBzb21ldGhpbmddLiBXaGVuIGluc2lk
ZSBhbm90aGVyIHN0cnVjdHVyZSBsaWtlIGhlcmUsIGl0IG11c3QgYmUgYXQgdGhlIGVuZCwKLSAg
ICAgICAgICAvLyBhbmQgaXQgYWRkcyBubyBzaXplCi0gICAgICAgICAgLy8gWFhYIHRoaXMgaGFw
cGVucyBpbiBqYXZhLW5ib2R5IGZvciBleGFtcGxlLi4uIGFzc2VydChpbmRleCA9PT0gdHlwZS5m
aWVsZHMubGVuZ3RoLCAnemVyby1sZW5ndGggaW4gdGhlIG1pZGRsZSEnKTsKLSAgICAgICAgICBz
aXplID0gMDsKLSAgICAgICAgICBhbGlnblNpemUgPSB0eXBlLmFsaWduU2l6ZSB8fCBRVUFOVFVN
X1NJWkU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgc2l6ZSA9IFR5cGVzLnR5cGVzW2Zp
ZWxkXS5mbGF0U2l6ZTsKLSAgICAgICAgICBhbGlnblNpemUgPSBSdW50aW1lLmdldEFsaWduU2l6
ZShudWxsLCBUeXBlcy50eXBlc1tmaWVsZF0uYWxpZ25TaXplKTsKLSAgICAgICAgfQotICAgICAg
fSBlbHNlIGlmIChmaWVsZFswXSA9PSAnYicpIHsKLSAgICAgICAgLy8gYk4sIGxhcmdlIG51bWJl
ciBmaWVsZCwgbGlrZSBhIFtOIHggaThdCi0gICAgICAgIHNpemUgPSBmaWVsZC5zdWJzdHIoMSl8
MDsKLSAgICAgICAgYWxpZ25TaXplID0gMTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHRocm93
ICdVbmNsZWFyIHR5cGUgaW4gc3RydWN0OiAnICsgZmllbGQgKyAnLCBpbiAnICsgdHlwZS5uYW1l
XyArICcgOjogJyArIGR1bXAoVHlwZXMudHlwZXNbdHlwZS5uYW1lX10pOwotICAgICAgfQotICAg
ICAgaWYgKHR5cGUucGFja2VkKSBhbGlnblNpemUgPSAxOwotICAgICAgdHlwZS5hbGlnblNpemUg
PSBNYXRoLm1heCh0eXBlLmFsaWduU2l6ZSwgYWxpZ25TaXplKTsKLSAgICAgIHZhciBjdXJyID0g
UnVudGltZS5hbGlnbk1lbW9yeSh0eXBlLmZsYXRTaXplLCBhbGlnblNpemUpOyAvLyBpZiBuZWNl
c3NhcnksIHBsYWNlIHRoaXMgb24gYWxpZ25lZCBtZW1vcnkKLSAgICAgIHR5cGUuZmxhdFNpemUg
PSBjdXJyICsgc2l6ZTsKLSAgICAgIGlmIChwcmV2ID49IDApIHsKLSAgICAgICAgZGlmZnMucHVz
aChjdXJyLXByZXYpOwotICAgICAgfQotICAgICAgcHJldiA9IGN1cnI7Ci0gICAgICByZXR1cm4g
Y3VycjsKLSAgICB9KTsKLSAgICB0eXBlLmZsYXRTaXplID0gUnVudGltZS5hbGlnbk1lbW9yeSh0
eXBlLmZsYXRTaXplLCB0eXBlLmFsaWduU2l6ZSk7Ci0gICAgaWYgKGRpZmZzLmxlbmd0aCA9PSAw
KSB7Ci0gICAgICB0eXBlLmZsYXRGYWN0b3IgPSB0eXBlLmZsYXRTaXplOwotICAgIH0gZWxzZSBp
ZiAoUnVudGltZS5kZWR1cChkaWZmcykubGVuZ3RoID09IDEpIHsKLSAgICAgIHR5cGUuZmxhdEZh
Y3RvciA9IGRpZmZzWzBdOwotICAgIH0KLSAgICB0eXBlLm5lZWRzRmxhdHRlbmluZyA9ICh0eXBl
LmZsYXRGYWN0b3IgIT0gMSk7Ci0gICAgcmV0dXJuIHR5cGUuZmxhdEluZGV4ZXM7Ci0gIH0sCi0g
IGdlbmVyYXRlU3RydWN0SW5mbzogZnVuY3Rpb24gKHN0cnVjdCwgdHlwZU5hbWUsIG9mZnNldCkg
ewotICAgIHZhciB0eXBlLCBhbGlnbm1lbnQ7Ci0gICAgaWYgKHR5cGVOYW1lKSB7Ci0gICAgICBv
ZmZzZXQgPSBvZmZzZXQgfHwgMDsKLSAgICAgIHR5cGUgPSAodHlwZW9mIFR5cGVzID09PSAndW5k
ZWZpbmVkJyA/IFJ1bnRpbWUudHlwZUluZm8gOiBUeXBlcy50eXBlcylbdHlwZU5hbWVdOwotICAg
ICAgaWYgKCF0eXBlKSByZXR1cm4gbnVsbDsKLSAgICAgIGlmICh0eXBlLmZpZWxkcy5sZW5ndGgg
IT0gc3RydWN0Lmxlbmd0aCkgewotICAgICAgICBwcmludEVycignTnVtYmVyIG9mIG5hbWVkIGZp
ZWxkcyBtdXN0IG1hdGNoIHRoZSB0eXBlIGZvciAnICsgdHlwZU5hbWUgKyAnOiBwb3NzaWJseSBk
dXBsaWNhdGUgc3RydWN0IG5hbWVzLiBDYW5ub3QgcmV0dXJuIHN0cnVjdEluZm8nKTsKLSAgICAg
ICAgcmV0dXJuIG51bGw7Ci0gICAgICB9Ci0gICAgICBhbGlnbm1lbnQgPSB0eXBlLmZsYXRJbmRl
eGVzOwotICAgIH0gZWxzZSB7Ci0gICAgICB2YXIgdHlwZSA9IHsgZmllbGRzOiBzdHJ1Y3QubWFw
KGZ1bmN0aW9uKGl0ZW0pIHsgcmV0dXJuIGl0ZW1bMF0gfSkgfTsKLSAgICAgIGFsaWdubWVudCA9
IFJ1bnRpbWUuY2FsY3VsYXRlU3RydWN0QWxpZ25tZW50KHR5cGUpOwotICAgIH0KLSAgICB2YXIg
cmV0ID0gewotICAgICAgX19zaXplX186IHR5cGUuZmxhdFNpemUKLSAgICB9OwotICAgIGlmICh0
eXBlTmFtZSkgewotICAgICAgc3RydWN0LmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaSkgewotICAg
ICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgcmV0W2l0ZW1d
ID0gYWxpZ25tZW50W2ldICsgb2Zmc2V0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIC8v
IGVtYmVkZGVkIHN0cnVjdAotICAgICAgICAgIHZhciBrZXk7Ci0gICAgICAgICAgZm9yICh2YXIg
ayBpbiBpdGVtKSBrZXkgPSBrOwotICAgICAgICAgIHJldFtrZXldID0gUnVudGltZS5nZW5lcmF0
ZVN0cnVjdEluZm8oaXRlbVtrZXldLCB0eXBlLmZpZWxkc1tpXSwgYWxpZ25tZW50W2ldKTsKLSAg
ICAgICAgfQotICAgICAgfSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHN0cnVjdC5mb3JFYWNoKGZ1
bmN0aW9uKGl0ZW0sIGkpIHsKLSAgICAgICAgcmV0W2l0ZW1bMV1dID0gYWxpZ25tZW50W2ldOwot
ICAgICAgfSk7Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci0gIH0sCi0gIGR5bkNhbGw6IGZ1bmN0
aW9uIChzaWcsIHB0ciwgYXJncykgewotICAgIGlmIChhcmdzICYmIGFyZ3MubGVuZ3RoKSB7Ci0g
ICAgICBpZiAoIWFyZ3Muc3BsaWNlKSBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwo
YXJncyk7Ci0gICAgICBhcmdzLnNwbGljZSgwLCAwLCBwdHIpOwotICAgICAgcmV0dXJuIE1vZHVs
ZVsnZHluQ2FsbF8nICsgc2lnXS5hcHBseShudWxsLCBhcmdzKTsKLSAgICB9IGVsc2UgewotICAg
ICAgcmV0dXJuIE1vZHVsZVsnZHluQ2FsbF8nICsgc2lnXS5jYWxsKG51bGwsIHB0cik7Ci0gICAg
fQotICB9LAotICBmdW5jdGlvblBvaW50ZXJzOiBbXSwKLSAgYWRkRnVuY3Rpb246IGZ1bmN0aW9u
IChmdW5jKSB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBSdW50aW1lLmZ1bmN0aW9uUG9pbnRl
cnMubGVuZ3RoOyBpKyspIHsKLSAgICAgIGlmICghUnVudGltZS5mdW5jdGlvblBvaW50ZXJzW2ld
KSB7Ci0gICAgICAgIFJ1bnRpbWUuZnVuY3Rpb25Qb2ludGVyc1tpXSA9IGZ1bmM7Ci0gICAgICAg
IHJldHVybiAyICsgMippOwotICAgICAgfQotICAgIH0KLSAgICB0aHJvdyAnRmluaXNoZWQgdXAg
YWxsIHJlc2VydmVkIGZ1bmN0aW9uIHBvaW50ZXJzLiBVc2UgYSBoaWdoZXIgdmFsdWUgZm9yIFJF
U0VSVkVEX0ZVTkNUSU9OX1BPSU5URVJTLic7Ci0gIH0sCi0gIHJlbW92ZUZ1bmN0aW9uOiBmdW5j
dGlvbiAoaW5kZXgpIHsKLSAgICBSdW50aW1lLmZ1bmN0aW9uUG9pbnRlcnNbKGluZGV4LTIpLzJd
ID0gbnVsbDsKLSAgfSwKLSAgd2Fybk9uY2U6IGZ1bmN0aW9uICh0ZXh0KSB7Ci0gICAgaWYgKCFS
dW50aW1lLndhcm5PbmNlLnNob3duKSBSdW50aW1lLndhcm5PbmNlLnNob3duID0ge307Ci0gICAg
aWYgKCFSdW50aW1lLndhcm5PbmNlLnNob3duW3RleHRdKSB7Ci0gICAgICBSdW50aW1lLndhcm5P
bmNlLnNob3duW3RleHRdID0gMTsKLSAgICAgIE1vZHVsZS5wcmludEVycih0ZXh0KTsKLSAgICB9
Ci0gIH0sCi0gIGZ1bmNXcmFwcGVyczoge30sCi0gIGdldEZ1bmNXcmFwcGVyOiBmdW5jdGlvbiAo
ZnVuYywgc2lnKSB7Ci0gICAgYXNzZXJ0KHNpZyk7Ci0gICAgaWYgKCFSdW50aW1lLmZ1bmNXcmFw
cGVyc1tmdW5jXSkgewotICAgICAgUnVudGltZS5mdW5jV3JhcHBlcnNbZnVuY10gPSBmdW5jdGlv
bigpIHsKLSAgICAgICAgcmV0dXJuIFJ1bnRpbWUuZHluQ2FsbChzaWcsIGZ1bmMsIGFyZ3VtZW50
cyk7Ci0gICAgICB9OwotICAgIH0KLSAgICByZXR1cm4gUnVudGltZS5mdW5jV3JhcHBlcnNbZnVu
Y107Ci0gIH0sCi0gIFVURjhQcm9jZXNzb3I6IGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgYnVmZmVy
ID0gW107Ci0gICAgdmFyIG5lZWRlZCA9IDA7Ci0gICAgdGhpcy5wcm9jZXNzQ0NoYXIgPSBmdW5j
dGlvbiAoY29kZSkgewotICAgICAgY29kZSA9IGNvZGUgJiAweEZGOwotICAgICAgaWYgKGJ1ZmZl
ci5sZW5ndGggPT0gMCkgewotICAgICAgICBpZiAoKGNvZGUgJiAweDgwKSA9PSAweDAwKSB7ICAg
ICAgICAvLyAweHh4eHh4eAotICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGNv
ZGUpOwotICAgICAgICB9Ci0gICAgICAgIGJ1ZmZlci5wdXNoKGNvZGUpOwotICAgICAgICBpZiAo
KGNvZGUgJiAweEUwKSA9PSAweEMwKSB7ICAgICAgICAvLyAxMTB4eHh4eAotICAgICAgICAgIG5l
ZWRlZCA9IDE7Ci0gICAgICAgIH0gZWxzZSBpZiAoKGNvZGUgJiAweEYwKSA9PSAweEUwKSB7IC8v
IDExMTB4eHh4Ci0gICAgICAgICAgbmVlZGVkID0gMjsKLSAgICAgICAgfSBlbHNlIHsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gMTExMTB4eHgKLSAgICAgICAgICBuZWVkZWQgPSAzOwot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiAnJzsKLSAgICAgIH0KLSAgICAgIGlmIChuZWVkZWQp
IHsKLSAgICAgICAgYnVmZmVyLnB1c2goY29kZSk7Ci0gICAgICAgIG5lZWRlZC0tOwotICAgICAg
ICBpZiAobmVlZGVkID4gMCkgcmV0dXJuICcnOwotICAgICAgfQotICAgICAgdmFyIGMxID0gYnVm
ZmVyWzBdOwotICAgICAgdmFyIGMyID0gYnVmZmVyWzFdOwotICAgICAgdmFyIGMzID0gYnVmZmVy
WzJdOwotICAgICAgdmFyIGM0ID0gYnVmZmVyWzNdOwotICAgICAgdmFyIHJldDsKLSAgICAgIGlm
IChidWZmZXIubGVuZ3RoID09IDIpIHsKLSAgICAgICAgcmV0ID0gU3RyaW5nLmZyb21DaGFyQ29k
ZSgoKGMxICYgMHgxRikgPDwgNikgIHwgKGMyICYgMHgzRikpOwotICAgICAgfSBlbHNlIGlmIChi
dWZmZXIubGVuZ3RoID09IDMpIHsKLSAgICAgICAgcmV0ID0gU3RyaW5nLmZyb21DaGFyQ29kZSgo
KGMxICYgMHgwRikgPDwgMTIpIHwgKChjMiAmIDB4M0YpIDw8IDYpICB8IChjMyAmIDB4M0YpKTsK
LSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIGh0dHA6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVz
L2phdmFzY3JpcHQtZW5jb2Rpbmcjc3Vycm9nYXRlLWZvcm11bGFlCi0gICAgICAgIHZhciBjb2Rl
UG9pbnQgPSAoKGMxICYgMHgwNykgPDwgMTgpIHwgKChjMiAmIDB4M0YpIDw8IDEyKSB8Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAoKGMzICYgMHgzRikgPDwgNikgIHwgKGM0ICYgMHgzRik7Ci0g
ICAgICAgIHJldCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoCi0gICAgICAgICAgTWF0aC5mbG9vcigo
Y29kZVBvaW50IC0gMHgxMDAwMCkgLyAweDQwMCkgKyAweEQ4MDAsCi0gICAgICAgICAgKGNvZGVQ
b2ludCAtIDB4MTAwMDApICUgMHg0MDAgKyAweERDMDApOwotICAgICAgfQotICAgICAgYnVmZmVy
Lmxlbmd0aCA9IDA7Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH0KLSAgICB0aGlzLnByb2Nlc3NK
U1N0cmluZyA9IGZ1bmN0aW9uKHN0cmluZykgewotICAgICAgc3RyaW5nID0gdW5lc2NhcGUoZW5j
b2RlVVJJQ29tcG9uZW50KHN0cmluZykpOwotICAgICAgdmFyIHJldCA9IFtdOwotICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgcmV0LnB1c2go
c3RyaW5nLmNoYXJDb2RlQXQoaSkpOwotICAgICAgfQotICAgICAgcmV0dXJuIHJldDsKLSAgICB9
Ci0gIH0sCi0gIHN0YWNrQWxsb2M6IGZ1bmN0aW9uIChzaXplKSB7IHZhciByZXQgPSBTVEFDS1RP
UDtTVEFDS1RPUCA9IChTVEFDS1RPUCArIHNpemUpfDA7U1RBQ0tUT1AgPSAoKCgoU1RBQ0tUT1Ap
KzcpPj4zKTw8Myk7IHJldHVybiByZXQ7IH0sCi0gIHN0YXRpY0FsbG9jOiBmdW5jdGlvbiAoc2l6
ZSkgeyB2YXIgcmV0ID0gU1RBVElDVE9QO1NUQVRJQ1RPUCA9IChTVEFUSUNUT1AgKyBzaXplKXww
O1NUQVRJQ1RPUCA9ICgoKChTVEFUSUNUT1ApKzcpPj4zKTw8Myk7IHJldHVybiByZXQ7IH0sCi0g
IGR5bmFtaWNBbGxvYzogZnVuY3Rpb24gKHNpemUpIHsgdmFyIHJldCA9IERZTkFNSUNUT1A7RFlO
QU1JQ1RPUCA9IChEWU5BTUlDVE9QICsgc2l6ZSl8MDtEWU5BTUlDVE9QID0gKCgoKERZTkFNSUNU
T1ApKzcpPj4zKTw8Myk7IGlmIChEWU5BTUlDVE9QID49IFRPVEFMX01FTU9SWSkgZW5sYXJnZU1l
bW9yeSgpOzsgcmV0dXJuIHJldDsgfSwKLSAgYWxpZ25NZW1vcnk6IGZ1bmN0aW9uIChzaXplLHF1
YW50dW0pIHsgdmFyIHJldCA9IHNpemUgPSBNYXRoLmNlaWwoKHNpemUpLyhxdWFudHVtID8gcXVh
bnR1bSA6IDgpKSoocXVhbnR1bSA/IHF1YW50dW0gOiA4KTsgcmV0dXJuIHJldDsgfSwKLSAgbWFr
ZUJpZ0ludDogZnVuY3Rpb24gKGxvdyxoaWdoLHVuc2lnbmVkKSB7IHZhciByZXQgPSAodW5zaWdu
ZWQgPyAoKCsoKChsb3cpPj4+KDApKSkpKygoKygoKGhpZ2gpPj4+KDApKSkpKigrKDQyOTQ5Njcy
OTYpKSkpIDogKCgrKCgobG93KT4+PigwKSkpKSsoKCsoKChoaWdoKXwoMCkpKSkqKCsoNDI5NDk2
NzI5NikpKSkpOyByZXR1cm4gcmV0OyB9LAotICBHTE9CQUxfQkFTRTogOCwKLSAgUVVBTlRVTV9T
SVpFOiA0LAotICBfX2R1bW15X186IDAKLX0KLS8vPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLy8gUnVudGltZSBlc3NlbnRpYWxzCi0vLz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLXZhciBfX1RIUkVXX18gPSAwOyAvLyBVc2VkIGluIGNo
ZWNraW5nIGZvciB0aHJvd24gZXhjZXB0aW9ucy4KLXZhciBBQk9SVCA9IGZhbHNlOyAvLyB3aGV0
aGVyIHdlIGFyZSBxdWl0dGluZyB0aGUgYXBwbGljYXRpb24uIG5vIGNvZGUgc2hvdWxkIHJ1biBh
ZnRlciB0aGlzLiBzZXQgaW4gZXhpdCgpIGFuZCBhYm9ydCgpCi12YXIgRVhJVFNUQVRVUyA9IDA7
Ci12YXIgdW5kZWYgPSAwOwotLy8gdGVtcEludCBpcyB1c2VkIGZvciAzMi1iaXQgc2lnbmVkIHZh
bHVlcyBvciBzbWFsbGVyLiB0ZW1wQmlnSW50IGlzIHVzZWQKLS8vIGZvciAzMi1iaXQgdW5zaWdu
ZWQgdmFsdWVzIG9yIG1vcmUgdGhhbiAzMiBiaXRzLiBUT0RPOiBhdWRpdCBhbGwgdXNlcyBvZiB0
ZW1wSW50Ci12YXIgdGVtcFZhbHVlLCB0ZW1wSW50LCB0ZW1wQmlnSW50LCB0ZW1wSW50MiwgdGVt
cEJpZ0ludDIsIHRlbXBQYWlyLCB0ZW1wQmlnSW50SSwgdGVtcEJpZ0ludFIsIHRlbXBCaWdJbnRT
LCB0ZW1wQmlnSW50UCwgdGVtcEJpZ0ludEQ7Ci12YXIgdGVtcEk2NCwgdGVtcEk2NGI7Ci12YXIg
dGVtcFJldDAsIHRlbXBSZXQxLCB0ZW1wUmV0MiwgdGVtcFJldDMsIHRlbXBSZXQ0LCB0ZW1wUmV0
NSwgdGVtcFJldDYsIHRlbXBSZXQ3LCB0ZW1wUmV0OCwgdGVtcFJldDk7Ci1mdW5jdGlvbiBhc3Nl
cnQoY29uZGl0aW9uLCB0ZXh0KSB7Ci0gIGlmICghY29uZGl0aW9uKSB7Ci0gICAgYWJvcnQoJ0Fz
c2VydGlvbiBmYWlsZWQ6ICcgKyB0ZXh0KTsKLSAgfQotfQotdmFyIGdsb2JhbFNjb3BlID0gdGhp
czsKLS8vIEMgY2FsbGluZyBpbnRlcmZhY2UuIEEgY29udmVuaWVudCB3YXkgdG8gY2FsbCBDIGZ1
bmN0aW9ucyAoaW4gQyBmaWxlcywgb3IKLS8vIGRlZmluZWQgd2l0aCBleHRlcm4gIkMiKS4KLS8v
Ci0vLyBOb3RlOiBMTFZNIG9wdGltaXphdGlvbnMgY2FuIGlubGluZSBhbmQgcmVtb3ZlIGZ1bmN0
aW9ucywgYWZ0ZXIgd2hpY2ggeW91IHdpbGwgbm90IGJlCi0vLyAgICAgICBhYmxlIHRvIGNhbGwg
dGhlbS4gQ2xvc3VyZSBjYW4gYWxzbyBkbyBzby4gVG8gYXZvaWQgdGhhdCwgYWRkIHlvdXIgZnVu
Y3Rpb24gdG8KLS8vICAgICAgIHRoZSBleHBvcnRzIHVzaW5nIHNvbWV0aGluZyBsaWtlCi0vLwot
Ly8gICAgICAgICAtcyBFWFBPUlRFRF9GVU5DVElPTlM9J1siX21haW4iLCAiX215ZnVuYyJdJwot
Ly8KLS8vIEBwYXJhbSBpZGVudCAgICAgIFRoZSBuYW1lIG9mIHRoZSBDIGZ1bmN0aW9uIChub3Rl
IHRoYXQgQysrIGZ1bmN0aW9ucyB3aWxsIGJlIG5hbWUtbWFuZ2xlZCAtIHVzZSBleHRlcm4gIkMi
KQotLy8gQHBhcmFtIHJldHVyblR5cGUgVGhlIHJldHVybiB0eXBlIG9mIHRoZSBmdW5jdGlvbiwg
b25lIG9mIHRoZSBKUyB0eXBlcyAnbnVtYmVyJywgJ3N0cmluZycgb3IgJ2FycmF5JyAodXNlICdu
dW1iZXInIGZvciBhbnkgQyBwb2ludGVyLCBhbmQKLS8vICAgICAgICAgICAgICAgICAgICdhcnJh
eScgZm9yIEphdmFTY3JpcHQgYXJyYXlzIGFuZCB0eXBlZCBhcnJheXM7IG5vdGUgdGhhdCBhcnJh
eXMgYXJlIDgtYml0KS4KLS8vIEBwYXJhbSBhcmdUeXBlcyAgIEFuIGFycmF5IG9mIHRoZSB0eXBl
cyBvZiBhcmd1bWVudHMgZm9yIHRoZSBmdW5jdGlvbiAoaWYgdGhlcmUgYXJlIG5vIGFyZ3VtZW50
cywgdGhpcyBjYW4gYmUgb21taXR0ZWQpLiBUeXBlcyBhcmUgYXMgaW4gcmV0dXJuVHlwZSwKLS8v
ICAgICAgICAgICAgICAgICAgIGV4Y2VwdCB0aGF0ICdhcnJheScgaXMgbm90IHBvc3NpYmxlICh0
aGVyZSBpcyBubyB3YXkgZm9yIHVzIHRvIGtub3cgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkpCi0v
LyBAcGFyYW0gYXJncyAgICAgICBBbiBhcnJheSBvZiB0aGUgYXJndW1lbnRzIHRvIHRoZSBmdW5j
dGlvbiwgYXMgbmF0aXZlIEpTIHZhbHVlcyAoYXMgaW4gcmV0dXJuVHlwZSkKLS8vICAgICAgICAg
ICAgICAgICAgIE5vdGUgdGhhdCBzdHJpbmcgYXJndW1lbnRzIHdpbGwgYmUgc3RvcmVkIG9uIHRo
ZSBzdGFjayAodGhlIEpTIHN0cmluZyB3aWxsIGJlY29tZSBhIEMgc3RyaW5nIG9uIHRoZSBzdGFj
aykuCi0vLyBAcmV0dXJuICAgICAgICAgICBUaGUgcmV0dXJuIHZhbHVlLCBhcyBhIG5hdGl2ZSBK
UyB2YWx1ZSAoYXMgaW4gcmV0dXJuVHlwZSkKLWZ1bmN0aW9uIGNjYWxsKGlkZW50LCByZXR1cm5U
eXBlLCBhcmdUeXBlcywgYXJncykgewotICByZXR1cm4gY2NhbGxGdW5jKGdldENGdW5jKGlkZW50
KSwgcmV0dXJuVHlwZSwgYXJnVHlwZXMsIGFyZ3MpOwotfQotTW9kdWxlWyJjY2FsbCJdID0gY2Nh
bGw7Ci0vLyBSZXR1cm5zIHRoZSBDIGZ1bmN0aW9uIHdpdGggYSBzcGVjaWZpZWQgaWRlbnRpZmll
ciAoZm9yIEMrKywgeW91IG5lZWQgdG8gZG8gbWFudWFsIG5hbWUgbWFuZ2xpbmcpCi1mdW5jdGlv
biBnZXRDRnVuYyhpZGVudCkgewotICB0cnkgewotICAgIHZhciBmdW5jID0gTW9kdWxlWydfJyAr
IGlkZW50XTsgLy8gY2xvc3VyZSBleHBvcnRlZCBmdW5jdGlvbgotICAgIGlmICghZnVuYykgZnVu
YyA9IGV2YWwoJ18nICsgaWRlbnQpOyAvLyBleHBsaWNpdCBsb29rdXAKLSAgfSBjYXRjaChlKSB7
Ci0gIH0KLSAgYXNzZXJ0KGZ1bmMsICdDYW5ub3QgY2FsbCB1bmtub3duIGZ1bmN0aW9uICcgKyBp
ZGVudCArICcgKHBlcmhhcHMgTExWTSBvcHRpbWl6YXRpb25zIG9yIGNsb3N1cmUgcmVtb3ZlZCBp
dD8pJyk7Ci0gIHJldHVybiBmdW5jOwotfQotLy8gSW50ZXJuYWwgZnVuY3Rpb24gdGhhdCBkb2Vz
IGEgQyBjYWxsIHVzaW5nIGEgZnVuY3Rpb24sIG5vdCBhbiBpZGVudGlmaWVyCi1mdW5jdGlvbiBj
Y2FsbEZ1bmMoZnVuYywgcmV0dXJuVHlwZSwgYXJnVHlwZXMsIGFyZ3MpIHsKLSAgdmFyIHN0YWNr
ID0gMDsKLSAgZnVuY3Rpb24gdG9DKHZhbHVlLCB0eXBlKSB7Ci0gICAgaWYgKHR5cGUgPT0gJ3N0
cmluZycpIHsKLSAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVk
IHx8IHZhbHVlID09PSAwKSByZXR1cm4gMDsgLy8gbnVsbCBzdHJpbmcKLSAgICAgIGlmICghc3Rh
Y2spIHN0YWNrID0gUnVudGltZS5zdGFja1NhdmUoKTsKLSAgICAgIHZhciByZXQgPSBSdW50aW1l
LnN0YWNrQWxsb2ModmFsdWUubGVuZ3RoKzEpOwotICAgICAgd3JpdGVTdHJpbmdUb01lbW9yeSh2
YWx1ZSwgcmV0KTsKLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfSBlbHNlIGlmICh0eXBlID09ICdh
cnJheScpIHsKLSAgICAgIGlmICghc3RhY2spIHN0YWNrID0gUnVudGltZS5zdGFja1NhdmUoKTsK
LSAgICAgIHZhciByZXQgPSBSdW50aW1lLnN0YWNrQWxsb2ModmFsdWUubGVuZ3RoKTsKLSAgICAg
IHdyaXRlQXJyYXlUb01lbW9yeSh2YWx1ZSwgcmV0KTsKLSAgICAgIHJldHVybiByZXQ7Ci0gICAg
fQotICAgIHJldHVybiB2YWx1ZTsKLSAgfQotICBmdW5jdGlvbiBmcm9tQyh2YWx1ZSwgdHlwZSkg
ewotICAgIGlmICh0eXBlID09ICdzdHJpbmcnKSB7Ci0gICAgICByZXR1cm4gUG9pbnRlcl9zdHJp
bmdpZnkodmFsdWUpOwotICAgIH0KLSAgICBhc3NlcnQodHlwZSAhPSAnYXJyYXknKTsKLSAgICBy
ZXR1cm4gdmFsdWU7Ci0gIH0KLSAgdmFyIGkgPSAwOwotICB2YXIgY0FyZ3MgPSBhcmdzID8gYXJn
cy5tYXAoZnVuY3Rpb24oYXJnKSB7Ci0gICAgcmV0dXJuIHRvQyhhcmcsIGFyZ1R5cGVzW2krK10p
OwotICB9KSA6IFtdOwotICB2YXIgcmV0ID0gZnJvbUMoZnVuYy5hcHBseShudWxsLCBjQXJncyks
IHJldHVyblR5cGUpOwotICBpZiAoc3RhY2spIFJ1bnRpbWUuc3RhY2tSZXN0b3JlKHN0YWNrKTsK
LSAgcmV0dXJuIHJldDsKLX0KLS8vIFJldHVybnMgYSBuYXRpdmUgSlMgd3JhcHBlciBmb3IgYSBD
IGZ1bmN0aW9uLiBUaGlzIGlzIHNpbWlsYXIgdG8gY2NhbGwsIGJ1dAotLy8gcmV0dXJucyBhIGZ1
bmN0aW9uIHlvdSBjYW4gY2FsbCByZXBlYXRlZGx5IGluIGEgbm9ybWFsIHdheS4gRm9yIGV4YW1w
bGU6Ci0vLwotLy8gICB2YXIgbXlfZnVuY3Rpb24gPSBjd3JhcCgnbXlfY19mdW5jdGlvbicsICdu
dW1iZXInLCBbJ251bWJlcicsICdudW1iZXInXSk7Ci0vLyAgIGFsZXJ0KG15X2Z1bmN0aW9uKDUs
IDIyKSk7Ci0vLyAgIGFsZXJ0KG15X2Z1bmN0aW9uKDk5LCAxMikpOwotLy8KLWZ1bmN0aW9uIGN3
cmFwKGlkZW50LCByZXR1cm5UeXBlLCBhcmdUeXBlcykgewotICB2YXIgZnVuYyA9IGdldENGdW5j
KGlkZW50KTsKLSAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgIHJldHVybiBjY2FsbEZ1bmMoZnVu
YywgcmV0dXJuVHlwZSwgYXJnVHlwZXMsIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3Vt
ZW50cykpOwotICB9Ci19Ci1Nb2R1bGVbImN3cmFwIl0gPSBjd3JhcDsKLS8vIFNldHMgYSB2YWx1
ZSBpbiBtZW1vcnkgaW4gYSBkeW5hbWljIHdheSBhdCBydW4tdGltZS4gVXNlcyB0aGUKLS8vIHR5
cGUgZGF0YS4gVGhpcyBpcyB0aGUgc2FtZSBhcyBtYWtlU2V0VmFsdWUsIGV4Y2VwdCB0aGF0Ci0v
LyBtYWtlU2V0VmFsdWUgaXMgZG9uZSBhdCBjb21waWxlLXRpbWUgYW5kIGdlbmVyYXRlcyB0aGUg
bmVlZGVkCi0vLyBjb2RlIHRoZW4sIHdoZXJlYXMgdGhpcyBmdW5jdGlvbiBwaWNrcyB0aGUgcmln
aHQgY29kZSBhdAotLy8gcnVuLXRpbWUuCi0vLyBOb3RlIHRoYXQgc2V0VmFsdWUgYW5kIGdldFZh
bHVlIG9ubHkgZG8gKmFsaWduZWQqIHdyaXRlcyBhbmQgcmVhZHMhCi0vLyBOb3RlIHRoYXQgY2Nh
bGwgdXNlcyBKUyB0eXBlcyBhcyBmb3IgZGVmaW5pbmcgdHlwZXMsIHdoaWxlIHNldFZhbHVlIGFu
ZAotLy8gZ2V0VmFsdWUgbmVlZCBMTFZNIHR5cGVzICgnaTgnLCAnaTMyJykgLSB0aGlzIGlzIGEg
bG93ZXItbGV2ZWwgb3BlcmF0aW9uCi1mdW5jdGlvbiBzZXRWYWx1ZShwdHIsIHZhbHVlLCB0eXBl
LCBub1NhZmUpIHsKLSAgdHlwZSA9IHR5cGUgfHwgJ2k4JzsKLSAgaWYgKHR5cGUuY2hhckF0KHR5
cGUubGVuZ3RoLTEpID09PSAnKicpIHR5cGUgPSAnaTMyJzsgLy8gcG9pbnRlcnMgYXJlIDMyLWJp
dAotICAgIHN3aXRjaCh0eXBlKSB7Ci0gICAgICBjYXNlICdpMSc6IEhFQVA4WyhwdHIpXT12YWx1
ZTsgYnJlYWs7Ci0gICAgICBjYXNlICdpOCc6IEhFQVA4WyhwdHIpXT12YWx1ZTsgYnJlYWs7Ci0g
ICAgICBjYXNlICdpMTYnOiBIRUFQMTZbKChwdHIpPj4xKV09dmFsdWU7IGJyZWFrOwotICAgICAg
Y2FzZSAnaTMyJzogSEVBUDMyWygocHRyKT4+MildPXZhbHVlOyBicmVhazsKLSAgICAgIGNhc2Ug
J2k2NCc6ICh0ZW1wSTY0ID0gW3ZhbHVlPj4+MCwodGVtcERvdWJsZT12YWx1ZSwoKyhNYXRoLmFi
cyh0ZW1wRG91YmxlKSkpID49ICgrKDEpKSA/ICh0ZW1wRG91YmxlID4gKCsoMCkpID8gKChNYXRo
Lm1pbigoKyhNYXRoLmZsb29yKCh0ZW1wRG91YmxlKS8oKyg0Mjk0OTY3Mjk2KSkpKSksICgrKDQy
OTQ5NjcyOTUpKSkpfDApPj4+MCA6ICh+figoKyhNYXRoLmNlaWwoKHRlbXBEb3VibGUgLSArKCgo
fn4odGVtcERvdWJsZSkpKT4+PjApKS8oKyg0Mjk0OTY3Mjk2KSkpKSkpKT4+PjApIDogMCldLEhF
QVAzMlsoKHB0cik+PjIpXT10ZW1wSTY0WzBdLEhFQVAzMlsoKChwdHIpKyg0KSk+PjIpXT10ZW1w
STY0WzFdKTsgYnJlYWs7Ci0gICAgICBjYXNlICdmbG9hdCc6IEhFQVBGMzJbKChwdHIpPj4yKV09
dmFsdWU7IGJyZWFrOwotICAgICAgY2FzZSAnZG91YmxlJzogSEVBUEY2NFsoKHB0cik+PjMpXT12
YWx1ZTsgYnJlYWs7Ci0gICAgICBkZWZhdWx0OiBhYm9ydCgnaW52YWxpZCB0eXBlIGZvciBzZXRW
YWx1ZTogJyArIHR5cGUpOwotICAgIH0KLX0KLU1vZHVsZVsnc2V0VmFsdWUnXSA9IHNldFZhbHVl
OwotLy8gUGFyYWxsZWwgdG8gc2V0VmFsdWUuCi1mdW5jdGlvbiBnZXRWYWx1ZShwdHIsIHR5cGUs
IG5vU2FmZSkgewotICB0eXBlID0gdHlwZSB8fCAnaTgnOwotICBpZiAodHlwZS5jaGFyQXQodHlw
ZS5sZW5ndGgtMSkgPT09ICcqJykgdHlwZSA9ICdpMzInOyAvLyBwb2ludGVycyBhcmUgMzItYml0
Ci0gICAgc3dpdGNoKHR5cGUpIHsKLSAgICAgIGNhc2UgJ2kxJzogcmV0dXJuIEhFQVA4WyhwdHIp
XTsKLSAgICAgIGNhc2UgJ2k4JzogcmV0dXJuIEhFQVA4WyhwdHIpXTsKLSAgICAgIGNhc2UgJ2kx
Nic6IHJldHVybiBIRUFQMTZbKChwdHIpPj4xKV07Ci0gICAgICBjYXNlICdpMzInOiByZXR1cm4g
SEVBUDMyWygocHRyKT4+MildOwotICAgICAgY2FzZSAnaTY0JzogcmV0dXJuIEhFQVAzMlsoKHB0
cik+PjIpXTsKLSAgICAgIGNhc2UgJ2Zsb2F0JzogcmV0dXJuIEhFQVBGMzJbKChwdHIpPj4yKV07
Ci0gICAgICBjYXNlICdkb3VibGUnOiByZXR1cm4gSEVBUEY2NFsoKHB0cik+PjMpXTsKLSAgICAg
IGRlZmF1bHQ6IGFib3J0KCdpbnZhbGlkIHR5cGUgZm9yIHNldFZhbHVlOiAnICsgdHlwZSk7Ci0g
ICAgfQotICByZXR1cm4gbnVsbDsKLX0KLU1vZHVsZVsnZ2V0VmFsdWUnXSA9IGdldFZhbHVlOwot
dmFyIEFMTE9DX05PUk1BTCA9IDA7IC8vIFRyaWVzIHRvIHVzZSBfbWFsbG9jKCkKLXZhciBBTExP
Q19TVEFDSyA9IDE7IC8vIExpdmVzIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIGN1cnJlbnQgZnVu
Y3Rpb24gY2FsbAotdmFyIEFMTE9DX1NUQVRJQyA9IDI7IC8vIENhbm5vdCBiZSBmcmVlZAotdmFy
IEFMTE9DX0RZTkFNSUMgPSAzOyAvLyBDYW5ub3QgYmUgZnJlZWQgZXhjZXB0IHRocm91Z2ggc2Jy
awotdmFyIEFMTE9DX05PTkUgPSA0OyAvLyBEbyBub3QgYWxsb2NhdGUKLU1vZHVsZVsnQUxMT0Nf
Tk9STUFMJ10gPSBBTExPQ19OT1JNQUw7Ci1Nb2R1bGVbJ0FMTE9DX1NUQUNLJ10gPSBBTExPQ19T
VEFDSzsKLU1vZHVsZVsnQUxMT0NfU1RBVElDJ10gPSBBTExPQ19TVEFUSUM7Ci1Nb2R1bGVbJ0FM
TE9DX0RZTkFNSUMnXSA9IEFMTE9DX0RZTkFNSUM7Ci1Nb2R1bGVbJ0FMTE9DX05PTkUnXSA9IEFM
TE9DX05PTkU7Ci0vLyBhbGxvY2F0ZSgpOiBUaGlzIGlzIGZvciBpbnRlcm5hbCB1c2UuIFlvdSBj
YW4gdXNlIGl0IHlvdXJzZWxmIGFzIHdlbGwsIGJ1dCB0aGUgaW50ZXJmYWNlCi0vLyAgICAgICAg
ICAgICBpcyBhIGxpdHRsZSB0cmlja3kgKHNlZSBkb2NzIHJpZ2h0IGJlbG93KS4gVGhlIHJlYXNv
biBpcyB0aGF0IGl0IGlzIG9wdGltaXplZAotLy8gICAgICAgICAgICAgZm9yIG11bHRpcGxlIHN5
bnRheGVzIHRvIHNhdmUgc3BhY2UgaW4gZ2VuZXJhdGVkIGNvZGUuIFNvIHlvdSBzaG91bGQKLS8v
ICAgICAgICAgICAgIG5vcm1hbGx5IG5vdCB1c2UgYWxsb2NhdGUoKSwgYW5kIGluc3RlYWQgYWxs
b2NhdGUgbWVtb3J5IHVzaW5nIF9tYWxsb2MoKSwKLS8vICAgICAgICAgICAgIGluaXRpYWxpemUg
aXQgd2l0aCBzZXRWYWx1ZSgpLCBhbmQgc28gZm9ydGguCi0vLyBAc2xhYjogQW4gYXJyYXkgb2Yg
ZGF0YSwgb3IgYSBudW1iZXIuIElmIGEgbnVtYmVyLCB0aGVuIHRoZSBzaXplIG9mIHRoZSBibG9j
ayB0byBhbGxvY2F0ZSwKLS8vICAgICAgICBpbiAqYnl0ZXMqIChub3RlIHRoYXQgdGhpcyBpcyBz
b21ldGltZXMgY29uZnVzaW5nOiB0aGUgbmV4dCBwYXJhbWV0ZXIgZG9lcyBub3QKLS8vICAgICAg
ICBhZmZlY3QgdGhpcyEpCi0vLyBAdHlwZXM6IEVpdGhlciBhbiBhcnJheSBvZiB0eXBlcywgb25l
IGZvciBlYWNoIGJ5dGUgKG9yIDAgaWYgbm8gdHlwZSBhdCB0aGF0IHBvc2l0aW9uKSwKLS8vICAg
ICAgICAgb3IgYSBzaW5nbGUgdHlwZSB3aGljaCBpcyB1c2VkIGZvciB0aGUgZW50aXJlIGJsb2Nr
LiBUaGlzIG9ubHkgbWF0dGVycyBpZiB0aGVyZQotLy8gICAgICAgICBpcyBpbml0aWFsIGRhdGEg
LSBpZiBAc2xhYiBpcyBhIG51bWJlciwgdGhlbiB0aGlzIGRvZXMgbm90IG1hdHRlciBhdCBhbGwg
YW5kIGlzCi0vLyAgICAgICAgIGlnbm9yZWQuCi0vLyBAYWxsb2NhdG9yOiBIb3cgdG8gYWxsb2Nh
dGUgbWVtb3J5LCBzZWUgQUxMT0NfKgotZnVuY3Rpb24gYWxsb2NhdGUoc2xhYiwgdHlwZXMsIGFs
bG9jYXRvciwgcHRyKSB7Ci0gIHZhciB6ZXJvaW5pdCwgc2l6ZTsKLSAgaWYgKHR5cGVvZiBzbGFi
ID09PSAnbnVtYmVyJykgewotICAgIHplcm9pbml0ID0gdHJ1ZTsKLSAgICBzaXplID0gc2xhYjsK
LSAgfSBlbHNlIHsKLSAgICB6ZXJvaW5pdCA9IGZhbHNlOwotICAgIHNpemUgPSBzbGFiLmxlbmd0
aDsKLSAgfQotICB2YXIgc2luZ2xlVHlwZSA9IHR5cGVvZiB0eXBlcyA9PT0gJ3N0cmluZycgPyB0
eXBlcyA6IG51bGw7Ci0gIHZhciByZXQ7Ci0gIGlmIChhbGxvY2F0b3IgPT0gQUxMT0NfTk9ORSkg
ewotICAgIHJldCA9IHB0cjsKLSAgfSBlbHNlIHsKLSAgICByZXQgPSBbX21hbGxvYywgUnVudGlt
ZS5zdGFja0FsbG9jLCBSdW50aW1lLnN0YXRpY0FsbG9jLCBSdW50aW1lLmR5bmFtaWNBbGxvY11b
YWxsb2NhdG9yID09PSB1bmRlZmluZWQgPyBBTExPQ19TVEFUSUMgOiBhbGxvY2F0b3JdKE1hdGgu
bWF4KHNpemUsIHNpbmdsZVR5cGUgPyAxIDogdHlwZXMubGVuZ3RoKSk7Ci0gIH0KLSAgaWYgKHpl
cm9pbml0KSB7Ci0gICAgdmFyIHB0ciA9IHJldCwgc3RvcDsKLSAgICBhc3NlcnQoKHJldCAmIDMp
ID09IDApOwotICAgIHN0b3AgPSByZXQgKyAoc2l6ZSAmIH4zKTsKLSAgICBmb3IgKDsgcHRyIDwg
c3RvcDsgcHRyICs9IDQpIHsKLSAgICAgIEhFQVAzMlsoKHB0cik+PjIpXT0wOwotICAgIH0KLSAg
ICBzdG9wID0gcmV0ICsgc2l6ZTsKLSAgICB3aGlsZSAocHRyIDwgc3RvcCkgewotICAgICAgSEVB
UDhbKChwdHIrKyl8MCldPTA7Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci0gIH0KLSAgaWYgKHNp
bmdsZVR5cGUgPT09ICdpOCcpIHsKLSAgICBpZiAoc2xhYi5zdWJhcnJheSB8fCBzbGFiLnNsaWNl
KSB7Ci0gICAgICBIRUFQVTguc2V0KHNsYWIsIHJldCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIEhF
QVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkoc2xhYiksIHJldCk7Ci0gICAgfQotICAgIHJldHVybiBy
ZXQ7Ci0gIH0KLSAgdmFyIGkgPSAwLCB0eXBlLCB0eXBlU2l6ZSwgcHJldmlvdXNUeXBlOwotICB3
aGlsZSAoaSA8IHNpemUpIHsKLSAgICB2YXIgY3VyciA9IHNsYWJbaV07Ci0gICAgaWYgKHR5cGVv
ZiBjdXJyID09PSAnZnVuY3Rpb24nKSB7Ci0gICAgICBjdXJyID0gUnVudGltZS5nZXRGdW5jdGlv
bkluZGV4KGN1cnIpOwotICAgIH0KLSAgICB0eXBlID0gc2luZ2xlVHlwZSB8fCB0eXBlc1tpXTsK
LSAgICBpZiAodHlwZSA9PT0gMCkgewotICAgICAgaSsrOwotICAgICAgY29udGludWU7Ci0gICAg
fQotICAgIGlmICh0eXBlID09ICdpNjQnKSB0eXBlID0gJ2kzMic7IC8vIHNwZWNpYWwgY2FzZTog
d2UgaGF2ZSBvbmUgaTMyIGhlcmUsIGFuZCBvbmUgaTMyIGxhdGVyCi0gICAgc2V0VmFsdWUocmV0
K2ksIGN1cnIsIHR5cGUpOwotICAgIC8vIG5vIG5lZWQgdG8gbG9vayB1cCBzaXplIHVubGVzcyB0
eXBlIGNoYW5nZXMsIHNvIGNhY2hlIGl0Ci0gICAgaWYgKHByZXZpb3VzVHlwZSAhPT0gdHlwZSkg
ewotICAgICAgdHlwZVNpemUgPSBSdW50aW1lLmdldE5hdGl2ZVR5cGVTaXplKHR5cGUpOwotICAg
ICAgcHJldmlvdXNUeXBlID0gdHlwZTsKLSAgICB9Ci0gICAgaSArPSB0eXBlU2l6ZTsKLSAgfQot
ICByZXR1cm4gcmV0OwotfQotTW9kdWxlWydhbGxvY2F0ZSddID0gYWxsb2NhdGU7Ci1mdW5jdGlv
biBQb2ludGVyX3N0cmluZ2lmeShwdHIsIC8qIG9wdGlvbmFsICovIGxlbmd0aCkgewotICAvLyBU
T0RPOiB1c2UgVGV4dERlY29kZXIKLSAgLy8gRmluZCB0aGUgbGVuZ3RoLCBhbmQgY2hlY2sgZm9y
IFVURiB3aGlsZSBkb2luZyBzbwotICB2YXIgaGFzVXRmID0gZmFsc2U7Ci0gIHZhciB0OwotICB2
YXIgaSA9IDA7Ci0gIHdoaWxlICgxKSB7Ci0gICAgdCA9IEhFQVBVOFsoKChwdHIpKyhpKSl8MCld
OwotICAgIGlmICh0ID49IDEyOCkgaGFzVXRmID0gdHJ1ZTsKLSAgICBlbHNlIGlmICh0ID09IDAg
JiYgIWxlbmd0aCkgYnJlYWs7Ci0gICAgaSsrOwotICAgIGlmIChsZW5ndGggJiYgaSA9PSBsZW5n
dGgpIGJyZWFrOwotICB9Ci0gIGlmICghbGVuZ3RoKSBsZW5ndGggPSBpOwotICB2YXIgcmV0ID0g
Jyc7Ci0gIGlmICghaGFzVXRmKSB7Ci0gICAgdmFyIE1BWF9DSFVOSyA9IDEwMjQ7IC8vIHNwbGl0
IHVwIGludG8gY2h1bmtzLCBiZWNhdXNlIC5hcHBseSBvbiBhIGh1Z2Ugc3RyaW5nIGNhbiBvdmVy
ZmxvdyB0aGUgc3RhY2sKLSAgICB2YXIgY3VycjsKLSAgICB3aGlsZSAobGVuZ3RoID4gMCkgewot
ICAgICAgY3VyciA9IFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLCBIRUFQVTguc3Vi
YXJyYXkocHRyLCBwdHIgKyBNYXRoLm1pbihsZW5ndGgsIE1BWF9DSFVOSykpKTsKLSAgICAgIHJl
dCA9IHJldCA/IHJldCArIGN1cnIgOiBjdXJyOwotICAgICAgcHRyICs9IE1BWF9DSFVOSzsKLSAg
ICAgIGxlbmd0aCAtPSBNQVhfQ0hVTks7Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci0gIH0KLSAg
dmFyIHV0ZjggPSBuZXcgUnVudGltZS5VVEY4UHJvY2Vzc29yKCk7Ci0gIGZvciAoaSA9IDA7IGkg
PCBsZW5ndGg7IGkrKykgewotICAgIHQgPSBIRUFQVThbKCgocHRyKSsoaSkpfDApXTsKLSAgICBy
ZXQgKz0gdXRmOC5wcm9jZXNzQ0NoYXIodCk7Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0KLU1vZHVs
ZVsnUG9pbnRlcl9zdHJpbmdpZnknXSA9IFBvaW50ZXJfc3RyaW5naWZ5OwotLy8gTWVtb3J5IG1h
bmFnZW1lbnQKLXZhciBQQUdFX1NJWkUgPSA0MDk2OwotZnVuY3Rpb24gYWxpZ25NZW1vcnlQYWdl
KHgpIHsKLSAgcmV0dXJuICgoeCs0MDk1KT4+MTIpPDwxMjsKLX0KLXZhciBIRUFQOwotdmFyIEhF
QVA4LCBIRUFQVTgsIEhFQVAxNiwgSEVBUFUxNiwgSEVBUDMyLCBIRUFQVTMyLCBIRUFQRjMyLCBI
RUFQRjY0OwotdmFyIFNUQVRJQ19CQVNFID0gMCwgU1RBVElDVE9QID0gMCwgc3RhdGljU2VhbGVk
ID0gZmFsc2U7IC8vIHN0YXRpYyBhcmVhCi12YXIgU1RBQ0tfQkFTRSA9IDAsIFNUQUNLVE9QID0g
MCwgU1RBQ0tfTUFYID0gMDsgLy8gc3RhY2sgYXJlYQotdmFyIERZTkFNSUNfQkFTRSA9IDAsIERZ
TkFNSUNUT1AgPSAwOyAvLyBkeW5hbWljIGFyZWEgaGFuZGxlZCBieSBzYnJrCi1mdW5jdGlvbiBl
bmxhcmdlTWVtb3J5KCkgewotICBhYm9ydCgnQ2Fubm90IGVubGFyZ2UgbWVtb3J5IGFycmF5cyBp
biBhc20uanMuIEVpdGhlciAoMSkgY29tcGlsZSB3aXRoIC1zIFRPVEFMX01FTU9SWT1YIHdpdGgg
WCBoaWdoZXIgdGhhbiB0aGUgY3VycmVudCB2YWx1ZSwgb3IgKDIpIHNldCBNb2R1bGUuVE9UQUxf
TUVNT1JZIGJlZm9yZSB0aGUgcHJvZ3JhbSBydW5zLicpOwotfQotdmFyIFRPVEFMX1NUQUNLID0g
TW9kdWxlWydUT1RBTF9TVEFDSyddIHx8IDUyNDI4ODA7Ci12YXIgVE9UQUxfTUVNT1JZID0gTW9k
dWxlWydUT1RBTF9NRU1PUlknXSB8fCAxNjc3NzIxNjsKLXZhciBGQVNUX01FTU9SWSA9IE1vZHVs
ZVsnRkFTVF9NRU1PUlknXSB8fCAyMDk3MTUyOwotLy8gSW5pdGlhbGl6ZSB0aGUgcnVudGltZSdz
IG1lbW9yeQotLy8gY2hlY2sgZm9yIGZ1bGwgZW5naW5lIHN1cHBvcnQgKHVzZSBzdHJpbmcgJ3N1
YmFycmF5JyB0byBhdm9pZCBjbG9zdXJlIGNvbXBpbGVyIGNvbmZ1c2lvbikKLWFzc2VydCghIUlu
dDMyQXJyYXkgJiYgISFGbG9hdDY0QXJyYXkgJiYgISEobmV3IEludDMyQXJyYXkoMSlbJ3N1YmFy
cmF5J10pICYmICEhKG5ldyBJbnQzMkFycmF5KDEpWydzZXQnXSksCi0gICAgICAgJ0Nhbm5vdCBm
YWxsYmFjayB0byBub24tdHlwZWQgYXJyYXkgY2FzZTogQ29kZSBpcyB0b28gc3BlY2lhbGl6ZWQn
KTsKLXZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoVE9UQUxfTUVNT1JZKTsKLUhFQVA4ID0g
bmV3IEludDhBcnJheShidWZmZXIpOwotSEVBUDE2ID0gbmV3IEludDE2QXJyYXkoYnVmZmVyKTsK
LUhFQVAzMiA9IG5ldyBJbnQzMkFycmF5KGJ1ZmZlcik7Ci1IRUFQVTggPSBuZXcgVWludDhBcnJh
eShidWZmZXIpOwotSEVBUFUxNiA9IG5ldyBVaW50MTZBcnJheShidWZmZXIpOwotSEVBUFUzMiA9
IG5ldyBVaW50MzJBcnJheShidWZmZXIpOwotSEVBUEYzMiA9IG5ldyBGbG9hdDMyQXJyYXkoYnVm
ZmVyKTsKLUhFQVBGNjQgPSBuZXcgRmxvYXQ2NEFycmF5KGJ1ZmZlcik7Ci0vLyBFbmRpYW5uZXNz
IGNoZWNrIChub3RlOiBhc3N1bWVzIGNvbXBpbGVyIGFyY2ggd2FzIGxpdHRsZS1lbmRpYW4pCi1I
RUFQMzJbMF0gPSAyNTU7Ci1hc3NlcnQoSEVBUFU4WzBdID09PSAyNTUgJiYgSEVBUFU4WzNdID09
PSAwLCAnVHlwZWQgYXJyYXlzIDIgbXVzdCBiZSBydW4gb24gYSBsaXR0bGUtZW5kaWFuIHN5c3Rl
bScpOwotTW9kdWxlWydIRUFQJ10gPSBIRUFQOwotTW9kdWxlWydIRUFQOCddID0gSEVBUDg7Ci1N
b2R1bGVbJ0hFQVAxNiddID0gSEVBUDE2OwotTW9kdWxlWydIRUFQMzInXSA9IEhFQVAzMjsKLU1v
ZHVsZVsnSEVBUFU4J10gPSBIRUFQVTg7Ci1Nb2R1bGVbJ0hFQVBVMTYnXSA9IEhFQVBVMTY7Ci1N
b2R1bGVbJ0hFQVBVMzInXSA9IEhFQVBVMzI7Ci1Nb2R1bGVbJ0hFQVBGMzInXSA9IEhFQVBGMzI7
Ci1Nb2R1bGVbJ0hFQVBGNjQnXSA9IEhFQVBGNjQ7Ci1mdW5jdGlvbiBjYWxsUnVudGltZUNhbGxi
YWNrcyhjYWxsYmFja3MpIHsKLSAgd2hpbGUoY2FsbGJhY2tzLmxlbmd0aCA+IDApIHsKLSAgICB2
YXIgY2FsbGJhY2sgPSBjYWxsYmFja3Muc2hpZnQoKTsKLSAgICBpZiAodHlwZW9mIGNhbGxiYWNr
ID09ICdmdW5jdGlvbicpIHsKLSAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICBjb250aW51ZTsKLSAg
ICB9Ci0gICAgdmFyIGZ1bmMgPSBjYWxsYmFjay5mdW5jOwotICAgIGlmICh0eXBlb2YgZnVuYyA9
PT0gJ251bWJlcicpIHsKLSAgICAgIGlmIChjYWxsYmFjay5hcmcgPT09IHVuZGVmaW5lZCkgewot
ICAgICAgICBSdW50aW1lLmR5bkNhbGwoJ3YnLCBmdW5jKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgIFJ1bnRpbWUuZHluQ2FsbCgndmknLCBmdW5jLCBbY2FsbGJhY2suYXJnXSk7Ci0gICAgICB9
Ci0gICAgfSBlbHNlIHsKLSAgICAgIGZ1bmMoY2FsbGJhY2suYXJnID09PSB1bmRlZmluZWQgPyBu
dWxsIDogY2FsbGJhY2suYXJnKTsKLSAgICB9Ci0gIH0KLX0KLXZhciBfX0FUUFJFUlVOX18gID0g
W107IC8vIGZ1bmN0aW9ucyBjYWxsZWQgYmVmb3JlIHRoZSBydW50aW1lIGlzIGluaXRpYWxpemVk
Ci12YXIgX19BVElOSVRfXyAgICA9IFtdOyAvLyBmdW5jdGlvbnMgY2FsbGVkIGR1cmluZyBzdGFy
dHVwCi12YXIgX19BVE1BSU5fXyAgICA9IFtdOyAvLyBmdW5jdGlvbnMgY2FsbGVkIHdoZW4gbWFp
bigpIGlzIHRvIGJlIHJ1bgotdmFyIF9fQVRFWElUX18gICAgPSBbXTsgLy8gZnVuY3Rpb25zIGNh
bGxlZCBkdXJpbmcgc2h1dGRvd24KLXZhciBfX0FUUE9TVFJVTl9fID0gW107IC8vIGZ1bmN0aW9u
cyBjYWxsZWQgYWZ0ZXIgdGhlIHJ1bnRpbWUgaGFzIGV4aXRlZAotdmFyIHJ1bnRpbWVJbml0aWFs
aXplZCA9IGZhbHNlOwotZnVuY3Rpb24gcHJlUnVuKCkgewotICAvLyBjb21wYXRpYmlsaXR5IC0g
bWVyZ2UgaW4gYW55dGhpbmcgZnJvbSBNb2R1bGVbJ3ByZVJ1biddIGF0IHRoaXMgdGltZQotICBp
ZiAoTW9kdWxlWydwcmVSdW4nXSkgewotICAgIGlmICh0eXBlb2YgTW9kdWxlWydwcmVSdW4nXSA9
PSAnZnVuY3Rpb24nKSBNb2R1bGVbJ3ByZVJ1biddID0gW01vZHVsZVsncHJlUnVuJ11dOwotICAg
IHdoaWxlIChNb2R1bGVbJ3ByZVJ1biddLmxlbmd0aCkgewotICAgICAgYWRkT25QcmVSdW4oTW9k
dWxlWydwcmVSdW4nXS5zaGlmdCgpKTsKLSAgICB9Ci0gIH0KLSAgY2FsbFJ1bnRpbWVDYWxsYmFj
a3MoX19BVFBSRVJVTl9fKTsKLX0KLWZ1bmN0aW9uIGVuc3VyZUluaXRSdW50aW1lKCkgewotICBp
ZiAocnVudGltZUluaXRpYWxpemVkKSByZXR1cm47Ci0gIHJ1bnRpbWVJbml0aWFsaXplZCA9IHRy
dWU7Ci0gIGNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRJTklUX18pOwotfQotZnVuY3Rpb24gcHJl
TWFpbigpIHsKLSAgY2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVE1BSU5fXyk7Ci19Ci1mdW5jdGlv
biBleGl0UnVudGltZSgpIHsKLSAgY2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVEVYSVRfXyk7Ci19
Ci1mdW5jdGlvbiBwb3N0UnVuKCkgewotICAvLyBjb21wYXRpYmlsaXR5IC0gbWVyZ2UgaW4gYW55
dGhpbmcgZnJvbSBNb2R1bGVbJ3Bvc3RSdW4nXSBhdCB0aGlzIHRpbWUKLSAgaWYgKE1vZHVsZVsn
cG9zdFJ1biddKSB7Ci0gICAgaWYgKHR5cGVvZiBNb2R1bGVbJ3Bvc3RSdW4nXSA9PSAnZnVuY3Rp
b24nKSBNb2R1bGVbJ3Bvc3RSdW4nXSA9IFtNb2R1bGVbJ3Bvc3RSdW4nXV07Ci0gICAgd2hpbGUg
KE1vZHVsZVsncG9zdFJ1biddLmxlbmd0aCkgewotICAgICAgYWRkT25Qb3N0UnVuKE1vZHVsZVsn
cG9zdFJ1biddLnNoaWZ0KCkpOwotICAgIH0KLSAgfQotICBjYWxsUnVudGltZUNhbGxiYWNrcyhf
X0FUUE9TVFJVTl9fKTsKLX0KLWZ1bmN0aW9uIGFkZE9uUHJlUnVuKGNiKSB7Ci0gIF9fQVRQUkVS
VU5fXy51bnNoaWZ0KGNiKTsKLX0KLU1vZHVsZVsnYWRkT25QcmVSdW4nXSA9IE1vZHVsZS5hZGRP
blByZVJ1biA9IGFkZE9uUHJlUnVuOwotZnVuY3Rpb24gYWRkT25Jbml0KGNiKSB7Ci0gIF9fQVRJ
TklUX18udW5zaGlmdChjYik7Ci19Ci1Nb2R1bGVbJ2FkZE9uSW5pdCddID0gTW9kdWxlLmFkZE9u
SW5pdCA9IGFkZE9uSW5pdDsKLWZ1bmN0aW9uIGFkZE9uUHJlTWFpbihjYikgewotICBfX0FUTUFJ
Tl9fLnVuc2hpZnQoY2IpOwotfQotTW9kdWxlWydhZGRPblByZU1haW4nXSA9IE1vZHVsZS5hZGRP
blByZU1haW4gPSBhZGRPblByZU1haW47Ci1mdW5jdGlvbiBhZGRPbkV4aXQoY2IpIHsKLSAgX19B
VEVYSVRfXy51bnNoaWZ0KGNiKTsKLX0KLU1vZHVsZVsnYWRkT25FeGl0J10gPSBNb2R1bGUuYWRk
T25FeGl0ID0gYWRkT25FeGl0OwotZnVuY3Rpb24gYWRkT25Qb3N0UnVuKGNiKSB7Ci0gIF9fQVRQ
T1NUUlVOX18udW5zaGlmdChjYik7Ci19Ci1Nb2R1bGVbJ2FkZE9uUG9zdFJ1biddID0gTW9kdWxl
LmFkZE9uUG9zdFJ1biA9IGFkZE9uUG9zdFJ1bjsKLS8vIFRvb2xzCi0vLyBUaGlzIHByb2Nlc3Nl
cyBhIEpTIHN0cmluZyBpbnRvIGEgQy1saW5lIGFycmF5IG9mIG51bWJlcnMsIDAtdGVybWluYXRl
ZC4KLS8vIEZvciBMTFZNLW9yaWdpbmF0aW5nIHN0cmluZ3MsIHNlZSBwYXJzZXIuanM6cGFyc2VM
TFZNU3RyaW5nIGZ1bmN0aW9uCi1mdW5jdGlvbiBpbnRBcnJheUZyb21TdHJpbmcoc3RyaW5neSwg
ZG9udEFkZE51bGwsIGxlbmd0aCAvKiBvcHRpb25hbCAqLykgewotICB2YXIgcmV0ID0gKG5ldyBS
dW50aW1lLlVURjhQcm9jZXNzb3IoKSkucHJvY2Vzc0pTU3RyaW5nKHN0cmluZ3kpOwotICBpZiAo
bGVuZ3RoKSB7Ci0gICAgcmV0Lmxlbmd0aCA9IGxlbmd0aDsKLSAgfQotICBpZiAoIWRvbnRBZGRO
dWxsKSB7Ci0gICAgcmV0LnB1c2goMCk7Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0KLU1vZHVsZVsn
aW50QXJyYXlGcm9tU3RyaW5nJ10gPSBpbnRBcnJheUZyb21TdHJpbmc7Ci1mdW5jdGlvbiBpbnRB
cnJheVRvU3RyaW5nKGFycmF5KSB7Ci0gIHZhciByZXQgPSBbXTsKLSAgZm9yICh2YXIgaSA9IDA7
IGkgPCBhcnJheS5sZW5ndGg7IGkrKykgewotICAgIHZhciBjaHIgPSBhcnJheVtpXTsKLSAgICBp
ZiAoY2hyID4gMHhGRikgewotICAgICAgY2hyICY9IDB4RkY7Ci0gICAgfQotICAgIHJldC5wdXNo
KFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyKSk7Ci0gIH0KLSAgcmV0dXJuIHJldC5qb2luKCcnKTsK
LX0KLU1vZHVsZVsnaW50QXJyYXlUb1N0cmluZyddID0gaW50QXJyYXlUb1N0cmluZzsKLS8vIFdy
aXRlIGEgSmF2YXNjcmlwdCBhcnJheSB0byBzb21ld2hlcmUgaW4gdGhlIGhlYXAKLWZ1bmN0aW9u
IHdyaXRlU3RyaW5nVG9NZW1vcnkoc3RyaW5nLCBidWZmZXIsIGRvbnRBZGROdWxsKSB7Ci0gIHZh
ciBhcnJheSA9IGludEFycmF5RnJvbVN0cmluZyhzdHJpbmcsIGRvbnRBZGROdWxsKTsKLSAgdmFy
IGkgPSAwOwotICB3aGlsZSAoaSA8IGFycmF5Lmxlbmd0aCkgewotICAgIHZhciBjaHIgPSBhcnJh
eVtpXTsKLSAgICBIRUFQOFsoKChidWZmZXIpKyhpKSl8MCldPWNocgotICAgIGkgPSBpICsgMTsK
LSAgfQotfQotTW9kdWxlWyd3cml0ZVN0cmluZ1RvTWVtb3J5J10gPSB3cml0ZVN0cmluZ1RvTWVt
b3J5OwotZnVuY3Rpb24gd3JpdGVBcnJheVRvTWVtb3J5KGFycmF5LCBidWZmZXIpIHsKLSAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykgewotICAgIEhFQVA4WygoKGJ1ZmZl
cikrKGkpKXwwKV09YXJyYXlbaV07Ci0gIH0KLX0KLU1vZHVsZVsnd3JpdGVBcnJheVRvTWVtb3J5
J10gPSB3cml0ZUFycmF5VG9NZW1vcnk7Ci1mdW5jdGlvbiB1blNpZ24odmFsdWUsIGJpdHMsIGln
bm9yZSwgc2lnKSB7Ci0gIGlmICh2YWx1ZSA+PSAwKSB7Ci0gICAgcmV0dXJuIHZhbHVlOwotICB9
Ci0gIHJldHVybiBiaXRzIDw9IDMyID8gMipNYXRoLmFicygxIDw8IChiaXRzLTEpKSArIHZhbHVl
IC8vIE5lZWQgc29tZSB0cmlja2VyeSwgc2luY2UgaWYgYml0cyA9PSAzMiwgd2UgYXJlIHJpZ2h0
IGF0IHRoZSBsaW1pdCBvZiB0aGUgYml0cyBKUyB1c2VzIGluIGJpdHNoaWZ0cwotICAgICAgICAg
ICAgICAgICAgICA6IE1hdGgucG93KDIsIGJpdHMpICAgICAgICAgKyB2YWx1ZTsKLX0KLWZ1bmN0
aW9uIHJlU2lnbih2YWx1ZSwgYml0cywgaWdub3JlLCBzaWcpIHsKLSAgaWYgKHZhbHVlIDw9IDAp
IHsKLSAgICByZXR1cm4gdmFsdWU7Ci0gIH0KLSAgdmFyIGhhbGYgPSBiaXRzIDw9IDMyID8gTWF0
aC5hYnMoMSA8PCAoYml0cy0xKSkgLy8gYWJzIGlzIG5lZWRlZCBpZiBiaXRzID09IDMyCi0gICAg
ICAgICAgICAgICAgICAgICAgICA6IE1hdGgucG93KDIsIGJpdHMtMSk7Ci0gIGlmICh2YWx1ZSA+
PSBoYWxmICYmIChiaXRzIDw9IDMyIHx8IHZhbHVlID4gaGFsZikpIHsgLy8gZm9yIGh1Z2UgdmFs
dWVzLCB3ZSBjYW4gaGl0IHRoZSBwcmVjaXNpb24gbGltaXQgYW5kIGFsd2F5cyBnZXQgdHJ1ZSBo
ZXJlLiBzbyBkb24ndCBkbyB0aGF0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gYnV0LCBpbiBnZW5lcmFsIHRoZXJlIGlzIG5vIHBlcmZl
Y3Qgc29sdXRpb24gaGVyZS4gV2l0aCA2NC1iaXQgaW50cywgd2UgZ2V0IHJvdW5kaW5nIGFuZCBl
cnJvcnMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBUT0RPOiBJbiBpNjQgbW9kZSAxLCByZXNpZ24gdGhlIHR3byBwYXJ0cyBzZXBhcmF0
ZWx5IGFuZCBzYWZlbHkKLSAgICB2YWx1ZSA9IC0yKmhhbGYgKyB2YWx1ZTsgLy8gQ2Fubm90IGJp
dHNoaWZ0IGhhbGYsIGFzIGl0IG1heSBiZSBhdCB0aGUgbGltaXQgb2YgdGhlIGJpdHMgSlMgdXNl
cyBpbiBiaXRzaGlmdHMKLSAgfQotICByZXR1cm4gdmFsdWU7Ci19Ci1pZiAoIU1hdGhbJ2ltdWwn
XSkgTWF0aFsnaW11bCddID0gZnVuY3Rpb24oYSwgYikgewotICB2YXIgYWggID0gYSA+Pj4gMTY7
Ci0gIHZhciBhbCA9IGEgJiAweGZmZmY7Ci0gIHZhciBiaCAgPSBiID4+PiAxNjsKLSAgdmFyIGJs
ID0gYiAmIDB4ZmZmZjsKLSAgcmV0dXJuIChhbCpibCArICgoYWgqYmwgKyBhbCpiaCkgPDwgMTYp
KXwwOwotfTsKLU1hdGguaW11bCA9IE1hdGhbJ2ltdWwnXTsKLS8vIEEgY291bnRlciBvZiBkZXBl
bmRlbmNpZXMgZm9yIGNhbGxpbmcgcnVuKCkuIElmIHdlIG5lZWQgdG8KLS8vIGRvIGFzeW5jaHJv
bm91cyB3b3JrIGJlZm9yZSBydW5uaW5nLCBpbmNyZW1lbnQgdGhpcyBhbmQKLS8vIGRlY3JlbWVu
dCBpdC4gSW5jcmVtZW50aW5nIG11c3QgaGFwcGVuIGluIGEgcGxhY2UgbGlrZQotLy8gUFJFX1JV
Tl9BRERJVElPTlMgKHVzZWQgYnkgZW1jYyB0byBhZGQgZmlsZSBwcmVsb2FkaW5nKS4KLS8vIE5v
dGUgdGhhdCB5b3UgY2FuIGFkZCBkZXBlbmRlbmNpZXMgaW4gcHJlUnVuLCBldmVuIHRob3VnaAot
Ly8gaXQgaGFwcGVucyByaWdodCBiZWZvcmUgcnVuIC0gcnVuIHdpbGwgYmUgcG9zdHBvbmVkIHVu
dGlsCi0vLyB0aGUgZGVwZW5kZW5jaWVzIGFyZSBtZXQuCi12YXIgcnVuRGVwZW5kZW5jaWVzID0g
MDsKLXZhciBydW5EZXBlbmRlbmN5VHJhY2tpbmcgPSB7fTsKLXZhciBjYWxsZWRJbml0ID0gZmFs
c2UsIGNhbGxlZFJ1biA9IGZhbHNlOwotdmFyIHJ1bkRlcGVuZGVuY3lXYXRjaGVyID0gbnVsbDsK
LWZ1bmN0aW9uIGFkZFJ1bkRlcGVuZGVuY3koaWQpIHsKLSAgcnVuRGVwZW5kZW5jaWVzKys7Ci0g
IGlmIChNb2R1bGVbJ21vbml0b3JSdW5EZXBlbmRlbmNpZXMnXSkgewotICAgIE1vZHVsZVsnbW9u
aXRvclJ1bkRlcGVuZGVuY2llcyddKHJ1bkRlcGVuZGVuY2llcyk7Ci0gIH0KLSAgaWYgKGlkKSB7
Ci0gICAgYXNzZXJ0KCFydW5EZXBlbmRlbmN5VHJhY2tpbmdbaWRdKTsKLSAgICBydW5EZXBlbmRl
bmN5VHJhY2tpbmdbaWRdID0gMTsKLSAgfSBlbHNlIHsKLSAgICBNb2R1bGUucHJpbnRFcnIoJ3dh
cm5pbmc6IHJ1biBkZXBlbmRlbmN5IGFkZGVkIHdpdGhvdXQgSUQnKTsKLSAgfQotfQotTW9kdWxl
WydhZGRSdW5EZXBlbmRlbmN5J10gPSBhZGRSdW5EZXBlbmRlbmN5OwotZnVuY3Rpb24gcmVtb3Zl
UnVuRGVwZW5kZW5jeShpZCkgewotICBydW5EZXBlbmRlbmNpZXMtLTsKLSAgaWYgKE1vZHVsZVsn
bW9uaXRvclJ1bkRlcGVuZGVuY2llcyddKSB7Ci0gICAgTW9kdWxlWydtb25pdG9yUnVuRGVwZW5k
ZW5jaWVzJ10ocnVuRGVwZW5kZW5jaWVzKTsKLSAgfQotICBpZiAoaWQpIHsKLSAgICBhc3NlcnQo
cnVuRGVwZW5kZW5jeVRyYWNraW5nW2lkXSk7Ci0gICAgZGVsZXRlIHJ1bkRlcGVuZGVuY3lUcmFj
a2luZ1tpZF07Ci0gIH0gZWxzZSB7Ci0gICAgTW9kdWxlLnByaW50RXJyKCd3YXJuaW5nOiBydW4g
ZGVwZW5kZW5jeSByZW1vdmVkIHdpdGhvdXQgSUQnKTsKLSAgfQotICBpZiAocnVuRGVwZW5kZW5j
aWVzID09IDApIHsKLSAgICBpZiAocnVuRGVwZW5kZW5jeVdhdGNoZXIgIT09IG51bGwpIHsKLSAg
ICAgIGNsZWFySW50ZXJ2YWwocnVuRGVwZW5kZW5jeVdhdGNoZXIpOwotICAgICAgcnVuRGVwZW5k
ZW5jeVdhdGNoZXIgPSBudWxsOwotICAgIH0gCi0gICAgLy8gSWYgcnVuIGhhcyBuZXZlciBiZWVu
IGNhbGxlZCwgYW5kIHdlIHNob3VsZCBjYWxsIHJ1biAoSU5WT0tFX1JVTiBpcyB0cnVlLCBhbmQg
TW9kdWxlLm5vSW5pdGlhbFJ1biBpcyBub3QgZmFsc2UpCi0gICAgaWYgKCFjYWxsZWRSdW4gJiYg
c2hvdWxkUnVuTm93KSBydW4oKTsKLSAgfQotfQotTW9kdWxlWydyZW1vdmVSdW5EZXBlbmRlbmN5
J10gPSByZW1vdmVSdW5EZXBlbmRlbmN5OwotTW9kdWxlWyJwcmVsb2FkZWRJbWFnZXMiXSA9IHt9
OyAvLyBtYXBzIHVybCB0byBpbWFnZSBkYXRhCi1Nb2R1bGVbInByZWxvYWRlZEF1ZGlvcyJdID0g
e307IC8vIG1hcHMgdXJsIHRvIGF1ZGlvIGRhdGEKLWZ1bmN0aW9uIGxvYWRNZW1vcnlJbml0aWFs
aXplcihmaWxlbmFtZSkgewotICBmdW5jdGlvbiBhcHBseURhdGEoZGF0YSkgewotICAgIEhFQVBV
OC5zZXQoZGF0YSwgU1RBVElDX0JBU0UpOwotICB9Ci0gIC8vIGFsd2F5cyBkbyB0aGlzIGFzeW5j
aHJvbm91c2x5LCB0byBrZWVwIHNoZWxsIGFuZCB3ZWIgYXMgc2ltaWxhciBhcyBwb3NzaWJsZQot
ICBhZGRPblByZVJ1bihmdW5jdGlvbigpIHsKLSAgICBpZiAoRU5WSVJPTk1FTlRfSVNfTk9ERSB8
fCBFTlZJUk9OTUVOVF9JU19TSEVMTCkgewotICAgICAgYXBwbHlEYXRhKE1vZHVsZVsncmVhZEJp
bmFyeSddKGZpbGVuYW1lKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIEJyb3dzZXIuYXN5bmNMb2Fk
KGZpbGVuYW1lLCBmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgIGFwcGx5RGF0YShkYXRhKTsKLSAg
ICAgIH0sIGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgdGhyb3cgJ2NvdWxkIG5vdCBsb2FkIG1l
bW9yeSBpbml0aWFsaXplciAnICsgZmlsZW5hbWU7Ci0gICAgICB9KTsKLSAgICB9Ci0gIH0pOwot
fQotLy8gPT09IEJvZHkgPT09Ci1TVEFUSUNfQkFTRSA9IDg7Ci1TVEFUSUNUT1AgPSBTVEFUSUNf
QkFTRSArIDE2MzkyOwotdmFyIF9zdGRvdXQ7Ci12YXIgX3N0ZGluOwotdmFyIF9zdGRlcnI7Ci0v
KiBnbG9iYWwgaW5pdGlhbGl6ZXJzICovIF9fQVRJTklUX18ucHVzaCh7IGZ1bmM6IGZ1bmN0aW9u
KCkgeyBydW5Qb3N0U2V0cygpIH0gfSx7IGZ1bmM6IGZ1bmN0aW9uKCkgeyBfX0dMT0JBTF9fSV9h
KCkgfSB9LHsgZnVuYzogZnVuY3Rpb24oKSB7IF9fR0xPQkFMX19JX2E4KCkgfSB9KTsKLXZhciBf
X19mc211ODsKLXZhciBfX19kc29faGFuZGxlOwotdmFyIF9fWlRWTjEwX19jeHhhYml2MTIwX19z
aV9jbGFzc190eXBlX2luZm9FOwotdmFyIF9fWlRWTjEwX19jeHhhYml2MTE3X19jbGFzc190eXBl
X2luZm9FOwotdmFyIF9fWk5TdDNfXzExMl9fcnNfZGVmYXVsdEQxRXY7Ci12YXIgX19aTlN0MTNy
dW50aW1lX2Vycm9yQzFFUEtjOwotdmFyIF9fWk5TdDEzcnVudGltZV9lcnJvckQxRXY7Ci12YXIg
X19aTlN0MTJsZW5ndGhfZXJyb3JEMUV2OwotdmFyIF9fWk5TdDNfXzE2bG9jYWxlQzFFdjsKLXZh
ciBfX1pOU3QzX18xNmxvY2FsZUMxRVJLUzBfOwotdmFyIF9fWk5TdDNfXzE2bG9jYWxlRDFFdjsK
LXZhciBfX1pOU3Q4YmFkX2Nhc3RDMUV2OwotdmFyIF9fWk5TdDhiYWRfY2FzdEQxRXY7Ci12YXIg
X3N0ZG91dCA9IF9zdGRvdXQ9YWxsb2NhdGUoWzAsMCwwLDAsMCwwLDAsMF0sICJpOCIsIEFMTE9D
X1NUQVRJQyk7Ci12YXIgX3N0ZGluID0gX3N0ZGluPWFsbG9jYXRlKFswLDAsMCwwLDAsMCwwLDBd
LCAiaTgiLCBBTExPQ19TVEFUSUMpOwotdmFyIF9zdGRlcnIgPSBfc3RkZXJyPWFsbG9jYXRlKFsw
LDAsMCwwLDAsMCwwLDBdLCAiaTgiLCBBTExPQ19TVEFUSUMpOwotX19aVFZOMTBfX2N4eGFiaXYx
MjBfX3NpX2NsYXNzX3R5cGVfaW5mb0U9YWxsb2NhdGUoWzAsMCwwLDAsMjAwLDM3LDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwXSwgImk4IiwgQUxMT0NfU1RBVElDKTsKLV9fWlRWTjEwX19jeHhh
Yml2MTE3X19jbGFzc190eXBlX2luZm9FPWFsbG9jYXRlKFswLDAsMCwwLDIxNiwzNywwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMF0sICJpOCIsIEFMTE9DX1NUQVRJQyk7Ci0vKiBtZW1vcnkgaW5p
dGlhbGl6ZXIgKi8gYWxsb2NhdGUoWzAsMCwwLDAsMCwwLDM2LDY0LDAsMCwwLDAsMCwwLDg5LDY0
LDAsMCwwLDAsMCwxMzYsMTk1LDY0LDAsMCwwLDAsMTMyLDIxNSwxNTEsNjUsMCwxMjgsMjI0LDU1
LDEyMSwxOTUsNjUsNjcsMjMsMTEwLDUsMTgxLDE4MSwxODQsMTQ3LDcwLDI0NSwyNDksNjMsMjMz
LDMsNzksNTYsNzcsNTAsMjksNDgsMjQ5LDcyLDExOSwxMzAsOTAsNjAsMTkxLDExNSwxMjcsMjIx
LDc5LDIxLDExNyw3NCwxMTcsMTA4LDAsMCwwLDAsMCw3NCwxMTcsMTEwLDAsMCwwLDAsMCw2NSwx
MTIsMTE0LDAsMCwwLDAsMCw3Nyw5NywxMTQsMCwwLDAsMCwwLDcwLDEwMSw5OCwwLDAsMCwwLDAs
NzQsOTcsMTEwLDAsMCwwLDAsMCw2OCwxMDEsOTksMTAxLDEwOSw5OCwxMDEsMTE0LDAsMCwwLDAs
MCwwLDAsMCw3OCwxMTEsMTE4LDEwMSwxMDksOTgsMTAxLDExNCwwLDAsMCwwLDAsMCwwLDAsNzks
OTksMTE2LDExMSw5OCwxMDEsMTE0LDAsODMsMTAxLDExMiwxMTYsMTAxLDEwOSw5OCwxMDEsMTE0
LDAsMCwwLDAsMCwwLDAsMTE3LDExMCwxMTUsMTE3LDExMiwxMTIsMTExLDExNCwxMTYsMTAxLDEw
MCwzMiwxMDgsMTExLDk5LDk3LDEwOCwxMDEsMzIsMTAyLDExMSwxMTQsMzIsMTE1LDExNiw5Nywx
MTAsMTAwLDk3LDExNCwxMDAsMzIsMTA1LDExMCwxMTIsMTE3LDExNiwwLDAsMCw2NSwxMTcsMTAz
LDExNywxMTUsMTE2LDAsMCw3NCwxMTcsMTA4LDEyMSwwLDAsMCwwLDc0LDExNywxMTAsMTAxLDAs
MCwwLDAsNzcsOTcsMTIxLDAsMCwwLDAsMCw2NSwxMTIsMTE0LDEwNSwxMDgsMCwwLDAsNzcsOTcs
MTE0LDk5LDEwNCwwLDAsMCw3MCwxMDEsOTgsMTE0LDExNyw5NywxMTQsMTIxLDAsMCwwLDAsMCww
LDAsMCw3NCw5NywxMTAsMTE3LDk3LDExNCwxMjEsMCw2OCwwLDAsMCwxMDEsMCwwLDAsOTksMCww
LDAsMCwwLDAsMCw3OCwwLDAsMCwxMTEsMCwwLDAsMTE4LDAsMCwwLDAsMCwwLDAsNzksMCwwLDAs
OTksMCwwLDAsMTE2LDAsMCwwLDAsMCwwLDAsODMsMCwwLDAsMTAxLDAsMCwwLDExMiwwLDAsMCww
LDAsMCwwLDk4LDk3LDExNSwxMDUsOTksOTUsMTE1LDExNiwxMTQsMTA1LDExMCwxMDMsMCwwLDAs
MCw2NSwwLDAsMCwxMTcsMCwwLDAsMTAzLDAsMCwwLDAsMCwwLDAsNzQsMCwwLDAsMTE3LDAsMCww
LDEwOCwwLDAsMCwwLDAsMCwwLDc0LDAsMCwwLDExNywwLDAsMCwxMTAsMCwwLDAsMCwwLDAsMCw3
NywwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCw2NSwwLDAsMCwxMTIsMCwwLDAsMTE0
LDAsMCwwLDAsMCwwLDAsNzcsMCwwLDAsOTcsMCwwLDAsMTE0LDAsMCwwLDAsMCwwLDAsNzAsMCww
LDAsMTAxLDAsMCwwLDk4LDAsMCwwLDAsMCwwLDAsNzQsMCwwLDAsOTcsMCwwLDAsMTEwLDAsMCww
LDAsMCwwLDAsNjgsMCwwLDAsMTAxLDAsMCwwLDk5LDAsMCwwLDEwMSwwLDAsMCwxMDksMCwwLDAs
OTgsMCwwLDAsMTAxLDAsMCwwLDExNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNzgsMCwwLDAsMTEx
LDAsMCwwLDExOCwwLDAsMCwxMDEsMCwwLDAsMTA5LDAsMCwwLDk4LDAsMCwwLDEwMSwwLDAsMCwx
MTQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDc5LDAsMCwwLDk5LDAsMCwwLDExNiwwLDAsMCwxMTEs
MCwwLDAsOTgsMCwwLDAsMTAxLDAsMCwwLDExNCwwLDAsMCwwLDAsMCwwLDgzLDAsMCwwLDEwMSww
LDAsMCwxMTIsMCwwLDAsMTE2LDAsMCwwLDEwMSwwLDAsMCwxMDksMCwwLDAsOTgsMCwwLDAsMTAx
LDAsMCwwLDExNCwwLDAsMCwwLDAsMCwwLDY1LDAsMCwwLDExNywwLDAsMCwxMDMsMCwwLDAsMTE3
LDAsMCwwLDExNSwwLDAsMCwxMTYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDc0LDAsMCwwLDExNyww
LDAsMCwxMDgsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw3NCwwLDAsMCwxMTcsMCww
LDAsMTEwLDAsMCwwLDEwMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjUsMCwwLDAsMTEyLDAsMCww
LDExNCwwLDAsMCwxMDUsMCwwLDAsMTA4LDAsMCwwLDAsMCwwLDAsNzcsMCwwLDAsOTcsMCwwLDAs
MTE0LDAsMCwwLDk5LDAsMCwwLDEwNCwwLDAsMCwwLDAsMCwwLDcwLDAsMCwwLDEwMSwwLDAsMCw5
OCwwLDAsMCwxMTQsMCwwLDAsMTE3LDAsMCwwLDk3LDAsMCwwLDExNCwwLDAsMCwxMjEsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDc0LDAsMCwwLDk3LDAsMCwwLDExMCwwLDAsMCwxMTcsMCwwLDAsOTcs
MCwwLDAsMTE0LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDgwLDc3LDAsMCwwLDAsMCwwLDY1LDc3
LDAsMCwwLDAsMCwwLDgwLDAsMCwwLDc3LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw2NSwwLDAsMCw3
NywwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTA4LDExMSw5OSw5NywxMDgsMTAxLDMyLDExMCwxMTEs
MTE2LDMyLDExNSwxMTcsMTEyLDExMiwxMTEsMTE0LDExNiwxMDEsMTAwLDAsMCwwLDAsMzcsMCww
LDAsNzMsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsNzcsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAs
ODMsMCwwLDAsMzIsMCwwLDAsMzcsMCwwLDAsMTEyLDAsMCwwLDAsMCwwLDAsMzcsNzMsNTgsMzcs
NzcsNTgsMzcsODMsMzIsMzcsMTEyLDAsMCwwLDAsMCwzNywwLDAsMCw5NywwLDAsMCwzMiwwLDAs
MCwzNywwLDAsMCw5OCwwLDAsMCwzMiwwLDAsMCwzNywwLDAsMCwxMDAsMCwwLDAsMzIsMCwwLDAs
MzcsMCwwLDAsNzIsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsNzcsMCwwLDAsNTgsMCwwLDAsMzcs
MCwwLDAsODMsMCwwLDAsMzIsMCwwLDAsMzcsMCwwLDAsODksMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDM3LDk3LDMyLDM3LDk4LDMyLDM3LDEwMCwzMiwzNyw3Miw1OCwzNyw3Nyw1OCwzNyw4MywzMiwz
Nyw4OSwwLDAsMCwwLDM3LDAsMCwwLDcyLDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDc3LDAsMCww
LDU4LDAsMCwwLDM3LDAsMCwwLDgzLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzNyw3Miw1OCwzNyw3
Nyw1OCwzNyw4MywwLDAsMCwwLDAsMCwwLDAsMTE1LDExNiwxMDAsNTgsNTgsOTgsOTcsMTAwLDk1
LDk3LDEwOCwxMDgsMTExLDk5LDAsMCwzNywwLDAsMCwxMDksMCwwLDAsNDcsMCwwLDAsMzcsMCww
LDAsMTAwLDAsMCwwLDQ3LDAsMCwwLDM3LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MzcsMTA5LDQ3LDM3LDEwMCw0NywzNywxMjEsMCwwLDAsMCwwLDAsMCwwLDEwMiwwLDAsMCw5Nyww
LDAsMCwxMDgsMCwwLDAsMTE1LDAsMCwwLDEwMSwwLDAsMCwwLDAsMCwwLDEwMiw5NywxMDgsMTE1
LDEwMSwwLDAsMCwxMTYsMCwwLDAsMTE0LDAsMCwwLDExNywwLDAsMCwxMDEsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDExNiwxMTQsMTE3LDEwMSwwLDAsMCwwLDU4LDMyLDAsMCwwLDAsMCwwLDEwNSwx
MTEsMTE1LDk1LDk4LDk3LDExNSwxMDEsNTgsNTgsOTksMTA4LDEwMSw5NywxMTQsMCwzNywxMTIs
MCwwLDAsMCwwLDAsMTE1LDExNiwxMDAsNTgsNTgsOTgsOTcsMTAwLDk1LDk5LDk3LDExNSwxMTYs
MCwwLDAsNjcsMCwwLDAsMCwwLDAsMCwxMTgsMTAxLDk5LDExNiwxMTEsMTE0LDAsMCwzNyw0Niw0
OCw3NiwxMDIsMCwwLDAsMTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMDMsMTAxLDExNiwzMiwxMDEs
MTE0LDExNCwxMTEsMTE0LDAsODMsOTcsMTE2LDAsMCwwLDAsMCw3MCwxMTQsMTA1LDAsMCwwLDAs
MCw4NCwxMDQsMTE3LDAsMCwwLDAsMCwzNyw3NiwxMDIsMCwwLDAsMCwwLDEwNSwxMTEsMTE1LDEx
NiwxMTQsMTAxLDk3LDEwOSwwLDAsMCwwLDAsMCwwLDAsODcsMTAxLDEwMCwwLDAsMCwwLDAsODQs
MTE3LDEwMSwwLDAsMCwwLDAsNzcsMTExLDExMCwwLDAsMCwwLDAsODMsMTE3LDExMCwwLDAsMCww
LDAsODMsOTcsMTE2LDExNywxMTQsMTAwLDk3LDEyMSwwLDAsMCwwLDAsMCwwLDAsNzAsMTE0LDEw
NSwxMDAsOTcsMTIxLDAsMCw4NCwxMDQsMTE3LDExNCwxMTUsMTAwLDk3LDEyMSwwLDAsMCwwLDAs
MCwwLDAsODcsMTAxLDEwMCwxMTAsMTAxLDExNSwxMDAsOTcsMTIxLDAsMCwwLDAsMCwwLDAsODQs
MTE3LDEwMSwxMTUsMTAwLDk3LDEyMSwwLDc3LDExMSwxMTAsMTAwLDk3LDEyMSwwLDAsODMsMTE3
LDExMCwxMDAsOTcsMTIxLDAsMCw4MywwLDAsMCw5NywwLDAsMCwxMTYsMCwwLDAsMCwwLDAsMCw3
MCwwLDAsMCwxMTQsMCwwLDAsMTA1LDAsMCwwLDAsMCwwLDAsODQsMCwwLDAsMTA0LDAsMCwwLDEx
NywwLDAsMCwwLDAsMCwwLDg3LDAsMCwwLDEwMSwwLDAsMCwxMDAsMCwwLDAsMCwwLDAsMCw4NCww
LDAsMCwxMTcsMCwwLDAsMTAxLDAsMCwwLDAsMCwwLDAsNzcsMCwwLDAsMTExLDAsMCwwLDExMCww
LDAsMCwwLDAsMCwwLDExNywxMTAsMTE1LDExMiwxMDEsOTksMTA1LDEwMiwxMDUsMTAxLDEwMCwz
MiwxMDUsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTUsOTksOTcsMTE2LDEwMSwxMDMsMTEx
LDExNCwxMjEsMzIsMTAxLDExNCwxMTQsMTExLDExNCwwLDAsMCwwLDAsODMsMCwwLDAsMTE3LDAs
MCwwLDExMCwwLDAsMCwwLDAsMCwwLDgzLDAsMCwwLDk3LDAsMCwwLDExNiwwLDAsMCwxMTcsMCww
LDAsMTE0LDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDcwLDAsMCwwLDExNCwwLDAsMCwxMDUsMCwwLDAsMTAwLDAsMCwwLDk3LDAsMCwwLDEyMSwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsODQsMCwwLDAsMTA0LDAsMCwwLDExNywwLDAsMCwxMTQsMCwwLDAs
MTE1LDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDg3
LDAsMCwwLDEwMSwwLDAsMCwxMDAsMCwwLDAsMTEwLDAsMCwwLDEwMSwwLDAsMCwxMTUsMCwwLDAs
MTAwLDAsMCwwLDk3LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDg0LDAsMCwwLDExNywwLDAsMCwx
MDEsMCwwLDAsMTE1LDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCw3
NywwLDAsMCwxMTEsMCwwLDAsMTEwLDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDgzLDAsMCwwLDExNywwLDAsMCwxMTAsMCwwLDAsMTAwLDAsMCwwLDk3
LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjgsMTAxLDk5LDAsMCwwLDAsMCw3OCwx
MTEsMTE4LDAsMCwwLDAsMCw3OSw5OSwxMTYsMCwwLDAsMCwwLDgzLDEwMSwxMTIsMCwwLDAsMCww
LDY1LDExNywxMDMsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsMCwwLDAsMCww
LDAsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsMCwwLDAsMCwwLDAsMzcsMCwwLDAsODks
MCwwLDAsNDUsMCwwLDAsMzcsMCwwLDAsMTA5LDAsMCwwLDQ1LDAsMCwwLDM3LDAsMCwwLDEwMCww
LDAsMCwzNywwLDAsMCw3MiwwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw3NywwLDAsMCw1OCwwLDAs
MCwzNywwLDAsMCw4MywwLDAsMCwzNywwLDAsMCw3MiwwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw3
NywwLDAsMCwwLDAsMCwwLDM3LDAsMCwwLDczLDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDc3LDAs
MCwwLDU4LDAsMCwwLDM3LDAsMCwwLDgzLDAsMCwwLDMyLDAsMCwwLDM3LDAsMCwwLDExMiwwLDAs
MCwwLDAsMCwwLDM3LDAsMCwwLDEwOSwwLDAsMCw0NywwLDAsMCwzNywwLDAsMCwxMDAsMCwwLDAs
NDcsMCwwLDAsMzcsMCwwLDAsMTIxLDAsMCwwLDM3LDAsMCwwLDcyLDAsMCwwLDU4LDAsMCwwLDM3
LDAsMCwwLDc3LDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDgzLDAsMCwwLDM3LDcyLDU4LDM3LDc3
LDU4LDM3LDgzLDM3LDcyLDU4LDM3LDc3LDAsMCwwLDM3LDczLDU4LDM3LDc3LDU4LDM3LDgzLDMy
LDM3LDExMiwwLDAsMCwwLDAsMzcsODksNDUsMzcsMTA5LDQ1LDM3LDEwMCwzNywxMDksNDcsMzcs
MTAwLDQ3LDM3LDEyMSwzNyw3Miw1OCwzNyw3Nyw1OCwzNyw4MywzNywwLDAsMCwwLDAsMCwwLDM3
LDExMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDIyNCwzMSwwLDAsMzAsMCwwLDAsMTE2LDAsMCwwLDk4
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjQwLDMxLDAsMCwxOTYsMCww
LDAsMTY0LDAsMCwwLDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwz
MiwwLDAsNzAsMCwwLDAsNiwxLDAsMCwzOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDE2LDMyLDAsMCw5NCwwLDAsMCw4LDAsMCwwLDExMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDMyLDMyLDAsMCw5NCwwLDAsMCwyMCwwLDAsMCwxMTAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw1NiwzMiwwLDAsMTY4LDAsMCwwLDg0LDAs
MCwwLDQ4LDAsMCwwLDIsMCwwLDAsOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDg4LDMyLDAsMCwyMzAsMCwwLDAsMTg2LDAsMCwwLDQ4LDAsMCwwLDQsMCwwLDAsMTQsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMjAsMzIsMCwwLDE2MiwwLDAsMCwx
ODgsMCwwLDAsNDgsMCwwLDAsOCwwLDAsMCwxMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDE1MiwzMiwwLDAsMjU0LDAsMCwwLDE0MCwwLDAsMCw0OCwwLDAsMCw2LDAsMCww
LDEwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNTYsMzMsMCwwLDI1Miww
LDAsMCwxNiwwLDAsMCw0OCwwLDAsMCwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDg4
LDMzLDAsMCwxNjAsMCwwLDAsMTA4LDAsMCwwLDQ4LDAsMCwwLDQsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMTIwLDMzLDAsMCwzOCwwLDAsMCwxMTAsMCwwLDAsNDgsMCwwLDAsMTIwLDAs
MCwwLDQsMCwwLDAsMzIsMCwwLDAsNiwwLDAsMCwyMCwwLDAsMCw1NiwwLDAsMCwyLDAsMCwwLDI0
OCwyNTUsMjU1LDI1NSwxMjAsMzMsMCwwLDIyLDAsMCwwLDgsMCwwLDAsMzIsMCwwLDAsMTIsMCww
LDAsMiwwLDAsMCwzMCwwLDAsMCwxMjQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwxNjAsMzMsMCwwLDI0MiwwLDAsMCwyMjIsMCwwLDAsNDgsMCwwLDAsMjAsMCwwLDAsMTYs
MCwwLDAsNjAsMCwwLDAsMjYsMCwwLDAsMTgsMCwwLDAsMiwwLDAsMCw0LDAsMCwwLDI0OCwyNTUs
MjU1LDI1NSwxNjAsMzMsMCwwLDcwLDAsMCwwLDEwNCwwLDAsMCwxMTYsMCwwLDAsMTIyLDAsMCww
LDY0LDAsMCwwLDQ0LDAsMCwwLDU0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMjAwLDMzLDAsMCw3OCwwLDAsMCwxOTAsMCwwLDAsNDgsMCwwLDAsNDgsMCwwLDAsNDAsMCww
LDAsOCwwLDAsMCwzOCwwLDAsMCw0OCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyMTYs
MzMsMCwwLDU4LDAsMCwwLDY0LDAsMCwwLDQ4LDAsMCwwLDQyLDAsMCwwLDg0LDAsMCwwLDEyLDAs
MCwwLDU0LDAsMCwwLDIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjMyLDMzLDAsMCwy
NDYsMCwwLDAsMiwwLDAsMCw0OCwwLDAsMCwyNCwwLDAsMCwzMCwwLDAsMCw2NCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCw4LDM0LDAsMCw0NiwwLDAsMCwyMDgsMCwwLDAsNDgsMCwwLDAs
MzYsMCwwLDAsMTQsMCwwLDAsMTQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNDAsMzQs
MCwwLDIxMCwwLDAsMCwxMTIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNDgsMzQsMCww
LDI4LDAsMCwwLDEzOCwwLDAsMCwzOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDY0LDM0LDAsMCw2LDAsMCwwLDE3NCwwLDAsMCw0OCwwLDAsMCw4LDAsMCwwLDYsMCwwLDAs
MTIsMCwwLDAsNCwwLDAsMCwxMCwwLDAsMCw0LDAsMCwwLDIsMCwwLDAsMTIsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw5NiwzNCwwLDAsOTgsMCwwLDAsMTgsMCwwLDAsNDgs
MCwwLDAsMjAsMCwwLDAsMjQsMCwwLDAsMzQsMCwwLDAsMjIsMCwwLDAsMjIsMCwwLDAsOCwwLDAs
MCw2LDAsMCwwLDE4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTI4LDM0
LDAsMCw0MCwwLDAsMCwyNCwwLDAsMCw0OCwwLDAsMCw0OCwwLDAsMCw0NiwwLDAsMCwzOCwwLDAs
MCw0MCwwLDAsMCwzMCwwLDAsMCw0NCwwLDAsMCwzNiwwLDAsMCw1NCwwLDAsMCw1MiwwLDAsMCw1
MCwwLDAsMCwyNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNjAsMzQsMCwwLDUyLDAs
MCwwLDQsMCwwLDAsNDgsMCwwLDAsNzYsMCwwLDAsNzAsMCwwLDAsNjQsMCwwLDAsNjYsMCwwLDAs
NTgsMCwwLDAsNjgsMCwwLDAsNjIsMCwwLDAsMjgsMCwwLDAsNzQsMCwwLDAsNzIsMCwwLDAsNDIs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTkyLDM0LDAsMCw3NCwwLDAsMCw5MiwwLDAs
MCw0OCwwLDAsMCwxNiwwLDAsMCwxMiwwLDAsMCwxMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwyMDgsMzQsMCwwLDI2LDAsMCwwLDE3NiwwLDAsMCw0OCwwLDAsMCwyMiwwLDAsMCwxNCww
LDAsMCwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIyNCwzNCwwLDAsMjI4LDAsMCww
LDEzMCwwLDAsMCw0OCwwLDAsMCwxNCwwLDAsMCw0LDAsMCwwLDIwLDAsMCwwLDE2LDAsMCwwLDYy
LDAsMCwwLDQsMCwwLDAsNzYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzNSwwLDAs
MTgwLDAsMCwwLDYwLDAsMCwwLDQ4LDAsMCwwLDIsMCwwLDAsOCwwLDAsMCw4LDAsMCwwLDEwNiww
LDAsMCw5NiwwLDAsMCwxOCwwLDAsMCw5NCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwz
MiwzNSwwLDAsMTgwLDAsMCwwLDEzMiwwLDAsMCw0OCwwLDAsMCwxNiwwLDAsMCw2LDAsMCwwLDIs
MCwwLDAsMTI2LDAsMCwwLDQ2LDAsMCwwLDEyLDAsMCwwLDE4LDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDY0LDM1LDAsMCwxODAsMCwwLDAsMTUyLDAsMCwwLDQ4LDAsMCwwLDEwLDAsMCww
LDEyLDAsMCwwLDI0LDAsMCwwLDM0LDAsMCwwLDc0LDAsMCwwLDYsMCwwLDAsNjYsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsOTYsMzUsMCwwLDE4MCwwLDAsMCwzNCwwLDAsMCw0OCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDExMiwzNSwwLDAsNTYsMCwwLDAsMTU2
LDAsMCwwLDQ4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTI4LDM1LDAs
MCwxODAsMCwwLDAsODAsMCwwLDAsNDgsMCwwLDAsMjAsMCwwLDAsMiwwLDAsMCw0LDAsMCwwLDEw
LDAsMCwwLDE2LDAsMCwwLDI4LDAsMCwwLDIyLDAsMCwwLDYsMCwwLDAsNiwwLDAsMCw4LDAsMCww
LDEwLDAsMCwwLDEwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTYwLDM1
LDAsMCw0LDEsMCwwLDM2LDAsMCwwLDQ4LDAsMCwwLDIsMCwwLDAsNCwwLDAsMCwxOCwwLDAsMCwz
NCwwLDAsMCw4LDAsMCwwLDYsMCwwLDAsMjYsMCwwLDAsMTQsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwyMDgsMzUsMCwwLDY2LDAsMCwwLDIxOCwwLDAsMCw3OCwwLDAsMCwy
LDAsMCwwLDE0LDAsMCwwLDMyLDAsMCwwLDQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwyMjQsMzUsMCwwLDE4MCwwLDAsMCw4NiwwLDAsMCw0OCwwLDAsMCwxMCwwLDAsMCwx
MiwwLDAsMCwyNCwwLDAsMCwzNCwwLDAsMCw3NCwwLDAsMCw2LDAsMCwwLDY2LDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDI0MCwzNSwwLDAsMTgwLDAsMCwwLDIzOCwwLDAsMCw0OCwwLDAs
MCwxMCwwLDAsMCwxMiwwLDAsMCwyNCwwLDAsMCwzNCwwLDAsMCw3NCwwLDAsMCw2LDAsMCwwLDY2
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMzYsMCwwLDEyNiwwLDAsMCwyMzQsMCww
LDAsMTYsMCwwLDAsMjIsMCwwLDAsMTYsMCwwLDAsMTAsMCwwLDAsODgsMCwwLDAsMTAwLDAsMCww
LDMwLDAsMCwwLDI4LDAsMCwwLDI2LDAsMCwwLDI4LDAsMCwwLDQwLDAsMCwwLDIwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDgsMzYsMCwwLDEwLDAsMCwwLDExOCwwLDAsMCw1OCwwLDAs
MCwzOCwwLDAsMCwyOCwwLDAsMCw2LDAsMCwwLDUwLDAsMCwwLDg2LDAsMCwwLDE4LDAsMCwwLDYs
MCwwLDAsMTAsMCwwLDAsMjQsMCwwLDAsMTYsMCwwLDAsMTAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMTYsMzYsMCwwLDEwMCwwLDAsMCwxOTQsMCwwLDAsMiwwLDAsMCwyLDAsMCwwLDE0
LDAsMCwwLDMyLDAsMCwwLDIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNCwwLDAsMCww
LDAsMCwwLDU2LDM2LDAsMCw0NCwwLDAsMCwyMDYsMCwwLDAsMjUyLDI1NSwyNTUsMjU1LDI1Miwy
NTUsMjU1LDI1NSw1NiwzNiwwLDAsMTQ2LDAsMCwwLDEyNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
NCwwLDAsMCwwLDAsMCwwLDgwLDM2LDAsMCwyMTIsMCwwLDAsMjM2LDAsMCwwLDI1MiwyNTUsMjU1
LDI1NSwyNTIsMjU1LDI1NSwyNTUsODAsMzYsMCwwLDEwNiwwLDAsMCwyMDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDgsMCwwLDAsMCwwLDAsMCwxMDQsMzYsMCwwLDg4LDAsMCwwLDgsMSwwLDAsMjQ4
LDI1NSwyNTUsMjU1LDI0OCwyNTUsMjU1LDI1NSwxMDQsMzYsMCwwLDE4MiwwLDAsMCwyMzIsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDgsMCwwLDAsMCwwLDAsMCwxMjgsMzYsMCwwLDEwNCwwLDAsMCwy
MDQsMCwwLDAsMjQ4LDI1NSwyNTUsMjU1LDI0OCwyNTUsMjU1LDI1NSwxMjgsMzYsMCwwLDEzNiww
LDAsMCw1MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNTIsMzYsMCwwLDIwMiwwLDAs
MCwxODQsMCwwLDAsMzgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxOTIs
MzYsMCwwLDI0OCwwLDAsMCwyMjYsMCwwLDAsNCwwLDAsMCwyMiwwLDAsMCwxNiwwLDAsMCwxMCww
LDAsMCw1OCwwLDAsMCwxMDAsMCwwLDAsMzAsMCwwLDAsMjgsMCwwLDAsMjYsMCwwLDAsMjgsMCww
LDAsNDAsMCwwLDAsMjYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjA4LDM2LDAsMCwx
NTQsMCwwLDAsMTc4LDAsMCwwLDM0LDAsMCwwLDM4LDAsMCwwLDI4LDAsMCwwLDYsMCwwLDAsOTAs
MCwwLDAsODYsMCwwLDAsMTgsMCwwLDAsNiwwLDAsMCwxMCwwLDAsMCwyNCwwLDAsMCwxNiwwLDAs
MCwxNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDM3LDAsMCwyMjAsMCwwLDAsMTQ0
LDAsMCwwLDQ4LDAsMCwwLDY4LDAsMCwwLDExOCwwLDAsMCw0MCwwLDAsMCw4MCwwLDAsMCw2LDAs
MCwwLDI4LDAsMCwwLDUyLDAsMCwwLDIwLDAsMCwwLDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDMyLDM3LDAsMCwxMDIsMCwwLDAsNTQsMCwwLDAsNDgsMCwwLDAsMTEyLDAsMCwwLDQs
MCwwLDAsNjYsMCwwLDAsNzQsMCwwLDAsNzYsMCwwLDAsMjIsMCwwLDAsMTE0LDAsMCwwLDUwLDAs
MCwwLDEwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDY0LDM3LDAsMCwyMjQsMCwwLDAs
MTE0LDAsMCwwLDQ4LDAsMCwwLDE0LDAsMCwwLDYwLDAsMCwwLDQ2LDAsMCwwLDQyLDAsMCwwLDc4
LDAsMCwwLDUyLDAsMCwwLDkyLDAsMCwwLDU2LDAsMCwwLDMyLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDk2LDM3LDAsMCw3NiwwLDAsMCwxNzIsMCwwLDAsNDgsMCwwLDAsMTAyLDAsMCww
LDEwOCwwLDAsMCwyNiwwLDAsMCw3MiwwLDAsMCwyNCwwLDAsMCwxOCwwLDAsMCw4MCwwLDAsMCw3
MCwwLDAsMCw2OCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNTIsMzcsMCwwLDkwLDAs
MCwwLDY4LDAsMCwwLDYyLDAsMCwwLDIyLDAsMCwwLDE2LDAsMCwwLDEwLDAsMCwwLDg4LDAsMCww
LDEwMCwwLDAsMCwzMCwwLDAsMCw3MiwwLDAsMCw4MiwwLDAsMCwxMiwwLDAsMCw0MCwwLDAsMCwy
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNjgsMzcsMCwwLDE0LDAsMCwwLDIxNCww
LDAsMCw2MCwwLDAsMCwzOCwwLDAsMCwyOCwwLDAsMCw2LDAsMCwwLDUwLDAsMCwwLDg2LDAsMCww
LDE4LDAsMCwwLDU2LDAsMCwwLDI0LDAsMCwwLDQsMCwwLDAsMTYsMCwwLDAsMTAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMTg0LDM3LDAsMCwyNTAsMCwwLDAsMTk4LDAsMCwwLDYyLDAs
MCwwLDE1MCwwLDAsMCw4LDAsMCwwLDIsMCwwLDAsNiwwLDAsMCw0LDAsMCwwLDAsMCwwLDAsMCww
LDAsMCw4MywxMTYsNTcsMTE2LDEyMSwxMTIsMTAxLDk1LDEwNSwxMTAsMTAyLDExMSwwLDAsMCww
LDgzLDExNiw1NywxMDEsMTIwLDk5LDEwMSwxMTIsMTE2LDEwNSwxMTEsMTEwLDAsMCwwLDAsODMs
MTE2LDU3LDk4LDk3LDEwMCw5NSw5NywxMDgsMTA4LDExMSw5OSwwLDAsMCwwLDgzLDExNiw1Niw5
OCw5NywxMDAsOTUsOTksOTcsMTE1LDExNiwwLDAsMCwwLDAsODMsMTE2LDQ5LDUxLDExNCwxMTcs
MTEwLDExNiwxMDUsMTA5LDEwMSw5NSwxMDEsMTE0LDExNCwxMTEsMTE0LDAsMCwwLDAsMCwwLDAs
ODMsMTE2LDQ5LDUwLDEwOCwxMDEsMTEwLDEwMywxMTYsMTA0LDk1LDEwMSwxMTQsMTE0LDExMSwx
MTQsMCwwLDAsMCwwLDAsMCwwLDgzLDExNiw0OSw0OSwxMDgsMTExLDEwMywxMDUsOTksOTUsMTAx
LDExNCwxMTQsMTExLDExNCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NywxMTYsMTA1LDEwOSwx
MDEsOTUsOTgsOTcsMTE1LDEwMSw2OSwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDks
NTcsMTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMTIsMTE3LDExNiw3MywxMTksNzgsODMsOTUsNDks
NTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwx
MTQsOTcsMTE2LDExMSwxMTQsNzMsMTE5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUs
MTE2LDExNCw5NywxMDUsMTE2LDExNSw3MywxMTksNjksNjksNjksNjksNjksNjksMCwwLDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTEyLDExNywxMTYs
NzMsOTksNzgsODMsOTUsNDksNTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEw
Miw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMsOTUsNDksNDks
OTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5
LDY5LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NywxMDksMTExLDExMCwxMDEsMTIx
LDk1LDEwMywxMDEsMTE2LDczLDExOSw3OCw4Myw5NSw0OSw1NywxMDUsMTE1LDExNiwxMTQsMTAx
LDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYsMTExLDExNCw3Mywx
MTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1
LDczLDExOSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcs
MTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMDMsMTAxLDExNiw3Myw5OSw3OCw4Myw5NSw0OSw1Nywx
MDUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5
NywxMTYsMTExLDExNCw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwx
MTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksNjksNjksMCwwLDAsNzgsODMsMTE2
LDUxLDk1LDk1LDQ5LDU3LDk4LDk3LDExNSwxMDUsOTksOTUsMTA1LDExMSwxMTUsNzMsMTE5LDc4
LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3Mywx
MTksNjksNjksNjksNjksMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsOTgs
OTcsMTE1LDEwNSw5OSw5NSwxMDUsMTExLDExNSw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQs
OTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksMCwwLDAs
MCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsOTUsOTUsMTEwLDExNywxMDksOTUsMTEy
LDExNywxMTYsNzMsMTE5LDY5LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Nyw5NSw5
NSwxMTAsMTE3LDEwOSw5NSwxMTIsMTE3LDExNiw3Myw5OSw2OSw2OSwwLDAsMCw3OCw4MywxMTYs
NTEsOTUsOTUsNDksNTcsOTUsOTUsMTEwLDExNywxMDksOTUsMTAzLDEwMSwxMTYsNzMsMTE5LDY5
LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Nyw5NSw5NSwxMTAsMTE3LDEwOSw5NSwx
MDMsMTAxLDExNiw3Myw5OSw2OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTE2
LDEwNSwxMDksMTAxLDk1LDExMiwxMTcsMTE2LDczLDExOSw3OCw4Myw5NSw0OSw1NywxMTEsMTE1
LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYs
MTExLDExNCw3MywxMTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3
LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1
MSw5NSw5NSw0OSw1NiwxMTYsMTA1LDEwOSwxMDEsOTUsMTEyLDExNywxMTYsNzMsOTksNzgsODMs
OTUsNDksNTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2
LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDEx
NCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCww
LDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDExNiwxMDUsMTA5LDEwMSw5NSwxMDMsMTAxLDEx
Niw3MywxMTksNzgsODMsOTUsNDksNTcsMTA1LDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3
LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsMTE5LDc4LDgzLDk1LDQ5
LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3MywxMTksNjksNjks
NjksNjksNjksNjksMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTE2LDEwNSwxMDks
MTAxLDk1LDEwMywxMDEsMTE2LDczLDk5LDc4LDgzLDk1LDQ5LDU3LDEwNSwxMTUsMTE2LDExNCwx
MDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDcz
LDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDEx
NSw3Myw5OSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1
NiwxMTAsMTE3LDEwOSwxMTIsMTE3LDExMCw5OSwxMTYsNzMsMTE5LDY5LDY5LDAsMCwwLDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDExMCwxMTcsMTA5LDExMiwxMTcsMTEwLDk5LDExNiw3Myw5
OSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMDksMTAxLDExNSwxMTUs
OTcsMTAzLDEwMSwxMTUsNzMsMTE5LDY5LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5
LDU2LDEwOSwxMDEsMTE1LDExNSw5NywxMDMsMTAxLDExNSw3Myw5OSw2OSw2OSwwLDAsMCwwLDc4
LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMDUsMTExLDExNSw5NSw5OCw5NywxMTUsMTAxLDY5LDAs
MCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDEwNSwxMTEsMTE1LDk1LDk4LDk3
LDExNSwxMDEsNTUsMTAyLDk3LDEwNSwxMDgsMTE3LDExNCwxMDEsNjksMCwwLDAsMCwwLDAsMCw3
OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsMTEwLDExNywxMDksOTUsMTEyLDExNywxMTYsNzMsMTE5
LDc4LDgzLDk1LDQ5LDU3LDExMSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUs
MTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwx
MDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDY5
LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsMTEwLDExNywxMDksOTUsMTEy
LDExNywxMTYsNzMsOTksNzgsODMsOTUsNDksNTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDks
OTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMs
OTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5
LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsMTEwLDEx
NywxMDksOTUsMTAzLDEwMSwxMTYsNzMsMTE5LDc4LDgzLDk1LDQ5LDU3LDEwNSwxMTUsMTE2LDEx
NCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0
LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDEx
NiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUs
OTUsNDksNTUsMTEwLDExNywxMDksOTUsMTAzLDEwMSwxMTYsNzMsOTksNzgsODMsOTUsNDksNTcs
MTA1LDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQs
OTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYs
MTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4
MywxMTYsNTEsOTUsOTUsNDksNTUsOTksMTExLDEwOCwxMDgsOTcsMTE2LDEwMSw3MywxMTksNjks
NjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NSw5OSwxMTEsMTA4LDEwOCw5Nywx
MTYsMTAxLDczLDk5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsOTks
MTExLDEwMCwxMDEsOTksMTE4LDExNiw3MywxMTksOTksNDksNDgsOTUsMTA5LDk4LDExNSwxMTYs
OTcsMTE2LDEwMSw5NSwxMTYsNjksNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5
NSw0OSw1NSw5OSwxMTEsMTAwLDEwMSw5OSwxMTgsMTE2LDczLDk5LDk5LDQ5LDQ4LDk1LDEwOSw5
OCwxMTUsMTE2LDk3LDExNiwxMDEsOTUsMTE2LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4Mywx
MTYsNTEsOTUsOTUsNDksNTUsOTksMTExLDEwMCwxMDEsOTksMTE4LDExNiw3Myw2OCwxMTUsOTks
NDksNDgsOTUsMTA5LDk4LDExNSwxMTYsOTcsMTE2LDEwMSw5NSwxMTYsNjksNjksMCwwLDAsMCww
LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsOTksMTExLDEwMCwxMDEsOTksMTE4LDExNiw3
Myw2OCwxMDUsOTksNDksNDgsOTUsMTA5LDk4LDExNSwxMTYsOTcsMTE2LDEwMSw5NSwxMTYsNjks
NjksMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTQsMTA4LDExMSw5OSw5Nywx
MDgsMTAxLDUzLDEwMiw5Nyw5OSwxMDEsMTE2LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0
OSw1NCwxMDgsMTExLDk5LDk3LDEwOCwxMDEsNTMsOTUsOTUsMTA1LDEwOSwxMTIsNjksMCwwLDAs
NzgsODMsMTE2LDUxLDk1LDk1LDQ5LDUzLDk5LDExNiwxMjEsMTEyLDEwMSw3MywxMTksNjksNjks
MCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTMsOTksMTE2LDEyMSwxMTIsMTAx
LDczLDk5LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDUwLDQ4LDk1
LDk1LDExNiwxMDUsMTA5LDEwMSw5NSwxMDMsMTAxLDExNiw5NSw5OSw5NSwxMTUsMTE2LDExMSwx
MTQsOTcsMTAzLDEwMSw3MywxMTksNjksNjksMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUs
OTUsNDksNTAsNDgsOTUsOTUsMTE2LDEwNSwxMDksMTAxLDk1LDEwMywxMDEsMTE2LDk1LDk5LDk1
LDExNSwxMTYsMTExLDExNCw5NywxMDMsMTAxLDczLDk5LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDU3LDk1LDk1LDEwNSwxMTEsMTE1LDExNiwxMTQsMTAxLDk3
LDEwOSw5NSw5OSw5NywxMTYsMTAxLDEwMywxMTEsMTE0LDEyMSw2OSwwLDAsMCw3OCw4MywxMTYs
NTEsOTUsOTUsNDksNDksNTUsOTUsOTUsMTE5LDEwNSwxMDAsMTAxLDExMCw5NSwxMDIsMTE0LDEx
MSwxMDksOTUsMTE3LDExNiwxMDIsNTYsNzMsNzYsMTA2LDUxLDUwLDY5LDY5LDY5LDAsMCwwLDAs
MCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1NCw5NSw5NSwxMTAsOTcsMTE0LDExNCwxMTEs
MTE5LDk1LDExNiwxMTEsOTUsMTE3LDExNiwxMDIsNTYsNzMsNzYsMTA2LDUxLDUwLDY5LDY5LDY5
LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUzLDk4LDk3LDExNSwxMDUs
OTksOTUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDczLDExOSw3OCw4Myw5NSw0
OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5
LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTMsOTgsOTcs
MTE1LDEwNSw5OSw5NSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsNzMsOTksNzgs
ODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5
LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTIs
MTAxLDExNCwxMTQsMTExLDExNCw5NSw5OSw5NywxMTYsMTAxLDEwMywxMTEsMTE0LDEyMSw2OSww
LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUyLDk1LDk1LDExNSwxMDQs
OTcsMTE0LDEwMSwxMDAsOTUsOTksMTExLDExNywxMTAsMTE2LDY5LDAsMCwwLDAsMCwwLDAsMCw3
OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTIsOTUsOTUsMTEwLDExNywxMDksOTUsMTEyLDExNywx
MTYsOTUsOTgsOTcsMTE1LDEwMSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1
LDQ5LDQ5LDUyLDk1LDk1LDExMCwxMTcsMTA5LDk1LDEwMywxMDEsMTE2LDk1LDk4LDk3LDExNSwx
MDEsNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MSwxMDksMTAx
LDExNSwxMTUsOTcsMTAzLDEwMSwxMTUsOTUsOTgsOTcsMTE1LDEwMSw2OSwwLDc4LDgzLDExNiw1
MSw5NSw5NSw0OSw0OSw1MSw5OCw5NywxMTUsMTA1LDk5LDk1LDExMSwxMTUsMTE2LDExNCwxMDEs
OTcsMTA5LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcs
MTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDks
NDksNTEsOTgsOTcsMTE1LDEwNSw5OSw5NSwxMTEsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw3Myw5
OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUs
NzMsOTksNjksNjksNjksNjksMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MSw5OCw5Nywx
MTUsMTA1LDk5LDk1LDEwNSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDczLDExOSw3OCw4Myw5NSw0
OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5
LDY5LDY5LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTEsOTgsOTcsMTE1LDEwNSw5OSw5
NSwxMDUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQs
OTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksMCwwLDc4
LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MCwxMTUsMTIxLDExNSwxMTYsMTAxLDEwOSw5NSwxMDEs
MTE0LDExNCwxMTEsMTE0LDY5LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTAsOTksMTEx
LDEwMCwxMDEsOTksMTE4LDExNiw5NSw5OCw5NywxMTUsMTAxLDY5LDAsMCw3OCw4MywxMTYsNTEs
OTUsOTUsNDksNDksNTAsOTUsOTUsMTAwLDExMSw5NSwxMDksMTAxLDExNSwxMTUsOTcsMTAzLDEw
MSw2OSwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ5LDk1LDk1LDExNSwxMTYsMTAwLDEx
MSwxMTcsMTE2LDk4LDExNywxMDIsNzMsMTE5LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4Mywx
MTYsNTEsOTUsOTUsNDksNDksNDksOTUsOTUsMTE1LDExNiwxMDAsMTExLDExNywxMTYsOTgsMTE3
LDEwMiw3Myw5OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5
LDQ5LDk1LDk1LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTEyLDExNywxMTYsNzMsMTE5LDY5LDY5
LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDksOTUsOTUsMTA5LDEx
MSwxMTAsMTAxLDEyMSw5NSwxMTIsMTE3LDExNiw3Myw5OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAs
NzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ5LDk1LDk1LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUs
MTAzLDEwMSwxMTYsNzMsMTE5LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUs
OTUsNDksNDksNDksOTUsOTUsMTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMDMsMTAxLDExNiw3Myw5
OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDEwOSwx
MTEsMTEwLDEwMSwxMjEsMTEyLDExNywxMTAsOTksMTE2LDczLDExOSw3Niw5OCw0OSw2OSw2OSw2
OSwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDEwOSwxMTEsMTEwLDEwMSwx
MjEsMTEyLDExNywxMTAsOTksMTE2LDczLDExOSw3Niw5OCw0OCw2OSw2OSw2OSwwLDAsMCwwLDAs
NzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDEwOSwxMTEsMTEwLDEwMSwxMjEsMTEyLDExNywx
MTAsOTksMTE2LDczLDk5LDc2LDk4LDQ5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEs
OTUsOTUsNDksNDksNDgsMTA5LDExMSwxMTAsMTAxLDEyMSwxMTIsMTE3LDExMCw5OSwxMTYsNzMs
OTksNzYsOTgsNDgsNjksNjksNjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0
OCwxMDksMTExLDExMCwxMDEsMTIxLDk1LDk4LDk3LDExNSwxMDEsNjksMCwwLDAsMCw3OCw4Mywx
MTYsNTEsOTUsOTUsNDksNDksNDgsOTksMTE2LDEyMSwxMTIsMTAxLDk1LDk4LDk3LDExNSwxMDEs
NjksMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDgsOTUsOTUsMTE2LDEwNSwxMDks
MTAxLDk1LDExMiwxMTcsMTE2LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4
LDk1LDk1LDExNSwxMTYsMTAwLDEwNSwxMTAsOTgsMTE3LDEwMiw3MywxMTksNjksNjksMCw3OCw4
MywxMTYsNTEsOTUsOTUsNDksNDksNDgsOTUsOTUsMTE1LDExNiwxMDAsMTA1LDExMCw5OCwxMTcs
MTAyLDczLDk5LDY5LDY5LDAsNzgsNDksNDgsOTUsOTUsOTksMTIwLDEyMCw5Nyw5OCwxMDUsMTE4
LDQ5LDUwLDQ5LDk1LDk1LDExOCwxMDksMTA1LDk1LDk5LDEwOCw5NywxMTUsMTE1LDk1LDExNiwx
MjEsMTEyLDEwMSw5NSwxMDUsMTEwLDEwMiwxMTEsNjksMCwwLDAsNzgsNDksNDgsOTUsOTUsOTks
MTIwLDEyMCw5Nyw5OCwxMDUsMTE4LDQ5LDUwLDQ4LDk1LDk1LDExNSwxMDUsOTUsOTksMTA4LDk3
LDExNSwxMTUsOTUsMTE2LDEyMSwxMTIsMTAxLDk1LDEwNSwxMTAsMTAyLDExMSw2OSwwLDAsMCww
LDc4LDQ5LDQ4LDk1LDk1LDk5LDEyMCwxMjAsOTcsOTgsMTA1LDExOCw0OSw0OSw1NSw5NSw5NSw5
OSwxMDgsOTcsMTE1LDExNSw5NSwxMTYsMTIxLDExMiwxMDEsOTUsMTA1LDExMCwxMDIsMTExLDY5
LDAsMCwwLDAsMCwwLDAsNzgsNDksNDgsOTUsOTUsOTksMTIwLDEyMCw5Nyw5OCwxMDUsMTE4LDQ5
LDQ5LDU0LDk1LDk1LDExNSwxMDQsMTA1LDEwOSw5NSwxMTYsMTIxLDExMiwxMDEsOTUsMTA1LDEx
MCwxMDIsMTExLDY5LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDQwLDIwLDAsMCwwLDAsMCwwLDU2
LDIwLDAsMCwwLDAsMCwwLDcyLDIwLDAsMCwyMTYsMzEsMCwwLDAsMCwwLDAsMCwwLDAsMCw4OCwy
MCwwLDAsMjE2LDMxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTA0LDIwLDAsMCwyMTYsMzEsMCwwLDAs
MCwwLDAsMCwwLDAsMCwxMjgsMjAsMCwwLDMyLDMyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTUyLDIw
LDAsMCwyMTYsMzEsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNjgsMjAsMCwwLDAsMjAsMCwwLDE5Miwy
MCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDIyNCwzNiwwLDAsMCwwLDAs
MCwwLDIwLDAsMCw4LDIxLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMjMy
LDM2LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDgwLDIxLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUs
MCwwLDIsMCwwLDAsMjQwLDM2LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDE1MiwyMSwwLDAsMCwwLDAs
MCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDI0OCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDIy
NCwyMSwwLDAsNDAsMzQsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNiwyMiwwLDAsNDAsMzQsMCwwLDAs
MCwwLDAsMCwyMCwwLDAsNjQsMjIsMCwwLDAsMCwwLDAsMSwwLDAsMCwzMiwzNiwwLDAsMCwwLDAs
MCwwLDIwLDAsMCw4OCwyMiwwLDAsMCwwLDAsMCwxLDAsMCwwLDMyLDM2LDAsMCwwLDAsMCwwLDAs
MjAsMCwwLDExMiwyMiwwLDAsMCwwLDAsMCwxLDAsMCwwLDQwLDM2LDAsMCwwLDAsMCwwLDAsMjAs
MCwwLDEzNiwyMiwwLDAsMCwwLDAsMCwxLDAsMCwwLDQwLDM2LDAsMCwwLDAsMCwwLDAsMjAsMCww
LDE2MCwyMiwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDE0NCwzNywwLDAs
MCw4LDAsMCwwLDIwLDAsMCwyMzIsMjIsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiww
LDAsMCwxNDQsMzcsMCwwLDAsOCwwLDAsMCwyMCwwLDAsNDgsMjMsMCwwLDAsMCwwLDAsMywwLDAs
MCw5NiwzNSwwLDAsMiwwLDAsMCw0OCwzMiwwLDAsMiwwLDAsMCwxOTIsMzUsMCwwLDAsOCwwLDAs
MCwyMCwwLDAsMTIwLDIzLDAsMCwwLDAsMCwwLDMsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsNDgs
MzIsMCwwLDIsMCwwLDAsMjAwLDM1LDAsMCwwLDgsMCwwLDAsMCwwLDAsMTkyLDIzLDAsMCw5Niwz
NSwwLDAsMCwwLDAsMCwwLDAsMCwwLDIxNiwyMywwLDAsOTYsMzUsMCwwLDAsMCwwLDAsMCwyMCww
LDAsMjQwLDIzLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsNDgsMzYsMCww
LDIsMCwwLDAsMCwyMCwwLDAsOCwyNCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAs
MCwwLDQ4LDM2LDAsMCwyLDAsMCwwLDAsMCwwLDAsMzIsMjQsMCwwLDAsMCwwLDAsNTYsMjQsMCww
LDE1MiwzNiwwLDAsMCwwLDAsMCwwLDIwLDAsMCw4OCwyNCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2
LDM1LDAsMCwyLDAsMCwwLDIxNiwzMiwwLDAsMCwwLDAsMCwwLDIwLDAsMCwxNjAsMjQsMCwwLDAs
MCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwyNDAsMzIsMCwwLDAsMCwwLDAsMCwyMCww
LDAsMjMyLDI0LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsOCwzMywwLDAs
MCwwLDAsMCwwLDIwLDAsMCw0OCwyNSwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAs
MCwwLDMyLDMzLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTIwLDI1LDAsMCw5NiwzNSwwLDAsMCwwLDAs
MCwwLDAsMCwwLDE0NCwyNSwwLDAsOTYsMzUsMCwwLDAsMCwwLDAsMCwyMCwwLDAsMTY4LDI1LDAs
MCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTY4LDM2LDAsMCwyLDAsMCwwLDAs
MjAsMCwwLDIwOCwyNSwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDE2OCwz
NiwwLDAsMiwwLDAsMCwwLDIwLDAsMCwyNDgsMjUsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSww
LDAsMiwwLDAsMCwxNjgsMzYsMCwwLDIsMCwwLDAsMCwyMCwwLDAsMzIsMjYsMCwwLDAsMCwwLDAs
MiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwxNjgsMzYsMCwwLDIsMCwwLDAsMCwwLDAsMCw3Miwy
NiwwLDAsMjQsMzYsMCwwLDAsMCwwLDAsMCwwLDAsMCw5NiwyNiwwLDAsOTYsMzUsMCwwLDAsMCww
LDAsMCwyMCwwLDAsMTIwLDI2LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAs
MTM2LDM3LDAsMCwyLDAsMCwwLDAsMjAsMCwwLDE0NCwyNiwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2
LDM1LDAsMCwyLDAsMCwwLDEzNiwzNywwLDAsMiwwLDAsMCwwLDAsMCwwLDE2OCwyNiwwLDAsMCww
LDAsMCwyMDgsMjYsMCwwLDAsMCwwLDAsMjQ4LDI2LDAsMCwxNzYsMzYsMCwwLDAsMCwwLDAsMCww
LDAsMCwyNCwyNywwLDAsNjQsMzUsMCwwLDAsMCwwLDAsMCwwLDAsMCw2NCwyNywwLDAsNjQsMzUs
MCwwLDAsMCwwLDAsMCwwLDAsMCwxMDQsMjcsMCwwLDAsMCwwLDAsMTYwLDI3LDAsMCwwLDAsMCww
LDIxNiwyNywwLDAsMCwwLDAsMCwyNDgsMjcsMCwwLDAsMCwwLDAsMjQsMjgsMCwwLDAsMCwwLDAs
NTYsMjgsMCwwLDAsMCwwLDAsODgsMjgsMCwwLDAsMjAsMCwwLDExMiwyOCwwLDAsMCwwLDAsMCwx
LDAsMCwwLDE4NCwzMiwwLDAsMywyNDQsMjU1LDI1NSwwLDIwLDAsMCwxNjAsMjgsMCwwLDAsMCww
LDAsMSwwLDAsMCwyMDAsMzIsMCwwLDMsMjQ0LDI1NSwyNTUsMCwyMCwwLDAsMjA4LDI4LDAsMCww
LDAsMCwwLDEsMCwwLDAsMTg0LDMyLDAsMCwzLDI0NCwyNTUsMjU1LDAsMjAsMCwwLDAsMjksMCww
LDAsMCwwLDAsMSwwLDAsMCwyMDAsMzIsMCwwLDMsMjQ0LDI1NSwyNTUsMCwwLDAsMCw0OCwyOSww
LDAsMCwzMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDcyLDI5LDAsMCwwLDAsMCwwLDk2LDI5LDAsMCwx
NiwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDEyMCwyOSwwLDAsMCwzNiwwLDAsMCwwLDAsMCwwLDAs
MCwwLDE1MiwyOSwwLDAsOCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDE4NCwyOSwwLDAsMCwwLDAs
MCwyMTYsMjksMCwwLDAsMCwwLDAsMjQ4LDI5LDAsMCwwLDAsMCwwLDI0LDMwLDAsMCwwLDIwLDAs
MCw1NiwzMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDEyOCwzNywwLDAs
MiwwLDAsMCwwLDIwLDAsMCw4OCwzMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAs
MCwwLDEyOCwzNywwLDAsMiwwLDAsMCwwLDIwLDAsMCwxMjAsMzAsMCwwLDAsMCwwLDAsMiwwLDAs
MCw5NiwzNSwwLDAsMiwwLDAsMCwxMjgsMzcsMCwwLDIsMCwwLDAsMCwyMCwwLDAsMTUyLDMwLDAs
MCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTI4LDM3LDAsMCwyLDAsMCwwLDAs
MCwwLDAsMTg0LDMwLDAsMCwwLDAsMCwwLDIwOCwzMCwwLDAsMCwwLDAsMCwyMzIsMzAsMCwwLDAs
MCwwLDAsMCwzMSwwLDAsMCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDI0LDMxLDAsMCw4LDM2LDAs
MCwwLDAsMCwwLDAsMCwwLDAsNDgsMzEsMCwwLDIxNiwzNywwLDAsMCwwLDAsMCwwLDAsMCwwLDg4
LDMxLDAsMCwyMTYsMzcsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMjgsMzEsMCwwLDIzMiwzNywwLDAs
MCwwLDAsMCwwLDAsMCwwLDE2OCwzMSwwLDAsMjA4LDMxLDAsMCwwLDAsMCwwLDI1NSwyNTUsMjU1
LDI1NSwwLDAsMCwwLDI1NSwyNTUsMjU1LDI1NSwwLDAsMCwwLDI1NSwyNTUsMjU1LDI1NSwwLDAs
MCwwLDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDk3LDk4LDk5LDEwMCwxMDEsMTAyLDY1
LDY2LDY3LDY4LDY5LDcwLDEyMCw4OCw0Myw0NSwxMTIsODAsMTA1LDczLDExMCw3OCwwLDAsMCww
LDAsMCwwLDBdLCAiaTgiLCBBTExPQ19OT05FLCBSdW50aW1lLkdMT0JBTF9CQVNFKQotdmFyIHRl
bXBEb3VibGVQdHIgPSBSdW50aW1lLmFsaWduTWVtb3J5KGFsbG9jYXRlKDEyLCAiaTgiLCBBTExP
Q19TVEFUSUMpLCA4KTsKLWFzc2VydCh0ZW1wRG91YmxlUHRyICUgOCA9PSAwKTsKLWZ1bmN0aW9u
IGNvcHlUZW1wRmxvYXQocHRyKSB7IC8vIGZ1bmN0aW9ucywgYmVjYXVzZSBpbmxpbmluZyB0aGlz
IGNvZGUgaW5jcmVhc2VzIGNvZGUgc2l6ZSB0b28gbXVjaAotICBIRUFQOFt0ZW1wRG91YmxlUHRy
XSA9IEhFQVA4W3B0cl07Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHIrMV0gPSBIRUFQOFtwdHIrMV07
Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHIrMl0gPSBIRUFQOFtwdHIrMl07Ci0gIEhFQVA4W3RlbXBE
b3VibGVQdHIrM10gPSBIRUFQOFtwdHIrM107Ci19Ci1mdW5jdGlvbiBjb3B5VGVtcERvdWJsZShw
dHIpIHsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cl0gPSBIRUFQOFtwdHJdOwotICBIRUFQOFt0ZW1w
RG91YmxlUHRyKzFdID0gSEVBUDhbcHRyKzFdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzJdID0g
SEVBUDhbcHRyKzJdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzNdID0gSEVBUDhbcHRyKzNdOwot
ICBIRUFQOFt0ZW1wRG91YmxlUHRyKzRdID0gSEVBUDhbcHRyKzRdOwotICBIRUFQOFt0ZW1wRG91
YmxlUHRyKzVdID0gSEVBUDhbcHRyKzVdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzZdID0gSEVB
UDhbcHRyKzZdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzddID0gSEVBUDhbcHRyKzddOwotfQot
ICBmdW5jdGlvbiBfYXRleGl0KGZ1bmMsIGFyZykgewotICAgICAgX19BVEVYSVRfXy51bnNoaWZ0
KHsgZnVuYzogZnVuYywgYXJnOiBhcmcgfSk7Ci0gICAgfXZhciBfX19jeGFfYXRleGl0PV9hdGV4
aXQ7Ci0gIGZ1bmN0aW9uIF9sbHZtX3VtdWxfd2l0aF9vdmVyZmxvd19pMzIoeCwgeSkgewotICAg
ICAgeCA9IHg+Pj4wOwotICAgICAgeSA9IHk+Pj4wOwotICAgICAgcmV0dXJuICgoYXNtWyJzZXRU
ZW1wUmV0MCJdKHgqeSA+IDQyOTQ5NjcyOTUpLCh4KnkpPj4+MCl8MCk7Ci0gICAgfQotICBmdW5j
dGlvbiBfX19neHhfcGVyc29uYWxpdHlfdjAoKSB7Ci0gICAgfQotICBmdW5jdGlvbiBfX2V4aXQo
c3RhdHVzKSB7Ci0gICAgICAvLyB2b2lkIF9leGl0KGludCBzdGF0dXMpOwotICAgICAgLy8gaHR0
cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvZXhp
dC5odG1sCi0gICAgICBNb2R1bGUucHJpbnQoJ2V4aXQoJyArIHN0YXR1cyArICcpIGNhbGxlZCcp
OwotICAgICAgTW9kdWxlWydleGl0J10oc3RhdHVzKTsKLSAgICB9ZnVuY3Rpb24gX2V4aXQoc3Rh
dHVzKSB7Ci0gICAgICBfX2V4aXQoc3RhdHVzKTsKLSAgICB9ZnVuY3Rpb24gX19aU3Q5dGVybWlu
YXRldigpIHsKLSAgICAgIF9leGl0KC0xMjM0KTsKLSAgICB9Ci0gIE1vZHVsZVsiX21lbWNweSJd
ID0gX21lbWNweTt2YXIgX2xsdm1fbWVtY3B5X3AwaThfcDBpOF9pMzI9X21lbWNweTsKLSAgdmFy
IF9sb2c9TWF0aC5sb2c7Ci0gIHZhciBfZmxvb3I9TWF0aC5mbG9vcjsKLSAgdmFyIGN0bHpfaTgg
PSBhbGxvY2F0ZShbOCw3LDYsNiw1LDUsNSw1LDQsNCw0LDQsNCw0LDQsNCwzLDMsMywzLDMsMywz
LDMsMywzLDMsMywzLDMsMywzLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIs
MiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEs
MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMF0sICJpOCIsIEFMTE9DX1NUQVRJQyk7IAotICBNb2R1bGVbIl9sbHZtX2N0bHpf
aTMyIl0gPSBfbGx2bV9jdGx6X2kzMjsKLSAgZnVuY3Rpb24gX19aU3QxOHVuY2F1Z2h0X2V4Y2Vw
dGlvbnYoKSB7IC8vIHN0ZDo6dW5jYXVnaHRfZXhjZXB0aW9uKCkKLSAgICAgIHJldHVybiAhIV9f
WlN0MTh1bmNhdWdodF9leGNlcHRpb252LnVuY2F1Z2h0X2V4Y2VwdGlvbjsKLSAgICB9ZnVuY3Rp
b24gX19fY3hhX2JlZ2luX2NhdGNoKHB0cikgewotICAgICAgX19aU3QxOHVuY2F1Z2h0X2V4Y2Vw
dGlvbnYudW5jYXVnaHRfZXhjZXB0aW9uLS07Ci0gICAgICByZXR1cm4gcHRyOwotICAgIH0KLSAg
ZnVuY3Rpb24gX2xsdm1fZWhfZXhjZXB0aW9uKCkgewotICAgICAgcmV0dXJuIEhFQVAzMlsoKF9s
bHZtX2VoX2V4Y2VwdGlvbi5idWYpPj4yKV07Ci0gICAgfQotICBmdW5jdGlvbiBfX19jeGFfZnJl
ZV9leGNlcHRpb24ocHRyKSB7Ci0gICAgICB0cnkgewotICAgICAgICByZXR1cm4gX2ZyZWUocHRy
KTsKLSAgICAgIH0gY2F0Y2goZSkgeyAvLyBYWFggRklYTUUKLSAgICAgIH0KLSAgICB9ZnVuY3Rp
b24gX19fY3hhX2VuZF9jYXRjaCgpIHsKLSAgICAgIGlmIChfX19jeGFfZW5kX2NhdGNoLnJldGhy
b3duKSB7Ci0gICAgICAgIF9fX2N4YV9lbmRfY2F0Y2gucmV0aHJvd24gPSBmYWxzZTsKLSAgICAg
ICAgcmV0dXJuOwotICAgICAgfQotICAgICAgLy8gQ2xlYXIgc3RhdGUgZmxhZy4KLSAgICAgIGFz
bVsnc2V0VGhyZXcnXSgwKTsKLSAgICAgIC8vIENsZWFyIHR5cGUuCi0gICAgICBIRUFQMzJbKCgo
X2xsdm1fZWhfZXhjZXB0aW9uLmJ1ZikrKDQpKT4+MildPTAKLSAgICAgIC8vIENhbGwgZGVzdHJ1
Y3RvciBpZiBvbmUgaXMgcmVnaXN0ZXJlZCB0aGVuIGNsZWFyIGl0LgotICAgICAgdmFyIHB0ciA9
IEhFQVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpPj4yKV07Ci0gICAgICB2YXIgZGVzdHJ1
Y3RvciA9IEhFQVAzMlsoKChfbGx2bV9laF9leGNlcHRpb24uYnVmKSsoOCkpPj4yKV07Ci0gICAg
ICBpZiAoZGVzdHJ1Y3RvcikgewotICAgICAgICBSdW50aW1lLmR5bkNhbGwoJ3ZpJywgZGVzdHJ1
Y3RvciwgW3B0cl0pOwotICAgICAgICBIRUFQMzJbKCgoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zikr
KDgpKT4+MildPTAKLSAgICAgIH0KLSAgICAgIC8vIEZyZWUgcHRyIGlmIGl0IGlzbid0IG51bGwu
Ci0gICAgICBpZiAocHRyKSB7Ci0gICAgICAgIF9fX2N4YV9mcmVlX2V4Y2VwdGlvbihwdHIpOwot
ICAgICAgICBIRUFQMzJbKChfbGx2bV9laF9leGNlcHRpb24uYnVmKT4+MildPTAKLSAgICAgIH0K
LSAgICB9ZnVuY3Rpb24gX19fY3hhX3JldGhyb3coKSB7Ci0gICAgICBfX19jeGFfZW5kX2NhdGNo
LnJldGhyb3duID0gdHJ1ZTsKLSAgICAgIHRocm93IEhFQVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlv
bi5idWYpPj4yKV0gKyAiIC0gRXhjZXB0aW9uIGNhdGNoaW5nIGlzIGRpc2FibGVkLCB0aGlzIGV4
Y2VwdGlvbiBjYW5ub3QgYmUgY2F1Z2h0LiBDb21waWxlIHdpdGggLXMgRElTQUJMRV9FWENFUFRJ
T05fQ0FUQ0hJTkc9MCBvciBESVNBQkxFX0VYQ0VQVElPTl9DQVRDSElORz0yIHRvIGNhdGNoLiI7
OwotICAgIH0KLSAgTW9kdWxlWyJfbWVtbW92ZSJdID0gX21lbW1vdmU7dmFyIF9sbHZtX21lbW1v
dmVfcDBpOF9wMGk4X2kzMj1fbWVtbW92ZTsKLSAgTW9kdWxlWyJfbWVtc2V0Il0gPSBfbWVtc2V0
O3ZhciBfbGx2bV9tZW1zZXRfcDBpOF9pNjQ9X21lbXNldDsKLSAgZnVuY3Rpb24gX2xsdm1fbGlm
ZXRpbWVfc3RhcnQoKSB7fQotICBmdW5jdGlvbiBfbGx2bV9saWZldGltZV9lbmQoKSB7fQotICBm
dW5jdGlvbiBfcHRocmVhZF9tdXRleF9sb2NrKCkge30KLSAgZnVuY3Rpb24gX3B0aHJlYWRfbXV0
ZXhfdW5sb2NrKCkge30KLSAgZnVuY3Rpb24gX19fY3hhX2d1YXJkX2FjcXVpcmUodmFyaWFibGUp
IHsKLSAgICAgIGlmICghSEVBUDhbKHZhcmlhYmxlKV0pIHsgLy8gaWdub3JlIFNBRkVfSEVBUCBz
dHVmZiBiZWNhdXNlIGxsdm0gbWl4ZXMgaTY0IGFuZCBpOCBoZXJlCi0gICAgICAgIEhFQVA4Wyh2
YXJpYWJsZSldPTE7Ci0gICAgICAgIHJldHVybiAxOwotICAgICAgfQotICAgICAgcmV0dXJuIDA7
Ci0gICAgfQotICBmdW5jdGlvbiBfX19jeGFfZ3VhcmRfcmVsZWFzZSgpIHt9Ci0gIGZ1bmN0aW9u
IF9wdGhyZWFkX2NvbmRfYnJvYWRjYXN0KCkgewotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICBm
dW5jdGlvbiBfcHRocmVhZF9jb25kX3dhaXQoKSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0g
IGZ1bmN0aW9uIF9fX2N4YV9hbGxvY2F0ZV9leGNlcHRpb24oc2l6ZSkgewotICAgICAgcmV0dXJu
IF9tYWxsb2Moc2l6ZSk7Ci0gICAgfQotICBmdW5jdGlvbiBfX19jeGFfaXNfbnVtYmVyX3R5cGUo
dHlwZSkgewotICAgICAgdmFyIGlzTnVtYmVyID0gZmFsc2U7Ci0gICAgICB0cnkgeyBpZiAodHlw
ZSA9PSBfX1pUSWkpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlm
ICh0eXBlID09IF9fWlRJaikgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5
IHsgaWYgKHR5cGUgPT0gX19aVElsKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAg
ICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSW0pIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30K
LSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJeCkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2go
ZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVEl5KSBpc051bWJlciA9IHRydWUgfSBj
YXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSWYpIGlzTnVtYmVyID0gdHJ1
ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJZCkgaXNOdW1iZXIg
PSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVEllKSBpc051
bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSWMp
IGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9f
WlRJYSkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUg
PT0gX19aVEloKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAo
dHlwZSA9PSBfX1pUSXMpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7
IGlmICh0eXBlID09IF9fWlRJdCkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAg
cmV0dXJuIGlzTnVtYmVyOwotICAgIH1mdW5jdGlvbiBfX19jeGFfZG9lc19pbmhlcml0KGRlZmlu
aXRlVHlwZSwgcG9zc2liaWxpdHlUeXBlLCBwb3NzaWJpbGl0eSkgewotICAgICAgaWYgKHBvc3Np
YmlsaXR5ID09IDApIHJldHVybiBmYWxzZTsKLSAgICAgIGlmIChwb3NzaWJpbGl0eVR5cGUgPT0g
MCB8fCBwb3NzaWJpbGl0eVR5cGUgPT0gZGVmaW5pdGVUeXBlKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgIHZhciBwb3NzaWJpbGl0eV90eXBlX2luZm87Ci0gICAgICBpZiAoX19fY3hhX2lz
X251bWJlcl90eXBlKHBvc3NpYmlsaXR5VHlwZSkpIHsKLSAgICAgICAgcG9zc2liaWxpdHlfdHlw
ZV9pbmZvID0gcG9zc2liaWxpdHlUeXBlOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdmFyIHBv
c3NpYmlsaXR5X3R5cGVfaW5mb0FkZHIgPSBIRUFQMzJbKChwb3NzaWJpbGl0eVR5cGUpPj4yKV0g
LSA4OwotICAgICAgICBwb3NzaWJpbGl0eV90eXBlX2luZm8gPSBIRUFQMzJbKChwb3NzaWJpbGl0
eV90eXBlX2luZm9BZGRyKT4+MildOwotICAgICAgfQotICAgICAgc3dpdGNoIChwb3NzaWJpbGl0
eV90eXBlX2luZm8pIHsKLSAgICAgIGNhc2UgMDogLy8gcG9zc2liaWxpdHkgaXMgYSBwb2ludGVy
Ci0gICAgICAgIC8vIFNlZSBpZiBkZWZpbml0ZSB0eXBlIGlzIGEgcG9pbnRlcgotICAgICAgICB2
YXIgZGVmaW5pdGVfdHlwZV9pbmZvQWRkciA9IEhFQVAzMlsoKGRlZmluaXRlVHlwZSk+PjIpXSAt
IDg7Ci0gICAgICAgIHZhciBkZWZpbml0ZV90eXBlX2luZm8gPSBIRUFQMzJbKChkZWZpbml0ZV90
eXBlX2luZm9BZGRyKT4+MildOwotICAgICAgICBpZiAoZGVmaW5pdGVfdHlwZV9pbmZvID09IDAp
IHsKLSAgICAgICAgICAvLyBBbHNvIGEgcG9pbnRlcjsgY29tcGFyZSBiYXNlIHR5cGVzIG9mIHBv
aW50ZXJzCi0gICAgICAgICAgdmFyIGRlZlBvaW50ZXJCYXNlQWRkciA9IGRlZmluaXRlVHlwZSs4
OwotICAgICAgICAgIHZhciBkZWZQb2ludGVyQmFzZVR5cGUgPSBIRUFQMzJbKChkZWZQb2ludGVy
QmFzZUFkZHIpPj4yKV07Ci0gICAgICAgICAgdmFyIHBvc3NQb2ludGVyQmFzZUFkZHIgPSBwb3Nz
aWJpbGl0eVR5cGUrODsKLSAgICAgICAgICB2YXIgcG9zc1BvaW50ZXJCYXNlVHlwZSA9IEhFQVAz
MlsoKHBvc3NQb2ludGVyQmFzZUFkZHIpPj4yKV07Ci0gICAgICAgICAgcmV0dXJuIF9fX2N4YV9k
b2VzX2luaGVyaXQoZGVmUG9pbnRlckJhc2VUeXBlLCBwb3NzUG9pbnRlckJhc2VUeXBlLCBwb3Nz
aWJpbGl0eSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gb25l
IHBvaW50ZXIgYW5kIG9uZSBub24tcG9pbnRlcgotICAgICAgY2FzZSAxOiAvLyBjbGFzcyB3aXRo
IG5vIGJhc2UgY2xhc3MKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgY2FzZSAyOiAvLyBj
bGFzcyB3aXRoIGJhc2UgY2xhc3MKLSAgICAgICAgdmFyIHBhcmVudFR5cGVBZGRyID0gcG9zc2li
aWxpdHlUeXBlICsgODsKLSAgICAgICAgdmFyIHBhcmVudFR5cGUgPSBIRUFQMzJbKChwYXJlbnRU
eXBlQWRkcik+PjIpXTsKLSAgICAgICAgcmV0dXJuIF9fX2N4YV9kb2VzX2luaGVyaXQoZGVmaW5p
dGVUeXBlLCBwYXJlbnRUeXBlLCBwb3NzaWJpbGl0eSk7Ci0gICAgICBkZWZhdWx0OgotICAgICAg
ICByZXR1cm4gZmFsc2U7IC8vIHNvbWUgdW5lbmNvdW50ZXJlZCB0eXBlCi0gICAgICB9Ci0gICAg
fQotICBmdW5jdGlvbiBfX19yZXN1bWVFeGNlcHRpb24ocHRyKSB7Ci0gICAgICBpZiAoSEVBUDMy
WygoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXSA9PSAwKSBIRUFQMzJbKChfbGx2bV9laF9l
eGNlcHRpb24uYnVmKT4+MildPXB0cjsKLSAgICAgIHRocm93IHB0ciArICIgLSBFeGNlcHRpb24g
Y2F0Y2hpbmcgaXMgZGlzYWJsZWQsIHRoaXMgZXhjZXB0aW9uIGNhbm5vdCBiZSBjYXVnaHQuIENv
bXBpbGUgd2l0aCAtcyBESVNBQkxFX0VYQ0VQVElPTl9DQVRDSElORz0wIG9yIERJU0FCTEVfRVhD
RVBUSU9OX0NBVENISU5HPTIgdG8gY2F0Y2guIjs7Ci0gICAgfWZ1bmN0aW9uIF9fX2N4YV9maW5k
X21hdGNoaW5nX2NhdGNoKHRocm93biwgdGhyb3dudHlwZSkgewotICAgICAgaWYgKHRocm93biA9
PSAtMSkgdGhyb3duID0gSEVBUDMyWygoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXTsKLSAg
ICAgIGlmICh0aHJvd250eXBlID09IC0xKSB0aHJvd250eXBlID0gSEVBUDMyWygoKF9sbHZtX2Vo
X2V4Y2VwdGlvbi5idWYpKyg0KSk+PjIpXTsKLSAgICAgIHZhciB0eXBlQXJyYXkgPSBBcnJheS5w
cm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDIpOwotICAgICAgLy8gSWYgdGhyb3dudHlw
ZSBpcyBhIHBvaW50ZXIsIHRoaXMgbWVhbnMgYSBwb2ludGVyIGhhcyBiZWVuCi0gICAgICAvLyB0
aHJvd24uIFdoZW4gYSBwb2ludGVyIGlzIHRocm93biwgYWN0dWFsbHkgd2hhdCdzIHRocm93bgot
ICAgICAgLy8gaXMgYSBwb2ludGVyIHRvIHRoZSBwb2ludGVyLiBXZSdsbCBkZXJlZmVyZW5jZSBp
dC4KLSAgICAgIGlmICh0aHJvd250eXBlICE9IDAgJiYgIV9fX2N4YV9pc19udW1iZXJfdHlwZSh0
aHJvd250eXBlKSkgewotICAgICAgICB2YXIgdGhyb3dudHlwZUluZm9BZGRyPSBIRUFQMzJbKCh0
aHJvd250eXBlKT4+MildIC0gODsKLSAgICAgICAgdmFyIHRocm93bnR5cGVJbmZvPSBIRUFQMzJb
KCh0aHJvd250eXBlSW5mb0FkZHIpPj4yKV07Ci0gICAgICAgIGlmICh0aHJvd250eXBlSW5mbyA9
PSAwKQotICAgICAgICAgIHRocm93biA9IEhFQVAzMlsoKHRocm93bik+PjIpXTsKLSAgICAgIH0K
LSAgICAgIC8vIFRoZSBkaWZmZXJlbnQgY2F0Y2ggYmxvY2tzIGFyZSBkZW5vdGVkIGJ5IGRpZmZl
cmVudCB0eXBlcy4KLSAgICAgIC8vIER1ZSB0byBpbmhlcml0YW5jZSwgdGhvc2UgdHlwZXMgbWF5
IG5vdCBwcmVjaXNlbHkgbWF0Y2ggdGhlCi0gICAgICAvLyB0eXBlIG9mIHRoZSB0aHJvd24gb2Jq
ZWN0LiBGaW5kIG9uZSB3aGljaCBtYXRjaGVzLCBhbmQKLSAgICAgIC8vIHJldHVybiB0aGUgdHlw
ZSBvZiB0aGUgY2F0Y2ggYmxvY2sgd2hpY2ggc2hvdWxkIGJlIGNhbGxlZC4KLSAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgdHlwZUFycmF5Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmIChfX19j
eGFfZG9lc19pbmhlcml0KHR5cGVBcnJheVtpXSwgdGhyb3dudHlwZSwgdGhyb3duKSkKLSAgICAg
ICAgICByZXR1cm4gKChhc21bInNldFRlbXBSZXQwIl0odHlwZUFycmF5W2ldKSx0aHJvd24pfDAp
OwotICAgICAgfQotICAgICAgLy8gU2hvdWxkbid0IGhhcHBlbiB1bmxlc3Mgd2UgaGF2ZSBib2d1
cyBkYXRhIGluIHR5cGVBcnJheQotICAgICAgLy8gb3IgZW5jb3VudGVyIGEgdHlwZSBmb3Igd2hp
Y2ggZW1zY3JpcHRlbiBkb2Vzbid0IGhhdmUgc3VpdGFibGUKLSAgICAgIC8vIHR5cGVpbmZvIGRl
ZmluZWQuIEJlc3QtZWZmb3J0cyBtYXRjaCBqdXN0IGluIGNhc2UuCi0gICAgICByZXR1cm4gKChh
c21bInNldFRlbXBSZXQwIl0odGhyb3dudHlwZSksdGhyb3duKXwwKTsKLSAgICB9ZnVuY3Rpb24g
X19fY3hhX3Rocm93KHB0ciwgdHlwZSwgZGVzdHJ1Y3RvcikgewotICAgICAgaWYgKCFfX19jeGFf
dGhyb3cuaW5pdGlhbGl6ZWQpIHsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBIRUFQMzJbKChf
X1pUVk4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FKT4+MildPTA7IC8vIFdvcmth
cm91bmQgZm9yIGxpYmN4eGFiaSBpbnRlZ3JhdGlvbiBidWcKLSAgICAgICAgfSBjYXRjaChlKXt9
Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgSEVBUDMyWygoX19aVFZOMTBfX2N4eGFiaXYxMTdf
X2NsYXNzX3R5cGVfaW5mb0UpPj4yKV09MTsgLy8gV29ya2Fyb3VuZCBmb3IgbGliY3h4YWJpIGlu
dGVncmF0aW9uIGJ1ZwotICAgICAgICB9IGNhdGNoKGUpe30KLSAgICAgICAgdHJ5IHsKLSAgICAg
ICAgICBIRUFQMzJbKChfX1pUVk4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRSk+
PjIpXT0yOyAvLyBXb3JrYXJvdW5kIGZvciBsaWJjeHhhYmkgaW50ZWdyYXRpb24gYnVnCi0gICAg
ICAgIH0gY2F0Y2goZSl7fQotICAgICAgICBfX19jeGFfdGhyb3cuaW5pdGlhbGl6ZWQgPSB0cnVl
OwotICAgICAgfQotICAgICAgSEVBUDMyWygoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXT1w
dHIKLSAgICAgIEhFQVAzMlsoKChfbGx2bV9laF9leGNlcHRpb24uYnVmKSsoNCkpPj4yKV09dHlw
ZQotICAgICAgSEVBUDMyWygoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpKyg4KSk+PjIpXT1kZXN0
cnVjdG9yCi0gICAgICBpZiAoISgidW5jYXVnaHRfZXhjZXB0aW9uIiBpbiBfX1pTdDE4dW5jYXVn
aHRfZXhjZXB0aW9udikpIHsKLSAgICAgICAgX19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlvbnYudW5j
YXVnaHRfZXhjZXB0aW9uID0gMTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIF9fWlN0MTh1bmNh
dWdodF9leGNlcHRpb252LnVuY2F1Z2h0X2V4Y2VwdGlvbisrOwotICAgICAgfQotICAgICAgdGhy
b3cgcHRyICsgIiAtIEV4Y2VwdGlvbiBjYXRjaGluZyBpcyBkaXNhYmxlZCwgdGhpcyBleGNlcHRp
b24gY2Fubm90IGJlIGNhdWdodC4gQ29tcGlsZSB3aXRoIC1zIERJU0FCTEVfRVhDRVBUSU9OX0NB
VENISU5HPTAgb3IgRElTQUJMRV9FWENFUFRJT05fQ0FUQ0hJTkc9MiB0byBjYXRjaC4iOzsKLSAg
ICB9Ci0gIHZhciBFUlJOT19DT0RFUz17RVBFUk06MSxFTk9FTlQ6MixFU1JDSDozLEVJTlRSOjQs
RUlPOjUsRU5YSU86NixFMkJJRzo3LEVOT0VYRUM6OCxFQkFERjo5LEVDSElMRDoxMCxFQUdBSU46
MTEsRVdPVUxEQkxPQ0s6MTEsRU5PTUVNOjEyLEVBQ0NFUzoxMyxFRkFVTFQ6MTQsRU5PVEJMSzox
NSxFQlVTWToxNixFRVhJU1Q6MTcsRVhERVY6MTgsRU5PREVWOjE5LEVOT1RESVI6MjAsRUlTRElS
OjIxLEVJTlZBTDoyMixFTkZJTEU6MjMsRU1GSUxFOjI0LEVOT1RUWToyNSxFVFhUQlNZOjI2LEVG
QklHOjI3LEVOT1NQQzoyOCxFU1BJUEU6MjksRVJPRlM6MzAsRU1MSU5LOjMxLEVQSVBFOjMyLEVE
T006MzMsRVJBTkdFOjM0LEVOT01TRzozNSxFSURSTTozNixFQ0hSTkc6MzcsRUwyTlNZTkM6Mzgs
RUwzSExUOjM5LEVMM1JTVDo0MCxFTE5STkc6NDEsRVVOQVRDSDo0MixFTk9DU0k6NDMsRUwySExU
OjQ0LEVERUFETEs6NDUsRU5PTENLOjQ2LEVCQURFOjUwLEVCQURSOjUxLEVYRlVMTDo1MixFTk9B
Tk86NTMsRUJBRFJRQzo1NCxFQkFEU0xUOjU1LEVERUFETE9DSzo1NixFQkZPTlQ6NTcsRU5PU1RS
OjYwLEVOT0RBVEE6NjEsRVRJTUU6NjIsRU5PU1I6NjMsRU5PTkVUOjY0LEVOT1BLRzo2NSxFUkVN
T1RFOjY2LEVOT0xJTks6NjcsRUFEVjo2OCxFU1JNTlQ6NjksRUNPTU06NzAsRVBST1RPOjcxLEVN
VUxUSUhPUDo3NCxFRE9URE9UOjc2LEVCQURNU0c6NzcsRU5PVFVOSVE6ODAsRUJBREZEOjgxLEVS
RU1DSEc6ODIsRUxJQkFDQzo4MyxFTElCQkFEOjg0LEVMSUJTQ046ODUsRUxJQk1BWDo4NixFTElC
RVhFQzo4NyxFTk9TWVM6ODgsRU5PVEVNUFRZOjkwLEVOQU1FVE9PTE9ORzo5MSxFTE9PUDo5MixF
T1BOT1RTVVBQOjk1LEVQRk5PU1VQUE9SVDo5NixFQ09OTlJFU0VUOjEwNCxFTk9CVUZTOjEwNSxF
QUZOT1NVUFBPUlQ6MTA2LEVQUk9UT1RZUEU6MTA3LEVOT1RTT0NLOjEwOCxFTk9QUk9UT09QVDox
MDksRVNIVVRET1dOOjExMCxFQ09OTlJFRlVTRUQ6MTExLEVBRERSSU5VU0U6MTEyLEVDT05OQUJP
UlRFRDoxMTMsRU5FVFVOUkVBQ0g6MTE0LEVORVRET1dOOjExNSxFVElNRURPVVQ6MTE2LEVIT1NU
RE9XTjoxMTcsRUhPU1RVTlJFQUNIOjExOCxFSU5QUk9HUkVTUzoxMTksRUFMUkVBRFk6MTIwLEVE
RVNUQUREUlJFUToxMjEsRU1TR1NJWkU6MTIyLEVQUk9UT05PU1VQUE9SVDoxMjMsRVNPQ0tUTk9T
VVBQT1JUOjEyNCxFQUREUk5PVEFWQUlMOjEyNSxFTkVUUkVTRVQ6MTI2LEVJU0NPTk46MTI3LEVO
T1RDT05OOjEyOCxFVE9PTUFOWVJFRlM6MTI5LEVVU0VSUzoxMzEsRURRVU9UOjEzMixFU1RBTEU6
MTMzLEVOT1RTVVA6MTM0LEVOT01FRElVTToxMzUsRUlMU0VROjEzOCxFT1ZFUkZMT1c6MTM5LEVD
QU5DRUxFRDoxNDAsRU5PVFJFQ09WRVJBQkxFOjE0MSxFT1dORVJERUFEOjE0MixFU1RSUElQRTox
NDN9OwotICB2YXIgRVJSTk9fTUVTU0FHRVM9ezA6IlN1Y2Nlc3MiLDE6Ik5vdCBzdXBlci11c2Vy
IiwyOiJObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IiwzOiJObyBzdWNoIHByb2Nlc3MiLDQ6Iklu
dGVycnVwdGVkIHN5c3RlbSBjYWxsIiw1OiJJL08gZXJyb3IiLDY6Ik5vIHN1Y2ggZGV2aWNlIG9y
IGFkZHJlc3MiLDc6IkFyZyBsaXN0IHRvbyBsb25nIiw4OiJFeGVjIGZvcm1hdCBlcnJvciIsOToi
QmFkIGZpbGUgbnVtYmVyIiwxMDoiTm8gY2hpbGRyZW4iLDExOiJObyBtb3JlIHByb2Nlc3NlcyIs
MTI6Ik5vdCBlbm91Z2ggY29yZSIsMTM6IlBlcm1pc3Npb24gZGVuaWVkIiwxNDoiQmFkIGFkZHJl
c3MiLDE1OiJCbG9jayBkZXZpY2UgcmVxdWlyZWQiLDE2OiJNb3VudCBkZXZpY2UgYnVzeSIsMTc6
IkZpbGUgZXhpc3RzIiwxODoiQ3Jvc3MtZGV2aWNlIGxpbmsiLDE5OiJObyBzdWNoIGRldmljZSIs
MjA6Ik5vdCBhIGRpcmVjdG9yeSIsMjE6IklzIGEgZGlyZWN0b3J5IiwyMjoiSW52YWxpZCBhcmd1
bWVudCIsMjM6IlRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtIiwyNDoiVG9vIG1hbnkgb3Bl
biBmaWxlcyIsMjU6Ik5vdCBhIHR5cGV3cml0ZXIiLDI2OiJUZXh0IGZpbGUgYnVzeSIsMjc6IkZp
bGUgdG9vIGxhcmdlIiwyODoiTm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UiLDI5OiJJbGxlZ2FsIHNl
ZWsiLDMwOiJSZWFkIG9ubHkgZmlsZSBzeXN0ZW0iLDMxOiJUb28gbWFueSBsaW5rcyIsMzI6IkJy
b2tlbiBwaXBlIiwzMzoiTWF0aCBhcmcgb3V0IG9mIGRvbWFpbiBvZiBmdW5jIiwzNDoiTWF0aCBy
ZXN1bHQgbm90IHJlcHJlc2VudGFibGUiLDM1OiJObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZSIs
MzY6IklkZW50aWZpZXIgcmVtb3ZlZCIsMzc6IkNoYW5uZWwgbnVtYmVyIG91dCBvZiByYW5nZSIs
Mzg6IkxldmVsIDIgbm90IHN5bmNocm9uaXplZCIsMzk6IkxldmVsIDMgaGFsdGVkIiw0MDoiTGV2
ZWwgMyByZXNldCIsNDE6IkxpbmsgbnVtYmVyIG91dCBvZiByYW5nZSIsNDI6IlByb3RvY29sIGRy
aXZlciBub3QgYXR0YWNoZWQiLDQzOiJObyBDU0kgc3RydWN0dXJlIGF2YWlsYWJsZSIsNDQ6Ikxl
dmVsIDIgaGFsdGVkIiw0NToiRGVhZGxvY2sgY29uZGl0aW9uIiw0NjoiTm8gcmVjb3JkIGxvY2tz
IGF2YWlsYWJsZSIsNTA6IkludmFsaWQgZXhjaGFuZ2UiLDUxOiJJbnZhbGlkIHJlcXVlc3QgZGVz
Y3JpcHRvciIsNTI6IkV4Y2hhbmdlIGZ1bGwiLDUzOiJObyBhbm9kZSIsNTQ6IkludmFsaWQgcmVx
dWVzdCBjb2RlIiw1NToiSW52YWxpZCBzbG90Iiw1NjoiRmlsZSBsb2NraW5nIGRlYWRsb2NrIGVy
cm9yIiw1NzoiQmFkIGZvbnQgZmlsZSBmbXQiLDYwOiJEZXZpY2Ugbm90IGEgc3RyZWFtIiw2MToi
Tm8gZGF0YSAoZm9yIG5vIGRlbGF5IGlvKSIsNjI6IlRpbWVyIGV4cGlyZWQiLDYzOiJPdXQgb2Yg
c3RyZWFtcyByZXNvdXJjZXMiLDY0OiJNYWNoaW5lIGlzIG5vdCBvbiB0aGUgbmV0d29yayIsNjU6
IlBhY2thZ2Ugbm90IGluc3RhbGxlZCIsNjY6IlRoZSBvYmplY3QgaXMgcmVtb3RlIiw2NzoiVGhl
IGxpbmsgaGFzIGJlZW4gc2V2ZXJlZCIsNjg6IkFkdmVydGlzZSBlcnJvciIsNjk6IlNybW91bnQg
ZXJyb3IiLDcwOiJDb21tdW5pY2F0aW9uIGVycm9yIG9uIHNlbmQiLDcxOiJQcm90b2NvbCBlcnJv
ciIsNzQ6Ik11bHRpaG9wIGF0dGVtcHRlZCIsNzY6IkNyb3NzIG1vdW50IHBvaW50IChub3QgcmVh
bGx5IGVycm9yKSIsNzc6IlRyeWluZyB0byByZWFkIHVucmVhZGFibGUgbWVzc2FnZSIsODA6Ikdp
dmVuIGxvZy4gbmFtZSBub3QgdW5pcXVlIiw4MToiZi5kLiBpbnZhbGlkIGZvciB0aGlzIG9wZXJh
dGlvbiIsODI6IlJlbW90ZSBhZGRyZXNzIGNoYW5nZWQiLDgzOiJDYW4gICBhY2Nlc3MgYSBuZWVk
ZWQgc2hhcmVkIGxpYiIsODQ6IkFjY2Vzc2luZyBhIGNvcnJ1cHRlZCBzaGFyZWQgbGliIiw4NToi
LmxpYiBzZWN0aW9uIGluIGEub3V0IGNvcnJ1cHRlZCIsODY6IkF0dGVtcHRpbmcgdG8gbGluayBp
biB0b28gbWFueSBsaWJzIiw4NzoiQXR0ZW1wdGluZyB0byBleGVjIGEgc2hhcmVkIGxpYnJhcnki
LDg4OiJGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQiLDkwOiJEaXJlY3Rvcnkgbm90IGVtcHR5Iiw5
MToiRmlsZSBvciBwYXRoIG5hbWUgdG9vIGxvbmciLDkyOiJUb28gbWFueSBzeW1ib2xpYyBsaW5r
cyIsOTU6Ik9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIHRyYW5zcG9ydCBlbmRwb2ludCIsOTY6
IlByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkIiwxMDQ6IkNvbm5lY3Rpb24gcmVzZXQgYnkg
cGVlciIsMTA1OiJObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlIiwxMDY6IkFkZHJlc3MgZmFtaWx5
IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wgZmFtaWx5IiwxMDc6IlByb3RvY29sIHdyb25nIHR5
cGUgZm9yIHNvY2tldCIsMTA4OiJTb2NrZXQgb3BlcmF0aW9uIG9uIG5vbi1zb2NrZXQiLDEwOToi
UHJvdG9jb2wgbm90IGF2YWlsYWJsZSIsMTEwOiJDYW4ndCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0
ZG93biIsMTExOiJDb25uZWN0aW9uIHJlZnVzZWQiLDExMjoiQWRkcmVzcyBhbHJlYWR5IGluIHVz
ZSIsMTEzOiJDb25uZWN0aW9uIGFib3J0ZWQiLDExNDoiTmV0d29yayBpcyB1bnJlYWNoYWJsZSIs
MTE1OiJOZXR3b3JrIGludGVyZmFjZSBpcyBub3QgY29uZmlndXJlZCIsMTE2OiJDb25uZWN0aW9u
IHRpbWVkIG91dCIsMTE3OiJIb3N0IGlzIGRvd24iLDExODoiSG9zdCBpcyB1bnJlYWNoYWJsZSIs
MTE5OiJDb25uZWN0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MiLDEyMDoiU29ja2V0IGFscmVhZHkg
Y29ubmVjdGVkIiwxMjE6IkRlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQiLDEyMjoiTWVzc2Fn
ZSB0b28gbG9uZyIsMTIzOiJVbmtub3duIHByb3RvY29sIiwxMjQ6IlNvY2tldCB0eXBlIG5vdCBz
dXBwb3J0ZWQiLDEyNToiQWRkcmVzcyBub3QgYXZhaWxhYmxlIiwxMjY6IkNvbm5lY3Rpb24gcmVz
ZXQgYnkgbmV0d29yayIsMTI3OiJTb2NrZXQgaXMgYWxyZWFkeSBjb25uZWN0ZWQiLDEyODoiU29j
a2V0IGlzIG5vdCBjb25uZWN0ZWQiLDEyOToiVG9vIG1hbnkgcmVmZXJlbmNlcyIsMTMxOiJUb28g
bWFueSB1c2VycyIsMTMyOiJRdW90YSBleGNlZWRlZCIsMTMzOiJTdGFsZSBmaWxlIGhhbmRsZSIs
MTM0OiJOb3Qgc3VwcG9ydGVkIiwxMzU6Ik5vIG1lZGl1bSAoaW4gdGFwZSBkcml2ZSkiLDEzODoi
SWxsZWdhbCBieXRlIHNlcXVlbmNlIiwxMzk6IlZhbHVlIHRvbyBsYXJnZSBmb3IgZGVmaW5lZCBk
YXRhIHR5cGUiLDE0MDoiT3BlcmF0aW9uIGNhbmNlbGVkIiwxNDE6IlN0YXRlIG5vdCByZWNvdmVy
YWJsZSIsMTQyOiJQcmV2aW91cyBvd25lciBkaWVkIiwxNDM6IlN0cmVhbXMgcGlwZSBlcnJvciJ9
OwotICB2YXIgX19fZXJybm9fc3RhdGU9MDtmdW5jdGlvbiBfX19zZXRFcnJObyh2YWx1ZSkgewot
ICAgICAgLy8gRm9yIGNvbnZlbmllbnQgc2V0dGluZyBhbmQgcmV0dXJuaW5nIG9mIGVycm5vLgot
ICAgICAgSEVBUDMyWygoX19fZXJybm9fc3RhdGUpPj4yKV09dmFsdWUKLSAgICAgIHJldHVybiB2
YWx1ZTsKLSAgICB9Ci0gIHZhciBWRlM9dW5kZWZpbmVkOwotICB2YXIgUEFUSD17c3BsaXRQYXRo
OmZ1bmN0aW9uIChmaWxlbmFtZSkgewotICAgICAgICB2YXIgc3BsaXRQYXRoUmUgPSAvXihcLz98
KShbXHNcU10qPykoKD86XC57MSwyfXxbXlwvXSs/fCkoXC5bXi5cL10qfCkpKD86W1wvXSopJC87
Ci0gICAgICAgIHJldHVybiBzcGxpdFBhdGhSZS5leGVjKGZpbGVuYW1lKS5zbGljZSgxKTsKLSAg
ICAgIH0sbm9ybWFsaXplQXJyYXk6ZnVuY3Rpb24gKHBhcnRzLCBhbGxvd0Fib3ZlUm9vdCkgewot
ICAgICAgICAvLyBpZiB0aGUgcGF0aCB0cmllcyB0byBnbyBhYm92ZSB0aGUgcm9vdCwgYHVwYCBl
bmRzIHVwID4gMAotICAgICAgICB2YXIgdXAgPSAwOwotICAgICAgICBmb3IgKHZhciBpID0gcGFy
dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKLSAgICAgICAgICB2YXIgbGFzdCA9IHBhcnRz
W2ldOwotICAgICAgICAgIGlmIChsYXN0ID09PSAnLicpIHsKLSAgICAgICAgICAgIHBhcnRzLnNw
bGljZShpLCAxKTsKLSAgICAgICAgICB9IGVsc2UgaWYgKGxhc3QgPT09ICcuLicpIHsKLSAgICAg
ICAgICAgIHBhcnRzLnNwbGljZShpLCAxKTsKLSAgICAgICAgICAgIHVwKys7Ci0gICAgICAgICAg
fSBlbHNlIGlmICh1cCkgewotICAgICAgICAgICAgcGFydHMuc3BsaWNlKGksIDEpOwotICAgICAg
ICAgICAgdXAtLTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgLy8gaWYgdGhlIHBh
dGggaXMgYWxsb3dlZCB0byBnbyBhYm92ZSB0aGUgcm9vdCwgcmVzdG9yZSBsZWFkaW5nIC4ucwot
ICAgICAgICBpZiAoYWxsb3dBYm92ZVJvb3QpIHsKLSAgICAgICAgICBmb3IgKDsgdXAtLTsgdXAp
IHsKLSAgICAgICAgICAgIHBhcnRzLnVuc2hpZnQoJy4uJyk7Ci0gICAgICAgICAgfQotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiBwYXJ0czsKLSAgICAgIH0sbm9ybWFsaXplOmZ1bmN0aW9uIChw
YXRoKSB7Ci0gICAgICAgIHZhciBpc0Fic29sdXRlID0gcGF0aC5jaGFyQXQoMCkgPT09ICcvJywK
LSAgICAgICAgICAgIHRyYWlsaW5nU2xhc2ggPSBwYXRoLnN1YnN0cigtMSkgPT09ICcvJzsKLSAg
ICAgICAgLy8gTm9ybWFsaXplIHRoZSBwYXRoCi0gICAgICAgIHBhdGggPSBQQVRILm5vcm1hbGl6
ZUFycmF5KHBhdGguc3BsaXQoJy8nKS5maWx0ZXIoZnVuY3Rpb24ocCkgewotICAgICAgICAgIHJl
dHVybiAhIXA7Ci0gICAgICAgIH0pLCAhaXNBYnNvbHV0ZSkuam9pbignLycpOwotICAgICAgICBp
ZiAoIXBhdGggJiYgIWlzQWJzb2x1dGUpIHsKLSAgICAgICAgICBwYXRoID0gJy4nOwotICAgICAg
ICB9Ci0gICAgICAgIGlmIChwYXRoICYmIHRyYWlsaW5nU2xhc2gpIHsKLSAgICAgICAgICBwYXRo
ICs9ICcvJzsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gKGlzQWJzb2x1dGUgPyAnLycgOiAn
JykgKyBwYXRoOwotICAgICAgfSxkaXJuYW1lOmZ1bmN0aW9uIChwYXRoKSB7Ci0gICAgICAgIHZh
ciByZXN1bHQgPSBQQVRILnNwbGl0UGF0aChwYXRoKSwKLSAgICAgICAgICAgIHJvb3QgPSByZXN1
bHRbMF0sCi0gICAgICAgICAgICBkaXIgPSByZXN1bHRbMV07Ci0gICAgICAgIGlmICghcm9vdCAm
JiAhZGlyKSB7Ci0gICAgICAgICAgLy8gTm8gZGlybmFtZSB3aGF0c29ldmVyCi0gICAgICAgICAg
cmV0dXJuICcuJzsKLSAgICAgICAgfQotICAgICAgICBpZiAoZGlyKSB7Ci0gICAgICAgICAgLy8g
SXQgaGFzIGEgZGlybmFtZSwgc3RyaXAgdHJhaWxpbmcgc2xhc2gKLSAgICAgICAgICBkaXIgPSBk
aXIuc3Vic3RyKDAsIGRpci5sZW5ndGggLSAxKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
cm9vdCArIGRpcjsKLSAgICAgIH0sYmFzZW5hbWU6ZnVuY3Rpb24gKHBhdGgsIGV4dCkgewotICAg
ICAgICAvLyBFTVNDUklQVEVOIHJldHVybiAnLycnIGZvciAnLycsIG5vdCBhbiBlbXB0eSBzdHJp
bmcKLSAgICAgICAgaWYgKHBhdGggPT09ICcvJykgcmV0dXJuICcvJzsKLSAgICAgICAgdmFyIGYg
PSBQQVRILnNwbGl0UGF0aChwYXRoKVsyXTsKLSAgICAgICAgaWYgKGV4dCAmJiBmLnN1YnN0cigt
MSAqIGV4dC5sZW5ndGgpID09PSBleHQpIHsKLSAgICAgICAgICBmID0gZi5zdWJzdHIoMCwgZi5s
ZW5ndGggLSBleHQubGVuZ3RoKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gZjsKLSAgICAg
IH0sam9pbjpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciBwYXRocyA9IEFycmF5LnByb3RvdHlw
ZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCk7Ci0gICAgICAgIHJldHVybiBQQVRILm5vcm1hbGl6
ZShwYXRocy5maWx0ZXIoZnVuY3Rpb24ocCwgaW5kZXgpIHsKLSAgICAgICAgICBpZiAodHlwZW9m
IHAgIT09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1
bWVudHMgdG8gcGF0aC5qb2luIG11c3QgYmUgc3RyaW5ncycpOwotICAgICAgICAgIH0KLSAgICAg
ICAgICByZXR1cm4gcDsKLSAgICAgICAgfSkuam9pbignLycpKTsKLSAgICAgIH0scmVzb2x2ZTpm
dW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciByZXNvbHZlZFBhdGggPSAnJywKLSAgICAgICAgICBy
ZXNvbHZlZEFic29sdXRlID0gZmFsc2U7Ci0gICAgICAgIGZvciAodmFyIGkgPSBhcmd1bWVudHMu
bGVuZ3RoIC0gMTsgaSA+PSAtMSAmJiAhcmVzb2x2ZWRBYnNvbHV0ZTsgaS0tKSB7Ci0gICAgICAg
ICAgdmFyIHBhdGggPSAoaSA+PSAwKSA/IGFyZ3VtZW50c1tpXSA6IEZTLmN3ZCgpOwotICAgICAg
ICAgIC8vIFNraXAgZW1wdHkgYW5kIGludmFsaWQgZW50cmllcwotICAgICAgICAgIGlmICh0eXBl
b2YgcGF0aCAhPT0gJ3N0cmluZycpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3Io
J0FyZ3VtZW50cyB0byBwYXRoLnJlc29sdmUgbXVzdCBiZSBzdHJpbmdzJyk7Ci0gICAgICAgICAg
fSBlbHNlIGlmICghcGF0aCkgewotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgfQot
ICAgICAgICAgIHJlc29sdmVkUGF0aCA9IHBhdGggKyAnLycgKyByZXNvbHZlZFBhdGg7Ci0gICAg
ICAgICAgcmVzb2x2ZWRBYnNvbHV0ZSA9IHBhdGguY2hhckF0KDApID09PSAnLyc7Ci0gICAgICAg
IH0KLSAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB0aGUgcGF0aCBzaG91bGQgYmUgcmVzb2x2ZWQg
dG8gYSBmdWxsIGFic29sdXRlIHBhdGgsIGJ1dAotICAgICAgICAvLyBoYW5kbGUgcmVsYXRpdmUg
cGF0aHMgdG8gYmUgc2FmZSAobWlnaHQgaGFwcGVuIHdoZW4gcHJvY2Vzcy5jd2QoKSBmYWlscykK
LSAgICAgICAgcmVzb2x2ZWRQYXRoID0gUEFUSC5ub3JtYWxpemVBcnJheShyZXNvbHZlZFBhdGgu
c3BsaXQoJy8nKS5maWx0ZXIoZnVuY3Rpb24ocCkgewotICAgICAgICAgIHJldHVybiAhIXA7Ci0g
ICAgICAgIH0pLCAhcmVzb2x2ZWRBYnNvbHV0ZSkuam9pbignLycpOwotICAgICAgICByZXR1cm4g
KChyZXNvbHZlZEFic29sdXRlID8gJy8nIDogJycpICsgcmVzb2x2ZWRQYXRoKSB8fCAnLic7Ci0g
ICAgICB9LHJlbGF0aXZlOmZ1bmN0aW9uIChmcm9tLCB0bykgewotICAgICAgICBmcm9tID0gUEFU
SC5yZXNvbHZlKGZyb20pLnN1YnN0cigxKTsKLSAgICAgICAgdG8gPSBQQVRILnJlc29sdmUodG8p
LnN1YnN0cigxKTsKLSAgICAgICAgZnVuY3Rpb24gdHJpbShhcnIpIHsKLSAgICAgICAgICB2YXIg
c3RhcnQgPSAwOwotICAgICAgICAgIGZvciAoOyBzdGFydCA8IGFyci5sZW5ndGg7IHN0YXJ0Kysp
IHsKLSAgICAgICAgICAgIGlmIChhcnJbc3RhcnRdICE9PSAnJykgYnJlYWs7Ci0gICAgICAgICAg
fQotICAgICAgICAgIHZhciBlbmQgPSBhcnIubGVuZ3RoIC0gMTsKLSAgICAgICAgICBmb3IgKDsg
ZW5kID49IDA7IGVuZC0tKSB7Ci0gICAgICAgICAgICBpZiAoYXJyW2VuZF0gIT09ICcnKSBicmVh
azsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHN0YXJ0ID4gZW5kKSByZXR1cm4gW107Ci0g
ICAgICAgICAgcmV0dXJuIGFyci5zbGljZShzdGFydCwgZW5kIC0gc3RhcnQgKyAxKTsKLSAgICAg
ICAgfQotICAgICAgICB2YXIgZnJvbVBhcnRzID0gdHJpbShmcm9tLnNwbGl0KCcvJykpOwotICAg
ICAgICB2YXIgdG9QYXJ0cyA9IHRyaW0odG8uc3BsaXQoJy8nKSk7Ci0gICAgICAgIHZhciBsZW5n
dGggPSBNYXRoLm1pbihmcm9tUGFydHMubGVuZ3RoLCB0b1BhcnRzLmxlbmd0aCk7Ci0gICAgICAg
IHZhciBzYW1lUGFydHNMZW5ndGggPSBsZW5ndGg7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgbGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICBpZiAoZnJvbVBhcnRzW2ldICE9PSB0b1BhcnRz
W2ldKSB7Ci0gICAgICAgICAgICBzYW1lUGFydHNMZW5ndGggPSBpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHZhciBvdXRwdXRQYXJ0cyA9IFtd
OwotICAgICAgICBmb3IgKHZhciBpID0gc2FtZVBhcnRzTGVuZ3RoOyBpIDwgZnJvbVBhcnRzLmxl
bmd0aDsgaSsrKSB7Ci0gICAgICAgICAgb3V0cHV0UGFydHMucHVzaCgnLi4nKTsKLSAgICAgICAg
fQotICAgICAgICBvdXRwdXRQYXJ0cyA9IG91dHB1dFBhcnRzLmNvbmNhdCh0b1BhcnRzLnNsaWNl
KHNhbWVQYXJ0c0xlbmd0aCkpOwotICAgICAgICByZXR1cm4gb3V0cHV0UGFydHMuam9pbignLycp
OwotICAgICAgfX07Ci0gIHZhciBUVFk9e3R0eXM6W10scmVnaXN0ZXI6ZnVuY3Rpb24gKGRldiwg
b3BzKSB7Ci0gICAgICAgIFRUWS50dHlzW2Rldl0gPSB7IGlucHV0OiBbXSwgb3V0cHV0OiBbXSwg
b3BzOiBvcHMgfTsKLSAgICAgICAgRlMucmVnaXN0ZXJEZXZpY2UoZGV2LCBUVFkuc3RyZWFtX29w
cyk7Ci0gICAgICB9LHN0cmVhbV9vcHM6e29wZW46ZnVuY3Rpb24gKHN0cmVhbSkgewotICAgICAg
ICAgIC8vIHRoaXMgd291bGRuJ3QgYmUgcmVxdWlyZWQgaWYgdGhlIGxpYnJhcnkgd2Fzbid0IGV2
YWwnZCBhdCBmaXJzdC4uLgotICAgICAgICAgIGlmICghVFRZLnV0ZjgpIHsKLSAgICAgICAgICAg
IFRUWS51dGY4ID0gbmV3IFJ1bnRpbWUuVVRGOFByb2Nlc3NvcigpOwotICAgICAgICAgIH0KLSAg
ICAgICAgICB2YXIgdHR5ID0gVFRZLnR0eXNbc3RyZWFtLm5vZGUucmRldl07Ci0gICAgICAgICAg
aWYgKCF0dHkpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NP
REVTLkVOT0RFVik7Ci0gICAgICAgICAgfQotICAgICAgICAgIHN0cmVhbS50dHkgPSB0dHk7Ci0g
ICAgICAgICAgc3RyZWFtLnNlZWthYmxlID0gZmFsc2U7Ci0gICAgICAgIH0sY2xvc2U6ZnVuY3Rp
b24gKHN0cmVhbSkgewotICAgICAgICAgIC8vIGZsdXNoIGFueSBwZW5kaW5nIGxpbmUgZGF0YQot
ICAgICAgICAgIGlmIChzdHJlYW0udHR5Lm91dHB1dC5sZW5ndGgpIHsKLSAgICAgICAgICAgIHN0
cmVhbS50dHkub3BzLnB1dF9jaGFyKHN0cmVhbS50dHksIDEwKTsKLSAgICAgICAgICB9Ci0gICAg
ICAgIH0scmVhZDpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3Mg
LyogaWdub3JlZCAqLykgewotICAgICAgICAgIGlmICghc3RyZWFtLnR0eSB8fCAhc3RyZWFtLnR0
eS5vcHMuZ2V0X2NoYXIpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVOWElPKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIGJ5dGVzUmVhZCA9
IDA7Ci0gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAg
ICAgICAgdmFyIHJlc3VsdDsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgIHJlc3Vs
dCA9IHN0cmVhbS50dHkub3BzLmdldF9jaGFyKHN0cmVhbS50dHkpOwotICAgICAgICAgICAgfSBj
YXRjaCAoZSkgewotICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FSU8pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdW5k
ZWZpbmVkICYmIGJ5dGVzUmVhZCA9PT0gMCkgewotICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMu
RXJybm9FcnJvcihFUlJOT19DT0RFUy5FQUdBSU4pOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHVuZGVmaW5lZCkgYnJlYWs7Ci0g
ICAgICAgICAgICBieXRlc1JlYWQrKzsKLSAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQraV0gPSBy
ZXN1bHQ7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChieXRlc1JlYWQpIHsKLSAgICAgICAg
ICAgIHN0cmVhbS5ub2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7Ci0gICAgICAgICAgfQotICAg
ICAgICAgIHJldHVybiBieXRlc1JlYWQ7Ci0gICAgICAgIH0sd3JpdGU6ZnVuY3Rpb24gKHN0cmVh
bSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zKSB7Ci0gICAgICAgICAgaWYgKCFzdHJlYW0u
dHR5IHx8ICFzdHJlYW0udHR5Lm9wcy5wdXRfY2hhcikgewotICAgICAgICAgICAgdGhyb3cgbmV3
IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5YSU8pOwotICAgICAgICAgIH0KLSAgICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICB0cnkgewot
ICAgICAgICAgICAgICBzdHJlYW0udHR5Lm9wcy5wdXRfY2hhcihzdHJlYW0udHR5LCBidWZmZXJb
b2Zmc2V0K2ldKTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlPKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICB9Ci0gICAgICAgICAgaWYgKGxlbmd0aCkgewotICAgICAgICAgICAgc3RyZWFtLm5v
ZGUudGltZXN0YW1wID0gRGF0ZS5ub3coKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJu
IGk7Ci0gICAgICAgIH19LGRlZmF1bHRfdHR5X29wczp7Z2V0X2NoYXI6ZnVuY3Rpb24gKHR0eSkg
ewotICAgICAgICAgIGlmICghdHR5LmlucHV0Lmxlbmd0aCkgewotICAgICAgICAgICAgdmFyIHJl
c3VsdCA9IG51bGw7Ci0gICAgICAgICAgICBpZiAoRU5WSVJPTk1FTlRfSVNfTk9ERSkgewotICAg
ICAgICAgICAgICBpZiAocHJvY2Vzcy5zdGRpbi5kZXN0cm95ZWQpIHsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIHJlc3Vs
dCA9IHByb2Nlc3Muc3RkaW4ucmVhZCgpOwotICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Yg
d2luZG93ICE9ICd1bmRlZmluZWQnICYmCi0gICAgICAgICAgICAgIHR5cGVvZiB3aW5kb3cucHJv
bXB0ID09ICdmdW5jdGlvbicpIHsKLSAgICAgICAgICAgICAgLy8gQnJvd3Nlci4KLSAgICAgICAg
ICAgICAgcmVzdWx0ID0gd2luZG93LnByb21wdCgnSW5wdXQ6ICcpOyAgLy8gcmV0dXJucyBudWxs
IG9uIGNhbmNlbAotICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7Ci0gICAgICAg
ICAgICAgICAgcmVzdWx0ICs9ICdcbic7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0g
ZWxzZSBpZiAodHlwZW9mIHJlYWRsaW5lID09ICdmdW5jdGlvbicpIHsKLSAgICAgICAgICAgICAg
Ly8gQ29tbWFuZCBsaW5lLgotICAgICAgICAgICAgICByZXN1bHQgPSByZWFkbGluZSgpOwotICAg
ICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0
ICs9ICdcbic7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
ICghcmVzdWx0KSB7Ci0gICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgdHR5LmlucHV0ID0gaW50QXJyYXlGcm9tU3RyaW5nKHJlc3VsdCwgdHJ1ZSk7
Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiB0dHkuaW5wdXQuc2hpZnQoKTsKLSAgICAg
ICAgfSxwdXRfY2hhcjpmdW5jdGlvbiAodHR5LCB2YWwpIHsKLSAgICAgICAgICBpZiAodmFsID09
PSBudWxsIHx8IHZhbCA9PT0gMTApIHsKLSAgICAgICAgICAgIE1vZHVsZVsncHJpbnQnXSh0dHku
b3V0cHV0LmpvaW4oJycpKTsKLSAgICAgICAgICAgIHR0eS5vdXRwdXQgPSBbXTsKLSAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgdHR5Lm91dHB1dC5wdXNoKFRUWS51dGY4LnByb2Nlc3ND
Q2hhcih2YWwpKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH19LGRlZmF1bHRfdHR5MV9vcHM6e3B1
dF9jaGFyOmZ1bmN0aW9uICh0dHksIHZhbCkgewotICAgICAgICAgIGlmICh2YWwgPT09IG51bGwg
fHwgdmFsID09PSAxMCkgewotICAgICAgICAgICAgTW9kdWxlWydwcmludEVyciddKHR0eS5vdXRw
dXQuam9pbignJykpOwotICAgICAgICAgICAgdHR5Lm91dHB1dCA9IFtdOwotICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICB0dHkub3V0cHV0LnB1c2goVFRZLnV0ZjgucHJvY2Vzc0NDaGFy
KHZhbCkpOwotICAgICAgICAgIH0KLSAgICAgICAgfX19OwotICB2YXIgTUVNRlM9e21vdW50OmZ1
bmN0aW9uIChtb3VudCkgewotICAgICAgICByZXR1cm4gTUVNRlMuY3JlYXRlX25vZGUobnVsbCwg
Jy8nLCAwMDQwMDAwIHwgMDc3NywgMCk7Ci0gICAgICB9LGNyZWF0ZV9ub2RlOmZ1bmN0aW9uIChw
YXJlbnQsIG5hbWUsIG1vZGUsIGRldikgewotICAgICAgICBpZiAoRlMuaXNCbGtkZXYobW9kZSkg
fHwgRlMuaXNGSUZPKG1vZGUpKSB7Ci0gICAgICAgICAgLy8gbm8gc3VwcG9ydGVkCi0gICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9
Ci0gICAgICAgIHZhciBub2RlID0gRlMuY3JlYXRlTm9kZShwYXJlbnQsIG5hbWUsIG1vZGUsIGRl
dik7Ci0gICAgICAgIGlmIChGUy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgbm9kZS5u
b2RlX29wcyA9IHsKLSAgICAgICAgICAgIGdldGF0dHI6IE1FTUZTLm5vZGVfb3BzLmdldGF0dHIs
Ci0gICAgICAgICAgICBzZXRhdHRyOiBNRU1GUy5ub2RlX29wcy5zZXRhdHRyLAotICAgICAgICAg
ICAgbG9va3VwOiBNRU1GUy5ub2RlX29wcy5sb29rdXAsCi0gICAgICAgICAgICBta25vZDogTUVN
RlMubm9kZV9vcHMubWtub2QsCi0gICAgICAgICAgICBta25vZDogTUVNRlMubm9kZV9vcHMubWtu
b2QsCi0gICAgICAgICAgICByZW5hbWU6IE1FTUZTLm5vZGVfb3BzLnJlbmFtZSwKLSAgICAgICAg
ICAgIHVubGluazogTUVNRlMubm9kZV9vcHMudW5saW5rLAotICAgICAgICAgICAgcm1kaXI6IE1F
TUZTLm5vZGVfb3BzLnJtZGlyLAotICAgICAgICAgICAgcmVhZGRpcjogTUVNRlMubm9kZV9vcHMu
cmVhZGRpciwKLSAgICAgICAgICAgIHN5bWxpbms6IE1FTUZTLm5vZGVfb3BzLnN5bWxpbmsKLSAg
ICAgICAgICB9OwotICAgICAgICAgIG5vZGUuc3RyZWFtX29wcyA9IHsKLSAgICAgICAgICAgIGxs
c2VlazogTUVNRlMuc3RyZWFtX29wcy5sbHNlZWsKLSAgICAgICAgICB9OwotICAgICAgICAgIG5v
ZGUuY29udGVudHMgPSB7fTsKLSAgICAgICAgfSBlbHNlIGlmIChGUy5pc0ZpbGUobm9kZS5tb2Rl
KSkgewotICAgICAgICAgIG5vZGUubm9kZV9vcHMgPSB7Ci0gICAgICAgICAgICBnZXRhdHRyOiBN
RU1GUy5ub2RlX29wcy5nZXRhdHRyLAotICAgICAgICAgICAgc2V0YXR0cjogTUVNRlMubm9kZV9v
cHMuc2V0YXR0cgotICAgICAgICAgIH07Ci0gICAgICAgICAgbm9kZS5zdHJlYW1fb3BzID0gewot
ICAgICAgICAgICAgbGxzZWVrOiBNRU1GUy5zdHJlYW1fb3BzLmxsc2VlaywKLSAgICAgICAgICAg
IHJlYWQ6IE1FTUZTLnN0cmVhbV9vcHMucmVhZCwKLSAgICAgICAgICAgIHdyaXRlOiBNRU1GUy5z
dHJlYW1fb3BzLndyaXRlLAotICAgICAgICAgICAgYWxsb2NhdGU6IE1FTUZTLnN0cmVhbV9vcHMu
YWxsb2NhdGUsCi0gICAgICAgICAgICBtbWFwOiBNRU1GUy5zdHJlYW1fb3BzLm1tYXAKLSAgICAg
ICAgICB9OwotICAgICAgICAgIG5vZGUuY29udGVudHMgPSBbXTsKLSAgICAgICAgfSBlbHNlIGlm
IChGUy5pc0xpbmsobm9kZS5tb2RlKSkgewotICAgICAgICAgIG5vZGUubm9kZV9vcHMgPSB7Ci0g
ICAgICAgICAgICBnZXRhdHRyOiBNRU1GUy5ub2RlX29wcy5nZXRhdHRyLAotICAgICAgICAgICAg
c2V0YXR0cjogTUVNRlMubm9kZV9vcHMuc2V0YXR0ciwKLSAgICAgICAgICAgIHJlYWRsaW5rOiBN
RU1GUy5ub2RlX29wcy5yZWFkbGluawotICAgICAgICAgIH07Ci0gICAgICAgICAgbm9kZS5zdHJl
YW1fb3BzID0ge307Ci0gICAgICAgIH0gZWxzZSBpZiAoRlMuaXNDaHJkZXYobm9kZS5tb2RlKSkg
ewotICAgICAgICAgIG5vZGUubm9kZV9vcHMgPSB7Ci0gICAgICAgICAgICBnZXRhdHRyOiBNRU1G
Uy5ub2RlX29wcy5nZXRhdHRyLAotICAgICAgICAgICAgc2V0YXR0cjogTUVNRlMubm9kZV9vcHMu
c2V0YXR0cgotICAgICAgICAgIH07Ci0gICAgICAgICAgbm9kZS5zdHJlYW1fb3BzID0gRlMuY2hy
ZGV2X3N0cmVhbV9vcHM7Ci0gICAgICAgIH0KLSAgICAgICAgbm9kZS50aW1lc3RhbXAgPSBEYXRl
Lm5vdygpOwotICAgICAgICAvLyBhZGQgdGhlIG5ldyBub2RlIHRvIHRoZSBwYXJlbnQKLSAgICAg
ICAgaWYgKHBhcmVudCkgewotICAgICAgICAgIHBhcmVudC5jb250ZW50c1tuYW1lXSA9IG5vZGU7
Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICB9LG5vZGVfb3BzOntnZXRh
dHRyOmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAgICAgdmFyIGF0dHIgPSB7fTsKLSAgICAgICAg
ICAvLyBkZXZpY2UgbnVtYmVycyByZXVzZSBpbm9kZSBudW1iZXJzLgotICAgICAgICAgIGF0dHIu
ZGV2ID0gRlMuaXNDaHJkZXYobm9kZS5tb2RlKSA/IG5vZGUuaWQgOiAxOwotICAgICAgICAgIGF0
dHIuaW5vID0gbm9kZS5pZDsKLSAgICAgICAgICBhdHRyLm1vZGUgPSBub2RlLm1vZGU7Ci0gICAg
ICAgICAgYXR0ci5ubGluayA9IDE7Ci0gICAgICAgICAgYXR0ci51aWQgPSAwOwotICAgICAgICAg
IGF0dHIuZ2lkID0gMDsKLSAgICAgICAgICBhdHRyLnJkZXYgPSBub2RlLnJkZXY7Ci0gICAgICAg
ICAgaWYgKEZTLmlzRGlyKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICAgIGF0dHIuc2l6ZSA9IDQw
OTY7Ci0gICAgICAgICAgfSBlbHNlIGlmIChGUy5pc0ZpbGUobm9kZS5tb2RlKSkgewotICAgICAg
ICAgICAgYXR0ci5zaXplID0gbm9kZS5jb250ZW50cy5sZW5ndGg7Ci0gICAgICAgICAgfSBlbHNl
IGlmIChGUy5pc0xpbmsobm9kZS5tb2RlKSkgewotICAgICAgICAgICAgYXR0ci5zaXplID0gbm9k
ZS5saW5rLmxlbmd0aDsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXR0ci5zaXpl
ID0gMDsKLSAgICAgICAgICB9Ci0gICAgICAgICAgYXR0ci5hdGltZSA9IG5ldyBEYXRlKG5vZGUu
dGltZXN0YW1wKTsKLSAgICAgICAgICBhdHRyLm10aW1lID0gbmV3IERhdGUobm9kZS50aW1lc3Rh
bXApOwotICAgICAgICAgIGF0dHIuY3RpbWUgPSBuZXcgRGF0ZShub2RlLnRpbWVzdGFtcCk7Ci0g
ICAgICAgICAgLy8gTk9URTogSW4gb3VyIGltcGxlbWVudGF0aW9uLCBzdF9ibG9ja3MgPSBNYXRo
LmNlaWwoc3Rfc2l6ZS9zdF9ibGtzaXplKSwKLSAgICAgICAgICAvLyAgICAgICBidXQgdGhpcyBp
cyBub3QgcmVxdWlyZWQgYnkgdGhlIHN0YW5kYXJkLgotICAgICAgICAgIGF0dHIuYmxrc2l6ZSA9
IDQwOTY7Ci0gICAgICAgICAgYXR0ci5ibG9ja3MgPSBNYXRoLmNlaWwoYXR0ci5zaXplIC8gYXR0
ci5ibGtzaXplKTsKLSAgICAgICAgICByZXR1cm4gYXR0cjsKLSAgICAgICAgfSxzZXRhdHRyOmZ1
bmN0aW9uIChub2RlLCBhdHRyKSB7Ci0gICAgICAgICAgaWYgKGF0dHIubW9kZSAhPT0gdW5kZWZp
bmVkKSB7Ci0gICAgICAgICAgICBub2RlLm1vZGUgPSBhdHRyLm1vZGU7Ci0gICAgICAgICAgfQot
ICAgICAgICAgIGlmIChhdHRyLnRpbWVzdGFtcCAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAg
ICBub2RlLnRpbWVzdGFtcCA9IGF0dHIudGltZXN0YW1wOwotICAgICAgICAgIH0KLSAgICAgICAg
ICBpZiAoYXR0ci5zaXplICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgIHZhciBjb250ZW50
cyA9IG5vZGUuY29udGVudHM7Ci0gICAgICAgICAgICBpZiAoYXR0ci5zaXplIDwgY29udGVudHMu
bGVuZ3RoKSBjb250ZW50cy5sZW5ndGggPSBhdHRyLnNpemU7Ci0gICAgICAgICAgICBlbHNlIHdo
aWxlIChhdHRyLnNpemUgPiBjb250ZW50cy5sZW5ndGgpIGNvbnRlbnRzLnB1c2goMCk7Ci0gICAg
ICAgICAgfQotICAgICAgICB9LGxvb2t1cDpmdW5jdGlvbiAocGFyZW50LCBuYW1lKSB7Ci0gICAg
ICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PRU5UKTsKLSAgICAg
ICAgfSxta25vZDpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBtb2RlLCBkZXYpIHsKLSAgICAgICAg
ICByZXR1cm4gTUVNRlMuY3JlYXRlX25vZGUocGFyZW50LCBuYW1lLCBtb2RlLCBkZXYpOwotICAg
ICAgICB9LHJlbmFtZTpmdW5jdGlvbiAob2xkX25vZGUsIG5ld19kaXIsIG5ld19uYW1lKSB7Ci0g
ICAgICAgICAgLy8gaWYgd2UncmUgb3ZlcndyaXRpbmcgYSBkaXJlY3RvcnkgYXQgbmV3X25hbWUs
IG1ha2Ugc3VyZSBpdCdzIGVtcHR5LgotICAgICAgICAgIGlmIChGUy5pc0RpcihvbGRfbm9kZS5t
b2RlKSkgewotICAgICAgICAgICAgdmFyIG5ld19ub2RlOwotICAgICAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICAgICAgbmV3X25vZGUgPSBGUy5sb29rdXBOb2RlKG5ld19kaXIsIG5ld19uYW1lKTsK
LSAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
IChuZXdfbm9kZSkgewotICAgICAgICAgICAgICBmb3IgKHZhciBpIGluIG5ld19ub2RlLmNvbnRl
bnRzKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09E
RVMuRU5PVEVNUFRZKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAg
IH0KLSAgICAgICAgICAvLyBkbyB0aGUgaW50ZXJuYWwgcmV3aXJpbmcKLSAgICAgICAgICBkZWxl
dGUgb2xkX25vZGUucGFyZW50LmNvbnRlbnRzW29sZF9ub2RlLm5hbWVdOwotICAgICAgICAgIG9s
ZF9ub2RlLm5hbWUgPSBuZXdfbmFtZTsKLSAgICAgICAgICBuZXdfZGlyLmNvbnRlbnRzW25ld19u
YW1lXSA9IG9sZF9ub2RlOwotICAgICAgICB9LHVubGluazpmdW5jdGlvbiAocGFyZW50LCBuYW1l
KSB7Ci0gICAgICAgICAgZGVsZXRlIHBhcmVudC5jb250ZW50c1tuYW1lXTsKLSAgICAgICAgfSxy
bWRpcjpmdW5jdGlvbiAocGFyZW50LCBuYW1lKSB7Ci0gICAgICAgICAgdmFyIG5vZGUgPSBGUy5s
b29rdXBOb2RlKHBhcmVudCwgbmFtZSk7Ci0gICAgICAgICAgZm9yICh2YXIgaSBpbiBub2RlLmNv
bnRlbnRzKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RF
Uy5FTk9URU1QVFkpOwotICAgICAgICAgIH0KLSAgICAgICAgICBkZWxldGUgcGFyZW50LmNvbnRl
bnRzW25hbWVdOwotICAgICAgICB9LHJlYWRkaXI6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAg
ICB2YXIgZW50cmllcyA9IFsnLicsICcuLiddCi0gICAgICAgICAgZm9yICh2YXIga2V5IGluIG5v
ZGUuY29udGVudHMpIHsKLSAgICAgICAgICAgIGlmICghbm9kZS5jb250ZW50cy5oYXNPd25Qcm9w
ZXJ0eShrZXkpKSB7Ci0gICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgZW50cmllcy5wdXNoKGtleSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVy
biBlbnRyaWVzOwotICAgICAgICB9LHN5bWxpbms6ZnVuY3Rpb24gKHBhcmVudCwgbmV3bmFtZSwg
b2xkcGF0aCkgewotICAgICAgICAgIHZhciBub2RlID0gTUVNRlMuY3JlYXRlX25vZGUocGFyZW50
LCBuZXduYW1lLCAwNzc3IHwgMDEyMDAwMCwgMCk7Ci0gICAgICAgICAgbm9kZS5saW5rID0gb2xk
cGF0aDsKLSAgICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAgICAgfSxyZWFkbGluazpmdW5jdGlv
biAobm9kZSkgewotICAgICAgICAgIGlmICghRlMuaXNMaW5rKG5vZGUubW9kZSkpIHsKLSAgICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAg
ICAgICAgfQotICAgICAgICAgIHJldHVybiBub2RlLmxpbms7Ci0gICAgICAgIH19LHN0cmVhbV9v
cHM6e3JlYWQ6ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRp
b24pIHsKLSAgICAgICAgICB2YXIgY29udGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAg
ICAgICAgICB2YXIgc2l6ZSA9IE1hdGgubWluKGNvbnRlbnRzLmxlbmd0aCAtIHBvc2l0aW9uLCBs
ZW5ndGgpOwotICAgICAgICAgIGlmIChjb250ZW50cy5zdWJhcnJheSkgeyAvLyB0eXBlZCBhcnJh
eQotICAgICAgICAgICAgYnVmZmVyLnNldChjb250ZW50cy5zdWJhcnJheShwb3NpdGlvbiwgcG9z
aXRpb24gKyBzaXplKSwgb2Zmc2V0KTsKLSAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICB7Ci0g
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKykgewotICAgICAgICAgICAg
ICBidWZmZXJbb2Zmc2V0ICsgaV0gPSBjb250ZW50c1twb3NpdGlvbiArIGldOwotICAgICAgICAg
ICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gc2l6ZTsKLSAgICAgICAgfSx3cml0
ZTpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbikgewot
ICAgICAgICAgIHZhciBjb250ZW50cyA9IHN0cmVhbS5ub2RlLmNvbnRlbnRzOwotICAgICAgICAg
IHdoaWxlIChjb250ZW50cy5sZW5ndGggPCBwb3NpdGlvbikgY29udGVudHMucHVzaCgwKTsKLSAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBj
b250ZW50c1twb3NpdGlvbiArIGldID0gYnVmZmVyW29mZnNldCArIGldOwotICAgICAgICAgIH0K
LSAgICAgICAgICBzdHJlYW0ubm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpOwotICAgICAgICAg
IHJldHVybiBsZW5ndGg7Ci0gICAgICAgIH0sbGxzZWVrOmZ1bmN0aW9uIChzdHJlYW0sIG9mZnNl
dCwgd2hlbmNlKSB7Ci0gICAgICAgICAgdmFyIHBvc2l0aW9uID0gb2Zmc2V0OwotICAgICAgICAg
IGlmICh3aGVuY2UgPT09IDEpIHsgIC8vIFNFRUtfQ1VSLgotICAgICAgICAgICAgcG9zaXRpb24g
Kz0gc3RyZWFtLnBvc2l0aW9uOwotICAgICAgICAgIH0gZWxzZSBpZiAod2hlbmNlID09PSAyKSB7
ICAvLyBTRUVLX0VORC4KLSAgICAgICAgICAgIGlmIChGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9k
ZSkpIHsKLSAgICAgICAgICAgICAgcG9zaXRpb24gKz0gc3RyZWFtLm5vZGUuY29udGVudHMubGVu
Z3RoOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAocG9zaXRpb24g
PCAwKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5F
SU5WQUwpOwotICAgICAgICAgIH0KLSAgICAgICAgICBzdHJlYW0udW5nb3R0ZW4gPSBbXTsKLSAg
ICAgICAgICBzdHJlYW0ucG9zaXRpb24gPSBwb3NpdGlvbjsKLSAgICAgICAgICByZXR1cm4gcG9z
aXRpb247Ci0gICAgICAgIH0sYWxsb2NhdGU6ZnVuY3Rpb24gKHN0cmVhbSwgb2Zmc2V0LCBsZW5n
dGgpIHsKLSAgICAgICAgICB2YXIgY29udGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAg
ICAgICAgICB2YXIgbGltaXQgPSBvZmZzZXQgKyBsZW5ndGg7Ci0gICAgICAgICAgd2hpbGUgKGxp
bWl0ID4gY29udGVudHMubGVuZ3RoKSBjb250ZW50cy5wdXNoKDApOwotICAgICAgICB9LG1tYXA6
ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24sIHByb3Qs
IGZsYWdzKSB7Ci0gICAgICAgICAgaWYgKCFGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9kZSkpIHsK
LSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0RFVik7
Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBwdHI7Ci0gICAgICAgICAgdmFyIGFsbG9jYXRl
ZDsKLSAgICAgICAgICB2YXIgY29udGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAgICAg
ICAgICAvLyBPbmx5IG1ha2UgYSBuZXcgY29weSB3aGVuIE1BUF9QUklWQVRFIGlzIHNwZWNpZmll
ZC4KLSAgICAgICAgICBpZiAoIShmbGFncyAmIDB4MDIpKSB7Ci0gICAgICAgICAgICAvLyBXZSBj
YW4ndCBlbXVsYXRlIE1BUF9TSEFSRUQgd2hlbiB0aGUgZmlsZSBpcyBub3QgYmFja2VkIGJ5IHRo
ZSBidWZmZXIKLSAgICAgICAgICAgIC8vIHdlJ3JlIG1hcHBpbmcgdG8gKGUuZy4gdGhlIEhFQVAg
YnVmZmVyKS4KLSAgICAgICAgICAgIGFzc2VydChjb250ZW50cy5idWZmZXIgPT09IGJ1ZmZlciB8
fCBjb250ZW50cy5idWZmZXIgPT09IGJ1ZmZlci5idWZmZXIpOwotICAgICAgICAgICAgYWxsb2Nh
dGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBwdHIgPSBjb250ZW50cy5ieXRlT2Zmc2V0OwotICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBUcnkgdG8gYXZvaWQgdW5uZWNlc3Nhcnkg
c2xpY2VzLgotICAgICAgICAgICAgaWYgKHBvc2l0aW9uID4gMCB8fCBwb3NpdGlvbiArIGxlbmd0
aCA8IGNvbnRlbnRzLmxlbmd0aCkgewotICAgICAgICAgICAgICBpZiAoY29udGVudHMuc3ViYXJy
YXkpIHsKLSAgICAgICAgICAgICAgICBjb250ZW50cyA9IGNvbnRlbnRzLnN1YmFycmF5KHBvc2l0
aW9uLCBwb3NpdGlvbiArIGxlbmd0aCk7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgY29udGVudHMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChjb250ZW50cywg
cG9zaXRpb24sIHBvc2l0aW9uICsgbGVuZ3RoKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgYWxsb2NhdGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIHB0ciA9IF9t
YWxsb2MobGVuZ3RoKTsKLSAgICAgICAgICAgIGlmICghcHRyKSB7Ci0gICAgICAgICAgICAgIHRo
cm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT01FTSk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBidWZmZXIuc2V0KGNvbnRlbnRzLCBwdHIpOwotICAgICAgICAgIH0KLSAg
ICAgICAgICByZXR1cm4geyBwdHI6IHB0ciwgYWxsb2NhdGVkOiBhbGxvY2F0ZWQgfTsKLSAgICAg
ICAgfX19OwotICB2YXIgX3N0ZGluPWFsbG9jYXRlKDEsICJpMzIqIiwgQUxMT0NfU1RBVElDKTsK
LSAgdmFyIF9zdGRvdXQ9YWxsb2NhdGUoMSwgImkzMioiLCBBTExPQ19TVEFUSUMpOwotICB2YXIg
X3N0ZGVycj1hbGxvY2F0ZSgxLCAiaTMyKiIsIEFMTE9DX1NUQVRJQyk7Ci0gIGZ1bmN0aW9uIF9m
Zmx1c2goc3RyZWFtKSB7Ci0gICAgICAvLyBpbnQgZmZsdXNoKEZJTEUgKnN0cmVhbSk7Ci0gICAg
ICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0
aW9ucy9mZmx1c2guaHRtbAotICAgICAgLy8gd2UgZG9uJ3QgY3VycmVudGx5IHBlcmZvcm0gYW55
IHVzZXItc3BhY2UgYnVmZmVyaW5nIG9mIGRhdGEKLSAgICB9dmFyIEZTPXtyb290Om51bGwsbm9k
ZXM6W251bGxdLGRldmljZXM6W251bGxdLHN0cmVhbXM6W251bGxdLG5leHRJbm9kZToxLG5hbWVf
dGFibGU6bnVsbCxjdXJyZW50UGF0aDoiLyIsaW5pdGlhbGl6ZWQ6ZmFsc2UsaWdub3JlUGVybWlz
c2lvbnM6dHJ1ZSxFcnJub0Vycm9yOmZ1bmN0aW9uIEVycm5vRXJyb3IoZXJybm8pIHsKLSAgICAg
ICAgICB0aGlzLmVycm5vID0gZXJybm87Ci0gICAgICAgICAgZm9yICh2YXIga2V5IGluIEVSUk5P
X0NPREVTKSB7Ci0gICAgICAgICAgICBpZiAoRVJSTk9fQ09ERVNba2V5XSA9PT0gZXJybm8pIHsK
LSAgICAgICAgICAgICAgdGhpcy5jb2RlID0ga2V5OwotICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgdGhpcy5tZXNzYWdlID0gRVJSTk9f
TUVTU0FHRVNbZXJybm9dOwotICAgICAgICB9LGhhbmRsZUZTRXJyb3I6ZnVuY3Rpb24gKGUpIHsK
LSAgICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIEZTLkVycm5vRXJyb3IpKSB0aHJvdyBlICsgJyA6
ICcgKyBuZXcgRXJyb3IoKS5zdGFjazsKLSAgICAgICAgcmV0dXJuIF9fX3NldEVyck5vKGUuZXJy
bm8pOwotICAgICAgfSxoYXNoTmFtZTpmdW5jdGlvbiAocGFyZW50aWQsIG5hbWUpIHsKLSAgICAg
ICAgdmFyIGhhc2ggPSAwOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWUubGVuZ3Ro
OyBpKyspIHsKLSAgICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCArIG5hbWUuY2hh
ckNvZGVBdChpKSkgfCAwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAoKHBhcmVudGlkICsg
aGFzaCkgPj4+IDApICUgRlMubmFtZV90YWJsZS5sZW5ndGg7Ci0gICAgICB9LGhhc2hBZGROb2Rl
OmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAgIHZhciBoYXNoID0gRlMuaGFzaE5hbWUobm9kZS5w
YXJlbnQuaWQsIG5vZGUubmFtZSk7Ci0gICAgICAgIG5vZGUubmFtZV9uZXh0ID0gRlMubmFtZV90
YWJsZVtoYXNoXTsKLSAgICAgICAgRlMubmFtZV90YWJsZVtoYXNoXSA9IG5vZGU7Ci0gICAgICB9
LGhhc2hSZW1vdmVOb2RlOmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAgIHZhciBoYXNoID0gRlMu
aGFzaE5hbWUobm9kZS5wYXJlbnQuaWQsIG5vZGUubmFtZSk7Ci0gICAgICAgIGlmIChGUy5uYW1l
X3RhYmxlW2hhc2hdID09PSBub2RlKSB7Ci0gICAgICAgICAgRlMubmFtZV90YWJsZVtoYXNoXSA9
IG5vZGUubmFtZV9uZXh0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHZhciBjdXJyZW50
ID0gRlMubmFtZV90YWJsZVtoYXNoXTsKLSAgICAgICAgICB3aGlsZSAoY3VycmVudCkgewotICAg
ICAgICAgICAgaWYgKGN1cnJlbnQubmFtZV9uZXh0ID09PSBub2RlKSB7Ci0gICAgICAgICAgICAg
IGN1cnJlbnQubmFtZV9uZXh0ID0gbm9kZS5uYW1lX25leHQ7Ci0gICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubmFtZV9uZXh0
OwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfSxsb29rdXBOb2RlOmZ1bmN0aW9uIChw
YXJlbnQsIG5hbWUpIHsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heUxvb2t1cChwYXJlbnQpOwot
ICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJy
KTsKLSAgICAgICAgfQotICAgICAgICB2YXIgaGFzaCA9IEZTLmhhc2hOYW1lKHBhcmVudC5pZCwg
bmFtZSk7Ci0gICAgICAgIGZvciAodmFyIG5vZGUgPSBGUy5uYW1lX3RhYmxlW2hhc2hdOyBub2Rl
OyBub2RlID0gbm9kZS5uYW1lX25leHQpIHsKLSAgICAgICAgICBpZiAobm9kZS5wYXJlbnQuaWQg
PT09IHBhcmVudC5pZCAmJiBub2RlLm5hbWUgPT09IG5hbWUpIHsKLSAgICAgICAgICAgIHJldHVy
biBub2RlOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAvLyBpZiB3ZSBmYWlsZWQg
dG8gZmluZCBpdCBpbiB0aGUgY2FjaGUsIGNhbGwgaW50byB0aGUgVkZTCi0gICAgICAgIHJldHVy
biBGUy5sb29rdXAocGFyZW50LCBuYW1lKTsKLSAgICAgIH0sY3JlYXRlTm9kZTpmdW5jdGlvbiAo
cGFyZW50LCBuYW1lLCBtb2RlLCByZGV2KSB7Ci0gICAgICAgIHZhciBub2RlID0gewotICAgICAg
ICAgIGlkOiBGUy5uZXh0SW5vZGUrKywKLSAgICAgICAgICBuYW1lOiBuYW1lLAotICAgICAgICAg
IG1vZGU6IG1vZGUsCi0gICAgICAgICAgbm9kZV9vcHM6IHt9LAotICAgICAgICAgIHN0cmVhbV9v
cHM6IHt9LAotICAgICAgICAgIHJkZXY6IHJkZXYsCi0gICAgICAgICAgcGFyZW50OiBudWxsLAot
ICAgICAgICAgIG1vdW50OiBudWxsCi0gICAgICAgIH07Ci0gICAgICAgIGlmICghcGFyZW50KSB7
Ci0gICAgICAgICAgcGFyZW50ID0gbm9kZTsgIC8vIHJvb3Qgbm9kZSBzZXRzIHBhcmVudCB0byBp
dHNlbGYKLSAgICAgICAgfQotICAgICAgICBub2RlLnBhcmVudCA9IHBhcmVudDsKLSAgICAgICAg
bm9kZS5tb3VudCA9IHBhcmVudC5tb3VudDsKLSAgICAgICAgLy8gY29tcGF0aWJpbGl0eQotICAg
ICAgICB2YXIgcmVhZE1vZGUgPSAyOTIgfCA3MzsKLSAgICAgICAgdmFyIHdyaXRlTW9kZSA9IDE0
NjsKLSAgICAgICAgLy8gTk9URSB3ZSBtdXN0IHVzZSBPYmplY3QuZGVmaW5lUHJvcGVydGllcyBp
bnN0ZWFkIG9mIGluZGl2aWR1YWwgY2FsbHMgdG8KLSAgICAgICAgLy8gT2JqZWN0LmRlZmluZVBy
b3BlcnR5IGluIG9yZGVyIHRvIG1ha2UgY2xvc3VyZSBjb21waWxlciBoYXBweQotICAgICAgICBP
YmplY3QuZGVmaW5lUHJvcGVydGllcyhub2RlLCB7Ci0gICAgICAgICAgcmVhZDogewotICAgICAg
ICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIChub2RlLm1vZGUgJiByZWFkTW9kZSkgPT09
IHJlYWRNb2RlOyB9LAotICAgICAgICAgICAgc2V0OiBmdW5jdGlvbih2YWwpIHsgdmFsID8gbm9k
ZS5tb2RlIHw9IHJlYWRNb2RlIDogbm9kZS5tb2RlICY9IH5yZWFkTW9kZTsgfQotICAgICAgICAg
IH0sCi0gICAgICAgICAgd3JpdGU6IHsKLSAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJl
dHVybiAobm9kZS5tb2RlICYgd3JpdGVNb2RlKSA9PT0gd3JpdGVNb2RlOyB9LAotICAgICAgICAg
ICAgc2V0OiBmdW5jdGlvbih2YWwpIHsgdmFsID8gbm9kZS5tb2RlIHw9IHdyaXRlTW9kZSA6IG5v
ZGUubW9kZSAmPSB+d3JpdGVNb2RlOyB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBpc0ZvbGRl
cjogewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIEZTLmlzRGlyKG5vZGUu
bW9kZSk7IH0sCi0gICAgICAgICAgfSwKLSAgICAgICAgICBpc0RldmljZTogewotICAgICAgICAg
ICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIEZTLmlzQ2hyZGV2KG5vZGUubW9kZSk7IH0sCi0g
ICAgICAgICAgfSwKLSAgICAgICAgfSk7Ci0gICAgICAgIEZTLmhhc2hBZGROb2RlKG5vZGUpOwot
ICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAgIH0sZGVzdHJveU5vZGU6ZnVuY3Rpb24gKG5vZGUp
IHsKLSAgICAgICAgRlMuaGFzaFJlbW92ZU5vZGUobm9kZSk7Ci0gICAgICB9LGlzUm9vdDpmdW5j
dGlvbiAobm9kZSkgewotICAgICAgICByZXR1cm4gbm9kZSA9PT0gbm9kZS5wYXJlbnQ7Ci0gICAg
ICB9LGlzTW91bnRwb2ludDpmdW5jdGlvbiAobm9kZSkgewotICAgICAgICByZXR1cm4gbm9kZS5t
b3VudGVkOwotICAgICAgfSxpc0ZpbGU6ZnVuY3Rpb24gKG1vZGUpIHsKLSAgICAgICAgcmV0dXJu
IChtb2RlICYgMDE3MDAwMCkgPT09IDAxMDAwMDA7Ci0gICAgICB9LGlzRGlyOmZ1bmN0aW9uICht
b2RlKSB7Ci0gICAgICAgIHJldHVybiAobW9kZSAmIDAxNzAwMDApID09PSAwMDQwMDAwOwotICAg
ICAgfSxpc0xpbms6ZnVuY3Rpb24gKG1vZGUpIHsKLSAgICAgICAgcmV0dXJuIChtb2RlICYgMDE3
MDAwMCkgPT09IDAxMjAwMDA7Ci0gICAgICB9LGlzQ2hyZGV2OmZ1bmN0aW9uIChtb2RlKSB7Ci0g
ICAgICAgIHJldHVybiAobW9kZSAmIDAxNzAwMDApID09PSAwMDIwMDAwOwotICAgICAgfSxpc0Js
a2RldjpmdW5jdGlvbiAobW9kZSkgewotICAgICAgICByZXR1cm4gKG1vZGUgJiAwMTcwMDAwKSA9
PT0gMDA2MDAwMDsKLSAgICAgIH0saXNGSUZPOmZ1bmN0aW9uIChtb2RlKSB7Ci0gICAgICAgIHJl
dHVybiAobW9kZSAmIDAxNzAwMDApID09PSAwMDEwMDAwOwotICAgICAgfSxjd2Q6ZnVuY3Rpb24g
KCkgewotICAgICAgICByZXR1cm4gRlMuY3VycmVudFBhdGg7Ci0gICAgICB9LGxvb2t1cFBhdGg6
ZnVuY3Rpb24gKHBhdGgsIG9wdHMpIHsKLSAgICAgICAgcGF0aCA9IFBBVEgucmVzb2x2ZShGUy5j
dXJyZW50UGF0aCwgcGF0aCk7Ci0gICAgICAgIG9wdHMgPSBvcHRzIHx8IHsgcmVjdXJzZV9jb3Vu
dDogMCB9OwotICAgICAgICBpZiAob3B0cy5yZWN1cnNlX2NvdW50ID4gOCkgeyAgLy8gbWF4IHJl
Y3Vyc2l2ZSBsb29rdXAgb2YgOAotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVMT09QKTsKLSAgICAgICAgfQotICAgICAgICAvLyBzcGxpdCB0aGUgcGF0aAot
ICAgICAgICB2YXIgcGFydHMgPSBQQVRILm5vcm1hbGl6ZUFycmF5KHBhdGguc3BsaXQoJy8nKS5m
aWx0ZXIoZnVuY3Rpb24ocCkgewotICAgICAgICAgIHJldHVybiAhIXA7Ci0gICAgICAgIH0pLCBm
YWxzZSk7Ci0gICAgICAgIC8vIHN0YXJ0IGF0IHRoZSByb290Ci0gICAgICAgIHZhciBjdXJyZW50
ID0gRlMucm9vdDsKLSAgICAgICAgdmFyIGN1cnJlbnRfcGF0aCA9ICcvJzsKLSAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykgewotICAgICAgICAgIHZhciBpc2xh
c3QgPSAoaSA9PT0gcGFydHMubGVuZ3RoLTEpOwotICAgICAgICAgIGlmIChpc2xhc3QgJiYgb3B0
cy5wYXJlbnQpIHsKLSAgICAgICAgICAgIC8vIHN0b3AgcmVzb2x2aW5nCi0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICB9Ci0gICAgICAgICAgY3VycmVudCA9IEZTLmxvb2t1cE5vZGUoY3Vy
cmVudCwgcGFydHNbaV0pOwotICAgICAgICAgIGN1cnJlbnRfcGF0aCA9IFBBVEguam9pbihjdXJy
ZW50X3BhdGgsIHBhcnRzW2ldKTsKLSAgICAgICAgICAvLyBqdW1wIHRvIHRoZSBtb3VudCdzIHJv
b3Qgbm9kZSBpZiB0aGlzIGlzIGEgbW91bnRwb2ludAotICAgICAgICAgIGlmIChGUy5pc01vdW50
cG9pbnQoY3VycmVudCkpIHsKLSAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm1vdW50LnJv
b3Q7Ci0gICAgICAgICAgfQotICAgICAgICAgIC8vIGZvbGxvdyBzeW1saW5rcwotICAgICAgICAg
IC8vIGJ5IGRlZmF1bHQsIGxvb2t1cFBhdGggd2lsbCBub3QgZm9sbG93IGEgc3ltbGluayBpZiBp
dCBpcyB0aGUgZmluYWwgcGF0aCBjb21wb25lbnQuCi0gICAgICAgICAgLy8gc2V0dGluZyBvcHRz
LmZvbGxvdyA9IHRydWUgd2lsbCBvdmVycmlkZSB0aGlzIGJlaGF2aW9yLgotICAgICAgICAgIGlm
ICghaXNsYXN0IHx8IG9wdHMuZm9sbG93KSB7Ci0gICAgICAgICAgICB2YXIgY291bnQgPSAwOwot
ICAgICAgICAgICAgd2hpbGUgKEZTLmlzTGluayhjdXJyZW50Lm1vZGUpKSB7Ci0gICAgICAgICAg
ICAgIHZhciBsaW5rID0gRlMucmVhZGxpbmsoY3VycmVudF9wYXRoKTsKLSAgICAgICAgICAgICAg
Y3VycmVudF9wYXRoID0gUEFUSC5yZXNvbHZlKFBBVEguZGlybmFtZShjdXJyZW50X3BhdGgpLCBs
aW5rKTsKLSAgICAgICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgoY3VycmVudF9w
YXRoLCB7IHJlY3Vyc2VfY291bnQ6IG9wdHMucmVjdXJzZV9jb3VudCB9KTsKLSAgICAgICAgICAg
ICAgY3VycmVudCA9IGxvb2t1cC5ub2RlOwotICAgICAgICAgICAgICBpZiAoY291bnQrKyA+IDQw
KSB7ICAvLyBsaW1pdCBtYXggY29uc2VjdXRpdmUgc3ltbGlua3MgdG8gNDAgKFNZTUxPT1BfTUFY
KS4KLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5F
TE9PUCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIHsgcGF0aDogY3VycmVudF9wYXRoLCBub2RlOiBjdXJyZW50
IH07Ci0gICAgICB9LGdldFBhdGg6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAgdmFyIHBhdGg7
Ci0gICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgICAgaWYgKEZTLmlzUm9vdChub2RlKSkg
ewotICAgICAgICAgICAgcmV0dXJuIHBhdGggPyBQQVRILmpvaW4obm9kZS5tb3VudC5tb3VudHBv
aW50LCBwYXRoKSA6IG5vZGUubW91bnQubW91bnRwb2ludDsKLSAgICAgICAgICB9Ci0gICAgICAg
ICAgcGF0aCA9IHBhdGggPyBQQVRILmpvaW4obm9kZS5uYW1lLCBwYXRoKSA6IG5vZGUubmFtZTsK
LSAgICAgICAgICBub2RlID0gbm9kZS5wYXJlbnQ7Ci0gICAgICAgIH0KLSAgICAgIH0sZmxhZ01v
ZGVzOnsiciI6MCwicnMiOjgxOTIsInIrIjoyLCJ3IjoxNTM3LCJ3eCI6MzU4NSwieHciOjM1ODUs
IncrIjoxNTM4LCJ3eCsiOjM1ODYsInh3KyI6MzU4NiwiYSI6NTIxLCJheCI6MjU2OSwieGEiOjI1
NjksImErIjo1MjIsImF4KyI6MjU3MCwieGErIjoyNTcwfSxtb2RlU3RyaW5nVG9GbGFnczpmdW5j
dGlvbiAoc3RyKSB7Ci0gICAgICAgIHZhciBmbGFncyA9IEZTLmZsYWdNb2Rlc1tzdHJdOwotICAg
ICAgICBpZiAodHlwZW9mIGZsYWdzID09PSAndW5kZWZpbmVkJykgewotICAgICAgICAgIHRocm93
IG5ldyBFcnJvcignVW5rbm93biBmaWxlIG9wZW4gbW9kZTogJyArIHN0cik7Ci0gICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIGZsYWdzOwotICAgICAgfSxmbGFnc1RvUGVybWlzc2lvblN0cmluZzpm
dW5jdGlvbiAoZmxhZykgewotICAgICAgICB2YXIgYWNjbW9kZSA9IGZsYWcgJiAzOwotICAgICAg
ICB2YXIgcGVybXMgPSBbJ3InLCAndycsICdydyddW2FjY21vZGVdOwotICAgICAgICBpZiAoKGZs
YWcgJiAxMDI0KSkgewotICAgICAgICAgIHBlcm1zICs9ICd3JzsKLSAgICAgICAgfQotICAgICAg
ICByZXR1cm4gcGVybXM7Ci0gICAgICB9LG5vZGVQZXJtaXNzaW9uczpmdW5jdGlvbiAobm9kZSwg
cGVybXMpIHsKLSAgICAgICAgaWYgKEZTLmlnbm9yZVBlcm1pc3Npb25zKSB7Ci0gICAgICAgICAg
cmV0dXJuIDA7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gcmV0dXJuIDAgaWYgYW55IHVzZXIsIGdy
b3VwIG9yIG93bmVyIGJpdHMgYXJlIHNldC4KLSAgICAgICAgaWYgKHBlcm1zLmluZGV4T2YoJ3In
KSAhPT0gLTEgJiYgIShub2RlLm1vZGUgJiAyOTIpKSB7Ci0gICAgICAgICAgcmV0dXJuIEVSUk5P
X0NPREVTLkVBQ0NFUzsKLSAgICAgICAgfSBlbHNlIGlmIChwZXJtcy5pbmRleE9mKCd3JykgIT09
IC0xICYmICEobm9kZS5tb2RlICYgMTQ2KSkgewotICAgICAgICAgIHJldHVybiBFUlJOT19DT0RF
Uy5FQUNDRVM7Ci0gICAgICAgIH0gZWxzZSBpZiAocGVybXMuaW5kZXhPZigneCcpICE9PSAtMSAm
JiAhKG5vZGUubW9kZSAmIDczKSkgewotICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FQUND
RVM7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICB9LG1heUxvb2t1cDpmdW5j
dGlvbiAoZGlyKSB7Ci0gICAgICAgIHJldHVybiBGUy5ub2RlUGVybWlzc2lvbnMoZGlyLCAneCcp
OwotICAgICAgfSxtYXlNa25vZDpmdW5jdGlvbiAobW9kZSkgewotICAgICAgICBzd2l0Y2ggKG1v
ZGUgJiAwMTcwMDAwKSB7Ci0gICAgICAgICAgY2FzZSAwMTAwMDAwOgotICAgICAgICAgIGNhc2Ug
MDAyMDAwMDoKLSAgICAgICAgICBjYXNlIDAwNjAwMDA6Ci0gICAgICAgICAgY2FzZSAwMDEwMDAw
OgotICAgICAgICAgIGNhc2UgMDE0MDAwMDoKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUlOVkFMOwotICAg
ICAgICB9Ci0gICAgICB9LG1heUNyZWF0ZTpmdW5jdGlvbiAoZGlyLCBuYW1lKSB7Ci0gICAgICAg
IHRyeSB7Ci0gICAgICAgICAgdmFyIG5vZGUgPSBGUy5sb29rdXBOb2RlKGRpciwgbmFtZSk7Ci0g
ICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVFWElTVDsKLSAgICAgICAgfSBjYXRjaCAoZSkg
ewotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBGUy5ub2RlUGVybWlzc2lvbnMoZGlyLCAnd3gn
KTsKLSAgICAgIH0sbWF5RGVsZXRlOmZ1bmN0aW9uIChkaXIsIG5hbWUsIGlzZGlyKSB7Ci0gICAg
ICAgIHZhciBub2RlOwotICAgICAgICB0cnkgewotICAgICAgICAgIG5vZGUgPSBGUy5sb29rdXBO
b2RlKGRpciwgbmFtZSk7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICByZXR1cm4g
ZS5lcnJubzsKLSAgICAgICAgfQotICAgICAgICB2YXIgZXJyID0gRlMubm9kZVBlcm1pc3Npb25z
KGRpciwgJ3d4Jyk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICByZXR1cm4gZXJyOwot
ICAgICAgICB9Ci0gICAgICAgIGlmIChpc2RpcikgewotICAgICAgICAgIGlmICghRlMuaXNEaXIo
bm9kZS5tb2RlKSkgewotICAgICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVOT1RESVI7Ci0g
ICAgICAgICAgfQotICAgICAgICAgIGlmIChGUy5pc1Jvb3Qobm9kZSkgfHwgRlMuZ2V0UGF0aChu
b2RlKSA9PT0gRlMuY3VycmVudFBhdGgpIHsKLSAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RF
Uy5FQlVTWTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgaWYgKEZT
LmlzRGlyKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FSVNE
SVI7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAwOwotICAgICAgfSxt
YXlPcGVuOmZ1bmN0aW9uIChub2RlLCBmbGFncykgewotICAgICAgICBpZiAoIW5vZGUpIHsKLSAg
ICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRU5PRU5UOwotICAgICAgICB9Ci0gICAgICAgIGlm
IChGUy5pc0xpbmsobm9kZS5tb2RlKSkgewotICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5F
TE9PUDsKLSAgICAgICAgfSBlbHNlIGlmIChGUy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAg
ICAgaWYgKChmbGFncyAmIDMpICE9PSAwIHx8ICAvLyBvcGVuaW5nIGZvciB3cml0ZQotICAgICAg
ICAgICAgICAoZmxhZ3MgJiAxMDI0KSkgewotICAgICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVT
LkVJU0RJUjsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIEZTLm5vZGVQ
ZXJtaXNzaW9ucyhub2RlLCBGUy5mbGFnc1RvUGVybWlzc2lvblN0cmluZyhmbGFncykpOwotICAg
ICAgfSxjaHJkZXZfc3RyZWFtX29wczp7b3BlbjpmdW5jdGlvbiAoc3RyZWFtKSB7Ci0gICAgICAg
ICAgdmFyIGRldmljZSA9IEZTLmdldERldmljZShzdHJlYW0ubm9kZS5yZGV2KTsKLSAgICAgICAg
ICAvLyBvdmVycmlkZSBub2RlJ3Mgc3RyZWFtIG9wcyB3aXRoIHRoZSBkZXZpY2UncwotICAgICAg
ICAgIHN0cmVhbS5zdHJlYW1fb3BzID0gZGV2aWNlLnN0cmVhbV9vcHM7Ci0gICAgICAgICAgLy8g
Zm9yd2FyZCB0aGUgb3BlbiBjYWxsCi0gICAgICAgICAgaWYgKHN0cmVhbS5zdHJlYW1fb3BzLm9w
ZW4pIHsKLSAgICAgICAgICAgIHN0cmVhbS5zdHJlYW1fb3BzLm9wZW4oc3RyZWFtKTsKLSAgICAg
ICAgICB9Ci0gICAgICAgIH0sbGxzZWVrOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgICB0aHJvdyBu
ZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FU1BJUEUpOwotICAgICAgICB9fSxtYWpvcjpm
dW5jdGlvbiAoZGV2KSB7Ci0gICAgICAgIHJldHVybiAoKGRldikgPj4gOCk7Ci0gICAgICB9LG1p
bm9yOmZ1bmN0aW9uIChkZXYpIHsKLSAgICAgICAgcmV0dXJuICgoZGV2KSAmIDB4ZmYpOwotICAg
ICAgfSxtYWtlZGV2OmZ1bmN0aW9uIChtYSwgbWkpIHsKLSAgICAgICAgcmV0dXJuICgobWEpIDw8
IDggfCAobWkpKTsKLSAgICAgIH0scmVnaXN0ZXJEZXZpY2U6ZnVuY3Rpb24gKGRldiwgb3BzKSB7
Ci0gICAgICAgIEZTLmRldmljZXNbZGV2XSA9IHsgc3RyZWFtX29wczogb3BzIH07Ci0gICAgICB9
LGdldERldmljZTpmdW5jdGlvbiAoZGV2KSB7Ci0gICAgICAgIHJldHVybiBGUy5kZXZpY2VzW2Rl
dl07Ci0gICAgICB9LE1BWF9PUEVOX0ZEUzo0MDk2LG5leHRmZDpmdW5jdGlvbiAoZmRfc3RhcnQs
IGZkX2VuZCkgewotICAgICAgICBmZF9zdGFydCA9IGZkX3N0YXJ0IHx8IDE7Ci0gICAgICAgIGZk
X2VuZCA9IGZkX2VuZCB8fCBGUy5NQVhfT1BFTl9GRFM7Ci0gICAgICAgIGZvciAodmFyIGZkID0g
ZmRfc3RhcnQ7IGZkIDw9IGZkX2VuZDsgZmQrKykgewotICAgICAgICAgIGlmICghRlMuc3RyZWFt
c1tmZF0pIHsKLSAgICAgICAgICAgIHJldHVybiBmZDsKLSAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU1GSUxFKTsKLSAg
ICAgIH0sZ2V0U3RyZWFtOmZ1bmN0aW9uIChmZCkgewotICAgICAgICByZXR1cm4gRlMuc3RyZWFt
c1tmZF07Ci0gICAgICB9LGNyZWF0ZVN0cmVhbTpmdW5jdGlvbiAoc3RyZWFtLCBmZF9zdGFydCwg
ZmRfZW5kKSB7Ci0gICAgICAgIHZhciBmZCA9IEZTLm5leHRmZChmZF9zdGFydCwgZmRfZW5kKTsK
LSAgICAgICAgc3RyZWFtLmZkID0gZmQ7Ci0gICAgICAgIC8vIGNvbXBhdGliaWxpdHkKLSAgICAg
ICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoc3RyZWFtLCB7Ci0gICAgICAgICAgb2JqZWN0OiB7
Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gc3RyZWFtLm5vZGU7IH0sCi0g
ICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHZhbCkgeyBzdHJlYW0ubm9kZSA9IHZhbDsgfQotICAg
ICAgICAgIH0sCi0gICAgICAgICAgaXNSZWFkOiB7Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9u
KCkgeyByZXR1cm4gKHN0cmVhbS5mbGFncyAmIDMpICE9PSAxOyB9Ci0gICAgICAgICAgfSwKLSAg
ICAgICAgICBpc1dyaXRlOiB7Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4g
KHN0cmVhbS5mbGFncyAmIDMpICE9PSAwOyB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBpc0Fw
cGVuZDogewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIChzdHJlYW0uZmxh
Z3MgJiA4KTsgfQotICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgICAgIEZTLnN0cmVhbXNb
ZmRdID0gc3RyZWFtOwotICAgICAgICByZXR1cm4gc3RyZWFtOwotICAgICAgfSxjbG9zZVN0cmVh
bTpmdW5jdGlvbiAoZmQpIHsKLSAgICAgICAgRlMuc3RyZWFtc1tmZF0gPSBudWxsOwotICAgICAg
fSxnZXRNb2RlOmZ1bmN0aW9uIChjYW5SZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICB2YXIgbW9k
ZSA9IDA7Ci0gICAgICAgIGlmIChjYW5SZWFkKSBtb2RlIHw9IDI5MiB8IDczOwotICAgICAgICBp
ZiAoY2FuV3JpdGUpIG1vZGUgfD0gMTQ2OwotICAgICAgICByZXR1cm4gbW9kZTsKLSAgICAgIH0s
am9pblBhdGg6ZnVuY3Rpb24gKHBhcnRzLCBmb3JjZVJlbGF0aXZlKSB7Ci0gICAgICAgIHZhciBw
YXRoID0gUEFUSC5qb2luLmFwcGx5KG51bGwsIHBhcnRzKTsKLSAgICAgICAgaWYgKGZvcmNlUmVs
YXRpdmUgJiYgcGF0aFswXSA9PSAnLycpIHBhdGggPSBwYXRoLnN1YnN0cigxKTsKLSAgICAgICAg
cmV0dXJuIHBhdGg7Ci0gICAgICB9LGFic29sdXRlUGF0aDpmdW5jdGlvbiAocmVsYXRpdmUsIGJh
c2UpIHsKLSAgICAgICAgcmV0dXJuIFBBVEgucmVzb2x2ZShiYXNlLCByZWxhdGl2ZSk7Ci0gICAg
ICB9LHN0YW5kYXJkaXplUGF0aDpmdW5jdGlvbiAocGF0aCkgewotICAgICAgICByZXR1cm4gUEFU
SC5ub3JtYWxpemUocGF0aCk7Ci0gICAgICB9LGZpbmRPYmplY3Q6ZnVuY3Rpb24gKHBhdGgsIGRv
bnRSZXNvbHZlTGFzdExpbmspIHsKLSAgICAgICAgdmFyIHJldCA9IEZTLmFuYWx5emVQYXRoKHBh
dGgsIGRvbnRSZXNvbHZlTGFzdExpbmspOwotICAgICAgICBpZiAocmV0LmV4aXN0cykgewotICAg
ICAgICAgIHJldHVybiByZXQub2JqZWN0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIF9f
X3NldEVyck5vKHJldC5lcnJvcik7Ci0gICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0K
LSAgICAgIH0sYW5hbHl6ZVBhdGg6ZnVuY3Rpb24gKHBhdGgsIGRvbnRSZXNvbHZlTGFzdExpbmsp
IHsKLSAgICAgICAgLy8gb3BlcmF0ZSBmcm9tIHdpdGhpbiB0aGUgY29udGV4dCBvZiB0aGUgc3lt
bGluaydzIHRhcmdldAotICAgICAgICB0cnkgewotICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5s
b29rdXBQYXRoKHBhdGgsIHsgZm9sbG93OiAhZG9udFJlc29sdmVMYXN0TGluayB9KTsKLSAgICAg
ICAgICBwYXRoID0gbG9va3VwLnBhdGg7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAg
fQotICAgICAgICB2YXIgcmV0ID0gewotICAgICAgICAgIGlzUm9vdDogZmFsc2UsIGV4aXN0czog
ZmFsc2UsIGVycm9yOiAwLCBuYW1lOiBudWxsLCBwYXRoOiBudWxsLCBvYmplY3Q6IG51bGwsCi0g
ICAgICAgICAgcGFyZW50RXhpc3RzOiBmYWxzZSwgcGFyZW50UGF0aDogbnVsbCwgcGFyZW50T2Jq
ZWN0OiBudWxsCi0gICAgICAgIH07Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgdmFyIGxvb2t1
cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7Ci0gICAgICAgICAgcmV0
LnBhcmVudEV4aXN0cyA9IHRydWU7Ci0gICAgICAgICAgcmV0LnBhcmVudFBhdGggPSBsb29rdXAu
cGF0aDsKLSAgICAgICAgICByZXQucGFyZW50T2JqZWN0ID0gbG9va3VwLm5vZGU7Ci0gICAgICAg
ICAgcmV0Lm5hbWUgPSBQQVRILmJhc2VuYW1lKHBhdGgpOwotICAgICAgICAgIGxvb2t1cCA9IEZT
Lmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6ICFkb250UmVzb2x2ZUxhc3RMaW5rIH0pOwotICAg
ICAgICAgIHJldC5leGlzdHMgPSB0cnVlOwotICAgICAgICAgIHJldC5wYXRoID0gbG9va3VwLnBh
dGg7Ci0gICAgICAgICAgcmV0Lm9iamVjdCA9IGxvb2t1cC5ub2RlOwotICAgICAgICAgIHJldC5u
YW1lID0gbG9va3VwLm5vZGUubmFtZTsKLSAgICAgICAgICByZXQuaXNSb290ID0gbG9va3VwLnBh
dGggPT09ICcvJzsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIHJldC5lcnJvciA9
IGUuZXJybm87Ci0gICAgICAgIH07Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgICB9LGNyZWF0
ZUZvbGRlcjpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBjYW5SZWFkLCBjYW5Xcml0ZSkgewotICAg
ICAgICB2YXIgcGF0aCA9IFBBVEguam9pbih0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5nJyA/IHBh
cmVudCA6IEZTLmdldFBhdGgocGFyZW50KSwgbmFtZSk7Ci0gICAgICAgIHZhciBtb2RlID0gRlMu
Z2V0TW9kZShjYW5SZWFkLCBjYW5Xcml0ZSk7Ci0gICAgICAgIHJldHVybiBGUy5ta2RpcihwYXRo
LCBtb2RlKTsKLSAgICAgIH0sY3JlYXRlUGF0aDpmdW5jdGlvbiAocGFyZW50LCBwYXRoLCBjYW5S
ZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICBwYXJlbnQgPSB0eXBlb2YgcGFyZW50ID09PSAnc3Ry
aW5nJyA/IHBhcmVudCA6IEZTLmdldFBhdGgocGFyZW50KTsKLSAgICAgICAgdmFyIHBhcnRzID0g
cGF0aC5zcGxpdCgnLycpLnJldmVyc2UoKTsKLSAgICAgICAgd2hpbGUgKHBhcnRzLmxlbmd0aCkg
ewotICAgICAgICAgIHZhciBwYXJ0ID0gcGFydHMucG9wKCk7Ci0gICAgICAgICAgaWYgKCFwYXJ0
KSBjb250aW51ZTsKLSAgICAgICAgICB2YXIgY3VycmVudCA9IFBBVEguam9pbihwYXJlbnQsIHBh
cnQpOwotICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBGUy5ta2RpcihjdXJyZW50LCAwNzc3
KTsKLSAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAvLyBpZ25vcmUgRUVYSVNU
Ci0gICAgICAgICAgfQotICAgICAgICAgIHBhcmVudCA9IGN1cnJlbnQ7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIGN1cnJlbnQ7Ci0gICAgICB9LGNyZWF0ZUZpbGU6ZnVuY3Rpb24gKHBhcmVu
dCwgbmFtZSwgcHJvcGVydGllcywgY2FuUmVhZCwgY2FuV3JpdGUpIHsKLSAgICAgICAgdmFyIHBh
dGggPSBQQVRILmpvaW4odHlwZW9mIHBhcmVudCA9PT0gJ3N0cmluZycgPyBwYXJlbnQgOiBGUy5n
ZXRQYXRoKHBhcmVudCksIG5hbWUpOwotICAgICAgICB2YXIgbW9kZSA9IEZTLmdldE1vZGUoY2Fu
UmVhZCwgY2FuV3JpdGUpOwotICAgICAgICByZXR1cm4gRlMuY3JlYXRlKHBhdGgsIG1vZGUpOwot
ICAgICAgfSxjcmVhdGVEYXRhRmlsZTpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBkYXRhLCBjYW5S
ZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICB2YXIgcGF0aCA9IFBBVEguam9pbih0eXBlb2YgcGFy
ZW50ID09PSAnc3RyaW5nJyA/IHBhcmVudCA6IEZTLmdldFBhdGgocGFyZW50KSwgbmFtZSk7Ci0g
ICAgICAgIHZhciBtb2RlID0gRlMuZ2V0TW9kZShjYW5SZWFkLCBjYW5Xcml0ZSk7Ci0gICAgICAg
IHZhciBub2RlID0gRlMuY3JlYXRlKHBhdGgsIG1vZGUpOwotICAgICAgICBpZiAoZGF0YSkgewot
ICAgICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHsKLSAgICAgICAgICAgIHZh
ciBhcnIgPSBuZXcgQXJyYXkoZGF0YS5sZW5ndGgpOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDAsIGxlbiA9IGRhdGEubGVuZ3RoOyBpIDwgbGVuOyArK2kpIGFycltpXSA9IGRhdGEuY2hhckNv
ZGVBdChpKTsKLSAgICAgICAgICAgIGRhdGEgPSBhcnI7Ci0gICAgICAgICAgfQotICAgICAgICAg
IC8vIG1ha2Ugc3VyZSB3ZSBjYW4gd3JpdGUgdG8gdGhlIGZpbGUKLSAgICAgICAgICBGUy5jaG1v
ZChwYXRoLCBtb2RlIHwgMTQ2KTsKLSAgICAgICAgICB2YXIgc3RyZWFtID0gRlMub3BlbihwYXRo
LCAndycpOwotICAgICAgICAgIEZTLndyaXRlKHN0cmVhbSwgZGF0YSwgMCwgZGF0YS5sZW5ndGgs
IDApOwotICAgICAgICAgIEZTLmNsb3NlKHN0cmVhbSk7Ci0gICAgICAgICAgRlMuY2htb2QocGF0
aCwgbW9kZSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICB9LGNyZWF0
ZURldmljZTpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBpbnB1dCwgb3V0cHV0KSB7Ci0gICAgICAg
IHZhciBwYXRoID0gUEFUSC5qb2luKHR5cGVvZiBwYXJlbnQgPT09ICdzdHJpbmcnID8gcGFyZW50
IDogRlMuZ2V0UGF0aChwYXJlbnQpLCBuYW1lKTsKLSAgICAgICAgdmFyIG1vZGUgPSBpbnB1dCAm
JiBvdXRwdXQgPyAwNzc3IDogKGlucHV0ID8gMDMzMyA6IDA1NTUpOwotICAgICAgICBpZiAoIUZT
LmNyZWF0ZURldmljZS5tYWpvcikgRlMuY3JlYXRlRGV2aWNlLm1ham9yID0gNjQ7Ci0gICAgICAg
IHZhciBkZXYgPSBGUy5tYWtlZGV2KEZTLmNyZWF0ZURldmljZS5tYWpvcisrLCAwKTsKLSAgICAg
ICAgLy8gQ3JlYXRlIGEgZmFrZSBkZXZpY2UgdGhhdCBhIHNldCBvZiBzdHJlYW0gb3BzIHRvIGVt
dWxhdGUKLSAgICAgICAgLy8gdGhlIG9sZCBiZWhhdmlvci4KLSAgICAgICAgRlMucmVnaXN0ZXJE
ZXZpY2UoZGV2LCB7Ci0gICAgICAgICAgb3BlbjogZnVuY3Rpb24oc3RyZWFtKSB7Ci0gICAgICAg
ICAgICBzdHJlYW0uc2Vla2FibGUgPSBmYWxzZTsKLSAgICAgICAgICB9LAotICAgICAgICAgIGNs
b3NlOiBmdW5jdGlvbihzdHJlYW0pIHsKLSAgICAgICAgICAgIC8vIGZsdXNoIGFueSBwZW5kaW5n
IGxpbmUgZGF0YQotICAgICAgICAgICAgaWYgKG91dHB1dCAmJiBvdXRwdXQuYnVmZmVyICYmIG91
dHB1dC5idWZmZXIubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgIG91dHB1dCgxMCk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICByZWFkOiBmdW5jdGlvbihzdHJlYW0sIGJ1
ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvcyAvKiBpZ25vcmVkICovKSB7Ci0gICAgICAgICAgICB2
YXIgYnl0ZXNSZWFkID0gMDsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3Ro
OyBpKyspIHsKLSAgICAgICAgICAgICAgdmFyIHJlc3VsdDsKLSAgICAgICAgICAgICAgdHJ5IHsK
LSAgICAgICAgICAgICAgICByZXN1bHQgPSBpbnB1dCgpOwotICAgICAgICAgICAgICB9IGNhdGNo
IChlKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09E
RVMuRUlPKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpZiAocmVzdWx0ID09PSB1
bmRlZmluZWQgJiYgYnl0ZXNSZWFkID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3
IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUFHQUlOKTsKLSAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsIHx8IHJlc3VsdCA9PT0gdW5kZWZpbmVkKSBi
cmVhazsKLSAgICAgICAgICAgICAgYnl0ZXNSZWFkKys7Ci0gICAgICAgICAgICAgIGJ1ZmZlcltv
ZmZzZXQraV0gPSByZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoYnl0ZXNS
ZWFkKSB7Ci0gICAgICAgICAgICAgIHN0cmVhbS5ub2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gYnl0ZXNSZWFkOwotICAgICAgICAg
IH0sCi0gICAgICAgICAgd3JpdGU6IGZ1bmN0aW9uKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxl
bmd0aCwgcG9zKSB7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsr
KSB7Ci0gICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgb3V0cHV0KGJ1ZmZlcltv
ZmZzZXQraV0pOwotICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlPKTsKLSAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGxlbmd0aCkgewotICAgICAgICAgICAg
ICBzdHJlYW0ubm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgcmV0dXJuIGk7Ci0gICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgICAgcmV0
dXJuIEZTLm1rZGV2KHBhdGgsIG1vZGUsIGRldik7Ci0gICAgICB9LGNyZWF0ZUxpbms6ZnVuY3Rp
b24gKHBhcmVudCwgbmFtZSwgdGFyZ2V0LCBjYW5SZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICB2
YXIgcGF0aCA9IFBBVEguam9pbih0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5nJyA/IHBhcmVudCA6
IEZTLmdldFBhdGgocGFyZW50KSwgbmFtZSk7Ci0gICAgICAgIHJldHVybiBGUy5zeW1saW5rKHRh
cmdldCwgcGF0aCk7Ci0gICAgICB9LGZvcmNlTG9hZEZpbGU6ZnVuY3Rpb24gKG9iaikgewotICAg
ICAgICBpZiAob2JqLmlzRGV2aWNlIHx8IG9iai5pc0ZvbGRlciB8fCBvYmoubGluayB8fCBvYmou
Y29udGVudHMpIHJldHVybiB0cnVlOwotICAgICAgICB2YXIgc3VjY2VzcyA9IHRydWU7Ci0gICAg
ICAgIGlmICh0eXBlb2YgWE1MSHR0cFJlcXVlc3QgIT09ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJMYXp5IGxvYWRpbmcgc2hvdWxkIGhhdmUgYmVlbiBwZXJmb3Jt
ZWQgKGNvbnRlbnRzIHNldCkgaW4gY3JlYXRlTGF6eUZpbGUsIGJ1dCBpdCB3YXMgbm90LiBMYXp5
IGxvYWRpbmcgb25seSB3b3JrcyBpbiB3ZWIgd29ya2Vycy4gVXNlIC0tZW1iZWQtZmlsZSBvciAt
LXByZWxvYWQtZmlsZSBpbiBlbWNjIG9uIHRoZSBtYWluIHRocmVhZC4iKTsKLSAgICAgICAgfSBl
bHNlIGlmIChNb2R1bGVbJ3JlYWQnXSkgewotICAgICAgICAgIC8vIENvbW1hbmQtbGluZS4KLSAg
ICAgICAgICB0cnkgewotICAgICAgICAgICAgLy8gV0FSTklORzogQ2FuJ3QgcmVhZCBiaW5hcnkg
ZmlsZXMgaW4gVjgncyBkOCBvciB0cmFjZW1vbmtleSdzIGpzLCBhcwotICAgICAgICAgICAgLy8g
ICAgICAgICAgcmVhZCgpIHdpbGwgdHJ5IHRvIHBhcnNlIFVURjguCi0gICAgICAgICAgICBvYmou
Y29udGVudHMgPSBpbnRBcnJheUZyb21TdHJpbmcoTW9kdWxlWydyZWFkJ10ob2JqLnVybCksIHRy
dWUpOwotICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxz
ZTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCdDYW5ub3QgbG9hZCB3aXRob3V0IHJlYWQoKSBvciBYTUxIdHRwUmVxdWVzdC4nKTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoIXN1Y2Nlc3MpIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVJ
Tyk7Ci0gICAgICAgIHJldHVybiBzdWNjZXNzOwotICAgICAgfSxjcmVhdGVMYXp5RmlsZTpmdW5j
dGlvbiAocGFyZW50LCBuYW1lLCB1cmwsIGNhblJlYWQsIGNhbldyaXRlKSB7Ci0gICAgICAgIGlm
ICh0eXBlb2YgWE1MSHR0cFJlcXVlc3QgIT09ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgICAgaWYg
KCFFTlZJUk9OTUVOVF9JU19XT1JLRVIpIHRocm93ICdDYW5ub3QgZG8gc3luY2hyb25vdXMgYmlu
YXJ5IFhIUnMgb3V0c2lkZSB3ZWJ3b3JrZXJzIGluIG1vZGVybiBicm93c2Vycy4gVXNlIC0tZW1i
ZWQtZmlsZSBvciAtLXByZWxvYWQtZmlsZSBpbiBlbWNjJzsKLSAgICAgICAgICAvLyBMYXp5IGNo
dW5rZWQgVWludDhBcnJheSAoaW1wbGVtZW50cyBnZXQgYW5kIGxlbmd0aCBmcm9tIFVpbnQ4QXJy
YXkpLiBBY3R1YWwgZ2V0dGluZyBpcyBhYnN0cmFjdGVkIGF3YXkgZm9yIGV2ZW50dWFsIHJldXNl
LgotICAgICAgICAgIHZhciBMYXp5VWludDhBcnJheSA9IGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgdGhpcy5sZW5ndGhLbm93biA9IGZhbHNlOwotICAgICAgICAgICAgdGhpcy5jaHVua3MgPSBb
XTsgLy8gTG9hZGVkIGNodW5rcy4gSW5kZXggaXMgdGhlIGNodW5rIG51bWJlcgotICAgICAgICAg
IH0KLSAgICAgICAgICBMYXp5VWludDhBcnJheS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24oaWR4
KSB7Ci0gICAgICAgICAgICBpZiAoaWR4ID4gdGhpcy5sZW5ndGgtMSB8fCBpZHggPCAwKSB7Ci0g
ICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB2YXIgY2h1bmtPZmZzZXQgPSBpZHggJSB0aGlzLmNodW5rU2l6ZTsKLSAgICAgICAgICAgIHZh
ciBjaHVua051bSA9IE1hdGguZmxvb3IoaWR4IC8gdGhpcy5jaHVua1NpemUpOwotICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuZ2V0dGVyKGNodW5rTnVtKVtjaHVua09mZnNldF07Ci0gICAgICAgICAg
fQotICAgICAgICAgIExhenlVaW50OEFycmF5LnByb3RvdHlwZS5zZXREYXRhR2V0dGVyID0gZnVu
Y3Rpb24oZ2V0dGVyKSB7Ci0gICAgICAgICAgICB0aGlzLmdldHRlciA9IGdldHRlcjsKLSAgICAg
ICAgICB9Ci0gICAgICAgICAgTGF6eVVpbnQ4QXJyYXkucHJvdG90eXBlLmNhY2hlTGVuZ3RoID0g
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIC8vIEZpbmQgbGVuZ3RoCi0gICAgICAgICAgICAg
IHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICAgICAgICAgICAgeGhyLm9wZW4o
J0hFQUQnLCB1cmwsIGZhbHNlKTsKLSAgICAgICAgICAgICAgeGhyLnNlbmQobnVsbCk7Ci0gICAg
ICAgICAgICAgIGlmICghKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDAgfHwg
eGhyLnN0YXR1cyA9PT0gMzA0KSkgdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBsb2FkICIgKyB1
cmwgKyAiLiBTdGF0dXM6ICIgKyB4aHIuc3RhdHVzKTsKLSAgICAgICAgICAgICAgdmFyIGRhdGFs
ZW5ndGggPSBOdW1iZXIoeGhyLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LWxlbmd0aCIpKTsK
LSAgICAgICAgICAgICAgdmFyIGhlYWRlcjsKLSAgICAgICAgICAgICAgdmFyIGhhc0J5dGVTZXJ2
aW5nID0gKGhlYWRlciA9IHhoci5nZXRSZXNwb25zZUhlYWRlcigiQWNjZXB0LVJhbmdlcyIpKSAm
JiBoZWFkZXIgPT09ICJieXRlcyI7Ci0gICAgICAgICAgICAgIHZhciBjaHVua1NpemUgPSAxMDI0
KjEwMjQ7IC8vIENodW5rIHNpemUgaW4gYnl0ZXMKLSAgICAgICAgICAgICAgaWYgKCFoYXNCeXRl
U2VydmluZykgY2h1bmtTaXplID0gZGF0YWxlbmd0aDsKLSAgICAgICAgICAgICAgLy8gRnVuY3Rp
b24gdG8gZ2V0IGEgcmFuZ2UgZnJvbSB0aGUgcmVtb3RlIFVSTC4KLSAgICAgICAgICAgICAgdmFy
IGRvWEhSID0gKGZ1bmN0aW9uKGZyb20sIHRvKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGZyb20g
PiB0bykgdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHJhbmdlICgiICsgZnJvbSArICIsICIgKyB0
byArICIpIG9yIG5vIGJ5dGVzIHJlcXVlc3RlZCEiKTsKLSAgICAgICAgICAgICAgICBpZiAodG8g
PiBkYXRhbGVuZ3RoLTEpIHRocm93IG5ldyBFcnJvcigib25seSAiICsgZGF0YWxlbmd0aCArICIg
Ynl0ZXMgYXZhaWxhYmxlISBwcm9ncmFtbWVyIGVycm9yISIpOwotICAgICAgICAgICAgICAgIC8v
IFRPRE86IFVzZSBtb3pSZXNwb25zZUFycmF5QnVmZmVyLCByZXNwb25zZVN0cmVhbSwgZXRjLiBp
ZiBhdmFpbGFibGUuCi0gICAgICAgICAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVz
dCgpOwotICAgICAgICAgICAgICAgIHhoci5vcGVuKCdHRVQnLCB1cmwsIGZhbHNlKTsKLSAgICAg
ICAgICAgICAgICBpZiAoZGF0YWxlbmd0aCAhPT0gY2h1bmtTaXplKSB4aHIuc2V0UmVxdWVzdEhl
YWRlcigiUmFuZ2UiLCAiYnl0ZXM9IiArIGZyb20gKyAiLSIgKyB0byk7Ci0gICAgICAgICAgICAg
ICAgLy8gU29tZSBoaW50cyB0byB0aGUgYnJvd3NlciB0aGF0IHdlIHdhbnQgYmluYXJ5IGRhdGEu
Ci0gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBVaW50OEFycmF5ICE9ICd1bmRlZmluZWQnKSB4
aHIucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJzsKLSAgICAgICAgICAgICAgICBpZiAoeGhy
Lm92ZXJyaWRlTWltZVR5cGUpIHsKLSAgICAgICAgICAgICAgICAgIHhoci5vdmVycmlkZU1pbWVU
eXBlKCd0ZXh0L3BsYWluOyBjaGFyc2V0PXgtdXNlci1kZWZpbmVkJyk7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIHhoci5zZW5kKG51bGwpOwotICAgICAgICAgICAgICAgIGlm
ICghKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDAgfHwgeGhyLnN0YXR1cyA9
PT0gMzA0KSkgdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBsb2FkICIgKyB1cmwgKyAiLiBTdGF0
dXM6ICIgKyB4aHIuc3RhdHVzKTsKLSAgICAgICAgICAgICAgICBpZiAoeGhyLnJlc3BvbnNlICE9
PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheSh4
aHIucmVzcG9uc2UgfHwgW10pOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgICByZXR1cm4gaW50QXJyYXlGcm9tU3RyaW5nKHhoci5yZXNwb25zZVRleHQgfHwgJycs
IHRydWUpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICAgIHZhciBsYXp5QXJyYXkgPSB0aGlzOwotICAgICAgICAgICAgICBsYXp5QXJyYXkuc2V0RGF0
YUdldHRlcihmdW5jdGlvbihjaHVua051bSkgewotICAgICAgICAgICAgICAgIHZhciBzdGFydCA9
IGNodW5rTnVtICogY2h1bmtTaXplOwotICAgICAgICAgICAgICAgIHZhciBlbmQgPSAoY2h1bmtO
dW0rMSkgKiBjaHVua1NpemUgLSAxOyAvLyBpbmNsdWRpbmcgdGhpcyBieXRlCi0gICAgICAgICAg
ICAgICAgZW5kID0gTWF0aC5taW4oZW5kLCBkYXRhbGVuZ3RoLTEpOyAvLyBpZiBkYXRhbGVuZ3Ro
LTEgaXMgc2VsZWN0ZWQsIHRoaXMgaXMgdGhlIGxhc3QgYmxvY2sKLSAgICAgICAgICAgICAgICBp
ZiAodHlwZW9mKGxhenlBcnJheS5jaHVua3NbY2h1bmtOdW1dKSA9PT0gInVuZGVmaW5lZCIpIHsK
LSAgICAgICAgICAgICAgICAgIGxhenlBcnJheS5jaHVua3NbY2h1bmtOdW1dID0gZG9YSFIoc3Rh
cnQsIGVuZCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yo
bGF6eUFycmF5LmNodW5rc1tjaHVua051bV0pID09PSAidW5kZWZpbmVkIikgdGhyb3cgbmV3IEVy
cm9yKCJkb1hIUiBmYWlsZWQhIik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGxhenlBcnJheS5j
aHVua3NbY2h1bmtOdW1dOwotICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgdGhpcy5f
bGVuZ3RoID0gZGF0YWxlbmd0aDsKLSAgICAgICAgICAgICAgdGhpcy5fY2h1bmtTaXplID0gY2h1
bmtTaXplOwotICAgICAgICAgICAgICB0aGlzLmxlbmd0aEtub3duID0gdHJ1ZTsKLSAgICAgICAg
ICB9Ci0gICAgICAgICAgdmFyIGxhenlBcnJheSA9IG5ldyBMYXp5VWludDhBcnJheSgpOwotICAg
ICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsYXp5QXJyYXksICJsZW5ndGgiLCB7Ci0gICAg
ICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICBpZighdGhpcy5s
ZW5ndGhLbm93bikgewotICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FjaGVMZW5ndGgoKTsK
LSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sZW5n
dGg7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICB9KTsKLSAgICAgICAgICBPYmplY3QuZGVm
aW5lUHJvcGVydHkobGF6eUFycmF5LCAiY2h1bmtTaXplIiwgewotICAgICAgICAgICAgICBnZXQ6
IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgaWYoIXRoaXMubGVuZ3RoS25vd24pIHsK
LSAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhY2hlTGVuZ3RoKCk7Ci0gICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fY2h1bmtTaXplOwotICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgfSk7Ci0gICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSB7IGlz
RGV2aWNlOiBmYWxzZSwgY29udGVudHM6IGxhenlBcnJheSB9OwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgIHZhciBwcm9wZXJ0aWVzID0geyBpc0RldmljZTogZmFsc2UsIHVybDogdXJsIH07
Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIG5vZGUgPSBGUy5jcmVhdGVGaWxlKHBhcmVudCwgbmFt
ZSwgcHJvcGVydGllcywgY2FuUmVhZCwgY2FuV3JpdGUpOwotICAgICAgICAvLyBUaGlzIGlzIGEg
dG90YWwgaGFjaywgYnV0IEkgd2FudCB0byBnZXQgdGhpcyBsYXp5IGZpbGUgY29kZSBvdXQgb2Yg
dGhlCi0gICAgICAgIC8vIGNvcmUgb2YgTUVNRlMuIElmIHdlIHdhbnQgdG8ga2VlcCB0aGlzIGxh
enkgZmlsZSBjb25jZXB0IEkgZmVlbCBpdCBzaG91bGQKLSAgICAgICAgLy8gYmUgaXRzIG93biB0
aGluIExBWllGUyBwcm94eWluZyBjYWxscyB0byBNRU1GUy4KLSAgICAgICAgaWYgKHByb3BlcnRp
ZXMuY29udGVudHMpIHsKLSAgICAgICAgICBub2RlLmNvbnRlbnRzID0gcHJvcGVydGllcy5jb250
ZW50czsKLSAgICAgICAgfSBlbHNlIGlmIChwcm9wZXJ0aWVzLnVybCkgewotICAgICAgICAgIG5v
ZGUuY29udGVudHMgPSBudWxsOwotICAgICAgICAgIG5vZGUudXJsID0gcHJvcGVydGllcy51cmw7
Ci0gICAgICAgIH0KLSAgICAgICAgLy8gb3ZlcnJpZGUgZWFjaCBzdHJlYW0gb3Agd2l0aCBvbmUg
dGhhdCB0cmllcyB0byBmb3JjZSBsb2FkIHRoZSBsYXp5IGZpbGUgZmlyc3QKLSAgICAgICAgdmFy
IHN0cmVhbV9vcHMgPSB7fTsKLSAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhub2RlLnN0
cmVhbV9vcHMpOwotICAgICAgICBrZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7Ci0gICAgICAg
ICAgdmFyIGZuID0gbm9kZS5zdHJlYW1fb3BzW2tleV07Ci0gICAgICAgICAgc3RyZWFtX29wc1tr
ZXldID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBpZiAoIUZTLmZvcmNlTG9hZEZpbGUobm9k
ZSkpIHsKLSAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMu
RUlPKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBmbi5hcHBseShudWxsLCBh
cmd1bWVudHMpOwotICAgICAgICAgIH07Ci0gICAgICAgIH0pOwotICAgICAgICAvLyB1c2UgYSBj
dXN0b20gcmVhZCBmdW5jdGlvbgotICAgICAgICBzdHJlYW1fb3BzLnJlYWQgPSBmdW5jdGlvbihz
dHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKSB7Ci0gICAgICAgICAgaWYg
KCFGUy5mb3JjZUxvYWRGaWxlKG5vZGUpKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJy
bm9FcnJvcihFUlJOT19DT0RFUy5FSU8pOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgY29u
dGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAgICAgICAgICB2YXIgc2l6ZSA9IE1hdGgu
bWluKGNvbnRlbnRzLmxlbmd0aCAtIHBvc2l0aW9uLCBsZW5ndGgpOwotICAgICAgICAgIGlmIChj
b250ZW50cy5zbGljZSkgeyAvLyBub3JtYWwgYXJyYXkKLSAgICAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyBpXSA9
IGNvbnRlbnRzW3Bvc2l0aW9uICsgaV07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7IC8vIExhenlV
aW50OEFycmF5IGZyb20gc3luYyBiaW5hcnkgWEhSCi0gICAgICAgICAgICAgIGJ1ZmZlcltvZmZz
ZXQgKyBpXSA9IGNvbnRlbnRzLmdldChwb3NpdGlvbiArIGkpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gc2l6ZTsKLSAgICAgICAgfTsKLSAgICAgICAgbm9k
ZS5zdHJlYW1fb3BzID0gc3RyZWFtX29wczsKLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICB9
LGNyZWF0ZVByZWxvYWRlZEZpbGU6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwgdXJsLCBjYW5SZWFk
LCBjYW5Xcml0ZSwgb25sb2FkLCBvbmVycm9yLCBkb250Q3JlYXRlRmlsZSkgewotICAgICAgICBC
cm93c2VyLmluaXQoKTsKLSAgICAgICAgLy8gVE9ETyB3ZSBzaG91bGQgYWxsb3cgcGVvcGxlIHRv
IGp1c3QgcGFzcyBpbiBhIGNvbXBsZXRlIGZpbGVuYW1lIGluc3RlYWQKLSAgICAgICAgLy8gb2Yg
cGFyZW50IGFuZCBuYW1lIGJlaW5nIHRoYXQgd2UganVzdCBqb2luIHRoZW0gYW55d2F5cwotICAg
ICAgICB2YXIgZnVsbG5hbWUgPSBQQVRILnJlc29sdmUoUEFUSC5qb2luKHBhcmVudCwgbmFtZSkp
OwotICAgICAgICBmdW5jdGlvbiBwcm9jZXNzRGF0YShieXRlQXJyYXkpIHsKLSAgICAgICAgICBm
dW5jdGlvbiBmaW5pc2goYnl0ZUFycmF5KSB7Ci0gICAgICAgICAgICBpZiAoIWRvbnRDcmVhdGVG
aWxlKSB7Ci0gICAgICAgICAgICAgIEZTLmNyZWF0ZURhdGFGaWxlKHBhcmVudCwgbmFtZSwgYnl0
ZUFycmF5LCBjYW5SZWFkLCBjYW5Xcml0ZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBp
ZiAob25sb2FkKSBvbmxvYWQoKTsKLSAgICAgICAgICAgIHJlbW92ZVJ1bkRlcGVuZGVuY3koJ2Nw
ICcgKyBmdWxsbmFtZSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBoYW5kbGVkID0gZmFs
c2U7Ci0gICAgICAgICAgTW9kdWxlWydwcmVsb2FkUGx1Z2lucyddLmZvckVhY2goZnVuY3Rpb24o
cGx1Z2luKSB7Ci0gICAgICAgICAgICBpZiAoaGFuZGxlZCkgcmV0dXJuOwotICAgICAgICAgICAg
aWYgKHBsdWdpblsnY2FuSGFuZGxlJ10oZnVsbG5hbWUpKSB7Ci0gICAgICAgICAgICAgIHBsdWdp
blsnaGFuZGxlJ10oYnl0ZUFycmF5LCBmdWxsbmFtZSwgZmluaXNoLCBmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgICAgICBpZiAob25lcnJvcikgb25lcnJvcigpOwotICAgICAgICAgICAgICAgIHJl
bW92ZVJ1bkRlcGVuZGVuY3koJ2NwICcgKyBmdWxsbmFtZSk7Ci0gICAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgICBoYW5kbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9
KTsKLSAgICAgICAgICBpZiAoIWhhbmRsZWQpIGZpbmlzaChieXRlQXJyYXkpOwotICAgICAgICB9
Ci0gICAgICAgIGFkZFJ1bkRlcGVuZGVuY3koJ2NwICcgKyBmdWxsbmFtZSk7Ci0gICAgICAgIGlm
ICh0eXBlb2YgdXJsID09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgQnJvd3Nlci5hc3luY0xvYWQo
dXJsLCBmdW5jdGlvbihieXRlQXJyYXkpIHsKLSAgICAgICAgICAgIHByb2Nlc3NEYXRhKGJ5dGVB
cnJheSk7Ci0gICAgICAgICAgfSwgb25lcnJvcik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgcHJvY2Vzc0RhdGEodXJsKTsKLSAgICAgICAgfQotICAgICAgfSxjcmVhdGVEZWZhdWx0RGly
ZWN0b3JpZXM6ZnVuY3Rpb24gKCkgewotICAgICAgICBGUy5ta2RpcignL3RtcCcsIDA3NzcpOwot
ICAgICAgfSxjcmVhdGVEZWZhdWx0RGV2aWNlczpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIC8vIGNy
ZWF0ZSAvZGV2Ci0gICAgICAgIEZTLm1rZGlyKCcvZGV2JywgMDc3Nyk7Ci0gICAgICAgIC8vIHNl
dHVwIC9kZXYvbnVsbAotICAgICAgICBGUy5yZWdpc3RlckRldmljZShGUy5tYWtlZGV2KDEsIDMp
LCB7Ci0gICAgICAgICAgcmVhZDogZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9LAotICAgICAgICAg
IHdyaXRlOiBmdW5jdGlvbigpIHsgcmV0dXJuIDA7IH0KLSAgICAgICAgfSk7Ci0gICAgICAgIEZT
Lm1rZGV2KCcvZGV2L251bGwnLCAwNjY2LCBGUy5tYWtlZGV2KDEsIDMpKTsKLSAgICAgICAgLy8g
c2V0dXAgL2Rldi90dHkgYW5kIC9kZXYvdHR5MQotICAgICAgICAvLyBzdGRlcnIgbmVlZHMgdG8g
cHJpbnQgb3V0cHV0IHVzaW5nIE1vZHVsZVsncHJpbnRFcnInXQotICAgICAgICAvLyBzbyB3ZSBy
ZWdpc3RlciBhIHNlY29uZCB0dHkganVzdCBmb3IgaXQuCi0gICAgICAgIFRUWS5yZWdpc3RlcihG
Uy5tYWtlZGV2KDUsIDApLCBUVFkuZGVmYXVsdF90dHlfb3BzKTsKLSAgICAgICAgVFRZLnJlZ2lz
dGVyKEZTLm1ha2VkZXYoNiwgMCksIFRUWS5kZWZhdWx0X3R0eTFfb3BzKTsKLSAgICAgICAgRlMu
bWtkZXYoJy9kZXYvdHR5JywgMDY2NiwgRlMubWFrZWRldig1LCAwKSk7Ci0gICAgICAgIEZTLm1r
ZGV2KCcvZGV2L3R0eTEnLCAwNjY2LCBGUy5tYWtlZGV2KDYsIDApKTsKLSAgICAgICAgLy8gd2Un
cmUgbm90IGdvaW5nIHRvIGVtdWxhdGUgdGhlIGFjdHVhbCBzaG0gZGV2aWNlLAotICAgICAgICAv
LyBqdXN0IGNyZWF0ZSB0aGUgdG1wIGRpcnMgdGhhdCByZXNpZGUgaW4gaXQgY29tbW9ubHkKLSAg
ICAgICAgRlMubWtkaXIoJy9kZXYvc2htJywgMDc3Nyk7Ci0gICAgICAgIEZTLm1rZGlyKCcvZGV2
L3NobS90bXAnLCAwNzc3KTsKLSAgICAgIH0sY3JlYXRlU3RhbmRhcmRTdHJlYW1zOmZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgLy8gVE9ETyBkZXByZWNhdGUgdGhlIG9sZCBmdW5jdGlvbmFsaXR5IG9m
IGEgc2luZ2xlCi0gICAgICAgIC8vIGlucHV0IC8gb3V0cHV0IGNhbGxiYWNrIGFuZCB0aGF0IHV0
aWxpemVzIEZTLmNyZWF0ZURldmljZQotICAgICAgICAvLyBhbmQgaW5zdGVhZCByZXF1aXJlIGEg
dW5pcXVlIHNldCBvZiBzdHJlYW0gb3BzCi0gICAgICAgIC8vIGJ5IGRlZmF1bHQsIHdlIHN5bWxp
bmsgdGhlIHN0YW5kYXJkIHN0cmVhbXMgdG8gdGhlCi0gICAgICAgIC8vIGRlZmF1bHQgdHR5IGRl
dmljZXMuIGhvd2V2ZXIsIGlmIHRoZSBzdGFuZGFyZCBzdHJlYW1zCi0gICAgICAgIC8vIGhhdmUg
YmVlbiBvdmVyd3JpdHRlbiB3ZSBjcmVhdGUgYSB1bmlxdWUgZGV2aWNlIGZvcgotICAgICAgICAv
LyB0aGVtIGluc3RlYWQuCi0gICAgICAgIGlmIChNb2R1bGVbJ3N0ZGluJ10pIHsKLSAgICAgICAg
ICBGUy5jcmVhdGVEZXZpY2UoJy9kZXYnLCAnc3RkaW4nLCBNb2R1bGVbJ3N0ZGluJ10pOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgIEZTLnN5bWxpbmsoJy9kZXYvdHR5JywgJy9kZXYvc3Rk
aW4nKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoTW9kdWxlWydzdGRvdXQnXSkgewotICAgICAg
ICAgIEZTLmNyZWF0ZURldmljZSgnL2RldicsICdzdGRvdXQnLCBudWxsLCBNb2R1bGVbJ3N0ZG91
dCddKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBGUy5zeW1saW5rKCcvZGV2L3R0eScs
ICcvZGV2L3N0ZG91dCcpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChNb2R1bGVbJ3N0ZGVycidd
KSB7Ci0gICAgICAgICAgRlMuY3JlYXRlRGV2aWNlKCcvZGV2JywgJ3N0ZGVycicsIG51bGwsIE1v
ZHVsZVsnc3RkZXJyJ10pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIEZTLnN5bWxpbmso
Jy9kZXYvdHR5MScsICcvZGV2L3N0ZGVycicpOwotICAgICAgICB9Ci0gICAgICAgIC8vIG9wZW4g
ZGVmYXVsdCBzdHJlYW1zIGZvciB0aGUgc3RkaW4sIHN0ZG91dCBhbmQgc3RkZXJyIGRldmljZXMK
LSAgICAgICAgdmFyIHN0ZGluID0gRlMub3BlbignL2Rldi9zdGRpbicsICdyJyk7Ci0gICAgICAg
IEhFQVAzMlsoKF9zdGRpbik+PjIpXT1zdGRpbi5mZDsKLSAgICAgICAgYXNzZXJ0KHN0ZGluLmZk
ID09PSAxLCAnaW52YWxpZCBoYW5kbGUgZm9yIHN0ZGluICgnICsgc3RkaW4uZmQgKyAnKScpOwot
ICAgICAgICB2YXIgc3Rkb3V0ID0gRlMub3BlbignL2Rldi9zdGRvdXQnLCAndycpOwotICAgICAg
ICBIRUFQMzJbKChfc3Rkb3V0KT4+MildPXN0ZG91dC5mZDsKLSAgICAgICAgYXNzZXJ0KHN0ZG91
dC5mZCA9PT0gMiwgJ2ludmFsaWQgaGFuZGxlIGZvciBzdGRvdXQgKCcgKyBzdGRvdXQuZmQgKyAn
KScpOwotICAgICAgICB2YXIgc3RkZXJyID0gRlMub3BlbignL2Rldi9zdGRlcnInLCAndycpOwot
ICAgICAgICBIRUFQMzJbKChfc3RkZXJyKT4+MildPXN0ZGVyci5mZDsKLSAgICAgICAgYXNzZXJ0
KHN0ZGVyci5mZCA9PT0gMywgJ2ludmFsaWQgaGFuZGxlIGZvciBzdGRlcnIgKCcgKyBzdGRlcnIu
ZmQgKyAnKScpOwotICAgICAgfSxzdGF0aWNJbml0OmZ1bmN0aW9uICgpIHsKLSAgICAgICAgRlMu
bmFtZV90YWJsZSA9IG5ldyBBcnJheSg0MDk2KTsKLSAgICAgICAgRlMucm9vdCA9IEZTLmNyZWF0
ZU5vZGUobnVsbCwgJy8nLCAwMDQwMDAwIHwgMDc3NywgMCk7Ci0gICAgICAgIEZTLm1vdW50KE1F
TUZTLCB7fSwgJy8nKTsKLSAgICAgICAgRlMuY3JlYXRlRGVmYXVsdERpcmVjdG9yaWVzKCk7Ci0g
ICAgICAgIEZTLmNyZWF0ZURlZmF1bHREZXZpY2VzKCk7Ci0gICAgICB9LGluaXQ6ZnVuY3Rpb24g
KGlucHV0LCBvdXRwdXQsIGVycm9yKSB7Ci0gICAgICAgIGFzc2VydCghRlMuaW5pdC5pbml0aWFs
aXplZCwgJ0ZTLmluaXQgd2FzIHByZXZpb3VzbHkgY2FsbGVkLiBJZiB5b3Ugd2FudCB0byBpbml0
aWFsaXplIGxhdGVyIHdpdGggY3VzdG9tIHBhcmFtZXRlcnMsIHJlbW92ZSBhbnkgZWFybGllciBj
YWxscyAobm90ZSB0aGF0IG9uZSBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHRoZSBnZW5lcmF0
ZWQgY29kZSknKTsKLSAgICAgICAgRlMuaW5pdC5pbml0aWFsaXplZCA9IHRydWU7Ci0gICAgICAg
IC8vIEFsbG93IE1vZHVsZS5zdGRpbiBldGMuIHRvIHByb3ZpZGUgZGVmYXVsdHMsIGlmIG5vbmUg
ZXhwbGljaXRseSBwYXNzZWQgdG8gdXMgaGVyZQotICAgICAgICBNb2R1bGVbJ3N0ZGluJ10gPSBp
bnB1dCB8fCBNb2R1bGVbJ3N0ZGluJ107Ci0gICAgICAgIE1vZHVsZVsnc3Rkb3V0J10gPSBvdXRw
dXQgfHwgTW9kdWxlWydzdGRvdXQnXTsKLSAgICAgICAgTW9kdWxlWydzdGRlcnInXSA9IGVycm9y
IHx8IE1vZHVsZVsnc3RkZXJyJ107Ci0gICAgICAgIEZTLmNyZWF0ZVN0YW5kYXJkU3RyZWFtcygp
OwotICAgICAgfSxxdWl0OmZ1bmN0aW9uICgpIHsKLSAgICAgICAgRlMuaW5pdC5pbml0aWFsaXpl
ZCA9IGZhbHNlOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IEZTLnN0cmVhbXMubGVuZ3Ro
OyBpKyspIHsKLSAgICAgICAgICB2YXIgc3RyZWFtID0gRlMuc3RyZWFtc1tpXTsKLSAgICAgICAg
ICBpZiAoIXN0cmVhbSkgewotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgfQotICAg
ICAgICAgIEZTLmNsb3NlKHN0cmVhbSk7Ci0gICAgICAgIH0KLSAgICAgIH0sbW91bnQ6ZnVuY3Rp
b24gKHR5cGUsIG9wdHMsIG1vdW50cG9pbnQpIHsKLSAgICAgICAgdmFyIG1vdW50ID0gewotICAg
ICAgICAgIHR5cGU6IHR5cGUsCi0gICAgICAgICAgb3B0czogb3B0cywKLSAgICAgICAgICBtb3Vu
dHBvaW50OiBtb3VudHBvaW50LAotICAgICAgICAgIHJvb3Q6IG51bGwKLSAgICAgICAgfTsKLSAg
ICAgICAgdmFyIGxvb2t1cDsKLSAgICAgICAgaWYgKG1vdW50cG9pbnQpIHsKLSAgICAgICAgICBs
b29rdXAgPSBGUy5sb29rdXBQYXRoKG1vdW50cG9pbnQsIHsgZm9sbG93OiBmYWxzZSB9KTsKLSAg
ICAgICAgfQotICAgICAgICAvLyBjcmVhdGUgYSByb290IG5vZGUgZm9yIHRoZSBmcwotICAgICAg
ICB2YXIgcm9vdCA9IHR5cGUubW91bnQobW91bnQpOwotICAgICAgICByb290Lm1vdW50ID0gbW91
bnQ7Ci0gICAgICAgIG1vdW50LnJvb3QgPSByb290OwotICAgICAgICAvLyBhc3NpZ24gdGhlIG1v
dW50IGluZm8gdG8gdGhlIG1vdW50cG9pbnQncyBub2RlCi0gICAgICAgIGlmIChsb29rdXApIHsK
LSAgICAgICAgICBsb29rdXAubm9kZS5tb3VudCA9IG1vdW50OwotICAgICAgICAgIGxvb2t1cC5u
b2RlLm1vdW50ZWQgPSB0cnVlOwotICAgICAgICAgIC8vIGNvbXBhdGliaWxpdHkgdXBkYXRlIEZT
LnJvb3QgaWYgd2UgbW91bnQgdG8gLwotICAgICAgICAgIGlmIChtb3VudHBvaW50ID09PSAnLycp
IHsKLSAgICAgICAgICAgIEZTLnJvb3QgPSBtb3VudC5yb290OwotICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4gcm9vdDsKLSAgICAgIH0sbG9va3VwOmZ1bmN0aW9uIChwYXJl
bnQsIG5hbWUpIHsKLSAgICAgICAgcmV0dXJuIHBhcmVudC5ub2RlX29wcy5sb29rdXAocGFyZW50
LCBuYW1lKTsKLSAgICAgIH0sbWtub2Q6ZnVuY3Rpb24gKHBhdGgsIG1vZGUsIGRldikgewotICAg
ICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IHBhcmVudDogdHJ1ZSB9KTsK
LSAgICAgICAgdmFyIHBhcmVudCA9IGxvb2t1cC5ub2RlOwotICAgICAgICB2YXIgbmFtZSA9IFBB
VEguYmFzZW5hbWUocGF0aCk7Ci0gICAgICAgIHZhciBlcnIgPSBGUy5tYXlDcmVhdGUocGFyZW50
LCBuYW1lKTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFwYXJlbnQubm9kZV9vcHMubWtu
b2QpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVS
TSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHBhcmVudC5ub2RlX29wcy5ta25vZChwYXJl
bnQsIG5hbWUsIG1vZGUsIGRldik7Ci0gICAgICB9LGNyZWF0ZTpmdW5jdGlvbiAocGF0aCwgbW9k
ZSkgewotICAgICAgICBtb2RlICY9IDQwOTU7Ci0gICAgICAgIG1vZGUgfD0gMDEwMDAwMDsKLSAg
ICAgICAgcmV0dXJuIEZTLm1rbm9kKHBhdGgsIG1vZGUsIDApOwotICAgICAgfSxta2RpcjpmdW5j
dGlvbiAocGF0aCwgbW9kZSkgewotICAgICAgICBtb2RlICY9IDUxMSB8IDAwMDEwMDA7Ci0gICAg
ICAgIG1vZGUgfD0gMDA0MDAwMDsKLSAgICAgICAgcmV0dXJuIEZTLm1rbm9kKHBhdGgsIG1vZGUs
IDApOwotICAgICAgfSxta2RldjpmdW5jdGlvbiAocGF0aCwgbW9kZSwgZGV2KSB7Ci0gICAgICAg
IG1vZGUgfD0gMDAyMDAwMDsKLSAgICAgICAgcmV0dXJuIEZTLm1rbm9kKHBhdGgsIG1vZGUsIGRl
dik7Ci0gICAgICB9LHN5bWxpbms6ZnVuY3Rpb24gKG9sZHBhdGgsIG5ld3BhdGgpIHsKLSAgICAg
ICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgobmV3cGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7
Ci0gICAgICAgIHZhciBwYXJlbnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgdmFyIG5ld25hbWUg
PSBQQVRILmJhc2VuYW1lKG5ld3BhdGgpOwotICAgICAgICB2YXIgZXJyID0gRlMubWF5Q3JlYXRl
KHBhcmVudCwgbmV3bmFtZSk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICB0aHJvdyBu
ZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghcGFyZW50Lm5v
ZGVfb3BzLnN5bWxpbmspIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJO
T19DT0RFUy5FUEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHBhcmVudC5ub2RlX29w
cy5zeW1saW5rKHBhcmVudCwgbmV3bmFtZSwgb2xkcGF0aCk7Ci0gICAgICB9LHJlbmFtZTpmdW5j
dGlvbiAob2xkX3BhdGgsIG5ld19wYXRoKSB7Ci0gICAgICAgIHZhciBvbGRfZGlybmFtZSA9IFBB
VEguZGlybmFtZShvbGRfcGF0aCk7Ci0gICAgICAgIHZhciBuZXdfZGlybmFtZSA9IFBBVEguZGly
bmFtZShuZXdfcGF0aCk7Ci0gICAgICAgIHZhciBvbGRfbmFtZSA9IFBBVEguYmFzZW5hbWUob2xk
X3BhdGgpOwotICAgICAgICB2YXIgbmV3X25hbWUgPSBQQVRILmJhc2VuYW1lKG5ld19wYXRoKTsK
LSAgICAgICAgLy8gcGFyZW50cyBtdXN0IGV4aXN0Ci0gICAgICAgIHZhciBsb29rdXAsIG9sZF9k
aXIsIG5ld19kaXI7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgbG9va3VwID0gRlMubG9va3Vw
UGF0aChvbGRfcGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7Ci0gICAgICAgICAgb2xkX2RpciA9IGxv
b2t1cC5ub2RlOwotICAgICAgICAgIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgobmV3X3BhdGgsIHsg
cGFyZW50OiB0cnVlIH0pOwotICAgICAgICAgIG5ld19kaXIgPSBsb29rdXAubm9kZTsKLSAgICAg
ICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5P
X0NPREVTLkVCVVNZKTsKLSAgICAgICAgfQotICAgICAgICAvLyBuZWVkIHRvIGJlIHBhcnQgb2Yg
dGhlIHNhbWUgbW91bnQKLSAgICAgICAgaWYgKG9sZF9kaXIubW91bnQgIT09IG5ld19kaXIubW91
bnQpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FWERF
Vik7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gc291cmNlIG11c3QgZXhpc3QKLSAgICAgICAgdmFy
IG9sZF9ub2RlID0gRlMubG9va3VwTm9kZShvbGRfZGlyLCBvbGRfbmFtZSk7Ci0gICAgICAgIC8v
IG9sZCBwYXRoIHNob3VsZCBub3QgYmUgYW4gYW5jZXN0b3Igb2YgdGhlIG5ldyBwYXRoCi0gICAg
ICAgIHZhciByZWxhdGl2ZSA9IFBBVEgucmVsYXRpdmUob2xkX3BhdGgsIG5ld19kaXJuYW1lKTsK
LSAgICAgICAgaWYgKHJlbGF0aXZlLmNoYXJBdCgwKSAhPT0gJy4nKSB7Ci0gICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAg
ICAgICAvLyBuZXcgcGF0aCBzaG91bGQgbm90IGJlIGFuIGFuY2VzdG9yIG9mIHRoZSBvbGQgcGF0
aAotICAgICAgICByZWxhdGl2ZSA9IFBBVEgucmVsYXRpdmUobmV3X3BhdGgsIG9sZF9kaXJuYW1l
KTsKLSAgICAgICAgaWYgKHJlbGF0aXZlLmNoYXJBdCgwKSAhPT0gJy4nKSB7Ci0gICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PVEVNUFRZKTsKLSAgICAgICAg
fQotICAgICAgICAvLyBzZWUgaWYgdGhlIG5ldyBwYXRoIGFscmVhZHkgZXhpc3RzCi0gICAgICAg
IHZhciBuZXdfbm9kZTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBuZXdfbm9kZSA9IEZTLmxv
b2t1cE5vZGUobmV3X2RpciwgbmV3X25hbWUpOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAg
ICAgICAgLy8gbm90IGZhdGFsCi0gICAgICAgIH0KLSAgICAgICAgLy8gZWFybHkgb3V0IGlmIG5v
dGhpbmcgbmVlZHMgdG8gY2hhbmdlCi0gICAgICAgIGlmIChvbGRfbm9kZSA9PT0gbmV3X25vZGUp
IHsKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgLy8gd2UnbGwgbmVlZCB0
byBkZWxldGUgdGhlIG9sZCBlbnRyeQotICAgICAgICB2YXIgaXNkaXIgPSBGUy5pc0RpcihvbGRf
bm9kZS5tb2RlKTsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heURlbGV0ZShvbGRfZGlyLCBvbGRf
bmFtZSwgaXNkaXIpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZT
LkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAgICAgICAvLyBuZWVkIGRlbGV0ZSBwZXJt
aXNzaW9ucyBpZiB3ZSdsbCBiZSBvdmVyd3JpdGluZy4KLSAgICAgICAgLy8gbmVlZCBjcmVhdGUg
cGVybWlzc2lvbnMgaWYgbmV3IGRvZXNuJ3QgYWxyZWFkeSBleGlzdC4KLSAgICAgICAgZXJyID0g
bmV3X25vZGUgPwotICAgICAgICAgIEZTLm1heURlbGV0ZShuZXdfZGlyLCBuZXdfbmFtZSwgaXNk
aXIpIDoKLSAgICAgICAgICBGUy5tYXlDcmVhdGUobmV3X2RpciwgbmV3X25hbWUpOwotICAgICAg
ICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoIW9sZF9kaXIubm9kZV9vcHMucmVuYW1lKSB7Ci0gICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9
Ci0gICAgICAgIGlmIChGUy5pc01vdW50cG9pbnQob2xkX25vZGUpIHx8IChuZXdfbm9kZSAmJiBG
Uy5pc01vdW50cG9pbnQobmV3X25vZGUpKSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKEVSUk5PX0NPREVTLkVCVVNZKTsKLSAgICAgICAgfQotICAgICAgICAvLyBpZiB3ZSBh
cmUgZ29pbmcgdG8gY2hhbmdlIHRoZSBwYXJlbnQsIGNoZWNrIHdyaXRlIHBlcm1pc3Npb25zCi0g
ICAgICAgIGlmIChuZXdfZGlyICE9PSBvbGRfZGlyKSB7Ci0gICAgICAgICAgZXJyID0gRlMubm9k
ZVBlcm1pc3Npb25zKG9sZF9kaXIsICd3Jyk7Ci0gICAgICAgICAgaWYgKGVycikgewotICAgICAg
ICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICAgICAgLy8gcmVtb3ZlIHRoZSBub2RlIGZyb20gdGhlIGxvb2t1cCBoYXNoCi0gICAg
ICAgIEZTLmhhc2hSZW1vdmVOb2RlKG9sZF9ub2RlKTsKLSAgICAgICAgLy8gZG8gdGhlIHVuZGVy
bHlpbmcgZnMgcmVuYW1lCi0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgb2xkX2Rpci5ub2RlX29w
cy5yZW5hbWUob2xkX25vZGUsIG5ld19kaXIsIG5ld19uYW1lKTsKLSAgICAgICAgfSBjYXRjaCAo
ZSkgewotICAgICAgICAgIHRocm93IGU7Ci0gICAgICAgIH0gZmluYWxseSB7Ci0gICAgICAgICAg
Ly8gYWRkIHRoZSBub2RlIGJhY2sgdG8gdGhlIGhhc2ggKGluIGNhc2Ugbm9kZV9vcHMucmVuYW1l
Ci0gICAgICAgICAgLy8gY2hhbmdlZCBpdHMgbmFtZSkKLSAgICAgICAgICBGUy5oYXNoQWRkTm9k
ZShvbGRfbm9kZSk7Ci0gICAgICAgIH0KLSAgICAgIH0scm1kaXI6ZnVuY3Rpb24gKHBhdGgpIHsK
LSAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBwYXJlbnQ6IHRydWUg
fSk7Ci0gICAgICAgIHZhciBwYXJlbnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgdmFyIG5hbWUg
PSBQQVRILmJhc2VuYW1lKHBhdGgpOwotICAgICAgICB2YXIgbm9kZSA9IEZTLmxvb2t1cE5vZGUo
cGFyZW50LCBuYW1lKTsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heURlbGV0ZShwYXJlbnQsIG5h
bWUsIHRydWUpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXBhcmVudC5ub2RlX29wcy5y
bWRpcikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQ
RVJNKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoRlMuaXNNb3VudHBvaW50KG5vZGUpKSB7Ci0g
ICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJVU1kpOwotICAg
ICAgICB9Ci0gICAgICAgIHBhcmVudC5ub2RlX29wcy5ybWRpcihwYXJlbnQsIG5hbWUpOwotICAg
ICAgICBGUy5kZXN0cm95Tm9kZShub2RlKTsKLSAgICAgIH0scmVhZGRpcjpmdW5jdGlvbiAocGF0
aCkgewotICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzog
dHJ1ZSB9KTsKLSAgICAgICAgdmFyIG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAgICAgaWYgKCFu
b2RlLm5vZGVfb3BzLnJlYWRkaXIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJv
cihFUlJOT19DT0RFUy5FTk9URElSKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbm9kZS5u
b2RlX29wcy5yZWFkZGlyKG5vZGUpOwotICAgICAgfSx1bmxpbms6ZnVuY3Rpb24gKHBhdGgpIHsK
LSAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBwYXJlbnQ6IHRydWUg
fSk7Ci0gICAgICAgIHZhciBwYXJlbnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgdmFyIG5hbWUg
PSBQQVRILmJhc2VuYW1lKHBhdGgpOwotICAgICAgICB2YXIgbm9kZSA9IEZTLmxvb2t1cE5vZGUo
cGFyZW50LCBuYW1lKTsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heURlbGV0ZShwYXJlbnQsIG5h
bWUsIGZhbHNlKTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIC8vIFBPU0lYIHNheXMg
dW5saW5rIHNob3VsZCBzZXQgRVBFUk0sIG5vdCBFSVNESVIKLSAgICAgICAgICBpZiAoZXJyID09
PSBFUlJOT19DT0RFUy5FSVNESVIpIGVyciA9IEVSUk5PX0NPREVTLkVQRVJNOwotICAgICAgICAg
IHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFw
YXJlbnQubm9kZV9vcHMudW5saW5rKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJy
b3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChGUy5pc01vdW50
cG9pbnQobm9kZSkpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FQlVTWSk7Ci0gICAgICAgIH0KLSAgICAgICAgcGFyZW50Lm5vZGVfb3BzLnVubGluayhw
YXJlbnQsIG5hbWUpOwotICAgICAgICBGUy5kZXN0cm95Tm9kZShub2RlKTsKLSAgICAgIH0scmVh
ZGxpbms6ZnVuY3Rpb24gKHBhdGgpIHsKLSAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBh
dGgocGF0aCwgeyBmb2xsb3c6IGZhbHNlIH0pOwotICAgICAgICB2YXIgbGluayA9IGxvb2t1cC5u
b2RlOwotICAgICAgICBpZiAoIWxpbmsubm9kZV9vcHMucmVhZGxpbmspIHsKLSAgICAgICAgICB0
aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiBsaW5rLm5vZGVfb3BzLnJlYWRsaW5rKGxpbmspOwotICAgICAgfSxzdGF0
OmZ1bmN0aW9uIChwYXRoLCBkb250Rm9sbG93KSB7Ci0gICAgICAgIHZhciBsb29rdXAgPSBGUy5s
b29rdXBQYXRoKHBhdGgsIHsgZm9sbG93OiAhZG9udEZvbGxvdyB9KTsKLSAgICAgICAgdmFyIG5v
ZGUgPSBsb29rdXAubm9kZTsKLSAgICAgICAgaWYgKCFub2RlLm5vZGVfb3BzLmdldGF0dHIpIHsK
LSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5vZGUubm9kZV9vcHMuZ2V0YXR0cihub2RlKTsKLSAg
ICAgIH0sbHN0YXQ6ZnVuY3Rpb24gKHBhdGgpIHsKLSAgICAgICAgcmV0dXJuIEZTLnN0YXQocGF0
aCwgdHJ1ZSk7Ci0gICAgICB9LGNobW9kOmZ1bmN0aW9uIChwYXRoLCBtb2RlLCBkb250Rm9sbG93
KSB7Ci0gICAgICAgIHZhciBub2RlOwotICAgICAgICBpZiAodHlwZW9mIHBhdGggPT09ICdzdHJp
bmcnKSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBmb2xs
b3c6ICFkb250Rm9sbG93IH0pOwotICAgICAgICAgIG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICBub2RlID0gcGF0aDsKLSAgICAgICAgfQotICAgICAgICBp
ZiAoIW5vZGUubm9kZV9vcHMuc2V0YXR0cikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKLSAgICAgICAgfQotICAgICAgICBub2RlLm5vZGVf
b3BzLnNldGF0dHIobm9kZSwgewotICAgICAgICAgIG1vZGU6IChtb2RlICYgNDA5NSkgfCAobm9k
ZS5tb2RlICYgfjQwOTUpLAotICAgICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKQotICAgICAg
ICB9KTsKLSAgICAgIH0sbGNobW9kOmZ1bmN0aW9uIChwYXRoLCBtb2RlKSB7Ci0gICAgICAgIEZT
LmNobW9kKHBhdGgsIG1vZGUsIHRydWUpOwotICAgICAgfSxmY2htb2Q6ZnVuY3Rpb24gKGZkLCBt
b2RlKSB7Ci0gICAgICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmQpOwotICAgICAgICBp
ZiAoIXN0cmVhbSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NP
REVTLkVCQURGKTsKLSAgICAgICAgfQotICAgICAgICBGUy5jaG1vZChzdHJlYW0ubm9kZSwgbW9k
ZSk7Ci0gICAgICB9LGNob3duOmZ1bmN0aW9uIChwYXRoLCB1aWQsIGdpZCwgZG9udEZvbGxvdykg
ewotICAgICAgICB2YXIgbm9kZTsKLSAgICAgICAgaWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5n
JykgewotICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgZm9sbG93
OiAhZG9udEZvbGxvdyB9KTsKLSAgICAgICAgICBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgbm9kZSA9IHBhdGg7Ci0gICAgICAgIH0KLSAgICAgICAgaWYg
KCFub2RlLm5vZGVfb3BzLnNldGF0dHIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9F
cnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAgbm9kZS5ub2RlX29w
cy5zZXRhdHRyKG5vZGUsIHsKLSAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCkKLSAgICAg
ICAgICAvLyB3ZSBpZ25vcmUgdGhlIHVpZCAvIGdpZCBmb3Igbm93Ci0gICAgICAgIH0pOwotICAg
ICAgfSxsY2hvd246ZnVuY3Rpb24gKHBhdGgsIHVpZCwgZ2lkKSB7Ci0gICAgICAgIEZTLmNob3du
KHBhdGgsIHVpZCwgZ2lkLCB0cnVlKTsKLSAgICAgIH0sZmNob3duOmZ1bmN0aW9uIChmZCwgdWlk
LCBnaWQpIHsKLSAgICAgICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmZCk7Ci0gICAgICAg
IGlmICghc3RyZWFtKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRUJBREYpOwotICAgICAgICB9Ci0gICAgICAgIEZTLmNob3duKHN0cmVhbS5ub2RlLCB1
aWQsIGdpZCk7Ci0gICAgICB9LHRydW5jYXRlOmZ1bmN0aW9uIChwYXRoLCBsZW4pIHsKLSAgICAg
ICAgaWYgKGxlbiA8IDApIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJO
T19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0gICAgICAgIHZhciBub2RlOwotICAgICAgICBp
ZiAodHlwZW9mIHBhdGggPT09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9IEZT
Lmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6IHRydWUgfSk7Ci0gICAgICAgICAgbm9kZSA9IGxv
b2t1cC5ub2RlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIG5vZGUgPSBwYXRoOwotICAg
ICAgICB9Ci0gICAgICAgIGlmICghbm9kZS5ub2RlX29wcy5zZXRhdHRyKSB7Ci0gICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0g
ICAgICAgIGlmIChGUy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZT
LkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlTRElSKTsKLSAgICAgICAgfQotICAgICAgICBpZiAo
IUZTLmlzRmlsZShub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJy
b3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgZXJyID0gRlMu
bm9kZVBlcm1pc3Npb25zKG5vZGUsICd3Jyk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIG5vZGUu
bm9kZV9vcHMuc2V0YXR0cihub2RlLCB7Ci0gICAgICAgICAgc2l6ZTogbGVuLAotICAgICAgICAg
IHRpbWVzdGFtcDogRGF0ZS5ub3coKQotICAgICAgICB9KTsKLSAgICAgIH0sZnRydW5jYXRlOmZ1
bmN0aW9uIChmZCwgbGVuKSB7Ci0gICAgICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmQp
OwotICAgICAgICBpZiAoIXN0cmVhbSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vy
cm9yKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoKHN0cmVhbS5m
bGFncyAmIDMpID09PSAwKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJS
Tk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAgICBGUy50cnVuY2F0ZShzdHJlYW0u
bm9kZSwgbGVuKTsKLSAgICAgIH0sdXRpbWU6ZnVuY3Rpb24gKHBhdGgsIGF0aW1lLCBtdGltZSkg
ewotICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogdHJ1
ZSB9KTsKLSAgICAgICAgdmFyIG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAgICAgbm9kZS5ub2Rl
X29wcy5zZXRhdHRyKG5vZGUsIHsKLSAgICAgICAgICB0aW1lc3RhbXA6IE1hdGgubWF4KGF0aW1l
LCBtdGltZSkKLSAgICAgICAgfSk7Ci0gICAgICB9LG9wZW46ZnVuY3Rpb24gKHBhdGgsIGZsYWdz
LCBtb2RlLCBmZF9zdGFydCwgZmRfZW5kKSB7Ci0gICAgICAgIHBhdGggPSBQQVRILm5vcm1hbGl6
ZShwYXRoKTsKLSAgICAgICAgZmxhZ3MgPSB0eXBlb2YgZmxhZ3MgPT09ICdzdHJpbmcnID8gRlMu
bW9kZVN0cmluZ1RvRmxhZ3MoZmxhZ3MpIDogZmxhZ3M7Ci0gICAgICAgIG1vZGUgPSB0eXBlb2Yg
bW9kZSA9PT0gJ3VuZGVmaW5lZCcgPyAwNjY2IDogbW9kZTsKLSAgICAgICAgaWYgKChmbGFncyAm
IDUxMikpIHsKLSAgICAgICAgICBtb2RlID0gKG1vZGUgJiA0MDk1KSB8IDAxMDAwMDA7Ci0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgbW9kZSA9IDA7Ci0gICAgICAgIH0KLSAgICAgICAgdmFy
IG5vZGU7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBh
dGgocGF0aCwgewotICAgICAgICAgICAgZm9sbG93OiAhKGZsYWdzICYgMDIwMDAwMCkKLSAgICAg
ICAgICB9KTsKLSAgICAgICAgICBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAgICAgICAgcGF0aCA9
IGxvb2t1cC5wYXRoOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgLy8gaWdub3Jl
Ci0gICAgICAgIH0KLSAgICAgICAgLy8gcGVyaGFwcyB3ZSBuZWVkIHRvIGNyZWF0ZSB0aGUgbm9k
ZQotICAgICAgICBpZiAoKGZsYWdzICYgNTEyKSkgewotICAgICAgICAgIGlmIChub2RlKSB7Ci0g
ICAgICAgICAgICAvLyBpZiBPX0NSRUFUIGFuZCBPX0VYQ0wgYXJlIHNldCwgZXJyb3Igb3V0IGlm
IHRoZSBub2RlIGFscmVhZHkgZXhpc3RzCi0gICAgICAgICAgICBpZiAoKGZsYWdzICYgMjA0OCkp
IHsKLSAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUVY
SVNUKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8g
bm9kZSBkb2Vzbid0IGV4aXN0LCB0cnkgdG8gY3JlYXRlIGl0Ci0gICAgICAgICAgICBub2RlID0g
RlMubWtub2QocGF0aCwgbW9kZSwgMCk7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAg
IGlmICghbm9kZSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NP
REVTLkVOT0VOVCk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gY2FuJ3QgdHJ1bmNhdGUgYSBkZXZp
Y2UKLSAgICAgICAgaWYgKEZTLmlzQ2hyZGV2KG5vZGUubW9kZSkpIHsKLSAgICAgICAgICBmbGFn
cyAmPSB+MTAyNDsKLSAgICAgICAgfQotICAgICAgICAvLyBjaGVjayBwZXJtaXNzaW9ucwotICAg
ICAgICB2YXIgZXJyID0gRlMubWF5T3Blbihub2RlLCBmbGFncyk7Ci0gICAgICAgIGlmIChlcnIp
IHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0g
ICAgICAgIC8vIGRvIHRydW5jYXRpb24gaWYgbmVjZXNzYXJ5Ci0gICAgICAgIGlmICgoZmxhZ3Mg
JiAxMDI0KSkgewotICAgICAgICAgIEZTLnRydW5jYXRlKG5vZGUsIDApOwotICAgICAgICB9Ci0g
ICAgICAgIC8vIHJlZ2lzdGVyIHRoZSBzdHJlYW0gd2l0aCB0aGUgZmlsZXN5c3RlbQotICAgICAg
ICB2YXIgc3RyZWFtID0gRlMuY3JlYXRlU3RyZWFtKHsKLSAgICAgICAgICBwYXRoOiBwYXRoLAot
ICAgICAgICAgIG5vZGU6IG5vZGUsCi0gICAgICAgICAgZmxhZ3M6IGZsYWdzLAotICAgICAgICAg
IHNlZWthYmxlOiB0cnVlLAotICAgICAgICAgIHBvc2l0aW9uOiAwLAotICAgICAgICAgIHN0cmVh
bV9vcHM6IG5vZGUuc3RyZWFtX29wcywKLSAgICAgICAgICAvLyB1c2VkIGJ5IHRoZSBmaWxlIGZh
bWlseSBsaWJjIGNhbGxzIChmb3BlbiwgZndyaXRlLCBmZXJyb3IsIGV0Yy4pCi0gICAgICAgICAg
dW5nb3R0ZW46IFtdLAotICAgICAgICAgIGVycm9yOiBmYWxzZQotICAgICAgICB9LCBmZF9zdGFy
dCwgZmRfZW5kKTsKLSAgICAgICAgLy8gY2FsbCB0aGUgbmV3IHN0cmVhbSdzIG9wZW4gZnVuY3Rp
b24KLSAgICAgICAgaWYgKHN0cmVhbS5zdHJlYW1fb3BzLm9wZW4pIHsKLSAgICAgICAgICBzdHJl
YW0uc3RyZWFtX29wcy5vcGVuKHN0cmVhbSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHN0
cmVhbTsKLSAgICAgIH0sY2xvc2U6ZnVuY3Rpb24gKHN0cmVhbSkgewotICAgICAgICB0cnkgewot
ICAgICAgICAgIGlmIChzdHJlYW0uc3RyZWFtX29wcy5jbG9zZSkgewotICAgICAgICAgICAgc3Ry
ZWFtLnN0cmVhbV9vcHMuY2xvc2Uoc3RyZWFtKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gY2F0
Y2ggKGUpIHsKLSAgICAgICAgICB0aHJvdyBlOwotICAgICAgICB9IGZpbmFsbHkgewotICAgICAg
ICAgIEZTLmNsb3NlU3RyZWFtKHN0cmVhbS5mZCk7Ci0gICAgICAgIH0KLSAgICAgIH0sbGxzZWVr
OmZ1bmN0aW9uIChzdHJlYW0sIG9mZnNldCwgd2hlbmNlKSB7Ci0gICAgICAgIGlmICghc3RyZWFt
LnNlZWthYmxlIHx8ICFzdHJlYW0uc3RyZWFtX29wcy5sbHNlZWspIHsKLSAgICAgICAgICB0aHJv
dyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FU1BJUEUpOwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBzdHJlYW0uc3RyZWFtX29wcy5sbHNlZWsoc3RyZWFtLCBvZmZzZXQsIHdoZW5j
ZSk7Ci0gICAgICB9LHJlYWQ6ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0
aCwgcG9zaXRpb24pIHsKLSAgICAgICAgaWYgKGxlbmd0aCA8IDAgfHwgcG9zaXRpb24gPCAwKSB7
Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsK
LSAgICAgICAgfQotICAgICAgICBpZiAoKHN0cmVhbS5mbGFncyAmIDMpID09PSAxKSB7Ci0gICAg
ICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAg
ICB9Ci0gICAgICAgIGlmIChGUy5pc0RpcihzdHJlYW0ubm9kZS5tb2RlKSkgewotICAgICAgICAg
IHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJU0RJUik7Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKCFzdHJlYW0uc3RyZWFtX29wcy5yZWFkKSB7Ci0gICAgICAgICAgdGhyb3cg
bmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAg
ICB2YXIgc2Vla2luZyA9IHRydWU7Ci0gICAgICAgIGlmICh0eXBlb2YgcG9zaXRpb24gPT09ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgICAgcG9zaXRpb24gPSBzdHJlYW0ucG9zaXRpb247Ci0gICAg
ICAgICAgc2Vla2luZyA9IGZhbHNlOwotICAgICAgICB9IGVsc2UgaWYgKCFzdHJlYW0uc2Vla2Fi
bGUpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FU1BJ
UEUpOwotICAgICAgICB9Ci0gICAgICAgIHZhciBieXRlc1JlYWQgPSBzdHJlYW0uc3RyZWFtX29w
cy5yZWFkKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pOwotICAgICAg
ICBpZiAoIXNlZWtpbmcpIHN0cmVhbS5wb3NpdGlvbiArPSBieXRlc1JlYWQ7Ci0gICAgICAgIHJl
dHVybiBieXRlc1JlYWQ7Ci0gICAgICB9LHdyaXRlOmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwg
b2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKSB7Ci0gICAgICAgIGlmIChsZW5ndGggPCAwIHx8IHBv
c2l0aW9uIDwgMCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NP
REVTLkVJTlZBTCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKChzdHJlYW0uZmxhZ3MgJiAzKSA9
PT0gMCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVC
QURGKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoRlMuaXNEaXIoc3RyZWFtLm5vZGUubW9kZSkp
IHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSVNESVIp
OwotICAgICAgICB9Ci0gICAgICAgIGlmICghc3RyZWFtLnN0cmVhbV9vcHMud3JpdGUpIHsKLSAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAg
ICAgICB9Ci0gICAgICAgIHZhciBzZWVraW5nID0gdHJ1ZTsKLSAgICAgICAgaWYgKHR5cGVvZiBw
b3NpdGlvbiA9PT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgICBwb3NpdGlvbiA9IHN0cmVhbS5w
b3NpdGlvbjsKLSAgICAgICAgICBzZWVraW5nID0gZmFsc2U7Ci0gICAgICAgIH0gZWxzZSBpZiAo
IXN0cmVhbS5zZWVrYWJsZSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVTUElQRSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHN0cmVhbS5mbGFncyAm
IDgpIHsKLSAgICAgICAgICAvLyBzZWVrIHRvIHRoZSBlbmQgYmVmb3JlIHdyaXRpbmcgaW4gYXBw
ZW5kIG1vZGUKLSAgICAgICAgICBGUy5sbHNlZWsoc3RyZWFtLCAwLCAyKTsKLSAgICAgICAgfQot
ICAgICAgICB2YXIgYnl0ZXNXcml0dGVuID0gc3RyZWFtLnN0cmVhbV9vcHMud3JpdGUoc3RyZWFt
LCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbik7Ci0gICAgICAgIGlmICghc2Vla2lu
Zykgc3RyZWFtLnBvc2l0aW9uICs9IGJ5dGVzV3JpdHRlbjsKLSAgICAgICAgcmV0dXJuIGJ5dGVz
V3JpdHRlbjsKLSAgICAgIH0sYWxsb2NhdGU6ZnVuY3Rpb24gKHN0cmVhbSwgb2Zmc2V0LCBsZW5n
dGgpIHsKLSAgICAgICAgaWYgKG9mZnNldCA8IDAgfHwgbGVuZ3RoIDw9IDApIHsKLSAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9
Ci0gICAgICAgIGlmICgoc3RyZWFtLmZsYWdzICYgMykgPT09IDApIHsKLSAgICAgICAgICB0aHJv
dyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKCFGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9kZSkgJiYgIUZTLmlzRGlyKG5vZGUubW9k
ZSkpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9E
RVYpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghc3RyZWFtLnN0cmVhbV9vcHMuYWxsb2NhdGUp
IHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FT1BOT1RT
VVBQKTsKLSAgICAgICAgfQotICAgICAgICBzdHJlYW0uc3RyZWFtX29wcy5hbGxvY2F0ZShzdHJl
YW0sIG9mZnNldCwgbGVuZ3RoKTsKLSAgICAgIH0sbW1hcDpmdW5jdGlvbiAoc3RyZWFtLCBidWZm
ZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbiwgcHJvdCwgZmxhZ3MpIHsKLSAgICAgICAgLy8g
VE9ETyBpZiBQUk9UIGlzIFBST1RfV1JJVEUsIG1ha2Ugc3VyZSB3ZSBoYXZlIHdyaXRlIGFjY2Vz
cwotICAgICAgICBpZiAoKHN0cmVhbS5mbGFncyAmIDMpID09PSAxKSB7Ci0gICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUFDQ0VTKTsKLSAgICAgICAgfQotICAg
ICAgICBpZiAoIXN0cmVhbS5zdHJlYW1fb3BzLm1tYXApIHsKLSAgICAgICAgICB0aHJvdyBuZXcg
RlMuZXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9ERVYpOwotICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiBzdHJlYW0uc3RyZWFtX29wcy5tbWFwKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0
aCwgcG9zaXRpb24sIHByb3QsIGZsYWdzKTsKLSAgICAgIH19OwotICBmdW5jdGlvbiBfc2VuZChm
ZCwgYnVmLCBsZW4sIGZsYWdzKSB7Ci0gICAgICB2YXIgaW5mbyA9IEZTLmdldFN0cmVhbShmZCk7
Ci0gICAgICBpZiAoIWluZm8pIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUJB
REYpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgICBpZiAoaW5mby5zb2NrZXQu
cmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0LkNMT1NJTkcgfHwgaW5mby5zb2NrZXQucmVhZHlTdGF0
ZSA9PT0gV2ViU29ja2V0LkNMT1NFRCkgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RF
Uy5FTk9UQ09OTik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0gZWxzZSBpZiAoaW5mby5z
b2NrZXQucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0LkNPTk5FQ1RJTkcpIHsKLSAgICAgICAgX19f
c2V0RXJyTm8oRVJSTk9fQ09ERVMuRUFHQUlOKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAg
fQotICAgICAgaW5mby5zZW5kZXIoSEVBUFU4LnN1YmFycmF5KGJ1ZiwgYnVmK2xlbikpOwotICAg
ICAgcmV0dXJuIGxlbjsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9wd3JpdGUoZmlsZGVzLCBidWYsIG5i
eXRlLCBvZmZzZXQpIHsKLSAgICAgIC8vIHNzaXplX3QgcHdyaXRlKGludCBmaWxkZXMsIGNvbnN0
IHZvaWQgKmJ1Ziwgc2l6ZV90IG5ieXRlLCBvZmZfdCBvZmZzZXQpOwotICAgICAgLy8gaHR0cDov
L3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvd3JpdGUu
aHRtbAotICAgICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmaWxkZXMpOwotICAgICAgaWYg
KCFzdHJlYW0pIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUJBREYpOwotICAg
ICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgICB0cnkgewotICAgICAgICB2YXIgc2xhYiA9
IEhFQVA4OwotICAgICAgICByZXR1cm4gRlMud3JpdGUoc3RyZWFtLCBzbGFiLCBidWYsIG5ieXRl
LCBvZmZzZXQpOwotICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBGUy5oYW5kbGVGU0Vycm9y
KGUpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgfWZ1bmN0aW9uIF93cml0ZShm
aWxkZXMsIGJ1ZiwgbmJ5dGUpIHsKLSAgICAgIC8vIHNzaXplX3Qgd3JpdGUoaW50IGZpbGRlcywg
Y29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbmJ5dGUpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Bl
bmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvd3JpdGUuaHRtbAotICAg
ICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmaWxkZXMpOwotICAgICAgaWYgKCFzdHJlYW0p
IHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAgICByZXR1
cm4gLTE7Ci0gICAgICB9Ci0gICAgICBpZiAoc3RyZWFtICYmICgnc29ja2V0JyBpbiBzdHJlYW0p
KSB7Ci0gICAgICAgIHJldHVybiBfc2VuZChmaWxkZXMsIGJ1ZiwgbmJ5dGUsIDApOwotICAgICAg
fQotICAgICAgdHJ5IHsKLSAgICAgICAgdmFyIHNsYWIgPSBIRUFQODsKLSAgICAgICAgcmV0dXJu
IEZTLndyaXRlKHN0cmVhbSwgc2xhYiwgYnVmLCBuYnl0ZSk7Ci0gICAgICB9IGNhdGNoIChlKSB7
Ci0gICAgICAgIEZTLmhhbmRsZUZTRXJyb3IoZSk7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAg
IH0KLSAgICB9ZnVuY3Rpb24gX2Z3cml0ZShwdHIsIHNpemUsIG5pdGVtcywgc3RyZWFtKSB7Ci0g
ICAgICAvLyBzaXplX3QgZndyaXRlKGNvbnN0IHZvaWQgKnJlc3RyaWN0IHB0ciwgc2l6ZV90IHNp
emUsIHNpemVfdCBuaXRlbXMsIEZJTEUgKnJlc3RyaWN0IHN0cmVhbSk7Ci0gICAgICAvLyBodHRw
Oi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9md3Jp
dGUuaHRtbAotICAgICAgdmFyIGJ5dGVzVG9Xcml0ZSA9IG5pdGVtcyAqIHNpemU7Ci0gICAgICBp
ZiAoYnl0ZXNUb1dyaXRlID09IDApIHJldHVybiAwOwotICAgICAgdmFyIGJ5dGVzV3JpdHRlbiA9
IF93cml0ZShzdHJlYW0sIHB0ciwgYnl0ZXNUb1dyaXRlKTsKLSAgICAgIGlmIChieXRlc1dyaXR0
ZW4gPT0gLTEpIHsKLSAgICAgICAgdmFyIHN0cmVhbU9iaiA9IEZTLmdldFN0cmVhbShzdHJlYW0p
OwotICAgICAgICBpZiAoc3RyZWFtT2JqKSBzdHJlYW1PYmouZXJyb3IgPSB0cnVlOwotICAgICAg
ICByZXR1cm4gMDsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBNYXRoLmZsb29yKGJ5
dGVzV3JpdHRlbiAvIHNpemUpOwotICAgICAgfQotICAgIH0KLSAgZnVuY3Rpb24gX3VuZ2V0Yyhj
LCBzdHJlYW0pIHsKLSAgICAgIC8vIGludCB1bmdldGMoaW50IGMsIEZJTEUgKnN0cmVhbSk7Ci0g
ICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1
bmN0aW9ucy91bmdldGMuaHRtbAotICAgICAgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKHN0cmVhbSk7
Ci0gICAgICBpZiAoIXN0cmVhbSkgewotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAg
ICBpZiAoYyA9PT0gLTEpIHsKLSAgICAgICAgLy8gZG8gbm90aGluZyBmb3IgRU9GIGNoYXJhY3Rl
cgotICAgICAgICByZXR1cm4gYzsKLSAgICAgIH0KLSAgICAgIGMgPSB1blNpZ24oYyAmIDB4RkYp
OwotICAgICAgc3RyZWFtLnVuZ290dGVuLnB1c2goYyk7Ci0gICAgICBzdHJlYW0uZW9mID0gZmFs
c2U7Ci0gICAgICByZXR1cm4gYzsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9yZWN2KGZkLCBidWYsIGxl
biwgZmxhZ3MpIHsKLSAgICAgIHZhciBpbmZvID0gRlMuZ2V0U3RyZWFtKGZkKTsKLSAgICAgIGlm
ICghaW5mbykgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FQkFERik7Ci0gICAg
ICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICAgIGlmICghaW5mby5oYXNEYXRhKCkpIHsKLSAg
ICAgICAgaWYgKGluZm8uc29ja2V0LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5DTE9TSU5HIHx8
IGluZm8uc29ja2V0LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5DTE9TRUQpIHsKLSAgICAgICAg
ICAvLyBzb2NrZXQgaGFzIGNsb3NlZAotICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgIC8vIGVsc2UsIG91ciBzb2NrZXQgaXMgaW4gYSB2YWxpZCBzdGF0ZSBi
dXQgdHJ1bHkgaGFzIG5vdGhpbmcgYXZhaWxhYmxlCi0gICAgICAgICAgX19fc2V0RXJyTm8oRVJS
Tk9fQ09ERVMuRUFHQUlOKTsKLSAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIH0KLSAgICAg
IH0KLSAgICAgIHZhciBidWZmZXIgPSBpbmZvLmluUXVldWUuc2hpZnQoKTsKLSAgICAgIGlmIChs
ZW4gPCBidWZmZXIubGVuZ3RoKSB7Ci0gICAgICAgIGlmIChpbmZvLnN0cmVhbSkgewotICAgICAg
ICAgIC8vIFRoaXMgaXMgdGNwIChyZWxpYWJsZSksIHNvIGlmIG5vdCBhbGwgd2FzIHJlYWQsIGtl
ZXAgaXQKLSAgICAgICAgICBpbmZvLmluUXVldWUudW5zaGlmdChidWZmZXIuc3ViYXJyYXkobGVu
KSk7Ci0gICAgICAgIH0KLSAgICAgICAgYnVmZmVyID0gYnVmZmVyLnN1YmFycmF5KDAsIGxlbik7
Ci0gICAgICB9Ci0gICAgICBIRUFQVTguc2V0KGJ1ZmZlciwgYnVmKTsKLSAgICAgIHJldHVybiBi
dWZmZXIubGVuZ3RoOwotICAgIH0KLSAgZnVuY3Rpb24gX3ByZWFkKGZpbGRlcywgYnVmLCBuYnl0
ZSwgb2Zmc2V0KSB7Ci0gICAgICAvLyBzc2l6ZV90IHByZWFkKGludCBmaWxkZXMsIHZvaWQgKmJ1
Ziwgc2l6ZV90IG5ieXRlLCBvZmZfdCBvZmZzZXQpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Bl
bmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvcmVhZC5odG1sCi0gICAg
ICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZpbGRlcyk7Ci0gICAgICBpZiAoIXN0cmVhbSkg
ewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIHJldHVy
biAtMTsKLSAgICAgIH0KLSAgICAgIHRyeSB7Ci0gICAgICAgIHZhciBzbGFiID0gSEVBUDg7Ci0g
ICAgICAgIHJldHVybiBGUy5yZWFkKHN0cmVhbSwgc2xhYiwgYnVmLCBuYnl0ZSwgb2Zmc2V0KTsK
LSAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgRlMuaGFuZGxlRlNFcnJvcihlKTsKLSAgICAg
ICAgcmV0dXJuIC0xOwotICAgICAgfQotICAgIH1mdW5jdGlvbiBfcmVhZChmaWxkZXMsIGJ1Ziwg
bmJ5dGUpIHsKLSAgICAgIC8vIHNzaXplX3QgcmVhZChpbnQgZmlsZGVzLCB2b2lkICpidWYsIHNp
emVfdCBuYnl0ZSk7Ci0gICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1
YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9yZWFkLmh0bWwKLSAgICAgIHZhciBzdHJlYW0gPSBGUy5n
ZXRTdHJlYW0oZmlsZGVzKTsKLSAgICAgIGlmICghc3RyZWFtKSB7Ci0gICAgICAgIF9fX3NldEVy
ck5vKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfQotICAg
ICAgaWYgKHN0cmVhbSAmJiAoJ3NvY2tldCcgaW4gc3RyZWFtKSkgewotICAgICAgICByZXR1cm4g
X3JlY3YoZmlsZGVzLCBidWYsIG5ieXRlLCAwKTsKLSAgICAgIH0KLSAgICAgIHRyeSB7Ci0gICAg
ICAgIHZhciBzbGFiID0gSEVBUDg7Ci0gICAgICAgIHJldHVybiBGUy5yZWFkKHN0cmVhbSwgc2xh
YiwgYnVmLCBuYnl0ZSk7Ci0gICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIEZTLmhhbmRsZUZT
RXJyb3IoZSk7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICB9ZnVuY3Rpb24gX2Zy
ZWFkKHB0ciwgc2l6ZSwgbml0ZW1zLCBzdHJlYW0pIHsKLSAgICAgIC8vIHNpemVfdCBmcmVhZCh2
b2lkICpyZXN0cmljdCBwdHIsIHNpemVfdCBzaXplLCBzaXplX3Qgbml0ZW1zLCBGSUxFICpyZXN0
cmljdCBzdHJlYW0pOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVw
dWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvZnJlYWQuaHRtbAotICAgICAgdmFyIGJ5dGVzVG9SZWFk
ID0gbml0ZW1zICogc2l6ZTsKLSAgICAgIGlmIChieXRlc1RvUmVhZCA9PSAwKSB7Ci0gICAgICAg
IHJldHVybiAwOwotICAgICAgfQotICAgICAgdmFyIGJ5dGVzUmVhZCA9IDA7Ci0gICAgICB2YXIg
c3RyZWFtT2JqID0gRlMuZ2V0U3RyZWFtKHN0cmVhbSk7Ci0gICAgICB3aGlsZSAoc3RyZWFtT2Jq
LnVuZ290dGVuLmxlbmd0aCAmJiBieXRlc1RvUmVhZCA+IDApIHsKLSAgICAgICAgSEVBUDhbKChw
dHIrKyl8MCldPXN0cmVhbU9iai51bmdvdHRlbi5wb3AoKQotICAgICAgICBieXRlc1RvUmVhZC0t
OwotICAgICAgICBieXRlc1JlYWQrKzsKLSAgICAgIH0KLSAgICAgIHZhciBlcnIgPSBfcmVhZChz
dHJlYW0sIHB0ciwgYnl0ZXNUb1JlYWQpOwotICAgICAgaWYgKGVyciA9PSAtMSkgewotICAgICAg
ICBpZiAoc3RyZWFtT2JqKSBzdHJlYW1PYmouZXJyb3IgPSB0cnVlOwotICAgICAgICByZXR1cm4g
MDsKLSAgICAgIH0KLSAgICAgIGJ5dGVzUmVhZCArPSBlcnI7Ci0gICAgICBpZiAoYnl0ZXNSZWFk
IDwgYnl0ZXNUb1JlYWQpIHN0cmVhbU9iai5lb2YgPSB0cnVlOwotICAgICAgcmV0dXJuIE1hdGgu
Zmxvb3IoYnl0ZXNSZWFkIC8gc2l6ZSk7Ci0gICAgfWZ1bmN0aW9uIF9mZ2V0YyhzdHJlYW0pIHsK
LSAgICAgIC8vIGludCBmZ2V0YyhGSUxFICpzdHJlYW0pOwotICAgICAgLy8gaHR0cDovL3B1YnMu
b3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvZmdldGMuaHRtbAot
ICAgICAgdmFyIHN0cmVhbU9iaiA9IEZTLmdldFN0cmVhbShzdHJlYW0pOwotICAgICAgaWYgKCFz
dHJlYW1PYmopIHJldHVybiAtMTsKLSAgICAgIGlmIChzdHJlYW1PYmouZW9mIHx8IHN0cmVhbU9i
ai5lcnJvcikgcmV0dXJuIC0xOwotICAgICAgdmFyIHJldCA9IF9mcmVhZChfZmdldGMucmV0LCAx
LCAxLCBzdHJlYW0pOwotICAgICAgaWYgKHJldCA9PSAwKSB7Ci0gICAgICAgIHN0cmVhbU9iai5l
b2YgPSB0cnVlOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9IGVsc2UgaWYgKHJldCA9PSAt
MSkgewotICAgICAgICBzdHJlYW1PYmouZXJyb3IgPSB0cnVlOwotICAgICAgICByZXR1cm4gLTE7
Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gSEVBUFU4WygoX2ZnZXRjLnJldCl8MCld
OwotICAgICAgfQotICAgIH12YXIgX2dldGM9X2ZnZXRjOwotICBmdW5jdGlvbiBfX19jeGFfcHVy
ZV92aXJ0dWFsKCkgewotICAgICAgQUJPUlQgPSB0cnVlOwotICAgICAgdGhyb3cgJ1B1cmUgdmly
dHVhbCBmdW5jdGlvbiBjYWxsZWQhJzsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2Vycm5vX2xvY2F0
aW9uKCkgewotICAgICAgcmV0dXJuIF9fX2Vycm5vX3N0YXRlOwotICAgIH12YXIgX19fZXJybm89
X19fZXJybm9fbG9jYXRpb247Ci0gIHZhciBfbGx2bV9tZW1zZXRfcDBpOF9pMzI9X21lbXNldDsK
LSAgTW9kdWxlWyJfc3RybGVuIl0gPSBfc3RybGVuOwotICBmdW5jdGlvbiBfc3RyZXJyb3Jfcihl
cnJudW0sIHN0cmVycmJ1ZiwgYnVmbGVuKSB7Ci0gICAgICBpZiAoZXJybnVtIGluIEVSUk5PX01F
U1NBR0VTKSB7Ci0gICAgICAgIGlmIChFUlJOT19NRVNTQUdFU1tlcnJudW1dLmxlbmd0aCA+IGJ1
ZmxlbiAtIDEpIHsKLSAgICAgICAgICByZXR1cm4gX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRVJB
TkdFKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB2YXIgbXNnID0gRVJSTk9fTUVTU0FH
RVNbZXJybnVtXTsKLSAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1zZy5sZW5ndGg7IGkr
KykgewotICAgICAgICAgICAgSEVBUDhbKCgoc3RyZXJyYnVmKSsoaSkpfDApXT1tc2cuY2hhckNv
ZGVBdChpKQotICAgICAgICAgIH0KLSAgICAgICAgICBIRUFQOFsoKChzdHJlcnJidWYpKyhpKSl8
MCldPTAKLSAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgcmV0dXJuIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICB9Ci0g
ICAgfWZ1bmN0aW9uIF9zdHJlcnJvcihlcnJudW0pIHsKLSAgICAgIGlmICghX3N0cmVycm9yLmJ1
ZmZlcikgX3N0cmVycm9yLmJ1ZmZlciA9IF9tYWxsb2MoMjU2KTsKLSAgICAgIF9zdHJlcnJvcl9y
KGVycm51bSwgX3N0cmVycm9yLmJ1ZmZlciwgMjU2KTsKLSAgICAgIHJldHVybiBfc3RyZXJyb3Iu
YnVmZmVyOwotICAgIH0KLSAgZnVuY3Rpb24gX2Fib3J0KCkgewotICAgICAgTW9kdWxlWydhYm9y
dCddKCk7Ci0gICAgfQotICBmdW5jdGlvbiBfX3JlYWxseU5lZ2F0aXZlKHgpIHsKLSAgICAgIHJl
dHVybiB4IDwgMCB8fCAoeCA9PT0gMCAmJiAoMS94KSA9PT0gLUluZmluaXR5KTsKLSAgICB9ZnVu
Y3Rpb24gX19mb3JtYXRTdHJpbmcoZm9ybWF0LCB2YXJhcmdzKSB7Ci0gICAgICB2YXIgdGV4dElu
ZGV4ID0gZm9ybWF0OwotICAgICAgdmFyIGFyZ0luZGV4ID0gMDsKLSAgICAgIGZ1bmN0aW9uIGdl
dE5leHRBcmcodHlwZSkgewotICAgICAgICAvLyBOT1RFOiBFeHBsaWNpdGx5IGlnbm9yaW5nIHR5
cGUgc2FmZXR5LiBPdGhlcndpc2UgdGhpcyBmYWlsczoKLSAgICAgICAgLy8gICAgICAgaW50IHgg
PSA0OyBwcmludGYoIiVjXG4iLCAoY2hhcil4KTsKLSAgICAgICAgdmFyIHJldDsKLSAgICAgICAg
aWYgKHR5cGUgPT09ICdkb3VibGUnKSB7Ci0gICAgICAgICAgcmV0ID0gSEVBUEY2NFsoKCh2YXJh
cmdzKSsoYXJnSW5kZXgpKT4+MyldOwotICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2k2NCcp
IHsKLSAgICAgICAgICByZXQgPSBbSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4yKV0s
Ci0gICAgICAgICAgICAgICAgIEhFQVAzMlsoKCh2YXJhcmdzKSsoYXJnSW5kZXgrOCkpPj4yKV1d
OwotICAgICAgICAgIGFyZ0luZGV4ICs9IDg7IC8vIGVhY2ggMzItYml0IGNodW5rIGlzIGluIGEg
NjQtYml0IGJsb2NrCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdHlwZSA9ICdpMzInOyAv
LyB2YXJhcmdzIGFyZSBhbHdheXMgaTMyLCBpNjQsIG9yIGRvdWJsZQotICAgICAgICAgIHJldCA9
IEhFQVAzMlsoKCh2YXJhcmdzKSsoYXJnSW5kZXgpKT4+MildOwotICAgICAgICB9Ci0gICAgICAg
IGFyZ0luZGV4ICs9IE1hdGgubWF4KFJ1bnRpbWUuZ2V0TmF0aXZlRmllbGRTaXplKHR5cGUpLCBS
dW50aW1lLmdldEFsaWduU2l6ZSh0eXBlLCBudWxsLCB0cnVlKSk7Ci0gICAgICAgIHJldHVybiBy
ZXQ7Ci0gICAgICB9Ci0gICAgICB2YXIgcmV0ID0gW107Ci0gICAgICB2YXIgY3VyciwgbmV4dCwg
Y3VyckFyZzsKLSAgICAgIHdoaWxlKDEpIHsKLSAgICAgICAgdmFyIHN0YXJ0VGV4dEluZGV4ID0g
dGV4dEluZGV4OwotICAgICAgICBjdXJyID0gSEVBUDhbKHRleHRJbmRleCldOwotICAgICAgICBp
ZiAoY3VyciA9PT0gMCkgYnJlYWs7Ci0gICAgICAgIG5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsx
KXwwKV07Ci0gICAgICAgIGlmIChjdXJyID09IDM3KSB7Ci0gICAgICAgICAgLy8gSGFuZGxlIGZs
YWdzLgotICAgICAgICAgIHZhciBmbGFnQWx3YXlzU2lnbmVkID0gZmFsc2U7Ci0gICAgICAgICAg
dmFyIGZsYWdMZWZ0QWxpZ24gPSBmYWxzZTsKLSAgICAgICAgICB2YXIgZmxhZ0FsdGVybmF0aXZl
ID0gZmFsc2U7Ci0gICAgICAgICAgdmFyIGZsYWdaZXJvUGFkID0gZmFsc2U7Ci0gICAgICAgICAg
ZmxhZ3NMb29wOiB3aGlsZSAoMSkgewotICAgICAgICAgICAgc3dpdGNoIChuZXh0KSB7Ci0gICAg
ICAgICAgICAgIGNhc2UgNDM6Ci0gICAgICAgICAgICAgICAgZmxhZ0Fsd2F5c1NpZ25lZCA9IHRy
dWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgIGNhc2UgNDU6Ci0gICAg
ICAgICAgICAgICAgZmxhZ0xlZnRBbGlnbiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAgIGNhc2UgMzU6Ci0gICAgICAgICAgICAgICAgZmxhZ0FsdGVybmF0aXZl
ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgY2FzZSA0ODoK
LSAgICAgICAgICAgICAgICBpZiAoZmxhZ1plcm9QYWQpIHsKLSAgICAgICAgICAgICAgICAgIGJy
ZWFrIGZsYWdzTG9vcDsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICAgZmxhZ1plcm9QYWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIGJyZWFr
IGZsYWdzTG9vcDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAg
ICAgICAgICAgbmV4dCA9IEhFQVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAgICAgICAgICB9Ci0g
ICAgICAgICAgLy8gSGFuZGxlIHdpZHRoLgotICAgICAgICAgIHZhciB3aWR0aCA9IDA7Ci0gICAg
ICAgICAgaWYgKG5leHQgPT0gNDIpIHsKLSAgICAgICAgICAgIHdpZHRoID0gZ2V0TmV4dEFyZygn
aTMyJyk7Ci0gICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgIG5leHQgPSBIRUFQ
OFsoKHRleHRJbmRleCsxKXwwKV07Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHdo
aWxlIChuZXh0ID49IDQ4ICYmIG5leHQgPD0gNTcpIHsKLSAgICAgICAgICAgICAgd2lkdGggPSB3
aWR0aCAqIDEwICsgKG5leHQgLSA0OCk7Ci0gICAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAg
ICAgICAgICAgICBuZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICAgICAg
fQotICAgICAgICAgIH0KLSAgICAgICAgICAvLyBIYW5kbGUgcHJlY2lzaW9uLgotICAgICAgICAg
IHZhciBwcmVjaXNpb25TZXQgPSBmYWxzZTsKLSAgICAgICAgICBpZiAobmV4dCA9PSA0Nikgewot
ICAgICAgICAgICAgdmFyIHByZWNpc2lvbiA9IDA7Ci0gICAgICAgICAgICBwcmVjaXNpb25TZXQg
PSB0cnVlOwotICAgICAgICAgICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICBuZXh0ID0gSEVB
UDhbKCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICAgICAgaWYgKG5leHQgPT0gNDIpIHsKLSAg
ICAgICAgICAgICAgcHJlY2lzaW9uID0gZ2V0TmV4dEFyZygnaTMyJyk7Ci0gICAgICAgICAgICAg
IHRleHRJbmRleCsrOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgd2hpbGUo
MSkgewotICAgICAgICAgICAgICAgIHZhciBwcmVjaXNpb25DaHIgPSBIRUFQOFsoKHRleHRJbmRl
eCsxKXwwKV07Ci0gICAgICAgICAgICAgICAgaWYgKHByZWNpc2lvbkNociA8IDQ4IHx8Ci0gICAg
ICAgICAgICAgICAgICAgIHByZWNpc2lvbkNociA+IDU3KSBicmVhazsKLSAgICAgICAgICAgICAg
ICBwcmVjaXNpb24gPSBwcmVjaXNpb24gKiAxMCArIChwcmVjaXNpb25DaHIgLSA0OCk7Ci0gICAg
ICAgICAgICAgICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIG5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsxKXwwKV07Ci0gICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIHZhciBwcmVjaXNpb24gPSA2OyAvLyBTdGFuZGFyZCBkZWZh
dWx0LgotICAgICAgICAgIH0KLSAgICAgICAgICAvLyBIYW5kbGUgaW50ZWdlciBzaXplcy4gV0FS
TklORzogVGhlc2UgYXNzdW1lIGEgMzItYml0IGFyY2hpdGVjdHVyZSEKLSAgICAgICAgICB2YXIg
YXJnU2l6ZTsKLSAgICAgICAgICBzd2l0Y2ggKFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpIHsK
LSAgICAgICAgICAgIGNhc2UgJ2gnOgotICAgICAgICAgICAgICB2YXIgbmV4dE5leHQgPSBIRUFQ
OFsoKHRleHRJbmRleCsyKXwwKV07Ci0gICAgICAgICAgICAgIGlmIChuZXh0TmV4dCA9PSAxMDQp
IHsKLSAgICAgICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgICAgICBhcmdTaXpl
ID0gMTsgLy8gY2hhciAoYWN0dWFsbHkgaTMyIGluIHZhcmFyZ3MpCi0gICAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgYXJnU2l6ZSA9IDI7IC8vIHNob3J0IChhY3R1YWxseSBp
MzIgaW4gdmFyYXJncykKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGNhc2UgJ2wnOgotICAgICAgICAgICAgICB2YXIgbmV4dE5leHQgPSBIRUFQOFso
KHRleHRJbmRleCsyKXwwKV07Ci0gICAgICAgICAgICAgIGlmIChuZXh0TmV4dCA9PSAxMDgpIHsK
LSAgICAgICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgICAgICBhcmdTaXplID0g
ODsgLy8gbG9uZyBsb25nCi0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
YXJnU2l6ZSA9IDQ7IC8vIGxvbmcKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIGNhc2UgJ0wnOiAvLyBsb25nIGxvbmcKLSAgICAgICAgICAgIGNhc2Ug
J3EnOiAvLyBpbnQ2NF90Ci0gICAgICAgICAgICBjYXNlICdqJzogLy8gaW50bWF4X3QKLSAgICAg
ICAgICAgICAgYXJnU2l6ZSA9IDg7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
Y2FzZSAneic6IC8vIHNpemVfdAotICAgICAgICAgICAgY2FzZSAndCc6IC8vIHB0cmRpZmZfdAot
ICAgICAgICAgICAgY2FzZSAnSSc6IC8vIHNpZ25lZCBwdHJkaWZmX3Qgb3IgdW5zaWduZWQgc2l6
ZV90Ci0gICAgICAgICAgICAgIGFyZ1NpemUgPSA0OwotICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgIGFyZ1NpemUgPSBudWxsOwotICAgICAg
ICAgIH0KLSAgICAgICAgICBpZiAoYXJnU2l6ZSkgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgbmV4
dCA9IEhFQVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAgICAgICAgICAvLyBIYW5kbGUgdHlwZSBz
cGVjaWZpZXIuCi0gICAgICAgICAgc3dpdGNoIChTdHJpbmcuZnJvbUNoYXJDb2RlKG5leHQpKSB7
Ci0gICAgICAgICAgICBjYXNlICdkJzogY2FzZSAnaSc6IGNhc2UgJ3UnOiBjYXNlICdvJzogY2Fz
ZSAneCc6IGNhc2UgJ1gnOiBjYXNlICdwJzogewotICAgICAgICAgICAgICAvLyBJbnRlZ2VyLgot
ICAgICAgICAgICAgICB2YXIgc2lnbmVkID0gbmV4dCA9PSAxMDAgfHwgbmV4dCA9PSAxMDU7Ci0g
ICAgICAgICAgICAgIGFyZ1NpemUgPSBhcmdTaXplIHx8IDQ7Ci0gICAgICAgICAgICAgIHZhciBj
dXJyQXJnID0gZ2V0TmV4dEFyZygnaScgKyAoYXJnU2l6ZSAqIDgpKTsKLSAgICAgICAgICAgICAg
dmFyIG9yaWdBcmcgPSBjdXJyQXJnOwotICAgICAgICAgICAgICB2YXIgYXJnVGV4dDsKLSAgICAg
ICAgICAgICAgLy8gRmxhdHRlbiBpNjQtMSBbbG93LCBoaWdoXSBpbnRvIGEgKHNsaWdodGx5IHJv
dW5kZWQpIGRvdWJsZQotICAgICAgICAgICAgICBpZiAoYXJnU2l6ZSA9PSA4KSB7Ci0gICAgICAg
ICAgICAgICAgY3VyckFyZyA9IFJ1bnRpbWUubWFrZUJpZ0ludChjdXJyQXJnWzBdLCBjdXJyQXJn
WzFdLCBuZXh0ID09IDExNyk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gVHJ1
bmNhdGUgdG8gcmVxdWVzdGVkIHNpemUuCi0gICAgICAgICAgICAgIGlmIChhcmdTaXplIDw9IDQp
IHsKLSAgICAgICAgICAgICAgICB2YXIgbGltaXQgPSBNYXRoLnBvdygyNTYsIGFyZ1NpemUpIC0g
MTsKLSAgICAgICAgICAgICAgICBjdXJyQXJnID0gKHNpZ25lZCA/IHJlU2lnbiA6IHVuU2lnbiko
Y3VyckFyZyAmIGxpbWl0LCBhcmdTaXplICogOCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgLy8gRm9ybWF0IHRoZSBudW1iZXIuCi0gICAgICAgICAgICAgIHZhciBjdXJyQWJzQXJn
ID0gTWF0aC5hYnMoY3VyckFyZyk7Ci0gICAgICAgICAgICAgIHZhciBwcmVmaXggPSAnJzsKLSAg
ICAgICAgICAgICAgaWYgKG5leHQgPT0gMTAwIHx8IG5leHQgPT0gMTA1KSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKGFyZ1NpemUgPT0gOCAmJiBpNjRNYXRoKSBhcmdUZXh0ID0gaTY0TWF0aC5zdHJp
bmdpZnkob3JpZ0FyZ1swXSwgb3JpZ0FyZ1sxXSwgbnVsbCk7IGVsc2UKLSAgICAgICAgICAgICAg
ICBhcmdUZXh0ID0gcmVTaWduKGN1cnJBcmcsIDggKiBhcmdTaXplLCAxKS50b1N0cmluZygxMCk7
Ci0gICAgICAgICAgICAgIH0gZWxzZSBpZiAobmV4dCA9PSAxMTcpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoYXJnU2l6ZSA9PSA4ICYmIGk2NE1hdGgpIGFyZ1RleHQgPSBpNjRNYXRoLnN0cmluZ2lm
eShvcmlnQXJnWzBdLCBvcmlnQXJnWzFdLCB0cnVlKTsgZWxzZQotICAgICAgICAgICAgICAgIGFy
Z1RleHQgPSB1blNpZ24oY3VyckFyZywgOCAqIGFyZ1NpemUsIDEpLnRvU3RyaW5nKDEwKTsKLSAg
ICAgICAgICAgICAgICBjdXJyQXJnID0gTWF0aC5hYnMoY3VyckFyZyk7Ci0gICAgICAgICAgICAg
IH0gZWxzZSBpZiAobmV4dCA9PSAxMTEpIHsKLSAgICAgICAgICAgICAgICBhcmdUZXh0ID0gKGZs
YWdBbHRlcm5hdGl2ZSA/ICcwJyA6ICcnKSArIGN1cnJBYnNBcmcudG9TdHJpbmcoOCk7Ci0gICAg
ICAgICAgICAgIH0gZWxzZSBpZiAobmV4dCA9PSAxMjAgfHwgbmV4dCA9PSA4OCkgewotICAgICAg
ICAgICAgICAgIHByZWZpeCA9IChmbGFnQWx0ZXJuYXRpdmUgJiYgY3VyckFyZyAhPSAwKSA/ICcw
eCcgOiAnJzsKLSAgICAgICAgICAgICAgICBpZiAoYXJnU2l6ZSA9PSA4ICYmIGk2NE1hdGgpIHsK
LSAgICAgICAgICAgICAgICAgIGlmIChvcmlnQXJnWzFdKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGFyZ1RleHQgPSAob3JpZ0FyZ1sxXT4+PjApLnRvU3RyaW5nKDE2KTsKLSAgICAgICAgICAgICAg
ICAgICAgdmFyIGxvd2VyID0gKG9yaWdBcmdbMF0+Pj4wKS50b1N0cmluZygxNik7Ci0gICAgICAg
ICAgICAgICAgICAgIHdoaWxlIChsb3dlci5sZW5ndGggPCA4KSBsb3dlciA9ICcwJyArIGxvd2Vy
OwotICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ICs9IGxvd2VyOwotICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IChvcmlnQXJnWzBdPj4+
MCkudG9TdHJpbmcoMTYpOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0g
ZWxzZQotICAgICAgICAgICAgICAgIGlmIChjdXJyQXJnIDwgMCkgewotICAgICAgICAgICAgICAg
ICAgLy8gUmVwcmVzZW50IG5lZ2F0aXZlIG51bWJlcnMgaW4gaGV4IGFzIDIncyBjb21wbGVtZW50
LgotICAgICAgICAgICAgICAgICAgY3VyckFyZyA9IC1jdXJyQXJnOwotICAgICAgICAgICAgICAg
ICAgYXJnVGV4dCA9IChjdXJyQWJzQXJnIC0gMSkudG9TdHJpbmcoMTYpOwotICAgICAgICAgICAg
ICAgICAgdmFyIGJ1ZmZlciA9IFtdOwotICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBhcmdUZXh0Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5w
dXNoKCgweEYgLSBwYXJzZUludChhcmdUZXh0W2ldLCAxNikpLnRvU3RyaW5nKDE2KSk7Ci0gICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gYnVmZmVyLmpvaW4o
JycpOwotICAgICAgICAgICAgICAgICAgd2hpbGUgKGFyZ1RleHQubGVuZ3RoIDwgYXJnU2l6ZSAq
IDIpIGFyZ1RleHQgPSAnZicgKyBhcmdUZXh0OwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gY3VyckFic0FyZy50b1N0cmluZygxNik7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChuZXh0ID09IDg4KSB7Ci0gICAgICAg
ICAgICAgICAgICBwcmVmaXggPSBwcmVmaXgudG9VcHBlckNhc2UoKTsKLSAgICAgICAgICAgICAg
ICAgIGFyZ1RleHQgPSBhcmdUZXh0LnRvVXBwZXJDYXNlKCk7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5leHQgPT0gMTEyKSB7Ci0gICAgICAgICAgICAgICAg
aWYgKGN1cnJBYnNBcmcgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnKG5p
bCknOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwcmVmaXgg
PSAnMHgnOwotICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGN1cnJBYnNBcmcudG9TdHJpbmco
MTYpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBp
ZiAocHJlY2lzaW9uU2V0KSB7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKGFyZ1RleHQubGVuZ3Ro
IDwgcHJlY2lzaW9uKSB7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gJzAnICsgYXJnVGV4
dDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8g
QWRkIHNpZ24gaWYgbmVlZGVkCi0gICAgICAgICAgICAgIGlmIChmbGFnQWx3YXlzU2lnbmVkKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKGN1cnJBcmcgPCAwKSB7Ci0gICAgICAgICAgICAgICAgICBw
cmVmaXggPSAnLScgKyBwcmVmaXg7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgIHByZWZpeCA9ICcrJyArIHByZWZpeDsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gQWRkIHBhZGRpbmcuCi0gICAgICAgICAgICAg
IHdoaWxlIChwcmVmaXgubGVuZ3RoICsgYXJnVGV4dC5sZW5ndGggPCB3aWR0aCkgewotICAgICAg
ICAgICAgICAgIGlmIChmbGFnTGVmdEFsaWduKSB7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0
ICs9ICcgJzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYg
KGZsYWdaZXJvUGFkKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnMCcgKyBhcmdU
ZXh0OwotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcHJl
Zml4ID0gJyAnICsgcHJlZml4OwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAvLyBJbnNlcnQgdGhlIHJlc3VsdCBp
bnRvIHRoZSBidWZmZXIuCi0gICAgICAgICAgICAgIGFyZ1RleHQgPSBwcmVmaXggKyBhcmdUZXh0
OwotICAgICAgICAgICAgICBhcmdUZXh0LnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uKGNocikg
ewotICAgICAgICAgICAgICAgIHJldC5wdXNoKGNoci5jaGFyQ29kZUF0KDApKTsKLSAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgY2FzZSAnZic6IGNhc2UgJ0YnOiBjYXNlICdlJzogY2FzZSAnRSc6IGNhc2UgJ2cnOiBjYXNl
ICdHJzogewotICAgICAgICAgICAgICAvLyBGbG9hdC4KLSAgICAgICAgICAgICAgdmFyIGN1cnJB
cmcgPSBnZXROZXh0QXJnKCdkb3VibGUnKTsKLSAgICAgICAgICAgICAgdmFyIGFyZ1RleHQ7Ci0g
ICAgICAgICAgICAgIGlmIChpc05hTihjdXJyQXJnKSkgewotICAgICAgICAgICAgICAgIGFyZ1Rl
eHQgPSAnbmFuJzsKLSAgICAgICAgICAgICAgICBmbGFnWmVyb1BhZCA9IGZhbHNlOwotICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKCFpc0Zpbml0ZShjdXJyQXJnKSkgewotICAgICAgICAgICAgICAg
IGFyZ1RleHQgPSAoY3VyckFyZyA8IDAgPyAnLScgOiAnJykgKyAnaW5mJzsKLSAgICAgICAgICAg
ICAgICBmbGFnWmVyb1BhZCA9IGZhbHNlOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIHZhciBpc0dlbmVyYWwgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICB2YXIgZWZm
ZWN0aXZlUHJlY2lzaW9uID0gTWF0aC5taW4ocHJlY2lzaW9uLCAyMCk7Ci0gICAgICAgICAgICAg
ICAgLy8gQ29udmVydCBnL0cgdG8gZi9GIG9yIGUvRSwgYXMgcGVyOgotICAgICAgICAgICAgICAg
IC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy85Njk5OTE5Nzk5L2Z1bmN0
aW9ucy9wcmludGYuaHRtbAotICAgICAgICAgICAgICAgIGlmIChuZXh0ID09IDEwMyB8fCBuZXh0
ID09IDcxKSB7Ci0gICAgICAgICAgICAgICAgICBpc0dlbmVyYWwgPSB0cnVlOwotICAgICAgICAg
ICAgICAgICAgcHJlY2lzaW9uID0gcHJlY2lzaW9uIHx8IDE7Ci0gICAgICAgICAgICAgICAgICB2
YXIgZXhwb25lbnQgPSBwYXJzZUludChjdXJyQXJnLnRvRXhwb25lbnRpYWwoZWZmZWN0aXZlUHJl
Y2lzaW9uKS5zcGxpdCgnZScpWzFdLCAxMCk7Ci0gICAgICAgICAgICAgICAgICBpZiAocHJlY2lz
aW9uID4gZXhwb25lbnQgJiYgZXhwb25lbnQgPj0gLTQpIHsKLSAgICAgICAgICAgICAgICAgICAg
bmV4dCA9ICgobmV4dCA9PSAxMDMpID8gJ2YnIDogJ0YnKS5jaGFyQ29kZUF0KDApOwotICAgICAg
ICAgICAgICAgICAgICBwcmVjaXNpb24gLT0gZXhwb25lbnQgKyAxOwotICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgbmV4dCA9ICgobmV4dCA9PSAxMDMpID8g
J2UnIDogJ0UnKS5jaGFyQ29kZUF0KDApOwotICAgICAgICAgICAgICAgICAgICBwcmVjaXNpb24t
LTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGVmZmVjdGl2ZVByZWNp
c2lvbiA9IE1hdGgubWluKHByZWNpc2lvbiwgMjApOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBpZiAobmV4dCA9PSAxMDEgfHwgbmV4dCA9PSA2OSkgewotICAgICAgICAgICAg
ICAgICAgYXJnVGV4dCA9IGN1cnJBcmcudG9FeHBvbmVudGlhbChlZmZlY3RpdmVQcmVjaXNpb24p
OwotICAgICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBleHBvbmVudCBoYXMgYXQgbGVh
c3QgMiBkaWdpdHMuCi0gICAgICAgICAgICAgICAgICBpZiAoL1tlRV1bLStdXGQkLy50ZXN0KGFy
Z1RleHQpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBhcmdUZXh0LnNsaWNlKDAs
IC0xKSArICcwJyArIGFyZ1RleHQuc2xpY2UoLTEpOwotICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIH0gZWxzZSBpZiAobmV4dCA9PSAxMDIgfHwgbmV4dCA9PSA3MCkgewotICAg
ICAgICAgICAgICAgICAgYXJnVGV4dCA9IGN1cnJBcmcudG9GaXhlZChlZmZlY3RpdmVQcmVjaXNp
b24pOwotICAgICAgICAgICAgICAgICAgaWYgKGN1cnJBcmcgPT09IDAgJiYgX19yZWFsbHlOZWdh
dGl2ZShjdXJyQXJnKSkgewotICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gJy0nICsgYXJn
VGV4dDsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgdmFyIHBhcnRzID0gYXJnVGV4dC5zcGxpdCgnZScpOwotICAgICAgICAgICAgICAgIGlm
IChpc0dlbmVyYWwgJiYgIWZsYWdBbHRlcm5hdGl2ZSkgewotICAgICAgICAgICAgICAgICAgLy8g
RGlzY2FyZCB0cmFpbGluZyB6ZXJvcyBhbmQgcGVyaW9kcy4KLSAgICAgICAgICAgICAgICAgIHdo
aWxlIChwYXJ0c1swXS5sZW5ndGggPiAxICYmIHBhcnRzWzBdLmluZGV4T2YoJy4nKSAhPSAtMSAm
JgotICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJ0c1swXS5zbGljZSgtMSkgPT0gJzAnIHx8
IHBhcnRzWzBdLnNsaWNlKC0xKSA9PSAnLicpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhcnRz
WzBdID0gcGFydHNbMF0uc2xpY2UoMCwgLTEpOwotICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgaGF2
ZSBhIHBlcmlvZCBpbiBhbHRlcm5hdGl2ZSBtb2RlLgotICAgICAgICAgICAgICAgICAgaWYgKGZs
YWdBbHRlcm5hdGl2ZSAmJiBhcmdUZXh0LmluZGV4T2YoJy4nKSA9PSAtMSkgcGFydHNbMF0gKz0g
Jy4nOwotICAgICAgICAgICAgICAgICAgLy8gWmVybyBwYWQgdW50aWwgcmVxdWlyZWQgcHJlY2lz
aW9uLgotICAgICAgICAgICAgICAgICAgd2hpbGUgKHByZWNpc2lvbiA+IGVmZmVjdGl2ZVByZWNp
c2lvbisrKSBwYXJ0c1swXSArPSAnMCc7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIGFyZ1RleHQgPSBwYXJ0c1swXSArIChwYXJ0cy5sZW5ndGggPiAxID8gJ2UnICsgcGFydHNb
MV0gOiAnJyk7Ci0gICAgICAgICAgICAgICAgLy8gQ2FwaXRhbGl6ZSAnRScgaWYgbmVlZGVkLgot
ICAgICAgICAgICAgICAgIGlmIChuZXh0ID09IDY5KSBhcmdUZXh0ID0gYXJnVGV4dC50b1VwcGVy
Q2FzZSgpOwotICAgICAgICAgICAgICAgIC8vIEFkZCBzaWduLgotICAgICAgICAgICAgICAgIGlm
IChmbGFnQWx3YXlzU2lnbmVkICYmIGN1cnJBcmcgPj0gMCkgewotICAgICAgICAgICAgICAgICAg
YXJnVGV4dCA9ICcrJyArIGFyZ1RleHQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgIC8vIEFkZCBwYWRkaW5nLgotICAgICAgICAgICAgICB3aGlsZSAo
YXJnVGV4dC5sZW5ndGggPCB3aWR0aCkgewotICAgICAgICAgICAgICAgIGlmIChmbGFnTGVmdEFs
aWduKSB7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ICs9ICcgJzsKLSAgICAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgKGZsYWdaZXJvUGFkICYmIChhcmdUZXh0
WzBdID09ICctJyB8fCBhcmdUZXh0WzBdID09ICcrJykpIHsKLSAgICAgICAgICAgICAgICAgICAg
YXJnVGV4dCA9IGFyZ1RleHRbMF0gKyAnMCcgKyBhcmdUZXh0LnNsaWNlKDEpOwotICAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IChmbGFnWmVy
b1BhZCA/ICcwJyA6ICcgJykgKyBhcmdUZXh0OwotICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAvLyBBZGp1c3QgY2Fz
ZS4KLSAgICAgICAgICAgICAgaWYgKG5leHQgPCA5NykgYXJnVGV4dCA9IGFyZ1RleHQudG9VcHBl
ckNhc2UoKTsKLSAgICAgICAgICAgICAgLy8gSW5zZXJ0IHRoZSByZXN1bHQgaW50byB0aGUgYnVm
ZmVyLgotICAgICAgICAgICAgICBhcmdUZXh0LnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uKGNo
cikgewotICAgICAgICAgICAgICAgIHJldC5wdXNoKGNoci5jaGFyQ29kZUF0KDApKTsKLSAgICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgY2FzZSAncyc6IHsKLSAgICAgICAgICAgICAgLy8gU3RyaW5nLgotICAgICAgICAgICAg
ICB2YXIgYXJnID0gZ2V0TmV4dEFyZygnaTgqJyk7Ci0gICAgICAgICAgICAgIHZhciBhcmdMZW5n
dGggPSBhcmcgPyBfc3RybGVuKGFyZykgOiAnKG51bGwpJy5sZW5ndGg7Ci0gICAgICAgICAgICAg
IGlmIChwcmVjaXNpb25TZXQpIGFyZ0xlbmd0aCA9IE1hdGgubWluKGFyZ0xlbmd0aCwgcHJlY2lz
aW9uKTsKLSAgICAgICAgICAgICAgaWYgKCFmbGFnTGVmdEFsaWduKSB7Ci0gICAgICAgICAgICAg
ICAgd2hpbGUgKGFyZ0xlbmd0aCA8IHdpZHRoLS0pIHsKLSAgICAgICAgICAgICAgICAgIHJldC5w
dXNoKDMyKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgaWYgKGFyZykgewotICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJnTGVu
Z3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgIHJldC5wdXNoKEhFQVBVOFsoKGFyZysrKXww
KV0pOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICByZXQgPSByZXQuY29uY2F0KGludEFycmF5RnJvbVN0cmluZygnKG51bGwpJy5zdWJz
dHIoMCwgYXJnTGVuZ3RoKSwgdHJ1ZSkpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
IGlmIChmbGFnTGVmdEFsaWduKSB7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKGFyZ0xlbmd0aCA8
IHdpZHRoLS0pIHsKLSAgICAgICAgICAgICAgICAgIHJldC5wdXNoKDMyKTsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBjYXNlICdjJzogewotICAgICAgICAgICAgICAvLyBDaGFyYWN0ZXIu
Ci0gICAgICAgICAgICAgIGlmIChmbGFnTGVmdEFsaWduKSByZXQucHVzaChnZXROZXh0QXJnKCdp
OCcpKTsKLSAgICAgICAgICAgICAgd2hpbGUgKC0td2lkdGggPiAwKSB7Ci0gICAgICAgICAgICAg
ICAgcmV0LnB1c2goMzIpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmICghZmxh
Z0xlZnRBbGlnbikgcmV0LnB1c2goZ2V0TmV4dEFyZygnaTgnKSk7Ci0gICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAnbic6IHsKLSAgICAgICAgICAg
ICAgLy8gV3JpdGUgdGhlIGxlbmd0aCB3cml0dGVuIHNvIGZhciB0byB0aGUgbmV4dCBwYXJhbWV0
ZXIuCi0gICAgICAgICAgICAgIHZhciBwdHIgPSBnZXROZXh0QXJnKCdpMzIqJyk7Ci0gICAgICAg
ICAgICAgIEhFQVAzMlsoKHB0cik+PjIpXT1yZXQubGVuZ3RoCi0gICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAnJSc6IHsKLSAgICAgICAgICAgICAg
Ly8gTGl0ZXJhbCBwZXJjZW50IHNpZ24uCi0gICAgICAgICAgICAgIHJldC5wdXNoKGN1cnIpOwot
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGRlZmF1bHQ6
IHsKLSAgICAgICAgICAgICAgLy8gVW5rbm93biBzcGVjaWZpZXJzIHJlbWFpbiB1bnRvdWNoZWQu
Ci0gICAgICAgICAgICAgIGZvciAodmFyIGkgPSBzdGFydFRleHRJbmRleDsgaSA8IHRleHRJbmRl
eCArIDI7IGkrKykgewotICAgICAgICAgICAgICAgIHJldC5wdXNoKEhFQVA4WyhpKV0pOwotICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIHRleHRJ
bmRleCArPSAyOwotICAgICAgICAgIC8vIFRPRE86IFN1cHBvcnQgYS9BIChoZXggZmxvYXQpIGFu
ZCBtIChsYXN0IGVycm9yKSBzcGVjaWZpZXJzLgotICAgICAgICAgIC8vIFRPRE86IFN1cHBvcnQg
JTEke3NwZWNpZmllcn0gZm9yIGFyZyBzZWxlY3Rpb24uCi0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgcmV0LnB1c2goY3Vycik7Ci0gICAgICAgICAgdGV4dEluZGV4ICs9IDE7Ci0gICAgICAg
IH0KLSAgICAgIH0KLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfWZ1bmN0aW9uIF9zbnByaW50Zihz
LCBuLCBmb3JtYXQsIHZhcmFyZ3MpIHsKLSAgICAgIC8vIGludCBzbnByaW50ZihjaGFyICpyZXN0
cmljdCBzLCBzaXplX3QgbiwgY29uc3QgY2hhciAqcmVzdHJpY3QgZm9ybWF0LCAuLi4pOwotICAg
ICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5j
dGlvbnMvcHJpbnRmLmh0bWwKLSAgICAgIHZhciByZXN1bHQgPSBfX2Zvcm1hdFN0cmluZyhmb3Jt
YXQsIHZhcmFyZ3MpOwotICAgICAgdmFyIGxpbWl0ID0gKG4gPT09IHVuZGVmaW5lZCkgPyByZXN1
bHQubGVuZ3RoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IE1hdGgubWlu
KHJlc3VsdC5sZW5ndGgsIE1hdGgubWF4KG4gLSAxLCAwKSk7Ci0gICAgICBpZiAocyA8IDApIHsK
LSAgICAgICAgcyA9IC1zOwotICAgICAgICB2YXIgYnVmID0gX21hbGxvYyhsaW1pdCsxKTsKLSAg
ICAgICAgSEVBUDMyWygocyk+PjIpXT1idWY7Ci0gICAgICAgIHMgPSBidWY7Ci0gICAgICB9Ci0g
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbWl0OyBpKyspIHsKLSAgICAgICAgSEVBUDhbKCgo
cykrKGkpKXwwKV09cmVzdWx0W2ldOwotICAgICAgfQotICAgICAgaWYgKGxpbWl0IDwgbiB8fCAo
biA9PT0gdW5kZWZpbmVkKSkgSEVBUDhbKCgocykrKGkpKXwwKV09MDsKLSAgICAgIHJldHVybiBy
ZXN1bHQubGVuZ3RoOwotICAgIH0KLSAgZnVuY3Rpb24gX3N5c2NvbmYobmFtZSkgewotICAgICAg
Ly8gbG9uZyBzeXNjb25mKGludCBuYW1lKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91
cC5vcmcvb25saW5lcHVicy8wMDk2OTUzOTkvZnVuY3Rpb25zL3N5c2NvbmYuaHRtbAotICAgICAg
c3dpdGNoKG5hbWUpIHsKLSAgICAgICAgY2FzZSA4OiByZXR1cm4gUEFHRV9TSVpFOwotICAgICAg
ICBjYXNlIDU0OgotICAgICAgICBjYXNlIDU2OgotICAgICAgICBjYXNlIDIxOgotICAgICAgICBj
YXNlIDYxOgotICAgICAgICBjYXNlIDYzOgotICAgICAgICBjYXNlIDIyOgotICAgICAgICBjYXNl
IDY3OgotICAgICAgICBjYXNlIDIzOgotICAgICAgICBjYXNlIDI0OgotICAgICAgICBjYXNlIDI1
OgotICAgICAgICBjYXNlIDI2OgotICAgICAgICBjYXNlIDI3OgotICAgICAgICBjYXNlIDY5Ogot
ICAgICAgICBjYXNlIDI4OgotICAgICAgICBjYXNlIDEwMToKLSAgICAgICAgY2FzZSA3MDoKLSAg
ICAgICAgY2FzZSA3MToKLSAgICAgICAgY2FzZSAyOToKLSAgICAgICAgY2FzZSAzMDoKLSAgICAg
ICAgY2FzZSAxOTk6Ci0gICAgICAgIGNhc2UgNzU6Ci0gICAgICAgIGNhc2UgNzY6Ci0gICAgICAg
IGNhc2UgMzI6Ci0gICAgICAgIGNhc2UgNDM6Ci0gICAgICAgIGNhc2UgNDQ6Ci0gICAgICAgIGNh
c2UgODA6Ci0gICAgICAgIGNhc2UgNDY6Ci0gICAgICAgIGNhc2UgNDc6Ci0gICAgICAgIGNhc2Ug
NDU6Ci0gICAgICAgIGNhc2UgNDg6Ci0gICAgICAgIGNhc2UgNDk6Ci0gICAgICAgIGNhc2UgNDI6
Ci0gICAgICAgIGNhc2UgODI6Ci0gICAgICAgIGNhc2UgMzM6Ci0gICAgICAgIGNhc2UgNzoKLSAg
ICAgICAgY2FzZSAxMDg6Ci0gICAgICAgIGNhc2UgMTA5OgotICAgICAgICBjYXNlIDEwNzoKLSAg
ICAgICAgY2FzZSAxMTI6Ci0gICAgICAgIGNhc2UgMTE5OgotICAgICAgICBjYXNlIDEyMToKLSAg
ICAgICAgICByZXR1cm4gMjAwODA5OwotICAgICAgICBjYXNlIDEzOgotICAgICAgICBjYXNlIDEw
NDoKLSAgICAgICAgY2FzZSA5NDoKLSAgICAgICAgY2FzZSA5NToKLSAgICAgICAgY2FzZSAzNDoK
LSAgICAgICAgY2FzZSAzNToKLSAgICAgICAgY2FzZSA3NzoKLSAgICAgICAgY2FzZSA4MToKLSAg
ICAgICAgY2FzZSA4MzoKLSAgICAgICAgY2FzZSA4NDoKLSAgICAgICAgY2FzZSA4NToKLSAgICAg
ICAgY2FzZSA4NjoKLSAgICAgICAgY2FzZSA4NzoKLSAgICAgICAgY2FzZSA4ODoKLSAgICAgICAg
Y2FzZSA4OToKLSAgICAgICAgY2FzZSA5MDoKLSAgICAgICAgY2FzZSA5MToKLSAgICAgICAgY2Fz
ZSA5NDoKLSAgICAgICAgY2FzZSA5NToKLSAgICAgICAgY2FzZSAxMTA6Ci0gICAgICAgIGNhc2Ug
MTExOgotICAgICAgICBjYXNlIDExMzoKLSAgICAgICAgY2FzZSAxMTQ6Ci0gICAgICAgIGNhc2Ug
MTE1OgotICAgICAgICBjYXNlIDExNjoKLSAgICAgICAgY2FzZSAxMTc6Ci0gICAgICAgIGNhc2Ug
MTE4OgotICAgICAgICBjYXNlIDEyMDoKLSAgICAgICAgY2FzZSA0MDoKLSAgICAgICAgY2FzZSAx
NjoKLSAgICAgICAgY2FzZSA3OToKLSAgICAgICAgY2FzZSAxOToKLSAgICAgICAgICByZXR1cm4g
LTE7Ci0gICAgICAgIGNhc2UgOTI6Ci0gICAgICAgIGNhc2UgOTM6Ci0gICAgICAgIGNhc2UgNToK
LSAgICAgICAgY2FzZSA3MjoKLSAgICAgICAgY2FzZSA2OgotICAgICAgICBjYXNlIDc0OgotICAg
ICAgICBjYXNlIDkyOgotICAgICAgICBjYXNlIDkzOgotICAgICAgICBjYXNlIDk2OgotICAgICAg
ICBjYXNlIDk3OgotICAgICAgICBjYXNlIDk4OgotICAgICAgICBjYXNlIDk5OgotICAgICAgICBj
YXNlIDEwMjoKLSAgICAgICAgY2FzZSAxMDM6Ci0gICAgICAgIGNhc2UgMTA1OgotICAgICAgICAg
IHJldHVybiAxOwotICAgICAgICBjYXNlIDM4OgotICAgICAgICBjYXNlIDY2OgotICAgICAgICBj
YXNlIDUwOgotICAgICAgICBjYXNlIDUxOgotICAgICAgICBjYXNlIDQ6Ci0gICAgICAgICAgcmV0
dXJuIDEwMjQ7Ci0gICAgICAgIGNhc2UgMTU6Ci0gICAgICAgIGNhc2UgNjQ6Ci0gICAgICAgIGNh
c2UgNDE6Ci0gICAgICAgICAgcmV0dXJuIDMyOwotICAgICAgICBjYXNlIDU1OgotICAgICAgICBj
YXNlIDM3OgotICAgICAgICBjYXNlIDE3OgotICAgICAgICAgIHJldHVybiAyMTQ3NDgzNjQ3Owot
ICAgICAgICBjYXNlIDE4OgotICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgcmV0dXJuIDQ3ODM5
OwotICAgICAgICBjYXNlIDU5OgotICAgICAgICBjYXNlIDU3OgotICAgICAgICAgIHJldHVybiA5
OTsKLSAgICAgICAgY2FzZSA2ODoKLSAgICAgICAgY2FzZSA1ODoKLSAgICAgICAgICByZXR1cm4g
MjA0ODsKLSAgICAgICAgY2FzZSAwOiByZXR1cm4gMjA5NzE1MjsKLSAgICAgICAgY2FzZSAzOiBy
ZXR1cm4gNjU1MzY7Ci0gICAgICAgIGNhc2UgMTQ6IHJldHVybiAzMjc2ODsKLSAgICAgICAgY2Fz
ZSA3MzogcmV0dXJuIDMyNzY3OwotICAgICAgICBjYXNlIDM5OiByZXR1cm4gMTYzODQ7Ci0gICAg
ICAgIGNhc2UgNjA6IHJldHVybiAxMDAwOwotICAgICAgICBjYXNlIDEwNjogcmV0dXJuIDcwMDsK
LSAgICAgICAgY2FzZSA1MjogcmV0dXJuIDI1NjsKLSAgICAgICAgY2FzZSA2MjogcmV0dXJuIDI1
NTsKLSAgICAgICAgY2FzZSAyOiByZXR1cm4gMTAwOwotICAgICAgICBjYXNlIDY1OiByZXR1cm4g
NjQ7Ci0gICAgICAgIGNhc2UgMzY6IHJldHVybiAyMDsKLSAgICAgICAgY2FzZSAxMDA6IHJldHVy
biAxNjsKLSAgICAgICAgY2FzZSAyMDogcmV0dXJuIDY7Ci0gICAgICAgIGNhc2UgNTM6IHJldHVy
biA0OwotICAgICAgICBjYXNlIDEwOiByZXR1cm4gMTsKLSAgICAgIH0KLSAgICAgIF9fX3NldEVy
ck5vKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICByZXR1cm4gLTE7Ci0gICAgfQotICBmdW5j
dGlvbiBfX19jeGFfZ3VhcmRfYWJvcnQoKSB7fQotICBmdW5jdGlvbiBfaXN4ZGlnaXQoY2hyKSB7
Ci0gICAgICByZXR1cm4gKGNociA+PSA0OCAmJiBjaHIgPD0gNTcpIHx8Ci0gICAgICAgICAgICAg
KGNociA+PSA5NyAmJiBjaHIgPD0gMTAyKSB8fAotICAgICAgICAgICAgIChjaHIgPj0gNjUgJiYg
Y2hyIDw9IDcwKTsKLSAgICB9dmFyIF9pc3hkaWdpdF9sPV9pc3hkaWdpdDsKLSAgZnVuY3Rpb24g
X2lzZGlnaXQoY2hyKSB7Ci0gICAgICByZXR1cm4gY2hyID49IDQ4ICYmIGNociA8PSA1NzsKLSAg
ICB9dmFyIF9pc2RpZ2l0X2w9X2lzZGlnaXQ7Ci0gIGZ1bmN0aW9uIF9faXNGbG9hdCh0ZXh0KSB7
Ci0gICAgICByZXR1cm4gISEoL15bKy1dP1swLTldKlwuP1swLTldKyhbZUVdWystXT9bMC05XSsp
PyQvLmV4ZWModGV4dCkpOwotICAgIH1mdW5jdGlvbiBfX3NjYW5TdHJpbmcoZm9ybWF0LCBnZXQs
IHVuZ2V0LCB2YXJhcmdzKSB7Ci0gICAgICBpZiAoIV9fc2NhblN0cmluZy53aGl0ZVNwYWNlKSB7
Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlID0ge307Ci0gICAgICAgIF9fc2NhblN0
cmluZy53aGl0ZVNwYWNlWzMyXSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNl
WzldID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbMTBdID0gMTsKLSAgICAg
ICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbMTFdID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5n
LndoaXRlU3BhY2VbMTJdID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbMTNd
ID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbJyAnXSA9IDE7Ci0gICAgICAg
IF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWydcdCddID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5n
LndoaXRlU3BhY2VbJ1xuJ10gPSAxOwotICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVsn
XHYnXSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWydcZiddID0gMTsKLSAg
ICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbJ1xyJ10gPSAxOwotICAgICAgfQotICAgICAg
Ly8gU3VwcG9ydHMgJXgsICU0eCwgJWQuJWQsICVsbGQsICVzLCAlZiwgJWxmLgotICAgICAgLy8g
VE9ETzogU3VwcG9ydCBhbGwgZm9ybWF0IHNwZWNpZmllcnMuCi0gICAgICBmb3JtYXQgPSBQb2lu
dGVyX3N0cmluZ2lmeShmb3JtYXQpOwotICAgICAgdmFyIHNvRmFyID0gMDsKLSAgICAgIGlmIChm
b3JtYXQuaW5kZXhPZignJW4nKSA+PSAwKSB7Ci0gICAgICAgIC8vIG5lZWQgdG8gdHJhY2sgc29G
YXIKLSAgICAgICAgdmFyIF9nZXQgPSBnZXQ7Ci0gICAgICAgIGdldCA9IGZ1bmN0aW9uKCkgewot
ICAgICAgICAgIHNvRmFyKys7Ci0gICAgICAgICAgcmV0dXJuIF9nZXQoKTsKLSAgICAgICAgfQot
ICAgICAgICB2YXIgX3VuZ2V0ID0gdW5nZXQ7Ci0gICAgICAgIHVuZ2V0ID0gZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgc29GYXItLTsKLSAgICAgICAgICByZXR1cm4gX3VuZ2V0KCk7Ci0gICAgICAg
IH0KLSAgICAgIH0KLSAgICAgIHZhciBmb3JtYXRJbmRleCA9IDA7Ci0gICAgICB2YXIgYXJnc2kg
PSAwOwotICAgICAgdmFyIGZpZWxkcyA9IDA7Ci0gICAgICB2YXIgYXJnSW5kZXggPSAwOwotICAg
ICAgdmFyIG5leHQ7Ci0gICAgICBtYWluTG9vcDoKLSAgICAgIGZvciAodmFyIGZvcm1hdEluZGV4
ID0gMDsgZm9ybWF0SW5kZXggPCBmb3JtYXQubGVuZ3RoOykgewotICAgICAgICBpZiAoZm9ybWF0
W2Zvcm1hdEluZGV4XSA9PT0gJyUnICYmIGZvcm1hdFtmb3JtYXRJbmRleCsxXSA9PSAnbicpIHsK
LSAgICAgICAgICB2YXIgYXJnUHRyID0gSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4y
KV07Ci0gICAgICAgICAgYXJnSW5kZXggKz0gUnVudGltZS5nZXRBbGlnblNpemUoJ3ZvaWQqJywg
bnVsbCwgdHJ1ZSk7Ci0gICAgICAgICAgSEVBUDMyWygoYXJnUHRyKT4+MildPXNvRmFyOwotICAg
ICAgICAgIGZvcm1hdEluZGV4ICs9IDI7Ci0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT09ICclJykgewotICAgICAgICAgIHZh
ciBuZXh0QyA9IGZvcm1hdC5pbmRleE9mKCdjJywgZm9ybWF0SW5kZXgrMSk7Ci0gICAgICAgICAg
aWYgKG5leHRDID4gMCkgewotICAgICAgICAgICAgdmFyIG1heHggPSAxOwotICAgICAgICAgICAg
aWYgKG5leHRDID4gZm9ybWF0SW5kZXgrMSkgewotICAgICAgICAgICAgICB2YXIgc3ViID0gZm9y
bWF0LnN1YnN0cmluZyhmb3JtYXRJbmRleCsxLCBuZXh0QykKLSAgICAgICAgICAgICAgbWF4eCA9
IHBhcnNlSW50KHN1Yik7Ci0gICAgICAgICAgICAgIGlmIChtYXh4ICE9IHN1YikgbWF4eCA9IDA7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobWF4eCkgewotICAgICAgICAgICAgICB2
YXIgYXJnUHRyID0gSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4yKV07Ci0gICAgICAg
ICAgICAgIGFyZ0luZGV4ICs9IFJ1bnRpbWUuZ2V0QWxpZ25TaXplKCd2b2lkKicsIG51bGwsIHRy
dWUpOwotICAgICAgICAgICAgICBmaWVsZHMrKzsKLSAgICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBtYXh4OyBpKyspIHsKLSAgICAgICAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAg
ICAgICAgICAgICAgSEVBUDhbKChhcmdQdHIrKyl8MCldPW5leHQ7Ci0gICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgZm9ybWF0SW5kZXggKz0gbmV4dEMgLSBmb3JtYXRJbmRleCArIDE7Ci0g
ICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgICAgICAvLyByZW1vdmUgd2hpdGVzcGFjZQotICAgICAgICB3aGlsZSAoMSkgewot
ICAgICAgICAgIG5leHQgPSBnZXQoKTsKLSAgICAgICAgICBpZiAobmV4dCA9PSAwKSByZXR1cm4g
ZmllbGRzOwotICAgICAgICAgIGlmICghKG5leHQgaW4gX19zY2FuU3RyaW5nLndoaXRlU3BhY2Up
KSBicmVhazsKLSAgICAgICAgfQotICAgICAgICB1bmdldCgpOwotICAgICAgICBpZiAoZm9ybWF0
W2Zvcm1hdEluZGV4XSA9PT0gJyUnKSB7Ci0gICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAg
ICAgICB2YXIgc3VwcHJlc3NBc3NpZ25tZW50ID0gZmFsc2U7Ci0gICAgICAgICAgaWYgKGZvcm1h
dFtmb3JtYXRJbmRleF0gPT0gJyonKSB7Ci0gICAgICAgICAgICBzdXBwcmVzc0Fzc2lnbm1lbnQg
PSB0cnVlOwotICAgICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgICB9Ci0gICAgICAg
ICAgdmFyIG1heFNwZWNpZmllclN0YXJ0ID0gZm9ybWF0SW5kZXg7Ci0gICAgICAgICAgd2hpbGUg
KGZvcm1hdFtmb3JtYXRJbmRleF0uY2hhckNvZGVBdCgwKSA+PSA0OCAmJgotICAgICAgICAgICAg
ICAgICBmb3JtYXRbZm9ybWF0SW5kZXhdLmNoYXJDb2RlQXQoMCkgPD0gNTcpIHsKLSAgICAgICAg
ICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBtYXhfOwotICAg
ICAgICAgIGlmIChmb3JtYXRJbmRleCAhPSBtYXhTcGVjaWZpZXJTdGFydCkgewotICAgICAgICAg
ICAgbWF4XyA9IHBhcnNlSW50KGZvcm1hdC5zbGljZShtYXhTcGVjaWZpZXJTdGFydCwgZm9ybWF0
SW5kZXgpLCAxMCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBsb25nXyA9IGZhbHNlOwot
ICAgICAgICAgIHZhciBoYWxmID0gZmFsc2U7Ci0gICAgICAgICAgdmFyIGxvbmdMb25nID0gZmFs
c2U7Ci0gICAgICAgICAgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT0gJ2wnKSB7Ci0gICAgICAg
ICAgICBsb25nXyA9IHRydWU7Ci0gICAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICAg
ICAgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT0gJ2wnKSB7Ci0gICAgICAgICAgICAgIGxvbmdM
b25nID0gdHJ1ZTsKLSAgICAgICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT0gJ2gnKSB7Ci0gICAg
ICAgICAgICBoYWxmID0gdHJ1ZTsKLSAgICAgICAgICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAg
ICAgfQotICAgICAgICAgIHZhciB0eXBlID0gZm9ybWF0W2Zvcm1hdEluZGV4XTsKLSAgICAgICAg
ICBmb3JtYXRJbmRleCsrOwotICAgICAgICAgIHZhciBjdXJyID0gMDsKLSAgICAgICAgICB2YXIg
YnVmZmVyID0gW107Ci0gICAgICAgICAgLy8gUmVhZCBjaGFyYWN0ZXJzIGFjY29yZGluZyB0byB0
aGUgZm9ybWF0LiBmbG9hdHMgYXJlIHRyaWNraWVyLCB0aGV5IG1heSBiZSBpbiBhbiB1bmZsb2F0
IHN0YXRlIGluIHRoZSBtaWRkbGUsIHRoZW4gYmUgYSB2YWxpZCBmbG9hdCBsYXRlcgotICAgICAg
ICAgIGlmICh0eXBlID09ICdmJyB8fCB0eXBlID09ICdlJyB8fCB0eXBlID09ICdnJyB8fAotICAg
ICAgICAgICAgICB0eXBlID09ICdGJyB8fCB0eXBlID09ICdFJyB8fCB0eXBlID09ICdHJykgewot
ICAgICAgICAgICAgdmFyIGxhc3QgPSAwOwotICAgICAgICAgICAgbmV4dCA9IGdldCgpOwotICAg
ICAgICAgICAgd2hpbGUgKG5leHQgPiAwKSB7Ci0gICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKFN0
cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpOwotICAgICAgICAgICAgICBpZiAoX19pc0Zsb2F0KGJ1
ZmZlci5qb2luKCcnKSkpIHsKLSAgICAgICAgICAgICAgICBsYXN0ID0gYnVmZmVyLmxlbmd0aDsK
LSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1ZmZlci5sZW5ndGggLSBsYXN0
ICsgMTsgaSsrKSB7Ci0gICAgICAgICAgICAgIHVuZ2V0KCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBidWZmZXIubGVuZ3RoID0gbGFzdDsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgbmV4dCA9IGdldCgpOwotICAgICAgICAgICAgdmFyIGZpcnN0ID0gdHJ1ZTsKLSAgICAg
ICAgICAgIHdoaWxlICgoY3VyciA8IG1heF8gfHwgaXNOYU4obWF4XykpICYmIG5leHQgPiAwKSB7
Ci0gICAgICAgICAgICAgIGlmICghKG5leHQgaW4gX19zY2FuU3RyaW5nLndoaXRlU3BhY2UpICYm
IC8vIHN0b3Agb24gd2hpdGVzcGFjZQotICAgICAgICAgICAgICAgICAgKHR5cGUgPT0gJ3MnIHx8
Ci0gICAgICAgICAgICAgICAgICAgKCh0eXBlID09PSAnZCcgfHwgdHlwZSA9PSAndScgfHwgdHlw
ZSA9PSAnaScpICYmICgobmV4dCA+PSA0OCAmJiBuZXh0IDw9IDU3KSB8fAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGZpcnN0ICYmIG5leHQgPT0gNDUpKSkgfHwKLSAgICAgICAgICAgICAgICAgICAoKHR5cGUgPT09
ICd4JyB8fCB0eXBlID09PSAnWCcpICYmIChuZXh0ID49IDQ4ICYmIG5leHQgPD0gNTcgfHwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0ID49IDk3ICYmIG5leHQgPD0g
MTAyIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCA+PSA2NSAm
JiBuZXh0IDw9IDcwKSkpICYmCi0gICAgICAgICAgICAgICAgICAoZm9ybWF0SW5kZXggPj0gZm9y
bWF0Lmxlbmd0aCB8fCBuZXh0ICE9PSBmb3JtYXRbZm9ybWF0SW5kZXhdLmNoYXJDb2RlQXQoMCkp
KSB7IC8vIFN0b3Agd2hlbiB3ZSByZWFkIHNvbWV0aGluZyB0aGF0IGlzIGNvbWluZyB1cAotICAg
ICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpOwotICAg
ICAgICAgICAgICAgIG5leHQgPSBnZXQoKTsKLSAgICAgICAgICAgICAgICBjdXJyKys7Ci0gICAg
ICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgdW5nZXQoKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgg
PT09IDApIHJldHVybiAwOyAgLy8gRmFpbHVyZS4KLSAgICAgICAgICBpZiAoc3VwcHJlc3NBc3Np
Z25tZW50KSBjb250aW51ZTsKLSAgICAgICAgICB2YXIgdGV4dCA9IGJ1ZmZlci5qb2luKCcnKTsK
LSAgICAgICAgICB2YXIgYXJnUHRyID0gSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4y
KV07Ci0gICAgICAgICAgYXJnSW5kZXggKz0gUnVudGltZS5nZXRBbGlnblNpemUoJ3ZvaWQqJywg
bnVsbCwgdHJ1ZSk7Ci0gICAgICAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgICAgICBjYXNl
ICdkJzogY2FzZSAndSc6IGNhc2UgJ2knOgotICAgICAgICAgICAgICBpZiAoaGFsZikgewotICAg
ICAgICAgICAgICAgIEhFQVAxNlsoKGFyZ1B0cik+PjEpXT1wYXJzZUludCh0ZXh0LCAxMCk7Ci0g
ICAgICAgICAgICAgIH0gZWxzZSBpZiAobG9uZ0xvbmcpIHsKLSAgICAgICAgICAgICAgICAodGVt
cEk2NCA9IFtwYXJzZUludCh0ZXh0LCAxMCk+Pj4wLCh0ZW1wRG91YmxlPXBhcnNlSW50KHRleHQs
IDEwKSwoKyhNYXRoLmFicyh0ZW1wRG91YmxlKSkpID49ICgrKDEpKSA/ICh0ZW1wRG91YmxlID4g
KCsoMCkpID8gKChNYXRoLm1pbigoKyhNYXRoLmZsb29yKCh0ZW1wRG91YmxlKS8oKyg0Mjk0OTY3
Mjk2KSkpKSksICgrKDQyOTQ5NjcyOTUpKSkpfDApPj4+MCA6ICh+figoKyhNYXRoLmNlaWwoKHRl
bXBEb3VibGUgLSArKCgofn4odGVtcERvdWJsZSkpKT4+PjApKS8oKyg0Mjk0OTY3Mjk2KSkpKSkp
KT4+PjApIDogMCldLEhFQVAzMlsoKGFyZ1B0cik+PjIpXT10ZW1wSTY0WzBdLEhFQVAzMlsoKChh
cmdQdHIpKyg0KSk+PjIpXT10ZW1wSTY0WzFdKTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBIRUFQMzJbKChhcmdQdHIpPj4yKV09cGFyc2VJbnQodGV4dCwgMTApOwot
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSAn
WCc6Ci0gICAgICAgICAgICBjYXNlICd4JzoKLSAgICAgICAgICAgICAgSEVBUDMyWygoYXJnUHRy
KT4+MildPXBhcnNlSW50KHRleHQsIDE2KQotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIGNhc2UgJ0YnOgotICAgICAgICAgICAgY2FzZSAnZic6Ci0gICAgICAgICAgICBjYXNlICdF
JzoKLSAgICAgICAgICAgIGNhc2UgJ2UnOgotICAgICAgICAgICAgY2FzZSAnRyc6Ci0gICAgICAg
ICAgICBjYXNlICdnJzoKLSAgICAgICAgICAgIGNhc2UgJ0UnOgotICAgICAgICAgICAgICAvLyBm
YWxsdGhyb3VnaCBpbnRlbmRlZAotICAgICAgICAgICAgICBpZiAobG9uZ18pIHsKLSAgICAgICAg
ICAgICAgICBIRUFQRjY0WygoYXJnUHRyKT4+MyldPXBhcnNlRmxvYXQodGV4dCkKLSAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBIRUFQRjMyWygoYXJnUHRyKT4+MildPXBh
cnNlRmxvYXQodGV4dCkKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGNhc2UgJ3MnOgotICAgICAgICAgICAgICB2YXIgYXJyYXkgPSBpbnRBcnJheUZy
b21TdHJpbmcodGV4dCk7Ci0gICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYXJyYXku
bGVuZ3RoOyBqKyspIHsKLSAgICAgICAgICAgICAgICBIRUFQOFsoKChhcmdQdHIpKyhqKSl8MCld
PWFycmF5W2pdCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgfQotICAgICAgICAgIGZpZWxkcysrOwotICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdFtmb3Jt
YXRJbmRleF0gaW4gX19zY2FuU3RyaW5nLndoaXRlU3BhY2UpIHsKLSAgICAgICAgICBuZXh0ID0g
Z2V0KCk7Ci0gICAgICAgICAgd2hpbGUgKG5leHQgaW4gX19zY2FuU3RyaW5nLndoaXRlU3BhY2Up
IHsKLSAgICAgICAgICAgIGlmIChuZXh0IDw9IDApIGJyZWFrIG1haW5Mb29wOyAgLy8gRW5kIG9m
IGlucHV0LgotICAgICAgICAgICAgbmV4dCA9IGdldCgpOwotICAgICAgICAgIH0KLSAgICAgICAg
ICB1bmdldChuZXh0KTsKLSAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgIC8vIE5vdCBhIHNwZWNpZmllci4KLSAgICAgICAgICBuZXh0ID0gZ2V0KCk7
Ci0gICAgICAgICAgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0uY2hhckNvZGVBdCgwKSAhPT0gbmV4
dCkgewotICAgICAgICAgICAgdW5nZXQobmV4dCk7Ci0gICAgICAgICAgICBicmVhayBtYWluTG9v
cDsKLSAgICAgICAgICB9Ci0gICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgfQotICAg
ICAgfQotICAgICAgcmV0dXJuIGZpZWxkczsKLSAgICB9ZnVuY3Rpb24gX3NzY2FuZihzLCBmb3Jt
YXQsIHZhcmFyZ3MpIHsKLSAgICAgIC8vIGludCBzc2NhbmYoY29uc3QgY2hhciAqcmVzdHJpY3Qg
cywgY29uc3QgY2hhciAqcmVzdHJpY3QgZm9ybWF0LCAuLi4gKTsKLSAgICAgIC8vIGh0dHA6Ly9w
dWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3NjYW5mLmh0
bWwKLSAgICAgIHZhciBpbmRleCA9IDA7Ci0gICAgICB2YXIgZ2V0ID0gZnVuY3Rpb24oKSB7IHJl
dHVybiBIRUFQOFsoKChzKSsoaW5kZXgrKykpfDApXTsgfTsKLSAgICAgIHZhciB1bmdldCA9IGZ1
bmN0aW9uKCkgeyBpbmRleC0tOyB9OwotICAgICAgcmV0dXJuIF9fc2NhblN0cmluZyhmb3JtYXQs
IGdldCwgdW5nZXQsIHZhcmFyZ3MpOwotICAgIH0KLSAgZnVuY3Rpb24gX19aN2NhdG9wZW5QS2Np
KCkgeyB0aHJvdyAnY2F0b3BlbiBub3QgaW1wbGVtZW50ZWQnIH0KLSAgZnVuY3Rpb24gX19aN2Nh
dGdldHNQOF9ubF9jYXRkaWlQS2MoKSB7IHRocm93ICdjYXRnZXRzIG5vdCBpbXBsZW1lbnRlZCcg
fQotICBmdW5jdGlvbiBfX1o4Y2F0Y2xvc2VQOF9ubF9jYXRkKCkgeyB0aHJvdyAnY2F0Y2xvc2Ug
bm90IGltcGxlbWVudGVkJyB9Ci0gIGZ1bmN0aW9uIF9uZXdsb2NhbGUobWFzaywgbG9jYWxlLCBi
YXNlKSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9mcmVlbG9jYWxlKGxv
Y2FsZSkge30KLSAgZnVuY3Rpb24gX19fY3R5cGVfYl9sb2MoKSB7Ci0gICAgICAvLyBodHRwOi8v
cmVmc3BlY3MuZnJlZXN0YW5kYXJkcy5vcmcvTFNCXzMuMC4wL0xTQi1Db3JlLWdlbmVyaWMvTFNC
LUNvcmUtZ2VuZXJpYy9iYXNlbGliLS0tY3R5cGUtYi1sb2MuaHRtbAotICAgICAgdmFyIG1lID0g
X19fY3R5cGVfYl9sb2M7Ci0gICAgICBpZiAoIW1lLnJldCkgewotICAgICAgICB2YXIgdmFsdWVz
ID0gWwotICAgICAgICAgIDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwKLSAgICAgICAgICAwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsCi0gICAgICAgICAgMCwwLDAsMCww
LDAsMCwwLDAsMCwyLDIsMiwyLDIsMiwyLDIsMiw4MTk1LDgxOTQsODE5NCw4MTk0LDgxOTQsMiwy
LDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMjQ1NzcsNDkxNTYsNDkxNTYsNDkxNTYs
Ci0gICAgICAgICAgNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkx
NTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNTUzMDQsNTUzMDQsNTUzMDQsNTUzMDQsNTUzMDQs
NTUzMDQsNTUzMDQsNTUzMDQsCi0gICAgICAgICAgNTUzMDQsNTUzMDQsNDkxNTYsNDkxNTYsNDkx
NTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNTQ1MzYsNTQ1MzYsNTQ1MzYsNTQ1MzYsNTQ1MzYs
NTQ1MzYsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsCi0gICAgICAgICAgNTA0NDAsNTA0
NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAs
NTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsCi0g
ICAgICAgICAgNDkxNTYsNTQ3OTIsNTQ3OTIsNTQ3OTIsNTQ3OTIsNTQ3OTIsNTQ3OTIsNTA2OTYs
NTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2
OTYsNTA2OTYsNTA2OTYsCi0gICAgICAgICAgNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYs
NTA2OTYsNTA2OTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsMiwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLAotICAgICAgICAgIDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwKLSAgICAgICAg
ICAwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAKLSAgICAgICAgXTsKLSAgICAgICAgdmFy
IGkxNnNpemUgPSAyOwotICAgICAgICB2YXIgYXJyID0gX21hbGxvYyh2YWx1ZXMubGVuZ3RoICog
aTE2c2l6ZSk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsr
KSB7Ci0gICAgICAgICAgSEVBUDE2WygoKGFycikrKGkgKiBpMTZzaXplKSk+PjEpXT12YWx1ZXNb
aV0KLSAgICAgICAgfQotICAgICAgICBtZS5yZXQgPSBhbGxvY2F0ZShbYXJyICsgMTI4ICogaTE2
c2l6ZV0sICdpMTYqJywgQUxMT0NfTk9STUFMKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBtZS5y
ZXQ7Ci0gICAgfQotICBmdW5jdGlvbiBfX19jdHlwZV90b2xvd2VyX2xvYygpIHsKLSAgICAgIC8v
IGh0dHA6Ly9yZWZzcGVjcy5mcmVlc3RhbmRhcmRzLm9yZy9MU0JfMy4xLjEvTFNCLUNvcmUtZ2Vu
ZXJpYy9MU0ItQ29yZS1nZW5lcmljL2xpYnV0aWwtLS1jdHlwZS10b2xvd2VyLWxvYy5odG1sCi0g
ICAgICB2YXIgbWUgPSBfX19jdHlwZV90b2xvd2VyX2xvYzsKLSAgICAgIGlmICghbWUucmV0KSB7
Ci0gICAgICAgIHZhciB2YWx1ZXMgPSBbCi0gICAgICAgICAgMTI4LDEyOSwxMzAsMTMxLDEzMiwx
MzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0
NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsCi0gICAgICAgICAgMTU4
LDE1OSwxNjAsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIs
MTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4Niwx
ODcsCi0gICAgICAgICAgMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5
OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEy
LDIxMywyMTQsMjE1LDIxNiwyMTcsCi0gICAgICAgICAgMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMs
MjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywy
MzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsCi0gICAgICAgICAgMjQ4LDI0
OSwyNTAsMjUxLDI1MiwyNTMsMjU0LC0xLDAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMs
MTQsMTUsMTYsMTcsMTgsMTksMjAsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEsMzIs
Ci0gICAgICAgICAgMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUsNDYsNDcs
NDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsNjIsNjMsNjQsOTcsOTgs
OTksMTAwLDEwMSwxMDIsMTAzLAotICAgICAgICAgIDEwNCwxMDUsMTA2LDEwNywxMDgsMTA5LDEx
MCwxMTEsMTEyLDExMywxMTQsMTE1LDExNiwxMTcsMTE4LDExOSwxMjAsMTIxLDEyMiw5MSw5Miw5
Myw5NCw5NSw5Niw5Nyw5OCw5OSwxMDAsMTAxLDEwMiwxMDMsCi0gICAgICAgICAgMTA0LDEwNSwx
MDYsMTA3LDEwOCwxMDksMTEwLDExMSwxMTIsMTEzLDExNCwxMTUsMTE2LDExNywxMTgsMTE5LDEy
MCwxMjEsMTIyLDEyMywxMjQsMTI1LDEyNiwxMjcsMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsCi0g
ICAgICAgICAgMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUs
MTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwx
NjAsMTYxLDE2MiwxNjMsCi0gICAgICAgICAgMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3
MSwxNzIsMTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1
LDE4NiwxODcsMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsCi0gICAgICAgICAgMTk0LDE5NSwxOTYs
MTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwy
MTEsMjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsCi0gICAg
ICAgICAgMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2
LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAs
MjUxLDI1MiwyNTMsCi0gICAgICAgICAgMjU0LDI1NQotICAgICAgICBdOwotICAgICAgICB2YXIg
aTMyc2l6ZSA9IDQ7Ci0gICAgICAgIHZhciBhcnIgPSBfbWFsbG9jKHZhbHVlcy5sZW5ndGggKiBp
MzJzaXplKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKysp
IHsKLSAgICAgICAgICBIRUFQMzJbKCgoYXJyKSsoaSAqIGkzMnNpemUpKT4+MildPXZhbHVlc1tp
XQotICAgICAgICB9Ci0gICAgICAgIG1lLnJldCA9IGFsbG9jYXRlKFthcnIgKyAxMjggKiBpMzJz
aXplXSwgJ2kzMionLCBBTExPQ19OT1JNQUwpOwotICAgICAgfQotICAgICAgcmV0dXJuIG1lLnJl
dDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2N0eXBlX3RvdXBwZXJfbG9jKCkgewotICAgICAgLy8g
aHR0cDovL3JlZnNwZWNzLmZyZWVzdGFuZGFyZHMub3JnL0xTQl8zLjEuMS9MU0ItQ29yZS1nZW5l
cmljL0xTQi1Db3JlLWdlbmVyaWMvbGlidXRpbC0tLWN0eXBlLXRvdXBwZXItbG9jLmh0bWwKLSAg
ICAgIHZhciBtZSA9IF9fX2N0eXBlX3RvdXBwZXJfbG9jOwotICAgICAgaWYgKCFtZS5yZXQpIHsK
LSAgICAgICAgdmFyIHZhbHVlcyA9IFsKLSAgICAgICAgICAxMjgsMTI5LDEzMCwxMzEsMTMyLDEz
MywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3
LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywKLSAgICAgICAgICAxNTgs
MTU5LDE2MCwxNjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3Miwx
NzMsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTg2LDE4
NywKLSAgICAgICAgICAxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywxOTQsMTk1LDE5NiwxOTcsMTk4
LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LDIwOCwyMDksMjEwLDIxMSwyMTIs
MjEzLDIxNCwyMTUsMjE2LDIxNywKLSAgICAgICAgICAyMTgsMjE5LDIyMCwyMjEsMjIyLDIyMywy
MjQsMjI1LDIyNiwyMjcsMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIz
OCwyMzksMjQwLDI0MSwyNDIsMjQzLDI0NCwyNDUsMjQ2LDI0NywKLSAgICAgICAgICAyNDgsMjQ5
LDI1MCwyNTEsMjUyLDI1MywyNTQsLTEsMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywx
NCwxNSwxNiwxNywxOCwxOSwyMCwyMSwyMiwyMywyNCwyNSwyNiwyNywyOCwyOSwzMCwzMSwzMiwK
LSAgICAgICAgICAzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0Nyw0
OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSw2Miw2Myw2NCw2NSw2Niw2
Nyw2OCw2OSw3MCw3MSw3MiwKLSAgICAgICAgICA3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCw4MSw4
Miw4Myw4NCw4NSw4Niw4Nyw4OCw4OSw5MCw5MSw5Miw5Myw5NCw5NSw5Niw2NSw2Niw2Nyw2OCw2
OSw3MCw3MSw3Miw3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCwKLSAgICAgICAgICA4MSw4Miw4Myw4
NCw4NSw4Niw4Nyw4OCw4OSw5MCwxMjMsMTI0LDEyNSwxMjYsMTI3LDEyOCwxMjksMTMwLDEzMSwx
MzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsCi0gICAg
ICAgICAgMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3
LDE1OCwxNTksMTYwLDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEs
MTcyLDE3MywxNzQsCi0gICAgICAgICAgMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4Miwx
ODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5
NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsCi0gICAgICAgICAgMjA1LDIwNiwyMDcsMjA4
LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwyMjIs
MjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsCi0gICAgICAg
ICAgMjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0
OCwyNDksMjUwLDI1MSwyNTIsMjUzLDI1NCwyNTUKLSAgICAgICAgXTsKLSAgICAgICAgdmFyIGkz
MnNpemUgPSA0OwotICAgICAgICB2YXIgYXJyID0gX21hbGxvYyh2YWx1ZXMubGVuZ3RoICogaTMy
c2l6ZSk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7
Ci0gICAgICAgICAgSEVBUDMyWygoKGFycikrKGkgKiBpMzJzaXplKSk+PjIpXT12YWx1ZXNbaV0K
LSAgICAgICAgfQotICAgICAgICBtZS5yZXQgPSBhbGxvY2F0ZShbYXJyICsgMTI4ICogaTMyc2l6
ZV0sICdpMzIqJywgQUxMT0NfTk9STUFMKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBtZS5yZXQ7
Ci0gICAgfQotICB2YXIgX19fdG1fc3RydWN0X2xheW91dD17X19zaXplX186NDQsdG1fc2VjOjAs
dG1fbWluOjQsdG1faG91cjo4LHRtX21kYXk6MTIsdG1fbW9uOjE2LHRtX3llYXI6MjAsdG1fd2Rh
eToyNCx0bV95ZGF5OjI4LHRtX2lzZHN0OjMyLHRtX2dtdG9mZjozNix0bV96b25lOjQwfTsKLSAg
ZnVuY3Rpb24gX19pc0xlYXBZZWFyKHllYXIpIHsKLSAgICAgICAgcmV0dXJuIHllYXIlNCA9PT0g
MCAmJiAoeWVhciUxMDAgIT09IDAgfHwgeWVhciU0MDAgPT09IDApOwotICAgIH0KLSAgZnVuY3Rp
b24gX19hcnJheVN1bShhcnJheSwgaW5kZXgpIHsKLSAgICAgIHZhciBzdW0gPSAwOwotICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPD0gaW5kZXg7IHN1bSArPSBhcnJheVtpKytdKTsKLSAgICAgIHJl
dHVybiBzdW07Ci0gICAgfQotICB2YXIgX19NT05USF9EQVlTX0xFQVA9WzMxLDI5LDMxLDMwLDMx
LDMwLDMxLDMxLDMwLDMxLDMwLDMxXTsKLSAgdmFyIF9fTU9OVEhfREFZU19SRUdVTEFSPVszMSwy
OCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07ZnVuY3Rpb24gX19hZGREYXlzKGRhdGUs
IGRheXMpIHsKLSAgICAgIHZhciBuZXdEYXRlID0gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkpOwot
ICAgICAgd2hpbGUoZGF5cyA+IDApIHsKLSAgICAgICAgdmFyIGxlYXAgPSBfX2lzTGVhcFllYXIo
bmV3RGF0ZS5nZXRGdWxsWWVhcigpKTsKLSAgICAgICAgdmFyIGN1cnJlbnRNb250aCA9IG5ld0Rh
dGUuZ2V0TW9udGgoKTsKLSAgICAgICAgdmFyIGRheXNJbkN1cnJlbnRNb250aCA9IChsZWFwID8g
X19NT05USF9EQVlTX0xFQVAgOiBfX01PTlRIX0RBWVNfUkVHVUxBUilbY3VycmVudE1vbnRoXTsK
LSAgICAgICAgaWYgKGRheXMgPiBkYXlzSW5DdXJyZW50TW9udGgtbmV3RGF0ZS5nZXREYXRlKCkp
IHsKLSAgICAgICAgICAvLyB3ZSBzcGlsbCBvdmVyIHRvIG5leHQgbW9udGgKLSAgICAgICAgICBk
YXlzIC09IChkYXlzSW5DdXJyZW50TW9udGgtbmV3RGF0ZS5nZXREYXRlKCkrMSk7Ci0gICAgICAg
ICAgbmV3RGF0ZS5zZXREYXRlKDEpOwotICAgICAgICAgIGlmIChjdXJyZW50TW9udGggPCAxMSkg
ewotICAgICAgICAgICAgbmV3RGF0ZS5zZXRNb250aChjdXJyZW50TW9udGgrMSkKLSAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgbmV3RGF0ZS5zZXRNb250aCgwKTsKLSAgICAgICAgICAg
IG5ld0RhdGUuc2V0RnVsbFllYXIobmV3RGF0ZS5nZXRGdWxsWWVhcigpKzEpOwotICAgICAgICAg
IH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAvLyB3ZSBzdGF5IGluIGN1cnJlbnQgbW9u
dGggCi0gICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKG5ld0RhdGUuZ2V0RGF0ZSgpK2RheXMpOwot
ICAgICAgICAgIHJldHVybiBuZXdEYXRlOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICByZXR1
cm4gbmV3RGF0ZTsKLSAgICB9ZnVuY3Rpb24gX3N0cmZ0aW1lKHMsIG1heHNpemUsIGZvcm1hdCwg
dG0pIHsKLSAgICAgIC8vIHNpemVfdCBzdHJmdGltZShjaGFyICpyZXN0cmljdCBzLCBzaXplX3Qg
bWF4c2l6ZSwgY29uc3QgY2hhciAqcmVzdHJpY3QgZm9ybWF0LCBjb25zdCBzdHJ1Y3QgdG0gKnJl
c3RyaWN0IHRpbWVwdHIpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxp
bmVwdWJzLzAwOTY5NTM5OS9mdW5jdGlvbnMvc3RyZnRpbWUuaHRtbAotICAgICAgdmFyIGRhdGUg
PSB7Ci0gICAgICAgIHRtX3NlYzogSEVBUDMyWygoKHRtKSsoX19fdG1fc3RydWN0X2xheW91dC50
bV9zZWMpKT4+MildLAotICAgICAgICB0bV9taW46IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVj
dF9sYXlvdXQudG1fbWluKSk+PjIpXSwKLSAgICAgICAgdG1faG91cjogSEVBUDMyWygoKHRtKSso
X19fdG1fc3RydWN0X2xheW91dC50bV9ob3VyKSk+PjIpXSwKLSAgICAgICAgdG1fbWRheTogSEVB
UDMyWygoKHRtKSsoX19fdG1fc3RydWN0X2xheW91dC50bV9tZGF5KSk+PjIpXSwKLSAgICAgICAg
dG1fbW9uOiBIRUFQMzJbKCgodG0pKyhfX190bV9zdHJ1Y3RfbGF5b3V0LnRtX21vbikpPj4yKV0s
Ci0gICAgICAgIHRtX3llYXI6IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVjdF9sYXlvdXQudG1f
eWVhcikpPj4yKV0sCi0gICAgICAgIHRtX3dkYXk6IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVj
dF9sYXlvdXQudG1fd2RheSkpPj4yKV0sCi0gICAgICAgIHRtX3lkYXk6IEhFQVAzMlsoKCh0bSkr
KF9fX3RtX3N0cnVjdF9sYXlvdXQudG1feWRheSkpPj4yKV0sCi0gICAgICAgIHRtX2lzZHN0OiBI
RUFQMzJbKCgodG0pKyhfX190bV9zdHJ1Y3RfbGF5b3V0LnRtX2lzZHN0KSk+PjIpXQotICAgICAg
fTsKLSAgICAgIHZhciBwYXR0ZXJuID0gUG9pbnRlcl9zdHJpbmdpZnkoZm9ybWF0KTsKLSAgICAg
IC8vIGV4cGFuZCBmb3JtYXQKLSAgICAgIHZhciBFWFBBTlNJT05fUlVMRVNfMSA9IHsKLSAgICAg
ICAgJyVjJzogJyVhICViICVkICVIOiVNOiVTICVZJywgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSBs
b2NhbGUncyBhcHByb3ByaWF0ZSBkYXRlIGFuZCB0aW1lIHJlcHJlc2VudGF0aW9uIC0gZS5nLiwg
TW9uIEF1ZyAgMyAxNDowMjowMSAyMDEzCi0gICAgICAgICclRCc6ICclbS8lZC8leScsICAgICAg
ICAgICAgICAgICAvLyBFcXVpdmFsZW50IHRvICVtIC8gJWQgLyAleQotICAgICAgICAnJUYnOiAn
JVktJW0tJWQnLCAgICAgICAgICAgICAgICAgLy8gRXF1aXZhbGVudCB0byAlWSAtICVtIC0gJWQK
LSAgICAgICAgJyVoJzogJyViJywgICAgICAgICAgICAgICAgICAgICAgIC8vIEVxdWl2YWxlbnQg
dG8gJWIKLSAgICAgICAgJyVyJzogJyVJOiVNOiVTICVwJywgICAgICAgICAgICAgIC8vIFJlcGxh
Y2VkIGJ5IHRoZSB0aW1lIGluIGEubS4gYW5kIHAubS4gbm90YXRpb24KLSAgICAgICAgJyVSJzog
JyVIOiVNJywgICAgICAgICAgICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB0aW1lIGluIDI0
LWhvdXIgbm90YXRpb24KLSAgICAgICAgJyVUJzogJyVIOiVNOiVTJywgICAgICAgICAgICAgICAg
IC8vIFJlcGxhY2VkIGJ5IHRoZSB0aW1lCi0gICAgICAgICcleCc6ICclbS8lZC8leScsICAgICAg
ICAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUgbG9jYWxlJ3MgYXBwcm9wcmlhdGUgZGF0ZSBy
ZXByZXNlbnRhdGlvbgotICAgICAgICAnJVgnOiAnJUg6JU06JVMnLCAgICAgICAgICAgICAgICAg
Ly8gUmVwbGFjZWQgYnkgdGhlIGxvY2FsZSdzIGFwcHJvcHJpYXRlIGRhdGUgcmVwcmVzZW50YXRp
b24KLSAgICAgIH07Ci0gICAgICBmb3IgKHZhciBydWxlIGluIEVYUEFOU0lPTl9SVUxFU18xKSB7
Ci0gICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UobmV3IFJlZ0V4cChydWxlLCAnZycp
LCBFWFBBTlNJT05fUlVMRVNfMVtydWxlXSk7Ci0gICAgICB9Ci0gICAgICB2YXIgV0VFS0RBWVMg
PSBbJ1N1bmRheScsICdNb25kYXknLCAnVHVlc2RheScsICdXZWRuZXNkYXknLCAnVGh1cnNkYXkn
LCAnRnJpZGF5JywgJ1NhdHVyZGF5J107Ci0gICAgICB2YXIgTU9OVEhTID0gWydKYW51YXJ5Jywg
J0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVn
dXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ107Ci0g
ICAgICB2YXIgbGVhZGluZ1NvbWV0aGluZyA9IGZ1bmN0aW9uKHZhbHVlLCBkaWdpdHMsIGNoYXJh
Y3RlcikgewotICAgICAgICB2YXIgc3RyID0gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IHZh
bHVlLnRvU3RyaW5nKCkgOiAodmFsdWUgfHwgJycpOwotICAgICAgICB3aGlsZSAoc3RyLmxlbmd0
aCA8IGRpZ2l0cykgewotICAgICAgICAgIHN0ciA9IGNoYXJhY3RlclswXStzdHI7Ci0gICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIHN0cjsKLSAgICAgIH07Ci0gICAgICB2YXIgbGVhZGluZ051bGxz
ID0gZnVuY3Rpb24odmFsdWUsIGRpZ2l0cykgewotICAgICAgICByZXR1cm4gbGVhZGluZ1NvbWV0
aGluZyh2YWx1ZSwgZGlnaXRzLCAnMCcpOwotICAgICAgfTsKLSAgICAgIHZhciBjb21wYXJlQnlE
YXkgPSBmdW5jdGlvbihkYXRlMSwgZGF0ZTIpIHsKLSAgICAgICAgdmFyIHNnbiA9IGZ1bmN0aW9u
KHZhbHVlKSB7Ci0gICAgICAgICAgcmV0dXJuIHZhbHVlIDwgMCA/IC0xIDogKHZhbHVlID4gMCA/
IDEgOiAwKTsKLSAgICAgICAgfTsKLSAgICAgICAgdmFyIGNvbXBhcmU7Ci0gICAgICAgIGlmICgo
Y29tcGFyZSA9IHNnbihkYXRlMS5nZXRGdWxsWWVhcigpLWRhdGUyLmdldEZ1bGxZZWFyKCkpKSA9
PT0gMCkgewotICAgICAgICAgIGlmICgoY29tcGFyZSA9IHNnbihkYXRlMS5nZXRNb250aCgpLWRh
dGUyLmdldE1vbnRoKCkpKSA9PT0gMCkgewotICAgICAgICAgICAgY29tcGFyZSA9IHNnbihkYXRl
MS5nZXREYXRlKCktZGF0ZTIuZ2V0RGF0ZSgpKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIGNvbXBhcmU7Ci0gICAgICB9OwotICAgICAgdmFyIGdldEZpcnN0V2Vla1N0
YXJ0RGF0ZSA9IGZ1bmN0aW9uKGphbkZvdXJ0aCkgewotICAgICAgICAgIHN3aXRjaCAoamFuRm91
cnRoLmdldERheSgpKSB7Ci0gICAgICAgICAgICBjYXNlIDA6IC8vIFN1bmRheQotICAgICAgICAg
ICAgICByZXR1cm4gbmV3IERhdGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCktMSwgMTEsIDI5KTsK
LSAgICAgICAgICAgIGNhc2UgMTogLy8gTW9uZGF5Ci0gICAgICAgICAgICAgIHJldHVybiBqYW5G
b3VydGg7Ci0gICAgICAgICAgICBjYXNlIDI6IC8vIFR1ZXNkYXkKLSAgICAgICAgICAgICAgcmV0
dXJuIG5ldyBEYXRlKGphbkZvdXJ0aC5nZXRGdWxsWWVhcigpLCAwLCAzKTsKLSAgICAgICAgICAg
IGNhc2UgMzogLy8gV2VkbmVzZGF5Ci0gICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShqYW5G
b3VydGguZ2V0RnVsbFllYXIoKSwgMCwgMik7Ci0gICAgICAgICAgICBjYXNlIDQ6IC8vIFRodXJz
ZGF5Ci0gICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIo
KSwgMCwgMSk7Ci0gICAgICAgICAgICBjYXNlIDU6IC8vIEZyaWRheQotICAgICAgICAgICAgICBy
ZXR1cm4gbmV3IERhdGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCktMSwgMTEsIDMxKTsKLSAgICAg
ICAgICAgIGNhc2UgNjogLy8gU2F0dXJkYXkKLSAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRl
KGphbkZvdXJ0aC5nZXRGdWxsWWVhcigpLTEsIDExLCAzMCk7Ci0gICAgICAgICAgfQotICAgICAg
fTsKLSAgICAgIHZhciBnZXRXZWVrQmFzZWRZZWFyID0gZnVuY3Rpb24oZGF0ZSkgewotICAgICAg
ICAgIHZhciB0aGlzRGF0ZSA9IF9fYWRkRGF5cyhuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkwMCwg
MCwgMSksIGRhdGUudG1feWRheSk7Ci0gICAgICAgICAgdmFyIGphbkZvdXJ0aFRoaXNZZWFyID0g
bmV3IERhdGUodGhpc0RhdGUuZ2V0RnVsbFllYXIoKSwgMCwgNCk7Ci0gICAgICAgICAgdmFyIGph
bkZvdXJ0aE5leHRZZWFyID0gbmV3IERhdGUodGhpc0RhdGUuZ2V0RnVsbFllYXIoKSsxLCAwLCA0
KTsKLSAgICAgICAgICB2YXIgZmlyc3RXZWVrU3RhcnRUaGlzWWVhciA9IGdldEZpcnN0V2Vla1N0
YXJ0RGF0ZShqYW5Gb3VydGhUaGlzWWVhcik7Ci0gICAgICAgICAgdmFyIGZpcnN0V2Vla1N0YXJ0
TmV4dFllYXIgPSBnZXRGaXJzdFdlZWtTdGFydERhdGUoamFuRm91cnRoTmV4dFllYXIpOwotICAg
ICAgICAgIGlmIChjb21wYXJlQnlEYXkoZmlyc3RXZWVrU3RhcnRUaGlzWWVhciwgdGhpc0RhdGUp
IDw9IDApIHsKLSAgICAgICAgICAgIC8vIHRoaXMgZGF0ZSBpcyBhZnRlciB0aGUgc3RhcnQgb2Yg
dGhlIGZpcnN0IHdlZWsgb2YgdGhpcyB5ZWFyCi0gICAgICAgICAgICBpZiAoY29tcGFyZUJ5RGF5
KGZpcnN0V2Vla1N0YXJ0TmV4dFllYXIsIHRoaXNEYXRlKSA8PSAwKSB7Ci0gICAgICAgICAgICAg
IHJldHVybiB0aGlzRGF0ZS5nZXRGdWxsWWVhcigpKzE7Ci0gICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICByZXR1cm4gdGhpc0RhdGUuZ2V0RnVsbFllYXIoKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgIHJldHVybiB0aGlzRGF0ZS5nZXRG
dWxsWWVhcigpLTE7Ci0gICAgICAgICAgfQotICAgICAgfTsKLSAgICAgIHZhciBFWFBBTlNJT05f
UlVMRVNfMiA9IHsKLSAgICAgICAgJyVhJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJl
dHVybiBXRUVLREFZU1tkYXRlLnRtX3dkYXldLnN1YnN0cmluZygwLDMpOwotICAgICAgICB9LAot
ICAgICAgICAnJUEnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIFdFRUtEQVlT
W2RhdGUudG1fd2RheV07Ci0gICAgICAgIH0sCi0gICAgICAgICclYic6IGZ1bmN0aW9uKGRhdGUp
IHsKLSAgICAgICAgICByZXR1cm4gTU9OVEhTW2RhdGUudG1fbW9uXS5zdWJzdHJpbmcoMCwzKTsK
LSAgICAgICAgfSwKLSAgICAgICAgJyVCJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJl
dHVybiBNT05USFNbZGF0ZS50bV9tb25dOwotICAgICAgICB9LAotICAgICAgICAnJUMnOiBmdW5j
dGlvbihkYXRlKSB7Ci0gICAgICAgICAgdmFyIHllYXIgPSBkYXRlLnRtX3llYXIrMTkwMDsKLSAg
ICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKE1hdGguZmxvb3IoeWVhci8xMDApLDIpOwotICAg
ICAgICB9LAotICAgICAgICAnJWQnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJu
IGxlYWRpbmdOdWxscyhkYXRlLnRtX21kYXksIDIpOwotICAgICAgICB9LAotICAgICAgICAnJWUn
OiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdTb21ldGhpbmcoZGF0
ZS50bV9tZGF5LCAyLCAnICcpOwotICAgICAgICB9LAotICAgICAgICAnJWcnOiBmdW5jdGlvbihk
YXRlKSB7Ci0gICAgICAgICAgLy8gJWcsICVHLCBhbmQgJVYgZ2l2ZSB2YWx1ZXMgYWNjb3JkaW5n
IHRvIHRoZSBJU08gODYwMToyMDAwIHN0YW5kYXJkIHdlZWstYmFzZWQgeWVhci4gCi0gICAgICAg
ICAgLy8gSW4gdGhpcyBzeXN0ZW0sIHdlZWtzIGJlZ2luIG9uIGEgTW9uZGF5IGFuZCB3ZWVrIDEg
b2YgdGhlIHllYXIgaXMgdGhlIHdlZWsgdGhhdCBpbmNsdWRlcyAKLSAgICAgICAgICAvLyBKYW51
YXJ5IDR0aCwgd2hpY2ggaXMgYWxzbyB0aGUgd2VlayB0aGF0IGluY2x1ZGVzIHRoZSBmaXJzdCBU
aHVyc2RheSBvZiB0aGUgeWVhciwgYW5kIAotICAgICAgICAgIC8vIGlzIGFsc28gdGhlIGZpcnN0
IHdlZWsgdGhhdCBjb250YWlucyBhdCBsZWFzdCBmb3VyIGRheXMgaW4gdGhlIHllYXIuIAotICAg
ICAgICAgIC8vIElmIHRoZSBmaXJzdCBNb25kYXkgb2YgSmFudWFyeSBpcyB0aGUgMm5kLCAzcmQs
IG9yIDR0aCwgdGhlIHByZWNlZGluZyBkYXlzIGFyZSBwYXJ0IG9mIAotICAgICAgICAgIC8vIHRo
ZSBsYXN0IHdlZWsgb2YgdGhlIHByZWNlZGluZyB5ZWFyOyB0aHVzLCBmb3IgU2F0dXJkYXkgMm5k
IEphbnVhcnkgMTk5OSwgCi0gICAgICAgICAgLy8gJUcgaXMgcmVwbGFjZWQgYnkgMTk5OCBhbmQg
JVYgaXMgcmVwbGFjZWQgYnkgNTMuIElmIERlY2VtYmVyIDI5dGgsIDMwdGgsIAotICAgICAgICAg
IC8vIG9yIDMxc3QgaXMgYSBNb25kYXksIGl0IGFuZCBhbnkgZm9sbG93aW5nIGRheXMgYXJlIHBh
cnQgb2Ygd2VlayAxIG9mIHRoZSBmb2xsb3dpbmcgeWVhci4gCi0gICAgICAgICAgLy8gVGh1cywg
Zm9yIFR1ZXNkYXkgMzB0aCBEZWNlbWJlciAxOTk3LCAlRyBpcyByZXBsYWNlZCBieSAxOTk4IGFu
ZCAlViBpcyByZXBsYWNlZCBieSAwMS4KLSAgICAgICAgICByZXR1cm4gZ2V0V2Vla0Jhc2VkWWVh
cihkYXRlKS50b1N0cmluZygpLnN1YnN0cmluZygyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVH
JzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBnZXRXZWVrQmFzZWRZZWFyKGRh
dGUpOwotICAgICAgICB9LAotICAgICAgICAnJUgnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAg
ICAgcmV0dXJuIGxlYWRpbmdOdWxscyhkYXRlLnRtX2hvdXIsIDIpOwotICAgICAgICB9LAotICAg
ICAgICAnJUknOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxs
cyhkYXRlLnRtX2hvdXIgPCAxMyA/IGRhdGUudG1faG91ciA6IGRhdGUudG1faG91ci0xMiwgMik7
Ci0gICAgICAgIH0sCi0gICAgICAgICclaic6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICAv
LyBEYXkgb2YgdGhlIHllYXIgKDAwMS0zNjYpCi0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxs
cyhkYXRlLnRtX21kYXkrX19hcnJheVN1bShfX2lzTGVhcFllYXIoZGF0ZS50bV95ZWFyKzE5MDAp
ID8gX19NT05USF9EQVlTX0xFQVAgOiBfX01PTlRIX0RBWVNfUkVHVUxBUiwgZGF0ZS50bV9tb24t
MSksIDMpOwotICAgICAgICB9LAotICAgICAgICAnJW0nOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAg
ICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhkYXRlLnRtX21vbisxLCAyKTsKLSAgICAgICAgfSwK
LSAgICAgICAgJyVNJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBsZWFkaW5n
TnVsbHMoZGF0ZS50bV9taW4sIDIpOwotICAgICAgICB9LAotICAgICAgICAnJW4nOiBmdW5jdGlv
bigpIHsKLSAgICAgICAgICByZXR1cm4gJ1xuJzsKLSAgICAgICAgfSwKLSAgICAgICAgJyVwJzog
ZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIGlmIChkYXRlLnRtX2hvdXIgPiAwICYmIGRhdGUu
dG1faG91ciA8IDEzKSB7Ci0gICAgICAgICAgICByZXR1cm4gJ0FNJzsKLSAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgcmV0dXJuICdQTSc7Ci0gICAgICAgICAgfQotICAgICAgICB9LAot
ICAgICAgICAnJVMnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdO
dWxscyhkYXRlLnRtX3NlYywgMik7Ci0gICAgICAgIH0sCi0gICAgICAgICcldCc6IGZ1bmN0aW9u
KCkgewotICAgICAgICAgIHJldHVybiAnXHQnOwotICAgICAgICB9LAotICAgICAgICAnJXUnOiBm
dW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgdmFyIGRheSA9IG5ldyBEYXRlKGRhdGUudG1feWVh
cisxOTAwLCBkYXRlLnRtX21vbisxLCBkYXRlLnRtX21kYXksIDAsIDAsIDAsIDApOwotICAgICAg
ICAgIHJldHVybiBkYXkuZ2V0RGF5KCkgfHwgNzsKLSAgICAgICAgfSwKLSAgICAgICAgJyVVJzog
ZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB3ZWVrIG51bWJl
ciBvZiB0aGUgeWVhciBhcyBhIGRlY2ltYWwgbnVtYmVyIFswMCw1M10uIAotICAgICAgICAgIC8v
IFRoZSBmaXJzdCBTdW5kYXkgb2YgSmFudWFyeSBpcyB0aGUgZmlyc3QgZGF5IG9mIHdlZWsgMTsg
Ci0gICAgICAgICAgLy8gZGF5cyBpbiB0aGUgbmV3IHllYXIgYmVmb3JlIHRoaXMgYXJlIGluIHdl
ZWsgMC4gWyB0bV95ZWFyLCB0bV93ZGF5LCB0bV95ZGF5XQotICAgICAgICAgIHZhciBqYW5GaXJz
dCA9IG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAwLCAwLCAxKTsKLSAgICAgICAgICB2YXIgZmly
c3RTdW5kYXkgPSBqYW5GaXJzdC5nZXREYXkoKSA9PT0gMCA/IGphbkZpcnN0IDogX19hZGREYXlz
KGphbkZpcnN0LCA3LWphbkZpcnN0LmdldERheSgpKTsKLSAgICAgICAgICB2YXIgZW5kRGF0ZSA9
IG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAwLCBkYXRlLnRtX21vbiwgZGF0ZS50bV9tZGF5KTsK
LSAgICAgICAgICAvLyBpcyB0YXJnZXQgZGF0ZSBhZnRlciB0aGUgZmlyc3QgU3VuZGF5PwotICAg
ICAgICAgIGlmIChjb21wYXJlQnlEYXkoZmlyc3RTdW5kYXksIGVuZERhdGUpIDwgMCkgewotICAg
ICAgICAgICAgLy8gY2FsY3VsYXRlIGRpZmZlcmVuY2UgaW4gZGF5cyBiZXR3ZWVuIGZpcnN0IFN1
bmRheSBhbmQgZW5kRGF0ZQotICAgICAgICAgICAgdmFyIGZlYnJ1YXJ5Rmlyc3RVbnRpbEVuZE1v
bnRoID0gX19hcnJheVN1bShfX2lzTGVhcFllYXIoZW5kRGF0ZS5nZXRGdWxsWWVhcigpKSA/IF9f
TU9OVEhfREFZU19MRUFQIDogX19NT05USF9EQVlTX1JFR1VMQVIsIGVuZERhdGUuZ2V0TW9udGgo
KS0xKS0zMTsKLSAgICAgICAgICAgIHZhciBmaXJzdFN1bmRheVVudGlsRW5kSmFudWFyeSA9IDMx
LWZpcnN0U3VuZGF5LmdldERhdGUoKTsKLSAgICAgICAgICAgIHZhciBkYXlzID0gZmlyc3RTdW5k
YXlVbnRpbEVuZEphbnVhcnkrZmVicnVhcnlGaXJzdFVudGlsRW5kTW9udGgrZW5kRGF0ZS5nZXRE
YXRlKCk7Ci0gICAgICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKE1hdGguY2VpbChkYXlzLzcp
LCAyKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIGNvbXBhcmVCeURheShmaXJzdFN1
bmRheSwgamFuRmlyc3QpID09PSAwID8gJzAxJzogJzAwJzsKLSAgICAgICAgfSwKLSAgICAgICAg
JyVWJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB3ZWVr
IG51bWJlciBvZiB0aGUgeWVhciAoTW9uZGF5IGFzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsp
IAotICAgICAgICAgIC8vIGFzIGEgZGVjaW1hbCBudW1iZXIgWzAxLDUzXS4gSWYgdGhlIHdlZWsg
Y29udGFpbmluZyAxIEphbnVhcnkgaGFzIGZvdXIgCi0gICAgICAgICAgLy8gb3IgbW9yZSBkYXlz
IGluIHRoZSBuZXcgeWVhciwgdGhlbiBpdCBpcyBjb25zaWRlcmVkIHdlZWsgMS4gCi0gICAgICAg
ICAgLy8gT3RoZXJ3aXNlLCBpdCBpcyB0aGUgbGFzdCB3ZWVrIG9mIHRoZSBwcmV2aW91cyB5ZWFy
LCBhbmQgdGhlIG5leHQgd2VlayBpcyB3ZWVrIDEuIAotICAgICAgICAgIC8vIEJvdGggSmFudWFy
eSA0dGggYW5kIHRoZSBmaXJzdCBUaHVyc2RheSBvZiBKYW51YXJ5IGFyZSBhbHdheXMgaW4gd2Vl
ayAxLiBbIHRtX3llYXIsIHRtX3dkYXksIHRtX3lkYXldCi0gICAgICAgICAgdmFyIGphbkZvdXJ0
aFRoaXNZZWFyID0gbmV3IERhdGUoZGF0ZS50bV95ZWFyKzE5MDAsIDAsIDQpOwotICAgICAgICAg
IHZhciBqYW5Gb3VydGhOZXh0WWVhciA9IG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAxLCAwLCA0
KTsKLSAgICAgICAgICB2YXIgZmlyc3RXZWVrU3RhcnRUaGlzWWVhciA9IGdldEZpcnN0V2Vla1N0
YXJ0RGF0ZShqYW5Gb3VydGhUaGlzWWVhcik7Ci0gICAgICAgICAgdmFyIGZpcnN0V2Vla1N0YXJ0
TmV4dFllYXIgPSBnZXRGaXJzdFdlZWtTdGFydERhdGUoamFuRm91cnRoTmV4dFllYXIpOwotICAg
ICAgICAgIHZhciBlbmREYXRlID0gX19hZGREYXlzKG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAw
LCAwLCAxKSwgZGF0ZS50bV95ZGF5KTsKLSAgICAgICAgICBpZiAoY29tcGFyZUJ5RGF5KGVuZERh
dGUsIGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIpIDwgMCkgewotICAgICAgICAgICAgLy8gaWYgZ2l2
ZW4gZGF0ZSBpcyBiZWZvcmUgdGhpcyB5ZWFycyBmaXJzdCB3ZWVrLCB0aGVuIGl0IGJlbG9uZ3Mg
dG8gdGhlIDUzcmQgd2VlayBvZiBsYXN0IHllYXIKLSAgICAgICAgICAgIHJldHVybiAnNTMnOwot
ICAgICAgICAgIH0gCi0gICAgICAgICAgaWYgKGNvbXBhcmVCeURheShmaXJzdFdlZWtTdGFydE5l
eHRZZWFyLCBlbmREYXRlKSA8PSAwKSB7Ci0gICAgICAgICAgICAvLyBpZiBnaXZlbiBkYXRlIGlz
IGFmdGVyIG5leHQgeWVhcnMgZmlyc3Qgd2VlaywgdGhlbiBpdCBiZWxvbmdzIHRvIHRoZSAwMXRo
IHdlZWsgb2YgbmV4dCB5ZWFyCi0gICAgICAgICAgICByZXR1cm4gJzAxJzsKLSAgICAgICAgICB9
Ci0gICAgICAgICAgLy8gZ2l2ZW4gZGF0ZSBpcyBpbiBiZXR3ZWVuIENXIDAxLi41MyBvZiB0aGlz
IGNhbGVuZGFyIHllYXIKLSAgICAgICAgICB2YXIgZGF5c0RpZmZlcmVuY2U7Ci0gICAgICAgICAg
aWYgKGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIuZ2V0RnVsbFllYXIoKSA8IGRhdGUudG1feWVhcisx
OTAwKSB7Ci0gICAgICAgICAgICAvLyBmaXJzdCBDVyBvZiB0aGlzIHllYXIgc3RhcnRzIGxhc3Qg
eWVhcgotICAgICAgICAgICAgZGF5c0RpZmZlcmVuY2UgPSBkYXRlLnRtX3lkYXkrMzItZmlyc3RX
ZWVrU3RhcnRUaGlzWWVhci5nZXREYXRlKCkKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgLy8gZmlyc3QgQ1cgb2YgdGhpcyB5ZWFyIHN0YXJ0cyB0aGlzIHllYXIKLSAgICAgICAgICAg
IGRheXNEaWZmZXJlbmNlID0gZGF0ZS50bV95ZGF5KzEtZmlyc3RXZWVrU3RhcnRUaGlzWWVhci5n
ZXREYXRlKCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoTWF0
aC5jZWlsKGRheXNEaWZmZXJlbmNlLzcpLCAyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyV3Jzog
ZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHZhciBkYXkgPSBuZXcgRGF0ZShkYXRlLnRtX3ll
YXIrMTkwMCwgZGF0ZS50bV9tb24rMSwgZGF0ZS50bV9tZGF5LCAwLCAwLCAwLCAwKTsKLSAgICAg
ICAgICByZXR1cm4gZGF5LmdldERheSgpOwotICAgICAgICB9LAotICAgICAgICAnJVcnOiBmdW5j
dGlvbihkYXRlKSB7Ci0gICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIHdlZWsgbnVtYmVyIG9m
IHRoZSB5ZWFyIGFzIGEgZGVjaW1hbCBudW1iZXIgWzAwLDUzXS4gCi0gICAgICAgICAgLy8gVGhl
IGZpcnN0IE1vbmRheSBvZiBKYW51YXJ5IGlzIHRoZSBmaXJzdCBkYXkgb2Ygd2VlayAxOyAKLSAg
ICAgICAgICAvLyBkYXlzIGluIHRoZSBuZXcgeWVhciBiZWZvcmUgdGhpcyBhcmUgaW4gd2VlayAw
LiBbIHRtX3llYXIsIHRtX3dkYXksIHRtX3lkYXldCi0gICAgICAgICAgdmFyIGphbkZpcnN0ID0g
bmV3IERhdGUoZGF0ZS50bV95ZWFyLCAwLCAxKTsKLSAgICAgICAgICB2YXIgZmlyc3RNb25kYXkg
PSBqYW5GaXJzdC5nZXREYXkoKSA9PT0gMSA/IGphbkZpcnN0IDogX19hZGREYXlzKGphbkZpcnN0
LCBqYW5GaXJzdC5nZXREYXkoKSA9PT0gMCA/IDEgOiA3LWphbkZpcnN0LmdldERheSgpKzEpOwot
ICAgICAgICAgIHZhciBlbmREYXRlID0gbmV3IERhdGUoZGF0ZS50bV95ZWFyKzE5MDAsIGRhdGUu
dG1fbW9uLCBkYXRlLnRtX21kYXkpOwotICAgICAgICAgIC8vIGlzIHRhcmdldCBkYXRlIGFmdGVy
IHRoZSBmaXJzdCBNb25kYXk/Ci0gICAgICAgICAgaWYgKGNvbXBhcmVCeURheShmaXJzdE1vbmRh
eSwgZW5kRGF0ZSkgPCAwKSB7Ci0gICAgICAgICAgICB2YXIgZmVicnVhcnlGaXJzdFVudGlsRW5k
TW9udGggPSBfX2FycmF5U3VtKF9faXNMZWFwWWVhcihlbmREYXRlLmdldEZ1bGxZZWFyKCkpID8g
X19NT05USF9EQVlTX0xFQVAgOiBfX01PTlRIX0RBWVNfUkVHVUxBUiwgZW5kRGF0ZS5nZXRNb250
aCgpLTEpLTMxOwotICAgICAgICAgICAgdmFyIGZpcnN0TW9uZGF5VW50aWxFbmRKYW51YXJ5ID0g
MzEtZmlyc3RNb25kYXkuZ2V0RGF0ZSgpOwotICAgICAgICAgICAgdmFyIGRheXMgPSBmaXJzdE1v
bmRheVVudGlsRW5kSmFudWFyeStmZWJydWFyeUZpcnN0VW50aWxFbmRNb250aCtlbmREYXRlLmdl
dERhdGUoKTsKLSAgICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoTWF0aC5jZWlsKGRheXMv
NyksIDIpOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gY29tcGFyZUJ5RGF5KGZpcnN0
TW9uZGF5LCBqYW5GaXJzdCkgPT09IDAgPyAnMDEnOiAnMDAnOwotICAgICAgICB9LAotICAgICAg
ICAnJXknOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIGxh
c3QgdHdvIGRpZ2l0cyBvZiB0aGUgeWVhciBhcyBhIGRlY2ltYWwgbnVtYmVyIFswMCw5OV0uIFsg
dG1feWVhcl0KLSAgICAgICAgICByZXR1cm4gKGRhdGUudG1feWVhcisxOTAwKS50b1N0cmluZygp
LnN1YnN0cmluZygyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVZJzogZnVuY3Rpb24oZGF0ZSkg
ewotICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB5ZWFyIGFzIGEgZGVjaW1hbCBudW1iZXIg
KGZvciBleGFtcGxlLCAxOTk3KS4gWyB0bV95ZWFyXQotICAgICAgICAgIHJldHVybiBkYXRlLnRt
X3llYXIrMTkwMDsKLSAgICAgICAgfSwKLSAgICAgICAgJyV6JzogZnVuY3Rpb24oZGF0ZSkgewot
ICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSBvZmZzZXQgZnJvbSBVVEMgaW4gdGhlIElTTyA4
NjAxOjIwMDAgc3RhbmRhcmQgZm9ybWF0ICggK2hobW0gb3IgLWhobW0gKSwKLSAgICAgICAgICAv
LyBvciBieSBubyBjaGFyYWN0ZXJzIGlmIG5vIHRpbWV6b25lIGlzIGRldGVybWluYWJsZS4gCi0g
ICAgICAgICAgLy8gRm9yIGV4YW1wbGUsICItMDQzMCIgbWVhbnMgNCBob3VycyAzMCBtaW51dGVz
IGJlaGluZCBVVEMgKHdlc3Qgb2YgR3JlZW53aWNoKS4gCi0gICAgICAgICAgLy8gSWYgdG1faXNk
c3QgaXMgemVybywgdGhlIHN0YW5kYXJkIHRpbWUgb2Zmc2V0IGlzIHVzZWQuIAotICAgICAgICAg
IC8vIElmIHRtX2lzZHN0IGlzIGdyZWF0ZXIgdGhhbiB6ZXJvLCB0aGUgZGF5bGlnaHQgc2F2aW5n
cyB0aW1lIG9mZnNldCBpcyB1c2VkLiAKLSAgICAgICAgICAvLyBJZiB0bV9pc2RzdCBpcyBuZWdh
dGl2ZSwgbm8gY2hhcmFjdGVycyBhcmUgcmV0dXJuZWQuIAotICAgICAgICAgIC8vIEZJWE1FOiB3
ZSBjYW5ub3QgZGV0ZXJtaW5lIHRpbWUgem9uZSAob3IgY2FuIHdlPykKLSAgICAgICAgICByZXR1
cm4gJyc7Ci0gICAgICAgIH0sCi0gICAgICAgICclWic6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAg
ICAgICAvLyBSZXBsYWNlZCBieSB0aGUgdGltZXpvbmUgbmFtZSBvciBhYmJyZXZpYXRpb24sIG9y
IGJ5IG5vIGJ5dGVzIGlmIG5vIHRpbWV6b25lIGluZm9ybWF0aW9uIGV4aXN0cy4gWyB0bV9pc2Rz
dF0KLSAgICAgICAgICAvLyBGSVhNRTogd2UgY2Fubm90IGRldGVybWluZSB0aW1lIHpvbmUgKG9y
IGNhbiB3ZT8pCi0gICAgICAgICAgcmV0dXJuICcnOwotICAgICAgICB9LAotICAgICAgICAnJSUn
OiBmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gJyUnOwotICAgICAgICB9Ci0gICAgICB9
OwotICAgICAgZm9yICh2YXIgcnVsZSBpbiBFWFBBTlNJT05fUlVMRVNfMikgewotICAgICAgICBp
ZiAocGF0dGVybi5pbmRleE9mKHJ1bGUpID49IDApIHsKLSAgICAgICAgICBwYXR0ZXJuID0gcGF0
dGVybi5yZXBsYWNlKG5ldyBSZWdFeHAocnVsZSwgJ2cnKSwgRVhQQU5TSU9OX1JVTEVTXzJbcnVs
ZV0oZGF0ZSkpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICB2YXIgYnl0ZXMgPSBpbnRBcnJh
eUZyb21TdHJpbmcocGF0dGVybiwgZmFsc2UpOwotICAgICAgaWYgKGJ5dGVzLmxlbmd0aCA+IG1h
eHNpemUpIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICB9IAotICAgICAgd3JpdGVBcnJheVRv
TWVtb3J5KGJ5dGVzLCBzKTsKLSAgICAgIHJldHVybiBieXRlcy5sZW5ndGgtMTsKLSAgICB9dmFy
IF9zdHJmdGltZV9sPV9zdHJmdGltZTsKLSAgZnVuY3Rpb24gX2lzc3BhY2UoY2hyKSB7Ci0gICAg
ICByZXR1cm4gKGNociA9PSAzMikgfHwgKGNociA+PSA5ICYmIGNociA8PSAxMyk7Ci0gICAgfQot
ICBmdW5jdGlvbiBfX3BhcnNlSW50NjQoc3RyLCBlbmRwdHIsIGJhc2UsIG1pbiwgbWF4LCB1bnNp
Z24pIHsKLSAgICAgIHZhciBpc05lZ2F0aXZlID0gZmFsc2U7Ci0gICAgICAvLyBTa2lwIHNwYWNl
LgotICAgICAgd2hpbGUgKF9pc3NwYWNlKEhFQVA4WyhzdHIpXSkpIHN0cisrOwotICAgICAgLy8g
Q2hlY2sgZm9yIGEgcGx1cy9taW51cyBzaWduLgotICAgICAgaWYgKEhFQVA4WyhzdHIpXSA9PSA0
NSkgewotICAgICAgICBzdHIrKzsKLSAgICAgICAgaXNOZWdhdGl2ZSA9IHRydWU7Ci0gICAgICB9
IGVsc2UgaWYgKEhFQVA4WyhzdHIpXSA9PSA0MykgewotICAgICAgICBzdHIrKzsKLSAgICAgIH0K
LSAgICAgIC8vIEZpbmQgYmFzZS4KLSAgICAgIHZhciBvayA9IGZhbHNlOwotICAgICAgdmFyIGZp
bmFsQmFzZSA9IGJhc2U7Ci0gICAgICBpZiAoIWZpbmFsQmFzZSkgewotICAgICAgICBpZiAoSEVB
UDhbKHN0cildID09IDQ4KSB7Ci0gICAgICAgICAgaWYgKEhFQVA4Wygoc3RyKzEpfDApXSA9PSAx
MjAgfHwKLSAgICAgICAgICAgICAgSEVBUDhbKChzdHIrMSl8MCldID09IDg4KSB7Ci0gICAgICAg
ICAgICBmaW5hbEJhc2UgPSAxNjsKLSAgICAgICAgICAgIHN0ciArPSAyOwotICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBmaW5hbEJhc2UgPSA4OwotICAgICAgICAgICAgb2sgPSB0cnVl
OyAvLyB3ZSBzYXcgYW4gaW5pdGlhbCB6ZXJvLCBwZXJoYXBzIHRoZSBlbnRpcmUgdGhpbmcgaXMg
anVzdCAiMCIKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSBpZiAoZmluYWxC
YXNlPT0xNikgewotICAgICAgICBpZiAoSEVBUDhbKHN0cildID09IDQ4KSB7Ci0gICAgICAgICAg
aWYgKEhFQVA4Wygoc3RyKzEpfDApXSA9PSAxMjAgfHwKLSAgICAgICAgICAgICAgSEVBUDhbKChz
dHIrMSl8MCldID09IDg4KSB7Ci0gICAgICAgICAgICBzdHIgKz0gMjsKLSAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmICghZmluYWxCYXNlKSBmaW5hbEJhc2UgPSAxMDsK
LSAgICAgIHN0YXJ0ID0gc3RyOwotICAgICAgLy8gR2V0IGRpZ2l0cy4KLSAgICAgIHZhciBjaHI7
Ci0gICAgICB3aGlsZSAoKGNociA9IEhFQVA4WyhzdHIpXSkgIT0gMCkgewotICAgICAgICB2YXIg
ZGlnaXQgPSBwYXJzZUludChTdHJpbmcuZnJvbUNoYXJDb2RlKGNociksIGZpbmFsQmFzZSk7Ci0g
ICAgICAgIGlmIChpc05hTihkaWdpdCkpIHsKLSAgICAgICAgICBicmVhazsKLSAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICBzdHIrKzsKLSAgICAgICAgICBvayA9IHRydWU7Ci0gICAgICAgIH0K
LSAgICAgIH0KLSAgICAgIGlmICghb2spIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09E
RVMuRUlOVkFMKTsKLSAgICAgICAgcmV0dXJuICgoYXNtWyJzZXRUZW1wUmV0MCJdKDApLDApfDAp
OwotICAgICAgfQotICAgICAgLy8gU2V0IGVuZCBwb2ludGVyLgotICAgICAgaWYgKGVuZHB0cikg
ewotICAgICAgICBIRUFQMzJbKChlbmRwdHIpPj4yKV09c3RyCi0gICAgICB9Ci0gICAgICB0cnkg
ewotICAgICAgICB2YXIgbnVtYmVyU3RyaW5nID0gaXNOZWdhdGl2ZSA/ICctJytQb2ludGVyX3N0
cmluZ2lmeShzdGFydCwgc3RyIC0gc3RhcnQpIDogUG9pbnRlcl9zdHJpbmdpZnkoc3RhcnQsIHN0
ciAtIHN0YXJ0KTsKLSAgICAgICAgaTY0TWF0aC5mcm9tU3RyaW5nKG51bWJlclN0cmluZywgZmlu
YWxCYXNlLCBtaW4sIG1heCwgdW5zaWduKTsKLSAgICAgIH0gY2F0Y2goZSkgewotICAgICAgICBf
X19zZXRFcnJObyhFUlJOT19DT0RFUy5FUkFOR0UpOyAvLyBub3QgcXVpdGUgY29ycmVjdAotICAg
ICAgfQotICAgICAgcmV0dXJuICgoYXNtWyJzZXRUZW1wUmV0MCJdKCgoSEVBUDMyWygoKHRlbXBE
b3VibGVQdHIpKyg0KSk+PjIpXSl8MCkpLCgoSEVBUDMyWygodGVtcERvdWJsZVB0cik+PjIpXSl8
MCkpfDApOwotICAgIH1mdW5jdGlvbiBfc3RydG91bGwoc3RyLCBlbmRwdHIsIGJhc2UpIHsKLSAg
ICAgIHJldHVybiBfX3BhcnNlSW50NjQoc3RyLCBlbmRwdHIsIGJhc2UsIDAsICcxODQ0Njc0NDA3
MzcwOTU1MTYxNScsIHRydWUpOyAgLy8gVUxPTkdfTUFYLgotICAgIH12YXIgX3N0cnRvdWxsX2w9
X3N0cnRvdWxsOwotICBmdW5jdGlvbiBfc3RydG9sbChzdHIsIGVuZHB0ciwgYmFzZSkgewotICAg
ICAgcmV0dXJuIF9fcGFyc2VJbnQ2NChzdHIsIGVuZHB0ciwgYmFzZSwgJy05MjIzMzcyMDM2ODU0
Nzc1ODA4JywgJzkyMjMzNzIwMzY4NTQ3NzU4MDcnKTsgIC8vIExMT05HX01JTiwgTExPTkdfTUFY
LgotICAgIH12YXIgX3N0cnRvbGxfbD1fc3RydG9sbDsKLSAgZnVuY3Rpb24gX3VzZWxvY2FsZShs
b2NhbGUpIHsKLSAgICAgIHJldHVybiAwOwotICAgIH0KLSAgZnVuY3Rpb24gX19fbG9jYWxlX21i
X2N1cl9tYXgoKSB7IHRocm93ICdfX2xvY2FsZV9tYl9jdXJfbWF4IG5vdCBpbXBsZW1lbnRlZCcg
fQotICB2YXIgX2xsdm1fdmFfc3RhcnQ9dW5kZWZpbmVkOwotICBmdW5jdGlvbiBfc3ByaW50Zihz
LCBmb3JtYXQsIHZhcmFyZ3MpIHsKLSAgICAgIC8vIGludCBzcHJpbnRmKGNoYXIgKnJlc3RyaWN0
IHMsIGNvbnN0IGNoYXIgKnJlc3RyaWN0IGZvcm1hdCwgLi4uKTsKLSAgICAgIC8vIGh0dHA6Ly9w
dWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3ByaW50Zi5o
dG1sCi0gICAgICByZXR1cm4gX3NucHJpbnRmKHMsIHVuZGVmaW5lZCwgZm9ybWF0LCB2YXJhcmdz
KTsKLSAgICB9ZnVuY3Rpb24gX2FzcHJpbnRmKHMsIGZvcm1hdCwgdmFyYXJncykgewotICAgICAg
cmV0dXJuIF9zcHJpbnRmKC1zLCBmb3JtYXQsIHZhcmFyZ3MpOwotICAgIH1mdW5jdGlvbiBfdmFz
cHJpbnRmKHMsIGZvcm1hdCwgdmFfYXJnKSB7Ci0gICAgICByZXR1cm4gX2FzcHJpbnRmKHMsIGZv
cm1hdCwgSEVBUDMyWygodmFfYXJnKT4+MildKTsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9sbHZtX3Zh
X2VuZCgpIHt9Ci0gIGZ1bmN0aW9uIF92c25wcmludGYocywgbiwgZm9ybWF0LCB2YV9hcmcpIHsK
LSAgICAgIHJldHVybiBfc25wcmludGYocywgbiwgZm9ybWF0LCBIRUFQMzJbKCh2YV9hcmcpPj4y
KV0pOwotICAgIH0KLSAgZnVuY3Rpb24gX3Zzc2NhbmYocywgZm9ybWF0LCB2YV9hcmcpIHsKLSAg
ICAgIHJldHVybiBfc3NjYW5mKHMsIGZvcm1hdCwgSEVBUDMyWygodmFfYXJnKT4+MildKTsKLSAg
ICB9Ci0gIGZ1bmN0aW9uIF9zYnJrKGJ5dGVzKSB7Ci0gICAgICAvLyBJbXBsZW1lbnQgYSBMaW51
eC1saWtlICdtZW1vcnkgYXJlYScgZm9yIG91ciAncHJvY2VzcycuCi0gICAgICAvLyBDaGFuZ2Vz
IHRoZSBzaXplIG9mIHRoZSBtZW1vcnkgYXJlYSBieSB8Ynl0ZXN8OyByZXR1cm5zIHRoZQotICAg
ICAgLy8gYWRkcmVzcyBvZiB0aGUgcHJldmlvdXMgdG9wICgnYnJlYWsnKSBvZiB0aGUgbWVtb3J5
IGFyZWEKLSAgICAgIC8vIFdlIGNvbnRyb2wgdGhlICJkeW5hbWljIiBtZW1vcnkgLSBEWU5BTUlD
X0JBU0UgdG8gRFlOQU1JQ1RPUAotICAgICAgdmFyIHNlbGYgPSBfc2JyazsKLSAgICAgIGlmICgh
c2VsZi5jYWxsZWQpIHsKLSAgICAgICAgRFlOQU1JQ1RPUCA9IGFsaWduTWVtb3J5UGFnZShEWU5B
TUlDVE9QKTsgLy8gbWFrZSBzdXJlIHdlIHN0YXJ0IG91dCBhbGlnbmVkCi0gICAgICAgIHNlbGYu
Y2FsbGVkID0gdHJ1ZTsKLSAgICAgICAgYXNzZXJ0KFJ1bnRpbWUuZHluYW1pY0FsbG9jKTsKLSAg
ICAgICAgc2VsZi5hbGxvYyA9IFJ1bnRpbWUuZHluYW1pY0FsbG9jOwotICAgICAgICBSdW50aW1l
LmR5bmFtaWNBbGxvYyA9IGZ1bmN0aW9uKCkgeyBhYm9ydCgnY2Fubm90IGR5bmFtaWNhbGx5IGFs
bG9jYXRlLCBzYnJrIG5vdyBoYXMgY29udHJvbCcpIH07Ci0gICAgICB9Ci0gICAgICB2YXIgcmV0
ID0gRFlOQU1JQ1RPUDsKLSAgICAgIGlmIChieXRlcyAhPSAwKSBzZWxmLmFsbG9jKGJ5dGVzKTsK
LSAgICAgIHJldHVybiByZXQ7ICAvLyBQcmV2aW91cyBicmVhayBsb2NhdGlvbi4KLSAgICB9Ci0g
IGZ1bmN0aW9uIF90aW1lKHB0cikgewotICAgICAgdmFyIHJldCA9IE1hdGguZmxvb3IoRGF0ZS5u
b3coKS8xMDAwKTsKLSAgICAgIGlmIChwdHIpIHsKLSAgICAgICAgSEVBUDMyWygocHRyKT4+Mild
PXJldAotICAgICAgfQotICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2N4
YV9jYWxsX3VuZXhwZWN0ZWQoZXhjZXB0aW9uKSB7Ci0gICAgICBNb2R1bGUucHJpbnRFcnIoJ1Vu
ZXhwZWN0ZWQgZXhjZXB0aW9uIHRocm93biwgdGhpcyBpcyBub3QgcHJvcGVybHkgc3VwcG9ydGVk
IC0gYWJvcnRpbmcnKTsKLSAgICAgIEFCT1JUID0gdHJ1ZTsKLSAgICAgIHRocm93IGV4Y2VwdGlv
bjsKLSAgICB9Ci0gIHZhciBCcm93c2VyPXttYWluTG9vcDp7c2NoZWR1bGVyOm51bGwsc2hvdWxk
UGF1c2U6ZmFsc2UscGF1c2VkOmZhbHNlLHF1ZXVlOltdLHBhdXNlOmZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICBCcm93c2VyLm1haW5Mb29wLnNob3VsZFBhdXNlID0gdHJ1ZTsKLSAgICAgICAgfSxy
ZXN1bWU6ZnVuY3Rpb24gKCkgewotICAgICAgICAgIGlmIChCcm93c2VyLm1haW5Mb29wLnBhdXNl
ZCkgewotICAgICAgICAgICAgQnJvd3Nlci5tYWluTG9vcC5wYXVzZWQgPSBmYWxzZTsKLSAgICAg
ICAgICAgIEJyb3dzZXIubWFpbkxvb3Auc2NoZWR1bGVyKCk7Ci0gICAgICAgICAgfQotICAgICAg
ICAgIEJyb3dzZXIubWFpbkxvb3Auc2hvdWxkUGF1c2UgPSBmYWxzZTsKLSAgICAgICAgfSx1cGRh
dGVTdGF0dXM6ZnVuY3Rpb24gKCkgewotICAgICAgICAgIGlmIChNb2R1bGVbJ3NldFN0YXR1cydd
KSB7Ci0gICAgICAgICAgICB2YXIgbWVzc2FnZSA9IE1vZHVsZVsnc3RhdHVzTWVzc2FnZSddIHx8
ICdQbGVhc2Ugd2FpdC4uLic7Ci0gICAgICAgICAgICB2YXIgcmVtYWluaW5nID0gQnJvd3Nlci5t
YWluTG9vcC5yZW1haW5pbmdCbG9ja2VyczsKLSAgICAgICAgICAgIHZhciBleHBlY3RlZCA9IEJy
b3dzZXIubWFpbkxvb3AuZXhwZWN0ZWRCbG9ja2VyczsKLSAgICAgICAgICAgIGlmIChyZW1haW5p
bmcpIHsKLSAgICAgICAgICAgICAgaWYgKHJlbWFpbmluZyA8IGV4cGVjdGVkKSB7Ci0gICAgICAg
ICAgICAgICAgTW9kdWxlWydzZXRTdGF0dXMnXShtZXNzYWdlICsgJyAoJyArIChleHBlY3RlZCAt
IHJlbWFpbmluZykgKyAnLycgKyBleHBlY3RlZCArICcpJyk7Ci0gICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgTW9kdWxlWydzZXRTdGF0dXMnXShtZXNzYWdlKTsKLSAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgTW9kdWxlWydz
ZXRTdGF0dXMnXSgnJyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICB9fSxp
c0Z1bGxTY3JlZW46ZmFsc2UscG9pbnRlckxvY2s6ZmFsc2UsbW9kdWxlQ29udGV4dENyZWF0ZWRD
YWxsYmFja3M6W10sd29ya2VyczpbXSxpbml0OmZ1bmN0aW9uICgpIHsKLSAgICAgICAgaWYgKCFN
b2R1bGVbInByZWxvYWRQbHVnaW5zIl0pIE1vZHVsZVsicHJlbG9hZFBsdWdpbnMiXSA9IFtdOyAv
LyBuZWVkcyB0byBleGlzdCBldmVuIGluIHdvcmtlcnMKLSAgICAgICAgaWYgKEJyb3dzZXIuaW5p
dHRlZCB8fCBFTlZJUk9OTUVOVF9JU19XT1JLRVIpIHJldHVybjsKLSAgICAgICAgQnJvd3Nlci5p
bml0dGVkID0gdHJ1ZTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBuZXcgQmxvYigpOwotICAg
ICAgICAgIEJyb3dzZXIuaGFzQmxvYkNvbnN0cnVjdG9yID0gdHJ1ZTsKLSAgICAgICAgfSBjYXRj
aChlKSB7Ci0gICAgICAgICAgQnJvd3Nlci5oYXNCbG9iQ29uc3RydWN0b3IgPSBmYWxzZTsKLSAg
ICAgICAgICBjb25zb2xlLmxvZygid2FybmluZzogbm8gYmxvYiBjb25zdHJ1Y3RvciwgY2Fubm90
IGNyZWF0ZSBibG9icyB3aXRoIG1pbWV0eXBlcyIpOwotICAgICAgICB9Ci0gICAgICAgIEJyb3dz
ZXIuQmxvYkJ1aWxkZXIgPSB0eXBlb2YgTW96QmxvYkJ1aWxkZXIgIT0gInVuZGVmaW5lZCIgPyBN
b3pCbG9iQnVpbGRlciA6ICh0eXBlb2YgV2ViS2l0QmxvYkJ1aWxkZXIgIT0gInVuZGVmaW5lZCIg
PyBXZWJLaXRCbG9iQnVpbGRlciA6ICghQnJvd3Nlci5oYXNCbG9iQ29uc3RydWN0b3IgPyBjb25z
b2xlLmxvZygid2FybmluZzogbm8gQmxvYkJ1aWxkZXIiKSA6IG51bGwpKTsKLSAgICAgICAgQnJv
d3Nlci5VUkxPYmplY3QgPSB0eXBlb2Ygd2luZG93ICE9ICJ1bmRlZmluZWQiID8gKHdpbmRvdy5V
UkwgPyB3aW5kb3cuVVJMIDogd2luZG93LndlYmtpdFVSTCkgOiB1bmRlZmluZWQ7Ci0gICAgICAg
IGlmICghTW9kdWxlLm5vSW1hZ2VEZWNvZGluZyAmJiB0eXBlb2YgQnJvd3Nlci5VUkxPYmplY3Qg
PT09ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgICAgY29uc29sZS5sb2coIndhcm5pbmc6IEJyb3dz
ZXIgZG9lcyBub3Qgc3VwcG9ydCBjcmVhdGluZyBvYmplY3QgVVJMcy4gQnVpbHQtaW4gYnJvd3Nl
ciBpbWFnZSBkZWNvZGluZyB3aWxsIG5vdCBiZSBhdmFpbGFibGUuIik7Ci0gICAgICAgICAgTW9k
dWxlLm5vSW1hZ2VEZWNvZGluZyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gU3VwcG9y
dCBmb3IgcGx1Z2lucyB0aGF0IGNhbiBwcm9jZXNzIHByZWxvYWRlZCBmaWxlcy4gWW91IGNhbiBh
ZGQgbW9yZSBvZiB0aGVzZSB0bwotICAgICAgICAvLyB5b3VyIGFwcCBieSBjcmVhdGluZyBhbmQg
YXBwZW5kaW5nIHRvIE1vZHVsZS5wcmVsb2FkUGx1Z2lucy4KLSAgICAgICAgLy8KLSAgICAgICAg
Ly8gRWFjaCBwbHVnaW4gaXMgYXNrZWQgaWYgaXQgY2FuIGhhbmRsZSBhIGZpbGUgYmFzZWQgb24g
dGhlIGZpbGUncyBuYW1lLiBJZiBpdCBjYW4sCi0gICAgICAgIC8vIGl0IGlzIGdpdmVuIHRoZSBm
aWxlJ3MgcmF3IGRhdGEuIFdoZW4gaXQgaXMgZG9uZSwgaXQgY2FsbHMgYSBjYWxsYmFjayB3aXRo
IHRoZSBmaWxlJ3MKLSAgICAgICAgLy8gKHBvc3NpYmx5IG1vZGlmaWVkKSBkYXRhLiBGb3IgZXhh
bXBsZSwgYSBwbHVnaW4gbWlnaHQgZGVjb21wcmVzcyBhIGZpbGUsIG9yIGl0Ci0gICAgICAgIC8v
IG1pZ2h0IGNyZWF0ZSBzb21lIHNpZGUgZGF0YSBzdHJ1Y3R1cmUgZm9yIHVzZSBsYXRlciAobGlr
ZSBhbiBJbWFnZSBlbGVtZW50LCBldGMuKS4KLSAgICAgICAgdmFyIGltYWdlUGx1Z2luID0ge307
Ci0gICAgICAgIGltYWdlUGx1Z2luWydjYW5IYW5kbGUnXSA9IGZ1bmN0aW9uKG5hbWUpIHsKLSAg
ICAgICAgICByZXR1cm4gIU1vZHVsZS5ub0ltYWdlRGVjb2RpbmcgJiYgL1wuKGpwZ3xqcGVnfHBu
Z3xibXApJC9pLnRlc3QobmFtZSk7Ci0gICAgICAgIH07Ci0gICAgICAgIGltYWdlUGx1Z2luWydo
YW5kbGUnXSA9IGZ1bmN0aW9uKGJ5dGVBcnJheSwgbmFtZSwgb25sb2FkLCBvbmVycm9yKSB7Ci0g
ICAgICAgICAgdmFyIGIgPSBudWxsOwotICAgICAgICAgIGlmIChCcm93c2VyLmhhc0Jsb2JDb25z
dHJ1Y3RvcikgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgYiA9IG5ldyBCbG9i
KFtieXRlQXJyYXldLCB7IHR5cGU6IEJyb3dzZXIuZ2V0TWltZXR5cGUobmFtZSkgfSk7Ci0gICAg
ICAgICAgICAgIGlmIChiLnNpemUgIT09IGJ5dGVBcnJheS5sZW5ndGgpIHsgLy8gU2FmYXJpIGJ1
ZyAjMTE4NjMwCi0gICAgICAgICAgICAgICAgLy8gU2FmYXJpJ3MgQmxvYiBjYW4gb25seSB0YWtl
IGFuIEFycmF5QnVmZmVyCi0gICAgICAgICAgICAgICAgYiA9IG5ldyBCbG9iKFsobmV3IFVpbnQ4
QXJyYXkoYnl0ZUFycmF5KSkuYnVmZmVyXSwgeyB0eXBlOiBCcm93c2VyLmdldE1pbWV0eXBlKG5h
bWUpIH0pOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGNhdGNoKGUpIHsKLSAgICAg
ICAgICAgICAgUnVudGltZS53YXJuT25jZSgnQmxvYiBjb25zdHJ1Y3RvciBwcmVzZW50IGJ1dCBm
YWlsczogJyArIGUgKyAnOyBmYWxsaW5nIGJhY2sgdG8gYmxvYiBidWlsZGVyJyk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmICghYikgewotICAgICAgICAgICAgdmFy
IGJiID0gbmV3IEJyb3dzZXIuQmxvYkJ1aWxkZXIoKTsKLSAgICAgICAgICAgIGJiLmFwcGVuZCgo
bmV3IFVpbnQ4QXJyYXkoYnl0ZUFycmF5KSkuYnVmZmVyKTsgLy8gd2UgbmVlZCB0byBwYXNzIGEg
YnVmZmVyLCBhbmQgbXVzdCBjb3B5IHRoZSBhcnJheSB0byBnZXQgdGhlIHJpZ2h0IGRhdGEgcmFu
Z2UKLSAgICAgICAgICAgIGIgPSBiYi5nZXRCbG9iKCk7Ci0gICAgICAgICAgfQotICAgICAgICAg
IHZhciB1cmwgPSBCcm93c2VyLlVSTE9iamVjdC5jcmVhdGVPYmplY3RVUkwoYik7Ci0gICAgICAg
ICAgdmFyIGltZyA9IG5ldyBJbWFnZSgpOwotICAgICAgICAgIGltZy5vbmxvYWQgPSBmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgIGFzc2VydChpbWcuY29tcGxldGUsICdJbWFnZSAnICsgbmFtZSAr
ICcgY291bGQgbm90IGJlIGRlY29kZWQnKTsKLSAgICAgICAgICAgIHZhciBjYW52YXMgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKLSAgICAgICAgICAgIGNhbnZhcy53aWR0aCA9
IGltZy53aWR0aDsKLSAgICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWcuaGVpZ2h0OwotICAg
ICAgICAgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOwotICAgICAgICAgICAg
Y3R4LmRyYXdJbWFnZShpbWcsIDAsIDApOwotICAgICAgICAgICAgTW9kdWxlWyJwcmVsb2FkZWRJ
bWFnZXMiXVtuYW1lXSA9IGNhbnZhczsKLSAgICAgICAgICAgIEJyb3dzZXIuVVJMT2JqZWN0LnJl
dm9rZU9iamVjdFVSTCh1cmwpOwotICAgICAgICAgICAgaWYgKG9ubG9hZCkgb25sb2FkKGJ5dGVB
cnJheSk7Ci0gICAgICAgICAgfTsKLSAgICAgICAgICBpbWcub25lcnJvciA9IGZ1bmN0aW9uKGV2
ZW50KSB7Ci0gICAgICAgICAgICBjb25zb2xlLmxvZygnSW1hZ2UgJyArIHVybCArICcgY291bGQg
bm90IGJlIGRlY29kZWQnKTsKLSAgICAgICAgICAgIGlmIChvbmVycm9yKSBvbmVycm9yKCk7Ci0g
ICAgICAgICAgfTsKLSAgICAgICAgICBpbWcuc3JjID0gdXJsOwotICAgICAgICB9OwotICAgICAg
ICBNb2R1bGVbJ3ByZWxvYWRQbHVnaW5zJ10ucHVzaChpbWFnZVBsdWdpbik7Ci0gICAgICAgIHZh
ciBhdWRpb1BsdWdpbiA9IHt9OwotICAgICAgICBhdWRpb1BsdWdpblsnY2FuSGFuZGxlJ10gPSBm
dW5jdGlvbihuYW1lKSB7Ci0gICAgICAgICAgcmV0dXJuICFNb2R1bGUubm9BdWRpb0RlY29kaW5n
ICYmIG5hbWUuc3Vic3RyKC00KSBpbiB7ICcub2dnJzogMSwgJy53YXYnOiAxLCAnLm1wMyc6IDEg
fTsKLSAgICAgICAgfTsKLSAgICAgICAgYXVkaW9QbHVnaW5bJ2hhbmRsZSddID0gZnVuY3Rpb24o
Ynl0ZUFycmF5LCBuYW1lLCBvbmxvYWQsIG9uZXJyb3IpIHsKLSAgICAgICAgICB2YXIgZG9uZSA9
IGZhbHNlOwotICAgICAgICAgIGZ1bmN0aW9uIGZpbmlzaChhdWRpbykgewotICAgICAgICAgICAg
aWYgKGRvbmUpIHJldHVybjsKLSAgICAgICAgICAgIGRvbmUgPSB0cnVlOwotICAgICAgICAgICAg
TW9kdWxlWyJwcmVsb2FkZWRBdWRpb3MiXVtuYW1lXSA9IGF1ZGlvOwotICAgICAgICAgICAgaWYg
KG9ubG9hZCkgb25sb2FkKGJ5dGVBcnJheSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGZ1bmN0
aW9uIGZhaWwoKSB7Ci0gICAgICAgICAgICBpZiAoZG9uZSkgcmV0dXJuOwotICAgICAgICAgICAg
ZG9uZSA9IHRydWU7Ci0gICAgICAgICAgICBNb2R1bGVbInByZWxvYWRlZEF1ZGlvcyJdW25hbWVd
ID0gbmV3IEF1ZGlvKCk7IC8vIGVtcHR5IHNoaW0KLSAgICAgICAgICAgIGlmIChvbmVycm9yKSBv
bmVycm9yKCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChCcm93c2VyLmhhc0Jsb2JDb25z
dHJ1Y3RvcikgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgdmFyIGIgPSBuZXcg
QmxvYihbYnl0ZUFycmF5XSwgeyB0eXBlOiBCcm93c2VyLmdldE1pbWV0eXBlKG5hbWUpIH0pOwot
ICAgICAgICAgICAgfSBjYXRjaChlKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBmYWlsKCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB2YXIgdXJsID0gQnJvd3Nlci5VUkxPYmplY3QuY3Jl
YXRlT2JqZWN0VVJMKGIpOyAvLyBYWFggd2UgbmV2ZXIgcmV2b2tlIHRoaXMhCi0gICAgICAgICAg
ICB2YXIgYXVkaW8gPSBuZXcgQXVkaW8oKTsKLSAgICAgICAgICAgIGF1ZGlvLmFkZEV2ZW50TGlz
dGVuZXIoJ2NhbnBsYXl0aHJvdWdoJywgZnVuY3Rpb24oKSB7IGZpbmlzaChhdWRpbykgfSwgZmFs
c2UpOyAvLyB1c2UgYWRkRXZlbnRMaXN0ZW5lciBkdWUgdG8gY2hyb21pdW0gYnVnIDEyNDkyNgot
ICAgICAgICAgICAgYXVkaW8ub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAg
ICAgIGlmIChkb25lKSByZXR1cm47Ci0gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd3YXJuaW5n
OiBicm93c2VyIGNvdWxkIG5vdCBmdWxseSBkZWNvZGUgYXVkaW8gJyArIG5hbWUgKyAnLCB0cnlp
bmcgc2xvd2VyIGJhc2U2NCBhcHByb2FjaCcpOwotICAgICAgICAgICAgICBmdW5jdGlvbiBlbmNv
ZGU2NChkYXRhKSB7Ci0gICAgICAgICAgICAgICAgdmFyIEJBU0UgPSAnQUJDREVGR0hJSktMTU5P
UFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7Ci0gICAg
ICAgICAgICAgICAgdmFyIFBBRCA9ICc9JzsKLSAgICAgICAgICAgICAgICB2YXIgcmV0ID0gJyc7
Ci0gICAgICAgICAgICAgICAgdmFyIGxlZnRjaGFyID0gMDsKLSAgICAgICAgICAgICAgICB2YXIg
bGVmdGJpdHMgPSAwOwotICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5s
ZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgICAgbGVmdGNoYXIgPSAobGVmdGNoYXIgPDwg
OCkgfCBkYXRhW2ldOwotICAgICAgICAgICAgICAgICAgbGVmdGJpdHMgKz0gODsKLSAgICAgICAg
ICAgICAgICAgIHdoaWxlIChsZWZ0Yml0cyA+PSA2KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZh
ciBjdXJyID0gKGxlZnRjaGFyID4+IChsZWZ0Yml0cy02KSkgJiAweDNmOwotICAgICAgICAgICAg
ICAgICAgICBsZWZ0Yml0cyAtPSA2OwotICAgICAgICAgICAgICAgICAgICByZXQgKz0gQkFTRVtj
dXJyXTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgaWYgKGxlZnRiaXRzID09IDIpIHsKLSAgICAgICAgICAgICAgICAgIHJldCArPSBCQVNF
WyhsZWZ0Y2hhciYzKSA8PCA0XTsKLSAgICAgICAgICAgICAgICAgIHJldCArPSBQQUQgKyBQQUQ7
Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsZWZ0Yml0cyA9PSA0KSB7Ci0gICAgICAgICAg
ICAgICAgICByZXQgKz0gQkFTRVsobGVmdGNoYXImMHhmKSA8PCAyXTsKLSAgICAgICAgICAgICAg
ICAgIHJldCArPSBQQUQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVy
biByZXQ7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYXVkaW8uc3JjID0gJ2RhdGE6
YXVkaW8veC0nICsgbmFtZS5zdWJzdHIoLTMpICsgJztiYXNlNjQsJyArIGVuY29kZTY0KGJ5dGVB
cnJheSk7Ci0gICAgICAgICAgICAgIGZpbmlzaChhdWRpbyk7IC8vIHdlIGRvbid0IHdhaXQgZm9y
IGNvbmZpcm1hdGlvbiB0aGlzIHdvcmtlZCAtIGJ1dCBpdCdzIHdvcnRoIHRyeWluZwotICAgICAg
ICAgICAgfTsKLSAgICAgICAgICAgIGF1ZGlvLnNyYyA9IHVybDsKLSAgICAgICAgICAgIC8vIHdv
cmthcm91bmQgZm9yIGNocm9tZSBidWcgMTI0OTI2IC0gd2UgZG8gbm90IGFsd2F5cyBnZXQgb25j
YW5wbGF5dGhyb3VnaCBvciBvbmVycm9yCi0gICAgICAgICAgICBCcm93c2VyLnNhZmVTZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICBmaW5pc2goYXVkaW8pOyAvLyB0cnkgdG8g
dXNlIGl0IGV2ZW4gdGhvdWdoIGl0IGlzIG5vdCBuZWNlc3NhcmlseSByZWFkeSB0byBwbGF5Ci0g
ICAgICAgICAgICB9LCAxMDAwMCk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJl
dHVybiBmYWlsKCk7Ci0gICAgICAgICAgfQotICAgICAgICB9OwotICAgICAgICBNb2R1bGVbJ3By
ZWxvYWRQbHVnaW5zJ10ucHVzaChhdWRpb1BsdWdpbik7Ci0gICAgICAgIC8vIENhbnZhcyBldmVu
dCBzZXR1cAotICAgICAgICB2YXIgY2FudmFzID0gTW9kdWxlWydjYW52YXMnXTsKLSAgICAgICAg
Y2FudmFzLnJlcXVlc3RQb2ludGVyTG9jayA9IGNhbnZhc1sncmVxdWVzdFBvaW50ZXJMb2NrJ10g
fHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhc1snbW96UmVxdWVz
dFBvaW50ZXJMb2NrJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNh
bnZhc1snd2Via2l0UmVxdWVzdFBvaW50ZXJMb2NrJ107Ci0gICAgICAgIGNhbnZhcy5leGl0UG9p
bnRlckxvY2sgPSBkb2N1bWVudFsnZXhpdFBvaW50ZXJMb2NrJ10gfHwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Wydtb3pFeGl0UG9pbnRlckxvY2snXSB8fAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRbJ3dlYmtpdEV4aXRQb2ludGVy
TG9jayddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpe307
IC8vIG5vLW9wIGlmIGZ1bmN0aW9uIGRvZXMgbm90IGV4aXN0Ci0gICAgICAgIGNhbnZhcy5leGl0
UG9pbnRlckxvY2sgPSBjYW52YXMuZXhpdFBvaW50ZXJMb2NrLmJpbmQoZG9jdW1lbnQpOwotICAg
ICAgICBmdW5jdGlvbiBwb2ludGVyTG9ja0NoYW5nZSgpIHsKLSAgICAgICAgICBCcm93c2VyLnBv
aW50ZXJMb2NrID0gZG9jdW1lbnRbJ3BvaW50ZXJMb2NrRWxlbWVudCddID09PSBjYW52YXMgfHwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRbJ21velBvaW50ZXJMb2Nr
RWxlbWVudCddID09PSBjYW52YXMgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnRbJ3dlYmtpdFBvaW50ZXJMb2NrRWxlbWVudCddID09PSBjYW52YXM7Ci0gICAgICAg
IH0KLSAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmxvY2tjaGFuZ2Un
LCBwb2ludGVyTG9ja0NoYW5nZSwgZmFsc2UpOwotICAgICAgICBkb2N1bWVudC5hZGRFdmVudExp
c3RlbmVyKCdtb3pwb2ludGVybG9ja2NoYW5nZScsIHBvaW50ZXJMb2NrQ2hhbmdlLCBmYWxzZSk7
Ci0gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdHBvaW50ZXJsb2NrY2hh
bmdlJywgcG9pbnRlckxvY2tDaGFuZ2UsIGZhbHNlKTsKLSAgICAgICAgaWYgKE1vZHVsZVsnZWxl
bWVudFBvaW50ZXJMb2NrJ10pIHsKLSAgICAgICAgICBjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCBmdW5jdGlvbihldikgewotICAgICAgICAgICAgaWYgKCFCcm93c2VyLnBvaW50ZXJM
b2NrICYmIGNhbnZhcy5yZXF1ZXN0UG9pbnRlckxvY2spIHsKLSAgICAgICAgICAgICAgY2FudmFz
LnJlcXVlc3RQb2ludGVyTG9jaygpOwotICAgICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgp
OwotICAgICAgICAgICAgfQotICAgICAgICAgIH0sIGZhbHNlKTsKLSAgICAgICAgfQotICAgICAg
fSxjcmVhdGVDb250ZXh0OmZ1bmN0aW9uIChjYW52YXMsIHVzZVdlYkdMLCBzZXRJbk1vZHVsZSkg
ewotICAgICAgICB2YXIgY3R4OwotICAgICAgICB0cnkgewotICAgICAgICAgIGlmICh1c2VXZWJH
TCkgewotICAgICAgICAgICAgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJ2V4cGVyaW1lbnRhbC13
ZWJnbCcsIHsKLSAgICAgICAgICAgICAgYWxwaGE6IGZhbHNlCi0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJk
Jyk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmICghY3R4KSB0aHJvdyAnOignOwotICAgICAg
ICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgTW9kdWxlLnByaW50KCdDb3VsZCBub3QgY3JlYXRl
IGNhbnZhcyAtICcgKyBlKTsKLSAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotICAg
ICAgICBpZiAodXNlV2ViR0wpIHsKLSAgICAgICAgICAvLyBTZXQgdGhlIGJhY2tncm91bmQgb2Yg
dGhlIFdlYkdMIGNhbnZhcyB0byBibGFjawotICAgICAgICAgIGNhbnZhcy5zdHlsZS5iYWNrZ3Jv
dW5kQ29sb3IgPSAiYmxhY2siOwotICAgICAgICAgIC8vIFdhcm4gb24gY29udGV4dCBsb3NzCi0g
ICAgICAgICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmdsY29udGV4dGxvc3QnLCBmdW5j
dGlvbihldmVudCkgewotICAgICAgICAgICAgYWxlcnQoJ1dlYkdMIGNvbnRleHQgbG9zdC4gWW91
IHdpbGwgbmVlZCB0byByZWxvYWQgdGhlIHBhZ2UuJyk7Ci0gICAgICAgICAgfSwgZmFsc2UpOwot
ICAgICAgICB9Ci0gICAgICAgIGlmIChzZXRJbk1vZHVsZSkgewotICAgICAgICAgIE1vZHVsZS5j
dHggPSBjdHg7Ci0gICAgICAgICAgTW9kdWxlLnVzZVdlYkdMID0gdXNlV2ViR0w7Ci0gICAgICAg
ICAgQnJvd3Nlci5tb2R1bGVDb250ZXh0Q3JlYXRlZENhbGxiYWNrcy5mb3JFYWNoKGZ1bmN0aW9u
KGNhbGxiYWNrKSB7IGNhbGxiYWNrKCkgfSk7Ci0gICAgICAgICAgQnJvd3Nlci5pbml0KCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGN0eDsKLSAgICAgIH0sZGVzdHJveUNvbnRleHQ6ZnVu
Y3Rpb24gKGNhbnZhcywgdXNlV2ViR0wsIHNldEluTW9kdWxlKSB7fSxmdWxsU2NyZWVuSGFuZGxl
cnNJbnN0YWxsZWQ6ZmFsc2UsbG9ja1BvaW50ZXI6dW5kZWZpbmVkLHJlc2l6ZUNhbnZhczp1bmRl
ZmluZWQscmVxdWVzdEZ1bGxTY3JlZW46ZnVuY3Rpb24gKGxvY2tQb2ludGVyLCByZXNpemVDYW52
YXMpIHsKLSAgICAgICAgQnJvd3Nlci5sb2NrUG9pbnRlciA9IGxvY2tQb2ludGVyOwotICAgICAg
ICBCcm93c2VyLnJlc2l6ZUNhbnZhcyA9IHJlc2l6ZUNhbnZhczsKLSAgICAgICAgaWYgKHR5cGVv
ZiBCcm93c2VyLmxvY2tQb2ludGVyID09PSAndW5kZWZpbmVkJykgQnJvd3Nlci5sb2NrUG9pbnRl
ciA9IHRydWU7Ci0gICAgICAgIGlmICh0eXBlb2YgQnJvd3Nlci5yZXNpemVDYW52YXMgPT09ICd1
bmRlZmluZWQnKSBCcm93c2VyLnJlc2l6ZUNhbnZhcyA9IGZhbHNlOwotICAgICAgICB2YXIgY2Fu
dmFzID0gTW9kdWxlWydjYW52YXMnXTsKLSAgICAgICAgZnVuY3Rpb24gZnVsbFNjcmVlbkNoYW5n
ZSgpIHsKLSAgICAgICAgICBCcm93c2VyLmlzRnVsbFNjcmVlbiA9IGZhbHNlOwotICAgICAgICAg
IGlmICgoZG9jdW1lbnRbJ3dlYmtpdEZ1bGxTY3JlZW5FbGVtZW50J10gfHwgZG9jdW1lbnRbJ3dl
YmtpdEZ1bGxzY3JlZW5FbGVtZW50J10gfHwKLSAgICAgICAgICAgICAgIGRvY3VtZW50Wydtb3pG
dWxsU2NyZWVuRWxlbWVudCddIHx8IGRvY3VtZW50Wydtb3pGdWxsc2NyZWVuRWxlbWVudCddIHx8
Ci0gICAgICAgICAgICAgICBkb2N1bWVudFsnZnVsbFNjcmVlbkVsZW1lbnQnXSB8fCBkb2N1bWVu
dFsnZnVsbHNjcmVlbkVsZW1lbnQnXSkgPT09IGNhbnZhcykgewotICAgICAgICAgICAgY2FudmFz
LmNhbmNlbEZ1bGxTY3JlZW4gPSBkb2N1bWVudFsnY2FuY2VsRnVsbFNjcmVlbiddIHx8Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Wydtb3pDYW5jZWxGdWxs
U2NyZWVuJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnRbJ3dlYmtpdENhbmNlbEZ1bGxTY3JlZW4nXTsKLSAgICAgICAgICAgIGNhbnZhcy5jYW5jZWxG
dWxsU2NyZWVuID0gY2FudmFzLmNhbmNlbEZ1bGxTY3JlZW4uYmluZChkb2N1bWVudCk7Ci0gICAg
ICAgICAgICBpZiAoQnJvd3Nlci5sb2NrUG9pbnRlcikgY2FudmFzLnJlcXVlc3RQb2ludGVyTG9j
aygpOwotICAgICAgICAgICAgQnJvd3Nlci5pc0Z1bGxTY3JlZW4gPSB0cnVlOwotICAgICAgICAg
ICAgaWYgKEJyb3dzZXIucmVzaXplQ2FudmFzKSBCcm93c2VyLnNldEZ1bGxTY3JlZW5DYW52YXNT
aXplKCk7Ci0gICAgICAgICAgfSBlbHNlIGlmIChCcm93c2VyLnJlc2l6ZUNhbnZhcyl7Ci0gICAg
ICAgICAgICBCcm93c2VyLnNldFdpbmRvd2VkQ2FudmFzU2l6ZSgpOwotICAgICAgICAgIH0KLSAg
ICAgICAgICBpZiAoTW9kdWxlWydvbkZ1bGxTY3JlZW4nXSkgTW9kdWxlWydvbkZ1bGxTY3JlZW4n
XShCcm93c2VyLmlzRnVsbFNjcmVlbik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFCcm93c2Vy
LmZ1bGxTY3JlZW5IYW5kbGVyc0luc3RhbGxlZCkgewotICAgICAgICAgIEJyb3dzZXIuZnVsbFNj
cmVlbkhhbmRsZXJzSW5zdGFsbGVkID0gdHJ1ZTsKLSAgICAgICAgICBkb2N1bWVudC5hZGRFdmVu
dExpc3RlbmVyKCdmdWxsc2NyZWVuY2hhbmdlJywgZnVsbFNjcmVlbkNoYW5nZSwgZmFsc2UpOwot
ICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vemZ1bGxzY3JlZW5jaGFuZ2Un
LCBmdWxsU2NyZWVuQ2hhbmdlLCBmYWxzZSk7Ci0gICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcignd2Via2l0ZnVsbHNjcmVlbmNoYW5nZScsIGZ1bGxTY3JlZW5DaGFuZ2UsIGZhbHNl
KTsKLSAgICAgICAgfQotICAgICAgICBjYW52YXMucmVxdWVzdEZ1bGxTY3JlZW4gPSBjYW52YXNb
J3JlcXVlc3RGdWxsU2NyZWVuJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2FudmFzWydtb3pSZXF1ZXN0RnVsbFNjcmVlbiddIHx8Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChjYW52YXNbJ3dlYmtpdFJlcXVlc3RGdWxsU2NyZWVuJ10gPyBmdW5j
dGlvbigpIHsgY2FudmFzWyd3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiddKEVsZW1lbnRbJ0FMTE9X
X0tFWUJPQVJEX0lOUFVUJ10pIH0gOiBudWxsKTsKLSAgICAgICAgY2FudmFzLnJlcXVlc3RGdWxs
U2NyZWVuKCk7Ci0gICAgICB9LHJlcXVlc3RBbmltYXRpb25GcmFtZTpmdW5jdGlvbiAoZnVuYykg
ewotICAgICAgICBpZiAoIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIHsKLSAgICAgICAg
ICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gd2luZG93WydyZXF1ZXN0QW5pbWF0aW9u
RnJhbWUnXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3dbJ21velJlcXVlc3RBbmltYXRpb25GcmFtZSddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdpbmRvd1snd2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lJ10g
fHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Wydtc1Jl
cXVlc3RBbmltYXRpb25GcmFtZSddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHdpbmRvd1snb1JlcXVlc3RBbmltYXRpb25GcmFtZSddIHx8Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd1snc2V0VGltZW91dCddOwotICAg
ICAgICB9Ci0gICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuYyk7Ci0gICAg
ICB9LHNhZmVDYWxsYmFjazpmdW5jdGlvbiAoZnVuYykgewotICAgICAgICByZXR1cm4gZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgaWYgKCFBQk9SVCkgcmV0dXJuIGZ1bmMuYXBwbHkobnVsbCwgYXJn
dW1lbnRzKTsKLSAgICAgICAgfTsKLSAgICAgIH0sc2FmZVJlcXVlc3RBbmltYXRpb25GcmFtZTpm
dW5jdGlvbiAoZnVuYykgewotICAgICAgICByZXR1cm4gQnJvd3Nlci5yZXF1ZXN0QW5pbWF0aW9u
RnJhbWUoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKCFBQk9SVCkgZnVuYygpOwotICAgICAg
ICB9KTsKLSAgICAgIH0sc2FmZVNldFRpbWVvdXQ6ZnVuY3Rpb24gKGZ1bmMsIHRpbWVvdXQpIHsK
LSAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKCFB
Qk9SVCkgZnVuYygpOwotICAgICAgICB9LCB0aW1lb3V0KTsKLSAgICAgIH0sc2FmZVNldEludGVy
dmFsOmZ1bmN0aW9uIChmdW5jLCB0aW1lb3V0KSB7Ci0gICAgICAgIHJldHVybiBzZXRJbnRlcnZh
bChmdW5jdGlvbigpIHsKLSAgICAgICAgICBpZiAoIUFCT1JUKSBmdW5jKCk7Ci0gICAgICAgIH0s
IHRpbWVvdXQpOwotICAgICAgfSxnZXRNaW1ldHlwZTpmdW5jdGlvbiAobmFtZSkgewotICAgICAg
ICByZXR1cm4gewotICAgICAgICAgICdqcGcnOiAnaW1hZ2UvanBlZycsCi0gICAgICAgICAgJ2pw
ZWcnOiAnaW1hZ2UvanBlZycsCi0gICAgICAgICAgJ3BuZyc6ICdpbWFnZS9wbmcnLAotICAgICAg
ICAgICdibXAnOiAnaW1hZ2UvYm1wJywKLSAgICAgICAgICAnb2dnJzogJ2F1ZGlvL29nZycsCi0g
ICAgICAgICAgJ3dhdic6ICdhdWRpby93YXYnLAotICAgICAgICAgICdtcDMnOiAnYXVkaW8vbXBl
ZycKLSAgICAgICAgfVtuYW1lLnN1YnN0cihuYW1lLmxhc3RJbmRleE9mKCcuJykrMSldOwotICAg
ICAgfSxnZXRVc2VyTWVkaWE6ZnVuY3Rpb24gKGZ1bmMpIHsKLSAgICAgICAgaWYoIXdpbmRvdy5n
ZXRVc2VyTWVkaWEpIHsKLSAgICAgICAgICB3aW5kb3cuZ2V0VXNlck1lZGlhID0gbmF2aWdhdG9y
WydnZXRVc2VyTWVkaWEnXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZp
Z2F0b3JbJ21vekdldFVzZXJNZWRpYSddOwotICAgICAgICB9Ci0gICAgICAgIHdpbmRvdy5nZXRV
c2VyTWVkaWEoZnVuYyk7Ci0gICAgICB9LGdldE1vdmVtZW50WDpmdW5jdGlvbiAoZXZlbnQpIHsK
LSAgICAgICAgcmV0dXJuIGV2ZW50Wydtb3ZlbWVudFgnXSB8fAotICAgICAgICAgICAgICAgZXZl
bnRbJ21vek1vdmVtZW50WCddIHx8Ci0gICAgICAgICAgICAgICBldmVudFsnd2Via2l0TW92ZW1l
bnRYJ10gfHwKLSAgICAgICAgICAgICAgIDA7Ci0gICAgICB9LGdldE1vdmVtZW50WTpmdW5jdGlv
biAoZXZlbnQpIHsKLSAgICAgICAgcmV0dXJuIGV2ZW50Wydtb3ZlbWVudFknXSB8fAotICAgICAg
ICAgICAgICAgZXZlbnRbJ21vek1vdmVtZW50WSddIHx8Ci0gICAgICAgICAgICAgICBldmVudFsn
d2Via2l0TW92ZW1lbnRZJ10gfHwKLSAgICAgICAgICAgICAgIDA7Ci0gICAgICB9LG1vdXNlWDow
LG1vdXNlWTowLG1vdXNlTW92ZW1lbnRYOjAsbW91c2VNb3ZlbWVudFk6MCxjYWxjdWxhdGVNb3Vz
ZUV2ZW50OmZ1bmN0aW9uIChldmVudCkgeyAvLyBldmVudCBzaG91bGQgYmUgbW91c2Vtb3ZlLCBt
b3VzZWRvd24gb3IgbW91c2V1cAotICAgICAgICBpZiAoQnJvd3Nlci5wb2ludGVyTG9jaykgewot
ICAgICAgICAgIC8vIFdoZW4gdGhlIHBvaW50ZXIgaXMgbG9ja2VkLCBjYWxjdWxhdGUgdGhlIGNv
b3JkaW5hdGVzCi0gICAgICAgICAgLy8gYmFzZWQgb24gdGhlIG1vdmVtZW50IG9mIHRoZSBtb3Vz
ZS4KLSAgICAgICAgICAvLyBXb3JrYXJvdW5kIGZvciBGaXJlZm94IGJ1ZyA3NjQ0OTgKLSAgICAg
ICAgICBpZiAoZXZlbnQudHlwZSAhPSAnbW91c2Vtb3ZlJyAmJgotICAgICAgICAgICAgICAoJ21v
ek1vdmVtZW50WCcgaW4gZXZlbnQpKSB7Ci0gICAgICAgICAgICBCcm93c2VyLm1vdXNlTW92ZW1l
bnRYID0gQnJvd3Nlci5tb3VzZU1vdmVtZW50WSA9IDA7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIEJyb3dzZXIubW91c2VNb3ZlbWVudFggPSBCcm93c2VyLmdldE1vdmVtZW50WChl
dmVudCk7Ci0gICAgICAgICAgICBCcm93c2VyLm1vdXNlTW92ZW1lbnRZID0gQnJvd3Nlci5nZXRN
b3ZlbWVudFkoZXZlbnQpOwotICAgICAgICAgIH0KLSAgICAgICAgICAvLyBjaGVjayBpZiBTREwg
aXMgYXZhaWxhYmxlCi0gICAgICAgICAgaWYgKHR5cGVvZiBTREwgIT0gInVuZGVmaW5lZCIpIHsK
LSAgICAgICAgICAJQnJvd3Nlci5tb3VzZVggPSBTREwubW91c2VYICsgQnJvd3Nlci5tb3VzZU1v
dmVtZW50WDsKLSAgICAgICAgICAJQnJvd3Nlci5tb3VzZVkgPSBTREwubW91c2VZICsgQnJvd3Nl
ci5tb3VzZU1vdmVtZW50WTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgIAkvLyBqdXN0
IGFkZCB0aGUgbW91c2UgZGVsdGEgdG8gdGhlIGN1cnJlbnQgYWJzb2x1dCBtb3VzZSBwb3NpdGlv
bgotICAgICAgICAgIAkvLyBGSVhNRTogaWRlYWxseSB0aGlzIHNob3VsZCBiZSBjbGFtcGVkIGFn
YWluc3QgdGhlIGNhbnZhcyBzaXplIGFuZCB6ZXJvCi0gICAgICAgICAgCUJyb3dzZXIubW91c2VY
ICs9IEJyb3dzZXIubW91c2VNb3ZlbWVudFg7Ci0gICAgICAgICAgCUJyb3dzZXIubW91c2VZICs9
IEJyb3dzZXIubW91c2VNb3ZlbWVudFk7Ci0gICAgICAgICAgfSAgICAgICAgCi0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgLy8gT3RoZXJ3aXNlLCBjYWxjdWxhdGUgdGhlIG1vdmVtZW50IGJh
c2VkIG9uIHRoZSBjaGFuZ2VzCi0gICAgICAgICAgLy8gaW4gdGhlIGNvb3JkaW5hdGVzLgotICAg
ICAgICAgIHZhciByZWN0ID0gTW9kdWxlWyJjYW52YXMiXS5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KTsKLSAgICAgICAgICB2YXIgeCwgeTsKLSAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PSAndG91
Y2hzdGFydCcgfHwKLSAgICAgICAgICAgICAgZXZlbnQudHlwZSA9PSAndG91Y2hlbmQnIHx8Ci0g
ICAgICAgICAgICAgIGV2ZW50LnR5cGUgPT0gJ3RvdWNobW92ZScpIHsKLSAgICAgICAgICAgIHZh
ciB0ID0gZXZlbnQudG91Y2hlcy5pdGVtKDApOwotICAgICAgICAgICAgaWYgKHQpIHsKLSAgICAg
ICAgICAgICAgeCA9IHQucGFnZVggLSAod2luZG93LnNjcm9sbFggKyByZWN0LmxlZnQpOwotICAg
ICAgICAgICAgICB5ID0gdC5wYWdlWSAtICh3aW5kb3cuc2Nyb2xsWSArIHJlY3QudG9wKTsKLSAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgeCA9IGV2ZW50LnBhZ2VYIC0gKHdpbmRv
dy5zY3JvbGxYICsgcmVjdC5sZWZ0KTsKLSAgICAgICAgICAgIHkgPSBldmVudC5wYWdlWSAtICh3
aW5kb3cuc2Nyb2xsWSArIHJlY3QudG9wKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gdGhl
IGNhbnZhcyBtaWdodCBiZSBDU1Mtc2NhbGVkIGNvbXBhcmVkIHRvIGl0cyBiYWNrYnVmZmVyOwot
ICAgICAgICAgIC8vIFNETC11c2luZyBjb250ZW50IHdpbGwgd2FudCBtb3VzZSBjb29yZGluYXRl
cyBpbiB0ZXJtcwotICAgICAgICAgIC8vIG9mIGJhY2tidWZmZXIgdW5pdHMuCi0gICAgICAgICAg
dmFyIGN3ID0gTW9kdWxlWyJjYW52YXMiXS53aWR0aDsKLSAgICAgICAgICB2YXIgY2ggPSBNb2R1
bGVbImNhbnZhcyJdLmhlaWdodDsKLSAgICAgICAgICB4ID0geCAqIChjdyAvIHJlY3Qud2lkdGgp
OwotICAgICAgICAgIHkgPSB5ICogKGNoIC8gcmVjdC5oZWlnaHQpOwotICAgICAgICAgIEJyb3dz
ZXIubW91c2VNb3ZlbWVudFggPSB4IC0gQnJvd3Nlci5tb3VzZVg7Ci0gICAgICAgICAgQnJvd3Nl
ci5tb3VzZU1vdmVtZW50WSA9IHkgLSBCcm93c2VyLm1vdXNlWTsKLSAgICAgICAgICBCcm93c2Vy
Lm1vdXNlWCA9IHg7Ci0gICAgICAgICAgQnJvd3Nlci5tb3VzZVkgPSB5OwotICAgICAgICB9Ci0g
ICAgICB9LHhockxvYWQ6ZnVuY3Rpb24gKHVybCwgb25sb2FkLCBvbmVycm9yKSB7Ci0gICAgICAg
IHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICAgICAgeGhyLm9wZW4oJ0dFVCcs
IHVybCwgdHJ1ZSk7Ci0gICAgICAgIHhoci5yZXNwb25zZVR5cGUgPSAnYXJyYXlidWZmZXInOwot
ICAgICAgICB4aHIub25sb2FkID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKHhoci5zdGF0
dXMgPT0gMjAwIHx8ICh4aHIuc3RhdHVzID09IDAgJiYgeGhyLnJlc3BvbnNlKSkgeyAvLyBmaWxl
IFVSTHMgY2FuIHJldHVybiAwCi0gICAgICAgICAgICBvbmxvYWQoeGhyLnJlc3BvbnNlKTsKLSAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgb25lcnJvcigpOwotICAgICAgICAgIH0KLSAg
ICAgICAgfTsKLSAgICAgICAgeGhyLm9uZXJyb3IgPSBvbmVycm9yOwotICAgICAgICB4aHIuc2Vu
ZChudWxsKTsKLSAgICAgIH0sYXN5bmNMb2FkOmZ1bmN0aW9uICh1cmwsIG9ubG9hZCwgb25lcnJv
ciwgbm9SdW5EZXApIHsKLSAgICAgICAgQnJvd3Nlci54aHJMb2FkKHVybCwgZnVuY3Rpb24oYXJy
YXlCdWZmZXIpIHsKLSAgICAgICAgICBhc3NlcnQoYXJyYXlCdWZmZXIsICdMb2FkaW5nIGRhdGEg
ZmlsZSAiJyArIHVybCArICciIGZhaWxlZCAobm8gYXJyYXlCdWZmZXIpLicpOwotICAgICAgICAg
IG9ubG9hZChuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikpOwotICAgICAgICAgIGlmICghbm9S
dW5EZXApIHJlbW92ZVJ1bkRlcGVuZGVuY3koJ2FsICcgKyB1cmwpOwotICAgICAgICB9LCBmdW5j
dGlvbihldmVudCkgewotICAgICAgICAgIGlmIChvbmVycm9yKSB7Ci0gICAgICAgICAgICBvbmVy
cm9yKCk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRocm93ICdMb2FkaW5nIGRh
dGEgZmlsZSAiJyArIHVybCArICciIGZhaWxlZC4nOwotICAgICAgICAgIH0KLSAgICAgICAgfSk7
Ci0gICAgICAgIGlmICghbm9SdW5EZXApIGFkZFJ1bkRlcGVuZGVuY3koJ2FsICcgKyB1cmwpOwot
ICAgICAgfSxyZXNpemVMaXN0ZW5lcnM6W10sdXBkYXRlUmVzaXplTGlzdGVuZXJzOmZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgdmFyIGNhbnZhcyA9IE1vZHVsZVsnY2FudmFzJ107Ci0gICAgICAgIEJy
b3dzZXIucmVzaXplTGlzdGVuZXJzLmZvckVhY2goZnVuY3Rpb24obGlzdGVuZXIpIHsKLSAgICAg
ICAgICBsaXN0ZW5lcihjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOwotICAgICAgICB9KTsK
LSAgICAgIH0sc2V0Q2FudmFzU2l6ZTpmdW5jdGlvbiAod2lkdGgsIGhlaWdodCwgbm9VcGRhdGVz
KSB7Ci0gICAgICAgIHZhciBjYW52YXMgPSBNb2R1bGVbJ2NhbnZhcyddOwotICAgICAgICBjYW52
YXMud2lkdGggPSB3aWR0aDsKLSAgICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodDsKLSAgICAg
ICAgaWYgKCFub1VwZGF0ZXMpIEJyb3dzZXIudXBkYXRlUmVzaXplTGlzdGVuZXJzKCk7Ci0gICAg
ICB9LHdpbmRvd2VkV2lkdGg6MCx3aW5kb3dlZEhlaWdodDowLHNldEZ1bGxTY3JlZW5DYW52YXNT
aXplOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIGNhbnZhcyA9IE1vZHVsZVsnY2FudmFzJ107
Ci0gICAgICAgIHRoaXMud2luZG93ZWRXaWR0aCA9IGNhbnZhcy53aWR0aDsKLSAgICAgICAgdGhp
cy53aW5kb3dlZEhlaWdodCA9IGNhbnZhcy5oZWlnaHQ7Ci0gICAgICAgIGNhbnZhcy53aWR0aCA9
IHNjcmVlbi53aWR0aDsKLSAgICAgICAgY2FudmFzLmhlaWdodCA9IHNjcmVlbi5oZWlnaHQ7Ci0g
ICAgICAgIC8vIGNoZWNrIGlmIFNETCBpcyBhdmFpbGFibGUgICAKLSAgICAgICAgaWYgKHR5cGVv
ZiBTREwgIT0gInVuZGVmaW5lZCIpIHsKLSAgICAgICAgCXZhciBmbGFncyA9IEhFQVBVMzJbKChT
REwuc2NyZWVuK1J1bnRpbWUuUVVBTlRVTV9TSVpFKjApPj4yKV07Ci0gICAgICAgIAlmbGFncyA9
IGZsYWdzIHwgMHgwMDgwMDAwMDsgLy8gc2V0IFNETF9GVUxMU0NSRUVOIGZsYWcKLSAgICAgICAg
CUhFQVAzMlsoKFNETC5zY3JlZW4rUnVudGltZS5RVUFOVFVNX1NJWkUqMCk+PjIpXT1mbGFncwot
ICAgICAgICB9Ci0gICAgICAgIEJyb3dzZXIudXBkYXRlUmVzaXplTGlzdGVuZXJzKCk7Ci0gICAg
ICB9LHNldFdpbmRvd2VkQ2FudmFzU2l6ZTpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciBjYW52
YXMgPSBNb2R1bGVbJ2NhbnZhcyddOwotICAgICAgICBjYW52YXMud2lkdGggPSB0aGlzLndpbmRv
d2VkV2lkdGg7Ci0gICAgICAgIGNhbnZhcy5oZWlnaHQgPSB0aGlzLndpbmRvd2VkSGVpZ2h0Owot
ICAgICAgICAvLyBjaGVjayBpZiBTREwgaXMgYXZhaWxhYmxlICAgICAgIAotICAgICAgICBpZiAo
dHlwZW9mIFNETCAhPSAidW5kZWZpbmVkIikgewotICAgICAgICAJdmFyIGZsYWdzID0gSEVBUFUz
MlsoKFNETC5zY3JlZW4rUnVudGltZS5RVUFOVFVNX1NJWkUqMCk+PjIpXTsKLSAgICAgICAgCWZs
YWdzID0gZmxhZ3MgJiB+MHgwMDgwMDAwMDsgLy8gY2xlYXIgU0RMX0ZVTExTQ1JFRU4gZmxhZwot
ICAgICAgICAJSEVBUDMyWygoU0RMLnNjcmVlbitSdW50aW1lLlFVQU5UVU1fU0laRSowKT4+Mild
PWZsYWdzCi0gICAgICAgIH0KLSAgICAgICAgQnJvd3Nlci51cGRhdGVSZXNpemVMaXN0ZW5lcnMo
KTsKLSAgICAgIH19OwotX2xsdm1fZWhfZXhjZXB0aW9uLmJ1ZiA9IGFsbG9jYXRlKDEyLCAidm9p
ZCoiLCBBTExPQ19TVEFUSUMpOwotRlMuc3RhdGljSW5pdCgpO19fQVRJTklUX18udW5zaGlmdCh7
IGZ1bmM6IGZ1bmN0aW9uKCkgeyBpZiAoIU1vZHVsZVsibm9GU0luaXQiXSAmJiAhRlMuaW5pdC5p
bml0aWFsaXplZCkgRlMuaW5pdCgpIH0gfSk7X19BVE1BSU5fXy5wdXNoKHsgZnVuYzogZnVuY3Rp
b24oKSB7IEZTLmlnbm9yZVBlcm1pc3Npb25zID0gZmFsc2UgfSB9KTtfX0FURVhJVF9fLnB1c2go
eyBmdW5jOiBmdW5jdGlvbigpIHsgRlMucXVpdCgpIH0gfSk7TW9kdWxlWyJGU19jcmVhdGVGb2xk
ZXIiXSA9IEZTLmNyZWF0ZUZvbGRlcjtNb2R1bGVbIkZTX2NyZWF0ZVBhdGgiXSA9IEZTLmNyZWF0
ZVBhdGg7TW9kdWxlWyJGU19jcmVhdGVEYXRhRmlsZSJdID0gRlMuY3JlYXRlRGF0YUZpbGU7TW9k
dWxlWyJGU19jcmVhdGVQcmVsb2FkZWRGaWxlIl0gPSBGUy5jcmVhdGVQcmVsb2FkZWRGaWxlO01v
ZHVsZVsiRlNfY3JlYXRlTGF6eUZpbGUiXSA9IEZTLmNyZWF0ZUxhenlGaWxlO01vZHVsZVsiRlNf
Y3JlYXRlTGluayJdID0gRlMuY3JlYXRlTGluaztNb2R1bGVbIkZTX2NyZWF0ZURldmljZSJdID0g
RlMuY3JlYXRlRGV2aWNlOwotX19fZXJybm9fc3RhdGUgPSBSdW50aW1lLnN0YXRpY0FsbG9jKDQp
OyBIRUFQMzJbKChfX19lcnJub19zdGF0ZSk+PjIpXT0wOwotX2ZnZXRjLnJldCA9IGFsbG9jYXRl
KFswXSwgImk4IiwgQUxMT0NfU1RBVElDKTsKLU1vZHVsZVsicmVxdWVzdEZ1bGxTY3JlZW4iXSA9
IGZ1bmN0aW9uKGxvY2tQb2ludGVyLCByZXNpemVDYW52YXMpIHsgQnJvd3Nlci5yZXF1ZXN0RnVs
bFNjcmVlbihsb2NrUG9pbnRlciwgcmVzaXplQ2FudmFzKSB9OwotICBNb2R1bGVbInJlcXVlc3RB
bmltYXRpb25GcmFtZSJdID0gZnVuY3Rpb24oZnVuYykgeyBCcm93c2VyLnJlcXVlc3RBbmltYXRp
b25GcmFtZShmdW5jKSB9OwotICBNb2R1bGVbInNldENhbnZhc1NpemUiXSA9IGZ1bmN0aW9uKHdp
ZHRoLCBoZWlnaHQsIG5vVXBkYXRlcykgeyBCcm93c2VyLnNldENhbnZhc1NpemUod2lkdGgsIGhl
aWdodCwgbm9VcGRhdGVzKSB9OwotICBNb2R1bGVbInBhdXNlTWFpbkxvb3AiXSA9IGZ1bmN0aW9u
KCkgeyBCcm93c2VyLm1haW5Mb29wLnBhdXNlKCkgfTsKLSAgTW9kdWxlWyJyZXN1bWVNYWluTG9v
cCJdID0gZnVuY3Rpb24oKSB7IEJyb3dzZXIubWFpbkxvb3AucmVzdW1lKCkgfTsKLSAgTW9kdWxl
WyJnZXRVc2VyTWVkaWEiXSA9IGZ1bmN0aW9uKCkgeyBCcm93c2VyLmdldFVzZXJNZWRpYSgpIH0K
LVNUQUNLX0JBU0UgPSBTVEFDS1RPUCA9IFJ1bnRpbWUuYWxpZ25NZW1vcnkoU1RBVElDVE9QKTsK
LXN0YXRpY1NlYWxlZCA9IHRydWU7IC8vIHNlYWwgdGhlIHN0YXRpYyBwb3J0aW9uIG9mIG1lbW9y
eQotU1RBQ0tfTUFYID0gU1RBQ0tfQkFTRSArIDUyNDI4ODA7Ci1EWU5BTUlDX0JBU0UgPSBEWU5B
TUlDVE9QID0gUnVudGltZS5hbGlnbk1lbW9yeShTVEFDS19NQVgpOwotYXNzZXJ0KERZTkFNSUNf
QkFTRSA8IFRPVEFMX01FTU9SWSk7IC8vIFN0YWNrIG11c3QgZml0IGluIFRPVEFMX01FTU9SWTsg
YWxsb2NhdGlvbnMgZnJvbSBoZXJlIG9uIG1heSBlbmxhcmdlIFRPVEFMX01FTU9SWQotIHZhciBj
dHR6X2k4ID0gYWxsb2NhdGUoWzgsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEs
MCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw1LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSww
LDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNiwwLDEsMCwyLDAsMSwwLDMsMCwxLDAs
MiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDUsMCwxLDAsMiwwLDEsMCwz
LDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw3LDAsMSwwLDIs
MCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNSww
LDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAs
MSwwLDYsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwx
LDAsMiwwLDEsMCw1LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEs
MCwzLDAsMSwwLDIsMCwxLDBdLCAiaTgiLCBBTExPQ19EWU5BTUlDKTsKLXZhciBNYXRoX21pbiA9
IE1hdGgubWluOwotZnVuY3Rpb24gaW52b2tlX3ZpaWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSkg
ewotICB0cnkgewotICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaWkiXShpbmRleCxhMSxhMixhMyxh
NCxhNSk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYg
ZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAg
fQotfQotZnVuY3Rpb24gaW52b2tlX3ZpaWlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3
KSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpIl0oaW5kZXgsYTEsYTIs
YTMsYTQsYTUsYTYsYTcpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdu
dW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0o
MSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aShpbmRleCxhMSkgewotICB0cnkgewot
ICAgIE1vZHVsZVsiZHluQ2FsbF92aSJdKGluZGV4LGExKTsKLSAgfSBjYXRjaChlKSB7Ci0gICAg
aWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0g
ICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfdmlpKGlu
ZGV4LGExLGEyKSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaSJdKGluZGV4LGEx
LGEyKTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBl
ICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9
Ci19Ci1mdW5jdGlvbiBpbnZva2VfaWlpKGluZGV4LGExLGEyKSB7Ci0gIHRyeSB7Ci0gICAgcmV0
dXJuIE1vZHVsZVsiZHluQ2FsbF9paWkiXShpbmRleCxhMSxhMik7Ci0gIH0gY2F0Y2goZSkgewot
ICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBl
OwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tlX2lp
aWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSkgewotICB0cnkgewotICAgIHJldHVybiBNb2R1bGVb
ImR5bkNhbGxfaWlpaWlpIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUpOwotICB9IGNhdGNoKGUpIHsK
LSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cg
ZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV9p
aShpbmRleCxhMSkgewotICB0cnkgewotICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWkiXShp
bmRleCxhMSk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicg
JiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsK
LSAgfQotfQotZnVuY3Rpb24gaW52b2tlX2lpaWkoaW5kZXgsYTEsYTIsYTMpIHsKLSAgdHJ5IHsK
LSAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWkiXShpbmRleCxhMSxhMixhMyk7Ci0gIH0g
Y2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdq
bXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rp
b24gaW52b2tlX3ZpaWlpaWYoaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYpIHsKLSAgdHJ5IHsKLSAg
ICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpZiJdKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2KTsKLSAg
fSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9u
Z2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5j
dGlvbiBpbnZva2VfdmlpaShpbmRleCxhMSxhMixhMykgewotICB0cnkgewotICAgIE1vZHVsZVsi
ZHluQ2FsbF92aWlpIl0oaW5kZXgsYTEsYTIsYTMpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAo
dHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBh
c21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaWlpaWko
aW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpIHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVbImR5
bkNhbGxfdmlpaWlpaWlpIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpOwotICB9IGNh
dGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1w
JykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9u
IGludm9rZV92KGluZGV4KSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3YiXShpbmRl
eCk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAh
PT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQot
fQotZnVuY3Rpb24gaW52b2tlX2lpaWlpaWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxh
OCkgewotICB0cnkgewotICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWlpaWlpIl0oaW5k
ZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlw
ZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21b
InNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaWlpaWlpKGlu
ZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4LGE5KSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJk
eW5DYWxsX3ZpaWlpaWlpaWkiXShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCxhOSk7Ci0g
IH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xv
bmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVu
Y3Rpb24gaW52b2tlX3ZpaWlpaWlmKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3KSB7Ci0gIHRy
eSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlmIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUs
YTYsYTcpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYm
IGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0g
IH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2KSB7
Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWkiXShpbmRleCxhMSxhMixhMyxh
NCxhNSxhNik7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicg
JiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsK
LSAgfQotfQotZnVuY3Rpb24gaW52b2tlX2lpaWlpKGluZGV4LGExLGEyLGEzLGE0KSB7Ci0gIHRy
eSB7Ci0gICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaSJdKGluZGV4LGExLGEyLGEzLGE0
KTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9
PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19
Ci1mdW5jdGlvbiBpbnZva2VfdmlpaWkoaW5kZXgsYTEsYTIsYTMsYTQpIHsKLSAgdHJ5IHsKLSAg
ICBNb2R1bGVbImR5bkNhbGxfdmlpaWkiXShpbmRleCxhMSxhMixhMyxhNCk7Ci0gIH0gY2F0Y2go
ZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0
aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gYXNt
UHJpbnRJbnQoeCwgeSkgewotICBNb2R1bGUucHJpbnQoJ2ludCAnICsgeCArICcsJyArIHkpOy8v
ICsgJyAnICsgbmV3IEVycm9yKCkuc3RhY2spOwotfQotZnVuY3Rpb24gYXNtUHJpbnRGbG9hdCh4
LCB5KSB7Ci0gIE1vZHVsZS5wcmludCgnZmxvYXQgJyArIHggKyAnLCcgKyB5KTsvLyArICcgJyAr
IG5ldyBFcnJvcigpLnN0YWNrKTsKLX0KLS8vIEVNU0NSSVBURU5fU1RBUlRfQVNNCi12YXIgYXNt
PShmdW5jdGlvbihnbG9iYWwsZW52LGJ1ZmZlcil7InVzZSBhc20iO3ZhciBhPW5ldyBnbG9iYWwu
SW50OEFycmF5KGJ1ZmZlcik7dmFyIGI9bmV3IGdsb2JhbC5JbnQxNkFycmF5KGJ1ZmZlcik7dmFy
IGM9bmV3IGdsb2JhbC5JbnQzMkFycmF5KGJ1ZmZlcik7dmFyIGQ9bmV3IGdsb2JhbC5VaW50OEFy
cmF5KGJ1ZmZlcik7dmFyIGU9bmV3IGdsb2JhbC5VaW50MTZBcnJheShidWZmZXIpO3ZhciBmPW5l
dyBnbG9iYWwuVWludDMyQXJyYXkoYnVmZmVyKTt2YXIgZz1uZXcgZ2xvYmFsLkZsb2F0MzJBcnJh
eShidWZmZXIpO3ZhciBoPW5ldyBnbG9iYWwuRmxvYXQ2NEFycmF5KGJ1ZmZlcik7dmFyIGk9ZW52
LlNUQUNLVE9QfDA7dmFyIGo9ZW52LlNUQUNLX01BWHwwO3ZhciBrPWVudi50ZW1wRG91YmxlUHRy
fDA7dmFyIGw9ZW52LkFCT1JUfDA7dmFyIG09ZW52LmN0dHpfaTh8MDt2YXIgbj1lbnYuY3Rsel9p
OHwwO3ZhciBvPWVudi5fc3RkaW58MDt2YXIgcD1lbnYuX19aVFZOMTBfX2N4eGFiaXYxMTdfX2Ns
YXNzX3R5cGVfaW5mb0V8MDt2YXIgcT1lbnYuX19aVFZOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNz
X3R5cGVfaW5mb0V8MDt2YXIgcj1lbnYuX3N0ZGVycnwwO3ZhciBzPWVudi5fX19mc211OHwwO3Zh
ciB0PWVudi5fc3Rkb3V0fDA7dmFyIHU9ZW52Ll9fX2Rzb19oYW5kbGV8MDt2YXIgdj0rZW52Lk5h
Tjt2YXIgdz0rZW52LkluZmluaXR5O3ZhciB4PTA7dmFyIHk9MDt2YXIgej0wO3ZhciBBPTA7dmFy
IEI9MCxDPTAsRD0wLEU9MCxGPTAuMCxHPTAsSD0wLEk9MCxKPTAuMDt2YXIgSz0wO3ZhciBMPTA7
dmFyIE09MDt2YXIgTj0wO3ZhciBPPTA7dmFyIFA9MDt2YXIgUT0wO3ZhciBSPTA7dmFyIFM9MDt2
YXIgVD0wO3ZhciBVPWdsb2JhbC5NYXRoLmZsb29yO3ZhciBWPWdsb2JhbC5NYXRoLmFiczt2YXIg
Vz1nbG9iYWwuTWF0aC5zcXJ0O3ZhciBYPWdsb2JhbC5NYXRoLnBvdzt2YXIgWT1nbG9iYWwuTWF0
aC5jb3M7dmFyIFo9Z2xvYmFsLk1hdGguc2luO3ZhciBfPWdsb2JhbC5NYXRoLnRhbjt2YXIgJD1n
bG9iYWwuTWF0aC5hY29zO3ZhciBhYT1nbG9iYWwuTWF0aC5hc2luO3ZhciBhYj1nbG9iYWwuTWF0
aC5hdGFuO3ZhciBhYz1nbG9iYWwuTWF0aC5hdGFuMjt2YXIgYWQ9Z2xvYmFsLk1hdGguZXhwO3Zh
ciBhZT1nbG9iYWwuTWF0aC5sb2c7dmFyIGFmPWdsb2JhbC5NYXRoLmNlaWw7dmFyIGFnPWdsb2Jh
bC5NYXRoLmltdWw7dmFyIGFoPWVudi5hYm9ydDt2YXIgYWk9ZW52LmFzc2VydDt2YXIgYWo9ZW52
LmFzbVByaW50SW50O3ZhciBhaz1lbnYuYXNtUHJpbnRGbG9hdDt2YXIgYWw9ZW52Lm1pbjt2YXIg
YW09ZW52Lmludm9rZV92aWlpaWk7dmFyIGFuPWVudi5pbnZva2VfdmlpaWlpaWk7dmFyIGFvPWVu
di5pbnZva2Vfdmk7dmFyIGFwPWVudi5pbnZva2VfdmlpO3ZhciBhcT1lbnYuaW52b2tlX2lpaTt2
YXIgYXI9ZW52Lmludm9rZV9paWlpaWk7dmFyIGFzPWVudi5pbnZva2VfaWk7dmFyIGF0PWVudi5p
bnZva2VfaWlpaTt2YXIgYXU9ZW52Lmludm9rZV92aWlpaWlmO3ZhciBhdj1lbnYuaW52b2tlX3Zp
aWk7dmFyIGF3PWVudi5pbnZva2VfdmlpaWlpaWlpO3ZhciBheD1lbnYuaW52b2tlX3Y7dmFyIGF5
PWVudi5pbnZva2VfaWlpaWlpaWlpO3ZhciBhej1lbnYuaW52b2tlX3ZpaWlpaWlpaWk7dmFyIGFB
PWVudi5pbnZva2VfdmlpaWlpaWY7dmFyIGFCPWVudi5pbnZva2VfdmlpaWlpaTt2YXIgYUM9ZW52
Lmludm9rZV9paWlpaTt2YXIgYUQ9ZW52Lmludm9rZV92aWlpaTt2YXIgYUU9ZW52Ll9sbHZtX2xp
ZmV0aW1lX2VuZDt2YXIgYUY9ZW52Ll9fc2NhblN0cmluZzt2YXIgYUc9ZW52Ll9wdGhyZWFkX211
dGV4X2xvY2s7dmFyIGFIPWVudi5fX19jeGFfZW5kX2NhdGNoO3ZhciBhST1lbnYuX3N0cnRvdWxs
O3ZhciBhSj1lbnYuX19pc0Zsb2F0O3ZhciBhSz1lbnYuX2ZmbHVzaDt2YXIgYUw9ZW52Ll9faXNM
ZWFwWWVhcjt2YXIgYU09ZW52Ll9md3JpdGU7dmFyIGFOPWVudi5fc2VuZDt2YXIgYU89ZW52Ll9s
bHZtX3VtdWxfd2l0aF9vdmVyZmxvd19pMzI7dmFyIGFQPWVudi5faXNzcGFjZTt2YXIgYVE9ZW52
Ll9yZWFkO3ZhciBhUj1lbnYuX19fY3hhX2d1YXJkX2Fib3J0O3ZhciBhUz1lbnYuX25ld2xvY2Fs
ZTt2YXIgYVQ9ZW52Ll9fX2d4eF9wZXJzb25hbGl0eV92MDt2YXIgYVU9ZW52Ll9wdGhyZWFkX2Nv
bmRfd2FpdDt2YXIgYVY9ZW52Ll9fX2N4YV9yZXRocm93O3ZhciBhVz1lbnYuX19fcmVzdW1lRXhj
ZXB0aW9uO3ZhciBhWD1lbnYuX2xsdm1fdmFfZW5kO3ZhciBhWT1lbnYuX3Zzc2NhbmY7dmFyIGFa
PWVudi5fc25wcmludGY7dmFyIGFfPWVudi5fZmdldGM7dmFyIGEkPWVudi5fYXRleGl0O3ZhciBh
MD1lbnYuX19fY3hhX2ZyZWVfZXhjZXB0aW9uO3ZhciBhMT1lbnYuX19aOGNhdGNsb3NlUDhfbmxf
Y2F0ZDt2YXIgYTI9ZW52Ll9fX3NldEVyck5vO3ZhciBhMz1lbnYuX2lzeGRpZ2l0O3ZhciBhND1l
bnYuX2V4aXQ7dmFyIGE1PWVudi5fc3ByaW50Zjt2YXIgYTY9ZW52Ll9fX2N0eXBlX2JfbG9jO3Zh
ciBhNz1lbnYuX2ZyZWVsb2NhbGU7dmFyIGE4PWVudi5fX1o3Y2F0b3BlblBLY2k7dmFyIGE5PWVu
di5fYXNwcmludGY7dmFyIGJhPWVudi5fX19jeGFfaXNfbnVtYmVyX3R5cGU7dmFyIGJiPWVudi5f
X19jeGFfZG9lc19pbmhlcml0O3ZhciBiYz1lbnYuX19fY3hhX2d1YXJkX2FjcXVpcmU7dmFyIGJk
PWVudi5fX19sb2NhbGVfbWJfY3VyX21heDt2YXIgYmU9ZW52Ll9fX2N4YV9iZWdpbl9jYXRjaDt2
YXIgYmY9ZW52Ll9yZWN2O3ZhciBiZz1lbnYuX19wYXJzZUludDY0O3ZhciBiaD1lbnYuX19aU3Qx
OHVuY2F1Z2h0X2V4Y2VwdGlvbnY7dmFyIGJpPWVudi5fX19jeGFfY2FsbF91bmV4cGVjdGVkO3Zh
ciBiaj1lbnYuX19leGl0O3ZhciBiaz1lbnYuX3N0cmZ0aW1lO3ZhciBibD1lbnYuX19fY3hhX3Ro
cm93O3ZhciBibT1lbnYuX2xsdm1fZWhfZXhjZXB0aW9uO3ZhciBibj1lbnYuX3ByZWFkO3ZhciBi
bz1lbnYuX19hcnJheVN1bTt2YXIgYnA9ZW52Ll9sb2c7dmFyIGJxPWVudi5fX19jeGFfZmluZF9t
YXRjaGluZ19jYXRjaDt2YXIgYnI9ZW52Ll9fZm9ybWF0U3RyaW5nO3ZhciBicz1lbnYuX3B0aHJl
YWRfY29uZF9icm9hZGNhc3Q7dmFyIGJ0PWVudi5fX1pTdDl0ZXJtaW5hdGV2O3ZhciBidT1lbnYu
X3B0aHJlYWRfbXV0ZXhfdW5sb2NrO3ZhciBidj1lbnYuX3Nicms7dmFyIGJ3PWVudi5fX19lcnJu
b19sb2NhdGlvbjt2YXIgYng9ZW52Ll9zdHJlcnJvcjt2YXIgYnk9ZW52Ll9sbHZtX2xpZmV0aW1l
X3N0YXJ0O3ZhciBiej1lbnYuX19fY3hhX2d1YXJkX3JlbGVhc2U7dmFyIGJBPWVudi5fdW5nZXRj
O3ZhciBiQj1lbnYuX3VzZWxvY2FsZTt2YXIgYkM9ZW52Ll92c25wcmludGY7dmFyIGJEPWVudi5f
c3NjYW5mO3ZhciBiRT1lbnYuX3N5c2NvbmY7dmFyIGJGPWVudi5fZnJlYWQ7dmFyIGJHPWVudi5f
YWJvcnQ7dmFyIGJIPWVudi5faXNkaWdpdDt2YXIgYkk9ZW52Ll9zdHJ0b2xsO3ZhciBiSj1lbnYu
X19hZGREYXlzO3ZhciBiSz1lbnYuX2Zsb29yO3ZhciBiTD1lbnYuX19yZWFsbHlOZWdhdGl2ZTt2
YXIgYk09ZW52Ll9fWjdjYXRnZXRzUDhfbmxfY2F0ZGlpUEtjO3ZhciBiTj1lbnYuX3dyaXRlO3Zh
ciBiTz1lbnYuX19fY3hhX2FsbG9jYXRlX2V4Y2VwdGlvbjt2YXIgYlA9ZW52Ll9fX2N4YV9wdXJl
X3ZpcnR1YWw7dmFyIGJRPWVudi5fdmFzcHJpbnRmO3ZhciBiUj1lbnYuX19fY3R5cGVfdG91cHBl
cl9sb2M7dmFyIGJTPWVudi5fX19jdHlwZV90b2xvd2VyX2xvYzt2YXIgYlQ9ZW52Ll9wd3JpdGU7
dmFyIGJVPWVudi5fc3RyZXJyb3Jfcjt2YXIgYlY9ZW52Ll90aW1lOwotLy8gRU1TQ1JJUFRFTl9T
VEFSVF9GVU5DUwotZnVuY3Rpb24gY2MoYSl7YT1hfDA7dmFyIGI9MDtiPWk7aT1pK2F8MDtpPWkr
Nz4+Mzw8MztyZXR1cm4gYnwwfWZ1bmN0aW9uIGNkKCl7cmV0dXJuIGl8MH1mdW5jdGlvbiBjZShh
KXthPWF8MDtpPWF9ZnVuY3Rpb24gY2YoYSxiKXthPWF8MDtiPWJ8MDtpZigoeHwwKT09MCl7eD1h
O3k9Yn19ZnVuY3Rpb24gY2coYil7Yj1ifDA7YVtrXT1hW2JdO2FbaysxfDBdPWFbYisxfDBdO2Fb
aysyfDBdPWFbYisyfDBdO2FbayszfDBdPWFbYiszfDBdfWZ1bmN0aW9uIGNoKGIpe2I9YnwwO2Fb
a109YVtiXTthW2srMXwwXT1hW2IrMXwwXTthW2srMnwwXT1hW2IrMnwwXTthW2srM3wwXT1hW2Ir
M3wwXTthW2srNHwwXT1hW2IrNHwwXTthW2srNXwwXT1hW2IrNXwwXTthW2srNnwwXT1hW2IrNnww
XTthW2srN3wwXT1hW2IrN3wwXX1mdW5jdGlvbiBjaShhKXthPWF8MDtLPWF9ZnVuY3Rpb24gY2oo
YSl7YT1hfDA7TD1hfWZ1bmN0aW9uIGNrKGEpe2E9YXwwO009YX1mdW5jdGlvbiBjbChhKXthPWF8
MDtOPWF9ZnVuY3Rpb24gY20oYSl7YT1hfDA7Tz1hfWZ1bmN0aW9uIGNuKGEpe2E9YXwwO1A9YX1m
dW5jdGlvbiBjbyhhKXthPWF8MDtRPWF9ZnVuY3Rpb24gY3AoYSl7YT1hfDA7Uj1hfWZ1bmN0aW9u
IGNxKGEpe2E9YXwwO1M9YX1mdW5jdGlvbiBjcihhKXthPWF8MDtUPWF9ZnVuY3Rpb24gY3MoKXtj
W3ErOD4+Ml09MjUwO2NbcSsxMj4+Ml09MTI4O2NbcSsxNj4+Ml09NjI7Y1txKzIwPj4yXT0xNTA7
Y1txKzI0Pj4yXT04O2NbcSsyOD4+Ml09MTA7Y1txKzMyPj4yXT0yO2NbcSszNj4+Ml09MjtjW3Ar
OD4+Ml09MjUwO2NbcCsxMj4+Ml09MjQ0O2NbcCsxNj4+Ml09NjI7Y1twKzIwPj4yXT0xNTA7Y1tw
KzI0Pj4yXT04O2NbcCsyOD4+Ml09MjY7Y1twKzMyPj4yXT00O2NbcCszNj4+Ml09ODtjWzIwMzZd
PXArODtjWzIwMzhdPXArODtjWzIwNDBdPXErODtjWzIwNDRdPXErODtjWzIwNDhdPXErODtjWzIw
NTJdPXErODtjWzIwNTZdPXErODtjWzIwNjBdPXArODtjWzIwOTRdPXErODtjWzIwOThdPXErODtj
WzIxNjJdPXErODtjWzIxNjZdPXErODtjWzIxODZdPXArODtjWzIxODhdPXErODtjWzIyMjRdPXEr
ODtjWzIyMjhdPXErODtjWzIyNjRdPXErODtjWzIyNjhdPXErODtjWzIyODhdPXArODtjWzIyOTBd
PXArODtjWzIyOTJdPXErODtjWzIyOTZdPXErODtjWzIzMDBdPXErODtjWzIzMDRdPXArODtjWzIz
MDZdPXArODtjWzIzMDhdPXArODtjWzIzMTBdPXArODtjWzIzMTJdPXArODtjWzIzMTRdPXArODtj
WzIzMTZdPXArODtjWzIzNDJdPXErODtjWzIzNDZdPXArODtjWzIzNDhdPXErODtjWzIzNTJdPXEr
ODtjWzIzNTZdPXErODtjWzIzNjBdPXArODtjWzIzNjJdPXArODtjWzIzNjRdPXArODtjWzIzNjZd
PXArODtjWzI0MDBdPXArODtjWzI0MDJdPXArODtjWzI0MDRdPXArODtjWzI0MDZdPXErODtjWzI0
MTBdPXErODtjWzI0MTRdPXErODtjWzI0MThdPXErODtjWzI0MjJdPXErODtjWzI0MjZdPXErOH1m
dW5jdGlvbiBjdChhKXthPWF8MDt2YXIgYj0wLGQ9MDtiPWNbYT4+Ml18MDtpZigoYnwwKT09MCl7
cmV0dXJufWQ9YSs0fDA7YT1jW2Q+PjJdfDA7aWYoKGJ8MCkhPShhfDApKXtjW2Q+PjJdPWErKH4o
KGEtOCsoLWJ8MCl8MCk+Pj4zKTw8Myl9a1MoYik7cmV0dXJufWZ1bmN0aW9uIGN1KGEsYixkKXth
PWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLjAsdz0wLHg9MCx5PTAuMCx6PTAuMDtkPWk7aT1p
KzI0fDA7ZT1kfDA7Zj1kKzh8MDtnPWZ8MDtjW2c+PjJdPTA7aj1mKzR8MDtjW2o+PjJdPTA7az1m
Kzh8MDtjW2s+PjJdPTA7bD1iLWF8MDttPWw+PjM7ZG97aWYoKG18MCk9PTApe249MDtvPTB9ZWxz
ZXtpZihtPj4+MD41MzY4NzA5MTEpe2lyKGYpfXA9a08obCl8MDtjW2o+PjJdPXA7Y1tnPj4yXT1w
O2Nbaz4+Ml09cCsobTw8Myk7aWYoKGF8MCk9PShifDApKXtuPXA7bz1wO2JyZWFrfWVsc2V7cT1h
O3I9cH1kb3tpZigocnwwKT09MCl7cz0wfWVsc2V7aFtyPj4zXT0raFtxPj4zXTtzPWNbaj4+Ml18
MH1yPXMrOHwwO2Nbaj4+Ml09cjtxPXErOHwwO313aGlsZSgocXwwKSE9KGJ8MCkpO249Y1tnPj4y
XXwwO289cn19d2hpbGUoMCk7Y1UobixvLGUpO2U9Y1tnPj4yXXwwO289Y1tqPj4yXXwwO0wyMzpk
b3tpZigoZXwwKT09KG98MCkpe3Q9ZX1lbHNle249ZTt3aGlsZSgxKXt1PW4rOHwwO2lmKCh1fDAp
PT0ob3wwKSl7dD1lO2JyZWFrIEwyM312PStoW24+PjNdO2lmKHY9PStoW3U+PjNdKXticmVha31l
bHNle249dX19aWYoKG58MCk9PShvfDApKXt0PWU7YnJlYWt9ZWxzZXt3PXU7eD1uO3k9dn1MMjg6
d2hpbGUoMSl7cj13O2Rve3I9cis4fDA7aWYoKHJ8MCk9PShvfDApKXticmVhayBMMjh9ej0raFty
Pj4zXTt9d2hpbGUoeT09eik7Yj14Kzh8MDtoW2I+PjNdPXo7dz1yO3g9Yjt5PXp9dD1jW2c+PjJd
fDB9fXdoaWxlKDApO2lmKCh0fDApPT0wKXtpPWQ7cmV0dXJufWc9Y1tqPj4yXXwwO2lmKCh0fDAp
IT0oZ3wwKSl7Y1tqPj4yXT1nKyh+KChnLTgrKC10fDApfDApPj4+Myk8PDMpfWtTKHQpO2k9ZDty
ZXR1cm59ZnVuY3Rpb24gY3YoYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9
MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0w
LjAseD0wLjAseT0wLHo9MC4wO2Q9aTtpPWkrMjR8MDtlPWR8MDtmPWQrOHwwO2c9ZnwwO2NbZz4+
Ml09MDtqPWYrNHwwO2Nbaj4+Ml09MDtrPWYrOHwwO2Nbaz4+Ml09MDtsPWItYXwwO209bD4+Mztk
b3tpZigobXwwKT09MCl7bj0wO289MH1lbHNle2lmKG0+Pj4wPjUzNjg3MDkxMSl7aXIoZil9cD1r
TyhsKXwwO2Nbaj4+Ml09cDtjW2c+PjJdPXA7Y1trPj4yXT1wKyhtPDwzKTtpZigoYXwwKT09KGJ8
MCkpe249cDtvPXA7YnJlYWt9ZWxzZXtxPWE7cj1wfWRve2lmKChyfDApPT0wKXtzPTB9ZWxzZXto
W3I+PjNdPStoW3E+PjNdO3M9Y1tqPj4yXXwwfXI9cys4fDA7Y1tqPj4yXT1yO3E9cSs4fDA7fXdo
aWxlKChxfDApIT0oYnwwKSk7bj1jW2c+PjJdfDA7bz1yfX13aGlsZSgwKTtjVShuLG8sZSk7ZT1j
W2c+PjJdfDA7bz1jW2o+PjJdfDA7TDU4OmRve2lmKChlfDApPT0ob3wwKSl7dD1lO3U9NjJ9ZWxz
ZXtuPWU7d2hpbGUoMSl7cj1uKzh8MDtpZigocnwwKT09KG98MCkpe3Y9ZTticmVhayBMNTh9aWYo
K2hbbj4+M109PStoW3I+PjNdKXt0PW47dT02MjticmVha31lbHNle249cn19fX13aGlsZSgwKTtk
b3tpZigodXwwKT09NjIpe2lmKCh0fDApPT0ob3wwKSl7dj1lO2JyZWFrfW49dCsxNnwwO2lmKChu
fDApPT0ob3wwKSl7dj1lO2JyZWFrfXI9bjtuPXQ7dz0raFt0Pj4zXTt3aGlsZSgxKXt4PStoW3I+
PjNdO2lmKHc9PXgpe3k9bjt6PXd9ZWxzZXtiPW4rOHwwO2hbYj4+M109eDt5PWI7ej14fWI9cis4
fDA7aWYoKGJ8MCk9PShvfDApKXticmVha31lbHNle3I9YjtuPXk7dz16fX12PWNbZz4+Ml18MH19
d2hpbGUoMCk7aWYoKHZ8MCk9PTApe2k9ZDtyZXR1cm59Zz1jW2o+PjJdfDA7aWYoKHZ8MCkhPShn
fDApKXtjW2o+PjJdPWcrKH4oKGctOCsoLXZ8MCl8MCk+Pj4zKTw8Myl9a1Modik7aT1kO3JldHVy
bn1mdW5jdGlvbiBjdyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGo9
MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAs
TT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxf
PTAsJD0wLGFhPTAsYWI9MDtkPWk7aT1pKzh8MDtlPWR8MDtmPWU7Zz1pO2k9aSs4fDA7aj1nO2s9
aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO2w9aTtpPWkrOHwwO209aTtpPWkrOHwwO249aTtpPWkrMXww
O2k9aSs3Pj4zPDwzO289aTtpPWkrMjR8MDtwPWk7aT1pKzh8MDtxPWk7aT1pKzh8MDtyPWI7cz1y
LWE+PjM7aFtwPj4zXT0wLjA7dD1vfDA7dT1vKzR8MDt2PW8rOHwwO2skKG98MCwwLDI0KTtkb3tp
Zigoc3wwKT09MCl7dz0wO3g9bysxNnwwO3k9MDt6PTA7QT0wO0I9MH1lbHNle2NPKG8scyxwKTtD
PWNbdT4+Ml18MDtEPW8rMTZ8MDtFPWNbRD4+Ml18MDtGPWNbdj4+Ml18MDtHPUMrKEU+Pj45PDwy
KXwwO2lmKChGfDApPT0oQ3wwKSl7dz0wO3g9RDt5PUY7ej1FO0E9QztCPUc7YnJlYWt9dz0oY1tH
Pj4yXXwwKSsoKEUmNTExKTw8Myl8MDt4PUQ7eT1GO3o9RTtBPUM7Qj1HfX13aGlsZSgwKTtpZigo
YXwwKT09KGJ8MCkpe0g9QTtJPXo7Sj15fWVsc2V7eT1hO2E9dzt3PUI7d2hpbGUoMSl7Qj1hO3o9
KGNbdz4+Ml18MCkrNDA5Ni1CPj4zO0E9eTtwPXItQT4+MztpZigocHwwKT4oenwwKSl7Sz15Kyh6
PDwzKXwwO0w9en1lbHNle0s9YjtMPXB9a18oYXwwLHl8MCxLLUF8MCk7ZG97aWYoKEx8MCk9PTAp
e009YTtOPXd9ZWxzZXtBPShCLShjW3c+PjJdfDApPj4zKStMfDA7aWYoKEF8MCk+MCl7cD13Kygo
KEF8MCkvNTEyfDApPDwyKXwwO009KGNbcD4+Ml18MCkrKCgoQXwwKSU1MTJ8MCk8PDMpfDA7Tj1w
O2JyZWFrfWVsc2V7cD01MTEtQXwwO0E9dysoKChwfDApLy01MTJ8MCk8PDIpfDA7TT0oY1tBPj4y
XXwwKSsoNTExLSgocHwwKSU1MTJ8MCk8PDMpfDA7Tj1BO2JyZWFrfX19d2hpbGUoMCk7aWYoKEt8
MCk9PShifDApKXticmVha31lbHNle3k9SzthPU07dz1OfX1IPWNbdT4+Ml18MDtJPWNbeD4+Ml18
MDtKPWNbdj4+Ml18MH1OPUgrKEk+Pj45PDwyKXwwO2lmKChKfDApPT0oSHwwKSl7Sj1vKzIwfDA7
Tz0wO1A9MDtRPTA7Uj0wO1M9SjtUPUgrKChJKyhjW0o+PjJdfDApfDApPj4+OTw8Mil8MH1lbHNl
e0o9bysyMHwwO289SSsoY1tKPj4yXXwwKXwwO3c9SCsobz4+Pjk8PDIpfDA7Tz0oY1t3Pj4yXXww
KSsoKG8mNTExKTw8Myl8MDtQPTA7UT0oY1tOPj4yXXwwKSsoKEkmNTExKTw8Myl8MDtSPTA7Uz1K
O1Q9d31jW2w+PjJdPVJ8TjtjW2wrND4+Ml09UTtjW20+PjJdPVB8VDtjW20rND4+Ml09TztjSyhs
LG0sbik7bj1jW3U+PjJdfDA7bT1jW3g+PjJdfDA7bD1uKyhtPj4+OTw8Mil8MDtpZigoY1t2Pj4y
XXwwKT09KG58MCkpe1U9MDtWPTA7Vz0wO1g9MDtZPW4rKChtKyhjW1M+PjJdfDApfDApPj4+OTw8
Mil8MH1lbHNle089bSsoY1tTPj4yXXwwKXwwO1Q9bisoTz4+Pjk8PDIpfDA7VT0oY1tUPj4yXXww
KSsoKE8mNTExKTw8Myl8MDtWPTA7Vz0oY1tsPj4yXXwwKSsoKG0mNTExKTw8Myl8MDtYPTA7WT1U
fWNbZT4+Ml09WHxsO2NbZSs0Pj4yXT1XO2NbZz4+Ml09VnxZO2NbZys0Pj4yXT1VO2NJKHEsZixq
LGspO2s9Y1t1Pj4yXXwwO2o9Y1t4Pj4yXXwwO2Y9aysoaj4+Pjk8PDIpfDA7cT1jW3Y+PjJdfDA7
aWYoKHF8MCk9PShrfDApKXtaPTA7Xz0wfWVsc2V7VT0oY1tTPj4yXXwwKStqfDA7Wj0oY1trKyhV
Pj4+OTw8Mik+PjJdfDApKygoVSY1MTEpPDwzKXwwO189KGNbZj4+Ml18MCkrKChqJjUxMSk8PDMp
fDB9aj1mO2Y9XztMMTEyOndoaWxlKDEpe189Zjtkb3tpZigoX3wwKT09KFp8MCkpe2JyZWFrIEwx
MTJ9Xz1fKzh8MDt9d2hpbGUoKF8tKGNbaj4+Ml18MCl8MCkhPTQwOTYpO189ais0fDA7aj1fO2Y9
Y1tfPj4yXXwwfWNbUz4+Ml09MDtTPXEtaz4+MjtpZihTPj4+MD4yKXtmPWs7d2hpbGUoMSl7a1Mo
Y1tmPj4yXXwwKTtqPShjW3U+PjJdfDApKzR8MDtjW3U+PjJdPWo7Wj1jW3Y+PjJdfDA7Xz1aLWo+
PjI7aWYoXz4+PjA+Mil7Zj1qfWVsc2V7JD1fO2FhPWo7YWI9WjticmVha319fWVsc2V7JD1TO2Fh
PWs7YWI9cX1zd2l0Y2goJHwwKXtjYXNlIDE6e2NbeD4+Ml09MjU2O2JyZWFrfTtjYXNlIDI6e2Nb
eD4+Ml09NTEyO2JyZWFrfTtkZWZhdWx0Ont9fWRve2lmKChhYXwwKSE9KGFifDApKXt4PWFhO2Rv
e2tTKGNbeD4+Ml18MCk7eD14KzR8MDt9d2hpbGUoKHh8MCkhPShhYnwwKSk7eD1jW3U+PjJdfDA7
JD1jW3Y+PjJdfDA7aWYoKHh8MCk9PSgkfDApKXticmVha31jW3Y+PjJdPSQrKH4oKCQtNCsoLXh8
MCl8MCk+Pj4yKTw8Mil9fXdoaWxlKDApO3Y9Y1t0Pj4yXXwwO2lmKCh2fDApPT0wKXtpPWQ7cmV0
dXJufWtTKHYpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gY3goYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHww
O3ZhciBlPTAsZj0wLGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MC4wLHk9MCx6PTA7ZD1pO2k9aSs0OHwwO2U9ZHwwO2Y9ZCs4fDA7
Zz1kKzE2fDA7aj1kKzI0fDA7az1kKzMyfDA7bD1rfDA7bT1rO2NbbD4+Ml09bTtuPWsrNHwwO2Nb
bj4+Ml09bTtvPWsrOHwwO2Nbbz4+Ml09MDtpZigoYXwwKT09KGJ8MCkpe3A9bTtxPTB9ZWxzZXtr
PWE7YT1tO3I9MDt3aGlsZSgxKXtzPWtPKDE2KXwwO3Q9czt1PXMrOHwwO2lmKCh1fDApIT0wKXto
W3U+PjNdPStoW2s+PjNdfWNbYSs0Pj4yXT10O2Nbcz4+Ml09Y1tsPj4yXTtjW2w+PjJdPXQ7Y1tz
KzQ+PjJdPW07dj0oY1tvPj4yXXwwKSsxfDA7Y1tvPj4yXT12O3M9ays4fDA7aWYoKHN8MCk9PShi
fDApKXticmVha31lbHNle2s9czthPXQ7cj12fX1wPWNbbj4+Ml18MDtxPXZ9Y1tlPj4yXT1wO2Nb
Zj4+Ml09bTtjSihnLGUsZixxLGopO2o9Y1tuPj4yXXwwO2lmKChqfDApIT0obXwwKSl7cT1qO3do
aWxlKDEpe2o9Y1txKzQ+PjJdfDA7TDE1MDpkb3tpZigoanwwKT09KG18MCkpe3c9bX1lbHNle3g9
K2hbcSs4Pj4zXTtmPWo7d2hpbGUoMSl7aWYoeCE9K2hbZis4Pj4zXSl7dz1mO2JyZWFrIEwxNTB9
ZT1jW2YrND4+Ml18MDtpZigoZXwwKT09KG18MCkpe3c9bTticmVha31lbHNle2Y9ZX19fX13aGls
ZSgwKTtpZigoanwwKT09KHd8MCkpe3k9an1lbHNle2Y9KGNbdz4+Ml18MCkrNHwwO2U9anwwO2Nb
KGNbZT4+Ml18MCkrND4+Ml09Y1tmPj4yXTtjW2NbZj4+Ml0+PjJdPWNbZT4+Ml07ZT1qO3doaWxl
KDEpe2Y9Y1tlKzQ+PjJdfDA7Y1tvPj4yXT0oY1tvPj4yXXwwKS0xO2tTKGUpO2lmKChmfDApPT0o
d3wwKSl7eT13O2JyZWFrfWVsc2V7ZT1mfX19aWYoKHl8MCk9PShtfDApKXticmVha31lbHNle3E9
eX19fWlmKChjW28+PjJdfDApPT0wKXtpPWQ7cmV0dXJufXk9Y1tuPj4yXXwwO249KGNbbD4+Ml18
MCkrNHwwO2w9eXwwO2NbKGNbbD4+Ml18MCkrND4+Ml09Y1tuPj4yXTtjW2Nbbj4+Ml0+PjJdPWNb
bD4+Ml07Y1tvPj4yXT0wO2lmKCh5fDApPT0obXwwKSl7aT1kO3JldHVybn1lbHNle3o9eX13aGls
ZSgxKXt5PWNbeis0Pj4yXXwwO2tTKHopO2lmKCh5fDApPT0obXwwKSl7YnJlYWt9ZWxzZXt6PXl9
fWk9ZDtyZXR1cm59ZnVuY3Rpb24gY3koYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAs
Zj0wLGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wO2Q9aTtp
PWkrMzJ8MDtlPWR8MDtmPWQrOHwwO2c9ZCsxNnwwO2o9Z3wwO2s9Zys0fDA7Y1trPj4yXT0wO2w9
Zys4fDA7Y1tsPj4yXT0wO209aztrPWd8MDtjW2s+PjJdPW07aWYoKGF8MCk9PShifDApKXtuPTA7
Y0UoaixuKTtpPWQ7cmV0dXJufW89ZnwwO3A9Zys0fDA7Zz1hO2Rve2Nbbz4+Ml09bTthPWNIKGos
ZixlLGcpfDA7aWYoKGNbYT4+Ml18MCk9PTApe3E9a08oMjQpfDA7cj1xKzE2fDA7aWYoKHJ8MCkh
PTApe2hbcj4+M109K2hbZz4+M119cj1jW2U+PjJdfDA7cz1xO2NbcT4+Ml09MDtjW3ErND4+Ml09
MDtjW3ErOD4+Ml09cjtjW2E+PjJdPXM7cj1jW2Nbaz4+Ml0+PjJdfDA7aWYoKHJ8MCk9PTApe3Q9
c31lbHNle2Nbaz4+Ml09cjt0PWNbYT4+Ml18MH1jRyhjW3A+PjJdfDAsdCk7Y1tsPj4yXT0oY1ts
Pj4yXXwwKSsxfWc9Zys4fDA7fXdoaWxlKChnfDApIT0oYnwwKSk7bj1jW3A+PjJdfDA7Y0Uoaixu
KTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGN6KGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0w
LGY9MCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAs
dj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTA7ZD1pO2k9aSsz
MnwwO2U9ZHwwO2Y9ZCs4fDA7Zz1kKzE2fDA7aj1nfDA7az1nKzR8MDtjW2s+PjJdPTA7bD1nKzh8
MDtjW2w+PjJdPTA7bT1rO249Z3wwO2Nbbj4+Ml09bTtkb3tpZigoYXwwKSE9KGJ8MCkpe289Znww
O3A9Zys0fDA7cT1hO2Rve2Nbbz4+Ml09bTtyPWNDKGosZixlLHEpfDA7cz1rTygyNCl8MDt0PXMr
MTZ8MDtpZigodHwwKSE9MCl7aFt0Pj4zXT0raFtxPj4zXX10PWNbZT4+Ml18MDt1PXM7Y1tzPj4y
XT0wO2Nbcys0Pj4yXT0wO2Nbcys4Pj4yXT10O2Nbcj4+Ml09dTt0PWNbY1tuPj4yXT4+Ml18MDtp
ZigodHwwKT09MCl7dj11fWVsc2V7Y1tuPj4yXT10O3Y9Y1tyPj4yXXwwfWNHKGNbcD4+Ml18MCx2
KTtjW2w+PjJdPShjW2w+PjJdfDApKzE7cT1xKzh8MDt9d2hpbGUoKHF8MCkhPShifDApKTtxPWNb
bj4+Ml18MDtpZigocXwwKT09KG18MCkpe2JyZWFrfXA9aztvPWcrNHwwO3I9cTtMMjAyOndoaWxl
KDEpe3E9cnwwO3Q9cis0fDA7dT1yKzE2fDA7d2hpbGUoMSl7dz1jW3Q+PjJdfDA7aWYoKHd8MCk9
PTApe3M9cTt3aGlsZSgxKXt4PWNbcys4Pj4yXXwwO2lmKChzfDApPT0oY1t4Pj4yXXwwKSl7eT14
O2JyZWFrfWVsc2V7cz14fX19ZWxzZXtzPXc7d2hpbGUoMSl7eD1jW3M+PjJdfDA7aWYoKHh8MCk9
PTApe3k9czticmVha31lbHNle3M9eH19fXM9eTtpZigoeXwwKT09KHB8MCkpe3o9bztBPTIxMzti
cmVhayBMMjAyfWlmKCtoW3U+PjNdIT0raFt5KzE2Pj4zXSl7YnJlYWt9eD1jW3krND4+Ml18MDtp
ZigoeHwwKT09MCl7Qj15O3doaWxlKDEpe0M9Y1tCKzg+PjJdfDA7aWYoKEJ8MCk9PShjW0M+PjJd
fDApKXtEPUM7YnJlYWt9ZWxzZXtCPUN9fX1lbHNle0I9eDt3aGlsZSgxKXtDPWNbQj4+Ml18MDtp
ZigoQ3wwKT09MCl7RD1CO2JyZWFrfWVsc2V7Qj1DfX19aWYoKGNbbj4+Ml18MCk9PShzfDApKXtj
W24+PjJdPUR9Y1tsPj4yXT0oY1tsPj4yXXwwKS0xO2NCKGNbbz4+Ml18MCx5KTtrUyh5KX1pZigo
d3wwKT09MCl7dT1xO3doaWxlKDEpe3Q9Y1t1Kzg+PjJdfDA7aWYoKHV8MCk9PShjW3Q+PjJdfDAp
KXtFPXQ7YnJlYWt9ZWxzZXt1PXR9fX1lbHNle3U9dzt3aGlsZSgxKXtxPWNbdT4+Ml18MDtpZigo
cXwwKT09MCl7RT11O2JyZWFrfWVsc2V7dT1xfX19aWYoKEV8MCk9PShwfDApKXt6PW87QT0yMTQ7
YnJlYWt9ZWxzZXtyPUV9fWlmKChBfDApPT0yMTQpe0Y9Y1t6Pj4yXXwwO0c9RjtjRShqLEcpO2k9
ZDtyZXR1cm59ZWxzZSBpZigoQXwwKT09MjEzKXtGPWNbej4+Ml18MDtHPUY7Y0UoaixHKTtpPWQ7
cmV0dXJufX19d2hpbGUoMCk7ej1nKzR8MDtGPWNbej4+Ml18MDtHPUY7Y0UoaixHKTtpPWQ7cmV0
dXJufWZ1bmN0aW9uIGNBKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MCxmPTAuMCxnPTAsaj0wLGs9
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MC4wLHg9MCx5
PTAsej0wLjAsQT0wLEI9MC4wLEM9MCxEPTAsRT0wLEY9MC4wLEc9MCxIPTAsST0wLjAsSj0wLjAs
TD0wLE09MCxOPTAsTz0wLFA9MDtiPWk7aT1pKzI0fDA7ZD1ifDA7ZT1iKzh8MDtmPSsoYXwwKTtn
PX5+K1UoKygxOTkzMTU2OC41NjkzMjQxNzMvKGYqKCthZSgrZikvLjY5MzE0NzE4MDU1OTk0NTMp
KSkpO2o9YTw8MTtrPWNbMjQ0Nl18MDtsPWNbMjQ0N118MDtpZigoa3wwKSE9KGx8MCkpe2NbMjQ0
N109bCsofigobC04Kygta3wwKXwwKT4+PjMpPDwzKX1rPWV8MDtjW2s+PjJdPTA7bD1lKzR8MDtj
W2w+PjJdPTA7bT1lKzh8MDtjW20+PjJdPTA7aWYoKGp8MCk9PTApe249MH1lbHNle2lmKGo+Pj4w
PjUzNjg3MDkxMSl7aXIoZSl9ZT1rTyhhPDw0KXwwO2NbbD4+Ml09ZTtjW2s+PjJdPWU7Y1ttPj4y
XT1lKyhqPDwzKTttPWo7bz1lO2Rve2lmKChvfDApPT0wKXtwPTB9ZWxzZXtoW28+PjNdPTAuMDtw
PWNbbD4+Ml18MH1vPXArOHwwO2NbbD4+Ml09bzttPW0tMXwwO313aGlsZSgobXwwKSE9MCk7bj1j
W2s+PjJdfDB9bT1uKyhqPDwzKXwwO289bisoYTw8Myl8MDtpZigoYXwwKSE9MCl7cD1uO2Y9MC4w
O3doaWxlKDEpe2U9cCs4fDA7aFtwPj4zXT1mO2lmKChlfDApPT0ob3wwKSl7YnJlYWt9ZWxzZXtw
PWU7Zj1mKzEuMH19fWlmKChqfDApIT0oYXwwKSl7aj1vO2Y9MC4wO3doaWxlKDEpe289ais4fDA7
aFtqPj4zXT1mO2lmKChvfDApPT0obXwwKSl7YnJlYWt9ZWxzZXtqPW87Zj1mKzEuMH19fWNGKG4s
bSk7aWYoKGd8MCk+MCl7aj1hPDw0O2E9aj4+MztvPWFPKGF8MCw4KXwwO3A9bjtpZihLKXtlPWc7
d2hpbGUoMSl7cT1lLTF8MDtyPWtQKC0xKXwwO3M9cjtrWShyfDAscHwwLGopfDA7dD1zKyhhPDwz
KXwwO2NVKHMsdCxkKTtMMjY4OmRve2lmKChzfDApIT0odHwwKSl7dT1zO3doaWxlKDEpe3Y9dSs4
fDA7aWYoKHZ8MCk9PSh0fDApKXticmVhayBMMjY4fXc9K2hbdT4+M107aWYodz09K2hbdj4+M10p
e2JyZWFrfWVsc2V7dT12fX1pZigodXwwKT09KHR8MCkpe2JyZWFrfWVsc2V7eD12O3k9dTt6PXd9
d2hpbGUoMSl7QT14O2Rve0E9QSs4fDA7aWYoKEF8MCk9PSh0fDApKXticmVhayBMMjY4fUI9K2hb
QT4+M107fXdoaWxlKHo9PUIpO0M9eSs4fDA7aFtDPj4zXT1CO3g9QTt5PUM7ej1CfX19d2hpbGUo
MCk7aWYoKHJ8MCkhPTApe2tUKHIpfWlmKChxfDApPjApe2U9cX1lbHNle0Q9ZzticmVha319fWVs
c2V7ZT1nO3doaWxlKDEpe3k9ZS0xfDA7eD1rUChvKXwwO3Y9eDtrWSh4fDAscHwwLGopfDA7dD12
KyhhPDwzKXwwO2NVKHYsdCxkKTtMMjg3OmRve2lmKCh2fDApIT0odHwwKSl7cz12O3doaWxlKDEp
e0U9cys4fDA7aWYoKEV8MCk9PSh0fDApKXticmVhayBMMjg3fUY9K2hbcz4+M107aWYoRj09K2hb
RT4+M10pe2JyZWFrfWVsc2V7cz1FfX1pZigoc3wwKT09KHR8MCkpe2JyZWFrfWVsc2V7Rz1FO0g9
cztJPUZ9d2hpbGUoMSl7dT1HO2Rve3U9dSs4fDA7aWYoKHV8MCk9PSh0fDApKXticmVhayBMMjg3
fUo9K2hbdT4+M107fXdoaWxlKEk9PUopO0E9SCs4fDA7aFtBPj4zXT1KO0c9dTtIPUE7ST1KfX19
d2hpbGUoMCk7aWYoKHh8MCkhPTApe2tUKHgpfWlmKCh5fDApPjApe2U9eX1lbHNle0Q9ZzticmVh
a319fXdoaWxlKDEpe2U9RC0xfDA7Y3UobixtLGUpO2lmKChlfDApPjApe0Q9ZX1lbHNle0w9Zzti
cmVha319d2hpbGUoMSl7RD1MLTF8MDtjdihuLG0sRCk7aWYoKER8MCk+MCl7TD1EfWVsc2V7TT1n
O2JyZWFrfX13aGlsZSgxKXtMPU0tMXwwO2N3KG4sbSxMKTtpZigoTHwwKT4wKXtNPUx9ZWxzZXtO
PWc7YnJlYWt9fXdoaWxlKDEpe009Ti0xfDA7Y3gobixtLE0pO2lmKChNfDApPjApe049TX1lbHNl
e089ZzticmVha319d2hpbGUoMSl7Tj1PLTF8MDtjeShuLG0sTik7aWYoKE58MCk+MCl7Tz1OfWVs
c2V7UD1nO2JyZWFrfX1kb3tQPVAtMXwwO2N6KG4sbSxQKTt9d2hpbGUoKFB8MCk+MCl9UD1jW2s+
PjJdfDA7aWYoKFB8MCk9PTApe2k9YjtyZXR1cm59az1jW2w+PjJdfDA7aWYoKFB8MCkhPShrfDAp
KXtjW2w+PjJdPWsrKH4oKGstOCsoLVB8MCl8MCk+Pj4zKTw8Myl9a1MoUCk7aT1iO3JldHVybn1m
dW5jdGlvbiBjQihiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxr
PTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wO2U9ZHwwO2Y9Y1tl
Pj4yXXwwO2Rve2lmKChmfDApPT0wKXtnPWQ7aD0zMDF9ZWxzZXtpPWNbZCs0Pj4yXXwwO2lmKChp
fDApPT0wKXtqPWY7az1kO2w9ZHwwO2g9MzAzO2JyZWFrfWVsc2V7bT1pO3doaWxlKDEpe2k9Y1tt
Pj4yXXwwO2lmKChpfDApPT0wKXtnPW07aD0zMDE7YnJlYWt9ZWxzZXttPWl9fX19fXdoaWxlKDAp
O2Rve2lmKChofDApPT0zMDEpe2Y9Z3wwO209Y1tnKzQ+PjJdfDA7aWYoKG18MCkhPTApe2o9bTtr
PWc7bD1mO2g9MzAzO2JyZWFrfW49MDtvPTA7cD1nKzh8MDtxPWc7cj1mfX13aGlsZSgwKTtpZigo
aHwwKT09MzAzKXtnPWsrOHwwO2Nbais4Pj4yXT1jW2c+PjJdO249ajtvPTE7cD1nO3E9aztyPWx9
bD1jW3A+PjJdfDA7az1sfDA7ZG97aWYoKHF8MCk9PShjW2s+PjJdfDApKXtjW2s+PjJdPW47aWYo
KHF8MCk9PShifDApKXtzPW47dD0wO2JyZWFrfXM9Yjt0PWNbKGNbcD4+Ml18MCkrND4+Ml18MH1l
bHNle2NbbCs0Pj4yXT1uO3M9Yjt0PWNbY1twPj4yXT4+Ml18MH19d2hpbGUoMCk7Yj1xKzEyfDA7
bD0oYVtiXSYxKT09MDtpZigocXwwKT09KGR8MCkpe3U9c31lbHNle2s9ZCs4fDA7Zz1jW2s+PjJd
fDA7Y1twPj4yXT1nO2lmKChjW2Nbaz4+Ml0+PjJdfDApPT0oZHwwKSl7Y1tnPj4yXT1xfWVsc2V7
Y1tnKzQ+PjJdPXF9Zz1jW2U+PjJdfDA7Y1tyPj4yXT1nO2NbZys4Pj4yXT1xO2c9Y1tkKzQ+PjJd
fDA7Y1txKzQ+PjJdPWc7aWYoKGd8MCkhPTApe2NbZys4Pj4yXT1xfWFbYl09YVtkKzEyfDBdJjE7
dT0oc3wwKT09KGR8MCk/cTpzfWlmKGx8KHV8MCk9PTApe3JldHVybn1pZihvKXthW24rMTJ8MF09
MTtyZXR1cm59ZWxzZXt2PXU7dz10fXdoaWxlKDEpe3Q9dys4fDA7dT1jW3Q+PjJdfDA7bj13KzEy
fDA7bz0oYVtuXSYxKSE9MDtpZigod3wwKT09KGNbdT4+Ml18MCkpe2lmKG8pe3g9djt5PXd9ZWxz
ZXthW25dPTE7YVt1KzEyfDBdPTA7bD1jW3Q+PjJdfDA7cz1sfDA7cT1jW3M+PjJdfDA7ZD1xKzR8
MDtiPWNbZD4+Ml18MDtjW3M+PjJdPWI7aWYoKGJ8MCkhPTApe2NbYis4Pj4yXT1sfWI9bCs4fDA7
Y1txKzg+PjJdPWNbYj4+Ml07cz1jW2I+PjJdfDA7Zz1zfDA7aWYoKGNbZz4+Ml18MCk9PShsfDAp
KXtjW2c+PjJdPXF9ZWxzZXtjW3MrND4+Ml09cX1jW2Q+PjJdPWw7Y1tiPj4yXT1xO3E9Y1t3KzQ+
PjJdfDA7eD0odnwwKT09KHF8MCk/dzp2O3k9Y1txPj4yXXwwfXo9Y1t5Pj4yXXwwO0E9KHp8MCk9
PTA7aWYoIUEpe2lmKChhW3orMTJ8MF0mMSk9PTApe2g9MzY1O2JyZWFrfX1xPWNbeSs0Pj4yXXww
O2lmKChxfDApIT0wKXtpZigoYVtxKzEyfDBdJjEpPT0wKXtoPTM2NDticmVha319YVt5KzEyfDBd
PTA7cT1jW3krOD4+Ml18MDtCPXErMTJ8MDtpZigoYVtCXSYxKT09MHwocXwwKT09KHh8MCkpe2g9
MzYxO2JyZWFrfWI9Y1txKzg+PjJdfDA7bD1jW2I+PjJdfDA7aWYoKHF8MCkhPShsfDApKXt2PXg7
dz1sO2NvbnRpbnVlfXY9eDt3PWNbYis0Pj4yXXwwO2NvbnRpbnVlfWlmKG8pe0M9djtEPXd9ZWxz
ZXthW25dPTE7YVt1KzEyfDBdPTA7dT1jW3Q+PjJdfDA7dD11KzR8MDtuPWNbdD4+Ml18MDtvPW58
MDtiPWNbbz4+Ml18MDtjW3Q+PjJdPWI7aWYoKGJ8MCkhPTApe2NbYis4Pj4yXT11fWI9dSs4fDA7
Y1tuKzg+PjJdPWNbYj4+Ml07dD1jW2I+PjJdfDA7bD10fDA7aWYoKGNbbD4+Ml18MCk9PSh1fDAp
KXtjW2w+PjJdPW59ZWxzZXtjW3QrND4+Ml09bn1jW28+PjJdPXU7Y1tiPj4yXT1uO249Y1t3Pj4y
XXwwO0M9KHZ8MCk9PShufDApP3c6djtEPWNbbis0Pj4yXXwwfUU9RHwwO0Y9Y1tFPj4yXXwwO2lm
KChGfDApIT0wKXtpZigoYVtGKzEyfDBdJjEpPT0wKXtoPTMzNTticmVha319bj1jW0QrND4+Ml18
MDtpZigobnwwKSE9MCl7aWYoKGFbbisxMnwwXSYxKT09MCl7Rz1uO2g9MzM2O2JyZWFrfX1hW0Qr
MTJ8MF09MDtuPWNbRCs4Pj4yXXwwO2lmKChufDApPT0oQ3wwKSl7SD1DO2g9MzMyO2JyZWFrfWlm
KChhW24rMTJ8MF0mMSk9PTApe0g9bjtoPTMzMjticmVha31iPWNbbis4Pj4yXXwwO3U9Y1tiPj4y
XXwwO2lmKChufDApIT0odXwwKSl7dj1DO3c9dTtjb250aW51ZX12PUM7dz1jW2IrND4+Ml18MH1p
ZigoaHwwKT09MzMyKXthW0grMTJ8MF09MTtyZXR1cm59ZWxzZSBpZigoaHwwKT09MzM1KXtIPWNb
RCs0Pj4yXXwwO2lmKChIfDApPT0wKXtoPTMzN31lbHNle0c9SDtoPTMzNn19ZWxzZSBpZigoaHww
KT09MzYxKXthW0JdPTE7cmV0dXJufWVsc2UgaWYoKGh8MCk9PTM2NCl7aWYoQSl7aD0zNjZ9ZWxz
ZXtoPTM2NX19aWYoKGh8MCk9PTMzNil7aWYoKGFbRysxMnwwXSYxKT09MCl7ST1EO2g9MzQzfWVs
c2V7aD0zMzd9fWVsc2UgaWYoKGh8MCk9PTM2NSl7aWYoKGFbeisxMnwwXSYxKT09MCl7Sj15O2g9
MzcyfWVsc2V7aD0zNjZ9fWlmKChofDApPT0zMzcpe2FbRisxMnwwXT0xO2FbRCsxMnwwXT0wO0Y9
Y1tFPj4yXXwwO3o9Ris0fDA7Rz1jW3o+PjJdfDA7Y1tFPj4yXT1HO2lmKChHfDApIT0wKXtjW0cr
OD4+Ml09RH1HPUQrOHwwO2NbRis4Pj4yXT1jW0c+PjJdO0U9Y1tHPj4yXXwwO0E9RXwwO2lmKChj
W0E+PjJdfDApPT0oRHwwKSl7Y1tBPj4yXT1GfWVsc2V7Y1tFKzQ+PjJdPUZ9Y1t6Pj4yXT1EO2Nb
Rz4+Ml09RjtJPUY7aD0zNDN9ZWxzZSBpZigoaHwwKT09MzY2KXtGPXkrNHwwO2FbKGNbRj4+Ml18
MCkrMTJ8MF09MTthW3krMTJ8MF09MDtHPWNbRj4+Ml18MDtEPUd8MDt6PWNbRD4+Ml18MDtjW0Y+
PjJdPXo7aWYoKHp8MCkhPTApe2Nbeis4Pj4yXT15fXo9eSs4fDA7Y1tHKzg+PjJdPWNbej4+Ml07
Rj1jW3o+PjJdfDA7RT1GfDA7aWYoKGNbRT4+Ml18MCk9PSh5fDApKXtjW0U+PjJdPUd9ZWxzZXtj
W0YrND4+Ml09R31jW0Q+PjJdPXk7Y1t6Pj4yXT1HO0o9RztoPTM3Mn1pZigoaHwwKT09MzQzKXtH
PUkrOHwwO3o9KGNbRz4+Ml18MCkrMTJ8MDthW0krMTJ8MF09YVt6XSYxO2Fbel09MTthWyhjW0kr
ND4+Ml18MCkrMTJ8MF09MTtJPWNbRz4+Ml18MDtHPUkrNHwwO3o9Y1tHPj4yXXwwO3k9enwwO0Q9
Y1t5Pj4yXXwwO2NbRz4+Ml09RDtpZigoRHwwKSE9MCl7Y1tEKzg+PjJdPUl9RD1JKzh8MDtjW3or
OD4+Ml09Y1tEPj4yXTtHPWNbRD4+Ml18MDtGPUd8MDtpZigoY1tGPj4yXXwwKT09KEl8MCkpe2Nb
Rj4+Ml09en1lbHNle2NbRys0Pj4yXT16fWNbeT4+Ml09STtjW0Q+PjJdPXo7cmV0dXJufWVsc2Ug
aWYoKGh8MCk9PTM3Mil7aD1KKzh8MDt6PShjW2g+PjJdfDApKzEyfDA7YVtKKzEyfDBdPWFbel0m
MTthW3pdPTE7YVsoY1tKPj4yXXwwKSsxMnwwXT0xO0o9Y1toPj4yXXwwO2g9SnwwO3o9Y1toPj4y
XXwwO0Q9eis0fDA7ST1jW0Q+PjJdfDA7Y1toPj4yXT1JO2lmKChJfDApIT0wKXtjW0krOD4+Ml09
Sn1JPUorOHwwO2Nbeis4Pj4yXT1jW0k+PjJdO2g9Y1tJPj4yXXwwO3k9aHwwO2lmKChjW3k+PjJd
fDApPT0oSnwwKSl7Y1t5Pj4yXT16fWVsc2V7Y1toKzQ+PjJdPXp9Y1tEPj4yXT1KO2NbST4+Ml09
ejtyZXR1cm59fWZ1bmN0aW9uIGNDKGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3Zh
ciBmPTAsZz0wLGo9MCxrPTAuMCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1
PTAsdj0wO2Y9aTtnPWI7Yj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tiPj4yXT1jW2c+PjJdO2c9
YSs0fDA7aj1jW2I+PjJdfDA7ZG97aWYoKGp8MCkhPShnfDApKXtrPStoW2U+PjNdO2lmKCtoW2or
MTY+PjNdPj1rKXticmVha31iPWd8MDtsPWNbYj4+Ml18MDtpZigobHwwKT09MCl7Y1tkPj4yXT1n
O209YjtpPWY7cmV0dXJuIG18MH1lbHNle249bH13aGlsZSgxKXtpZigraFtuKzE2Pj4zXTxrKXtv
PW4rNHwwO2w9Y1tvPj4yXXwwO2lmKChsfDApPT0wKXtwPTQwNjticmVha31lbHNle249bDtjb250
aW51ZX19ZWxzZXtxPW58MDtsPWNbcT4+Ml18MDtpZigobHwwKT09MCl7cD00MDg7YnJlYWt9ZWxz
ZXtuPWw7Y29udGludWV9fX1pZigocHwwKT09NDA4KXtjW2Q+PjJdPW47bT1xO2k9ZjtyZXR1cm4g
bXwwfWVsc2UgaWYoKHB8MCk9PTQwNil7Y1tkPj4yXT1uO209bztpPWY7cmV0dXJuIG18MH19fXdo
aWxlKDApO289Y1tqPj4yXXwwO2Rve2lmKChqfDApPT0oY1thPj4yXXwwKSl7cj1qfWVsc2V7aWYo
KG98MCk9PTApe249anwwO3doaWxlKDEpe3E9Y1tuKzg+PjJdfDA7aWYoKG58MCk9PShjW3E+PjJd
fDApKXtuPXF9ZWxzZXtzPXE7YnJlYWt9fX1lbHNle249bzt3aGlsZSgxKXtxPWNbbis0Pj4yXXww
O2lmKChxfDApPT0wKXtzPW47YnJlYWt9ZWxzZXtuPXF9fX1rPStoW2U+PjNdO2lmKGs+PStoW3Mr
MTY+PjNdKXtyPXM7YnJlYWt9bj1nfDA7cT1jW24+PjJdfDA7aWYoKHF8MCk9PTApe2NbZD4+Ml09
ZzttPW47aT1mO3JldHVybiBtfDB9ZWxzZXt0PXF9d2hpbGUoMSl7aWYoazwraFt0KzE2Pj4zXSl7
dT10fDA7cT1jW3U+PjJdfDA7aWYoKHF8MCk9PTApe3A9Mzk5O2JyZWFrfWVsc2V7dD1xO2NvbnRp
bnVlfX1lbHNle3Y9dCs0fDA7cT1jW3Y+PjJdfDA7aWYoKHF8MCk9PTApe3A9NDAxO2JyZWFrfWVs
c2V7dD1xO2NvbnRpbnVlfX19aWYoKHB8MCk9PTM5OSl7Y1tkPj4yXT10O209dTtpPWY7cmV0dXJu
IG18MH1lbHNlIGlmKChwfDApPT00MDEpe2NbZD4+Ml09dDttPXY7aT1mO3JldHVybiBtfDB9fX13
aGlsZSgwKTtpZigob3wwKT09MCl7Y1tkPj4yXT1qO209anwwO2k9ZjtyZXR1cm4gbXwwfWVsc2V7
Y1tkPj4yXT1yO209cis0fDA7aT1mO3JldHVybiBtfDB9cmV0dXJuIDB9ZnVuY3Rpb24gY0QoKXtj
QSgxZTUpO3JldHVybiAwfWZ1bmN0aW9uIGNFKGEsYil7YT1hfDA7Yj1ifDA7aWYoKGJ8MCk9PTAp
e3JldHVybn1lbHNle2NFKGEsY1tiPj4yXXwwKTtjRShhLGNbYis0Pj4yXXwwKTtrUyhiKTtyZXR1
cm59fWZ1bmN0aW9uIGNGKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGM9MCxkPTAsZT0wLGY9MCxnPTAs
aj0wLGs9MCxsPTAsbT0wLjA7Yz1pO2k9aSs4fDA7ZD1jfDA7ZT1iLWF8MDtpZigoZXwwKTw9OCl7
aT1jO3JldHVybn1jWShkKTtmPWItOHwwO2lmKGY+Pj4wPmE+Pj4wKXtiPWE7YT1lPj4zO3doaWxl
KDEpe2U9YS0xfDA7ZG97aWYoKGV8MCkhPTApe2lmKChhfDApPT0wKXtnPWNYKGQpfDB9ZWxzZXtq
PTMyLShrWihhfDApfDApfDA7az0oKCgtMT4+PigoMzMtanwwKT4+PjApJmF8MCk9PTApPDwzMT4+
MzEpK2p8MDtqPShrPj4+MCkvKCgoKGsmMzF8MCkhPTApKyhrPj4+NSl8MCk+Pj4wKXwwO2lmKChq
fDApPT0wKXtsPTB9ZWxzZXtsPS0xPj4+KCgzMi1qfDApPj4+MCl9d2hpbGUoMSl7aj0oY1goZCl8
MCkmbDtpZihqPj4+MDxhPj4+MCl7Zz1qO2JyZWFrfX19aWYoKGd8MCk9PTApe2JyZWFrfWo9Yiso
Zzw8Myl8MDttPStoW2I+PjNdO2hbYj4+M109K2hbaj4+M107aFtqPj4zXT1tfX13aGlsZSgwKTtq
PWIrOHwwO2lmKGo+Pj4wPGY+Pj4wKXtiPWo7YT1lfWVsc2V7YnJlYWt9fX1jVyhkKTtpPWM7cmV0
dXJufWZ1bmN0aW9uIGNHKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAs
aj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wO2U9KGR8MCk9PShifDApO2Fb
ZCsxMnwwXT1lJjE7aWYoZSl7cmV0dXJufWVsc2V7Zj1kfXdoaWxlKDEpe2c9Zis4fDA7aD1jW2c+
PjJdfDA7ZD1oKzEyfDA7aWYoKGFbZF0mMSkhPTApe2k9NDg3O2JyZWFrfWo9aCs4fDA7az1jW2o+
PjJdfDA7ZT1jW2s+PjJdfDA7aWYoKGh8MCk9PShlfDApKXtsPWNbays0Pj4yXXwwO2lmKChsfDAp
PT0wKXtpPTQ1MjticmVha31tPWwrMTJ8MDtpZigoYVttXSYxKSE9MCl7aT00NTI7YnJlYWt9YVtk
XT0xO2FbaysxMnwwXT0oa3wwKT09KGJ8MCl8MDthW21dPTF9ZWxzZXtpZigoZXwwKT09MCl7aT00
Njk7YnJlYWt9bT1lKzEyfDA7aWYoKGFbbV0mMSkhPTApe2k9NDY5O2JyZWFrfWFbZF09MTthW2sr
MTJ8MF09KGt8MCk9PShifDApfDA7YVttXT0xfWlmKChrfDApPT0oYnwwKSl7aT00ODQ7YnJlYWt9
ZWxzZXtmPWt9fWlmKChpfDApPT00Njkpe2I9aHwwO2lmKChmfDApPT0oY1tiPj4yXXwwKSl7bT1m
KzR8MDtkPWNbbT4+Ml18MDtjW2I+PjJdPWQ7aWYoKGR8MCk9PTApe249a31lbHNle2NbZCs4Pj4y
XT1oO249Y1tqPj4yXXwwfWNbZz4+Ml09bjtuPWNbaj4+Ml18MDtkPW58MDtpZigoY1tkPj4yXXww
KT09KGh8MCkpe2NbZD4+Ml09Zn1lbHNle2Nbbis0Pj4yXT1mfWNbbT4+Ml09aDtjW2o+PjJdPWY7
bz1mO3A9Y1tnPj4yXXwwfWVsc2V7bz1oO3A9a31hW28rMTJ8MF09MTthW3ArMTJ8MF09MDtvPXAr
NHwwO2c9Y1tvPj4yXXwwO209Z3wwO249Y1ttPj4yXXwwO2Nbbz4+Ml09bjtpZigobnwwKSE9MCl7
Y1tuKzg+PjJdPXB9bj1wKzh8MDtjW2crOD4+Ml09Y1tuPj4yXTtvPWNbbj4+Ml18MDtkPW98MDtp
ZigoY1tkPj4yXXwwKT09KHB8MCkpe2NbZD4+Ml09Z31lbHNle2Nbbys0Pj4yXT1nfWNbbT4+Ml09
cDtjW24+PjJdPWc7cmV0dXJufWVsc2UgaWYoKGl8MCk9PTQ4NCl7cmV0dXJufWVsc2UgaWYoKGl8
MCk9PTQ4Nyl7cmV0dXJufWVsc2UgaWYoKGl8MCk9PTQ1Mil7aWYoKGZ8MCk9PShjW2g+PjJdfDAp
KXtxPWg7cj1rfWVsc2V7Zj1oKzR8MDtpPWNbZj4+Ml18MDtnPWl8MDtuPWNbZz4+Ml18MDtjW2Y+
PjJdPW47aWYoKG58MCk9PTApe3M9a31lbHNle2Nbbis4Pj4yXT1oO3M9Y1tqPj4yXXwwfW49aSs4
fDA7Y1tuPj4yXT1zO3M9Y1tqPj4yXXwwO2s9c3wwO2lmKChjW2s+PjJdfDApPT0oaHwwKSl7Y1tr
Pj4yXT1pfWVsc2V7Y1tzKzQ+PjJdPWl9Y1tnPj4yXT1oO2Nbaj4+Ml09aTtxPWk7cj1jW24+PjJd
fDB9YVtxKzEyfDBdPTE7YVtyKzEyfDBdPTA7cT1yfDA7bj1jW3E+PjJdfDA7aT1uKzR8MDtqPWNb
aT4+Ml18MDtjW3E+PjJdPWo7aWYoKGp8MCkhPTApe2Nbais4Pj4yXT1yfWo9cis4fDA7Y1tuKzg+
PjJdPWNbaj4+Ml07cT1jW2o+PjJdfDA7aD1xfDA7aWYoKGNbaD4+Ml18MCk9PShyfDApKXtjW2g+
PjJdPW59ZWxzZXtjW3ErND4+Ml09bn1jW2k+PjJdPXI7Y1tqPj4yXT1uO3JldHVybn19ZnVuY3Rp
b24gY0goYSxiLGQsZSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaj0wLGs9
MC4wLGw9MC4wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wO2Y9aTtnPWI7Yj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tiPj4yXT1jW2c+
PjJdO2c9YSs0fDA7aj1jW2I+PjJdfDA7ZG97aWYoKGp8MCkhPShnfDApKXtrPStoW2U+PjNdO2w9
K2hbaisxNj4+M107aWYoazxsKXticmVha31pZihsPj1rKXtjW2Q+PjJdPWo7bT1kO2k9ZjtyZXR1
cm4gbXwwfWI9ais0fDA7bj1jW2I+PjJdfDA7bz0obnwwKT09MDtpZihvKXtwPWp8MDt3aGlsZSgx
KXtxPWNbcCs4Pj4yXXwwO2lmKChwfDApPT0oY1txPj4yXXwwKSl7cj1xO2JyZWFrfWVsc2V7cD1x
fX19ZWxzZXtwPW47d2hpbGUoMSl7cT1jW3A+PjJdfDA7aWYoKHF8MCk9PTApe3I9cDticmVha31l
bHNle3A9cX19fXA9Zztkb3tpZigocnwwKSE9KHB8MCkpe2lmKGs8K2hbcisxNj4+M10pe2JyZWFr
fW49Z3wwO3E9Y1tuPj4yXXwwO2lmKChxfDApPT0wKXtjW2Q+PjJdPXA7bT1uO2k9ZjtyZXR1cm4g
bXwwfWVsc2V7cz1xfXdoaWxlKDEpe2w9K2hbcysxNj4+M107aWYoazxsKXt0PXN8MDtxPWNbdD4+
Ml18MDtpZigocXwwKT09MCl7dT01MjE7YnJlYWt9ZWxzZXtzPXE7Y29udGludWV9fWlmKGw+PWsp
e3U9NTI1O2JyZWFrfXY9cys0fDA7cT1jW3Y+PjJdfDA7aWYoKHF8MCk9PTApe3U9NTI0O2JyZWFr
fWVsc2V7cz1xfX1pZigodXwwKT09NTIxKXtjW2Q+PjJdPXM7bT10O2k9ZjtyZXR1cm4gbXwwfWVs
c2UgaWYoKHV8MCk9PTUyNCl7Y1tkPj4yXT1zO209djtpPWY7cmV0dXJuIG18MH1lbHNlIGlmKCh1
fDApPT01MjUpe2NbZD4+Ml09czttPWQ7aT1mO3JldHVybiBtfDB9fX13aGlsZSgwKTtpZihvKXtj
W2Q+PjJdPWo7bT1iO2k9ZjtyZXR1cm4gbXwwfWVsc2V7Y1tkPj4yXT1yO209cnwwO2k9ZjtyZXR1
cm4gbXwwfX19d2hpbGUoMCk7cj1jW2o+PjJdfDA7ZG97aWYoKGp8MCk9PShjW2E+PjJdfDApKXt3
PWp9ZWxzZXtpZigocnwwKT09MCl7cz1qfDA7d2hpbGUoMSl7dj1jW3MrOD4+Ml18MDtpZigoc3ww
KT09KGNbdj4+Ml18MCkpe3M9dn1lbHNle3g9djticmVha319fWVsc2V7cz1yO3doaWxlKDEpe2I9
Y1tzKzQ+PjJdfDA7aWYoKGJ8MCk9PTApe3g9czticmVha31lbHNle3M9Yn19fWs9K2hbZT4+M107
aWYoK2hbeCsxNj4+M108ayl7dz14O2JyZWFrfXM9Z3wwO2I9Y1tzPj4yXXwwO2lmKChifDApPT0w
KXtjW2Q+PjJdPWc7bT1zO2k9ZjtyZXR1cm4gbXwwfWVsc2V7eT1ifXdoaWxlKDEpe2w9K2hbeSsx
Nj4+M107aWYoazxsKXt6PXl8MDtiPWNbej4+Ml18MDtpZigoYnwwKT09MCl7dT01MDI7YnJlYWt9
ZWxzZXt5PWI7Y29udGludWV9fWlmKGw+PWspe3U9NTA2O2JyZWFrfUE9eSs0fDA7Yj1jW0E+PjJd
fDA7aWYoKGJ8MCk9PTApe3U9NTA1O2JyZWFrfWVsc2V7eT1ifX1pZigodXwwKT09NTA1KXtjW2Q+
PjJdPXk7bT1BO2k9ZjtyZXR1cm4gbXwwfWVsc2UgaWYoKHV8MCk9PTUwNil7Y1tkPj4yXT15O209
ZDtpPWY7cmV0dXJuIG18MH1lbHNlIGlmKCh1fDApPT01MDIpe2NbZD4+Ml09eTttPXo7aT1mO3Jl
dHVybiBtfDB9fX13aGlsZSgwKTtpZigocnwwKT09MCl7Y1tkPj4yXT1qO209anwwO2k9ZjtyZXR1
cm4gbXwwfWVsc2V7Y1tkPj4yXT13O209dys0fDA7aT1mO3JldHVybiBtfDB9cmV0dXJuIDB9ZnVu
Y3Rpb24gY0koYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxqPTAsaz0w
LGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAs
ej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MC4wLEg9MCxJPTA7Zz1pO2o9ZDtkPWk7aT1p
Kzh8MDtjW2Q+PjJdPWNbaj4+Ml07Y1tkKzQ+PjJdPWNbais0Pj4yXTtqPWU7ZT1pO2k9aSs4fDA7
Y1tlPj4yXT1jW2o+PjJdO2NbZSs0Pj4yXT1jW2orND4+Ml07aj1mO2Y9aTtpPWkrMXwwO2k9aSs3
Pj4zPDwzO2FbZl09YVtqXXwwO2o9ZHwwO2Y9ZCs0fDA7az1jW2Y+PjJdfDA7bD1jW2U+PjJdfDA7
bT1jW2UrND4+Ml18MDtMNjU1OmRve2lmKChrfDApPT0obXwwKSl7bj1rO289bDtwPTU0OX1lbHNl
e2U9Y1tqPj4yXXwwO3E9ZTtyPWs7cz1jW2U+PjJdfDA7d2hpbGUoMSl7ZT1yKzh8MDtpZigoZS1z
fDApPT00MDk2KXt0PXErNHwwO3U9Y1t0Pj4yXXwwO3Y9dDt3PXU7eD11fWVsc2V7dj1xO3c9ZTt4
PXN9aWYoKHd8MCk9PShtfDApKXticmVha31pZigraFtyPj4zXT09K2hbdz4+M10pe249cjtvPXE7
cD01NDk7YnJlYWsgTDY1NX1lbHNle3E9djtyPXc7cz14fX1jW2o+PjJdPWw7Y1tmPj4yXT1tfX13
aGlsZSgwKTtkb3tpZigocHwwKT09NTQ5KXtjW2o+PjJdPW87Y1tmPj4yXT1uO2lmKChufDApPT0o
bXwwKSl7YnJlYWt9bD1uKzh8MDt4PWNbbz4+Ml18MDtpZigobC14fDApPT00MDk2KXt3PW8rNHww
O3Y9Y1t3Pj4yXXwwO3k9dzt6PXY7QT12O0I9bjtDPW99ZWxzZXt5PW87ej1sO0E9eDtCPW47Qz1v
fXdoaWxlKDEpe3g9eis4fDA7aWYoKHgtQXwwKT09NDA5Nil7bD15KzR8MDt2PWNbbD4+Ml18MDtE
PWw7RT12O0Y9dn1lbHNle0Q9eTtFPXg7Rj1BfWlmKChFfDApPT0obXwwKSl7YnJlYWt9Rz0raFtF
Pj4zXTtpZigraFtCPj4zXT09Ryl7eT1EO3o9RTtBPUY7Qj1CO0M9Qztjb250aW51ZX14PUIrOHww
O2NbZj4+Ml09eDtpZigoeC0oY1tDPj4yXXwwKXwwKT09NDA5Nil7dj1DKzR8MDtjW2o+PjJdPXY7
bD1jW3Y+PjJdfDA7Y1tmPj4yXT1sO0g9djtJPWx9ZWxzZXtIPUM7ST14fWhbST4+M109Rzt5PUQ7
ej1FO0E9Y1tEPj4yXXwwO0I9STtDPUh9eD1CKzh8MDtjW2Y+PjJdPXg7aWYoKHgtKGNbQz4+Ml18
MCl8MCkhPTQwOTYpe2JyZWFrfXg9Qys0fDA7Y1tqPj4yXT14O2NbZj4+Ml09Y1t4Pj4yXX19d2hp
bGUoMCk7Zj1kO2Q9YjtiPWNbZis0Pj4yXXwwO2NbZD4+Ml09Y1tmPj4yXTtjW2QrND4+Ml09Yjtp
PWc7cmV0dXJufWZ1bmN0aW9uIGNKKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7dmFyIGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLjAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAuMCxEPTA7Zz1pO2k9aSs0OHww
O2o9YjtiPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2I+PjJdPWNbaj4+Ml07aj1kO2Q9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1tqPj4yXTtqPWd8MDtrPWcrOHwwO2w9ZysxNnwwO209
ZysyNHwwO249ZyszMnwwO289Zys0MHwwO3N3aXRjaChlfDApe2Nhc2UgMjp7cD1kfDA7cT1jW2Nb
cD4+Ml0+PjJdfDA7Y1twPj4yXT1xO3A9Y1tiPj4yXXwwO2lmKCtoW3ErOD4+M108K2hbcCs4Pj4z
XSl7cj1xKzR8MDtzPXF8MDtjWyhjW3M+PjJdfDApKzQ+PjJdPWNbcj4+Ml07Y1tjW3I+PjJdPj4y
XT1jW3M+PjJdO3Q9cHwwO2NbKGNbdD4+Ml18MCkrND4+Ml09cTtjW3M+PjJdPWNbdD4+Ml07Y1t0
Pj4yXT1xO2Nbcj4+Ml09cDtjW2E+PjJdPXE7aT1nO3JldHVybn1lbHNle2NbYT4+Ml09cDtpPWc7
cmV0dXJufWJyZWFrfTtjYXNlIDA6Y2FzZSAxOntjW2E+PjJdPWNbYj4+Ml07aT1nO3JldHVybn07
ZGVmYXVsdDp7cD1lPj4+MTtxPWJ8MDtiPWNbcT4+Ml18MDtpZigocHwwKT09MCl7dT1ifWVsc2V7
cj1wO3Q9Yjt3aGlsZSgxKXtzPXItMXwwO3Y9Y1t0KzQ+PjJdfDA7aWYoKHN8MCk+MCl7cj1zO3Q9
dn1lbHNle3U9djticmVha319fWNbaz4+Ml09YjtjW2w+PjJdPXU7Y0ooaixrLGwscCxmKTtsPWNb
aj4+Ml18MDtjW3E+PjJdPWw7Y1tuPj4yXT11O3U9ZHwwO2Q9Y1t1Pj4yXXwwO2Nbbz4+Ml09ZDtj
SihtLG4sbyxlLXB8MCxmKTtmPWNbbT4+Ml18MDt3PStoW2wrOD4+M107aWYoK2hbZis4Pj4zXTx3
KXttPWNbZis0Pj4yXXwwO0w2OTc6ZG97aWYoKG18MCk9PShkfDApKXt4PWR9ZWxzZXtwPW07d2hp
bGUoMSl7aWYoK2hbcCs4Pj4zXT49dyl7eD1wO2JyZWFrIEw2OTd9ZT1jW3ArND4+Ml18MDtpZigo
ZXwwKT09KGR8MCkpe3g9ZDticmVha31lbHNle3A9ZX19fX13aGlsZSgwKTttPWNbeD4+Ml18MDtw
PW0rNHwwO2U9ZnwwO2NbKGNbZT4+Ml18MCkrND4+Ml09Y1twPj4yXTtjW2NbcD4+Ml0+PjJdPWNb
ZT4+Ml07bz1jW2wrND4+Ml18MDtuPWx8MDtjWyhjW24+PjJdfDApKzQ+PjJdPWY7Y1tlPj4yXT1j
W24+PjJdO2Nbbj4+Ml09bTtjW3A+PjJdPWw7eT1mO3o9eDtBPW99ZWxzZXt5PWw7ej1mO0E9Y1ts
KzQ+PjJdfDB9Y1txPj4yXT1BO0w3MDQ6ZG97aWYoKEF8MCkhPSh6fDApKXtsPXo7Zj16O289QTt4
PWQ7d2hpbGUoMSl7cD1sKzh8MDtpZigobHwwKT09KHh8MCkpe2JyZWFrIEw3MDR9ZWxzZXtCPW99
d2hpbGUoMSl7Qz0raFtCKzg+PjNdO2lmKCtoW3A+PjNdPEMpe2JyZWFrfW09Y1tCKzQ+PjJdfDA7
Y1txPj4yXT1tO2lmKChtfDApPT0oZnwwKSl7YnJlYWsgTDcwNH1lbHNle0I9bX19cD1jW2wrND4+
Ml18MDtMNzExOmRve2lmKChwfDApPT0oeHwwKSl7RD14fWVsc2V7bT1wO3doaWxlKDEpe2lmKCto
W20rOD4+M10+PUMpe0Q9bTticmVhayBMNzExfW49Y1ttKzQ+PjJdfDA7aWYoKG58MCk9PSh4fDAp
KXtEPXg7YnJlYWt9ZWxzZXttPW59fX19d2hpbGUoMCk7cD1jW0Q+PjJdfDA7bT1wKzR8MDtuPWx8
MDtjWyhjW24+PjJdfDApKzQ+PjJdPWNbbT4+Ml07Y1tjW20+PjJdPj4yXT1jW24+PjJdO2U9Y1tC
KzQ+PjJdfDA7aj0oZnwwKT09KGx8MCk/RDpmO2s9QnwwO2NbKGNbaz4+Ml18MCkrND4+Ml09bDtj
W24+PjJdPWNbaz4+Ml07Y1trPj4yXT1wO2NbbT4+Ml09QjtjW3E+PjJdPWU7aWYoKGV8MCk9PShq
fDApKXticmVhayBMNzA0fWw9RDtmPWo7bz1lO3g9Y1t1Pj4yXXwwfX19d2hpbGUoMCk7Y1thPj4y
XT15O2k9ZztyZXR1cm59fX1mdW5jdGlvbiBjSyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFy
IGU9MCxmPTAsZz0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJ
PTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9
MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAs
YWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFz
PTAsYXQ9MCxhdT0wLGF2PTAsYXc9MCxheD0wLGF5PTAsYXo9MCxhQT0wLGFCPTAsYUM9MCxhRD0w
LGFFPTAsYUY9MCxhRz0wLjAsYUg9MC4wLGFJPTAuMCxhSj0wLjAsYUs9MC4wLGFMPTAsYU09MCxh
Tj0wLGFPPTAsYVA9MCxhUT0wLGFSPTAsYVM9MC4wLGFUPTAsYVU9MCxhVj0wLGFXPTAsYVg9MCxh
WT0wLGFaPTAsYV89MCxhJD0wLGEwPTAuMCxhMT0wLGEyPTAsYTM9MCxhND0wLGE1PTAsYTY9MCxh
Nz0wLGE4PTAuMCxhOT0wLGJhPTAsYmI9MCxiYz0wLGJkPTAuMCxiZT0wLGJmPTAsYmc9MCxiaD0w
LGJpPTAsYmo9MCxiaz0wLGJsPTAsYm09MCxibj0wLGJvPTAsYnA9MCxicT0wLGJyPTAsYnM9MCxi
dD0wLGJ1PTAuMCxidj0wLGJ3PTAsYng9MCxieT0wLGJ6PTAuMCxiQT0wLGJCPTAsYkM9MCxiRD0w
LGJFPTAsYkY9MCxiRz0wLGJIPTAsYkk9MCxiSj0wLGJLPTAsYkw9MCxiTT0wLGJOPTAsYk89MCxi
UD0wLGJRPTAuMCxiUj0wLGJTPTAsYlQ9MDtlPWk7aT1pKzh8MDtmPWE7YT1pO2k9aSs4fDA7Y1th
Pj4yXT1jW2Y+PjJdO2NbYSs0Pj4yXT1jW2YrND4+Ml07Zj1iO2I9aTtpPWkrOHwwO2NbYj4+Ml09
Y1tmPj4yXTtjW2IrND4+Ml09Y1tmKzQ+PjJdO2Y9ZXwwO2c9ZjtqPWk7aT1pKzh8MDtrPWo7bD1p
O2k9aSs4fDA7bT1sO249aTtpPWkrOHwwO289bjtwPWk7aT1pKzh8MDtxPXA7cj1pO2k9aSs4fDA7
cz1yO3Q9aTtpPWkrOHwwO3U9dDt2PWk7aT1pKzh8MDt3PXY7eD1pO2k9aSs4fDA7eT14O3o9aTtp
PWkrOHwwO0E9aTtpPWkrOHwwO0I9aTtpPWkrOHwwO0M9aTtpPWkrOHwwO0Q9QztFPWk7aT1pKzh8
MDtGPWk7aT1pKzh8MDtHPWk7aT1pKzh8MDtIPUc7ST1pO2k9aSs4fDA7Sj1JO0s9aTtpPWkrOHww
O0w9aTtpPWkrOHwwO009aTtpPWkrOHwwO049TTtPPWIrNHwwO1A9Y1tPPj4yXXwwO1E9YSs0fDA7
Uj1jW1E+PjJdfDA7aWYoKFB8MCk9PShSfDApKXtpPWU7cmV0dXJufVM9YnwwO1Q9YXwwO1U9YTth
PXkrNHwwO1Y9eDtXPXp8MDtYPXorNHwwO1k9QXwwO1o9QSs0fDA7Xz1CfDA7JD1CKzR8MDthYT1F
fDA7YWI9RSs0fDA7YWM9RnwwO2FkPUYrNHwwO2FlPWI7Yj1LfDA7YWY9Sys0fDA7YWc9THwwO2Fo
PUwrNHwwO2FpPVA7UD1SO0w3MjU6d2hpbGUoMSl7YWo9Y1tTPj4yXXwwO1I9Y1tUPj4yXXwwO2Fr
PWNbYWo+PjJdfDA7YWw9Y1tSPj4yXXwwO2FtPVAtYWw+PjM7YW49KGFpLWFrPj4zKSsoYWotUjw8
NyktYW18MDtzd2l0Y2goYW58MCl7Y2FzZSA1Onthbz02MzA7YnJlYWsgTDcyNTticmVha307Y2Fz
ZSA0Onthbz02MTA7YnJlYWsgTDcyNTticmVha307Y2FzZSAyOnthbz01OTM7YnJlYWsgTDcyNTti
cmVha307Y2FzZSAzOnthbz01OTc7YnJlYWsgTDcyNTticmVha307Y2FzZSAwOmNhc2UgMTp7YW89
NzYwO2JyZWFrIEw3MjU7YnJlYWt9O2RlZmF1bHQ6e319aWYoKGFufDApPDMxKXthbz02NDM7YnJl
YWt9aWYoKGFpfDApPT0oYWt8MCkpe2FwPWFqLTR8MDthcT1hcDthcj0oY1thcD4+Ml18MCkrNDA5
NnwwfWVsc2V7YXE9YWo7YXI9YWl9YXA9YXItOHwwO2FzPShhbnwwKS8yfDA7YXQ9KGFuKzF8MCk+
Pj4wPjI7ZG97aWYoKGFufDApPjk5OSl7ZG97aWYoYXQpe2F1PWFtK2FzfDA7aWYoKGF1fDApPjAp
e2F2PVIrKCgoYXV8MCkvNTEyfDApPDwyKXwwO2F3PWNbYXY+PjJdfDA7YXg9YXcrKCgoYXV8MCkl
NTEyfDApPDwzKXwwO2F5PWF2O2F6PWF3O2JyZWFrfWVsc2V7YXc9NTExLWF1fDA7YXU9UisoKChh
d3wwKS8tNTEyfDApPDwyKXwwO2F2PWNbYXU+PjJdfDA7YXg9YXYrKDUxMS0oKGF3fDApJTUxMnww
KTw8Myl8MDtheT1hdTthej1hdjticmVha319ZWxzZXtheD1QO2F5PVI7YXo9YWx9fXdoaWxlKDAp
O2F2PShhbnwwKS80fDA7YXU9Y1tVPj4yXXwwO2F3PWNbVSs0Pj4yXXwwO2Nbdj4+Ml09YXU7Y1t2
KzQ+PjJdPWF3O2NbeD4+Ml09YXU7Y1t4KzQ+PjJdPWF3O2FBPShhbiszfDApPj4+MD42O2FCPWF1
O2Rve2lmKGFBKXthdT0oYXctKGNbYUI+PjJdfDApPj4zKSthdnwwO2lmKChhdXwwKT4wKXthQz1h
QisoKChhdXwwKS81MTJ8MCk8PDIpfDA7Y1tWPj4yXT1hQztjW2E+PjJdPShjW2FDPj4yXXwwKSso
KChhdXwwKSU1MTJ8MCk8PDMpO2NbVz4+Ml09YXk7Y1tYPj4yXT1heDtjW1k+PjJdPWF5O2NbWj4+
Ml09YXg7aWYoIWFBKXticmVha319ZWxzZXthQz01MTEtYXV8MDthdT1hQisoKChhQ3wwKS8tNTEy
fDApPDwyKXwwO2NbVj4+Ml09YXU7Y1thPj4yXT0oY1thdT4+Ml18MCkrKDUxMS0oKGFDfDApJTUx
MnwwKTw8Myk7Y1tXPj4yXT1heTtjW1g+PjJdPWF4O2NbWT4+Ml09YXk7Y1taPj4yXT1heH1hQz0o
YXgtYXo+PjMpK2F2fDA7aWYoKGFDfDApPjApe2F1PWF5KygoKGFDfDApLzUxMnwwKTw8Mil8MDtj
W1k+PjJdPWF1O2NbWj4+Ml09KGNbYXU+PjJdfDApKygoKGFDfDApJTUxMnwwKTw8Myk7YnJlYWt9
ZWxzZXthdT01MTEtYUN8MDthQz1heSsoKChhdXwwKS8tNTEyfDApPDwyKXwwO2NbWT4+Ml09YUM7
Y1taPj4yXT0oY1thQz4+Ml18MCkrKDUxMS0oKGF1fDApJTUxMnwwKTw8Myk7YnJlYWt9fWVsc2V7
Y1tXPj4yXT1heTtjW1g+PjJdPWF4O2NbWT4+Ml09YXk7Y1taPj4yXT1heH19d2hpbGUoMCk7Y1tf
Pj4yXT1hcTtjWyQ+PjJdPWFwO2FEPWNMKHcseSx6LEEsQiwwKXwwO2FFPWF4fWVsc2V7ZG97aWYo
YXQpe2F2PWFtK2FzfDA7aWYoKGF2fDApPjApe2FGPShjW1IrKCgoYXZ8MCkvNTEyfDApPDwyKT4+
Ml18MCkrKCgoYXZ8MCklNTEyfDApPDwzKXwwO2JyZWFrfWVsc2V7YUI9NTExLWF2fDA7YUY9KGNb
UisoKChhQnwwKS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKGFCfDApJTUxMnwwKTw8Myl8MDti
cmVha319ZWxzZXthRj1QfX13aGlsZSgwKTthQj1jW1UrND4+Ml18MDthRz0raFthRj4+M107YUg9
K2hbYUI+PjNdO2FJPStoW2FwPj4zXTthdj1hSTxhRztpZihhRz49YUgpe2lmKCFhdil7YUQ9MDth
RT1hRjticmVha31oW2FGPj4zXT1hSTtoW2FwPj4zXT1hRzthSj0raFthRj4+M107YUs9K2hbYUI+
PjNdO2lmKGFKPj1hSyl7YUQ9MTthRT1hRjticmVha31oW2FCPj4zXT1hSjtoW2FGPj4zXT1hSzth
RD0yO2FFPWFGO2JyZWFrfWlmKGF2KXtoW2FCPj4zXT1hSTtoW2FwPj4zXT1hSDthRD0xO2FFPWFG
O2JyZWFrfWhbYUI+PjNdPWFHO2hbYUY+PjNdPWFIO2FHPStoW2FwPj4zXTtpZihhRz49YUgpe2FE
PTE7YUU9YUY7YnJlYWt9aFthRj4+M109YUc7aFthcD4+M109YUg7YUQ9MjthRT1hRn19d2hpbGUo
MCk7Uj1jW1Q+PjJdfDA7YXM9Y1tRPj4yXXwwO2FIPStoW2FzPj4zXTthRz0raFthRT4+M107ZG97
aWYoYUg8YUcpe2FMPWFEO2FNPWFxO2FOPWFwO2FvPTcwN31lbHNle2FtPWFxO2F0PWFwO2FuPWNb
YXE+PjJdfDA7d2hpbGUoMSl7aWYoKGF0fDApPT0oYW58MCkpe2FsPWFtLTR8MDthQj1jW2FsPj4y
XXwwO2FPPWFsO2FQPWFCKzQwOTZ8MDthUT1hQn1lbHNle2FPPWFtO2FQPWF0O2FRPWFufWFSPWFQ
LTh8MDtpZigoYXN8MCk9PShhUnwwKSl7YnJlYWt9YVM9K2hbYVI+PjNdO2lmKGFTPGFHKXthbz03
MDY7YnJlYWt9ZWxzZXthbT1hTzthdD1hUjthbj1hUX19aWYoKGFvfDApPT03MDYpe2FvPTA7aFth
cz4+M109YVM7aFthUj4+M109YUg7YUw9YUQrMXwwO2FNPWFPO2FOPWFSO2FvPTcwNzticmVha31h
bj1hcys4fDA7YXQ9Y1tSPj4yXXwwO2lmKChhbi1hdHwwKT09NDA5Nil7YW09Uis0fDA7YUI9Y1th
bT4+Ml18MDthVD1hQjthVT1hbTthVj1hQn1lbHNle2FUPWFuO2FVPVI7YVY9YXR9YXQ9Y1tTPj4y
XXwwO2FuPWNbTz4+Ml18MDtpZigoYW58MCk9PShjW2F0Pj4yXXwwKSl7YUI9YXQtNHwwO2FXPWFC
O2FYPShjW2FCPj4yXXwwKSs0MDk2fDB9ZWxzZXthVz1hdDthWD1hbn1hbj1hWC04fDA7YUk9K2hb
YW4+PjNdO2Rve2lmKGFIPGFJKXthWT1hVDthWj1hVTthXz1hVn1lbHNle2F0PWFUO2FCPWFVO2Ft
PWFWO0w3ODY6d2hpbGUoMSl7YSQ9YXQ7d2hpbGUoMSl7aWYoKGEkfDApPT0oYW58MCkpe2FvPTc2
NzticmVhayBMNzI1fWEwPStoW2EkPj4zXTtpZihhSDxhMCl7YnJlYWsgTDc4Nn1hbD1hJCs4fDA7
aWYoKGFsLWFtfDApPT00MDk2KXticmVha31lbHNle2EkPWFsfX1hbD1hQis0fDA7YXY9Y1thbD4+
Ml18MDthdD1hdjthQj1hbDthbT1hdn1oW2EkPj4zXT1hSTtoW2FuPj4zXT1hMDthbT1hJCs4fDA7
YXQ9Y1thQj4+Ml18MDtpZigoYW0tYXR8MCkhPTQwOTYpe2FZPWFtO2FaPWFCO2FfPWF0O2JyZWFr
fWF0PWFCKzR8MDthbT1jW2F0Pj4yXXwwO2FZPWFtO2FaPWF0O2FfPWFtfX13aGlsZSgwKTtpZigo
YVl8MCk9PShhbnwwKSl7YW89NzY4O2JyZWFrIEw3MjV9ZWxzZXthMT1hWTthMj1hWjthMz1hVzth
ND1hbjthNT1hX313aGlsZSgxKXthST0raFtjW1E+PjJdPj4zXTthbT1hMTthNj1hMjthdD1hNTtM
Nzk4OndoaWxlKDEpe2E3PWFtO3doaWxlKDEpe2E4PStoW2E3Pj4zXTtpZihhSTxhOCl7YnJlYWsg
TDc5OH1hdj1hNys4fDA7aWYoKGF2LWF0fDApPT00MDk2KXticmVha31lbHNle2E3PWF2fX1hdj1h
Nis0fDA7YWw9Y1thdj4+Ml18MDthbT1hbDthNj1hdjthdD1hbH1hdD1hMzthbT1hNDthQj1jW2Ez
Pj4yXXwwO3doaWxlKDEpe2lmKChhbXwwKT09KGFCfDApKXthbD1hdC00fDA7YXY9Y1thbD4+Ml18
MDthOT1hbDtiYT1hdis0MDk2fDA7YmI9YXZ9ZWxzZXthOT1hdDtiYT1hbTtiYj1hQn1iYz1iYS04
fDA7YmQ9K2hbYmM+PjNdO2lmKGFJPGJkKXthdD1hOTthbT1iYzthQj1iYn1lbHNle2JyZWFrfX1p
ZihhNj4+PjA+PWE5Pj4+MCl7aWYoYTc+Pj4wPj1iYz4+PjB8KGE2fDApIT0oYTl8MCkpe2JyZWFr
fX1oW2E3Pj4zXT1iZDtoW2JjPj4zXT1hODthQj1hNys4fDA7YW09Y1thNj4+Ml18MDtpZigoYUIt
YW18MCkhPTQwOTYpe2ExPWFCO2EyPWE2O2EzPWE5O2E0PWJjO2E1PWFtO2NvbnRpbnVlfWFtPWE2
KzR8MDthQj1jW2FtPj4yXXwwO2ExPWFCO2EyPWFtO2EzPWE5O2E0PWJjO2E1PWFCfWNbVD4+Ml09
YTY7Y1tRPj4yXT1hNztiZT1hN319d2hpbGUoMCk7TDgxNjpkb3tpZigoYW98MCk9PTcwNyl7YW89
MDthcD1hcys4fDA7YW49Y1tSPj4yXXwwO2lmKChhcC1hbnwwKT09NDA5Nil7YUI9Uis0fDA7YW09
Y1thQj4+Ml18MDtiZj1hbTtiZz1hQjtiaD1hbX1lbHNle2JmPWFwO2JnPVI7Ymg9YW59aWYoYmc+
Pj4wPGFNPj4+MCl7Ymk9YUw7Ymo9YmY7Yms9Ymc7Ymw9YUU7Ym09YU07Ym49YU47Ym89Ymg7YW89
NzExfWVsc2V7aWYoKGJnfDApPT0oYU18MCkmYmY+Pj4wPGFOPj4+MCl7Ymk9YUw7Ymo9YmY7Yms9
Ymc7Ymw9YUU7Ym09YU07Ym49YU47Ym89Ymg7YW89NzExfWVsc2V7YnA9YUw7YnE9YmY7YnI9Ymc7
YnM9YUV9fUw4MjM6ZG97aWYoKGFvfDApPT03MTEpe3doaWxlKDEpe2FvPTA7YUg9K2hbYmw+PjNd
O2FuPWJqO2FwPWJrO2FtPWJvO0w4MjY6d2hpbGUoMSl7YnQ9YW47d2hpbGUoMSl7YnU9K2hbYnQ+
PjNdO2lmKGJ1Pj1hSCl7YnJlYWsgTDgyNn1hQj1idCs4fDA7aWYoKGFCLWFtfDApPT00MDk2KXti
cmVha31lbHNle2J0PWFCfX1hQj1hcCs0fDA7YXQ9Y1thQj4+Ml18MDthbj1hdDthcD1hQjthbT1h
dH1hbT1ibTthbj1ibjthdD1jW2JtPj4yXXwwO3doaWxlKDEpe2lmKChhbnwwKT09KGF0fDApKXth
Qj1hbS00fDA7YXY9Y1thQj4+Ml18MDtidj1hQjtidz1hdis0MDk2fDA7Yng9YXZ9ZWxzZXtidj1h
bTtidz1hbjtieD1hdH1ieT1idy04fDA7Yno9K2hbYnk+PjNdO2lmKGJ6Pj1hSCl7YW09YnY7YW49
Ynk7YXQ9Ynh9ZWxzZXticmVha319aWYoYnY+Pj4wPGFwPj4+MCl7YnA9Ymk7YnE9YnQ7YnI9YXA7
YnM9Ymw7YnJlYWsgTDgyM31pZigoYnZ8MCk9PShhcHwwKSZieT4+PjA8YnQ+Pj4wKXticD1iaTti
cT1idDticj1hcDticz1ibDticmVhayBMODIzfWhbYnQ+PjNdPWJ6O2hbYnk+PjNdPWJ1O2F0PWJp
KzF8MDthbj0oYmx8MCk9PShidHwwKT9ieTpibDthbT1idCs4fDA7YXY9Y1thcD4+Ml18MDtpZigo
YW0tYXZ8MCkhPTQwOTYpe2JpPWF0O2JqPWFtO2JrPWFwO2JsPWFuO2JtPWJ2O2JuPWJ5O2JvPWF2
O2FvPTcxMTtjb250aW51ZX1hdj1hcCs0fDA7YW09Y1thdj4+Ml18MDtiaT1hdDtiaj1hbTtiaz1h
djtibD1hbjtibT1idjtibj1ieTtibz1hbTthbz03MTF9fX13aGlsZSgwKTtkb3tpZigoYnF8MCk9
PShic3wwKSl7YkE9YnB9ZWxzZXthSD0raFticz4+M107YUc9K2hbYnE+PjNdO2lmKGFIPj1hRyl7
YkE9YnA7YnJlYWt9aFticT4+M109YUg7aFticz4+M109YUc7YkE9YnArMXwwfX13aGlsZSgwKTtk
b3tpZigoYkF8MCk9PTApe2FtPWNbVSs0Pj4yXXwwO2NbQz4+Ml09Y1tVPj4yXTtjW0MrND4+Ml09
YW07Y1thYT4+Ml09YnI7Y1thYj4+Ml09YnE7YW09Y04oRCxFLDApfDA7Y1thYz4+Ml09YnI7Y1th
ZD4+Ml09YnE7YW49YnEtKGNbYnI+PjJdfDApPj4zO2F2PWFuKzF8MDtpZigoYXZ8MCk+MCl7YXQ9
YnIrKCgoYXZ8MCkvNTEyfDApPDwyKXwwO2NbYWM+PjJdPWF0O2JCPShjW2F0Pj4yXXwwKSsoKChh
dnwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXthdj01MTAtYW58MDthbj1icisoKChhdnwwKS8tNTEyfDAp
PDwyKXwwO2NbYWM+PjJdPWFuO2JCPShjW2FuPj4yXXwwKSsoNTExLSgoYXZ8MCklNTEyfDApPDwz
KXwwfWNbYWQ+PjJdPWJCO2F2PWNbYWUrND4+Ml18MDtjW0c+PjJdPWNbYWU+PjJdO2NbRys0Pj4y
XT1hdjtpZihjTihGLEgsMCl8MCl7aWYoYW0pe2FvPTc3MDticmVhayBMNzI1fWNbUz4+Ml09YnI7
Y1tPPj4yXT1icTtiZT1jW1E+PjJdfDA7YnJlYWsgTDgxNn1pZighYW0pe2JyZWFrfWFtPWJxKzh8
MDtpZigoYW0tKGNbYnI+PjJdfDApfDApPT00MDk2KXthdj1icis0fDA7YkM9Y1thdj4+Ml18MDti
RD1hdn1lbHNle2JDPWFtO2JEPWJyfWNbVD4+Ml09YkQ7Y1tRPj4yXT1iQztiZT1iQzticmVhayBM
ODE2fX13aGlsZSgwKTthbT1jW1E+PjJdfDA7aWYoKGJxfDApPT0oYW18MCkpe2JFPTB9ZWxzZXth
dj1jW1Q+PjJdfDA7YkU9KGJxLShjW2JyPj4yXXwwKT4+MykrKGJyLWF2PDw3KS0oYW0tKGNbYXY+
PjJdfDApPj4zKXwwfWF2PWNbTz4+Ml18MDtpZigoYXZ8MCk9PShicXwwKSl7YkY9MH1lbHNle2Fu
PWNbUz4+Ml18MDtiRj0oYXYtKGNbYW4+PjJdfDApPj4zKSsoYW4tYnI8PDcpLShicS0oY1ticj4+
Ml18MCk+PjMpfDB9aWYoKGJFfDApPChiRnwwKSl7YW49Y1tVKzQ+PjJdfDA7Y1tJPj4yXT1jW1U+
PjJdO2NbSSs0Pj4yXT1hbjtjW2I+PjJdPWJyO2NbYWY+PjJdPWJxO2NLKEosSyxkKTthbj1icSs4
fDA7aWYoKGFuLShjW2JyPj4yXXwwKXwwKT09NDA5Nil7YXY9YnIrNHwwO2JHPWNbYXY+PjJdfDA7
Ykg9YXZ9ZWxzZXtiRz1hbjtiSD1icn1jW1Q+PjJdPWJIO2NbUT4+Ml09Ykc7YmU9Ykc7YnJlYWt9
Y1thZz4+Ml09YnI7Y1thaD4+Ml09YnE7YW49YnEtKGNbYnI+PjJdfDApPj4zO2F2PWFuKzF8MDtp
ZigoYXZ8MCk+MCl7YXQ9YnIrKCgoYXZ8MCkvNTEyfDApPDwyKXwwO2NbYWc+PjJdPWF0O2JJPShj
W2F0Pj4yXXwwKSsoKChhdnwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXthdj01MTAtYW58MDthbj1iciso
KChhdnwwKS8tNTEyfDApPDwyKXwwO2NbYWc+PjJdPWFuO2JJPShjW2FuPj4yXXwwKSsoNTExLSgo
YXZ8MCklNTEyfDApPDwzKXwwfWNbYWg+PjJdPWJJO2F2PWNbYWUrND4+Ml18MDtjW00+PjJdPWNb
YWU+PjJdO2NbTSs0Pj4yXT1hdjtjSyhMLE4sZCk7Y1tTPj4yXT1icjtjW08+PjJdPWJxO2JlPWFt
fX13aGlsZSgwKTtSPWNbTz4+Ml18MDtpZigoUnwwKT09KGJlfDApKXthbz03Njk7YnJlYWt9ZWxz
ZXthaT1SO1A9YmV9fWlmKChhb3wwKT09NjMwKXtiZT1jW1U+PjJdfDA7YnE9Y1tVKzQ+PjJdfDA7
Y1tmPj4yXT1iZTtjW2YrND4+Ml09YnE7Y1tqPj4yXT1iZTtjW2orND4+Ml09YnE7Zj1icTticj1q
O2o9YmU7ZD1mLShjW2o+PjJdfDApPj4zO049ZCsxfDA7aWYoKE58MCk+MCl7TD1qKygoKE58MCkv
NTEyfDApPDwyKXwwO2NbYnI+PjJdPUw7Yko9KGNbTD4+Ml18MCkrKCgoTnwwKSU1MTJ8MCk8PDMp
fDB9ZWxzZXtOPTUxMC1kfDA7ZD1qKygoKE58MCkvLTUxMnwwKTw8Mil8MDtjW2JyPj4yXT1kO2JK
PShjW2Q+PjJdfDApKyg1MTEtKChOfDApJTUxMnwwKTw8Myl8MH1jW2srND4+Ml09Yko7Y1tsPj4y
XT1iZTtjW2wrND4+Ml09YnE7Yko9bDtsPWYtKGNbaj4+Ml18MCk+PjM7Tj1sKzJ8MDtpZigoTnww
KT4wKXtkPWorKCgoTnwwKS81MTJ8MCk8PDIpfDA7Y1tiSj4+Ml09ZDtiSz0oY1tkPj4yXXwwKSso
KChOfDApJTUxMnwwKTw8Myl8MH1lbHNle049NTA5LWx8MDtsPWorKCgoTnwwKS8tNTEyfDApPDwy
KXwwO2NbYko+PjJdPWw7Yks9KGNbbD4+Ml18MCkrKDUxMS0oKE58MCklNTEyfDApPDwzKXwwfWNb
bSs0Pj4yXT1iSztjW24+PjJdPWJlO2Nbbis0Pj4yXT1icTticT1uO249Zi0oY1tqPj4yXXwwKT4+
MztmPW4rM3wwO2lmKChmfDApPjApe2JlPWorKCgoZnwwKS81MTJ8MCk8PDIpfDA7Y1ticT4+Ml09
YmU7Ykw9KGNbYmU+PjJdfDApKygoKGZ8MCklNTEyfDApPDwzKXwwfWVsc2V7Zj01MDgtbnwwO249
aisoKChmfDApLy01MTJ8MCk8PDIpfDA7Y1ticT4+Ml09bjtiTD0oY1tuPj4yXXwwKSsoNTExLSgo
ZnwwKSU1MTJ8MCk8PDMpfDB9Y1tvKzQ+PjJdPWJMO2lmKChhaXwwKT09KGFrfDApKXtiTD1hai00
fDA7Y1tTPj4yXT1iTDtmPShjW2JMPj4yXXwwKSs0MDk2fDA7Y1tPPj4yXT1mO2JNPWZ9ZWxzZXti
TT1haX1jW08+PjJdPWJNLTg7Yk09Y1thZSs0Pj4yXXwwO2NbcD4+Ml09Y1thZT4+Ml07Y1twKzQ+
PjJdPWJNO2NMKGcsayxtLG8scSwwKXwwO2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9PTYxMCl7
cT1jW1U+PjJdfDA7bz1jW1UrND4+Ml18MDttPW87az1vLShjW3E+PjJdfDApPj4zO289aysxfDA7
aWYoKG98MCk+MCl7Yk49KGNbcSsoKChvfDApLzUxMnwwKTw8Mik+PjJdfDApKygoKG98MCklNTEy
fDApPDwzKXwwfWVsc2V7bz01MTAta3wwO2JOPShjW3ErKCgob3wwKS8tNTEyfDApPDwyKT4+Ml18
MCkrKDUxMS0oKG98MCklNTEyfDApPDwzKXwwfW89aysyfDA7aWYoKG98MCk+MCl7Yk89KGNbcSso
KChvfDApLzUxMnwwKTw8Mik+PjJdfDApKygoKG98MCklNTEyfDApPDwzKXwwfWVsc2V7bz01MDkt
a3wwO2JPPShjW3ErKCgob3wwKS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKG98MCklNTEyfDAp
PDwzKXwwfWlmKChhaXwwKT09KGFrfDApKXtvPWFqLTR8MDtjW1M+PjJdPW87cT0oY1tvPj4yXXww
KSs0MDk2fDA7Y1tPPj4yXT1xO2JQPXF9ZWxzZXtiUD1haX1jW08+PjJdPWJQLTg7YlA9Y1thZSs0
Pj4yXXwwO2J1PStoW2JOPj4zXTtiej0raFttPj4zXTthOD0raFtiTz4+M107cT1hODxidTtkb3tp
ZihidTxieil7aWYocSl7aFttPj4zXT1hODtoW2JPPj4zXT1iejtiUT1iejticmVha31oW20+PjNd
PWJ1O2hbYk4+PjNdPWJ6O2JkPStoW2JPPj4zXTtpZihiZD49Ynope2JRPWJkO2JyZWFrfWhbYk4+
PjNdPWJkO2hbYk8+PjNdPWJ6O2JRPWJ6fWVsc2V7aWYoIXEpe2JRPWE4O2JyZWFrfWhbYk4+PjNd
PWE4O2hbYk8+PjNdPWJ1O2JkPStoW2JOPj4zXTthMD0raFttPj4zXTtpZihiZD49YTApe2JRPWJ1
O2JyZWFrfWhbbT4+M109YmQ7aFtiTj4+M109YTA7YlE9K2hbYk8+PjNdfX13aGlsZSgwKTtidT0r
aFtiUD4+M107aWYoYnU+PWJRKXtpPWU7cmV0dXJufWhbYk8+PjNdPWJ1O2hbYlA+PjNdPWJRO2JR
PStoW2JPPj4zXTtidT0raFtiTj4+M107aWYoYlE+PWJ1KXtpPWU7cmV0dXJufWhbYk4+PjNdPWJR
O2hbYk8+PjNdPWJ1O2J1PStoW2JOPj4zXTtiUT0raFttPj4zXTtpZihidT49YlEpe2k9ZTtyZXR1
cm59aFttPj4zXT1idTtoW2JOPj4zXT1iUTtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT02NDMp
e2JOPWNbVSs0Pj4yXXwwO2Nbcj4+Ml09Y1tVPj4yXTtjW3IrND4+Ml09Yk47Yk49Y1thZSs0Pj4y
XXwwO2NbdD4+Ml09Y1thZT4+Ml07Y1t0KzQ+PjJdPWJOO2NNKHMsdSwwKTtpPWU7cmV0dXJufWVs
c2UgaWYoKGFvfDApPT01OTMpe2lmKChhaXwwKT09KGFrfDApKXt1PWFqLTR8MDtjW1M+PjJdPXU7
cz0oY1t1Pj4yXXwwKSs0MDk2fDA7Y1tPPj4yXT1zO2JSPXN9ZWxzZXtiUj1haX1zPWJSLTh8MDtj
W08+PjJdPXM7YlE9K2hbcz4+M107YnU9K2hbUD4+M107aWYoYlE+PWJ1KXtpPWU7cmV0dXJufWhb
UD4+M109YlE7aFtzPj4zXT1idTtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT01OTcpe3M9Y1tV
Pj4yXXwwO1A9Y1tVKzQ+PjJdfDA7VT1QO2JSPVAtKGNbcz4+Ml18MCk+PjM7UD1iUisxfDA7aWYo
KFB8MCk+MCl7YlM9KGNbcysoKChQfDApLzUxMnwwKTw8Mik+PjJdfDApKygoKFB8MCklNTEyfDAp
PDwzKXwwfWVsc2V7UD01MTAtYlJ8MDtiUz0oY1tzKygoKFB8MCkvLTUxMnwwKTw8Mik+PjJdfDAp
Kyg1MTEtKChQfDApJTUxMnwwKTw8Myl8MH1pZigoYWl8MCk9PShha3wwKSl7YWs9YWotNHwwO2Nb
Uz4+Ml09YWs7Uz0oY1thaz4+Ml18MCkrNDA5NnwwO2NbTz4+Ml09UztiVD1TfWVsc2V7YlQ9YWl9
Y1tPPj4yXT1iVC04O2JUPWNbYWUrND4+Ml18MDtidT0raFtiUz4+M107YlE9K2hbVT4+M107YTg9
K2hbYlQ+PjNdO2FlPWE4PGJ1O2lmKGJ1Pj1iUSl7aWYoIWFlKXtpPWU7cmV0dXJufWhbYlM+PjNd
PWE4O2hbYlQ+PjNdPWJ1O2J6PStoW2JTPj4zXTthMD0raFtVPj4zXTtpZihiej49YTApe2k9ZTty
ZXR1cm59aFtVPj4zXT1iejtoW2JTPj4zXT1hMDtpPWU7cmV0dXJufWlmKGFlKXtoW1U+PjNdPWE4
O2hbYlQ+PjNdPWJRO2k9ZTtyZXR1cm59aFtVPj4zXT1idTtoW2JTPj4zXT1iUTtidT0raFtiVD4+
M107aWYoYnU+PWJRKXtpPWU7cmV0dXJufWhbYlM+PjNdPWJ1O2hbYlQ+PjNdPWJRO2k9ZTtyZXR1
cm59ZWxzZSBpZigoYW98MCk9PTc2MCl7aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09NzY3KXtp
PWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT03Njgpe2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9
PTc2OSl7aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09NzcwKXtpPWU7cmV0dXJufX1mdW5jdGlv
biBjTChhLGIsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7dmFy
IGo9MCxrPTAsbD0wLG09MCxuPTAuMCxvPTAuMCxwPTAuMCxxPTAscj0wLHM9MC4wLHQ9MC4wLHU9
MC4wLHY9MCx3PTA7Zz1pO2o9YTthPWk7aT1pKzh8MDtjW2E+PjJdPWNbaj4+Ml07Y1thKzQ+PjJd
PWNbais0Pj4yXTtqPWI7Yj1pO2k9aSs4fDA7Y1tiPj4yXT1jW2o+PjJdO2NbYis0Pj4yXT1jW2or
ND4+Ml07aj1kO2Q9aTtpPWkrOHwwO2NbZD4+Ml09Y1tqPj4yXTtjW2QrND4+Ml09Y1tqKzQ+PjJd
O2o9ZTtlPWk7aT1pKzh8MDtjW2U+PjJdPWNbaj4+Ml07Y1tlKzQ+PjJdPWNbais0Pj4yXTtqPWY7
Zj1pO2k9aSs4fDA7Y1tmPj4yXT1jW2o+PjJdO2NbZis0Pj4yXT1jW2orND4+Ml07aj1jW2ErND4+
Ml18MDtrPWNbYis0Pj4yXXwwO2w9Y1tkKzQ+PjJdfDA7bT1jW2UrND4+Ml18MDtuPStoW2s+PjNd
O289K2hbaj4+M107cD0raFtsPj4zXTtxPXA8bjtkb3tpZihuPG8pe2lmKHEpe2hbaj4+M109cDto
W2w+PjNdPW87cj0xO3M9bzticmVha31oW2o+PjNdPW47aFtrPj4zXT1vO3Q9K2hbbD4+M107aWYo
dD49byl7cj0xO3M9dDticmVha31oW2s+PjNdPXQ7aFtsPj4zXT1vO3I9MjtzPW99ZWxzZXtpZigh
cSl7cj0wO3M9cDticmVha31oW2s+PjNdPXA7aFtsPj4zXT1uO3Q9K2hbaz4+M107dT0raFtqPj4z
XTtpZih0Pj11KXtyPTE7cz1uO2JyZWFrfWhbaj4+M109dDtoW2s+PjNdPXU7cj0yO3M9K2hbbD4+
M119fXdoaWxlKDApO249K2hbbT4+M107ZG97aWYobjxzKXtoW2w+PjNdPW47aFttPj4zXT1zO3A9
K2hbbD4+M107bz0raFtrPj4zXTtpZihwPj1vKXt2PXIrMXwwO2JyZWFrfWhbaz4+M109cDtoW2w+
PjNdPW87bz0raFtrPj4zXTtwPStoW2o+PjNdO2lmKG8+PXApe3Y9cisyfDA7YnJlYWt9aFtqPj4z
XT1vO2hbaz4+M109cDt2PXIrM3wwfWVsc2V7dj1yfX13aGlsZSgwKTtyPWNbZis0Pj4yXXwwO2Y9
Y1tlKzQ+PjJdfDA7cz0raFtyPj4zXTtuPStoW2Y+PjNdO2lmKHM+PW4pe3c9djtpPWc7cmV0dXJu
IHd8MH1oW2Y+PjNdPXM7aFtyPj4zXT1uO3I9Y1tkKzQ+PjJdfDA7bj0raFtmPj4zXTtzPStoW3I+
PjNdO2lmKG4+PXMpe3c9disxfDA7aT1nO3JldHVybiB3fDB9aFtyPj4zXT1uO2hbZj4+M109cztm
PWNbYis0Pj4yXXwwO3M9K2hbcj4+M107bj0raFtmPj4zXTtpZihzPj1uKXt3PXYrMnwwO2k9Zzty
ZXR1cm4gd3wwfWhbZj4+M109cztoW3I+PjNdPW47cj1jW2ErND4+Ml18MDtuPStoW2Y+PjNdO3M9
K2hbcj4+M107aWYobj49cyl7dz12KzN8MDtpPWc7cmV0dXJuIHd8MH1oW3I+PjNdPW47aFtmPj4z
XT1zO3c9dis0fDA7aT1nO3JldHVybiB3fDB9ZnVuY3Rpb24gY00oYSxiLGQpe2E9YXwwO2I9Ynww
O2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MC4wLHA9MC4wLHE9
MC4wLHI9MC4wLHM9MC4wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTA7ZD1pO2U9YTth
PWk7aT1pKzh8MDtjW2E+PjJdPWNbZT4+Ml07Y1thKzQ+PjJdPWNbZSs0Pj4yXTtlPWI7Yj1pO2k9
aSs4fDA7Y1tiPj4yXT1jW2U+PjJdO2NbYis0Pj4yXT1jW2UrND4+Ml07ZT1jW2E+PjJdfDA7Zj1h
KzR8MDtnPShjW2Y+PjJdfDApLShjW2U+PjJdfDApPj4zO2o9ZysyfDA7aWYoKGp8MCk+MCl7az1l
KygoKGp8MCkvNTEyfDApPDwyKXwwO2w9KGNbaz4+Ml18MCkrKCgoanwwKSU1MTJ8MCk8PDMpfDA7
bT1rfWVsc2V7az01MDktZ3wwO2c9ZSsoKChrfDApLy01MTJ8MCk8PDIpfDA7bD0oY1tnPj4yXXww
KSsoNTExLSgoa3wwKSU1MTJ8MCk8PDMpfDA7bT1nfWc9YTthPWNbZz4+Ml18MDtrPWNbZys0Pj4y
XXwwO2c9aztlPWstKGNbYT4+Ml18MCk+PjM7az1lKzF8MDtpZigoa3wwKT4wKXtuPShjW2ErKCgo
a3wwKS81MTJ8MCk8PDIpPj4yXXwwKSsoKChrfDApJTUxMnwwKTw8Myl8MH1lbHNle2s9NTEwLWV8
MDtuPShjW2ErKCgoa3wwKS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKGt8MCklNTEyfDApPDwz
KXwwfW89K2hbbj4+M107cD0raFtnPj4zXTtxPStoW2w+PjNdO2s9cTxvO2Rve2lmKG88cCl7aWYo
ayl7aFtnPj4zXT1xO2hbbD4+M109cDticmVha31oW2c+PjNdPW87aFtuPj4zXT1wO3I9K2hbbD4+
M107aWYocj49cCl7YnJlYWt9aFtuPj4zXT1yO2hbbD4+M109cH1lbHNle2lmKCFrKXticmVha31o
W24+PjNdPXE7aFtsPj4zXT1vO3I9K2hbbj4+M107cz0raFtnPj4zXTtpZihyPj1zKXticmVha31o
W2c+PjNdPXI7aFtuPj4zXT1zfX13aGlsZSgwKTtuPWwtKGNbbT4+Ml18MCk+PjM7Zz1uKzF8MDtp
ZigoZ3wwKT4wKXtrPW0rKCgoZ3wwKS81MTJ8MCk8PDIpfDA7YT1jW2s+PjJdfDA7dD1rO3U9YSso
KChnfDApJTUxMnwwKTw8Myl8MDt2PWF9ZWxzZXthPTUxMC1ufDA7bj1tKygoKGF8MCkvLTUxMnww
KTw8Mil8MDtnPWNbbj4+Ml18MDt0PW47dT1nKyg1MTEtKChhfDApJTUxMnwwKTw8Myl8MDt2PWd9
Zz1iKzR8MDtiPWw7bD10O3Q9dTt1PW07bT12O0wxMDIyOndoaWxlKDEpe3Y9YjthPXQ7bj11O2s9
bTt3aGlsZSgxKXtpZigoYXwwKT09KGNbZz4+Ml18MCkpe2JyZWFrIEwxMDIyfW89K2hbYT4+M107
cT0raFt2Pj4zXTtpZihvPHEpe2U9bjtqPXY7dz1hO3A9cTt3aGlsZSgxKXtoW3c+PjNdPXA7aWYo
KGp8MCk9PShjW2Y+PjJdfDApKXticmVha31pZigoanwwKT09KGNbZT4+Ml18MCkpe3g9ZS00fDA7
eT14O3o9KGNbeD4+Ml18MCkrNDA5NnwwfWVsc2V7eT1lO3o9an14PXotOHwwO3E9K2hbeD4+M107
aWYobzxxKXtlPXk7dz1qO2o9eDtwPXF9ZWxzZXticmVha319aFtqPj4zXT1vO0E9Y1tsPj4yXXww
fWVsc2V7QT1rfXc9YSs4fDA7aWYoKHctQXwwKT09NDA5Nil7YnJlYWt9ZWxzZXt2PWE7YT13O249
bDtrPUF9fWs9bCs0fDA7bj1jW2s+PjJdfDA7Yj1hO3U9bDtsPWs7dD1uO209bn1pPWQ7cmV0dXJu
fWZ1bmN0aW9uIGNOKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaj0w
LGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAuMCxFPTAuMCxGPTAsRz0wLEg9MC4wLEk9MC4wLEo9MC4w
LEs9MCxMPTAsTT0wLE49MC4wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9
MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTA7ZD1pO2k9aSs4
fDA7ZT1hO2E9aTtpPWkrOHwwO2NbYT4+Ml09Y1tlPj4yXTtjW2ErND4+Ml09Y1tlKzQ+PjJdO2U9
YjtiPWk7aT1pKzh8MDtjW2I+PjJdPWNbZT4+Ml07Y1tiKzQ+PjJdPWNbZSs0Pj4yXTtlPWR8MDtm
PWU7Zz1pO2k9aSs4fDA7aj1nO2s9aTtpPWkrOHwwO2w9azttPWk7aT1pKzh8MDtuPW07bz1pO2k9
aSs4fDA7cD1vO3E9Yis0fDA7cj1jW3E+PjJdfDA7cz1hKzR8MDt0PWNbcz4+Ml18MDtpZigocnww
KT09KHR8MCkpe3U9MTtpPWQ7cmV0dXJuIHV8MH12PWJ8MDt3PWNbdj4+Ml18MDt4PWNbYT4+Ml18
MDt5PWNbdz4+Ml18MDt6PXQtKGNbeD4+Ml18MCk+PjM7c3dpdGNoKChyLXk+PjMpKyh3LXg8PDcp
LXp8MCl7Y2FzZSAyOntpZigocnwwKT09KHl8MCkpe0E9dy00fDA7Y1t2Pj4yXT1BO0I9KGNbQT4+
Ml18MCkrNDA5NnwwO2NbcT4+Ml09QjtDPUJ9ZWxzZXtDPXJ9Qj1DLTh8MDtjW3E+PjJdPUI7RD0r
aFtCPj4zXTtFPStoW3Q+PjNdO2lmKEQ+PUUpe3U9MTtpPWQ7cmV0dXJuIHV8MH1oW3Q+PjNdPUQ7
aFtCPj4zXT1FO3U9MTtpPWQ7cmV0dXJuIHV8MH07Y2FzZSAwOmNhc2UgMTp7dT0xO2k9ZDtyZXR1
cm4gdXwwfTtjYXNlIDM6e0I9YTt0PWNbQj4+Ml18MDtDPWNbQis0Pj4yXXwwO0I9QztBPUMtKGNb
dD4+Ml18MCk+PjM7Qz1BKzF8MDtpZigoQ3wwKT4wKXtGPShjW3QrKCgoQ3wwKS81MTJ8MCk8PDIp
Pj4yXXwwKSsoKChDfDApJTUxMnwwKTw8Myl8MH1lbHNle0M9NTEwLUF8MDtGPShjW3QrKCgoQ3ww
KS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKEN8MCklNTEyfDApPDwzKXwwfWlmKChyfDApPT0o
eXwwKSl7Qz13LTR8MDtjW3Y+PjJdPUM7dD0oY1tDPj4yXXwwKSs0MDk2fDA7Y1txPj4yXT10O0c9
dH1lbHNle0c9cn1jW3E+PjJdPUctODtHPWNbYis0Pj4yXXwwO0U9K2hbRj4+M107RD0raFtCPj4z
XTtIPStoW0c+PjNdO3Q9SDxFO2lmKEU+PUQpe2lmKCF0KXt1PTE7aT1kO3JldHVybiB1fDB9aFtG
Pj4zXT1IO2hbRz4+M109RTtJPStoW0Y+PjNdO0o9K2hbQj4+M107aWYoST49Sil7dT0xO2k9ZDty
ZXR1cm4gdXwwfWhbQj4+M109STtoW0Y+PjNdPUo7dT0xO2k9ZDtyZXR1cm4gdXwwfWlmKHQpe2hb
Qj4+M109SDtoW0c+PjNdPUQ7dT0xO2k9ZDtyZXR1cm4gdXwwfWhbQj4+M109RTtoW0Y+PjNdPUQ7
RT0raFtHPj4zXTtpZihFPj1EKXt1PTE7aT1kO3JldHVybiB1fDB9aFtGPj4zXT1FO2hbRz4+M109
RDt1PTE7aT1kO3JldHVybiB1fDB9O2Nhc2UgNDp7Rz1hO0Y9Y1tHPj4yXXwwO0I9Y1tHKzQ+PjJd
fDA7Rz1CO3Q9Qi0oY1tGPj4yXXwwKT4+MztCPXQrMXwwO2lmKChCfDApPjApe0s9KGNbRisoKChC
fDApLzUxMnwwKTw8Mik+PjJdfDApKygoKEJ8MCklNTEyfDApPDwzKXwwfWVsc2V7Qj01MTAtdHww
O0s9KGNbRisoKChCfDApLy01MTJ8MCk8PDIpPj4yXXwwKSsoNTExLSgoQnwwKSU1MTJ8MCk8PDMp
fDB9Qj10KzJ8MDtpZigoQnwwKT4wKXtMPShjW0YrKCgoQnwwKS81MTJ8MCk8PDIpPj4yXXwwKSso
KChCfDApJTUxMnwwKTw8Myl8MH1lbHNle0I9NTA5LXR8MDtMPShjW0YrKCgoQnwwKS8tNTEyfDAp
PDwyKT4+Ml18MCkrKDUxMS0oKEJ8MCklNTEyfDApPDwzKXwwfWlmKChyfDApPT0oeXwwKSl7Qj13
LTR8MDtjW3Y+PjJdPUI7Rj0oY1tCPj4yXXwwKSs0MDk2fDA7Y1txPj4yXT1GO009Rn1lbHNle009
cn1jW3E+PjJdPU0tODtNPWNbYis0Pj4yXXwwO0Q9K2hbSz4+M107RT0raFtHPj4zXTtIPStoW0w+
PjNdO0Y9SDxEO2Rve2lmKEQ8RSl7aWYoRil7aFtHPj4zXT1IO2hbTD4+M109RTtOPUU7YnJlYWt9
aFtHPj4zXT1EO2hbSz4+M109RTtKPStoW0w+PjNdO2lmKEo+PUUpe049SjticmVha31oW0s+PjNd
PUo7aFtMPj4zXT1FO049RX1lbHNle2lmKCFGKXtOPUg7YnJlYWt9aFtLPj4zXT1IO2hbTD4+M109
RDtKPStoW0s+PjNdO0k9K2hbRz4+M107aWYoSj49SSl7Tj1EO2JyZWFrfWhbRz4+M109SjtoW0s+
PjNdPUk7Tj0raFtMPj4zXX19d2hpbGUoMCk7RD0raFtNPj4zXTtpZihEPj1OKXt1PTE7aT1kO3Jl
dHVybiB1fDB9aFtMPj4zXT1EO2hbTT4+M109TjtOPStoW0w+PjNdO0Q9K2hbSz4+M107aWYoTj49
RCl7dT0xO2k9ZDtyZXR1cm4gdXwwfWhbSz4+M109TjtoW0w+PjNdPUQ7RD0raFtLPj4zXTtOPSto
W0c+PjNdO2lmKEQ+PU4pe3U9MTtpPWQ7cmV0dXJuIHV8MH1oW0c+PjNdPUQ7aFtLPj4zXT1OO3U9
MTtpPWQ7cmV0dXJuIHV8MH07Y2FzZSA1OntLPWE7Rz1jW0s+PjJdfDA7TD1jW0srND4+Ml18MDtj
W2U+PjJdPUc7Y1tlKzQ+PjJdPUw7Y1tnPj4yXT1HO2NbZys0Pj4yXT1MO2U9TDtLPWc7Zz1HO009
ZS0oY1tnPj4yXXwwKT4+MztGPU0rMXwwO2lmKChGfDApPjApe0I9ZysoKChGfDApLzUxMnwwKTw8
Mil8MDtjW0s+PjJdPUI7Tz0oY1tCPj4yXXwwKSsoKChGfDApJTUxMnwwKTw8Myl8MH1lbHNle0Y9
NTEwLU18MDtNPWcrKCgoRnwwKS8tNTEyfDApPDwyKXwwO2NbSz4+Ml09TTtPPShjW00+PjJdfDAp
Kyg1MTEtKChGfDApJTUxMnwwKTw8Myl8MH1jW2orND4+Ml09TztjW2s+PjJdPUc7Y1trKzQ+PjJd
PUw7Tz1rO2s9ZS0oY1tnPj4yXXwwKT4+MztGPWsrMnwwO2lmKChGfDApPjApe009ZysoKChGfDAp
LzUxMnwwKTw8Mil8MDtjW08+PjJdPU07UD0oY1tNPj4yXXwwKSsoKChGfDApJTUxMnwwKTw8Myl8
MH1lbHNle0Y9NTA5LWt8MDtrPWcrKCgoRnwwKS8tNTEyfDApPDwyKXwwO2NbTz4+Ml09aztQPShj
W2s+PjJdfDApKyg1MTEtKChGfDApJTUxMnwwKTw8Myl8MH1jW2wrND4+Ml09UDtjW20+PjJdPUc7
Y1ttKzQ+PjJdPUw7TD1tO209ZS0oY1tnPj4yXXwwKT4+MztlPW0rM3wwO2lmKChlfDApPjApe0c9
ZysoKChlfDApLzUxMnwwKTw8Mil8MDtjW0w+PjJdPUc7UT0oY1tHPj4yXXwwKSsoKChlfDApJTUx
MnwwKTw8Myl8MH1lbHNle2U9NTA4LW18MDttPWcrKCgoZXwwKS8tNTEyfDApPDwyKXwwO2NbTD4+
Ml09bTtRPShjW20+PjJdfDApKyg1MTEtKChlfDApJTUxMnwwKTw8Myl8MH1jW24rND4+Ml09UTtp
ZigocnwwKT09KHl8MCkpe3k9dy00fDA7Y1t2Pj4yXT15O3Y9KGNbeT4+Ml18MCkrNDA5NnwwO2Nb
cT4+Ml09djtSPXZ9ZWxzZXtSPXJ9Y1txPj4yXT1SLTg7Uj1iO2I9Y1tSKzQ+PjJdfDA7Y1tvPj4y
XT1jW1I+PjJdO2Nbbys0Pj4yXT1iO2NMKGYsaixsLG4scCwwKXwwO3U9MTtpPWQ7cmV0dXJuIHV8
MH07ZGVmYXVsdDp7cD16KzJ8MDtpZigocHwwKT4wKXtuPXgrKCgocHwwKS81MTJ8MCk8PDIpfDA7
Uz1uO1Q9KGNbbj4+Ml18MCkrKCgocHwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtwPTUwOS16fDA7ej14
KygoKHB8MCkvLTUxMnwwKTw8Mil8MDtTPXo7VD0oY1t6Pj4yXXwwKSsoNTExLSgocHwwKSU1MTJ8
MCk8PDMpfDB9cD1hO2E9Y1twPj4yXXwwO3o9Y1twKzQ+PjJdfDA7cD16O3g9ei0oY1thPj4yXXww
KT4+Mzt6PXgrMXwwO2lmKCh6fDApPjApe1U9KGNbYSsoKCh6fDApLzUxMnwwKTw8Mik+PjJdfDAp
KygoKHp8MCklNTEyfDApPDwzKXwwfWVsc2V7ej01MTAteHwwO1U9KGNbYSsoKCh6fDApLy01MTJ8
MCk8PDIpPj4yXXwwKSsoNTExLSgoenwwKSU1MTJ8MCk8PDMpfDB9Tj0raFtVPj4zXTtEPStoW3A+
PjNdO0g9K2hbVD4+M107ej1IPE47ZG97aWYoTjxEKXtpZih6KXtoW3A+PjNdPUg7aFtUPj4zXT1E
O2JyZWFrfWhbcD4+M109TjtoW1U+PjNdPUQ7RT0raFtUPj4zXTtpZihFPj1EKXticmVha31oW1U+
PjNdPUU7aFtUPj4zXT1EfWVsc2V7aWYoIXope2JyZWFrfWhbVT4+M109SDtoW1Q+PjNdPU47RT0r
aFtVPj4zXTtJPStoW3A+PjNdO2lmKEU+PUkpe2JyZWFrfWhbcD4+M109RTtoW1U+PjNdPUl9fXdo
aWxlKDApO1U9VC0oY1tTPj4yXXwwKT4+MztwPVUrMXwwO2lmKChwfDApPjApe3o9UysoKChwfDAp
LzUxMnwwKTw8Mil8MDthPWNbej4+Ml18MDtWPTA7Vz1hKygoKHB8MCklNTEyfDApPDwzKXwwO1g9
ejtZPVM7Wj1UO189YX1lbHNle2E9NTEwLVV8MDtVPVMrKCgoYXwwKS8tNTEyfDApPDwyKXwwO3o9
Y1tVPj4yXXwwO1Y9MDtXPXorKDUxMS0oKGF8MCklNTEyfDApPDwzKXwwO1g9VTtZPVM7Wj1UO189
en1MMTA2NTp3aGlsZSgxKXt6PVY7JD1XO1Q9WTtTPVo7VT1fO3doaWxlKDEpe2lmKCgkfDApPT0o
Y1txPj4yXXwwKSl7dT0xO2FhPTkwNjticmVhayBMMTA2NX1OPStoWyQ+PjNdO0g9K2hbUz4+M107
aWYoTjxIKXthPVQ7cD1TO3g9JDtEPUg7d2hpbGUoMSl7aFt4Pj4zXT1EO2lmKChwfDApPT0oY1tz
Pj4yXXwwKSl7YnJlYWt9aWYoKHB8MCk9PShjW2E+PjJdfDApKXtuPWEtNHwwO2FiPW47YWM9KGNb
bj4+Ml18MCkrNDA5NnwwfWVsc2V7YWI9YTthYz1wfW49YWMtOHwwO0g9K2hbbj4+M107aWYoTjxI
KXthPWFiO3g9cDtwPW47RD1IfWVsc2V7YnJlYWt9fWhbcD4+M109Tjt4PXorMXwwO2lmKCh4fDAp
PT04KXticmVhayBMMTA2NX1hZD14O2FlPWNbWD4+Ml18MH1lbHNle2FkPXo7YWU9VX14PSQrOHww
O2lmKCh4LWFlfDApPT00MDk2KXticmVha31lbHNle3o9YWQ7Uz0kOyQ9eDtUPVg7VT1hZX19VT1Y
KzR8MDtUPWNbVT4+Ml18MDtWPWFkO1c9VDtZPVg7WD1VO1o9JDtfPVR9aWYoKGFhfDApPT05MDYp
e2k9ZDtyZXR1cm4gdXwwfWFhPSQrOHwwO2lmKChhYS0oY1tYPj4yXXwwKXwwKT09NDA5Nil7YWY9
Y1tYKzQ+PjJdfDB9ZWxzZXthZj1hYX11PShhZnwwKT09KGNbcT4+Ml18MCk7aT1kO3JldHVybiB1
fDB9fXJldHVybiAwfWZ1bmN0aW9uIGNPKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0w
LGY9MCxnPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MDtlPWErOHwwO2Y9Y1tlPj4yXXwwO2c9YSs0fDA7aT1jW2c+PjJd
fDA7aWYoKGZ8MCk9PShpfDApKXtqPTB9ZWxzZXtqPShmLWk8PDcpLTF8MH1rPWErMTZ8MDtsPWNb
az4+Ml18MDttPWErMjB8MDtuPWNbbT4+Ml18MDtvPWotbC1ufDA7aWYobz4+PjA8Yj4+PjApe2NR
KGEsYi1vfDApO3A9Y1ttPj4yXXwwO3E9Y1trPj4yXXwwO3I9Y1tnPj4yXXwwO3M9Y1tlPj4yXXww
fWVsc2V7cD1uO3E9bDtyPWk7cz1mfWY9cStwfDA7cD1yKyhmPj4+OTw8Mil8MDtpZigoc3wwKT09
KHJ8MCkpe3Q9MH1lbHNle3Q9KGNbcD4+Ml18MCkrKChmJjUxMSk8PDMpfDB9aWYoKGJ8MCk9PTAp
e3JldHVybn1lbHNle3U9dDt2PXA7dz1ifXdoaWxlKDEpe2lmKCh1fDApIT0wKXtoW3U+PjNdPSto
W2Q+PjNdfWI9dy0xfDA7cD11Kzh8MDtpZigocC0oY1t2Pj4yXXwwKXwwKT09NDA5Nil7dD12KzR8
MDt4PXQ7eT1jW3Q+PjJdfDB9ZWxzZXt4PXY7eT1wfWNbbT4+Ml09KGNbbT4+Ml18MCkrMTtpZigo
YnwwKT09MCl7YnJlYWt9ZWxzZXt1PXk7dj14O3c9Yn19cmV0dXJufWZ1bmN0aW9uIGNQKGEsYil7
YT1hfDA7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTA7ZD1hKzR8MDtlPWNbZD4+Ml18MDtmPWF8MDtkb3tp
ZigoZXwwKT09KGNbZj4+Ml18MCkpe2c9YSs4fDA7aD1jW2c+PjJdfDA7aT1hKzEyfDA7aj1jW2k+
PjJdfDA7az1qO2lmKGg+Pj4wPGo+Pj4wKXtqPWg7bD0oKGstaj4+MikrMXwwKS8yfDA7bT1qLWV8
MDtqPWgrKGwtKG0+PjIpPDwyKXwwO2tfKGp8MCxlfDAsbXwwKTtjW2Q+PjJdPWo7Y1tnPj4yXT0o
Y1tnPj4yXXwwKSsobDw8Mik7bj1qO2JyZWFrfWo9ay1lPj4xO2s9KGp8MCk9PTA/MTpqO2o9a08o
azw8Mil8MDtsPWorKChrKzN8MCk+Pj4yPDwyKXwwO209aisoazw8Mil8MDtpZigoZXwwKT09KGh8
MCkpe289bDtwPWV9ZWxzZXtrPWU7cT1sO2Rve2lmKChxfDApPT0wKXtyPTB9ZWxzZXtjW3E+PjJd
PWNbaz4+Ml07cj1xfXE9cis0fDA7az1rKzR8MDt9d2hpbGUoKGt8MCkhPShofDApKTtvPXE7cD1j
W2Y+PjJdfDB9Y1tmPj4yXT1qO2NbZD4+Ml09bDtjW2c+PjJdPW87Y1tpPj4yXT1tO2lmKChwfDAp
PT0wKXtuPWw7YnJlYWt9a1MocCk7bj1jW2Q+PjJdfDB9ZWxzZXtuPWV9fXdoaWxlKDApO2U9bi00
fDA7aWYoKGV8MCk9PTApe3M9bjt0PXMtNHwwO2NbZD4+Ml09dDtyZXR1cm59Y1tlPj4yXT1jW2I+
PjJdO3M9Y1tkPj4yXXwwO3Q9cy00fDA7Y1tkPj4yXT10O3JldHVybn1mdW5jdGlvbiBjUShhLGIp
e2E9YXwwO2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxD
PTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9
MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxh
Yz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9MDtkPWk7aT1pKzMyfDA7
ZT1kfDA7Zj1kKzh8MDtnPWF8MDtoPWErOHwwO2o9Y1toPj4yXXwwO2s9YSs0fDA7bD1jW2s+PjJd
fDA7bT0oKGp8MCk9PShsfDApKStifDA7Yj0oKG0mNTExfDApIT0wKSsobT4+PjkpfDA7bT1hKzE2
fDA7bj1jW20+PjJdfDA7bz1uPj4+OTtwPWI+Pj4wPG8+Pj4wP2I6bztxPWItcHwwO2lmKChifDAp
PT0ocHwwKSl7Y1ttPj4yXT1uLShiPDw5KTtpZigoYnwwKT09MCl7aT1kO3JldHVybn1uPWErMTJ8
MDtyPWF8MDtzPWI7dD1qO3U9bDt3aGlsZSgxKXt2PWNbdT4+Ml18MDt3PXUrNHwwO2Nbaz4+Ml09
dztkb3tpZigodHwwKT09KGNbbj4+Ml18MCkpe3g9Y1tyPj4yXXwwO2lmKHc+Pj4wPng+Pj4wKXt5
PXc7ej0oKHkteD4+MikrMXwwKS8tMnwwO0E9eisxfDA7Qj10LXl8MDtrXyh1KyhBPDwyKXwwLHd8
MCxCfDApO3k9dSsoQSsoQj4+Mik8PDIpfDA7Y1toPj4yXT15O2Nbaz4+Ml09KGNbaz4+Ml18MCkr
KHo8PDIpO0M9eTticmVha315PXQteD4+MTt6PSh5fDApPT0wPzE6eTt5PWtPKHo8PDIpfDA7Qj15
Kyh6Pj4+Mjw8Mil8MDtBPXkrKHo8PDIpfDA7aWYoKHd8MCk9PSh0fDApKXtEPUI7RT14fWVsc2V7
eD13O3o9Qjtkb3tpZigoenwwKT09MCl7Rj0wfWVsc2V7Y1t6Pj4yXT1jW3g+PjJdO0Y9en16PUYr
NHwwO3g9eCs0fDA7fXdoaWxlKCh4fDApIT0odHwwKSk7RD16O0U9Y1tyPj4yXXwwfWNbcj4+Ml09
eTtjW2s+PjJdPUI7Y1toPj4yXT1EO2Nbbj4+Ml09QTtpZigoRXwwKT09MCl7Qz1EO2JyZWFrfWtT
KEUpO0M9Y1toPj4yXXwwfWVsc2V7Qz10fX13aGlsZSgwKTtpZigoQ3wwKT09MCl7Rz0wfWVsc2V7
Y1tDPj4yXT12O0c9Y1toPj4yXXwwfXc9Rys0fDA7Y1toPj4yXT13O3g9cy0xfDA7aWYoKHh8MCk9
PTApe2JyZWFrfXM9eDt0PXc7dT1jW2s+PjJdfDB9aT1kO3JldHVybn11PWErMTJ8MDt0PXV8MDtz
PWNbdD4+Ml18MDtHPWF8MDthPXMtKGNbRz4+Ml18MCl8MDtDPWotbD4+MjtpZihxPj4+MDw9KChh
Pj4yKS1DfDApPj4+MCl7bD1xO0U9ajtqPXM7d2hpbGUoMSl7aWYoKGp8MCk9PShFfDApKXtIPTk3
MTticmVha31zPWtPKDQwOTYpfDA7aWYoKEV8MCk9PTApe0k9MH1lbHNle2NbRT4+Ml09cztJPWNb
aD4+Ml18MH1zPUkrNHwwO2NbaD4+Ml09cztEPWwtMXwwO2lmKChEfDApPT0wKXtKPXM7SD05NzI7
YnJlYWt9bD1EO0U9cztqPWNbdD4+Ml18MH1kb3tpZigoSHwwKT09OTcxKXtpZigobHwwKT09MCl7
Sj1qO0g9OTcyO2JyZWFrfUU9fm87ST1+YjtzPUU+Pj4wPkk+Pj4wP0U6STtJPWw7ZG97Y1tlPj4y
XT1rTyg0MDk2KXwwO2NQKGcsZSk7ST1JLTF8MDtLPWNbaD4+Ml18MDtMPShjW20+PjJdfDApKzUx
Mi0oKEstKGNbaz4+Ml18MCl8MCk9PTQpfDA7Y1ttPj4yXT1MO313aGlsZSgoSXwwKSE9MCk7TT1s
LTEtc3wwO049SztPPUx9fXdoaWxlKDApO2lmKChIfDApPT05NzIpe009cDtOPUo7Tz1jW20+PjJd
fDB9Y1ttPj4yXT1PLShNPDw5KTtpZigoTXwwKT09MCl7aT1kO3JldHVybn1lbHNle1A9TTtRPU59
ZG97Tj1jW2s+PjJdfDA7TT1jW04+PjJdfDA7Tz1OKzR8MDtjW2s+PjJdPU87ZG97aWYoKFF8MCk9
PShjW3Q+PjJdfDApKXtKPWNbRz4+Ml18MDtpZihPPj4+MD5KPj4+MCl7SD1PO0w9KChILUo+PjIp
KzF8MCkvLTJ8MDtLPUwrMXwwO2w9US1IfDA7a18oTisoSzw8Mil8MCxPfDAsbHwwKTtIPU4rKEsr
KGw+PjIpPDwyKXwwO2NbaD4+Ml09SDtjW2s+PjJdPShjW2s+PjJdfDApKyhMPDwyKTtSPUg7YnJl
YWt9SD1RLUo+PjE7TD0oSHwwKT09MD8xOkg7SD1rTyhMPDwyKXwwO2w9SCsoTD4+PjI8PDIpfDA7
Sz1IKyhMPDwyKXwwO2lmKChPfDApPT0oUXwwKSl7Uz1sO1Q9Sn1lbHNle0o9TztMPWw7ZG97aWYo
KEx8MCk9PTApe1U9MH1lbHNle2NbTD4+Ml09Y1tKPj4yXTtVPUx9TD1VKzR8MDtKPUorNHwwO313
aGlsZSgoSnwwKSE9KFF8MCkpO1M9TDtUPWNbRz4+Ml18MH1jW0c+PjJdPUg7Y1trPj4yXT1sO2Nb
aD4+Ml09UztjW3Q+PjJdPUs7aWYoKFR8MCk9PTApe1I9UzticmVha31rUyhUKTtSPWNbaD4+Ml18
MH1lbHNle1I9UX19d2hpbGUoMCk7aWYoKFJ8MCk9PTApe1Y9MH1lbHNle2NbUj4+Ml09TTtWPWNb
aD4+Ml18MH1RPVYrNHwwO2NbaD4+Ml09UTtQPVAtMXwwO313aGlsZSgoUHwwKSE9MCk7aT1kO3Jl
dHVybn1QPXA8PDk7UT1hPj4xO2E9cStDfDA7Vj1RPj4+MDxhPj4+MD9hOlE7UT1mKzEyfDA7Y1tR
Pj4yXT0wO2NbZisxNj4+Ml09dTtpZigoVnwwKT09MCl7Vz0wfWVsc2V7Vz1rTyhWPDwyKXwwfXU9
ZnwwO2NbdT4+Ml09VzthPVcrKEMtcDw8Mil8MDtDPWYrOHwwO2NbQz4+Ml09YTtSPWYrNHwwO2Nb
Uj4+Ml09YTtUPVcrKFY8PDIpfDA7Y1tRPj4yXT1UO1Y9cTtxPVc7Vz1hO1M9VDtUPWE7d2hpbGUo
MSl7YT1rTyg0MDk2KXwwO2Rve2lmKChXfDApPT0oU3wwKSl7aWYoVD4+PjA+cT4+PjApe1U9VDtP
PSgoVS1xPj4yKSsxfDApLy0yfDA7Tj1TLVV8MDtrXyhUKyhPPDwyKXwwLFR8MCxOfDApO1U9VCso
TysoTj4+Mik8PDIpfDA7Y1tDPj4yXT1VO049KGNbUj4+Ml18MCkrKE88PDIpfDA7Y1tSPj4yXT1O
O1g9VTtZPVM7Wj1xO189TjticmVha31OPVMtcT4+MTtVPShOfDApPT0wPzE6TjtOPWtPKFU8PDIp
fDA7Tz1OKyhVPj4+Mjw8Mil8MDtzPU4rKFU8PDIpfDA7aWYoKFR8MCk9PShTfDApKXskPU87YWE9
cX1lbHNle1U9VDtKPU87ZG97aWYoKEp8MCk9PTApe2FiPTB9ZWxzZXtjW0o+PjJdPWNbVT4+Ml07
YWI9Sn1KPWFiKzR8MDtVPVUrNHwwO313aGlsZSgoVXwwKSE9KFN8MCkpOyQ9SjthYT1jW3U+PjJd
fDB9Y1t1Pj4yXT1OO2NbUj4+Ml09TztjW0M+PjJdPSQ7Y1tRPj4yXT1zO2lmKChhYXwwKT09MCl7
WD0kO1k9cztaPU47Xz1PO2JyZWFrfWtTKGFhKTtYPSQ7WT1zO1o9TjtfPU99ZWxzZXtYPVc7WT1T
O1o9cTtfPVR9fXdoaWxlKDApO2lmKChYfDApPT0wKXthYz0wfWVsc2V7Y1tYPj4yXT1hO2FjPWNb
Qz4+Ml18MH1hZD1hYys0fDA7Y1tDPj4yXT1hZDtNPVYtMXwwO2lmKChNfDApPT0wKXticmVha31l
bHNle1Y9TTtxPVo7Vz1hZDtTPVk7VD1ffX1pZigocHwwKSE9MCl7Xz1wO3A9Y1trPj4yXXwwO1Q9
YWQ7YWQ9WTtZPVo7d2hpbGUoMSl7ZG97aWYoKFR8MCk9PShhZHwwKSl7Wj1jW1I+PjJdfDA7aWYo
Wj4+PjA+WT4+PjApe1M9WjtXPSgoUy1ZPj4yKSsxfDApLy0yfDA7cT1aKyhXPDwyKXwwO1Y9YWQt
U3wwO2tfKHF8MCxafDAsVnwwKTtTPVorKFcrKFY+PjIpPDwyKXwwO2NbQz4+Ml09UztjW1I+PjJd
PXE7YWU9UzthZj1hZDthZz1ZO2JyZWFrfVM9YWQtWT4+MTtxPShTfDApPT0wPzE6UztTPWtPKHE8
PDIpfDA7Vj1TKyhxPj4+Mjw8Mil8MDtXPVMrKHE8PDIpfDA7aWYoKFp8MCk9PShhZHwwKSl7YWg9
VjthaT1ZfWVsc2V7cT1aO1o9Vjtkb3tpZigoWnwwKT09MCl7YWo9MH1lbHNle2NbWj4+Ml09Y1tx
Pj4yXTthaj1afVo9YWorNHwwO3E9cSs0fDA7fXdoaWxlKChxfDApIT0oYWR8MCkpO2FoPVo7YWk9
Y1t1Pj4yXXwwfWNbdT4+Ml09UztjW1I+PjJdPVY7Y1tDPj4yXT1haDtjW1E+PjJdPVc7aWYoKGFp
fDApPT0wKXthZT1haDthZj1XO2FnPVM7YnJlYWt9a1MoYWkpO2FlPWFoO2FmPVc7YWc9U31lbHNl
e2FlPVQ7YWY9YWQ7YWc9WX19d2hpbGUoMCk7aWYoKGFlfDApPT0wKXthaz0wfWVsc2V7Y1thZT4+
Ml09Y1twPj4yXTthaz1jW0M+PjJdfDB9YT1hays0fDA7Y1tDPj4yXT1hO3E9KGNbaz4+Ml18MCkr
NHwwO2Nbaz4+Ml09cTtPPV8tMXwwO2lmKChPfDApPT0wKXticmVha31lbHNle189TztwPXE7VD1h
O2FkPWFmO1k9YWd9fX1hZz1jW2g+PjJdfDA7d2hpbGUoMSl7aWYoKGFnfDApPT0oY1trPj4yXXww
KSl7YnJlYWt9WT1hZy00fDA7Y1MoZixZKTthZz1ZfWY9Y1tHPj4yXXwwO2NbRz4+Ml09Y1t1Pj4y
XTtjW3U+PjJdPWY7Y1trPj4yXT1jW1I+PjJdO2NbUj4+Ml09YWc7Uj1jW2g+PjJdfDA7Y1toPj4y
XT1jW0M+PjJdO2NbQz4+Ml09UjtoPWNbdD4+Ml18MDtjW3Q+PjJdPWNbUT4+Ml07Y1tRPj4yXT1o
O2NbbT4+Ml09KGNbbT4+Ml18MCktUDtpZigoYWd8MCkhPShSfDApKXtjW0M+PjJdPVIrKH4oKFIt
NCsoLWFnfDApfDApPj4+Mik8PDIpfWlmKChmfDApPT0wKXtpPWQ7cmV0dXJufWtTKGYpO2k9ZDty
ZXR1cm59ZnVuY3Rpb24gY1IoYSxiLGMsZCxlLGYpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9
ZXwwO2Y9ZnwwO3ZhciBnPTAuMCxpPTAuMCxqPTAuMCxrPTAsbD0wLjAsbT0wLjAsbj0wLjAsbz0w
LHA9MDtnPStoW2I+PjNdO2k9K2hbYT4+M107aj0raFtjPj4zXTtmPWo8Zztkb3tpZihnPGkpe2lm
KGYpe2hbYT4+M109ajtoW2M+PjNdPWk7az0xO2w9aTticmVha31oW2E+PjNdPWc7aFtiPj4zXT1p
O209K2hbYz4+M107aWYobT49aSl7az0xO2w9bTticmVha31oW2I+PjNdPW07aFtjPj4zXT1pO2s9
MjtsPWl9ZWxzZXtpZighZil7az0wO2w9ajticmVha31oW2I+PjNdPWo7aFtjPj4zXT1nO209K2hb
Yj4+M107bj0raFthPj4zXTtpZihtPj1uKXtrPTE7bD1nO2JyZWFrfWhbYT4+M109bTtoW2I+PjNd
PW47az0yO2w9K2hbYz4+M119fXdoaWxlKDApO2c9K2hbZD4+M107ZG97aWYoZzxsKXtoW2M+PjNd
PWc7aFtkPj4zXT1sO2o9K2hbYz4+M107aT0raFtiPj4zXTtpZihqPj1pKXtvPWsrMXwwO2JyZWFr
fWhbYj4+M109ajtoW2M+PjNdPWk7aT0raFtiPj4zXTtqPStoW2E+PjNdO2lmKGk8ail7aFthPj4z
XT1pO2hbYj4+M109ajtvPWsrM3wwO2JyZWFrfWVsc2V7bz1rKzJ8MDticmVha319ZWxzZXtvPWt9
fXdoaWxlKDApO2w9K2hbZT4+M107Zz0raFtkPj4zXTtpZihsPj1nKXtwPW87cmV0dXJuIHB8MH1o
W2Q+PjNdPWw7aFtlPj4zXT1nO2c9K2hbZD4+M107bD0raFtjPj4zXTtpZihnPj1sKXtwPW8rMXww
O3JldHVybiBwfDB9aFtjPj4zXT1nO2hbZD4+M109bDtsPStoW2M+PjNdO2c9K2hbYj4+M107aWYo
bD49Zyl7cD1vKzJ8MDtyZXR1cm4gcHwwfWhbYj4+M109bDtoW2M+PjNdPWc7Zz0raFtiPj4zXTts
PStoW2E+PjNdO2lmKGc+PWwpe3A9byszfDA7cmV0dXJuIHB8MH1oW2E+PjNdPWc7aFtiPj4zXT1s
O3A9bys0fDA7cmV0dXJuIHB8MH1mdW5jdGlvbiBjUyhhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTAs
ZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxz
PTAsdD0wO2Q9YSs0fDA7ZT1jW2Q+PjJdfDA7Zj1hfDA7ZG97aWYoKGV8MCk9PShjW2Y+PjJdfDAp
KXtnPWErOHwwO2g9Y1tnPj4yXXwwO2k9YSsxMnwwO2o9Y1tpPj4yXXwwO2s9ajtpZihoPj4+MDxq
Pj4+MCl7aj1oO2w9KChrLWo+PjIpKzF8MCkvMnwwO209ai1lfDA7aj1oKyhsLShtPj4yKTw8Mil8
MDtrXyhqfDAsZXwwLG18MCk7Y1tkPj4yXT1qO2NbZz4+Ml09KGNbZz4+Ml18MCkrKGw8PDIpO249
ajticmVha31qPWstZT4+MTtrPShqfDApPT0wPzE6ajtqPWtPKGs8PDIpfDA7bD1qKygoayszfDAp
Pj4+Mjw8Mil8MDttPWorKGs8PDIpfDA7aWYoKGV8MCk9PShofDApKXtvPWw7cD1lfWVsc2V7az1l
O3E9bDtkb3tpZigocXwwKT09MCl7cj0wfWVsc2V7Y1txPj4yXT1jW2s+PjJdO3I9cX1xPXIrNHww
O2s9ays0fDA7fXdoaWxlKChrfDApIT0oaHwwKSk7bz1xO3A9Y1tmPj4yXXwwfWNbZj4+Ml09ajtj
W2Q+PjJdPWw7Y1tnPj4yXT1vO2NbaT4+Ml09bTtpZigocHwwKT09MCl7bj1sO2JyZWFrfWtTKHAp
O249Y1tkPj4yXXwwfWVsc2V7bj1lfX13aGlsZSgwKTtlPW4tNHwwO2lmKChlfDApPT0wKXtzPW47
dD1zLTR8MDtjW2Q+PjJdPXQ7cmV0dXJufWNbZT4+Ml09Y1tiPj4yXTtzPWNbZD4+Ml18MDt0PXMt
NHwwO2NbZD4+Ml09dDtyZXR1cm59ZnVuY3Rpb24gY1QoKXtjWzI0NDZdPTA7Y1syNDQ3XT0wO2Nb
MjQ0OF09MDthJCg3Miw5Nzg0LHV8MCl8MDtyZXR1cm59ZnVuY3Rpb24gY1UoYSxiLGMpe2E9YXww
O2I9YnwwO2M9Y3wwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MC4wLHE9MC4wLHI9MC4wLHM9MC4wLHQ9MC4wLHU9MCx2PTAsdz0wLHg9MC4wLHk9MCx6
PTAuMCxBPTAsQj0wLEM9MCxEPTAuMCxFPTAsRj0wLEc9MC4wLEg9MCxJPTAsSj0wLEs9MC4wLEw9
MCxNPTAsTj0wLjAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAuMCxVPTAsVj0wLFc9MC4wLFg9MCxZ
PTAuMDtkPWE7YT1iO0wxMzk3OndoaWxlKDEpe2I9YTtlPWEtOHwwO2Y9ZDtMMTM5OTp3aGlsZSgx
KXtnPWY7aT1iLWd8MDtqPWk+PjM7c3dpdGNoKGp8MCl7Y2FzZSAzOntrPTExMDI7YnJlYWsgTDEz
OTc7YnJlYWt9O2Nhc2UgNTp7az0xMTIyO2JyZWFrIEwxMzk3O2JyZWFrfTtjYXNlIDI6e2s9MTEw
MDticmVhayBMMTM5NzticmVha307Y2FzZSAwOmNhc2UgMTp7az0xMTg1O2JyZWFrIEwxMzk3O2Jy
ZWFrfTtjYXNlIDQ6e2s9MTExMDticmVhayBMMTM5NzticmVha307ZGVmYXVsdDp7fX1pZigoaXww
KTwyNDgpe2s9MTEyNDticmVhayBMMTM5N31sPShqfDApLzJ8MDttPWYrKGw8PDMpfDA7ZG97aWYo
KGl8MCk+Nzk5Mil7bj0oanwwKS80fDA7bz1jUihmLGYrKG48PDMpfDAsbSxmKyhuK2w8PDMpfDAs
ZSwwKXwwfWVsc2V7cD0raFttPj4zXTtxPStoW2Y+PjNdO3I9K2hbZT4+M107bj1yPHA7aWYocD49
cSl7aWYoIW4pe289MDticmVha31oW20+PjNdPXI7aFtlPj4zXT1wO3M9K2hbbT4+M107dD0raFtm
Pj4zXTtpZihzPj10KXtvPTE7YnJlYWt9aFtmPj4zXT1zO2hbbT4+M109dDtvPTI7YnJlYWt9aWYo
bil7aFtmPj4zXT1yO2hbZT4+M109cTtvPTE7YnJlYWt9aFtmPj4zXT1wO2hbbT4+M109cTtwPSto
W2U+PjNdO2lmKHA+PXEpe289MTticmVha31oW20+PjNdPXA7aFtlPj4zXT1xO289Mn19d2hpbGUo
MCk7cT0raFtmPj4zXTtwPStoW20+PjNdO2Rve2lmKHE8cCl7dT1lO3Y9b31lbHNle2w9ZTt3aGls
ZSgxKXt3PWwtOHwwO2lmKChmfDApPT0od3wwKSl7YnJlYWt9eD0raFt3Pj4zXTtpZih4PHApe2s9
MTE2MjticmVha31lbHNle2w9d319aWYoKGt8MCk9PTExNjIpe2s9MDtoW2Y+PjNdPXg7aFt3Pj4z
XT1xO3U9dzt2PW8rMXwwO2JyZWFrfWw9Zis4fDA7cj0raFtlPj4zXTtpZihxPHIpe3k9bH1lbHNl
e2o9bDt3aGlsZSgxKXtpZigoanwwKT09KGV8MCkpe2s9MTE5NzticmVhayBMMTM5N316PStoW2o+
PjNdO0E9ais4fDA7aWYocTx6KXticmVha31lbHNle2o9QX19aFtqPj4zXT1yO2hbZT4+M109ejt5
PUF9aWYoKHl8MCk9PShlfDApKXtrPTExOTI7YnJlYWsgTDEzOTd9ZWxzZXtCPWU7Qz15fXdoaWxl
KDEpe3Q9K2hbZj4+M107bD1DO3doaWxlKDEpe0Q9K2hbbD4+M107RT1sKzh8MDtpZih0Pj1EKXts
PUV9ZWxzZXtGPUI7YnJlYWt9fWRve0Y9Ri04fDA7Rz0raFtGPj4zXTt9d2hpbGUodDxHKTtpZihs
Pj4+MD49Rj4+PjApe2Y9bDtjb250aW51ZSBMMTM5OX1oW2w+PjNdPUc7aFtGPj4zXT1EO0I9RjtD
PUV9fX13aGlsZSgwKTtqPWYrOHwwO0wxNDM4OmRve2lmKGo+Pj4wPHU+Pj4wKXtpPXU7bj1qO0g9
djtJPW07d2hpbGUoMSl7cT0raFtJPj4zXTtKPW47d2hpbGUoMSl7Sz0raFtKPj4zXTtMPUorOHww
O2lmKEs8cSl7Sj1MfWVsc2V7TT1pO2JyZWFrfX1kb3tNPU0tOHwwO049K2hbTT4+M107fXdoaWxl
KE4+PXEpO2lmKEo+Pj4wPk0+Pj4wKXtPPUo7UD1IO1E9STticmVhayBMMTQzOH1oW0o+PjNdPU47
aFtNPj4zXT1LO2k9TTtuPUw7SD1IKzF8MDtJPShJfDApPT0oSnwwKT9NOkl9fWVsc2V7Tz1qO1A9
djtRPW19fXdoaWxlKDApO2Rve2lmKChPfDApPT0oUXwwKSl7Uj1QfWVsc2V7cT0raFtRPj4zXTtw
PStoW08+PjNdO2lmKHE+PXApe1I9UDticmVha31oW08+PjNdPXE7aFtRPj4zXT1wO1I9UCsxfDB9
fXdoaWxlKDApO2lmKChSfDApPT0wKXtTPWNWKGYsTywwKXwwO209Tys4fDA7aWYoY1YobSxhLDAp
fDApe2s9MTE3NDticmVha31pZihTKXtmPW07Y29udGludWV9fW09TztpZigobS1nfDApPj0oYi1t
fDApKXtrPTExNzg7YnJlYWt9Y1UoZixPLGMpO2Y9Tys4fDB9aWYoKGt8MCk9PTExNzQpe2s9MDtp
ZihTKXtrPTExODY7YnJlYWt9ZWxzZXtkPWY7YT1PO2NvbnRpbnVlfX1lbHNlIGlmKChrfDApPT0x
MTc4KXtrPTA7Y1UoTys4fDAsYSxjKTtkPWY7YT1PO2NvbnRpbnVlfX1pZigoa3wwKT09MTEwMil7
Tz1mKzh8MDtLPStoW08+PjNdO049K2hbZj4+M107RD0raFtlPj4zXTtkPUQ8SztpZihLPj1OKXtp
ZighZCl7cmV0dXJufWhbTz4+M109RDtoW2U+PjNdPUs7Rz0raFtPPj4zXTt6PStoW2Y+PjNdO2lm
KEc+PXope3JldHVybn1oW2Y+PjNdPUc7aFtPPj4zXT16O3JldHVybn1pZihkKXtoW2Y+PjNdPUQ7
aFtlPj4zXT1OO3JldHVybn1oW2Y+PjNdPUs7aFtPPj4zXT1OO0s9K2hbZT4+M107aWYoSz49Til7
cmV0dXJufWhbTz4+M109SztoW2U+PjNdPU47cmV0dXJufWVsc2UgaWYoKGt8MCk9PTExMjIpe2NS
KGYsZis4fDAsZisxNnwwLGYrMjR8MCxlLDApfDA7cmV0dXJufWVsc2UgaWYoKGt8MCk9PTExMjQp
e089ZisxNnwwO2Q9Zis4fDA7Tj0raFtkPj4zXTtLPStoW2Y+PjNdO0Q9K2hbTz4+M107Yz1EPE47
ZG97aWYoTjxLKXtpZihjKXtoW2Y+PjNdPUQ7aFtPPj4zXT1LO1Q9SzticmVha31oW2Y+PjNdPU47
aFtkPj4zXT1LO2lmKEQ+PUspe1Q9RDticmVha31oW2Q+PjNdPUQ7aFtPPj4zXT1LO1Q9S31lbHNl
e2lmKCFjKXtUPUQ7YnJlYWt9aFtkPj4zXT1EO2hbTz4+M109TjtpZihEPj1LKXtUPU47YnJlYWt9
aFtmPj4zXT1EO2hbZD4+M109SztUPU59fXdoaWxlKDApO2Q9ZisyNHwwO2lmKChkfDApPT0oYXww
KSl7cmV0dXJufWVsc2V7VT1PO1Y9ZDtXPVR9d2hpbGUoMSl7VD0raFtWPj4zXTtpZihUPFcpe2Q9
VTtPPVY7Tj1XO3doaWxlKDEpe2hbTz4+M109TjtpZigoZHwwKT09KGZ8MCkpe1g9ZjticmVha31j
PWQtOHwwO0s9K2hbYz4+M107aWYoVDxLKXtPPWQ7ZD1jO049S31lbHNle1g9ZDticmVha319aFtY
Pj4zXT1UfWQ9Vis4fDA7aWYoKGR8MCk9PShhfDApKXticmVha31OPStoW1Y+PjNdO1U9VjtWPWQ7
Vz1OfXJldHVybn1lbHNlIGlmKChrfDApPT0xMTk3KXtyZXR1cm59ZWxzZSBpZigoa3wwKT09MTEw
MCl7Vz0raFtlPj4zXTtOPStoW2Y+PjNdO2lmKFc+PU4pe3JldHVybn1oW2Y+PjNdPVc7aFtlPj4z
XT1OO3JldHVybn1lbHNlIGlmKChrfDApPT0xMTg1KXtyZXR1cm59ZWxzZSBpZigoa3wwKT09MTE4
Nil7cmV0dXJufWVsc2UgaWYoKGt8MCk9PTExOTIpe3JldHVybn1lbHNlIGlmKChrfDApPT0xMTEw
KXtrPWYrOHwwO1Y9ZisxNnwwO049K2hbaz4+M107Vz0raFtmPj4zXTtLPStoW1Y+PjNdO1U9SzxO
O2Rve2lmKE48Vyl7aWYoVSl7aFtmPj4zXT1LO2hbVj4+M109VztZPVc7YnJlYWt9aFtmPj4zXT1O
O2hbaz4+M109VztpZihLPj1XKXtZPUs7YnJlYWt9aFtrPj4zXT1LO2hbVj4+M109VztZPVd9ZWxz
ZXtpZighVSl7WT1LO2JyZWFrfWhbaz4+M109SztoW1Y+PjNdPU47aWYoSz49Vyl7WT1OO2JyZWFr
fWhbZj4+M109SztoW2s+PjNdPVc7WT1OfX13aGlsZSgwKTtOPStoW2U+PjNdO2lmKE4+PVkpe3Jl
dHVybn1oW1Y+PjNdPU47aFtlPj4zXT1ZO1k9K2hbVj4+M107Tj0raFtrPj4zXTtpZihZPj1OKXty
ZXR1cm59aFtrPj4zXT1ZO2hbVj4+M109TjtOPStoW2Y+PjNdO2lmKFk+PU4pe3JldHVybn1oW2Y+
PjNdPVk7aFtrPj4zXT1OO3JldHVybn19ZnVuY3Rpb24gY1YoYSxiLGMpe2E9YXwwO2I9YnwwO2M9
Y3wwO3ZhciBkPTAsZT0wLGY9MC4wLGc9MC4wLGk9MC4wLGo9MCxrPTAuMCxsPTAuMCxtPTAsbj0w
LjAsbz0wLjAscD0wLHE9MCxyPTAscz0wLjAsdD0wLHU9MCx2PTA7c3dpdGNoKGItYT4+M3wwKXtj
YXNlIDA6Y2FzZSAxOntkPTE7cmV0dXJuIGR8MH07Y2FzZSAzOntjPWErOHwwO2U9Yi04fDA7Zj0r
aFtjPj4zXTtnPStoW2E+PjNdO2k9K2hbZT4+M107aj1pPGY7aWYoZj49Zyl7aWYoIWope2Q9MTty
ZXR1cm4gZHwwfWhbYz4+M109aTtoW2U+PjNdPWY7az0raFtjPj4zXTtsPStoW2E+PjNdO2lmKGs+
PWwpe2Q9MTtyZXR1cm4gZHwwfWhbYT4+M109aztoW2M+PjNdPWw7ZD0xO3JldHVybiBkfDB9aWYo
ail7aFthPj4zXT1pO2hbZT4+M109ZztkPTE7cmV0dXJuIGR8MH1oW2E+PjNdPWY7aFtjPj4zXT1n
O2Y9K2hbZT4+M107aWYoZj49Zyl7ZD0xO3JldHVybiBkfDB9aFtjPj4zXT1mO2hbZT4+M109Zztk
PTE7cmV0dXJuIGR8MH07Y2FzZSAyOntlPWItOHwwO2c9K2hbZT4+M107Zj0raFthPj4zXTtpZihn
Pj1mKXtkPTE7cmV0dXJuIGR8MH1oW2E+PjNdPWc7aFtlPj4zXT1mO2Q9MTtyZXR1cm4gZHwwfTtj
YXNlIDQ6e2U9YSs4fDA7Yz1hKzE2fDA7aj1iLTh8MDtmPStoW2U+PjNdO2c9K2hbYT4+M107aT0r
aFtjPj4zXTttPWk8Zjtkb3tpZihmPGcpe2lmKG0pe2hbYT4+M109aTtoW2M+PjNdPWc7bj1nO2Jy
ZWFrfWhbYT4+M109ZjtoW2U+PjNdPWc7aWYoaT49Zyl7bj1pO2JyZWFrfWhbZT4+M109aTtoW2M+
PjNdPWc7bj1nfWVsc2V7aWYoIW0pe249aTticmVha31oW2U+PjNdPWk7aFtjPj4zXT1mO2lmKGk+
PWcpe249ZjticmVha31oW2E+PjNdPWk7aFtlPj4zXT1nO249Zn19d2hpbGUoMCk7Zj0raFtqPj4z
XTtpZihmPj1uKXtkPTE7cmV0dXJuIGR8MH1oW2M+PjNdPWY7aFtqPj4zXT1uO249K2hbYz4+M107
Zj0raFtlPj4zXTtpZihuPj1mKXtkPTE7cmV0dXJuIGR8MH1oW2U+PjNdPW47aFtjPj4zXT1mO2Y9
K2hbYT4+M107aWYobj49Zil7ZD0xO3JldHVybiBkfDB9aFthPj4zXT1uO2hbZT4+M109ZjtkPTE7
cmV0dXJuIGR8MH07Y2FzZSA1OntjUihhLGErOHwwLGErMTZ8MCxhKzI0fDAsYi04fDAsMCl8MDtk
PTE7cmV0dXJuIGR8MH07ZGVmYXVsdDp7ZT1hKzE2fDA7Yz1hKzh8MDtmPStoW2M+PjNdO249K2hb
YT4+M107Zz0raFtlPj4zXTtqPWc8Zjtkb3tpZihmPG4pe2lmKGope2hbYT4+M109ZztoW2U+PjNd
PW47bz1uO2JyZWFrfWhbYT4+M109ZjtoW2M+PjNdPW47aWYoZz49bil7bz1nO2JyZWFrfWhbYz4+
M109ZztoW2U+PjNdPW47bz1ufWVsc2V7aWYoIWope289ZzticmVha31oW2M+PjNdPWc7aFtlPj4z
XT1mO2lmKGc+PW4pe289ZjticmVha31oW2E+PjNdPWc7aFtjPj4zXT1uO289Zn19d2hpbGUoMCk7
Yz1hKzI0fDA7aWYoKGN8MCk9PShifDApKXtkPTE7cmV0dXJuIGR8MH1lbHNle3A9ZTtxPTA7cj1j
O3M9b313aGlsZSgxKXtvPStoW3I+PjNdO2lmKG88cyl7Yz1wO2U9cjtmPXM7d2hpbGUoMSl7aFtl
Pj4zXT1mO2lmKChjfDApPT0oYXwwKSl7dD1hO2JyZWFrfWo9Yy04fDA7bj0raFtqPj4zXTtpZihv
PG4pe2U9YztjPWo7Zj1ufWVsc2V7dD1jO2JyZWFrfX1oW3Q+PjNdPW87Yz1xKzF8MDtpZigoY3ww
KT09OCl7YnJlYWt9ZWxzZXt1PWN9fWVsc2V7dT1xfWM9cis4fDA7aWYoKGN8MCk9PShifDApKXtk
PTE7dj0xMjU2O2JyZWFrfWY9K2hbcj4+M107cD1yO3E9dTtyPWM7cz1mfWlmKCh2fDApPT0xMjU2
KXtyZXR1cm4gZHwwfWQ9KHIrOHwwKT09KGJ8MCk7cmV0dXJuIGR8MH19cmV0dXJuIDB9ZnVuY3Rp
b24gY1coYSl7YT1hfDA7dmFyIGI9MDthPShjWzQwMzhdfDApLTF8MDtjWzQwMzhdPWE7aWYoKGF8
MCkhPTApe3JldHVybn1iO3JldHVybn1mdW5jdGlvbiBjWChiKXtiPWJ8MDt2YXIgZD0wLGU9MCxm
PTA7ZG97aWYoKGFbMTYyODBdfDApPT0wKXtpZigoYmMoMTYyODApfDApPT0wKXticmVha31jWzI5
NjJdPTU0ODk7Yj0xO2Q9NTQ4OTtkb3tkPShhZyhkPj4+MzBeZCwxODEyNDMzMjUzKXwwKStifDA7
Y1sxMTg0OCsoYjw8Mik+PjJdPWQ7Yj1iKzF8MDt9d2hpbGUoYj4+PjA8NjI0KTtjWzM1ODZdPTB9
fXdoaWxlKDApO2I9Y1szNTg2XXwwO2Q9KChiKzF8MCk+Pj4wKSU2MjR8MDtlPTExODQ4KyhiPDwy
KXwwO2Y9Y1sxMTg0OCsoZDw8Mik+PjJdfDA7Y1tlPj4yXT0tKGYmMSkmLTE3Mjc0ODM2ODFeY1sx
MTg0OCsoKCgoYiszOTd8MCk+Pj4wKSU2MjR8MCk8PDIpPj4yXV4oZiYyMTQ3NDgzNjQ2fGNbZT4+
Ml0mLTIxNDc0ODM2NDgpPj4+MTtlPWNbMTE4NDgrKGNbMzU4Nl08PDIpPj4yXXwwO2Y9ZT4+PjEx
XmU7Y1szNTg2XT1kO2Q9Zjw8NyYtMTY1ODAzODY1Nl5mO2Y9ZDw8MTUmLTI3MjIzNjU0NF5kO3Jl
dHVybiBmPj4+MTheZnwwfWZ1bmN0aW9uIGNZKGEpe2E9YXwwO3ZhciBiPTA7YjtjWzQwMzhdPTE7
cmV0dXJufWZ1bmN0aW9uIGNaKGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGo9MCxr
PTAsbD0wO2I9aTtpPWkrMzJ8MDtkPWJ8MDtlPWIrOHwwO2Y9YisxNnwwO2c9YisyNHwwO2RxKDE1
MTM2LGNbbz4+Ml18MCwxNTE5Mik7Y1s0MDE0XT00NTAwO2NbNDAxNl09NDUyMDtjWzQwMTVdPTA7
aD1jWzExMjJdfDA7ZWsoMTYwNTYraHwwLDE1MTM2KTtjW2grMTYxMjg+PjJdPTA7Y1toKzE2MTMy
Pj4yXT0tMTtoPWNbdD4+Ml18MDtlcCgxNTA0MCk7Y1szNzYwXT00NjQ4O2NbMzc2OF09aDtpTihn
LDE1MDQ0KTtoPWlYKGcsMTUzOTIpfDA7aj1oO2lPKGcpO2NbMzc2OV09ajtjWzM3NzBdPTE1MjAw
O2FbMTUwODRdPShiMFtjWyhjW2g+PjJdfDApKzI4Pj4yXSYxMjddKGopfDApJjE7Y1szOTQ4XT00
NDA0O2NbMzk0OV09NDQyNDtqPWNbMTA5OF18MDtlaygxNTc5MitqfDAsMTUwNDApO2g9ais3Mnww
O2NbMTU3OTIraD4+Ml09MDtnPWorNzZ8MDtjWzE1NzkyK2c+PjJdPS0xO2s9Y1tyPj4yXXwwO2Vw
KDE1MDg4KTtjWzM3NzJdPTQ2NDg7Y1szNzgwXT1rO2lOKGYsMTUwOTIpO2s9aVgoZiwxNTM5Mil8
MDtsPWs7aU8oZik7Y1szNzgxXT1sO2NbMzc4Ml09MTUyMDg7YVsxNTEzMl09KGIwW2NbKGNbaz4+
Ml18MCkrMjg+PjJdJjEyN10obCl8MCkmMTtjWzM5OTJdPTQ0MDQ7Y1szOTkzXT00NDI0O2VrKDE1
OTY4K2p8MCwxNTA4OCk7Y1sxNTk2OCtoPj4yXT0wO2NbMTU5NjgrZz4+Ml09LTE7bD1jWyhjWyhj
WzM5OTJdfDApLTEyPj4yXXwwKSsxNTk5Mj4+Ml18MDtjWzM5NzBdPTQ0MDQ7Y1szOTcxXT00NDI0
O2VrKDE1ODgwK2p8MCxsKTtjWzE1ODgwK2g+PjJdPTA7Y1sxNTg4MCtnPj4yXT0tMTtjWyhjWyhj
WzQwMTRdfDApLTEyPj4yXXwwKSsxNjEyOD4+Ml09MTU3OTI7Zz0oY1soY1szOTkyXXwwKS0xMj4+
Ml18MCkrMTU5NzJ8MDtjW2c+PjJdPWNbZz4+Ml18ODE5MjtjWyhjWyhjWzM5OTJdfDApLTEyPj4y
XXwwKSsxNjA0MD4+Ml09MTU3OTI7YzMoMTQ5ODQsY1tvPj4yXXwwLDE1MjE2KTtjWzM5MjZdPTQ0
NTI7Y1szOTI4XT00NDcyO2NbMzkyN109MDtnPWNbMTExMF18MDtlaygxNTcwNCtnfDAsMTQ5ODQp
O2NbZysxNTc3Nj4+Ml09MDtjW2crMTU3ODA+PjJdPS0xO2c9Y1t0Pj4yXXwwO2V3KDE0ODg4KTtj
WzM3MjJdPTQ1NzY7Y1szNzMwXT1nO2lOKGUsMTQ4OTIpO2c9aVgoZSwxNTM4NCl8MDtoPWc7aU8o
ZSk7Y1szNzMxXT1oO2NbMzczMl09MTUyMjQ7YVsxNDkzMl09KGIwW2NbKGNbZz4+Ml18MCkrMjg+
PjJdJjEyN10oaCl8MCkmMTtjWzM4NTZdPTQzNTY7Y1szODU3XT00Mzc2O2g9Y1sxMDg2XXwwO2Vr
KDE1NDI0K2h8MCwxNDg4OCk7Zz1oKzcyfDA7Y1sxNTQyNCtnPj4yXT0wO2U9aCs3NnwwO2NbMTU0
MjQrZT4+Ml09LTE7bD1jW3I+PjJdfDA7ZXcoMTQ5MzYpO2NbMzczNF09NDU3NjtjWzM3NDJdPWw7
aU4oZCwxNDk0MCk7bD1pWChkLDE1Mzg0KXwwO2o9bDtpTyhkKTtjWzM3NDNdPWo7Y1szNzQ0XT0x
NTIzMjthWzE0OTgwXT0oYjBbY1soY1tsPj4yXXwwKSsyOD4+Ml0mMTI3XShqKXwwKSYxO2NbMzkw
MF09NDM1NjtjWzM5MDFdPTQzNzY7ZWsoMTU2MDAraHwwLDE0OTM2KTtjWzE1NjAwK2c+PjJdPTA7
Y1sxNTYwMCtlPj4yXT0tMTtqPWNbKGNbKGNbMzkwMF18MCktMTI+PjJdfDApKzE1NjI0Pj4yXXww
O2NbMzg3OF09NDM1NjtjWzM4NzldPTQzNzY7ZWsoMTU1MTIraHwwLGopO2NbMTU1MTIrZz4+Ml09
MDtjWzE1NTEyK2U+PjJdPS0xO2NbKGNbKGNbMzkyNl18MCktMTI+PjJdfDApKzE1Nzc2Pj4yXT0x
NTQyNDtlPShjWyhjWzM5MDBdfDApLTEyPj4yXXwwKSsxNTYwNHwwO2NbZT4+Ml09Y1tlPj4yXXw4
MTkyO2NbKGNbKGNbMzkwMF18MCktMTI+PjJdfDApKzE1NjcyPj4yXT0xNTQyNDtpPWI7cmV0dXJu
fWZ1bmN0aW9uIGNfKGEpe2E9YXwwO2V2KGF8MCk7cmV0dXJufWZ1bmN0aW9uIGMkKGEpe2E9YXww
O2V2KGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGMwKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9
MDtiMFtjWyhjW2I+PjJdfDApKzI0Pj4yXSYxMjddKGIpfDA7ZT1pWChkLDE1Mzg0KXwwO2Q9ZTtj
W2IrMzY+PjJdPWQ7YVtiKzQ0fDBdPShiMFtjWyhjW2U+PjJdfDApKzI4Pj4yXSYxMjddKGQpfDAp
JjE7cmV0dXJufWZ1bmN0aW9uIGMxKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MCxmPTAsZz0wLGg9
MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2I9aTtpPWkrMTZ8MDtkPWJ8MDtlPWIrOHwwO2Y9YSszNnww
O2c9YSs0MHwwO2g9ZHwwO2o9ZCs4fDA7az1kO2Q9YSszMnwwO0wxNjQyOndoaWxlKDEpe2E9Y1tm
Pj4yXXwwO2w9YiRbY1soY1thPj4yXXwwKSsyMD4+Ml0mMzFdKGEsY1tnPj4yXXwwLGgsaixlKXww
O2E9KGNbZT4+Ml18MCkta3wwO2lmKChhTShofDAsMSxhfDAsY1tkPj4yXXwwKXwwKSE9KGF8MCkp
e209LTE7bj0xMzA0O2JyZWFrfXN3aXRjaChsfDApe2Nhc2UgMjp7bT0tMTtuPTEzMDU7YnJlYWsg
TDE2NDI7YnJlYWt9O2Nhc2UgMTp7YnJlYWt9O2RlZmF1bHQ6e249MTMwMTticmVhayBMMTY0Mn19
fWlmKChufDApPT0xMzA0KXtpPWI7cmV0dXJuIG18MH1lbHNlIGlmKChufDApPT0xMzA1KXtpPWI7
cmV0dXJuIG18MH1lbHNlIGlmKChufDApPT0xMzAxKXttPSgoYUsoY1tkPj4yXXwwKXwwKSE9MCk8
PDMxPj4zMTtpPWI7cmV0dXJuIG18MH1yZXR1cm4gMH1mdW5jdGlvbiBjMihiLGQpe2I9YnwwO2Q9
ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxy
PTAscz0wLHQ9MCx1PTAsdj0wLHc9MDtlPWk7aT1pKzMyfDA7Zj1lfDA7Zz1lKzh8MDtoPWUrMTZ8
MDtqPWUrMjR8MDtrPShkfDApPT0tMTtMMTY1MTpkb3tpZighayl7Y1tnPj4yXT1kO2lmKChhW2Ir
NDR8MF0mMSkhPTApe2lmKChhTShnfDAsNCwxLGNbYiszMj4+Ml18MCl8MCk9PTEpe2JyZWFrfWVs
c2V7bD0tMX1pPWU7cmV0dXJuIGx8MH1tPWZ8MDtjW2g+PjJdPW07bj1nKzR8MDtvPWIrMzZ8MDtw
PWIrNDB8MDtxPWYrOHwwO3I9ZjtzPWIrMzJ8MDt0PWc7d2hpbGUoMSl7dT1jW28+PjJdfDA7dj1i
NltjWyhjW3U+PjJdfDApKzEyPj4yXSYzMV0odSxjW3A+PjJdfDAsdCxuLGosbSxxLGgpfDA7aWYo
KGNbaj4+Ml18MCk9PSh0fDApKXtsPS0xO3c9MTMyMDticmVha31pZigodnwwKT09Myl7dz0xMzEy
O2JyZWFrfXU9KHZ8MCk9PTE7aWYodj4+PjA+PTIpe2w9LTE7dz0xMzIyO2JyZWFrfXY9KGNbaD4+
Ml18MCktcnwwO2lmKChhTShtfDAsMSx2fDAsY1tzPj4yXXwwKXwwKSE9KHZ8MCkpe2w9LTE7dz0x
MzIxO2JyZWFrfWlmKHUpe3Q9dT9jW2o+PjJdfDA6dH1lbHNle2JyZWFrIEwxNjUxfX1pZigod3ww
KT09MTMyMSl7aT1lO3JldHVybiBsfDB9ZWxzZSBpZigod3wwKT09MTMyMil7aT1lO3JldHVybiBs
fDB9ZWxzZSBpZigod3wwKT09MTMxMil7aWYoKGFNKHR8MCwxLDEsY1tzPj4yXXwwKXwwKT09MSl7
YnJlYWt9ZWxzZXtsPS0xfWk9ZTtyZXR1cm4gbHwwfWVsc2UgaWYoKHd8MCk9PTEzMjApe2k9ZTty
ZXR1cm4gbHwwfX19d2hpbGUoMCk7bD1rPzA6ZDtpPWU7cmV0dXJuIGx8MH1mdW5jdGlvbiBjMyhi
LGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGo9MDtmPWk7aT1pKzh8MDtn
PWZ8MDtldyhifDApO2NbYj4+Ml09NDk3NjtjW2IrMzI+PjJdPWQ7Y1tiKzQwPj4yXT1lO2NbYis0
OD4+Ml09LTE7YVtiKzUyfDBdPTA7aU4oZyxiKzR8MCk7ZT1pWChnLDE1Mzg0KXwwO2Q9ZTtoPWIr
MzZ8MDtjW2g+PjJdPWQ7aj1iKzQ0fDA7Y1tqPj4yXT1iMFtjWyhjW2U+PjJdfDApKzI0Pj4yXSYx
MjddKGQpfDA7ZD1jW2g+PjJdfDA7YVtiKzUzfDBdPShiMFtjWyhjW2Q+PjJdfDApKzI4Pj4yXSYx
MjddKGQpfDApJjE7aWYoKGNbaj4+Ml18MCk8PTgpe2lPKGcpO2k9ZjtyZXR1cm59aFYoMTg0KTtp
TyhnKTtpPWY7cmV0dXJufWZ1bmN0aW9uIGM0KGEpe2E9YXwwO2V2KGF8MCk7cmV0dXJufWZ1bmN0
aW9uIGM1KGEpe2E9YXwwO2V2KGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGM2KGIsZCl7Yj1i
fDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2U9aVgoZCwxNTM4NCl8MDtkPWU7Zj1iKzM2fDA7Y1tm
Pj4yXT1kO2c9Yis0NHwwO2NbZz4+Ml09YjBbY1soY1tlPj4yXXwwKSsyND4+Ml0mMTI3XShkKXww
O2Q9Y1tmPj4yXXwwO2FbYis1M3wwXT0oYjBbY1soY1tkPj4yXXwwKSsyOD4+Ml0mMTI3XShkKXww
KSYxO2lmKChjW2c+PjJdfDApPD04KXtyZXR1cm59aFYoMTg0KTtyZXR1cm59ZnVuY3Rpb24gYzco
YSl7YT1hfDA7cmV0dXJuIGRhKGEsMCl8MH1mdW5jdGlvbiBjOChhKXthPWF8MDtyZXR1cm4gZGEo
YSwxKXwwfWZ1bmN0aW9uIGM5KGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxq
PTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtlPWk7aT1pKzMyfDA7Zj1lfDA7Zz1l
Kzh8MDtoPWUrMTZ8MDtqPWUrMjR8MDtrPWIrNTJ8MDtsPShhW2tdJjEpIT0wO2lmKChkfDApPT0t
MSl7aWYobCl7bT0tMTtpPWU7cmV0dXJuIG18MH1uPWNbYis0OD4+Ml18MDthW2tdPShufDApIT0t
MXwwO209bjtpPWU7cmV0dXJuIG18MH1uPWIrNDh8MDtMMTY5NDpkb3tpZihsKXtjW2g+PjJdPWNb
bj4+Ml07bz1jW2IrMzY+PjJdfDA7cD1mfDA7c3dpdGNoKGI2W2NbKGNbbz4+Ml18MCkrMTI+PjJd
JjMxXShvLGNbYis0MD4+Ml18MCxoLGgrNHwwLGoscCxmKzh8MCxnKXwwKXtjYXNlIDI6Y2FzZSAx
OnttPS0xO2k9ZTtyZXR1cm4gbXwwfTtjYXNlIDM6e2FbcF09Y1tuPj4yXSYyNTU7Y1tnPj4yXT1m
KzE7YnJlYWt9O2RlZmF1bHQ6e319bz1iKzMyfDA7d2hpbGUoMSl7cT1jW2c+PjJdfDA7aWYocT4+
PjA8PXA+Pj4wKXticmVhayBMMTY5NH1yPXEtMXwwO2NbZz4+Ml09cjtpZigoYkEoYVtyXXwwLGNb
bz4+Ml18MCl8MCk9PS0xKXttPS0xO2JyZWFrfX1pPWU7cmV0dXJuIG18MH19d2hpbGUoMCk7Y1tu
Pj4yXT1kO2Fba109MTttPWQ7aT1lO3JldHVybiBtfDB9ZnVuY3Rpb24gZGEoYixkKXtiPWJ8MDtk
PWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MDtlPWk7aT1pKzMyfDA7Zj1lfDA7Zz1lKzh8
MDtoPWUrMTZ8MDtqPWUrMjR8MDtrPWIrNTJ8MDtpZigoYVtrXSYxKSE9MCl7bD1iKzQ4fDA7bT1j
W2w+PjJdfDA7aWYoIWQpe249bTtpPWU7cmV0dXJuIG58MH1jW2w+PjJdPS0xO2Fba109MDtuPW07
aT1lO3JldHVybiBufDB9bT1jW2IrNDQ+PjJdfDA7az0obXwwKT4xP206MTtMMTcxNDpkb3tpZigo
a3wwKT4wKXttPWIrMzJ8MDtsPTA7d2hpbGUoMSl7bz1hXyhjW20+PjJdfDApfDA7aWYoKG98MCk9
PS0xKXtuPS0xO2JyZWFrfWFbZitsfDBdPW8mMjU1O2w9bCsxfDA7aWYoKGx8MCk+PShrfDApKXti
cmVhayBMMTcxNH19aT1lO3JldHVybiBufDB9fXdoaWxlKDApO0wxNzIxOmRve2lmKChhW2IrNTN8
MF0mMSk9PTApe2w9Yis0MHwwO209YiszNnwwO289ZnwwO3A9Zys0fDA7cT1iKzMyfDA7cj1rO0wx
NzIzOndoaWxlKDEpe3M9Y1tsPj4yXXwwO3Q9czt1PWNbdD4+Ml18MDt2PWNbdCs0Pj4yXXwwO3Q9
Y1ttPj4yXXwwO3c9ZityfDA7c3dpdGNoKGI2W2NbKGNbdD4+Ml18MCkrMTY+PjJdJjMxXSh0LHMs
byx3LGgsZyxwLGopfDApe2Nhc2UgMTp7YnJlYWt9O2Nhc2UgMjp7bj0tMTt4PTEzODA7YnJlYWsg
TDE3MjM7YnJlYWt9O2Nhc2UgMzp7eD0xMzY5O2JyZWFrIEwxNzIzO2JyZWFrfTtkZWZhdWx0Ont5
PXI7YnJlYWsgTDE3MjF9fXM9Y1tsPj4yXXwwO2Nbcz4+Ml09dTtjW3MrND4+Ml09djtpZigocnww
KT09OCl7bj0tMTt4PTEzNzk7YnJlYWt9dj1hXyhjW3E+PjJdfDApfDA7aWYoKHZ8MCk9PS0xKXtu
PS0xO3g9MTM4NTticmVha31hW3ddPXYmMjU1O3I9cisxfDB9aWYoKHh8MCk9PTEzNzkpe2k9ZTty
ZXR1cm4gbnwwfWVsc2UgaWYoKHh8MCk9PTEzODApe2k9ZTtyZXR1cm4gbnwwfWVsc2UgaWYoKHh8
MCk9PTEzODUpe2k9ZTtyZXR1cm4gbnwwfWVsc2UgaWYoKHh8MCk9PTEzNjkpe2NbZz4+Ml09YVtv
XXwwO3k9cjticmVha319ZWxzZXtjW2c+PjJdPWFbZnwwXXwwO3k9a319d2hpbGUoMCk7aWYoZCl7
ZD1jW2c+PjJdfDA7Y1tiKzQ4Pj4yXT1kO249ZDtpPWU7cmV0dXJuIG58MH1kPWIrMzJ8MDtiPXk7
d2hpbGUoMSl7aWYoKGJ8MCk8PTApe2JyZWFrfXk9Yi0xfDA7aWYoKGJBKGFbZit5fDBdfDAsY1tk
Pj4yXXwwKXwwKT09LTEpe249LTE7eD0xMzgyO2JyZWFrfWVsc2V7Yj15fX1pZigoeHwwKT09MTM4
Mil7aT1lO3JldHVybiBufDB9bj1jW2c+PjJdfDA7aT1lO3JldHVybiBufDB9ZnVuY3Rpb24gZGIo
YSl7YT1hfDA7ZW8oYXwwKTtyZXR1cm59ZnVuY3Rpb24gZGMoYSl7YT1hfDA7ZW8oYXwwKTtrUyhh
KTtyZXR1cm59ZnVuY3Rpb24gZGQoYSl7YT1hfDA7ZmcoMTU3OTIpfDA7ZmcoMTU4ODApfDA7Zmgo
MTU0MjQpfDA7ZmgoMTU1MTIpfDA7cmV0dXJufWZ1bmN0aW9uIGRlKGEpe2E9YXwwO3JldHVybn1m
dW5jdGlvbiBkZihhKXthPWF8MDtyZXR1cm59ZnVuY3Rpb24gZGcoYSl7YT1hfDA7dmFyIGI9MDti
PWErNHwwO0k9Y1tiPj4yXXwwLGNbYj4+Ml09SSsxLEk7cmV0dXJufWZ1bmN0aW9uIGRoKGEpe2E9
YXwwO3JldHVybiBjW2ErND4+Ml18MH1mdW5jdGlvbiBkaShhKXthPWF8MDtyZXR1cm4gY1thKzQ+
PjJdfDB9ZnVuY3Rpb24gZGooYSl7YT1hfDA7Y1thPj4yXT00MzA0O3JldHVybn1mdW5jdGlvbiBk
ayhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7Y1thPj4yXT1kO2NbYSs0Pj4yXT1iO3JldHVybn1m
dW5jdGlvbiBkbChhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MDtpZigoY1tiKzQ+PjJd
fDApIT0oYXwwKSl7ZT0wO3JldHVybiBlfDB9ZT0oY1tiPj4yXXwwKT09KGR8MCk7cmV0dXJuIGV8
MH1mdW5jdGlvbiBkbShiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTA7YjBbY1soY1tiPj4yXXwwKSsy
ND4+Ml0mMTI3XShiKXwwO2U9aVgoZCwxNTM5Mil8MDtkPWU7Y1tiKzM2Pj4yXT1kO2FbYis0NHww
XT0oYjBbY1soY1tlPj4yXXwwKSsyOD4+Ml0mMTI3XShkKXwwKSYxO3JldHVybn1mdW5jdGlvbiBk
bihhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49
MDtiPWk7aT1pKzE2fDA7ZD1ifDA7ZT1iKzh8MDtmPWErMzZ8MDtnPWErNDB8MDtoPWR8MDtqPWQr
OHwwO2s9ZDtkPWErMzJ8MDtMMTc2Nzp3aGlsZSgxKXthPWNbZj4+Ml18MDtsPWIkW2NbKGNbYT4+
Ml18MCkrMjA+PjJdJjMxXShhLGNbZz4+Ml18MCxoLGosZSl8MDthPShjW2U+PjJdfDApLWt8MDtp
ZigoYU0oaHwwLDEsYXwwLGNbZD4+Ml18MCl8MCkhPShhfDApKXttPS0xO249MTQxNDticmVha31z
d2l0Y2gobHwwKXtjYXNlIDI6e209LTE7bj0xNDE1O2JyZWFrIEwxNzY3O2JyZWFrfTtjYXNlIDE6
e2JyZWFrfTtkZWZhdWx0OntuPTE0MTE7YnJlYWsgTDE3Njd9fX1pZigobnwwKT09MTQxNSl7aT1i
O3JldHVybiBtfDB9ZWxzZSBpZigobnwwKT09MTQxMSl7bT0oKGFLKGNbZD4+Ml18MCl8MCkhPTAp
PDwzMT4+MzE7aT1iO3JldHVybiBtfDB9ZWxzZSBpZigobnwwKT09MTQxNCl7aT1iO3JldHVybiBt
fDB9cmV0dXJuIDB9ZnVuY3Rpb24gZHAoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAs
aD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTA7ZT1pO2k9aSszMnwwO2Y9ZXwwO2c9ZSs4fDA7aD1lKzE2fDA7aj1lKzI0fDA7az0oZHwwKT09
LTE7TDE3NzY6ZG97aWYoIWspe2FbZ109ZCYyNTU7aWYoKGFbYis0NHwwXSYxKSE9MCl7aWYoKGFN
KGd8MCwxLDEsY1tiKzMyPj4yXXwwKXwwKT09MSl7YnJlYWt9ZWxzZXtsPS0xfWk9ZTtyZXR1cm4g
bHwwfW09ZnwwO2NbaD4+Ml09bTtuPWcrMXwwO289YiszNnwwO3A9Yis0MHwwO3E9Zis4fDA7cj1m
O3M9YiszMnwwO3Q9Zzt3aGlsZSgxKXt1PWNbbz4+Ml18MDt2PWI2W2NbKGNbdT4+Ml18MCkrMTI+
PjJdJjMxXSh1LGNbcD4+Ml18MCx0LG4saixtLHEsaCl8MDtpZigoY1tqPj4yXXwwKT09KHR8MCkp
e2w9LTE7dz0xNDMzO2JyZWFrfWlmKCh2fDApPT0zKXt3PTE0MjI7YnJlYWt9dT0odnwwKT09MTtp
Zih2Pj4+MD49Mil7bD0tMTt3PTE0MzI7YnJlYWt9dj0oY1toPj4yXXwwKS1yfDA7aWYoKGFNKG18
MCwxLHZ8MCxjW3M+PjJdfDApfDApIT0odnwwKSl7bD0tMTt3PTE0MzA7YnJlYWt9aWYodSl7dD11
P2Nbaj4+Ml18MDp0fWVsc2V7YnJlYWsgTDE3NzZ9fWlmKCh3fDApPT0xNDMwKXtpPWU7cmV0dXJu
IGx8MH1lbHNlIGlmKCh3fDApPT0xNDIyKXtpZigoYU0odHwwLDEsMSxjW3M+PjJdfDApfDApPT0x
KXticmVha31lbHNle2w9LTF9aT1lO3JldHVybiBsfDB9ZWxzZSBpZigod3wwKT09MTQzMil7aT1l
O3JldHVybiBsfDB9ZWxzZSBpZigod3wwKT09MTQzMyl7aT1lO3JldHVybiBsfDB9fX13aGlsZSgw
KTtsPWs/MDpkO2k9ZTtyZXR1cm4gbHwwfWZ1bmN0aW9uIGRxKGIsZCxlKXtiPWJ8MDtkPWR8MDtl
PWV8MDt2YXIgZj0wLGc9MCxoPTAsaj0wO2Y9aTtpPWkrOHwwO2c9ZnwwO2VwKGJ8MCk7Y1tiPj4y
XT01MDQ4O2NbYiszMj4+Ml09ZDtjW2IrNDA+PjJdPWU7Y1tiKzQ4Pj4yXT0tMTthW2IrNTJ8MF09
MDtpTihnLGIrNHwwKTtlPWlYKGcsMTUzOTIpfDA7ZD1lO2g9YiszNnwwO2NbaD4+Ml09ZDtqPWIr
NDR8MDtjW2o+PjJdPWIwW2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10oZCl8MDtkPWNbaD4+Ml18
MDthW2IrNTN8MF09KGIwW2NbKGNbZD4+Ml18MCkrMjg+PjJdJjEyN10oZCl8MCkmMTtpZigoY1tq
Pj4yXXwwKTw9OCl7aU8oZyk7aT1mO3JldHVybn1oVigxODQpO2lPKGcpO2k9ZjtyZXR1cm59ZnVu
Y3Rpb24gZHIoYSl7YT1hfDA7ZW8oYXwwKTtyZXR1cm59ZnVuY3Rpb24gZHMoYSl7YT1hfDA7ZW8o
YXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZHQoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9
MCxnPTA7ZT1pWChkLDE1MzkyKXwwO2Q9ZTtmPWIrMzZ8MDtjW2Y+PjJdPWQ7Zz1iKzQ0fDA7Y1tn
Pj4yXT1iMFtjWyhjW2U+PjJdfDApKzI0Pj4yXSYxMjddKGQpfDA7ZD1jW2Y+PjJdfDA7YVtiKzUz
fDBdPShiMFtjWyhjW2Q+PjJdfDApKzI4Pj4yXSYxMjddKGQpfDApJjE7aWYoKGNbZz4+Ml18MCk8
PTgpe3JldHVybn1oVigxODQpO3JldHVybn1mdW5jdGlvbiBkdShhKXthPWF8MDtyZXR1cm4gZHgo
YSwwKXwwfWZ1bmN0aW9uIGR2KGEpe2E9YXwwO3JldHVybiBkeChhLDEpfDB9ZnVuY3Rpb24gZHco
YixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wO2U9aTtpPWkrMzJ8MDtmPWV8MDtnPWUrOHwwO2g9ZSsxNnwwO2o9ZSsy
NHwwO2s9Yis1MnwwO2w9KGFba10mMSkhPTA7aWYoKGR8MCk9PS0xKXtpZihsKXttPS0xO2k9ZTty
ZXR1cm4gbXwwfW49Y1tiKzQ4Pj4yXXwwO2Fba109KG58MCkhPS0xfDA7bT1uO2k9ZTtyZXR1cm4g
bXwwfW49Yis0OHwwO0wxODE5OmRve2lmKGwpe2FbaF09Y1tuPj4yXSYyNTU7bz1jW2IrMzY+PjJd
fDA7cD1mfDA7c3dpdGNoKGI2W2NbKGNbbz4+Ml18MCkrMTI+PjJdJjMxXShvLGNbYis0MD4+Ml18
MCxoLGgrMXwwLGoscCxmKzh8MCxnKXwwKXtjYXNlIDM6e2FbcF09Y1tuPj4yXSYyNTU7Y1tnPj4y
XT1mKzE7YnJlYWt9O2Nhc2UgMjpjYXNlIDE6e209LTE7aT1lO3JldHVybiBtfDB9O2RlZmF1bHQ6
e319bz1iKzMyfDA7d2hpbGUoMSl7cT1jW2c+PjJdfDA7aWYocT4+PjA8PXA+Pj4wKXticmVhayBM
MTgxOX1yPXEtMXwwO2NbZz4+Ml09cjtpZigoYkEoYVtyXXwwLGNbbz4+Ml18MCl8MCk9PS0xKXtt
PS0xO2JyZWFrfX1pPWU7cmV0dXJuIG18MH19d2hpbGUoMCk7Y1tuPj4yXT1kO2Fba109MTttPWQ7
aT1lO3JldHVybiBtfDB9ZnVuY3Rpb24gZHgoYixlKXtiPWJ8MDtlPWV8MDt2YXIgZj0wLGc9MCxo
PTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9
MCx4PTAseT0wLHo9MCxBPTA7Zj1pO2k9aSszMnwwO2c9ZnwwO2g9Zis4fDA7aj1mKzE2fDA7az1m
KzI0fDA7bD1iKzUyfDA7aWYoKGFbbF0mMSkhPTApe209Yis0OHwwO249Y1ttPj4yXXwwO2lmKCFl
KXtvPW47aT1mO3JldHVybiBvfDB9Y1ttPj4yXT0tMTthW2xdPTA7bz1uO2k9ZjtyZXR1cm4gb3ww
fW49Y1tiKzQ0Pj4yXXwwO2w9KG58MCk+MT9uOjE7TDE4Mzk6ZG97aWYoKGx8MCk+MCl7bj1iKzMy
fDA7bT0wO3doaWxlKDEpe3A9YV8oY1tuPj4yXXwwKXwwO2lmKChwfDApPT0tMSl7bz0tMTticmVh
a31hW2crbXwwXT1wJjI1NTttPW0rMXwwO2lmKChtfDApPj0obHwwKSl7YnJlYWsgTDE4Mzl9fWk9
ZjtyZXR1cm4gb3wwfX13aGlsZSgwKTtMMTg0Njpkb3tpZigoYVtiKzUzfDBdJjEpPT0wKXttPWIr
NDB8MDtuPWIrMzZ8MDtwPWd8MDtxPWgrMXwwO3I9YiszMnwwO3M9bDtMMTg0ODp3aGlsZSgxKXt0
PWNbbT4+Ml18MDt1PXQ7dj1jW3U+PjJdfDA7dz1jW3UrND4+Ml18MDt1PWNbbj4+Ml18MDt4PWcr
c3wwO3N3aXRjaChiNltjWyhjW3U+PjJdfDApKzE2Pj4yXSYzMV0odSx0LHAseCxqLGgscSxrKXww
KXtjYXNlIDE6e2JyZWFrfTtjYXNlIDI6e289LTE7eT0xNDkwO2JyZWFrIEwxODQ4O2JyZWFrfTtj
YXNlIDM6e3k9MTQ3OTticmVhayBMMTg0ODticmVha307ZGVmYXVsdDp7ej1zO2JyZWFrIEwxODQ2
fX10PWNbbT4+Ml18MDtjW3Q+PjJdPXY7Y1t0KzQ+PjJdPXc7aWYoKHN8MCk9PTgpe289LTE7eT0x
NDkxO2JyZWFrfXc9YV8oY1tyPj4yXXwwKXwwO2lmKCh3fDApPT0tMSl7bz0tMTt5PTE0OTU7YnJl
YWt9YVt4XT13JjI1NTtzPXMrMXwwfWlmKCh5fDApPT0xNDkwKXtpPWY7cmV0dXJuIG98MH1lbHNl
IGlmKCh5fDApPT0xNDk1KXtpPWY7cmV0dXJuIG98MH1lbHNlIGlmKCh5fDApPT0xNDc5KXthW2hd
PWFbcF18MDt6PXM7YnJlYWt9ZWxzZSBpZigoeXwwKT09MTQ5MSl7aT1mO3JldHVybiBvfDB9fWVs
c2V7YVtoXT1hW2d8MF18MDt6PWx9fXdoaWxlKDApO2Rve2lmKGUpe2w9YVtoXXwwO2NbYis0OD4+
Ml09bCYyNTU7QT1sfWVsc2V7bD1iKzMyfDA7az16O3doaWxlKDEpe2lmKChrfDApPD0wKXt5PTE0
ODY7YnJlYWt9aj1rLTF8MDtpZigoYkEoZFtnK2p8MF18MHwwLGNbbD4+Ml18MCl8MCk9PS0xKXtv
PS0xO3k9MTQ5NDticmVha31lbHNle2s9an19aWYoKHl8MCk9PTE0ODYpe0E9YVtoXXwwO2JyZWFr
fWVsc2UgaWYoKHl8MCk9PTE0OTQpe2k9ZjtyZXR1cm4gb3wwfX19d2hpbGUoMCk7bz1BJjI1NTtp
PWY7cmV0dXJuIG98MH1mdW5jdGlvbiBkeSgpe2NaKDApO2EkKDE0MiwxNjE0NHwwLHV8MCl8MDty
ZXR1cm59ZnVuY3Rpb24gZHooYSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1hKzR8MDtpZigoKEk9Y1ti
Pj4yXXwwLGNbYj4+Ml09SSsgLTEsSSl8MCkhPTApe2Q9MDtyZXR1cm4gZHwwfWJZW2NbKGNbYT4+
Ml18MCkrOD4+Ml0mNTExXShhKTtkPTE7cmV0dXJuIGR8MH1mdW5jdGlvbiBkQShhLGIpe2E9YXww
O2I9YnwwO3ZhciBkPTAsZT0wLGY9MDtjW2E+PjJdPTI1MzY7ZD1hKzR8MDtpZigoZHwwKT09MCl7
cmV0dXJufWE9azAoYnwwKXwwO2U9YSsxfDA7Zj1rUChhKzEzfDApfDA7Y1tmKzQ+PjJdPWE7Y1tm
Pj4yXT1hO2E9ZisxMnwwO2NbZD4+Ml09YTtjW2YrOD4+Ml09MDtrWShhfDAsYnwwLGUpfDA7cmV0
dXJufWZ1bmN0aW9uIGRCKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MDtjW2E+PjJdPTI1MzY7Yj1h
KzR8MDtkPShjW2I+PjJdfDApLTR8MDtpZigoKEk9Y1tkPj4yXXwwLGNbZD4+Ml09SSsgLTEsSSkt
MXwwKT49MCl7ZT1hO2tTKGUpO3JldHVybn1kPShjW2I+PjJdfDApLTEyfDA7aWYoKGR8MCk9PTAp
e2U9YTtrUyhlKTtyZXR1cm59a1QoZCk7ZT1hO2tTKGUpO3JldHVybn1mdW5jdGlvbiBkQyhhKXth
PWF8MDt2YXIgYj0wO2NbYT4+Ml09MjUzNjtiPWErNHwwO2E9KGNbYj4+Ml18MCktNHwwO2lmKCgo
ST1jW2E+PjJdfDAsY1thPj4yXT1JKyAtMSxJKS0xfDApPj0wKXtyZXR1cm59YT0oY1tiPj4yXXww
KS0xMnwwO2lmKChhfDApPT0wKXtyZXR1cm59a1QoYSk7cmV0dXJufWZ1bmN0aW9uIGREKGIsZCl7
Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2NbYj4+Ml09MjQ3MjtlPWIrNHwwO2lmKChlfDAp
PT0wKXtyZXR1cm59aWYoKGFbZF0mMSk9PTApe2Y9ZCsxfDB9ZWxzZXtmPWNbZCs4Pj4yXXwwfWQ9
azAoZnwwKXwwO2I9ZCsxfDA7Zz1rUChkKzEzfDApfDA7Y1tnKzQ+PjJdPWQ7Y1tnPj4yXT1kO2Q9
ZysxMnwwO2NbZT4+Ml09ZDtjW2crOD4+Ml09MDtrWShkfDAsZnwwLGIpfDA7cmV0dXJufWZ1bmN0
aW9uIGRFKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wO2NbYT4+Ml09MjQ3MjtkPWEr
NHwwO2lmKChkfDApPT0wKXtyZXR1cm59YT1rMChifDApfDA7ZT1hKzF8MDtmPWtQKGErMTN8MCl8
MDtjW2YrND4+Ml09YTtjW2Y+PjJdPWE7YT1mKzEyfDA7Y1tkPj4yXT1hO2NbZis4Pj4yXT0wO2tZ
KGF8MCxifDAsZSl8MDtyZXR1cm59ZnVuY3Rpb24gZEYoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0w
O2NbYT4+Ml09MjQ3MjtiPWErNHwwO2Q9KGNbYj4+Ml18MCktNHwwO2lmKCgoST1jW2Q+PjJdfDAs
Y1tkPj4yXT1JKyAtMSxJKS0xfDApPj0wKXtlPWE7a1MoZSk7cmV0dXJufWQ9KGNbYj4+Ml18MCkt
MTJ8MDtpZigoZHwwKT09MCl7ZT1hO2tTKGUpO3JldHVybn1rVChkKTtlPWE7a1MoZSk7cmV0dXJu
fWZ1bmN0aW9uIGRHKGEpe2E9YXwwO3ZhciBiPTA7Y1thPj4yXT0yNDcyO2I9YSs0fDA7YT0oY1ti
Pj4yXXwwKS00fDA7aWYoKChJPWNbYT4+Ml18MCxjW2E+PjJdPUkrIC0xLEkpLTF8MCk+PTApe3Jl
dHVybn1hPShjW2I+PjJdfDApLTEyfDA7aWYoKGF8MCk9PTApe3JldHVybn1rVChhKTtyZXR1cm59
ZnVuY3Rpb24gZEgoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wO2NbYT4+Ml09MjUzNjtiPWErNHww
O2Q9KGNbYj4+Ml18MCktNHwwO2lmKCgoST1jW2Q+PjJdfDAsY1tkPj4yXT1JKyAtMSxJKS0xfDAp
Pj0wKXtlPWE7a1MoZSk7cmV0dXJufWQ9KGNbYj4+Ml18MCktMTJ8MDtpZigoZHwwKT09MCl7ZT1h
O2tTKGUpO3JldHVybn1rVChkKTtlPWE7a1MoZSk7cmV0dXJufWZ1bmN0aW9uIGRJKGEpe2E9YXww
O2tTKGEpO3JldHVybn1mdW5jdGlvbiBkSihhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9
MCxmPTAsZz0wO2U9aTtpPWkrOHwwO2Y9ZXwwO2IzW2NbKGNbYT4+Ml18MCkrMTI+PjJdJjddKGYs
YSxiKTtpZigoY1tmKzQ+PjJdfDApIT0oY1tkKzQ+PjJdfDApKXtnPTA7aT1lO3JldHVybiBnfDB9
Zz0oY1tmPj4yXXwwKT09KGNbZD4+Ml18MCk7aT1lO3JldHVybiBnfDB9ZnVuY3Rpb24gZEsoYSxi
LGMpe2E9YXwwO2I9YnwwO2M9Y3wwO2I9YngoY3wwKXwwO2RaKGEsYixrMChifDApfDApO3JldHVy
bn1mdW5jdGlvbiBkTChiLGUsZil7Yj1ifDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7Zz1pO2g9ZjtqPWk7aT1pKzEyfDA7aT1pKzc+
PjM8PDM7az1lfDA7bD1jW2s+PjJdfDA7aWYoKGx8MCk9PTApe209YjtjW20+PjJdPWNbaD4+Ml07
Y1ttKzQ+PjJdPWNbaCs0Pj4yXTtjW20rOD4+Ml09Y1toKzg+PjJdO2skKGh8MCwwLDEyKTtpPWc7
cmV0dXJufW49ZFtoXXwwO2lmKChuJjF8MCk9PTApe289bj4+PjF9ZWxzZXtvPWNbZis0Pj4yXXww
fWlmKChvfDApPT0wKXtwPWx9ZWxzZXtkVChmLDEyOTYpfDA7cD1jW2s+PjJdfDB9az1jW2UrND4+
Ml18MDtiM1tjWyhjW2s+PjJdfDApKzI0Pj4yXSY3XShqLGsscCk7cD1hW2pdfDA7aWYoKHAmMSk9
PTApe3E9aisxfDB9ZWxzZXtxPWNbais4Pj4yXXwwfWs9cCYyNTU7aWYoKGsmMXwwKT09MCl7cj1r
Pj4+MX1lbHNle3I9Y1tqKzQ+PjJdfDB9ZFYoZixxLHIpfDA7ZFAoaik7bT1iO2NbbT4+Ml09Y1to
Pj4yXTtjW20rND4+Ml09Y1toKzQ+PjJdO2NbbSs4Pj4yXT1jW2grOD4+Ml07ayQoaHwwLDAsMTIp
O2k9ZztyZXR1cm59ZnVuY3Rpb24gZE0oYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAs
Zj0wLGc9MDtlPWk7aT1pKzMyfDA7Zj1iO2I9aTtpPWkrOHwwO2NbYj4+Ml09Y1tmPj4yXTtjW2Ir
ND4+Ml09Y1tmKzQ+PjJdO2Y9ZXwwO2c9ZSsxNnwwO2RaKGcsZCxrMChkfDApfDApO2RMKGYsYixn
KTtkRChhfDAsZik7ZFAoZik7ZFAoZyk7Y1thPj4yXT00NTQ0O2c9YjtiPWErOHwwO2E9Y1tnKzQ+
PjJdfDA7Y1tiPj4yXT1jW2c+PjJdO2NbYis0Pj4yXT1hO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZE4o
YSl7YT1hfDA7ZEcoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZE8oYSl7YT1hfDA7ZEcoYXww
KTtyZXR1cm59ZnVuY3Rpb24gZFAoYil7Yj1ifDA7aWYoKGFbYl0mMSk9PTApe3JldHVybn1rUyhj
W2IrOD4+Ml18MCk7cmV0dXJufWZ1bmN0aW9uIGRRKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxm
PTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7ZT1rMChkfDApfDA7Zj1iO2c9YjtoPWFbZ118MDtp
ZigoaCYxKT09MCl7aT0xMDtqPWh9ZWxzZXtoPWNbYj4+Ml18MDtpPShoJi0yKS0xfDA7aj1oJjI1
NX1pZihpPj4+MDxlPj4+MCl7aD1qJjI1NTtpZigoaCYxfDApPT0wKXtrPWg+Pj4xfWVsc2V7az1j
W2IrND4+Ml18MH1kMChiLGksZS1pfDAsaywwLGssZSxkKTtyZXR1cm4gYnwwfWlmKChqJjEpPT0w
KXtsPWYrMXwwfWVsc2V7bD1jW2IrOD4+Ml18MH1rXyhsfDAsZHwwLGV8MCk7YVtsK2V8MF09MDtp
ZigoYVtnXSYxKT09MCl7YVtnXT1lPDwxJjI1NTtyZXR1cm4gYnwwfWVsc2V7Y1tiKzQ+PjJdPWU7
cmV0dXJuIGJ8MH1yZXR1cm4gMH1mdW5jdGlvbiBkUihiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7
dmFyIGY9MCxnPTAsaD0wLGk9MDtmPWI7Zz1hW2ZdfDA7aD1nJjI1NTtpZigoaCYxfDApPT0wKXtp
PWg+Pj4xfWVsc2V7aT1jW2IrND4+Ml18MH1pZihpPj4+MDxkPj4+MCl7aD1kLWl8MDtkUyhiLGgs
ZSl8MDtyZXR1cm59aWYoKGcmMSk9PTApe2FbYisxK2R8MF09MDthW2ZdPWQ8PDEmMjU1O3JldHVy
bn1lbHNle2FbKGNbYis4Pj4yXXwwKStkfDBdPTA7Y1tiKzQ+PjJdPWQ7cmV0dXJufX1mdW5jdGlv
biBkUyhiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0w
LGw9MDtpZigoZHwwKT09MCl7cmV0dXJuIGJ8MH1mPWI7Zz1hW2ZdfDA7aWYoKGcmMSk9PTApe2g9
MTA7aT1nfWVsc2V7Zz1jW2I+PjJdfDA7aD0oZyYtMiktMXwwO2k9ZyYyNTV9Zz1pJjI1NTtpZigo
ZyYxfDApPT0wKXtqPWc+Pj4xfWVsc2V7aj1jW2IrND4+Ml18MH1pZigoaC1qfDApPj4+MDxkPj4+
MCl7ZDEoYixoLGQtaCtqfDAsaixqLDAsMCk7az1hW2ZdfDB9ZWxzZXtrPWl9aWYoKGsmMSk9PTAp
e2w9YisxfDB9ZWxzZXtsPWNbYis4Pj4yXXwwfWskKGwranwwLGV8MCxkfDApO2U9aitkfDA7aWYo
KGFbZl0mMSk9PTApe2FbZl09ZTw8MSYyNTV9ZWxzZXtjW2IrND4+Ml09ZX1hW2wrZXwwXT0wO3Jl
dHVybiBifDB9ZnVuY3Rpb24gZFQoYSxiKXthPWF8MDtiPWJ8MDtyZXR1cm4gZFYoYSxiLGswKGJ8
MCl8MCl8MH1mdW5jdGlvbiBkVShiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAs
aT0wLGo9MCxrPTAsbD0wLG09MDtlPWI7Zj1hW2VdfDA7aWYoKGYmMSk9PTApe2c9KGYmMjU1KT4+
PjE7aD0xMH1lbHNle2c9Y1tiKzQ+PjJdfDA7aD0oY1tiPj4yXSYtMiktMXwwfWlmKChnfDApPT0o
aHwwKSl7ZDEoYixoLDEsaCxoLDAsMCk7aT1hW2VdfDB9ZWxzZXtpPWZ9aWYoKGkmMSk9PTApe2Fb
ZV09KGc8PDEpKzImMjU1O2o9YisxfDA7az1nKzF8MDtsPWorZ3wwO2FbbF09ZDttPWora3wwO2Fb
bV09MDtyZXR1cm59ZWxzZXtlPWNbYis4Pj4yXXwwO2k9ZysxfDA7Y1tiKzQ+PjJdPWk7aj1lO2s9
aTtsPWorZ3wwO2FbbF09ZDttPWora3wwO2FbbV09MDtyZXR1cm59fWZ1bmN0aW9uIGRWKGIsZCxl
KXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTA7Zj1iO2c9YVtm
XXwwO2lmKChnJjEpPT0wKXtoPTEwO2k9Z31lbHNle2c9Y1tiPj4yXXwwO2g9KGcmLTIpLTF8MDtp
PWcmMjU1fWc9aSYyNTU7aWYoKGcmMXwwKT09MCl7aj1nPj4+MX1lbHNle2o9Y1tiKzQ+PjJdfDB9
aWYoKGgtanwwKT4+PjA8ZT4+PjApe2QwKGIsaCxlLWgranwwLGosaiwwLGUsZCk7cmV0dXJuIGJ8
MH1pZigoZXwwKT09MCl7cmV0dXJuIGJ8MH1pZigoaSYxKT09MCl7az1iKzF8MH1lbHNle2s9Y1ti
Kzg+PjJdfDB9aT1rK2p8MDtrWShpfDAsZHwwLGUpfDA7ZD1qK2V8MDtpZigoYVtmXSYxKT09MCl7
YVtmXT1kPDwxJjI1NX1lbHNle2NbYis0Pj4yXT1kfWFbaytkfDBdPTA7cmV0dXJuIGJ8MH1mdW5j
dGlvbiBkVyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTA7
ZTtpZigoY1thPj4yXXwwKT09MSl7ZG97YVUoOTczNiw5NzI4KXwwO313aGlsZSgoY1thPj4yXXww
KT09MSl9aWYoKGNbYT4+Ml18MCkhPTApe2Y7cmV0dXJufWNbYT4+Ml09MTtnO2JZW2QmNTExXShi
KTtoO2NbYT4+Ml09LTE7aTticyg5NzM2KXwwO3JldHVybn1mdW5jdGlvbiBkWChhKXthPWF8MDth
PWJPKDgpfDA7ZEEoYSwzNjApO2NbYT4+Ml09MjUwNDtibChhfDAsODIwOCwzMil9ZnVuY3Rpb24g
ZFkoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wO2U9ZDtpZigoYVtlXSYxKT09
MCl7Zj1iO2NbZj4+Ml09Y1tlPj4yXTtjW2YrND4+Ml09Y1tlKzQ+PjJdO2NbZis4Pj4yXT1jW2Ur
OD4+Ml07cmV0dXJufWU9Y1tkKzg+PjJdfDA7Zj1jW2QrND4+Ml18MDtpZigoZnwwKT09LTEpe2RY
KDApfWlmKGY+Pj4wPDExKXthW2JdPWY8PDEmMjU1O2c9YisxfDB9ZWxzZXtkPWYrMTYmLTE2O2g9
a08oZCl8MDtjW2IrOD4+Ml09aDtjW2I+PjJdPWR8MTtjW2IrND4+Ml09ZjtnPWh9a1koZ3wwLGV8
MCxmKXwwO2FbZytmfDBdPTA7cmV0dXJufWZ1bmN0aW9uIGRaKGIsZCxlKXtiPWJ8MDtkPWR8MDtl
PWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wO2lmKChlfDApPT0tMSl7ZFgoMCl9aWYoZT4+PjA8MTEp
e2FbYl09ZTw8MSYyNTU7Zj1iKzF8MDtrWShmfDAsZHwwLGUpfDA7Zz1mK2V8MDthW2ddPTA7cmV0
dXJufWVsc2V7aD1lKzE2Ji0xNjtpPWtPKGgpfDA7Y1tiKzg+PjJdPWk7Y1tiPj4yXT1ofDE7Y1ti
KzQ+PjJdPWU7Zj1pO2tZKGZ8MCxkfDAsZSl8MDtnPWYrZXwwO2FbZ109MDtyZXR1cm59fWZ1bmN0
aW9uIGRfKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTA7aWYoKGR8MCk9
PS0xKXtkWCgwKX1pZihkPj4+MDwxMSl7YVtiXT1kPDwxJjI1NTtmPWIrMXwwfWVsc2V7Zz1kKzE2
Ji0xNjtoPWtPKGcpfDA7Y1tiKzg+PjJdPWg7Y1tiPj4yXT1nfDE7Y1tiKzQ+PjJdPWQ7Zj1ofWsk
KGZ8MCxlfDAsZHwwKTthW2YrZHwwXT0wO3JldHVybn1mdW5jdGlvbiBkJChiLGQpe2I9YnwwO2Q9
ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxx
PTAscj0wO2lmKChkfDApPT0tMSl7ZFgoMCl9ZT1iO2Y9YjtnPWFbZl18MDtpZigoZyYxKT09MCl7
aD0xMDtpPWd9ZWxzZXtnPWNbYj4+Ml18MDtoPShnJi0yKS0xfDA7aT1nJjI1NX1nPWkmMjU1O2lm
KChnJjF8MCk9PTApe2o9Zz4+PjF9ZWxzZXtqPWNbYis0Pj4yXXwwfWc9aj4+PjA+ZD4+PjA/ajpk
O2lmKGc+Pj4wPDExKXtrPTExfWVsc2V7az1nKzE2Ji0xNn1nPWstMXwwO2lmKChnfDApPT0oaHww
KSl7cmV0dXJufWlmKChnfDApPT0xMCl7bD1lKzF8MDttPWNbYis4Pj4yXXwwO249MTtvPTB9ZWxz
ZXtpZihnPj4+MD5oPj4+MCl7cD1rTyhrKXwwfWVsc2V7cD1rTyhrKXwwfWg9aSYxO2lmKGg8PDI0
Pj4yND09MCl7cT1lKzF8MH1lbHNle3E9Y1tiKzg+PjJdfDB9bD1wO209cTtuPWg8PDI0Pj4yNCE9
MDtvPTF9aD1pJjI1NTtpZigoaCYxfDApPT0wKXtyPWg+Pj4xfWVsc2V7cj1jW2IrND4+Ml18MH1o
PXIrMXwwO2tZKGx8MCxtfDAsaCl8MDtpZihuKXtrUyhtKX1pZihvKXtjW2I+PjJdPWt8MTtjW2Ir
ND4+Ml09ajtjW2IrOD4+Ml09bDtyZXR1cm59ZWxzZXthW2ZdPWo8PDEmMjU1O3JldHVybn19ZnVu
Y3Rpb24gZDAoYixkLGUsZixnLGgsaSxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDtpPWl8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MDtpZigoLTMtZHwwKT4+PjA8ZT4+PjApe2RYKDApfWlmKChhW2JdJjEpPT0wKXtrPWIr
MXwwfWVsc2V7az1jW2IrOD4+Ml18MH1kb3tpZihkPj4+MDwyMTQ3NDgzNjMxKXtsPWUrZHwwO209
ZDw8MTtuPWw+Pj4wPG0+Pj4wP206bDtpZihuPj4+MDwxMSl7bz0xMTticmVha31vPW4rMTYmLTE2
fWVsc2V7bz0tMn19d2hpbGUoMCk7ZT1rTyhvKXwwO2lmKChnfDApIT0wKXtrWShlfDAsa3wwLGcp
fDB9aWYoKGl8MCkhPTApe249ZStnfDA7a1kobnwwLGp8MCxpKXwwfWo9Zi1ofDA7aWYoKGp8MCkh
PShnfDApKXtmPWotZ3wwO249ZSsoaStnKXwwO2w9aysoaCtnKXwwO2tZKG58MCxsfDAsZil8MH1p
ZigoZHwwKT09MTApe3A9Yis4fDA7Y1twPj4yXT1lO3E9b3wxO3I9YnwwO2Nbcj4+Ml09cTtzPWor
aXwwO3Q9Yis0fDA7Y1t0Pj4yXT1zO3U9ZStzfDA7YVt1XT0wO3JldHVybn1rUyhrKTtwPWIrOHww
O2NbcD4+Ml09ZTtxPW98MTtyPWJ8MDtjW3I+PjJdPXE7cz1qK2l8MDt0PWIrNHwwO2NbdD4+Ml09
czt1PWUrc3wwO2FbdV09MDtyZXR1cm59ZnVuY3Rpb24gZDEoYixkLGUsZixnLGgsaSl7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7dmFyIGo9MCxrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTA7aWYoKC0zLWR8MCk+Pj4wPGU+Pj4wKXtkWCgwKX1pZigoYVtiXSYxKT09
MCl7aj1iKzF8MH1lbHNle2o9Y1tiKzg+PjJdfDB9ZG97aWYoZD4+PjA8MjE0NzQ4MzYzMSl7az1l
K2R8MDtsPWQ8PDE7bT1rPj4+MDxsPj4+MD9sOms7aWYobT4+PjA8MTEpe249MTE7YnJlYWt9bj1t
KzE2Ji0xNn1lbHNle249LTJ9fXdoaWxlKDApO2U9a08obil8MDtpZigoZ3wwKSE9MCl7a1koZXww
LGp8MCxnKXwwfW09Zi1ofDA7aWYoKG18MCkhPShnfDApKXtmPW0tZ3wwO209ZSsoaStnKXwwO2k9
aisoaCtnKXwwO2tZKG18MCxpfDAsZil8MH1pZigoZHwwKT09MTApe289Yis4fDA7Y1tvPj4yXT1l
O3A9bnwxO3E9YnwwO2NbcT4+Ml09cDtyZXR1cm59a1Moaik7bz1iKzh8MDtjW28+PjJdPWU7cD1u
fDE7cT1ifDA7Y1txPj4yXT1wO3JldHVybn1mdW5jdGlvbiBkMihhLGIpe2E9YXwwO2I9YnwwO3Jl
dHVybn1mdW5jdGlvbiBkMyhhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7cmV0dXJuIGF8MH1mdW5j
dGlvbiBkNChhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBkNShhKXthPWF8MDtyZXR1cm4gMH1m
dW5jdGlvbiBkNihhKXthPWF8MDtyZXR1cm4tMXwwfWZ1bmN0aW9uIGQ3KGEsYil7YT1hfDA7Yj1i
fDA7cmV0dXJuLTF8MH1mdW5jdGlvbiBkOChhLGIpe2E9YXwwO2I9YnwwO3JldHVybi0xfDB9ZnVu
Y3Rpb24gZDkoYSxiKXthPWF8MDtiPWJ8MDtyZXR1cm59ZnVuY3Rpb24gZWEoYSxiLGMpe2E9YXww
O2I9YnwwO2M9Y3wwO3JldHVybiBhfDB9ZnVuY3Rpb24gZWIoYSxiLGQsZSxmLGcpe2E9YXwwO2I9
YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2c9YTtjW2c+PjJdPTA7Y1tnKzQ+PjJdPTA7Zz1h
Kzh8MDtjW2c+PjJdPS0xO2NbZys0Pj4yXT0tMTtyZXR1cm59ZnVuY3Rpb24gZWMoYSxiLGQsZSl7
YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7ZT1pO2I9ZDtkPWk7aT1pKzE2fDA7Y1tkPj4yXT1jW2I+
PjJdO2NbZCs0Pj4yXT1jW2IrND4+Ml07Y1tkKzg+PjJdPWNbYis4Pj4yXTtjW2QrMTI+PjJdPWNb
YisxMj4+Ml07Yj1hO2NbYj4+Ml09MDtjW2IrND4+Ml09MDtiPWErOHwwO2NbYj4+Ml09LTE7Y1ti
KzQ+PjJdPS0xO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZWQoYSxiLGQsZSxmLGcpe2E9YXwwO2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2c9YTtjW2c+PjJdPTA7Y1tnKzQ+PjJdPTA7Zz1hKzh8
MDtjW2c+PjJdPS0xO2NbZys0Pj4yXT0tMTtyZXR1cm59ZnVuY3Rpb24gZWUoYil7Yj1ifDA7aWYo
KGFbYl0mMSk9PTApe3JldHVybn1rUyhjW2IrOD4+Ml18MCk7cmV0dXJufWZ1bmN0aW9uIGVmKGEs
Yil7YT1hfDA7Yj1ifDA7cmV0dXJuIGVnKGEsYixrbShiKXwwKXwwfWZ1bmN0aW9uIGVnKGIsZCxl
KXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTA7Zj1iO2c9YVtm
XXwwO2lmKChnJjEpPT0wKXtoPTE7aT1nfWVsc2V7Zz1jW2I+PjJdfDA7aD0oZyYtMiktMXwwO2k9
ZyYyNTV9aWYoaD4+PjA8ZT4+PjApe2c9aSYyNTU7aWYoKGcmMXwwKT09MCl7aj1nPj4+MX1lbHNl
e2o9Y1tiKzQ+PjJdfDB9ZUEoYixoLGUtaHwwLGosMCxqLGUsZCk7cmV0dXJuIGJ8MH1pZigoaSYx
KT09MCl7az1iKzR8MH1lbHNle2s9Y1tiKzg+PjJdfDB9a28oayxkLGUpfDA7Y1trKyhlPDwyKT4+
Ml09MDtpZigoYVtmXSYxKT09MCl7YVtmXT1lPDwxJjI1NTtyZXR1cm4gYnwwfWVsc2V7Y1tiKzQ+
PjJdPWU7cmV0dXJuIGJ8MH1yZXR1cm4gMH1mdW5jdGlvbiBlaChiLGQpe2I9YnwwO2Q9ZHwwO3Zh
ciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MDtlPWI7Zj1hW2VdfDA7aWYoKGYm
MSk9PTApe2c9KGYmMjU1KT4+PjE7aD0xfWVsc2V7Zz1jW2IrND4+Ml18MDtoPShjW2I+PjJdJi0y
KS0xfDB9aWYoKGd8MCk9PShofDApKXtlQihiLGgsMSxoLGgsMCwwKTtpPWFbZV18MH1lbHNle2k9
Zn1pZigoaSYxKT09MCl7YVtlXT0oZzw8MSkrMiYyNTU7aj1iKzR8MDtrPWcrMXwwO2w9aisoZzw8
Mil8MDtjW2w+PjJdPWQ7bT1qKyhrPDwyKXwwO2NbbT4+Ml09MDtyZXR1cm59ZWxzZXtlPWNbYis4
Pj4yXXwwO2k9ZysxfDA7Y1tiKzQ+PjJdPWk7aj1lO2s9aTtsPWorKGc8PDIpfDA7Y1tsPj4yXT1k
O209aisoazw8Mil8MDtjW20+PjJdPTA7cmV0dXJufX1mdW5jdGlvbiBlaShhKXthPWF8MDtlRChh
fDApO3JldHVybn1mdW5jdGlvbiBlaihhLGIpe2E9YXwwO2I9YnwwO2lOKGEsYisyOHwwKTtyZXR1
cm59ZnVuY3Rpb24gZWsoYSxiKXthPWF8MDtiPWJ8MDtjW2ErMjQ+PjJdPWI7Y1thKzE2Pj4yXT0o
YnwwKT09MDtjW2ErMjA+PjJdPTA7Y1thKzQ+PjJdPTQwOTg7Y1thKzEyPj4yXT0wO2NbYSs4Pj4y
XT02O2I9YSsyOHwwO2skKGErMzJ8MCwwLDQwKTtpZigoYnwwKT09MCl7cmV0dXJufWlXKGIpO3Jl
dHVybn1mdW5jdGlvbiBlbChhKXthPWF8MDtlRChhfDApO3JldHVybn1mdW5jdGlvbiBlbShhKXth
PWF8MDtjW2E+PjJdPTQyMzI7aU8oYSs0fDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBlbihhKXth
PWF8MDtjW2E+PjJdPTQyMzI7aU8oYSs0fDApO3JldHVybn1mdW5jdGlvbiBlbyhhKXthPWF8MDtj
W2E+PjJdPTQyMzI7aU8oYSs0fDApO3JldHVybn1mdW5jdGlvbiBlcChhKXthPWF8MDtjW2E+PjJd
PTQyMzI7aVcoYSs0fDApO2skKGErOHwwLDAsMjQpO3JldHVybn1mdW5jdGlvbiBlcShiLGQsZSl7
Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTA7Zj1i
O2lmKChlfDApPD0wKXtnPTA7cmV0dXJuIGd8MH1oPWIrMTJ8MDtpPWIrMTZ8MDtqPWQ7ZD0wO3do
aWxlKDEpe2s9Y1toPj4yXXwwO2lmKGs+Pj4wPChjW2k+PjJdfDApPj4+MCl7Y1toPj4yXT1rKzE7
bD1hW2tdfDB9ZWxzZXtrPWIwW2NbKGNbZj4+Ml18MCkrNDA+PjJdJjEyN10oYil8MDtpZigoa3ww
KT09LTEpe2c9ZDttPTE4NTQ7YnJlYWt9bD1rJjI1NX1hW2pdPWw7az1kKzF8MDtpZigoa3wwKTwo
ZXwwKSl7aj1qKzF8MDtkPWt9ZWxzZXtnPWs7bT0xODU2O2JyZWFrfX1pZigobXwwKT09MTg1NCl7
cmV0dXJuIGd8MH1lbHNlIGlmKChtfDApPT0xODU2KXtyZXR1cm4gZ3wwfXJldHVybiAwfWZ1bmN0
aW9uIGVyKGEpe2E9YXwwO3ZhciBiPTAsZT0wO2lmKChiMFtjWyhjW2E+PjJdfDApKzM2Pj4yXSYx
MjddKGEpfDApPT0tMSl7Yj0tMTtyZXR1cm4gYnwwfWU9YSsxMnwwO2E9Y1tlPj4yXXwwO2NbZT4+
Ml09YSsxO2I9ZFthXXwwO3JldHVybiBifDB9ZnVuY3Rpb24gZXMoYixlLGYpe2I9YnwwO2U9ZXww
O2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2c9YjtpZigoZnwwKTw9
MCl7aD0wO3JldHVybiBofDB9aT1iKzI0fDA7aj1iKzI4fDA7az0wO2w9ZTt3aGlsZSgxKXtlPWNb
aT4+Ml18MDtpZihlPj4+MDwoY1tqPj4yXXwwKT4+PjApe209YVtsXXwwO2NbaT4+Ml09ZSsxO2Fb
ZV09bX1lbHNle2lmKChiX1tjWyhjW2c+PjJdfDApKzUyPj4yXSYzMV0oYixkW2xdfDApfDApPT0t
MSl7aD1rO249MTg2OTticmVha319bT1rKzF8MDtpZigobXwwKTwoZnwwKSl7az1tO2w9bCsxfDB9
ZWxzZXtoPW07bj0xODcxO2JyZWFrfX1pZigobnwwKT09MTg2OSl7cmV0dXJuIGh8MH1lbHNlIGlm
KChufDApPT0xODcxKXtyZXR1cm4gaHwwfXJldHVybiAwfWZ1bmN0aW9uIGV0KGEpe2E9YXwwO2Nb
YT4+Ml09NDE2MDtpTyhhKzR8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGV1KGEpe2E9YXwwO2Nb
YT4+Ml09NDE2MDtpTyhhKzR8MCk7cmV0dXJufWZ1bmN0aW9uIGV2KGEpe2E9YXwwO2NbYT4+Ml09
NDE2MDtpTyhhKzR8MCk7cmV0dXJufWZ1bmN0aW9uIGV3KGEpe2E9YXwwO2NbYT4+Ml09NDE2MDtp
VyhhKzR8MCk7ayQoYSs4fDAsMCwyNCk7cmV0dXJufWZ1bmN0aW9uIGV4KGIsZCxlKXtiPWJ8MDtk
PWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MDtpZihlPj4+MD4xMDczNzQxODIyKXtk
WCgwKX1pZihlPj4+MDwyKXthW2JdPWU8PDEmMjU1O2Y9Yis0fDA7Zz1rbihmLGQsZSl8MDtoPWYr
KGU8PDIpfDA7Y1toPj4yXT0wO3JldHVybn1lbHNle2k9ZSs0Ji00O2o9a08oaTw8Mil8MDtjW2Ir
OD4+Ml09ajtjW2I+PjJdPWl8MTtjW2IrND4+Ml09ZTtmPWo7Zz1rbihmLGQsZSl8MDtoPWYrKGU8
PDIpfDA7Y1toPj4yXT0wO3JldHVybn19ZnVuY3Rpb24gZXkoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9
ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wO2lmKGQ+Pj4wPjEwNzM3NDE4MjIpe2RYKDApfWlm
KGQ+Pj4wPDIpe2FbYl09ZDw8MSYyNTU7Zj1iKzR8MDtnPWtwKGYsZSxkKXwwO2g9ZisoZDw8Mil8
MDtjW2g+PjJdPTA7cmV0dXJufWVsc2V7aT1kKzQmLTQ7aj1rTyhpPDwyKXwwO2NbYis4Pj4yXT1q
O2NbYj4+Ml09aXwxO2NbYis0Pj4yXT1kO2Y9ajtnPWtwKGYsZSxkKXwwO2g9ZisoZDw8Mil8MDtj
W2g+PjJdPTA7cmV0dXJufX1mdW5jdGlvbiBleihiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0w
LGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTA7aWYoZD4+PjA+MTA3
Mzc0MTgyMil7ZFgoMCl9ZT1iO2Y9YVtlXXwwO2lmKChmJjEpPT0wKXtnPTE7aD1mfWVsc2V7Zj1j
W2I+PjJdfDA7Zz0oZiYtMiktMXwwO2g9ZiYyNTV9Zj1oJjI1NTtpZigoZiYxfDApPT0wKXtpPWY+
Pj4xfWVsc2V7aT1jW2IrND4+Ml18MH1mPWk+Pj4wPmQ+Pj4wP2k6ZDtpZihmPj4+MDwyKXtqPTJ9
ZWxzZXtqPWYrNCYtNH1mPWotMXwwO2lmKChmfDApPT0oZ3wwKSl7cmV0dXJufWlmKChmfDApPT0x
KXtrPWIrNHwwO2w9Y1tiKzg+PjJdfDA7bT0xO249MH1lbHNle2Q9ajw8MjtpZihmPj4+MD5nPj4+
MCl7bz1rTyhkKXwwfWVsc2V7bz1rTyhkKXwwfWQ9aCYxO2lmKGQ8PDI0Pj4yND09MCl7cD1iKzR8
MH1lbHNle3A9Y1tiKzg+PjJdfDB9az1vO2w9cDttPWQ8PDI0Pj4yNCE9MDtuPTF9ZD1rO2s9aCYy
NTU7aWYoKGsmMXwwKT09MCl7cT1rPj4+MX1lbHNle3E9Y1tiKzQ+PjJdfDB9a24oZCxsLHErMXww
KXwwO2lmKG0pe2tTKGwpfWlmKG4pe2NbYj4+Ml09anwxO2NbYis0Pj4yXT1pO2NbYis4Pj4yXT1k
O3JldHVybn1lbHNle2FbZV09aTw8MSYyNTU7cmV0dXJufX1mdW5jdGlvbiBlQShiLGQsZSxmLGcs
aCxpLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO3Zh
ciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wO2lmKCgxMDczNzQx
ODIxLWR8MCk+Pj4wPGU+Pj4wKXtkWCgwKX1pZigoYVtiXSYxKT09MCl7az1iKzR8MH1lbHNle2s9
Y1tiKzg+PjJdfDB9ZG97aWYoZD4+PjA8NTM2ODcwODk1KXtsPWUrZHwwO209ZDw8MTtuPWw+Pj4w
PG0+Pj4wP206bDtpZihuPj4+MDwyKXtvPTI7YnJlYWt9bz1uKzQmLTR9ZWxzZXtvPTEwNzM3NDE4
MjJ9fXdoaWxlKDApO2U9a08obzw8Mil8MDtpZigoZ3wwKSE9MCl7a24oZSxrLGcpfDB9aWYoKGl8
MCkhPTApe249ZSsoZzw8Mil8MDtrbihuLGosaSl8MH1qPWYtaHwwO2lmKChqfDApIT0oZ3wwKSl7
Zj1qLWd8MDtuPWUrKGkrZzw8Mil8MDtsPWsrKGgrZzw8Mil8MDtrbihuLGwsZil8MH1pZigoZHww
KT09MSl7cD1iKzh8MDtjW3A+PjJdPWU7cT1vfDE7cj1ifDA7Y1tyPj4yXT1xO3M9aitpfDA7dD1i
KzR8MDtjW3Q+PjJdPXM7dT1lKyhzPDwyKXwwO2NbdT4+Ml09MDtyZXR1cm59a1Moayk7cD1iKzh8
MDtjW3A+PjJdPWU7cT1vfDE7cj1ifDA7Y1tyPj4yXT1xO3M9aitpfDA7dD1iKzR8MDtjW3Q+PjJd
PXM7dT1lKyhzPDwyKXwwO2NbdT4+Ml09MDtyZXR1cm59ZnVuY3Rpb24gZUIoYixkLGUsZixnLGgs
aSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7dmFyIGo9MCxrPTAs
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTA7aWYoKDEwNzM3NDE4MjEtZHwwKT4+PjA8ZT4+PjApe2RY
KDApfWlmKChhW2JdJjEpPT0wKXtqPWIrNHwwfWVsc2V7aj1jW2IrOD4+Ml18MH1kb3tpZihkPj4+
MDw1MzY4NzA4OTUpe2s9ZStkfDA7bD1kPDwxO209az4+PjA8bD4+PjA/bDprO2lmKG0+Pj4wPDIp
e249MjticmVha31uPW0rNCYtNH1lbHNle249MTA3Mzc0MTgyMn19d2hpbGUoMCk7ZT1rTyhuPDwy
KXwwO2lmKChnfDApIT0wKXtrbihlLGosZyl8MH1tPWYtaHwwO2lmKChtfDApIT0oZ3wwKSl7Zj1t
LWd8MDttPWUrKGkrZzw8Mil8MDtpPWorKGgrZzw8Mil8MDtrbihtLGksZil8MH1pZigoZHwwKT09
MSl7bz1iKzh8MDtjW28+PjJdPWU7cD1ufDE7cT1ifDA7Y1txPj4yXT1wO3JldHVybn1rUyhqKTtv
PWIrOHwwO2Nbbz4+Ml09ZTtwPW58MTtxPWJ8MDtjW3E+PjJdPXA7cmV0dXJufWZ1bmN0aW9uIGVD
KGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2U9aTtpPWkrOHwwO2Y9ZXwwO2c9KGNb
YisyND4+Ml18MCk9PTA7aWYoZyl7Y1tiKzE2Pj4yXT1kfDF9ZWxzZXtjW2IrMTY+PjJdPWR9aWYo
KChnJjF8ZCkmY1tiKzIwPj4yXXwwKT09MCl7aT1lO3JldHVybn1lPWJPKDE2KXwwO2Rve2lmKChh
WzE2MjcyXXwwKT09MCl7aWYoKGJjKDE2MjcyKXwwKT09MCl7YnJlYWt9ZGooMTE4NDApO2NbMjk2
MF09NGUzO2EkKDY2LDExODQwLHV8MCl8MH19d2hpbGUoMCk7Yj1rMygxMTg0MCwwLDMyKXwwO2Q9
SztjW2Y+PjJdPWImMHwxO2NbZis0Pj4yXT1kfDA7ZE0oZSxmLDEzMDQpO2NbZT4+Ml09MzE4NDti
bChlfDAsODc1MiwyOCl9ZnVuY3Rpb24gZUQoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wLGY9MDtj
W2E+PjJdPTMxNjA7Yj1jW2ErNDA+PjJdfDA7ZD1hKzMyfDA7ZT1hKzM2fDA7aWYoKGJ8MCkhPTAp
e2Y9Yjtkb3tmPWYtMXwwO2IzW2NbKGNbZD4+Ml18MCkrKGY8PDIpPj4yXSY3XSgwLGEsY1soY1tl
Pj4yXXwwKSsoZjw8Mik+PjJdfDApO313aGlsZSgoZnwwKSE9MCl9aU8oYSsyOHwwKTtrSyhjW2Q+
PjJdfDApO2tLKGNbZT4+Ml18MCk7a0soY1thKzQ4Pj4yXXwwKTtrSyhjW2ErNjA+PjJdfDApO3Jl
dHVybn1mdW5jdGlvbiBlRShhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBlRihhKXthPWF8MDty
ZXR1cm4gMH1mdW5jdGlvbiBlRyhhKXthPWF8MDtyZXR1cm4tMXwwfWZ1bmN0aW9uIGVIKGEsYil7
YT1hfDA7Yj1ifDA7cmV0dXJuLTF8MH1mdW5jdGlvbiBlSShhLGIpe2E9YXwwO2I9YnwwO3JldHVy
bi0xfDB9ZnVuY3Rpb24gZUooYSl7YT1hfDA7cmV0dXJuIDE0MTZ8MH1mdW5jdGlvbiBlSyhhLGIs
ZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtlPWk7Yj1kO2Q9aTtpPWkrMTZ8MDtjW2Q+PjJd
PWNbYj4+Ml07Y1tkKzQ+PjJdPWNbYis0Pj4yXTtjW2QrOD4+Ml09Y1tiKzg+PjJdO2NbZCsxMj4+
Ml09Y1tiKzEyPj4yXTtiPWE7Y1tiPj4yXT0wO2NbYis0Pj4yXT0wO2I9YSs4fDA7Y1tiPj4yXT0t
MTtjW2IrND4+Ml09LTE7aT1lO3JldHVybn1mdW5jdGlvbiBlTChiLGMsZCxlLGYpe2I9YnwwO2M9
Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtMMjQzNzpk
b3tpZigoZXwwKT09KGZ8MCkpe2c9Y31lbHNle2I9YztoPWU7d2hpbGUoMSl7aWYoKGJ8MCk9PShk
fDApKXtpPS0xO2o9MTk5MDticmVha31rPWFbYl18MDtsPWFbaF18MDtpZihrPDwyND4+MjQ8bDw8
MjQ+PjI0KXtpPS0xO2o9MTk5MzticmVha31pZihsPDwyND4+MjQ8azw8MjQ+PjI0KXtpPTE7aj0x
OTkyO2JyZWFrfWs9YisxfDA7bD1oKzF8MDtpZigobHwwKT09KGZ8MCkpe2c9azticmVhayBMMjQz
N31lbHNle2I9aztoPWx9fWlmKChqfDApPT0xOTkzKXtyZXR1cm4gaXwwfWVsc2UgaWYoKGp8MCk9
PTE5OTIpe3JldHVybiBpfDB9ZWxzZSBpZigoanwwKT09MTk5MCl7cmV0dXJuIGl8MH19fXdoaWxl
KDApO2k9KGd8MCkhPShkfDApfDA7cmV0dXJuIGl8MH1mdW5jdGlvbiBlTShiLGMsZCl7Yj1ifDA7
Yz1jfDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MDtpZigoY3wwKT09KGR8MCkpe2U9MDtyZXR1
cm4gZXwwfWVsc2V7Zj1jO2c9MH13aGlsZSgxKXtjPShhW2ZdfDApKyhnPDw0KXwwO2I9YyYtMjY4
NDM1NDU2O2g9KGI+Pj4yNHxiKV5jO2M9ZisxfDA7aWYoKGN8MCk9PShkfDApKXtlPWg7YnJlYWt9
ZWxzZXtmPWM7Zz1ofX1yZXR1cm4gZXwwfWZ1bmN0aW9uIGVOKGEsYixkKXthPWF8MDtiPWJ8MDtk
PWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtlPWE7aWYoKGR8MCk8PTAp
e2Y9MDtyZXR1cm4gZnwwfWc9YSsxMnwwO2g9YSsxNnwwO2k9YjtiPTA7d2hpbGUoMSl7aj1jW2c+
PjJdfDA7aWYoaj4+PjA8KGNbaD4+Ml18MCk+Pj4wKXtjW2c+PjJdPWorNDtrPWNbaj4+Ml18MH1l
bHNle2o9YjBbY1soY1tlPj4yXXwwKSs0MD4+Ml0mMTI3XShhKXwwO2lmKChqfDApPT0tMSl7Zj1i
O2w9MjAwNzticmVha31lbHNle2s9an19Y1tpPj4yXT1rO2o9YisxfDA7aWYoKGp8MCk8KGR8MCkp
e2k9aSs0fDA7Yj1qfWVsc2V7Zj1qO2w9MjAwODticmVha319aWYoKGx8MCk9PTIwMDgpe3JldHVy
biBmfDB9ZWxzZSBpZigobHwwKT09MjAwNyl7cmV0dXJuIGZ8MH1yZXR1cm4gMH1mdW5jdGlvbiBl
TyhhKXthPWF8MDt2YXIgYj0wLGQ9MDtpZigoYjBbY1soY1thPj4yXXwwKSszNj4+Ml0mMTI3XShh
KXwwKT09LTEpe2I9LTE7cmV0dXJuIGJ8MH1kPWErMTJ8MDthPWNbZD4+Ml18MDtjW2Q+PjJdPWEr
NDtiPWNbYT4+Ml18MDtyZXR1cm4gYnwwfWZ1bmN0aW9uIGVQKGEsYixkKXthPWF8MDtiPWJ8MDtk
PWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtlPWE7aWYoKGR8MCk8PTAp
e2Y9MDtyZXR1cm4gZnwwfWc9YSsyNHwwO2g9YSsyOHwwO2k9MDtqPWI7d2hpbGUoMSl7Yj1jW2c+
PjJdfDA7aWYoYj4+PjA8KGNbaD4+Ml18MCk+Pj4wKXtrPWNbaj4+Ml18MDtjW2c+PjJdPWIrNDtj
W2I+PjJdPWt9ZWxzZXtpZigoYl9bY1soY1tlPj4yXXwwKSs1Mj4+Ml0mMzFdKGEsY1tqPj4yXXww
KXwwKT09LTEpe2Y9aTtsPTIwMjM7YnJlYWt9fWs9aSsxfDA7aWYoKGt8MCk8KGR8MCkpe2k9aztq
PWorNHwwfWVsc2V7Zj1rO2w9MjAyMjticmVha319aWYoKGx8MCk9PTIwMjMpe3JldHVybiBmfDB9
ZWxzZSBpZigobHwwKT09MjAyMil7cmV0dXJuIGZ8MH1yZXR1cm4gMH1mdW5jdGlvbiBlUShhKXth
PWF8MDtlRChhKzh8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGVSKGEpe2E9YXwwO2VEKGErOHww
KTtyZXR1cm59ZnVuY3Rpb24gZVMoYSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1hO2Q9Y1soY1thPj4y
XXwwKS0xMj4+Ml18MDtlRChiKyhkKzgpfDApO2tTKGIrZHwwKTtyZXR1cm59ZnVuY3Rpb24gZVQo
YSl7YT1hfDA7ZUQoYSsoKGNbKGNbYT4+Ml18MCktMTI+PjJdfDApKzgpfDApO3JldHVybn1mdW5j
dGlvbiBlVShhKXthPWF8MDtlRChhKzh8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGVWKGEpe2E9
YXwwO2VEKGErOHwwKTtyZXR1cm59ZnVuY3Rpb24gZVcoYSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1h
O2Q9Y1soY1thPj4yXXwwKS0xMj4+Ml18MDtlRChiKyhkKzgpfDApO2tTKGIrZHwwKTtyZXR1cm59
ZnVuY3Rpb24gZVgoYSl7YT1hfDA7ZUQoYSsoKGNbKGNbYT4+Ml18MCktMTI+PjJdfDApKzgpfDAp
O3JldHVybn1mdW5jdGlvbiBlWShhKXthPWF8MDtlRChhKzR8MCk7a1MoYSk7cmV0dXJufWZ1bmN0
aW9uIGVaKGEpe2E9YXwwO2VEKGErNHwwKTtyZXR1cm59ZnVuY3Rpb24gZV8oYSl7YT1hfDA7dmFy
IGI9MCxkPTA7Yj1hO2Q9Y1soY1thPj4yXXwwKS0xMj4+Ml18MDtlRChiKyhkKzQpfDApO2tTKGIr
ZHwwKTtyZXR1cm59ZnVuY3Rpb24gZSQoYSl7YT1hfDA7ZUQoYSsoKGNbKGNbYT4+Ml18MCktMTI+
PjJdfDApKzQpfDApO3JldHVybn1mdW5jdGlvbiBlMChhKXthPWF8MDtlRChhKzR8MCk7a1MoYSk7
cmV0dXJufWZ1bmN0aW9uIGUxKGEpe2E9YXwwO2VEKGErNHwwKTtyZXR1cm59ZnVuY3Rpb24gZTIo
YSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1hO2Q9Y1soY1thPj4yXXwwKS0xMj4+Ml18MDtlRChiKyhk
KzQpfDApO2tTKGIrZHwwKTtyZXR1cm59ZnVuY3Rpb24gZTMoYSl7YT1hfDA7ZUQoYSsoKGNbKGNb
YT4+Ml18MCktMTI+PjJdfDApKzQpfDApO3JldHVybn1mdW5jdGlvbiBlNChhLGIsYyl7YT1hfDA7
Yj1ifDA7Yz1jfDA7aWYoKGN8MCk9PTEpe2RaKGEsMTY0MCwzNSk7cmV0dXJufWVsc2V7ZEsoYSxi
fDAsYyk7cmV0dXJufX1mdW5jdGlvbiBlNShhKXthPWF8MDtkZihhfDApO3JldHVybn1mdW5jdGlv
biBlNihhKXthPWF8MDtkTyhhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBlNyhhKXthPWF8MDtk
TyhhfDApO3JldHVybn1mdW5jdGlvbiBlOChhKXthPWF8MDtlRChhKTtrUyhhKTtyZXR1cm59ZnVu
Y3Rpb24gZTkoYSl7YT1hfDA7ZGYoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZmEoYSl7YT1h
fDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZmIoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1
cm59ZnVuY3Rpb24gZmMoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZmQoYixkLGUs
Zil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTA7ZD1lO2c9
Zi1kfDA7ZG97aWYoKGd8MCk9PS0xKXtkWChiKTtoPTIwNTh9ZWxzZXtpZihnPj4+MD49MTEpe2g9
MjA1ODticmVha31hW2JdPWc8PDEmMjU1O2k9YisxfDB9fXdoaWxlKDApO2lmKChofDApPT0yMDU4
KXtoPWcrMTYmLTE2O2o9a08oaCl8MDtjW2IrOD4+Ml09ajtjW2I+PjJdPWh8MTtjW2IrND4+Ml09
ZztpPWp9aWYoKGV8MCk9PShmfDApKXtrPWk7YVtrXT0wO3JldHVybn1qPWYrKC1kfDApfDA7ZD1p
O2c9ZTt3aGlsZSgxKXthW2RdPWFbZ118MDtlPWcrMXwwO2lmKChlfDApPT0oZnwwKSl7YnJlYWt9
ZWxzZXtkPWQrMXwwO2c9ZX19az1pK2p8MDthW2tdPTA7cmV0dXJufWZ1bmN0aW9uIGZlKGEpe2E9
YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGZmKGEpe2E9YXwwO2RlKGF8MCk7cmV0
dXJufWZ1bmN0aW9uIGZnKGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTA7
ZD1pO2k9aSs4fDA7ZT1kfDA7Zj1iO2c9Y1soY1tmPj4yXXwwKS0xMj4+Ml18MDtoPWI7aWYoKGNb
aCsoZysyNCk+PjJdfDApPT0wKXtpPWQ7cmV0dXJuIGJ8MH1qPWV8MDthW2pdPTA7Y1tlKzQ+PjJd
PWI7ZG97aWYoKGNbaCsoZysxNik+PjJdfDApPT0wKXtrPWNbaCsoZys3Mik+PjJdfDA7aWYoKGt8
MCkhPTApe2ZnKGspfDB9YVtqXT0xO2s9Y1toKygoY1soY1tmPj4yXXwwKS0xMj4+Ml18MCkrMjQp
Pj4yXXwwO2lmKChiMFtjWyhjW2s+PjJdfDApKzI0Pj4yXSYxMjddKGspfDApIT0tMSl7YnJlYWt9
az1jWyhjW2Y+PjJdfDApLTEyPj4yXXwwO2VDKGgra3wwLGNbaCsoaysxNik+PjJdfDEpfX13aGls
ZSgwKTtmaShlKTtpPWQ7cmV0dXJuIGJ8MH1mdW5jdGlvbiBmaChiKXtiPWJ8MDt2YXIgZD0wLGU9
MCxmPTAsZz0wLGg9MCxqPTAsaz0wO2Q9aTtpPWkrOHwwO2U9ZHwwO2Y9YjtnPWNbKGNbZj4+Ml18
MCktMTI+PjJdfDA7aD1iO2lmKChjW2grKGcrMjQpPj4yXXwwKT09MCl7aT1kO3JldHVybiBifDB9
aj1lfDA7YVtqXT0wO2NbZSs0Pj4yXT1iO2Rve2lmKChjW2grKGcrMTYpPj4yXXwwKT09MCl7az1j
W2grKGcrNzIpPj4yXXwwO2lmKChrfDApIT0wKXtmaChrKXwwfWFbal09MTtrPWNbaCsoKGNbKGNb
Zj4+Ml18MCktMTI+PjJdfDApKzI0KT4+Ml18MDtpZigoYjBbY1soY1trPj4yXXwwKSsyND4+Ml0m
MTI3XShrKXwwKSE9LTEpe2JyZWFrfWs9Y1soY1tmPj4yXXwwKS0xMj4+Ml18MDtlQyhoK2t8MCxj
W2grKGsrMTYpPj4yXXwxKX19d2hpbGUoMCk7ZmooZSk7aT1kO3JldHVybiBifDB9ZnVuY3Rpb24g
ZmkoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wO2I9YSs0fDA7YT1jW2I+PjJdfDA7ZD1jWyhjW2E+
PjJdfDApLTEyPj4yXXwwO2U9YTtpZigoY1tlKyhkKzI0KT4+Ml18MCk9PTApe3JldHVybn1pZigo
Y1tlKyhkKzE2KT4+Ml18MCkhPTApe3JldHVybn1pZigoY1tlKyhkKzQpPj4yXSY4MTkyfDApPT0w
KXtyZXR1cm59aWYoYmgoKXwwKXtyZXR1cm59ZD1jW2I+PjJdfDA7ZT1jW2QrKChjWyhjW2Q+PjJd
fDApLTEyPj4yXXwwKSsyNCk+PjJdfDA7aWYoKGIwW2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10o
ZSl8MCkhPS0xKXtyZXR1cm59ZT1jW2I+PjJdfDA7Yj1jWyhjW2U+PjJdfDApLTEyPj4yXXwwO2Q9
ZTtlQyhkK2J8MCxjW2QrKGIrMTYpPj4yXXwxKTtyZXR1cm59ZnVuY3Rpb24gZmooYSl7YT1hfDA7
dmFyIGI9MCxkPTAsZT0wO2I9YSs0fDA7YT1jW2I+PjJdfDA7ZD1jWyhjW2E+PjJdfDApLTEyPj4y
XXwwO2U9YTtpZigoY1tlKyhkKzI0KT4+Ml18MCk9PTApe3JldHVybn1pZigoY1tlKyhkKzE2KT4+
Ml18MCkhPTApe3JldHVybn1pZigoY1tlKyhkKzQpPj4yXSY4MTkyfDApPT0wKXtyZXR1cm59aWYo
YmgoKXwwKXtyZXR1cm59ZD1jW2I+PjJdfDA7ZT1jW2QrKChjWyhjW2Q+PjJdfDApLTEyPj4yXXww
KSsyNCk+PjJdfDA7aWYoKGIwW2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10oZSl8MCkhPS0xKXty
ZXR1cm59ZT1jW2I+PjJdfDA7Yj1jWyhjW2U+PjJdfDApLTEyPj4yXXwwO2Q9ZTtlQyhkK2J8MCxj
W2QrKGIrMTYpPj4yXXwxKTtyZXR1cm59ZnVuY3Rpb24gZmsoYSxiLGQsZSxmKXthPWF8MDtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7TDI1OTY6ZG97
aWYoKGV8MCk9PShmfDApKXtnPWJ9ZWxzZXthPWI7aD1lO3doaWxlKDEpe2lmKChhfDApPT0oZHww
KSl7aT0tMTtqPTIxNDc7YnJlYWt9az1jW2E+PjJdfDA7bD1jW2g+PjJdfDA7aWYoKGt8MCk8KGx8
MCkpe2k9LTE7aj0yMTUwO2JyZWFrfWlmKChsfDApPChrfDApKXtpPTE7aj0yMTQ4O2JyZWFrfWs9
YSs0fDA7bD1oKzR8MDtpZigobHwwKT09KGZ8MCkpe2c9azticmVhayBMMjU5Nn1lbHNle2E9azto
PWx9fWlmKChqfDApPT0yMTQ4KXtyZXR1cm4gaXwwfWVsc2UgaWYoKGp8MCk9PTIxNDcpe3JldHVy
biBpfDB9ZWxzZSBpZigoanwwKT09MjE1MCl7cmV0dXJuIGl8MH19fXdoaWxlKDApO2k9KGd8MCkh
PShkfDApfDA7cmV0dXJuIGl8MH1mdW5jdGlvbiBmbChhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7
dmFyIGU9MCxmPTAsZz0wLGg9MDtpZigoYnwwKT09KGR8MCkpe2U9MDtyZXR1cm4gZXwwfWVsc2V7
Zj1iO2c9MH13aGlsZSgxKXtiPShjW2Y+PjJdfDApKyhnPDw0KXwwO2E9YiYtMjY4NDM1NDU2O2g9
KGE+Pj4yNHxhKV5iO2I9Zis0fDA7aWYoKGJ8MCk9PShkfDApKXtlPWg7YnJlYWt9ZWxzZXtmPWI7
Zz1ofX1yZXR1cm4gZXwwfWZ1bmN0aW9uIGZtKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wO2Q9ZTtnPWYtZHwwO2g9Zz4+MjtpZihoPj4+MD4x
MDczNzQxODIyKXtkWChiKX1pZihoPj4+MDwyKXthW2JdPWc+Pj4xJjI1NTtpPWIrNHwwfWVsc2V7
Zz1oKzQmLTQ7aj1rTyhnPDwyKXwwO2NbYis4Pj4yXT1qO2NbYj4+Ml09Z3wxO2NbYis0Pj4yXT1o
O2k9an1pZigoZXwwKT09KGZ8MCkpe2s9aTtjW2s+PjJdPTA7cmV0dXJufWo9KGYtNCsoLWR8MCl8
MCk+Pj4yO2Q9aTtoPWU7d2hpbGUoMSl7Y1tkPj4yXT1jW2g+PjJdO2U9aCs0fDA7aWYoKGV8MCk9
PShmfDApKXticmVha31lbHNle2Q9ZCs0fDA7aD1lfX1rPWkrKGorMTw8Mil8MDtjW2s+PjJdPTA7
cmV0dXJufWZ1bmN0aW9uIGZuKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9u
IGZvKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGZwKGIsZCxlLGYsZyxoLGope2I9
YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wO2s9
aTtpPWkrMTEyfDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTts
PWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209aysxNnww
O249ayszMnwwO289ays0MHwwO3A9ays0OHwwO3E9ays1NnwwO3I9ays2NHwwO3M9ays3MnwwO3Q9
ays4MHwwO3U9aysxMDR8MDtpZigoY1tnKzQ+PjJdJjF8MCk9PTApe2Nbbj4+Ml09LTE7dj1jWyhj
W2Q+PjJdfDApKzE2Pj4yXXwwO3c9ZXwwO2NbcD4+Ml09Y1t3Pj4yXTtjW3E+PjJdPWNbZj4+Ml07
YlhbdiYxMjddKG8sZCxwLHEsZyxoLG4pO3E9Y1tvPj4yXXwwO2Nbdz4+Ml09cTtzd2l0Y2goY1tu
Pj4yXXwwKXtjYXNlIDE6e2Fbal09MTticmVha307Y2FzZSAwOnthW2pdPTA7YnJlYWt9O2RlZmF1
bHQ6e2Fbal09MTtjW2g+PjJdPTR9fWNbYj4+Ml09cTtpPWs7cmV0dXJufWVqKHIsZyk7cT1yfDA7
cj1jW3E+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW20+PjJdPTE1Njk2O2NbbSs0Pj4yXT0x
MjtjW20rOD4+Ml09MDtkVygxNTY5NixtLDk2KX1tPShjWzM5MjVdfDApLTF8MDtuPWNbcis4Pj4y
XXwwO2Rve2lmKChjW3IrMTI+PjJdfDApLW4+PjI+Pj4wPm0+Pj4wKXt3PWNbbisobTw8Mik+PjJd
fDA7aWYoKHd8MCk9PTApe2JyZWFrfW89dzt3PWNbcT4+Ml18MDtkeih3KXwwO2VqKHMsZyk7dz1z
fDA7cD1jW3c+PjJdfDA7aWYoKGNbMzgyOF18MCkhPS0xKXtjW2w+PjJdPTE1MzEyO2NbbCs0Pj4y
XT0xMjtjW2wrOD4+Ml09MDtkVygxNTMxMixsLDk2KX1kPShjWzM4MjldfDApLTF8MDt2PWNbcCs4
Pj4yXXwwO2Rve2lmKChjW3ArMTI+PjJdfDApLXY+PjI+Pj4wPmQ+Pj4wKXt4PWNbdisoZDw8Mik+
PjJdfDA7aWYoKHh8MCk9PTApe2JyZWFrfXk9eDt6PWNbdz4+Ml18MDtkeih6KXwwO3o9dHwwO0E9
eDtiWltjWyhjW0E+PjJdfDApKzI0Pj4yXSYxMjddKHoseSk7YlpbY1soY1tBPj4yXXwwKSsyOD4+
Ml0mMTI3XSh0KzEyfDAseSk7Y1t1Pj4yXT1jW2Y+PjJdO2Fbal09KGZxKGUsdSx6LHQrMjR8MCxv
LGgsMSl8MCk9PSh6fDApfDA7Y1tiPj4yXT1jW2U+PjJdO2RQKHQrMTJ8MCk7ZFAodHwwKTtpPWs7
cmV0dXJufX13aGlsZSgwKTtvPWJPKDQpfDA7a3Eobyk7Ymwob3wwLDgxNzYsMTM0KX19d2hpbGUo
MCk7az1iTyg0KXwwO2txKGspO2JsKGt8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZnEoYixlLGYsZyxo
LGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9
MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0w
LFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0w
O2w9aTtpPWkrMTA0fDA7bT1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1ttPj4y
XTttPShnLWZ8MCkvMTJ8MDtuPWx8MDtkb3tpZihtPj4+MD4xMDApe289a0oobSl8MDtpZigob3ww
KSE9MCl7cD1vO3E9bzticmVha31rWCgpO3A9MDtxPTB9ZWxzZXtwPW47cT0wfX13aGlsZSgwKTtu
PShmfDApPT0oZ3wwKTtpZihuKXtyPW07cz0wfWVsc2V7bz1tO209MDt0PXA7dT1mO3doaWxlKDEp
e3Y9ZFt1XXwwO2lmKCh2JjF8MCk9PTApe3c9dj4+PjF9ZWxzZXt3PWNbdSs0Pj4yXXwwfWlmKCh3
fDApPT0wKXthW3RdPTI7eD1tKzF8MDt5PW8tMXwwfWVsc2V7YVt0XT0xO3g9bTt5PW99dj11KzEy
fDA7aWYoKHZ8MCk9PShnfDApKXtyPXk7cz14O2JyZWFrfWVsc2V7bz15O209eDt0PXQrMXwwO3U9
dn19fXU9YnwwO2I9ZXwwO2U9aDt0PTA7eD1zO3M9cjt3aGlsZSgxKXtyPWNbdT4+Ml18MDtkb3tp
ZigocnwwKT09MCl7ej0wfWVsc2V7aWYoKGNbcisxMj4+Ml18MCkhPShjW3IrMTY+PjJdfDApKXt6
PXI7YnJlYWt9aWYoKGIwW2NbKGNbcj4+Ml18MCkrMzY+PjJdJjEyN10ocil8MCk9PS0xKXtjW3U+
PjJdPTA7ej0wO2JyZWFrfWVsc2V7ej1jW3U+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtyPSh6fDAp
PT0wO209Y1tiPj4yXXwwO2lmKChtfDApPT0wKXtBPXo7Qj0wfWVsc2V7ZG97aWYoKGNbbSsxMj4+
Ml18MCk9PShjW20rMTY+PjJdfDApKXtpZigoYjBbY1soY1ttPj4yXXwwKSszNj4+Ml0mMTI3XSht
KXwwKSE9LTEpe0M9bTticmVha31jW2I+PjJdPTA7Qz0wfWVsc2V7Qz1tfX13aGlsZSgwKTtBPWNb
dT4+Ml18MDtCPUN9RD0oQnwwKT09MDtpZighKChyXkQpJihzfDApIT0wKSl7YnJlYWt9bT1jW0Er
MTI+PjJdfDA7aWYoKG18MCk9PShjW0ErMTY+PjJdfDApKXtFPShiMFtjWyhjW0E+PjJdfDApKzM2
Pj4yXSYxMjddKEEpfDApJjI1NX1lbHNle0U9YVttXXwwfWlmKGspe0Y9RX1lbHNle0Y9Yl9bY1so
Y1tlPj4yXXwwKSsxMj4+Ml0mMzFdKGgsRSl8MH1kb3tpZihuKXtHPXg7SD1zfWVsc2V7bT10KzF8
MDtMMjcwNzpkb3tpZihrKXt5PXM7bz14O3c9cDt2PTA7ST1mO3doaWxlKDEpe2Rve2lmKChhW3dd
fDApPT0xKXtKPUk7aWYoKGFbSl0mMSk9PTApe0s9SSsxfDB9ZWxzZXtLPWNbSSs4Pj4yXXwwfWlm
KEY8PDI0Pj4yNCE9KGFbSyt0fDBdfDApKXthW3ddPTA7TD12O009bztOPXktMXwwO2JyZWFrfU89
ZFtKXXwwO2lmKChPJjF8MCk9PTApe1A9Tz4+PjF9ZWxzZXtQPWNbSSs0Pj4yXXwwfWlmKChQfDAp
IT0obXwwKSl7TD0xO009bztOPXk7YnJlYWt9YVt3XT0yO0w9MTtNPW8rMXwwO049eS0xfDB9ZWxz
ZXtMPXY7TT1vO049eX19d2hpbGUoMCk7Tz1JKzEyfDA7aWYoKE98MCk9PShnfDApKXtRPU47Uj1N
O1M9TDticmVhayBMMjcwN315PU47bz1NO3c9dysxfDA7dj1MO0k9T319ZWxzZXtJPXM7dj14O3c9
cDtvPTA7eT1mO3doaWxlKDEpe2Rve2lmKChhW3ddfDApPT0xKXtPPXk7aWYoKGFbT10mMSk9PTAp
e1Q9eSsxfDB9ZWxzZXtUPWNbeSs4Pj4yXXwwfWlmKEY8PDI0Pj4yNCE9KGJfW2NbKGNbZT4+Ml18
MCkrMTI+PjJdJjMxXShoLGFbVCt0fDBdfDApfDApPDwyND4+MjQpe2Fbd109MDtVPW87Vj12O1c9
SS0xfDA7YnJlYWt9Sj1kW09dfDA7aWYoKEomMXwwKT09MCl7WD1KPj4+MX1lbHNle1g9Y1t5KzQ+
PjJdfDB9aWYoKFh8MCkhPShtfDApKXtVPTE7Vj12O1c9STticmVha31hW3ddPTI7VT0xO1Y9disx
fDA7Vz1JLTF8MH1lbHNle1U9bztWPXY7Vz1JfX13aGlsZSgwKTtKPXkrMTJ8MDtpZigoSnwwKT09
KGd8MCkpe1E9VztSPVY7Uz1VO2JyZWFrIEwyNzA3fUk9Vzt2PVY7dz13KzF8MDtvPVU7eT1KfX19
d2hpbGUoMCk7aWYoIVMpe0c9UjtIPVE7YnJlYWt9bT1jW3U+PjJdfDA7eT1tKzEyfDA7bz1jW3k+
PjJdfDA7aWYoKG98MCk9PShjW20rMTY+PjJdfDApKXt3PWNbKGNbbT4+Ml18MCkrNDA+PjJdfDA7
YjBbdyYxMjddKG0pfDB9ZWxzZXtjW3k+PjJdPW8rMX1pZigoUitRfDApPj4+MDwyfG4pe0c9UjtI
PVE7YnJlYWt9bz10KzF8MDt5PVI7bT1wO3c9Zjt3aGlsZSgxKXtkb3tpZigoYVttXXwwKT09Mil7
dj1kW3ddfDA7aWYoKHYmMXwwKT09MCl7WT12Pj4+MX1lbHNle1k9Y1t3KzQ+PjJdfDB9aWYoKFl8
MCk9PShvfDApKXtaPXk7YnJlYWt9YVttXT0wO1o9eS0xfDB9ZWxzZXtaPXl9fXdoaWxlKDApO3Y9
dysxMnwwO2lmKCh2fDApPT0oZ3wwKSl7Rz1aO0g9UTticmVha31lbHNle3k9WjttPW0rMXwwO3c9
dn19fX13aGlsZSgwKTt0PXQrMXwwO3g9RztzPUh9ZG97aWYoKEF8MCk9PTApe189MH1lbHNle2lm
KChjW0ErMTI+PjJdfDApIT0oY1tBKzE2Pj4yXXwwKSl7Xz1BO2JyZWFrfWlmKChiMFtjWyhjW0E+
PjJdfDApKzM2Pj4yXSYxMjddKEEpfDApPT0tMSl7Y1t1Pj4yXT0wO189MDticmVha31lbHNle189
Y1t1Pj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7dT0oX3wwKT09MDtkb3tpZihEKXskPTIyOTN9ZWxz
ZXtpZigoY1tCKzEyPj4yXXwwKSE9KGNbQisxNj4+Ml18MCkpe2lmKHUpe2JyZWFrfWVsc2V7JD0y
Mjk1O2JyZWFrfX1pZigoYjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKT09LTEpe2Nb
Yj4+Ml09MDskPTIyOTM7YnJlYWt9ZWxzZXtpZih1XihCfDApPT0wKXticmVha31lbHNleyQ9MjI5
NTticmVha319fX13aGlsZSgwKTtpZigoJHwwKT09MjI5Myl7aWYodSl7JD0yMjk1fX1pZigoJHww
KT09MjI5NSl7Y1tqPj4yXT1jW2o+PjJdfDJ9TDI3ODY6ZG97aWYobil7JD0yMzAwfWVsc2V7dT1m
O0I9cDt3aGlsZSgxKXtpZigoYVtCXXwwKT09Mil7YWE9dTticmVhayBMMjc4Nn1iPXUrMTJ8MDtp
ZigoYnwwKT09KGd8MCkpeyQ9MjMwMDticmVhayBMMjc4Nn11PWI7Qj1CKzF8MH19fXdoaWxlKDAp
O2lmKCgkfDApPT0yMzAwKXtjW2o+PjJdPWNbaj4+Ml18NDthYT1nfWlmKChxfDApPT0wKXtpPWw7
cmV0dXJuIGFhfDB9a0socSk7aT1sO3JldHVybiBhYXwwfWZ1bmN0aW9uIGZyKGIsZSxmLGcsaCxq
LGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAs
Qj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQ
PTAsUT0wLFI9MCxTPTAsVD0wLFU9MDtlPWk7aT1pKzcyfDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4y
XT1jW2w+PjJdO2w9ZSszMnwwO209ZSs0MHwwO249ZSs1NnwwO289bjtwPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA2NDp7dD04O2JyZWFrfTtj
YXNlIDg6e3Q9MTY7YnJlYWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8
MDtmeChtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7aWYoKGFbb10mMSk9PTAp
e3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNbdj4+Ml18MDt4PWgrMXww
O3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58
MDt6PW4rNHwwO0E9YVtsXXwwO2w9dzt3PWNbaD4+Ml18MDtMMjgwOTp3aGlsZSgxKXtkb3tpZigo
d3wwKT09MCl7Qj0wfWVsc2V7aWYoKGNbdysxMj4+Ml18MCkhPShjW3crMTY+PjJdfDApKXtCPXc7
YnJlYWt9aWYoKGIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MCkhPS0xKXtCPXc7YnJl
YWt9Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7Qz0oQnwwKT09MDtEPWNbZj4+Ml18MDtkb3tpZigo
RHwwKT09MCl7RT0yMzI3fWVsc2V7aWYoKGNbRCsxMj4+Ml18MCkhPShjW0QrMTY+PjJdfDApKXtp
ZihDKXtGPUQ7Rz0wO2JyZWFrfWVsc2V7SD1sO0k9RDtKPTA7YnJlYWsgTDI4MDl9fWlmKChiMFtj
WyhjW0Q+PjJdfDApKzM2Pj4yXSYxMjddKEQpfDApPT0tMSl7Y1tmPj4yXT0wO0U9MjMyNzticmVh
a31lbHNle0s9KER8MCk9PTA7aWYoQ15LKXtGPUQ7Rz1LO2JyZWFrfWVsc2V7SD1sO0k9RDtKPUs7
YnJlYWsgTDI4MDl9fX19d2hpbGUoMCk7aWYoKEV8MCk9PTIzMjcpe0U9MDtpZihDKXtIPWw7ST0w
O0o9MTticmVha31lbHNle0Y9MDtHPTF9fUQ9ZFtvXXwwO0s9KEQmMXwwKT09MDtpZigoKGNbcD4+
Ml18MCktbHwwKT09KChLP0Q+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEspe0w9RD4+PjE7TT1EPj4+
MX1lbHNle0Q9Y1t6Pj4yXXwwO0w9RDtNPUR9ZFIobixMPDwxLDApO2lmKChhW29dJjEpPT0wKXtO
PTEwfWVsc2V7Tj0oY1tnPj4yXSYtMiktMXwwfWRSKG4sTiwwKTtpZigoYVtvXSYxKT09MCl7Tz14
fWVsc2V7Tz1jW3k+PjJdfDB9Y1twPj4yXT1PK007UD1PfWVsc2V7UD1sfUQ9QisxMnwwO0s9Y1tE
Pj4yXXwwO1E9QisxNnwwO2lmKChLfDApPT0oY1tRPj4yXXwwKSl7Uj0oYjBbY1soY1tCPj4yXXww
KSszNj4+Ml0mMTI3XShCKXwwKSYyNTV9ZWxzZXtSPWFbS118MH1pZigoZnMoUix0LFAscCxzLEEs
bSx2LHIsdSl8MCkhPTApe0g9UDtJPUY7Sj1HO2JyZWFrfUs9Y1tEPj4yXXwwO2lmKChLfDApPT0o
Y1tRPj4yXXwwKSl7UT1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1EmMTI3XShCKXwwO2w9UDt3
PUI7Y29udGludWV9ZWxzZXtjW0Q+PjJdPUsrMTtsPVA7dz1CO2NvbnRpbnVlfX13PWRbbV18MDtp
ZigodyYxfDApPT0wKXtTPXc+Pj4xfWVsc2V7Uz1jW20rND4+Ml18MH1kb3tpZigoU3wwKSE9MCl7
dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31QPWNbcz4+Ml18MDtjW3I+PjJdPXcr
NDtjW3c+PjJdPVB9fXdoaWxlKDApO2Nbaz4+Ml09ZnUoSCxjW3A+PjJdfDAsaix0KXwwO2Z0KG0s
dixjW3I+PjJdfDAsaik7ZG97aWYoQyl7VD0wfWVsc2V7aWYoKGNbQisxMj4+Ml18MCkhPShjW0Ir
MTY+PjJdfDApKXtUPUI7YnJlYWt9aWYoKGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8
MCkhPS0xKXtUPUI7YnJlYWt9Y1toPj4yXT0wO1Q9MH19d2hpbGUoMCk7aD0oVHwwKT09MDtMMjg2
OTpkb3tpZihKKXtFPTIzNjh9ZWxzZXtkb3tpZigoY1tJKzEyPj4yXXwwKT09KGNbSSsxNj4+Ml18
MCkpe2lmKChiMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYxMjddKEkpfDApIT0tMSl7YnJlYWt9Y1tm
Pj4yXT0wO0U9MjM2ODticmVhayBMMjg2OX19d2hpbGUoMCk7aWYoIShoXihJfDApPT0wKSl7YnJl
YWt9VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lm
KChFfDApPT0yMzY4KXtpZihoKXticmVha31VPWJ8MDtjW1U+PjJdPVQ7ZFAobik7ZFAobSk7aT1l
O3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7VT1ifDA7Y1tVPj4yXT1UO2RQKG4p
O2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZnMoYixlLGYsZyxoLGksaixrLGwsbSl7Yj1ifDA7
ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7dmFy
IG49MCxvPTAscD0wLHE9MCxyPTAscz0wO249Y1tnPj4yXXwwO289KG58MCk9PShmfDApO2Rve2lm
KG8pe3A9KGFbbSsyNHwwXXwwKT09Yjw8MjQ+PjI0O2lmKCFwKXtpZigoYVttKzI1fDBdfDApIT1i
PDwyND4+MjQpe2JyZWFrfX1jW2c+PjJdPWYrMTthW2ZdPXA/NDM6NDU7Y1toPj4yXT0wO3E9MDty
ZXR1cm4gcXwwfX13aGlsZSgwKTtwPWRbal18MDtpZigocCYxfDApPT0wKXtyPXA+Pj4xfWVsc2V7
cj1jW2orND4+Ml18MH1pZigocnwwKSE9MCZiPDwyND4+MjQ9PWk8PDI0Pj4yNCl7aT1jW2w+PjJd
fDA7aWYoKGkta3wwKT49MTYwKXtxPTA7cmV0dXJuIHF8MH1rPWNbaD4+Ml18MDtjW2w+PjJdPWkr
NDtjW2k+PjJdPWs7Y1toPj4yXT0wO3E9MDtyZXR1cm4gcXwwfWs9bSsyNnwwO2k9bTt3aGlsZSgx
KXtpZigoaXwwKT09KGt8MCkpe3M9azticmVha31pZigoYVtpXXwwKT09Yjw8MjQ+PjI0KXtzPWk7
YnJlYWt9ZWxzZXtpPWkrMXwwfX1pPXMtbXwwO2lmKChpfDApPjIzKXtxPS0xO3JldHVybiBxfDB9
TDI5MDg6ZG97c3dpdGNoKGV8MCl7Y2FzZSA4OmNhc2UgMTA6e2lmKChpfDApPChlfDApKXticmVh
ayBMMjkwOH1lbHNle3E9LTF9cmV0dXJuIHF8MH07Y2FzZSAxNjp7aWYoKGl8MCk8MjIpe2JyZWFr
IEwyOTA4fWlmKG8pe3E9LTE7cmV0dXJuIHF8MH1pZigobi1mfDApPj0zKXtxPS0xO3JldHVybiBx
fDB9aWYoKGFbbi0xfDBdfDApIT00OCl7cT0tMTtyZXR1cm4gcXwwfWNbaD4+Ml09MDttPWFbOTc0
NCtpfDBdfDA7cz1jW2c+PjJdfDA7Y1tnPj4yXT1zKzE7YVtzXT1tO3E9MDtyZXR1cm4gcXwwfTtk
ZWZhdWx0Ont9fX13aGlsZSgwKTtmPWFbOTc0NCtpfDBdfDA7Y1tnPj4yXT1uKzE7YVtuXT1mO2Nb
aD4+Ml09KGNbaD4+Ml18MCkrMTtxPTA7cmV0dXJuIHF8MH1mdW5jdGlvbiBmdChiLGQsZSxmKXti
PWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTA7Zz1iO2g9YjtpPWFbaF18MDtqPWkmMjU1O2lm
KChqJjF8MCk9PTApe2s9aj4+PjF9ZWxzZXtrPWNbYis0Pj4yXXwwfWlmKChrfDApPT0wKXtyZXR1
cm59ZG97aWYoKGR8MCk9PShlfDApKXtsPWl9ZWxzZXtrPWUtNHwwO2lmKGs+Pj4wPmQ+Pj4wKXtt
PWQ7bj1rfWVsc2V7bD1pO2JyZWFrfWRve2s9Y1ttPj4yXXwwO2NbbT4+Ml09Y1tuPj4yXTtjW24+
PjJdPWs7bT1tKzR8MDtuPW4tNHwwO313aGlsZShtPj4+MDxuPj4+MCk7bD1hW2hdfDB9fXdoaWxl
KDApO2lmKChsJjEpPT0wKXtvPWcrMXwwfWVsc2V7bz1jW2IrOD4+Ml18MH1nPWwmMjU1O2lmKChn
JjF8MCk9PTApe3A9Zz4+PjF9ZWxzZXtwPWNbYis0Pj4yXXwwfWI9ZS00fDA7ZT1hW29dfDA7Zz1l
PDwyND4+MjQ7bD1lPDwyND4+MjQ8MXxlPDwyND4+MjQ9PTEyNztMMjk0Nzpkb3tpZihiPj4+MD5k
Pj4+MCl7ZT1vK3B8MDtoPW87bj1kO209ZztpPWw7d2hpbGUoMSl7aWYoIWkpe2lmKChtfDApIT0o
Y1tuPj4yXXwwKSl7YnJlYWt9fWs9KGUtaHwwKT4xP2grMXwwOmg7aj1uKzR8MDtxPWFba118MDty
PXE8PDI0Pj4yNDtzPXE8PDI0Pj4yNDwxfHE8PDI0Pj4yND09MTI3O2lmKGo+Pj4wPGI+Pj4wKXto
PWs7bj1qO209cjtpPXN9ZWxzZXt0PXI7dT1zO2JyZWFrIEwyOTQ3fX1jW2Y+PjJdPTQ7cmV0dXJu
fWVsc2V7dD1nO3U9bH19d2hpbGUoMCk7aWYodSl7cmV0dXJufXU9Y1tiPj4yXXwwO2lmKCEodD4+
PjA8dT4+PjB8KHV8MCk9PTApKXtyZXR1cm59Y1tmPj4yXT00O3JldHVybn1mdW5jdGlvbiBmdShi
LGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MDtn
PWk7aT1pKzh8MDtoPWd8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVy
biBqfDB9az1jWyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRd
fDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXww
fX13aGlsZSgwKTtsPWJJKGJ8MCxofDAsZnwwLGNbMjk1OF18MCl8MDtmPUs7Yj1jWyhidygpfDAp
Pj4yXXwwO2lmKChifDApPT0wKXtjWyhidygpfDApPj4yXT1rfWlmKChjW2g+PjJdfDApIT0oZHww
KSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8MH1kPS0xO2g9MDtpZigoYnwwKT09MzR8KChm
fDApPChkfDApfChmfDApPT0oZHwwKSZsPj4+MDwtMjE0NzQ4MzY0OD4+PjApfCgoZnwwKT4oaHww
KXwoZnwwKT09KGh8MCkmbD4+PjA+MjE0NzQ4MzY0Nz4+PjApKXtjW2U+PjJdPTQ7ZT0wO2o9KGZ8
MCk+KGV8MCl8KGZ8MCk9PShlfDApJmw+Pj4wPjA+Pj4wPzIxNDc0ODM2NDc6LTIxNDc0ODM2NDg7
aT1nO3JldHVybiBqfDB9ZWxzZXtqPWw7aT1nO3JldHVybiBqfDB9cmV0dXJuIDB9ZnVuY3Rpb24g
ZnYoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1r
fDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxMPTAsTT0w
LE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wO2U9aTtpPWkrNzJ8MDtsPWY7Zj1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lKzMyfDA7bT1lKzQwfDA7bj1lKzU2fDA7bz1uO3A9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDg6
e3Q9MTY7YnJlYWt9O2Nhc2UgNjQ6e3Q9ODticmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2RlZmF1
bHQ6e3Q9MTB9fXU9ZXwwO2Z4KG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtp
ZigoYVtvXSYxKT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2
Pj4yXXwwO3g9aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9
ZnwwO2Y9Z3wwO2c9bnwwO3o9bis0fDA7QT1hW2xdfDA7bD13O3c9Y1toPj4yXXwwO0wyOTk3Ondo
aWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtpZigoY1t3KzEyPj4yXXwwKSE9KGNbdysx
Nj4+Ml18MCkpe0I9dzticmVha31pZigoYjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXww
KSE9LTEpe0I9dzticmVha31jW2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtDPShCfDApPT0wO0Q9Y1tm
Pj4yXXwwO2Rve2lmKChEfDApPT0wKXtFPTI0NzZ9ZWxzZXtpZigoY1tEKzEyPj4yXXwwKSE9KGNb
RCsxNj4+Ml18MCkpe2lmKEMpe0Y9RDtHPTA7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9MDticmVhayBM
Mjk5N319aWYoKGIwW2NbKGNbRD4+Ml18MCkrMzY+PjJdJjEyN10oRCl8MCk9PS0xKXtjW2Y+PjJd
PTA7RT0yNDc2O2JyZWFrfWVsc2V7TD0oRHwwKT09MDtpZihDXkwpe0Y9RDtHPUw7YnJlYWt9ZWxz
ZXtIPWw7ST1EO0o9TDticmVhayBMMjk5N319fX13aGlsZSgwKTtpZigoRXwwKT09MjQ3Nil7RT0w
O2lmKEMpe0g9bDtJPTA7Sj0xO2JyZWFrfWVsc2V7Rj0wO0c9MX19RD1kW29dfDA7TD0oRCYxfDAp
PT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEw/RD4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoTCl7
TT1EPj4+MTtOPUQ+Pj4xfWVsc2V7RD1jW3o+PjJdfDA7TT1EO049RH1kUihuLE08PDEsMCk7aWYo
KGFbb10mMSk9PTApe089MTB9ZWxzZXtPPShjW2c+PjJdJi0yKS0xfDB9ZFIobixPLDApO2lmKChh
W29dJjEpPT0wKXtQPXh9ZWxzZXtQPWNbeT4+Ml18MH1jW3A+PjJdPVArTjtRPVB9ZWxzZXtRPWx9
RD1CKzEyfDA7TD1jW0Q+PjJdfDA7Uj1CKzE2fDA7aWYoKEx8MCk9PShjW1I+PjJdfDApKXtTPShi
MFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApJjI1NX1lbHNle1M9YVtMXXwwfWlmKChm
cyhTLHQsUSxwLHMsQSxtLHYscix1KXwwKSE9MCl7SD1RO0k9RjtKPUc7YnJlYWt9TD1jW0Q+PjJd
fDA7aWYoKEx8MCk9PShjW1I+PjJdfDApKXtSPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUiYx
MjddKEIpfDA7bD1RO3c9Qjtjb250aW51ZX1lbHNle2NbRD4+Ml09TCsxO2w9UTt3PUI7Y29udGlu
dWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1Q9dz4+PjF9ZWxzZXtUPWNbbSs0Pj4yXXwwfWRv
e2lmKChUfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVE9Y1tzPj4y
XXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09UX19d2hpbGUoMCk7cz1mdyhILGNbcD4+Ml18MCxqLHQp
fDA7Y1trPj4yXT1zO2Nbays0Pj4yXT1LO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoQyl7VT0w
fWVsc2V7aWYoKGNbQisxMj4+Ml18MCkhPShjW0IrMTY+PjJdfDApKXtVPUI7YnJlYWt9aWYoKGIw
W2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkhPS0xKXtVPUI7YnJlYWt9Y1toPj4yXT0w
O1U9MH19d2hpbGUoMCk7aD0oVXwwKT09MDtMMzA1Nzpkb3tpZihKKXtFPTI1MTd9ZWxzZXtkb3tp
ZigoY1tJKzEyPj4yXXwwKT09KGNbSSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0k+PjJdfDApKzM2
Pj4yXSYxMjddKEkpfDApIT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0U9MjUxNzticmVhayBMMzA1N319
d2hpbGUoMCk7aWYoIShoXihJfDApPT0wKSl7YnJlYWt9Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQ
KG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChFfDApPT0yNTE3KXtpZihoKXticmVha31W
PWJ8MDtjW1Y+PjJdPVU7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1j
W2o+PjJdfDI7Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24g
ZncoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxs
PTAsbT0wO2c9aTtpPWkrOHwwO2g9Z3wwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2o9MDtr
PTA7aT1nO3JldHVybihLPWosayl8MH1sPWNbKGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09
MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1
OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO209YkkoYnwwLGh8MCxmfDAsY1syOTU4XXwwKXww
O2Y9SztiPWNbKGJ3KCl8MCk+PjJdfDA7aWYoKGJ8MCk9PTApe2NbKGJ3KCl8MCk+PjJdPWx9aWYo
KGNbaD4+Ml18MCkhPShkfDApKXtjW2U+PjJdPTQ7aj0wO2s9MDtpPWc7cmV0dXJuKEs9aixrKXww
fWlmKChifDApIT0zNCl7aj1mO2s9bTtpPWc7cmV0dXJuKEs9aixrKXwwfWNbZT4+Ml09NDtlPTA7
Yj0oZnwwKT4oZXwwKXwoZnwwKT09KGV8MCkmbT4+PjA+MD4+PjA7aj1iPzIxNDc0ODM2NDc6LTIx
NDc0ODM2NDg7az1iPy0xOjA7aT1nO3JldHVybihLPWosayl8MH1mdW5jdGlvbiBmeChiLGQsZSxm
KXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wO2c9aTtpPWkrNDB8MDtoPWd8MDtqPWcrMTZ8MDtrPWcrMzJ8MDtlaihrLGQp
O2Q9a3wwO2s9Y1tkPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tqPj4yXT0xNTY5NjtjW2or
ND4+Ml09MTI7Y1tqKzg+PjJdPTA7ZFcoMTU2OTYsaiw5Nil9aj0oY1szOTI1XXwwKS0xfDA7bD1j
W2srOD4+Ml18MDtkb3tpZigoY1trKzEyPj4yXXwwKS1sPj4yPj4+MD5qPj4+MCl7bT1jW2wrKGo8
PDIpPj4yXXwwO2lmKChtfDApPT0wKXticmVha31uPW07bz1jWyhjW20+PjJdfDApKzMyPj4yXXww
O2NhW28mMTVdKG4sOTc0NCw5NzcwLGUpfDA7bj1jW2Q+PjJdfDA7aWYoKGNbMzgyOF18MCkhPS0x
KXtjW2g+PjJdPTE1MzEyO2NbaCs0Pj4yXT0xMjtjW2grOD4+Ml09MDtkVygxNTMxMixoLDk2KX1v
PShjWzM4MjldfDApLTF8MDttPWNbbis4Pj4yXXwwO2Rve2lmKChjW24rMTI+PjJdfDApLW0+PjI+
Pj4wPm8+Pj4wKXtwPWNbbSsobzw8Mik+PjJdfDA7aWYoKHB8MCk9PTApe2JyZWFrfXE9cDthW2Zd
PWIwW2NbKGNbcD4+Ml18MCkrMTY+PjJdJjEyN10ocSl8MDtiWltjWyhjW3A+PjJdfDApKzIwPj4y
XSYxMjddKGIscSk7cT1jW2Q+PjJdfDA7ZHoocSl8MDtpPWc7cmV0dXJufX13aGlsZSgwKTtvPWJP
KDQpfDA7a3Eobyk7Ymwob3wwLDgxNzYsMTM0KX19d2hpbGUoMCk7Zz1iTyg0KXwwO2txKGcpO2Js
KGd8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZnkoZSxmLGcsaCxqLGssbCl7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0w
LEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAs
Vj0wO2Y9aTtpPWkrNzJ8MDttPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW20+
PjJdO209aDtoPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2g+PjJdPWNbbT4+Ml07bT1mKzMyfDA7
bj1mKzQwfDA7bz1mKzU2fDA7cD1vO3E9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3I9aTtpPWkrMTYw
fDA7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNo
KGNbais0Pj4yXSY3NHwwKXtjYXNlIDA6e3U9MDticmVha307Y2FzZSA4Ont1PTE2O2JyZWFrfTtj
YXNlIDY0Ont1PTg7YnJlYWt9O2RlZmF1bHQ6e3U9MTB9fXY9ZnwwO2Z4KG4saix2LG0pO2skKHB8
MCwwLDEyKTtqPW87ZFIobywxMCwwKTtpZigoYVtwXSYxKT09MCl7dz1qKzF8MDt4PXc7eT13O3o9
bys4fDB9ZWxzZXt3PW8rOHwwO3g9Y1t3Pj4yXXwwO3k9aisxfDA7ej13fWNbcT4+Ml09eDt3PXJ8
MDtjW3M+PjJdPXc7Y1t0Pj4yXT0wO2o9Z3wwO2c9aHwwO2g9b3wwO0E9bys0fDA7Qj1hW21dfDA7
bT14O3g9Y1tqPj4yXXwwO0wzMTIyOndoaWxlKDEpe2Rve2lmKCh4fDApPT0wKXtDPTB9ZWxzZXtp
ZigoY1t4KzEyPj4yXXwwKSE9KGNbeCsxNj4+Ml18MCkpe0M9eDticmVha31pZigoYjBbY1soY1t4
Pj4yXXwwKSszNj4+Ml0mMTI3XSh4KXwwKSE9LTEpe0M9eDticmVha31jW2o+PjJdPTA7Qz0wfX13
aGlsZSgwKTtEPShDfDApPT0wO0U9Y1tnPj4yXXwwO2Rve2lmKChFfDApPT0wKXtGPTI1Nzl9ZWxz
ZXtpZigoY1tFKzEyPj4yXXwwKSE9KGNbRSsxNj4+Ml18MCkpe2lmKEQpe0c9RTtIPTA7YnJlYWt9
ZWxzZXtJPW07Sj1FO0s9MDticmVhayBMMzEyMn19aWYoKGIwW2NbKGNbRT4+Ml18MCkrMzY+PjJd
JjEyN10oRSl8MCk9PS0xKXtjW2c+PjJdPTA7Rj0yNTc5O2JyZWFrfWVsc2V7TD0oRXwwKT09MDtp
ZihEXkwpe0c9RTtIPUw7YnJlYWt9ZWxzZXtJPW07Sj1FO0s9TDticmVhayBMMzEyMn19fX13aGls
ZSgwKTtpZigoRnwwKT09MjU3OSl7Rj0wO2lmKEQpe0k9bTtKPTA7Sz0xO2JyZWFrfWVsc2V7Rz0w
O0g9MX19RT1kW3BdfDA7TD0oRSYxfDApPT0wO2lmKCgoY1txPj4yXXwwKS1tfDApPT0oKEw/RT4+
PjE6Y1tBPj4yXXwwKXwwKSl7aWYoTCl7TT1FPj4+MTtOPUU+Pj4xfWVsc2V7RT1jW0E+PjJdfDA7
TT1FO049RX1kUihvLE08PDEsMCk7aWYoKGFbcF0mMSk9PTApe089MTB9ZWxzZXtPPShjW2g+PjJd
Ji0yKS0xfDB9ZFIobyxPLDApO2lmKChhW3BdJjEpPT0wKXtQPXl9ZWxzZXtQPWNbej4+Ml18MH1j
W3E+PjJdPVArTjtRPVB9ZWxzZXtRPW19RT1DKzEyfDA7TD1jW0U+PjJdfDA7Uj1DKzE2fDA7aWYo
KEx8MCk9PShjW1I+PjJdfDApKXtTPShiMFtjWyhjW0M+PjJdfDApKzM2Pj4yXSYxMjddKEMpfDAp
JjI1NX1lbHNle1M9YVtMXXwwfWlmKChmcyhTLHUsUSxxLHQsQixuLHcscyx2KXwwKSE9MCl7ST1R
O0o9RztLPUg7YnJlYWt9TD1jW0U+PjJdfDA7aWYoKEx8MCk9PShjW1I+PjJdfDApKXtSPWNbKGNb
Qz4+Ml18MCkrNDA+PjJdfDA7YjBbUiYxMjddKEMpfDA7bT1RO3g9Qztjb250aW51ZX1lbHNle2Nb
RT4+Ml09TCsxO209UTt4PUM7Y29udGludWV9fXg9ZFtuXXwwO2lmKCh4JjF8MCk9PTApe1Q9eD4+
PjF9ZWxzZXtUPWNbbis0Pj4yXXwwfWRve2lmKChUfDApIT0wKXt4PWNbcz4+Ml18MDtpZigoeC1y
fDApPj0xNjApe2JyZWFrfVE9Y1t0Pj4yXXwwO2Nbcz4+Ml09eCs0O2NbeD4+Ml09UX19d2hpbGUo
MCk7YltsPj4xXT1meihJLGNbcT4+Ml18MCxrLHUpfDA7ZnQobix3LGNbcz4+Ml18MCxrKTtkb3tp
ZihEKXtVPTB9ZWxzZXtpZigoY1tDKzEyPj4yXXwwKSE9KGNbQysxNj4+Ml18MCkpe1U9QzticmVh
a31pZigoYjBbY1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwKSE9LTEpe1U9QzticmVha31j
W2o+PjJdPTA7VT0wfX13aGlsZSgwKTtqPShVfDApPT0wO0wzMTgyOmRve2lmKEspe0Y9MjYyMH1l
bHNle2Rve2lmKChjW0orMTI+PjJdfDApPT0oY1tKKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbSj4+
Ml18MCkrMzY+PjJdJjEyN10oSil8MCkhPS0xKXticmVha31jW2c+PjJdPTA7Rj0yNjIwO2JyZWFr
IEwzMTgyfX13aGlsZSgwKTtpZighKGpeKEp8MCk9PTApKXticmVha31WPWV8MDtjW1Y+PjJdPVU7
ZFAobyk7ZFAobik7aT1mO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEZ8MCk9PTI2MjApe2lmKGop
e2JyZWFrfVY9ZXwwO2NbVj4+Ml09VTtkUChvKTtkUChuKTtpPWY7cmV0dXJufX13aGlsZSgwKTtj
W2s+PjJdPWNbaz4+Ml18MjtWPWV8MDtjW1Y+PjJdPVU7ZFAobyk7ZFAobik7aT1mO3JldHVybn1m
dW5jdGlvbiBmeihiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxq
PTAsaz0wLGw9MDtnPWk7aT1pKzh8MDtoPWd8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtq
PTA7aT1nO3JldHVybiBqfDB9aWYoKGFbYl18MCk9PTQ1KXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1
cm4ganwwfWs9Y1soYncoKXwwKT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0
XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8
MH19d2hpbGUoMCk7bD1hSShifDAsaHwwLGZ8MCxjWzI5NThdfDApfDA7Zj1LO2I9Y1soYncoKXww
KT4+Ml18MDtpZigoYnwwKT09MCl7Y1soYncoKXwwKT4+Ml09a31pZigoY1toPj4yXXwwKSE9KGR8
MCkpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBqfDB9ZD0wO2lmKChifDApPT0zNHwoZj4+PjA+
ZD4+PjB8Zj4+PjA9PWQ+Pj4wJmw+Pj4wPjY1NTM1Pj4+MCkpe2NbZT4+Ml09NDtqPS0xO2k9Zzty
ZXR1cm4ganwwfWVsc2V7aj1sJjY1NTM1O2k9ZztyZXR1cm4ganwwfXJldHVybiAwfWZ1bmN0aW9u
IGZBKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9
a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4
PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9
MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MDtlPWk7aT1pKzcyfDA7bD1mO2Y9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSszMnwwO209ZSs0MHwwO249ZSs1NnwwO289bjtw
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA2
NDp7dD04O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA4Ont0PTE2O2JyZWFrfTtkZWZh
dWx0Ont0PTEwfX11PWV8MDtmeChtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7
aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNb
dj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDto
PWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9YVtsXXwwO2w9dzt3PWNbaD4+Ml18MDtMMzIzMjp3
aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7aWYoKGNbdysxMj4+Ml18MCkhPShjW3cr
MTY+PjJdfDApKXtCPXc7YnJlYWt9aWYoKGIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8
MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7Qz0oQnwwKT09MDtEPWNb
Zj4+Ml18MDtkb3tpZigoRHwwKT09MCl7RT0yNjY5fWVsc2V7aWYoKGNbRCsxMj4+Ml18MCkhPShj
W0QrMTY+PjJdfDApKXtpZihDKXtGPUQ7Rz0wO2JyZWFrfWVsc2V7SD1sO0k9RDtKPTA7YnJlYWsg
TDMyMzJ9fWlmKChiMFtjWyhjW0Q+PjJdfDApKzM2Pj4yXSYxMjddKEQpfDApPT0tMSl7Y1tmPj4y
XT0wO0U9MjY2OTticmVha31lbHNle0s9KER8MCk9PTA7aWYoQ15LKXtGPUQ7Rz1LO2JyZWFrfWVs
c2V7SD1sO0k9RDtKPUs7YnJlYWsgTDMyMzJ9fX19d2hpbGUoMCk7aWYoKEV8MCk9PTI2Njkpe0U9
MDtpZihDKXtIPWw7ST0wO0o9MTticmVha31lbHNle0Y9MDtHPTF9fUQ9ZFtvXXwwO0s9KEQmMXww
KT09MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChLP0Q+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEsp
e0w9RD4+PjE7TT1EPj4+MX1lbHNle0Q9Y1t6Pj4yXXwwO0w9RDtNPUR9ZFIobixMPDwxLDApO2lm
KChhW29dJjEpPT0wKXtOPTEwfWVsc2V7Tj0oY1tnPj4yXSYtMiktMXwwfWRSKG4sTiwwKTtpZigo
YVtvXSYxKT09MCl7Tz14fWVsc2V7Tz1jW3k+PjJdfDB9Y1twPj4yXT1PK007UD1PfWVsc2V7UD1s
fUQ9QisxMnwwO0s9Y1tEPj4yXXwwO1E9QisxNnwwO2lmKChLfDApPT0oY1tRPj4yXXwwKSl7Uj0o
YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKSYyNTV9ZWxzZXtSPWFbS118MH1pZigo
ZnMoUix0LFAscCxzLEEsbSx2LHIsdSl8MCkhPTApe0g9UDtJPUY7Sj1HO2JyZWFrfUs9Y1tEPj4y
XXwwO2lmKChLfDApPT0oY1tRPj4yXXwwKSl7UT1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1Em
MTI3XShCKXwwO2w9UDt3PUI7Y29udGludWV9ZWxzZXtjW0Q+PjJdPUsrMTtsPVA7dz1CO2NvbnRp
bnVlfX13PWRbbV18MDtpZigodyYxfDApPT0wKXtTPXc+Pj4xfWVsc2V7Uz1jW20rND4+Ml18MH1k
b3tpZigoU3wwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31QPWNbcz4+
Ml18MDtjW3I+PjJdPXcrNDtjW3c+PjJdPVB9fXdoaWxlKDApO2Nbaz4+Ml09ZkIoSCxjW3A+PjJd
fDAsaix0KXwwO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoQyl7VD0wfWVsc2V7aWYoKGNbQisx
Mj4+Ml18MCkhPShjW0IrMTY+PjJdfDApKXtUPUI7YnJlYWt9aWYoKGIwW2NbKGNbQj4+Ml18MCkr
MzY+PjJdJjEyN10oQil8MCkhPS0xKXtUPUI7YnJlYWt9Y1toPj4yXT0wO1Q9MH19d2hpbGUoMCk7
aD0oVHwwKT09MDtMMzI5Mjpkb3tpZihKKXtFPTI3MTB9ZWxzZXtkb3tpZigoY1tJKzEyPj4yXXww
KT09KGNbSSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYxMjddKEkpfDAp
IT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0U9MjcxMDticmVhayBMMzI5Mn19d2hpbGUoMCk7aWYoISho
XihJfDApPT0wKSl7YnJlYWt9VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59
fXdoaWxlKDApO2Rve2lmKChFfDApPT0yNzEwKXtpZihoKXticmVha31VPWJ8MDtjW1U+PjJdPVQ7
ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7VT1ifDA7
Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZkIoYixkLGUsZil7Yj1i
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTA7Zz1pO2k9aSs4fDA7
aD1nfDA7aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1cm4ganwwfWlmKChh
W2JdfDApPT00NSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8MH1rPWNbKGJ3KCl8MCk+PjJd
fDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8
MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9YUkoYnwwLGh8
MCxmfDAsY1syOTU4XXwwKXwwO2Y9SztiPWNbKGJ3KCl8MCk+PjJdfDA7aWYoKGJ8MCk9PTApe2Nb
KGJ3KCl8MCk+PjJdPWt9aWYoKGNbaD4+Ml18MCkhPShkfDApKXtjW2U+PjJdPTQ7aj0wO2k9Zzty
ZXR1cm4ganwwfWQ9MDtpZigoYnwwKT09MzR8KGY+Pj4wPmQ+Pj4wfGY+Pj4wPT1kPj4+MCZsPj4+
MD4tMT4+PjApKXtjW2U+PjJdPTQ7aj0tMTtpPWc7cmV0dXJuIGp8MH1lbHNle2o9bDtpPWc7cmV0
dXJuIGp8MH1yZXR1cm4gMH1mdW5jdGlvbiBmQyhiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxG
PTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9
MCxVPTA7ZT1pO2k9aSs3MnwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNb
bD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMzJ8
MDttPWUrNDB8MDtuPWUrNTZ8MDtvPW47cD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsx
NjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0
Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDg6e3Q9MTY7YnJlYWt9
O2Nhc2UgNjQ6e3Q9ODticmVha307ZGVmYXVsdDp7dD0xMH19dT1lfDA7ZngobSxoLHUsbCk7ayQo
b3wwLDAsMTIpO2g9bjtkUihuLDEwLDApO2lmKChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7
eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9
cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWFbbF18
MDtsPXc7dz1jW2g+PjJdfDA7TDMzNDI6d2hpbGUoMSl7ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNl
e2lmKChjW3crMTI+PjJdfDApIT0oY1t3KzE2Pj4yXXwwKSl7Qj13O2JyZWFrfWlmKChiMFtjWyhj
W3c+PjJdfDApKzM2Pj4yXSYxMjddKHcpfDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9
fXdoaWxlKDApO0M9KEJ8MCk9PTA7RD1jW2Y+PjJdfDA7ZG97aWYoKER8MCk9PTApe0U9Mjc1OX1l
bHNle2lmKChjW0QrMTI+PjJdfDApIT0oY1tEKzE2Pj4yXXwwKSl7aWYoQyl7Rj1EO0c9MDticmVh
a31lbHNle0g9bDtJPUQ7Sj0wO2JyZWFrIEwzMzQyfX1pZigoYjBbY1soY1tEPj4yXXwwKSszNj4+
Ml0mMTI3XShEKXwwKT09LTEpe2NbZj4+Ml09MDtFPTI3NTk7YnJlYWt9ZWxzZXtLPShEfDApPT0w
O2lmKENeSyl7Rj1EO0c9SzticmVha31lbHNle0g9bDtJPUQ7Sj1LO2JyZWFrIEwzMzQyfX19fXdo
aWxlKDApO2lmKChFfDApPT0yNzU5KXtFPTA7aWYoQyl7SD1sO0k9MDtKPTE7YnJlYWt9ZWxzZXtG
PTA7Rz0xfX1EPWRbb118MDtLPShEJjF8MCk9PTA7aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoSz9E
Pj4+MTpjW3o+PjJdfDApfDApKXtpZihLKXtMPUQ+Pj4xO009RD4+PjF9ZWxzZXtEPWNbej4+Ml18
MDtMPUQ7TT1EfWRSKG4sTDw8MSwwKTtpZigoYVtvXSYxKT09MCl7Tj0xMH1lbHNle049KGNbZz4+
Ml0mLTIpLTF8MH1kUihuLE4sMCk7aWYoKGFbb10mMSk9PTApe089eH1lbHNle089Y1t5Pj4yXXww
fWNbcD4+Ml09TytNO1A9T31lbHNle1A9bH1EPUIrMTJ8MDtLPWNbRD4+Ml18MDtRPUIrMTZ8MDtp
ZigoS3wwKT09KGNbUT4+Ml18MCkpe1I9KGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8
MCkmMjU1fWVsc2V7Uj1hW0tdfDB9aWYoKGZzKFIsdCxQLHAscyxBLG0sdixyLHUpfDApIT0wKXtI
PVA7ST1GO0o9RzticmVha31LPWNbRD4+Ml18MDtpZigoS3wwKT09KGNbUT4+Ml18MCkpe1E9Y1so
Y1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtRJjEyN10oQil8MDtsPVA7dz1CO2NvbnRpbnVlfWVsc2V7
Y1tEPj4yXT1LKzE7bD1QO3c9Qjtjb250aW51ZX19dz1kW21dfDA7aWYoKHcmMXwwKT09MCl7Uz13
Pj4+MX1lbHNle1M9Y1ttKzQ+PjJdfDB9ZG97aWYoKFN8MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3
LXF8MCk+PTE2MCl7YnJlYWt9UD1jW3M+PjJdfDA7Y1tyPj4yXT13KzQ7Y1t3Pj4yXT1QfX13aGls
ZSgwKTtjW2s+PjJdPWZEKEgsY1twPj4yXXwwLGosdCl8MDtmdChtLHYsY1tyPj4yXXwwLGopO2Rv
e2lmKEMpe1Q9MH1lbHNle2lmKChjW0IrMTI+PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7VD1CO2Jy
ZWFrfWlmKChiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7VD1CO2JyZWFr
fWNbaD4+Ml09MDtUPTB9fXdoaWxlKDApO2g9KFR8MCk9PTA7TDM0MDI6ZG97aWYoSil7RT0yODAw
fWVsc2V7ZG97aWYoKGNbSSsxMj4+Ml18MCk9PShjW0krMTY+PjJdfDApKXtpZigoYjBbY1soY1tJ
Pj4yXXwwKSszNj4+Ml0mMTI3XShJKXwwKSE9LTEpe2JyZWFrfWNbZj4+Ml09MDtFPTI4MDA7YnJl
YWsgTDM0MDJ9fXdoaWxlKDApO2lmKCEoaF4oSXwwKT09MCkpe2JyZWFrfVU9YnwwO2NbVT4+Ml09
VDtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRXwwKT09MjgwMCl7aWYo
aCl7YnJlYWt9VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDAp
O2Nbaj4+Ml09Y1tqPj4yXXwyO1U9YnwwO2NbVT4+Ml09VDtkUChuKTtkUChtKTtpPWU7cmV0dXJu
fWZ1bmN0aW9uIGZEKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0w
LGo9MCxrPTAsbD0wO2c9aTtpPWkrOHwwO2g9Z3wwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00
O2o9MDtpPWc7cmV0dXJuIGp8MH1pZigoYVtiXXwwKT09NDUpe2NbZT4+Ml09NDtqPTA7aT1nO3Jl
dHVybiBqfDB9az1jWyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYy
NjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCww
KXwwfX13aGlsZSgwKTtsPWFJKGJ8MCxofDAsZnwwLGNbMjk1OF18MCl8MDtmPUs7Yj1jWyhidygp
fDApPj4yXXwwO2lmKChifDApPT0wKXtjWyhidygpfDApPj4yXT1rfWlmKChjW2g+PjJdfDApIT0o
ZHwwKSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8MH1kPTA7aWYoKGJ8MCk9PTM0fChmPj4+
MD5kPj4+MHxmPj4+MD09ZD4+PjAmbD4+PjA+LTE+Pj4wKSl7Y1tlPj4yXT00O2o9LTE7aT1nO3Jl
dHVybiBqfDB9ZWxzZXtqPWw7aT1nO3JldHVybiBqfDB9cmV0dXJuIDB9ZnVuY3Rpb24gZkUoYixl
LGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFy
IGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAs
ej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxMPTAsTT0wLE49MCxP
PTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wO2U9aTtpPWkrNzJ8MDtsPWY7Zj1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztjW2c+PjJdPWNbbD4+Ml07bD1lKzMyfDA7bT1lKzQwfDA7bj1lKzU2fDA7bz1uO3A9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDg6e3Q9MTY7
YnJlYWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDY0Ont0PTg7YnJlYWt9O2RlZmF1bHQ6e3Q9
MTB9fXU9ZXwwO2Z4KG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtpZigoYVtv
XSYxKT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2Pj4yXXww
O3g9aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9ZnwwO2Y9
Z3wwO2c9bnwwO3o9bis0fDA7QT1hW2xdfDA7bD13O3c9Y1toPj4yXXwwO0wzNDUyOndoaWxlKDEp
e2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtpZigoY1t3KzEyPj4yXXwwKSE9KGNbdysxNj4+Ml18
MCkpe0I9dzticmVha31pZigoYjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXwwKSE9LTEp
e0I9dzticmVha31jW2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtDPShCfDApPT0wO0Q9Y1tmPj4yXXww
O2Rve2lmKChEfDApPT0wKXtFPTI4NDl9ZWxzZXtpZigoY1tEKzEyPj4yXXwwKSE9KGNbRCsxNj4+
Ml18MCkpe2lmKEMpe0Y9RDtHPTA7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9MDticmVhayBMMzQ1Mn19
aWYoKGIwW2NbKGNbRD4+Ml18MCkrMzY+PjJdJjEyN10oRCl8MCk9PS0xKXtjW2Y+PjJdPTA7RT0y
ODQ5O2JyZWFrfWVsc2V7TD0oRHwwKT09MDtpZihDXkwpe0Y9RDtHPUw7YnJlYWt9ZWxzZXtIPWw7
ST1EO0o9TDticmVhayBMMzQ1Mn19fX13aGlsZSgwKTtpZigoRXwwKT09Mjg0OSl7RT0wO2lmKEMp
e0g9bDtJPTA7Sj0xO2JyZWFrfWVsc2V7Rj0wO0c9MX19RD1kW29dfDA7TD0oRCYxfDApPT0wO2lm
KCgoY1twPj4yXXwwKS1sfDApPT0oKEw/RD4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoTCl7TT1EPj4+
MTtOPUQ+Pj4xfWVsc2V7RD1jW3o+PjJdfDA7TT1EO049RH1kUihuLE08PDEsMCk7aWYoKGFbb10m
MSk9PTApe089MTB9ZWxzZXtPPShjW2c+PjJdJi0yKS0xfDB9ZFIobixPLDApO2lmKChhW29dJjEp
PT0wKXtQPXh9ZWxzZXtQPWNbeT4+Ml18MH1jW3A+PjJdPVArTjtRPVB9ZWxzZXtRPWx9RD1CKzEy
fDA7TD1jW0Q+PjJdfDA7Uj1CKzE2fDA7aWYoKEx8MCk9PShjW1I+PjJdfDApKXtTPShiMFtjWyhj
W0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApJjI1NX1lbHNle1M9YVtMXXwwfWlmKChmcyhTLHQs
USxwLHMsQSxtLHYscix1KXwwKSE9MCl7SD1RO0k9RjtKPUc7YnJlYWt9TD1jW0Q+PjJdfDA7aWYo
KEx8MCk9PShjW1I+PjJdfDApKXtSPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUiYxMjddKEIp
fDA7bD1RO3c9Qjtjb250aW51ZX1lbHNle2NbRD4+Ml09TCsxO2w9UTt3PUI7Y29udGludWV9fXc9
ZFttXXwwO2lmKCh3JjF8MCk9PTApe1Q9dz4+PjF9ZWxzZXtUPWNbbSs0Pj4yXXwwfWRve2lmKChU
fDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVE9Y1tzPj4yXXwwO2Nb
cj4+Ml09dys0O2Nbdz4+Ml09UX19d2hpbGUoMCk7cz1mRihILGNbcD4+Ml18MCxqLHQpfDA7Y1tr
Pj4yXT1zO2Nbays0Pj4yXT1LO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoQyl7VT0wfWVsc2V7
aWYoKGNbQisxMj4+Ml18MCkhPShjW0IrMTY+PjJdfDApKXtVPUI7YnJlYWt9aWYoKGIwW2NbKGNb
Qj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkhPS0xKXtVPUI7YnJlYWt9Y1toPj4yXT0wO1U9MH19
d2hpbGUoMCk7aD0oVXwwKT09MDtMMzUxMjpkb3tpZihKKXtFPTI4OTB9ZWxzZXtkb3tpZigoY1tJ
KzEyPj4yXXwwKT09KGNbSSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYx
MjddKEkpfDApIT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0U9Mjg5MDticmVhayBMMzUxMn19d2hpbGUo
MCk7aWYoIShoXihJfDApPT0wKSl7YnJlYWt9Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQKG0pO2k9
ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChFfDApPT0yODkwKXtpZihoKXticmVha31WPWJ8MDtj
W1Y+PjJdPVU7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJd
fDI7Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZkYoYixk
LGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0w
LG49MCxvPTA7Zz1pO2k9aSs4fDA7aD1nfDA7ZG97aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7
aj0wO2s9MH1lbHNle2lmKChhW2JdfDApPT00NSl7Y1tlPj4yXT00O2o9MDtrPTA7YnJlYWt9bD1j
WyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtp
ZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgw
KTttPWFJKGJ8MCxofDAsZnwwLGNbMjk1OF18MCl8MDtuPUs7bz1jWyhidygpfDApPj4yXXwwO2lm
KChvfDApPT0wKXtjWyhidygpfDApPj4yXT1sfWlmKChjW2g+PjJdfDApIT0oZHwwKSl7Y1tlPj4y
XT00O2o9MDtrPTA7YnJlYWt9aWYoKG98MCkhPTM0KXtqPW47az1tO2JyZWFrfWNbZT4+Ml09NDtq
PS0xO2s9LTF9fXdoaWxlKDApO2k9ZztyZXR1cm4oSz1qLGspfDB9ZnVuY3Rpb24gZkcoYixlLGYs
ZyxoLGksaixrLGwsbSxuLG8pe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9
anwwO2s9a3wwO2w9bHwwO209bXwwO249bnwwO289b3wwO3ZhciBwPTAscT0wLHI9MCxzPTAsdD0w
O2lmKGI8PDI0Pj4yND09aTw8MjQ+PjI0KXtpZigoYVtlXSYxKT09MCl7cD0tMTtyZXR1cm4gcHww
fWFbZV09MDtpPWNbaD4+Ml18MDtjW2g+PjJdPWkrMTthW2ldPTQ2O2k9ZFtrXXwwO2lmKChpJjF8
MCk9PTApe3E9aT4+PjF9ZWxzZXtxPWNbays0Pj4yXXwwfWlmKChxfDApPT0wKXtwPTA7cmV0dXJu
IHB8MH1xPWNbbT4+Ml18MDtpZigocS1sfDApPj0xNjApe3A9MDtyZXR1cm4gcHwwfWk9Y1tuPj4y
XXwwO2NbbT4+Ml09cSs0O2NbcT4+Ml09aTtwPTA7cmV0dXJuIHB8MH1kb3tpZihiPDwyND4+MjQ9
PWo8PDI0Pj4yNCl7aT1kW2tdfDA7aWYoKGkmMXwwKT09MCl7cj1pPj4+MX1lbHNle3I9Y1trKzQ+
PjJdfDB9aWYoKHJ8MCk9PTApe2JyZWFrfWlmKChhW2VdJjEpPT0wKXtwPS0xO3JldHVybiBwfDB9
aT1jW20+PjJdfDA7aWYoKGktbHwwKT49MTYwKXtwPTA7cmV0dXJuIHB8MH1xPWNbbj4+Ml18MDtj
W20+PjJdPWkrNDtjW2k+PjJdPXE7Y1tuPj4yXT0wO3A9MDtyZXR1cm4gcHwwfX13aGlsZSgwKTty
PW8rMzJ8MDtqPW87d2hpbGUoMSl7aWYoKGp8MCk9PShyfDApKXtzPXI7YnJlYWt9aWYoKGFbal18
MCk9PWI8PDI0Pj4yNCl7cz1qO2JyZWFrfWVsc2V7aj1qKzF8MH19aj1zLW98MDtpZigoanwwKT4z
MSl7cD0tMTtyZXR1cm4gcHwwfW89YVs5NzQ0K2p8MF18MDtzd2l0Y2goanwwKXtjYXNlIDI1OmNh
c2UgMjQ6e3M9Y1toPj4yXXwwO2Rve2lmKChzfDApIT0oZ3wwKSl7aWYoKGFbcy0xfDBdJjk1fDAp
PT0oYVtmXSYxMjd8MCkpe2JyZWFrfWVsc2V7cD0tMX1yZXR1cm4gcHwwfX13aGlsZSgwKTtjW2g+
PjJdPXMrMTthW3NdPW87cD0wO3JldHVybiBwfDB9O2Nhc2UgMjI6Y2FzZSAyMzp7YVtmXT04MDtz
PWNbaD4+Ml18MDtjW2g+PjJdPXMrMTthW3NdPW87cD0wO3JldHVybiBwfDB9O2RlZmF1bHQ6e3M9
YVtmXXwwO2Rve2lmKChvJjk1fDApPT0oczw8MjQ+PjI0fDApKXthW2ZdPXN8LTEyODtpZigoYVtl
XSYxKT09MCl7YnJlYWt9YVtlXT0wO2c9ZFtrXXwwO2lmKChnJjF8MCk9PTApe3Q9Zz4+PjF9ZWxz
ZXt0PWNbays0Pj4yXXwwfWlmKCh0fDApPT0wKXticmVha31nPWNbbT4+Ml18MDtpZigoZy1sfDAp
Pj0xNjApe2JyZWFrfWI9Y1tuPj4yXXwwO2NbbT4+Ml09Zys0O2NbZz4+Ml09Yn19d2hpbGUoMCk7
bT1jW2g+PjJdfDA7Y1toPj4yXT1tKzE7YVttXT1vO2lmKChqfDApPjIxKXtwPTA7cmV0dXJuIHB8
MH1jW24+PjJdPShjW24+PjJdfDApKzE7cD0wO3JldHVybiBwfDB9fXJldHVybiAwfWZ1bmN0aW9u
IGZIKGIsZSxmLGgsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2g9aHwwO2o9anwwO2s9a3wwO2w9
bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5
PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09
MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wO2U9aTtpPWkrODB8
MDttPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209aDtoPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2g+PjJdPWNbbT4+Ml07bT1lKzMyfDA7bj1lKzQwfDA7bz1lKzQ4
fDA7cD1lKzY0fDA7cT1wO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrMTYwfDA7dD1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj1pO2k9aSsxfDA7
aT1pKzc+PjM8PDM7dz1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7eD1lfDA7ZkoobyxqLHgsbSxuKTtr
JChxfDAsMCwxMik7aj1wO2RSKHAsMTAsMCk7aWYoKGFbcV0mMSk9PTApe3k9aisxfDA7ej15O0E9
eTtCPXArOHwwfWVsc2V7eT1wKzh8MDt6PWNbeT4+Ml18MDtBPWorMXwwO0I9eX1jW3I+PjJdPXo7
eT1zfDA7Y1t0Pj4yXT15O2NbdT4+Ml09MDthW3ZdPTE7YVt3XT02OTtqPWZ8MDtmPWh8MDtoPXB8
MDtDPXArNHwwO0Q9YVttXXwwO209YVtuXXwwO249ejt6PWNbaj4+Ml18MDtMMzYxNTp3aGlsZSgx
KXtkb3tpZigoenwwKT09MCl7RT0wfWVsc2V7aWYoKGNbeisxMj4+Ml18MCkhPShjW3orMTY+PjJd
fDApKXtFPXo7YnJlYWt9aWYoKGIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MCkhPS0x
KXtFPXo7YnJlYWt9Y1tqPj4yXT0wO0U9MH19d2hpbGUoMCk7Rj0oRXwwKT09MDtHPWNbZj4+Ml18
MDtkb3tpZigoR3wwKT09MCl7SD0yOTc4fWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+
PjJdfDApKXtpZihGKXtJPUc7Sj0wO2JyZWFrfWVsc2V7Sz1uO0w9RztNPTA7YnJlYWsgTDM2MTV9
fWlmKChiMFtjWyhjW0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDApPT0tMSl7Y1tmPj4yXT0wO0g9
Mjk3ODticmVha31lbHNle049KEd8MCk9PTA7aWYoRl5OKXtJPUc7Sj1OO2JyZWFrfWVsc2V7Sz1u
O0w9RztNPU47YnJlYWsgTDM2MTV9fX19d2hpbGUoMCk7aWYoKEh8MCk9PTI5Nzgpe0g9MDtpZihG
KXtLPW47TD0wO009MTticmVha31lbHNle0k9MDtKPTF9fUc9ZFtxXXwwO049KEcmMXwwKT09MDtp
ZigoKGNbcj4+Ml18MCktbnwwKT09KChOP0c+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKE4pe089Rz4+
PjE7UD1HPj4+MX1lbHNle0c9Y1tDPj4yXXwwO089RztQPUd9ZFIocCxPPDwxLDApO2lmKChhW3Fd
JjEpPT0wKXtRPTEwfWVsc2V7UT0oY1toPj4yXSYtMiktMXwwfWRSKHAsUSwwKTtpZigoYVtxXSYx
KT09MCl7Uj1BfWVsc2V7Uj1jW0I+PjJdfDB9Y1tyPj4yXT1SK1A7Uz1SfWVsc2V7Uz1ufUc9RSsx
MnwwO049Y1tHPj4yXXwwO1Q9RSsxNnwwO2lmKChOfDApPT0oY1tUPj4yXXwwKSl7VT0oYjBbY1so
Y1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwKSYyNTV9ZWxzZXtVPWFbTl18MH1pZigoZkcoVSx2
LHcsUyxyLEQsbSxvLHksdCx1LHgpfDApIT0wKXtLPVM7TD1JO009SjticmVha31OPWNbRz4+Ml18
MDtpZigoTnwwKT09KGNbVD4+Ml18MCkpe1Q9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtUJjEy
N10oRSl8MDtuPVM7ej1FO2NvbnRpbnVlfWVsc2V7Y1tHPj4yXT1OKzE7bj1TO3o9RTtjb250aW51
ZX19ej1kW29dfDA7aWYoKHomMXwwKT09MCl7Vj16Pj4+MX1lbHNle1Y9Y1tvKzQ+PjJdfDB9ZG97
aWYoKFZ8MCkhPTApe2lmKChhW3ZdJjEpPT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1zfDAp
Pj0xNjApe2JyZWFrfVM9Y1t1Pj4yXXwwO2NbdD4+Ml09eis0O2Nbej4+Ml09U319d2hpbGUoMCk7
Z1tsPj4yXT0rZkkoSyxjW3I+PjJdfDAsayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihGKXtX
PTB9ZWxzZXtpZigoY1tFKzEyPj4yXXwwKSE9KGNbRSsxNj4+Ml18MCkpe1c9RTticmVha31pZigo
YjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwKSE9LTEpe1c9RTticmVha31jW2o+PjJd
PTA7Vz0wfX13aGlsZSgwKTtqPShXfDApPT0wO0wzNjc2OmRve2lmKE0pe0g9MzAyMH1lbHNle2Rv
e2lmKChjW0wrMTI+PjJdfDApPT0oY1tMKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbTD4+Ml18MCkr
MzY+PjJdJjEyN10oTCl8MCkhPS0xKXticmVha31jW2Y+PjJdPTA7SD0zMDIwO2JyZWFrIEwzNjc2
fX13aGlsZSgwKTtpZighKGpeKEx8MCk9PTApKXticmVha31YPWJ8MDtjW1g+PjJdPVc7ZFAocCk7
ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEh8MCk9PTMwMjApe2lmKGope2JyZWFr
fVg9YnwwO2NbWD4+Ml09VztkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJd
PWNbaz4+Ml18MjtYPWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlv
biBmSShiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLjAsaj0wLGs9MC4w
O2Y9aTtpPWkrOHwwO2c9ZnwwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4wO2k9Zjty
ZXR1cm4raH1qPWNbKGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2
NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDAp
fDB9fXdoaWxlKDApO2s9K2tXKGIsZyxjWzI5NThdfDApO2I9Y1soYncoKXwwKT4+Ml18MDtpZigo
YnwwKT09MCl7Y1soYncoKXwwKT4+Ml09an1pZigoY1tnPj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09
NDtoPTAuMDtpPWY7cmV0dXJuK2h9aWYoKGJ8MCk9PTM0KXtjW2U+PjJdPTR9aD1rO2k9ZjtyZXR1
cm4raH1mdW5jdGlvbiBmSihiLGQsZSxmLGcpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O3ZhciBoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wO2g9aTtpPWkr
NDB8MDtqPWh8MDtrPWgrMTZ8MDtsPWgrMzJ8MDtlaihsLGQpO2Q9bHwwO2w9Y1tkPj4yXXwwO2lm
KChjWzM5MjRdfDApIT0tMSl7Y1trPj4yXT0xNTY5NjtjW2srND4+Ml09MTI7Y1trKzg+PjJdPTA7
ZFcoMTU2OTYsayw5Nil9az0oY1szOTI1XXwwKS0xfDA7bT1jW2wrOD4+Ml18MDtkb3tpZigoY1ts
KzEyPj4yXXwwKS1tPj4yPj4+MD5rPj4+MCl7bj1jW20rKGs8PDIpPj4yXXwwO2lmKChufDApPT0w
KXticmVha31vPW47cD1jWyhjW24+PjJdfDApKzMyPj4yXXwwO2NhW3AmMTVdKG8sOTc0NCw5Nzc2
LGUpfDA7bz1jW2Q+PjJdfDA7aWYoKGNbMzgyOF18MCkhPS0xKXtjW2o+PjJdPTE1MzEyO2Nbais0
Pj4yXT0xMjtjW2orOD4+Ml09MDtkVygxNTMxMixqLDk2KX1wPShjWzM4MjldfDApLTF8MDtuPWNb
bys4Pj4yXXwwO2Rve2lmKChjW28rMTI+PjJdfDApLW4+PjI+Pj4wPnA+Pj4wKXtxPWNbbisocDw8
Mik+PjJdfDA7aWYoKHF8MCk9PTApe2JyZWFrfXI9cTtzPXE7YVtmXT1iMFtjWyhjW3M+PjJdfDAp
KzEyPj4yXSYxMjddKHIpfDA7YVtnXT1iMFtjWyhjW3M+PjJdfDApKzE2Pj4yXSYxMjddKHIpfDA7
YlpbY1soY1txPj4yXXwwKSsyMD4+Ml0mMTI3XShiLHIpO3I9Y1tkPj4yXXwwO2R6KHIpfDA7aT1o
O3JldHVybn19d2hpbGUoMCk7cD1iTyg0KXwwO2txKHApO2JsKHB8MCw4MTc2LDEzNCl9fXdoaWxl
KDApO2g9Yk8oNCl8MDtrcShoKTtibChofDAsODE3NiwxMzQpfWZ1bmN0aW9uIGZLKGIsZSxmLGcs
aixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAs
bj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxC
PTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9
MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wO2U9aTtpPWkrODB8MDttPWY7Zj1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209ZztnPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztjW2c+PjJdPWNbbT4+Ml07bT1lKzMyfDA7bj1lKzQwfDA7bz1lKzQ4fDA7cD1lKzY0fDA7
cT1wO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrMTYwfDA7dD1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7
dz1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7eD1lfDA7ZkoobyxqLHgsbSxuKTtrJChxfDAsMCwxMik7
aj1wO2RSKHAsMTAsMCk7aWYoKGFbcV0mMSk9PTApe3k9aisxfDA7ej15O0E9eTtCPXArOHwwfWVs
c2V7eT1wKzh8MDt6PWNbeT4+Ml18MDtBPWorMXwwO0I9eX1jW3I+PjJdPXo7eT1zfDA7Y1t0Pj4y
XT15O2NbdT4+Ml09MDthW3ZdPTE7YVt3XT02OTtqPWZ8MDtmPWd8MDtnPXB8MDtDPXArNHwwO0Q9
YVttXXwwO209YVtuXXwwO249ejt6PWNbaj4+Ml18MDtMMzczNzp3aGlsZSgxKXtkb3tpZigoenww
KT09MCl7RT0wfWVsc2V7aWYoKGNbeisxMj4+Ml18MCkhPShjW3orMTY+PjJdfDApKXtFPXo7YnJl
YWt9aWYoKGIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MCkhPS0xKXtFPXo7YnJlYWt9
Y1tqPj4yXT0wO0U9MH19d2hpbGUoMCk7Rj0oRXwwKT09MDtHPWNbZj4+Ml18MDtkb3tpZigoR3ww
KT09MCl7SD0zMDc5fWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+PjJdfDApKXtpZihG
KXtJPUc7Sj0wO2JyZWFrfWVsc2V7Sz1uO0w9RztNPTA7YnJlYWsgTDM3Mzd9fWlmKChiMFtjWyhj
W0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDApPT0tMSl7Y1tmPj4yXT0wO0g9MzA3OTticmVha31l
bHNle049KEd8MCk9PTA7aWYoRl5OKXtJPUc7Sj1OO2JyZWFrfWVsc2V7Sz1uO0w9RztNPU47YnJl
YWsgTDM3Mzd9fX19d2hpbGUoMCk7aWYoKEh8MCk9PTMwNzkpe0g9MDtpZihGKXtLPW47TD0wO009
MTticmVha31lbHNle0k9MDtKPTF9fUc9ZFtxXXwwO049KEcmMXwwKT09MDtpZigoKGNbcj4+Ml18
MCktbnwwKT09KChOP0c+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKE4pe089Rz4+PjE7UD1HPj4+MX1l
bHNle0c9Y1tDPj4yXXwwO089RztQPUd9ZFIocCxPPDwxLDApO2lmKChhW3FdJjEpPT0wKXtRPTEw
fWVsc2V7UT0oY1tnPj4yXSYtMiktMXwwfWRSKHAsUSwwKTtpZigoYVtxXSYxKT09MCl7Uj1BfWVs
c2V7Uj1jW0I+PjJdfDB9Y1tyPj4yXT1SK1A7Uz1SfWVsc2V7Uz1ufUc9RSsxMnwwO049Y1tHPj4y
XXwwO1Q9RSsxNnwwO2lmKChOfDApPT0oY1tUPj4yXXwwKSl7VT0oYjBbY1soY1tFPj4yXXwwKSsz
Nj4+Ml0mMTI3XShFKXwwKSYyNTV9ZWxzZXtVPWFbTl18MH1pZigoZkcoVSx2LHcsUyxyLEQsbSxv
LHksdCx1LHgpfDApIT0wKXtLPVM7TD1JO009SjticmVha31OPWNbRz4+Ml18MDtpZigoTnwwKT09
KGNbVD4+Ml18MCkpe1Q9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtUJjEyN10oRSl8MDtuPVM7
ej1FO2NvbnRpbnVlfWVsc2V7Y1tHPj4yXT1OKzE7bj1TO3o9RTtjb250aW51ZX19ej1kW29dfDA7
aWYoKHomMXwwKT09MCl7Vj16Pj4+MX1lbHNle1Y9Y1tvKzQ+PjJdfDB9ZG97aWYoKFZ8MCkhPTAp
e2lmKChhW3ZdJjEpPT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1zfDApPj0xNjApe2JyZWFr
fVM9Y1t1Pj4yXXwwO2NbdD4+Ml09eis0O2Nbej4+Ml09U319d2hpbGUoMCk7aFtsPj4zXT0rZkwo
SyxjW3I+PjJdfDAsayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihGKXtXPTB9ZWxzZXtpZigo
Y1tFKzEyPj4yXXwwKSE9KGNbRSsxNj4+Ml18MCkpe1c9RTticmVha31pZigoYjBbY1soY1tFPj4y
XXwwKSszNj4+Ml0mMTI3XShFKXwwKSE9LTEpe1c9RTticmVha31jW2o+PjJdPTA7Vz0wfX13aGls
ZSgwKTtqPShXfDApPT0wO0wzNzk4OmRve2lmKE0pe0g9MzEyMX1lbHNle2Rve2lmKChjW0wrMTI+
PjJdfDApPT0oY1tMKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbTD4+Ml18MCkrMzY+PjJdJjEyN10o
TCl8MCkhPS0xKXticmVha31jW2Y+PjJdPTA7SD0zMTIxO2JyZWFrIEwzNzk4fX13aGlsZSgwKTtp
ZighKGpeKEx8MCk9PTApKXticmVha31YPWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3Jl
dHVybn19d2hpbGUoMCk7ZG97aWYoKEh8MCk9PTMxMjEpe2lmKGope2JyZWFrfVg9YnwwO2NbWD4+
Ml09VztkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNbaz4+Ml18MjtY
PWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlvbiBmTChiLGQsZSl7
Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLjAsaj0wLGs9MC4wO2Y9aTtpPWkrOHww
O2c9ZnwwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4wO2k9ZjtyZXR1cm4raH1qPWNb
KGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lm
KChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDAp
O2s9K2tXKGIsZyxjWzI5NThdfDApO2I9Y1soYncoKXwwKT4+Ml18MDtpZigoYnwwKT09MCl7Y1so
YncoKXwwKT4+Ml09an1pZigoY1tnPj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09NDtoPTAuMDtpPWY7
cmV0dXJuK2h9aWYoKGJ8MCkhPTM0KXtoPWs7aT1mO3JldHVybitofWNbZT4+Ml09NDtoPWs7aT1m
O3JldHVybitofWZ1bmN0aW9uIGZNKGIsZSxmLGcsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxX
PTAsWD0wO2U9aTtpPWkrODB8MDttPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1j
W20+PjJdO209ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbT4+Ml07bT1lKzMy
fDA7bj1lKzQwfDA7bz1lKzQ4fDA7cD1lKzY0fDA7cT1wO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O3M9aTtpPWkrMTYwfDA7dD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dT1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7dj1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7dz1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7eD1l
fDA7ZkoobyxqLHgsbSxuKTtrJChxfDAsMCwxMik7aj1wO2RSKHAsMTAsMCk7aWYoKGFbcV0mMSk9
PTApe3k9aisxfDA7ej15O0E9eTtCPXArOHwwfWVsc2V7eT1wKzh8MDt6PWNbeT4+Ml18MDtBPWor
MXwwO0I9eX1jW3I+PjJdPXo7eT1zfDA7Y1t0Pj4yXT15O2NbdT4+Ml09MDthW3ZdPTE7YVt3XT02
OTtqPWZ8MDtmPWd8MDtnPXB8MDtDPXArNHwwO0Q9YVttXXwwO209YVtuXXwwO249ejt6PWNbaj4+
Ml18MDtMNjp3aGlsZSgxKXtkb3tpZigoenwwKT09MCl7RT0wfWVsc2V7aWYoKGNbeisxMj4+Ml18
MCkhPShjW3orMTY+PjJdfDApKXtFPXo7YnJlYWt9aWYoKGIwW2NbKGNbej4+Ml18MCkrMzY+PjJd
JjEyN10oeil8MCkhPS0xKXtFPXo7YnJlYWt9Y1tqPj4yXT0wO0U9MH19d2hpbGUoMCk7Rj0oRXww
KT09MDtHPWNbZj4+Ml18MDtkb3tpZigoR3wwKT09MCl7SD0xN31lbHNle2lmKChjW0crMTI+PjJd
fDApIT0oY1tHKzE2Pj4yXXwwKSl7aWYoRil7ST1HO0o9MDticmVha31lbHNle0s9bjtMPUc7TT0w
O2JyZWFrIEw2fX1pZigoYjBbY1soY1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwKT09LTEpe2Nb
Zj4+Ml09MDtIPTE3O2JyZWFrfWVsc2V7Tj0oR3wwKT09MDtpZihGXk4pe0k9RztKPU47YnJlYWt9
ZWxzZXtLPW47TD1HO009TjticmVhayBMNn19fX13aGlsZSgwKTtpZigoSHwwKT09MTcpe0g9MDtp
ZihGKXtLPW47TD0wO009MTticmVha31lbHNle0k9MDtKPTF9fUc9ZFtxXXwwO049KEcmMXwwKT09
MDtpZigoKGNbcj4+Ml18MCktbnwwKT09KChOP0c+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKE4pe089
Rz4+PjE7UD1HPj4+MX1lbHNle0c9Y1tDPj4yXXwwO089RztQPUd9ZFIocCxPPDwxLDApO2lmKChh
W3FdJjEpPT0wKXtRPTEwfWVsc2V7UT0oY1tnPj4yXSYtMiktMXwwfWRSKHAsUSwwKTtpZigoYVtx
XSYxKT09MCl7Uj1BfWVsc2V7Uj1jW0I+PjJdfDB9Y1tyPj4yXT1SK1A7Uz1SfWVsc2V7Uz1ufUc9
RSsxMnwwO049Y1tHPj4yXXwwO1Q9RSsxNnwwO2lmKChOfDApPT0oY1tUPj4yXXwwKSl7VT0oYjBb
Y1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwKSYyNTV9ZWxzZXtVPWFbTl18MH1pZigoZkco
VSx2LHcsUyxyLEQsbSxvLHksdCx1LHgpfDApIT0wKXtLPVM7TD1JO009SjticmVha31OPWNbRz4+
Ml18MDtpZigoTnwwKT09KGNbVD4+Ml18MCkpe1Q9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtU
JjEyN10oRSl8MDtuPVM7ej1FO2NvbnRpbnVlfWVsc2V7Y1tHPj4yXT1OKzE7bj1TO3o9RTtjb250
aW51ZX19ej1kW29dfDA7aWYoKHomMXwwKT09MCl7Vj16Pj4+MX1lbHNle1Y9Y1tvKzQ+PjJdfDB9
ZG97aWYoKFZ8MCkhPTApe2lmKChhW3ZdJjEpPT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1z
fDApPj0xNjApe2JyZWFrfVM9Y1t1Pj4yXXwwO2NbdD4+Ml09eis0O2Nbej4+Ml09U319d2hpbGUo
MCk7aFtsPj4zXT0rZk4oSyxjW3I+PjJdfDAsayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihG
KXtXPTB9ZWxzZXtpZigoY1tFKzEyPj4yXXwwKSE9KGNbRSsxNj4+Ml18MCkpe1c9RTticmVha31p
ZigoYjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwKSE9LTEpe1c9RTticmVha31jW2o+
PjJdPTA7Vz0wfX13aGlsZSgwKTtqPShXfDApPT0wO0w2Nzpkb3tpZihNKXtIPTU5fWVsc2V7ZG97
aWYoKGNbTCsxMj4+Ml18MCk9PShjW0wrMTY+PjJdfDApKXtpZigoYjBbY1soY1tMPj4yXXwwKSsz
Nj4+Ml0mMTI3XShMKXwwKSE9LTEpe2JyZWFrfWNbZj4+Ml09MDtIPTU5O2JyZWFrIEw2N319d2hp
bGUoMCk7aWYoIShqXihMfDApPT0wKSl7YnJlYWt9WD1ifDA7Y1tYPj4yXT1XO2RQKHApO2RQKG8p
O2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChIfDApPT01OSl7aWYoail7YnJlYWt9WD1ifDA7
Y1tYPj4yXT1XO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4y
XXwyO1g9YnwwO2NbWD4+Ml09VztkUChwKTtkUChvKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZOKGIs
ZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAuMCxqPTAsaz0wLjA7Zj1pO2k9
aSs4fDA7Zz1mfDA7aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aD0wLjA7aT1mO3JldHVybito
fWo9Y1soYncoKXwwKT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0XXwwKT09
MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hp
bGUoMCk7az0ra1coYixnLGNbMjk1OF18MCk7Yj1jWyhidygpfDApPj4yXXwwO2lmKChifDApPT0w
KXtjWyhidygpfDApPj4yXT1qfWlmKChjW2c+PjJdfDApIT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4w
O2k9ZjtyZXR1cm4raH1pZigoYnwwKSE9MzQpe2g9aztpPWY7cmV0dXJuK2h9Y1tlPj4yXT00O2g9
aztpPWY7cmV0dXJuK2h9ZnVuY3Rpb24gZk8oYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59
ZnVuY3Rpb24gZlAoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZlEoYixlLGYsZyxo
LGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9
MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0w
LFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MDtlPWk7aT1pKzY0fDA7bD1mO2Y9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tnPj4yXT1jW2w+PjJdO2w9ZXwwO209ZSsxNnwwO249ZSs0OHwwO289aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO3A9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzty
PWk7aT1pKzE2MHwwO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Q9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2skKG58MCwwLDEyKTt1PXA7ZWoobyxoKTtoPW98MDtvPWNbaD4+Ml18MDtpZigoY1szOTI0
XXwwKSE9LTEpe2NbbD4+Ml09MTU2OTY7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2
LGwsOTYpfWw9KGNbMzkyNV18MCktMXwwO3Y9Y1tvKzg+PjJdfDA7ZG97aWYoKGNbbysxMj4+Ml18
MCktdj4+Mj4+PjA+bD4+PjApe3c9Y1t2KyhsPDwyKT4+Ml18MDtpZigod3wwKT09MCl7YnJlYWt9
eD13O3k9bXwwO3o9Y1soY1t3Pj4yXXwwKSszMj4+Ml18MDtjYVt6JjE1XSh4LDk3NDQsOTc3MCx5
KXwwO3g9Y1toPj4yXXwwO2R6KHgpfDA7ayQodXwwLDAsMTIpO3g9cDtkUihwLDEwLDApO2lmKChh
W3VdJjEpPT0wKXt6PXgrMXwwO0E9ejtCPXo7Qz1wKzh8MH1lbHNle3o9cCs4fDA7QT1jW3o+PjJd
fDA7Qj14KzF8MDtDPXp9Y1txPj4yXT1BO3o9cnwwO2Nbcz4+Ml09ejtjW3Q+PjJdPTA7eD1mfDA7
dz1nfDA7RD1wfDA7RT1wKzR8MDtGPUE7Rz1jW3g+PjJdfDA7TDExNzp3aGlsZSgxKXtkb3tpZigo
R3wwKT09MCl7SD0wfWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+PjJdfDApKXtIPUc7
YnJlYWt9aWYoKGIwW2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MCkhPS0xKXtIPUc7YnJl
YWt9Y1t4Pj4yXT0wO0g9MH19d2hpbGUoMCk7ST0oSHwwKT09MDtKPWNbdz4+Ml18MDtkb3tpZigo
SnwwKT09MCl7Sz0xMTB9ZWxzZXtpZigoY1tKKzEyPj4yXXwwKSE9KGNbSisxNj4+Ml18MCkpe2lm
KEkpe2JyZWFrfWVsc2V7TD1GO2JyZWFrIEwxMTd9fWlmKChiMFtjWyhjW0o+PjJdfDApKzM2Pj4y
XSYxMjddKEopfDApPT0tMSl7Y1t3Pj4yXT0wO0s9MTEwO2JyZWFrfWVsc2V7aWYoSV4oSnwwKT09
MCl7YnJlYWt9ZWxzZXtMPUY7YnJlYWsgTDExN319fX13aGlsZSgwKTtpZigoS3wwKT09MTEwKXtL
PTA7aWYoSSl7TD1GO2JyZWFrfX1KPWRbdV18MDtNPShKJjF8MCk9PTA7aWYoKChjW3E+PjJdfDAp
LUZ8MCk9PSgoTT9KPj4+MTpjW0U+PjJdfDApfDApKXtpZihNKXtOPUo+Pj4xO089Sj4+PjF9ZWxz
ZXtKPWNbRT4+Ml18MDtOPUo7Tz1KfWRSKHAsTjw8MSwwKTtpZigoYVt1XSYxKT09MCl7UD0xMH1l
bHNle1A9KGNbRD4+Ml0mLTIpLTF8MH1kUihwLFAsMCk7aWYoKGFbdV0mMSk9PTApe1E9Qn1lbHNl
e1E9Y1tDPj4yXXwwfWNbcT4+Ml09UStPO1I9UX1lbHNle1I9Rn1KPUgrMTJ8MDtNPWNbSj4+Ml18
MDtTPUgrMTZ8MDtpZigoTXwwKT09KGNbUz4+Ml18MCkpe1Q9KGIwW2NbKGNbSD4+Ml18MCkrMzY+
PjJdJjEyN10oSCl8MCkmMjU1fWVsc2V7VD1hW01dfDB9aWYoKGZzKFQsMTYsUixxLHQsMCxuLHos
cyx5KXwwKSE9MCl7TD1SO2JyZWFrfU09Y1tKPj4yXXwwO2lmKChNfDApPT0oY1tTPj4yXXwwKSl7
Uz1jWyhjW0g+PjJdfDApKzQwPj4yXXwwO2IwW1MmMTI3XShIKXwwO0Y9UjtHPUg7Y29udGludWV9
ZWxzZXtjW0o+PjJdPU0rMTtGPVI7Rz1IO2NvbnRpbnVlfX1hW0wrM3wwXT0wO2Rve2lmKChhWzE2
MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQs
MCl8MH19d2hpbGUoMCk7Rz1mUihMLGNbMjk1OF18MCwxMzIwLChGPWksaT1pKzh8MCxjW0Y+PjJd
PWssRil8MCl8MDtpPUY7aWYoKEd8MCkhPTEpe2Nbaj4+Ml09NH1HPWNbeD4+Ml18MDtkb3tpZigo
R3wwKT09MCl7VT0wfWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+PjJdfDApKXtVPUc7
YnJlYWt9aWYoKGIwW2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MCkhPS0xKXtVPUc7YnJl
YWt9Y1t4Pj4yXT0wO1U9MH19d2hpbGUoMCk7eD0oVXwwKT09MDtHPWNbdz4+Ml18MDtkb3tpZigo
R3wwKT09MCl7Sz0xNTV9ZWxzZXtpZigoY1tHKzEyPj4yXXwwKSE9KGNbRysxNj4+Ml18MCkpe2lm
KCF4KXticmVha31WPWJ8MDtjW1Y+PjJdPVU7ZFAocCk7ZFAobik7aT1lO3JldHVybn1pZigoYjBb
Y1soY1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwKT09LTEpe2Nbdz4+Ml09MDtLPTE1NTticmVh
a31pZighKHheKEd8MCk9PTApKXticmVha31WPWJ8MDtjW1Y+PjJdPVU7ZFAocCk7ZFAobik7aT1l
O3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEt8MCk9PTE1NSl7aWYoeCl7YnJlYWt9Vj1ifDA7Y1tW
Pj4yXT1VO2RQKHApO2RQKG4pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwy
O1Y9YnwwO2NbVj4+Ml09VTtkUChwKTtkUChuKTtpPWU7cmV0dXJufX13aGlsZSgwKTtlPWJPKDQp
fDA7a3EoZSk7YmwoZXwwLDgxNzYsMTM0KX1mdW5jdGlvbiBmUihhLGIsZCxlKXthPWF8MDtiPWJ8
MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTA7Zj1pO2k9aSsxNnwwO2c9ZnwwO2g9ZztjW2g+
PjJdPWU7Y1toKzQ+PjJdPTA7aD1iQihifDApfDA7Yj1hWShhfDAsZHwwLGd8MCl8MDtpZigoaHww
KT09MCl7aT1mO3JldHVybiBifDB9YkIoaHwwKXwwO2k9ZjtyZXR1cm4gYnwwfWZ1bmN0aW9uIGZT
KGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3ww
O3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxN
PTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89
MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MDtsPWk7aT1pKzEwNHwwO209ZTtlPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2U+PjJdPWNbbT4+Ml07bT0oZy1mfDApLzEyfDA7bj1sfDA7ZG97aWYobT4+
PjA+MTAwKXtvPWtKKG0pfDA7aWYoKG98MCkhPTApe3A9bztxPW87YnJlYWt9a1goKTtwPTA7cT0w
fWVsc2V7cD1uO3E9MH19d2hpbGUoMCk7bj0oZnwwKT09KGd8MCk7aWYobil7cj1tO3M9MH1lbHNl
e289bTttPTA7dD1wO3U9Zjt3aGlsZSgxKXt2PWRbdV18MDtpZigodiYxfDApPT0wKXt3PXY+Pj4x
fWVsc2V7dz1jW3UrND4+Ml18MH1pZigod3wwKT09MCl7YVt0XT0yO3g9bSsxfDA7eT1vLTF8MH1l
bHNle2FbdF09MTt4PW07eT1vfXY9dSsxMnwwO2lmKCh2fDApPT0oZ3wwKSl7cj15O3M9eDticmVh
a31lbHNle289eTttPXg7dD10KzF8MDt1PXZ9fX11PWJ8MDtiPWV8MDtlPWg7dD0wO3g9cztzPXI7
d2hpbGUoMSl7cj1jW3U+PjJdfDA7ZG97aWYoKHJ8MCk9PTApe3o9MH1lbHNle209Y1tyKzEyPj4y
XXwwO2lmKChtfDApPT0oY1tyKzE2Pj4yXXwwKSl7QT1iMFtjWyhjW3I+PjJdfDApKzM2Pj4yXSYx
MjddKHIpfDB9ZWxzZXtBPWNbbT4+Ml18MH1pZigoQXwwKT09LTEpe2NbdT4+Ml09MDt6PTA7YnJl
YWt9ZWxzZXt6PWNbdT4+Ml18MDticmVha319fXdoaWxlKDApO3I9KHp8MCk9PTA7bT1jW2I+PjJd
fDA7aWYoKG18MCk9PTApe0I9ejtDPTB9ZWxzZXt5PWNbbSsxMj4+Ml18MDtpZigoeXwwKT09KGNb
bSsxNj4+Ml18MCkpe0Q9YjBbY1soY1ttPj4yXXwwKSszNj4+Ml0mMTI3XShtKXwwfWVsc2V7RD1j
W3k+PjJdfDB9aWYoKER8MCk9PS0xKXtjW2I+PjJdPTA7RT0wfWVsc2V7RT1tfUI9Y1t1Pj4yXXww
O0M9RX1GPShDfDApPT0wO2lmKCEoKHJeRikmKHN8MCkhPTApKXticmVha31yPWNbQisxMj4+Ml18
MDtpZigocnwwKT09KGNbQisxNj4+Ml18MCkpe0c9YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3
XShCKXwwfWVsc2V7Rz1jW3I+PjJdfDB9aWYoayl7SD1HfWVsc2V7SD1iX1tjWyhjW2U+PjJdfDAp
KzI4Pj4yXSYzMV0oaCxHKXwwfWRve2lmKG4pe0k9eDtKPXN9ZWxzZXtyPXQrMXwwO0wyNDk6ZG97
aWYoayl7bT1zO3k9eDtvPXA7dz0wO3Y9Zjt3aGlsZSgxKXtkb3tpZigoYVtvXXwwKT09MSl7Sz12
O2lmKChhW0tdJjEpPT0wKXtMPXYrNHwwfWVsc2V7TD1jW3YrOD4+Ml18MH1pZigoSHwwKSE9KGNb
TCsodDw8Mik+PjJdfDApKXthW29dPTA7TT13O049eTtPPW0tMXwwO2JyZWFrfVA9ZFtLXXwwO2lm
KChQJjF8MCk9PTApe1E9UD4+PjF9ZWxzZXtRPWNbdis0Pj4yXXwwfWlmKChRfDApIT0ocnwwKSl7
TT0xO049eTtPPW07YnJlYWt9YVtvXT0yO009MTtOPXkrMXwwO089bS0xfDB9ZWxzZXtNPXc7Tj15
O089bX19d2hpbGUoMCk7UD12KzEyfDA7aWYoKFB8MCk9PShnfDApKXtSPU87Uz1OO1Q9TTticmVh
ayBMMjQ5fW09Tzt5PU47bz1vKzF8MDt3PU07dj1QfX1lbHNle3Y9czt3PXg7bz1wO3k9MDttPWY7
d2hpbGUoMSl7ZG97aWYoKGFbb118MCk9PTEpe1A9bTtpZigoYVtQXSYxKT09MCl7VT1tKzR8MH1l
bHNle1U9Y1ttKzg+PjJdfDB9aWYoKEh8MCkhPShiX1tjWyhjW2U+PjJdfDApKzI4Pj4yXSYzMV0o
aCxjW1UrKHQ8PDIpPj4yXXwwKXwwKSl7YVtvXT0wO1Y9eTtXPXc7WD12LTF8MDticmVha31LPWRb
UF18MDtpZigoSyYxfDApPT0wKXtZPUs+Pj4xfWVsc2V7WT1jW20rND4+Ml18MH1pZigoWXwwKSE9
KHJ8MCkpe1Y9MTtXPXc7WD12O2JyZWFrfWFbb109MjtWPTE7Vz13KzF8MDtYPXYtMXwwfWVsc2V7
Vj15O1c9dztYPXZ9fXdoaWxlKDApO0s9bSsxMnwwO2lmKChLfDApPT0oZ3wwKSl7Uj1YO1M9VztU
PVY7YnJlYWsgTDI0OX12PVg7dz1XO289bysxfDA7eT1WO209S319fXdoaWxlKDApO2lmKCFUKXtJ
PVM7Sj1SO2JyZWFrfXI9Y1t1Pj4yXXwwO209cisxMnwwO3k9Y1ttPj4yXXwwO2lmKCh5fDApPT0o
Y1tyKzE2Pj4yXXwwKSl7bz1jWyhjW3I+PjJdfDApKzQwPj4yXXwwO2IwW28mMTI3XShyKXwwfWVs
c2V7Y1ttPj4yXT15KzR9aWYoKFMrUnwwKT4+PjA8MnxuKXtJPVM7Sj1SO2JyZWFrfXk9dCsxfDA7
bT1TO3I9cDtvPWY7d2hpbGUoMSl7ZG97aWYoKGFbcl18MCk9PTIpe3c9ZFtvXXwwO2lmKCh3JjF8
MCk9PTApe1o9dz4+PjF9ZWxzZXtaPWNbbys0Pj4yXXwwfWlmKChafDApPT0oeXwwKSl7Xz1tO2Jy
ZWFrfWFbcl09MDtfPW0tMXwwfWVsc2V7Xz1tfX13aGlsZSgwKTt3PW8rMTJ8MDtpZigod3wwKT09
KGd8MCkpe0k9XztKPVI7YnJlYWt9ZWxzZXttPV87cj1yKzF8MDtvPXd9fX19d2hpbGUoMCk7dD10
KzF8MDt4PUk7cz1KfWRve2lmKChCfDApPT0wKXskPTF9ZWxzZXtKPWNbQisxMj4+Ml18MDtpZigo
SnwwKT09KGNbQisxNj4+Ml18MCkpe2FhPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8
MH1lbHNle2FhPWNbSj4+Ml18MH1pZigoYWF8MCk9PS0xKXtjW3U+PjJdPTA7JD0xO2JyZWFrfWVs
c2V7JD0oY1t1Pj4yXXwwKT09MDticmVha319fXdoaWxlKDApO2Rve2lmKEYpe2FiPTI2NH1lbHNl
e3U9Y1tDKzEyPj4yXXwwO2lmKCh1fDApPT0oY1tDKzE2Pj4yXXwwKSl7YWM9YjBbY1soY1tDPj4y
XXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7YWM9Y1t1Pj4yXXwwfWlmKChhY3wwKT09LTEpe2Nb
Yj4+Ml09MDthYj0yNjQ7YnJlYWt9ZWxzZXtpZigkXihDfDApPT0wKXticmVha31lbHNle2FiPTI2
NjticmVha319fX13aGlsZSgwKTtpZigoYWJ8MCk9PTI2NCl7aWYoJCl7YWI9MjY2fX1pZigoYWJ8
MCk9PTI2Nil7Y1tqPj4yXT1jW2o+PjJdfDJ9TDMzMDpkb3tpZihuKXthYj0yNzF9ZWxzZXskPWY7
Qz1wO3doaWxlKDEpe2lmKChhW0NdfDApPT0yKXthZD0kO2JyZWFrIEwzMzB9Yj0kKzEyfDA7aWYo
KGJ8MCk9PShnfDApKXthYj0yNzE7YnJlYWsgTDMzMH0kPWI7Qz1DKzF8MH19fXdoaWxlKDApO2lm
KChhYnwwKT09MjcxKXtjW2o+PjJdPWNbaj4+Ml18NDthZD1nfWlmKChxfDApPT0wKXtpPWw7cmV0
dXJuIGFkfDB9a0socSk7aT1sO3JldHVybiBhZHwwfWZ1bmN0aW9uIGZUKGIsZCxlLGYsZyxoLGop
e2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09
MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0w
O2s9aTtpPWkrMTEyfDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4y
XTtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209aysx
NnwwO249ayszMnwwO289ays0MHwwO3A9ays0OHwwO3E9ays1NnwwO3I9ays2NHwwO3M9ays3Mnww
O3Q9ays4MHwwO3U9aysxMDR8MDtpZigoY1tnKzQ+PjJdJjF8MCk9PTApe2Nbbj4+Ml09LTE7dj1j
WyhjW2Q+PjJdfDApKzE2Pj4yXXwwO3c9ZXwwO2NbcD4+Ml09Y1t3Pj4yXTtjW3E+PjJdPWNbZj4+
Ml07YlhbdiYxMjddKG8sZCxwLHEsZyxoLG4pO3E9Y1tvPj4yXXwwO2Nbdz4+Ml09cTtzd2l0Y2go
Y1tuPj4yXXwwKXtjYXNlIDE6e2Fbal09MTticmVha307Y2FzZSAwOnthW2pdPTA7YnJlYWt9O2Rl
ZmF1bHQ6e2Fbal09MTtjW2g+PjJdPTR9fWNbYj4+Ml09cTtpPWs7cmV0dXJufWVqKHIsZyk7cT1y
fDA7cj1jW3E+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW20+PjJdPTE1Njg4O2NbbSs0Pj4y
XT0xMjtjW20rOD4+Ml09MDtkVygxNTY4OCxtLDk2KX1tPShjWzM5MjNdfDApLTF8MDtuPWNbcis4
Pj4yXXwwO2Rve2lmKChjW3IrMTI+PjJdfDApLW4+PjI+Pj4wPm0+Pj4wKXt3PWNbbisobTw8Mik+
PjJdfDA7aWYoKHd8MCk9PTApe2JyZWFrfW89dzt3PWNbcT4+Ml18MDtkeih3KXwwO2VqKHMsZyk7
dz1zfDA7cD1jW3c+PjJdfDA7aWYoKGNbMzgyNl18MCkhPS0xKXtjW2w+PjJdPTE1MzA0O2NbbCs0
Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTMwNCxsLDk2KX1kPShjWzM4MjddfDApLTF8MDt2PWNb
cCs4Pj4yXXwwO2Rve2lmKChjW3ArMTI+PjJdfDApLXY+PjI+Pj4wPmQ+Pj4wKXt4PWNbdisoZDw8
Mik+PjJdfDA7aWYoKHh8MCk9PTApe2JyZWFrfXk9eDt6PWNbdz4+Ml18MDtkeih6KXwwO3o9dHww
O0E9eDtiWltjWyhjW0E+PjJdfDApKzI0Pj4yXSYxMjddKHoseSk7YlpbY1soY1tBPj4yXXwwKSsy
OD4+Ml0mMTI3XSh0KzEyfDAseSk7Y1t1Pj4yXT1jW2Y+PjJdO2Fbal09KGZTKGUsdSx6LHQrMjR8
MCxvLGgsMSl8MCk9PSh6fDApfDA7Y1tiPj4yXT1jW2U+PjJdO2VlKHQrMTJ8MCk7ZWUodHwwKTtp
PWs7cmV0dXJufX13aGlsZSgwKTtvPWJPKDQpfDA7a3Eobyk7Ymwob3wwLDgxNzYsMTM0KX19d2hp
bGUoMCk7az1iTyg0KXwwO2txKGspO2JsKGt8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZlUoYixlLGYs
ZyxoLGksaixrLGwsbSl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7
az1rfDA7bD1sfDA7bT1tfDA7dmFyIG49MCxvPTAscD0wLHE9MCxyPTAscz0wO249Y1tnPj4yXXww
O289KG58MCk9PShmfDApO2Rve2lmKG8pe3A9KGNbbSs5Nj4+Ml18MCk9PShifDApO2lmKCFwKXtp
ZigoY1ttKzEwMD4+Ml18MCkhPShifDApKXticmVha319Y1tnPj4yXT1mKzE7YVtmXT1wPzQzOjQ1
O2NbaD4+Ml09MDtxPTA7cmV0dXJuIHF8MH19d2hpbGUoMCk7cD1kW2pdfDA7aWYoKHAmMXwwKT09
MCl7cj1wPj4+MX1lbHNle3I9Y1tqKzQ+PjJdfDB9aWYoKHJ8MCkhPTAmKGJ8MCk9PShpfDApKXtp
PWNbbD4+Ml18MDtpZigoaS1rfDApPj0xNjApe3E9MDtyZXR1cm4gcXwwfWs9Y1toPj4yXXwwO2Nb
bD4+Ml09aSs0O2NbaT4+Ml09aztjW2g+PjJdPTA7cT0wO3JldHVybiBxfDB9az1tKzEwNHwwO2k9
bTt3aGlsZSgxKXtpZigoaXwwKT09KGt8MCkpe3M9azticmVha31pZigoY1tpPj4yXXwwKT09KGJ8
MCkpe3M9aTticmVha31lbHNle2k9aSs0fDB9fWk9cy1tfDA7bT1pPj4yO2lmKChpfDApPjkyKXtx
PS0xO3JldHVybiBxfDB9TDM5ODpkb3tzd2l0Y2goZXwwKXtjYXNlIDg6Y2FzZSAxMDp7aWYoKG18
MCk8KGV8MCkpe2JyZWFrIEwzOTh9ZWxzZXtxPS0xfXJldHVybiBxfDB9O2Nhc2UgMTY6e2lmKChp
fDApPDg4KXticmVhayBMMzk4fWlmKG8pe3E9LTE7cmV0dXJuIHF8MH1pZigobi1mfDApPj0zKXtx
PS0xO3JldHVybiBxfDB9aWYoKGFbbi0xfDBdfDApIT00OCl7cT0tMTtyZXR1cm4gcXwwfWNbaD4+
Ml09MDtzPWFbOTc0NCttfDBdfDA7Yj1jW2c+PjJdfDA7Y1tnPj4yXT1iKzE7YVtiXT1zO3E9MDty
ZXR1cm4gcXwwfTtkZWZhdWx0Ont9fX13aGlsZSgwKTtmPWFbOTc0NCttfDBdfDA7Y1tnPj4yXT1u
KzE7YVtuXT1mO2NbaD4+Ml09KGNbaD4+Ml18MCkrMTtxPTA7cmV0dXJuIHF8MH1mdW5jdGlvbiBm
VihiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8
MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAs
TT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wO2U9aTtp
PWkrMTQ0fDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7
Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSsxMDR8MDttPWUrMTEy
fDA7bj1lKzEyOHwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2gr
ND4+Ml0mNzR8MCl7Y2FzZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA2
NDp7dD04O2JyZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtmVyhtLGgsdSxsKTtrJChvfDAsMCwx
Mik7aD1uO2RSKG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHww
fWVsc2V7dj1uKzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1ty
Pj4yXT12O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9Y1tsPj4yXXwwO2w9
dzt3PWNbaD4+Ml18MDtMNDI2OndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtDPWNb
dysxMj4+Ml18MDtpZigoQ3wwKT09KGNbdysxNj4+Ml18MCkpe0Q9YjBbY1soY1t3Pj4yXXwwKSsz
Nj4+Ml0mMTI3XSh3KXwwfWVsc2V7RD1jW0M+PjJdfDB9aWYoKER8MCkhPS0xKXtCPXc7YnJlYWt9
Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7RT0oQnwwKT09MDtDPWNbZj4+Ml18MDtkb3tpZigoQ3ww
KT09MCl7Rj0zNjN9ZWxzZXtHPWNbQysxMj4+Ml18MDtpZigoR3wwKT09KGNbQysxNj4+Ml18MCkp
e0g9YjBbY1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7SD1jW0c+PjJdfDB9aWYo
KEh8MCk9PS0xKXtjW2Y+PjJdPTA7Rj0zNjM7YnJlYWt9ZWxzZXtHPShDfDApPT0wO2lmKEVeRyl7
ST1DO0o9RzticmVha31lbHNle0s9bDtMPUM7TT1HO2JyZWFrIEw0MjZ9fX19d2hpbGUoMCk7aWYo
KEZ8MCk9PTM2Myl7Rj0wO2lmKEUpe0s9bDtMPTA7TT0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Qz1k
W29dfDA7Rz0oQyYxfDApPT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEc/Qz4+PjE6Y1t6Pj4y
XXwwKXwwKSl7aWYoRyl7Tj1DPj4+MTtPPUM+Pj4xfWVsc2V7Qz1jW3o+PjJdfDA7Tj1DO089Q31k
UihuLE48PDEsMCk7aWYoKGFbb10mMSk9PTApe1A9MTB9ZWxzZXtQPShjW2c+PjJdJi0yKS0xfDB9
ZFIobixQLDApO2lmKChhW29dJjEpPT0wKXtRPXh9ZWxzZXtRPWNbeT4+Ml18MH1jW3A+PjJdPVEr
TztSPVF9ZWxzZXtSPWx9Qz1CKzEyfDA7Rz1jW0M+PjJdfDA7Uz1CKzE2fDA7aWYoKEd8MCk9PShj
W1M+PjJdfDApKXtUPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1Q9Y1tH
Pj4yXXwwfWlmKChmVShULHQsUixwLHMsQSxtLHYscix1KXwwKSE9MCl7Sz1SO0w9STtNPUo7YnJl
YWt9Rz1jW0M+PjJdfDA7aWYoKEd8MCk9PShjW1M+PjJdfDApKXtTPWNbKGNbQj4+Ml18MCkrNDA+
PjJdfDA7YjBbUyYxMjddKEIpfDA7bD1SO3c9Qjtjb250aW51ZX1lbHNle2NbQz4+Ml09Rys0O2w9
Ujt3PUI7Y29udGludWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1U9dz4+PjF9ZWxzZXtVPWNb
bSs0Pj4yXXwwfWRve2lmKChVfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2Jy
ZWFrfVI9Y1tzPj4yXXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09Un19d2hpbGUoMCk7Y1trPj4yXT1m
dShLLGNbcD4+Ml18MCxqLHQpfDA7ZnQobSx2LGNbcj4+Ml18MCxqKTtkb3tpZihFKXtWPTB9ZWxz
ZXtyPWNbQisxMj4+Ml18MDtpZigocnwwKT09KGNbQisxNj4+Ml18MCkpe1c9YjBbY1soY1tCPj4y
XXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7Vz1jW3I+PjJdfDB9aWYoKFd8MCkhPS0xKXtWPUI7
YnJlYWt9Y1toPj4yXT0wO1Y9MH19d2hpbGUoMCk7aD0oVnwwKT09MDtkb3tpZihNKXtGPTQwNX1l
bHNle0I9Y1tMKzEyPj4yXXwwO2lmKChCfDApPT0oY1tMKzE2Pj4yXXwwKSl7WD1iMFtjWyhjW0w+
PjJdfDApKzM2Pj4yXSYxMjddKEwpfDB9ZWxzZXtYPWNbQj4+Ml18MH1pZigoWHwwKT09LTEpe2Nb
Zj4+Ml09MDtGPTQwNTticmVha31pZighKGheKEx8MCk9PTApKXticmVha31ZPWJ8MDtjW1k+PjJd
PVY7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEZ8MCk9PTQwNSl7aWYo
aCl7YnJlYWt9WT1ifDA7Y1tZPj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDAp
O2Nbaj4+Ml09Y1tqPj4yXXwyO1k9YnwwO2NbWT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJu
fWZ1bmN0aW9uIGZXKGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0w
LGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTA7Zj1pO2k9aSs0MHwwO2c9ZnwwO2g9Zisx
NnwwO2o9ZiszMnwwO2VqKGosYik7Yj1qfDA7aj1jW2I+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0x
KXtjW2g+PjJdPTE1Njg4O2NbaCs0Pj4yXT0xMjtjW2grOD4+Ml09MDtkVygxNTY4OCxoLDk2KX1o
PShjWzM5MjNdfDApLTF8MDtrPWNbais4Pj4yXXwwO2Rve2lmKChjW2orMTI+PjJdfDApLWs+PjI+
Pj4wPmg+Pj4wKXtsPWNbaysoaDw8Mik+PjJdfDA7aWYoKGx8MCk9PTApe2JyZWFrfW09bDtuPWNb
KGNbbD4+Ml18MCkrNDg+PjJdfDA7Y2FbbiYxNV0obSw5NzQ0LDk3NzAsZCl8MDttPWNbYj4+Ml18
MDtpZigoY1szODI2XXwwKSE9LTEpe2NbZz4+Ml09MTUzMDQ7Y1tnKzQ+PjJdPTEyO2NbZys4Pj4y
XT0wO2RXKDE1MzA0LGcsOTYpfW49KGNbMzgyN118MCktMXwwO2w9Y1ttKzg+PjJdfDA7ZG97aWYo
KGNbbSsxMj4+Ml18MCktbD4+Mj4+PjA+bj4+PjApe289Y1tsKyhuPDwyKT4+Ml18MDtpZigob3ww
KT09MCl7YnJlYWt9cD1vO2NbZT4+Ml09YjBbY1soY1tvPj4yXXwwKSsxNj4+Ml0mMTI3XShwKXww
O2JaW2NbKGNbbz4+Ml18MCkrMjA+PjJdJjEyN10oYSxwKTtwPWNbYj4+Ml18MDtkeihwKXwwO2k9
ZjtyZXR1cm59fXdoaWxlKDApO249Yk8oNCl8MDtrcShuKTtibChufDAsODE3NiwxMzQpfX13aGls
ZSgwKTtmPWJPKDQpfDA7a3EoZik7YmwoZnwwLDgxNzYsMTM0KX1mdW5jdGlvbiBmWChiLGUsZixn
LGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEw9MCxNPTAsTj0wLE89MCxQ
PTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wO2U9aTtpPWkrMTQ0fDA7
bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSsxMDR8MDttPWUrMTEyfDA7bj1lKzEy
OHwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8
MCl7Y2FzZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA2NDp7dD04O2Jy
ZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtmVyhtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RS
KG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1u
Kzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nb
cz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9Y1tsPj4yXXwwO2w9dzt3PWNbaD4+
Ml18MDtMNTM1OndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtDPWNbdysxMj4+Ml18
MDtpZigoQ3wwKT09KGNbdysxNj4+Ml18MCkpe0Q9YjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3
XSh3KXwwfWVsc2V7RD1jW0M+PjJdfDB9aWYoKER8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0w
O0I9MH19d2hpbGUoMCk7RT0oQnwwKT09MDtDPWNbZj4+Ml18MDtkb3tpZigoQ3wwKT09MCl7Rj00
NTB9ZWxzZXtHPWNbQysxMj4+Ml18MDtpZigoR3wwKT09KGNbQysxNj4+Ml18MCkpe0g9YjBbY1so
Y1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7SD1jW0c+PjJdfDB9aWYoKEh8MCk9PS0x
KXtjW2Y+PjJdPTA7Rj00NTA7YnJlYWt9ZWxzZXtHPShDfDApPT0wO2lmKEVeRyl7ST1DO0o9Rzti
cmVha31lbHNle0w9bDtNPUM7Tj1HO2JyZWFrIEw1MzV9fX19d2hpbGUoMCk7aWYoKEZ8MCk9PTQ1
MCl7Rj0wO2lmKEUpe0w9bDtNPTA7Tj0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Qz1kW29dfDA7Rz0o
QyYxfDApPT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEc/Qz4+PjE6Y1t6Pj4yXXwwKXwwKSl7
aWYoRyl7Tz1DPj4+MTtQPUM+Pj4xfWVsc2V7Qz1jW3o+PjJdfDA7Tz1DO1A9Q31kUihuLE88PDEs
MCk7aWYoKGFbb10mMSk9PTApe1E9MTB9ZWxzZXtRPShjW2c+PjJdJi0yKS0xfDB9ZFIobixRLDAp
O2lmKChhW29dJjEpPT0wKXtSPXh9ZWxzZXtSPWNbeT4+Ml18MH1jW3A+PjJdPVIrUDtTPVJ9ZWxz
ZXtTPWx9Qz1CKzEyfDA7Rz1jW0M+PjJdfDA7VD1CKzE2fDA7aWYoKEd8MCk9PShjW1Q+PjJdfDAp
KXtVPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1U9Y1tHPj4yXXwwfWlm
KChmVShVLHQsUyxwLHMsQSxtLHYscix1KXwwKSE9MCl7TD1TO009STtOPUo7YnJlYWt9Rz1jW0M+
PjJdfDA7aWYoKEd8MCk9PShjW1Q+PjJdfDApKXtUPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBb
VCYxMjddKEIpfDA7bD1TO3c9Qjtjb250aW51ZX1lbHNle2NbQz4+Ml09Rys0O2w9Uzt3PUI7Y29u
dGludWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1Y9dz4+PjF9ZWxzZXtWPWNbbSs0Pj4yXXww
fWRve2lmKChWfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVM9Y1tz
Pj4yXXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09U319d2hpbGUoMCk7cz1mdyhMLGNbcD4+Ml18MCxq
LHQpfDA7Y1trPj4yXT1zO2Nbays0Pj4yXT1LO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoRSl7
Vz0wfWVsc2V7cj1jW0IrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW0IrMTY+PjJdfDApKXtYPWIwW2Nb
KGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1g9Y1tyPj4yXXwwfWlmKChYfDApIT0t
MSl7Vz1CO2JyZWFrfWNbaD4+Ml09MDtXPTB9fXdoaWxlKDApO2g9KFd8MCk9PTA7ZG97aWYoTil7
Rj00OTJ9ZWxzZXtCPWNbTSsxMj4+Ml18MDtpZigoQnwwKT09KGNbTSsxNj4+Ml18MCkpe1k9YjBb
Y1soY1tNPj4yXXwwKSszNj4+Ml0mMTI3XShNKXwwfWVsc2V7WT1jW0I+PjJdfDB9aWYoKFl8MCk9
PS0xKXtjW2Y+PjJdPTA7Rj00OTI7YnJlYWt9aWYoIShoXihNfDApPT0wKSl7YnJlYWt9Wj1ifDA7
Y1taPj4yXT1XO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDApPT00
OTIpe2lmKGgpe2JyZWFrfVo9YnwwO2NbWj4+Ml09VztkUChuKTtkUChtKTtpPWU7cmV0dXJufX13
aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtaPWJ8MDtjW1o+PjJdPVc7ZFAobik7ZFAobSk7aT1l
O3JldHVybn1mdW5jdGlvbiBmWShlLGYsZyxoLGosayxsKXtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8
MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1
PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9
MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0w
LFg9MCxZPTAsWj0wO2Y9aTtpPWkrMTQ0fDA7bT1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
Zz4+Ml09Y1ttPj4yXTttPWg7aD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1toPj4yXT1jW20+PjJd
O209ZisxMDR8MDtuPWYrMTEyfDA7bz1mKzEyOHwwO3A9bztxPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztyPWk7aT1pKzE2MHwwO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Q9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO3N3aXRjaChjW2orND4+Ml0mNzR8MCl7Y2FzZSA4Ont1PTE2O2JyZWFrfTtjYXNlIDY0
Ont1PTg7YnJlYWt9O2Nhc2UgMDp7dT0wO2JyZWFrfTtkZWZhdWx0Ont1PTEwfX12PWZ8MDtmVyhu
LGosdixtKTtrJChwfDAsMCwxMik7aj1vO2RSKG8sMTAsMCk7aWYoKGFbcF0mMSk9PTApe3c9aisx
fDA7eD13O3k9dzt6PW8rOHwwfWVsc2V7dz1vKzh8MDt4PWNbdz4+Ml18MDt5PWorMXwwO3o9d31j
W3E+PjJdPXg7dz1yfDA7Y1tzPj4yXT13O2NbdD4+Ml09MDtqPWd8MDtnPWh8MDtoPW98MDtBPW8r
NHwwO0I9Y1ttPj4yXXwwO209eDt4PWNbaj4+Ml18MDtMNjI0OndoaWxlKDEpe2Rve2lmKCh4fDAp
PT0wKXtDPTB9ZWxzZXtEPWNbeCsxMj4+Ml18MDtpZigoRHwwKT09KGNbeCsxNj4+Ml18MCkpe0U9
YjBbY1soY1t4Pj4yXXwwKSszNj4+Ml0mMTI3XSh4KXwwfWVsc2V7RT1jW0Q+PjJdfDB9aWYoKEV8
MCkhPS0xKXtDPXg7YnJlYWt9Y1tqPj4yXT0wO0M9MH19d2hpbGUoMCk7Rj0oQ3wwKT09MDtEPWNb
Zz4+Ml18MDtkb3tpZigoRHwwKT09MCl7Rz01MjB9ZWxzZXtIPWNbRCsxMj4+Ml18MDtpZigoSHww
KT09KGNbRCsxNj4+Ml18MCkpe0k9YjBbY1soY1tEPj4yXXwwKSszNj4+Ml0mMTI3XShEKXwwfWVs
c2V7ST1jW0g+PjJdfDB9aWYoKEl8MCk9PS0xKXtjW2c+PjJdPTA7Rz01MjA7YnJlYWt9ZWxzZXtI
PShEfDApPT0wO2lmKEZeSCl7Sj1EO0s9SDticmVha31lbHNle0w9bTtNPUQ7Tj1IO2JyZWFrIEw2
MjR9fX19d2hpbGUoMCk7aWYoKEd8MCk9PTUyMCl7Rz0wO2lmKEYpe0w9bTtNPTA7Tj0xO2JyZWFr
fWVsc2V7Sj0wO0s9MX19RD1kW3BdfDA7SD0oRCYxfDApPT0wO2lmKCgoY1txPj4yXXwwKS1tfDAp
PT0oKEg/RD4+PjE6Y1tBPj4yXXwwKXwwKSl7aWYoSCl7Tz1EPj4+MTtQPUQ+Pj4xfWVsc2V7RD1j
W0E+PjJdfDA7Tz1EO1A9RH1kUihvLE88PDEsMCk7aWYoKGFbcF0mMSk9PTApe1E9MTB9ZWxzZXtR
PShjW2g+PjJdJi0yKS0xfDB9ZFIobyxRLDApO2lmKChhW3BdJjEpPT0wKXtSPXl9ZWxzZXtSPWNb
ej4+Ml18MH1jW3E+PjJdPVIrUDtTPVJ9ZWxzZXtTPW19RD1DKzEyfDA7SD1jW0Q+PjJdfDA7VD1D
KzE2fDA7aWYoKEh8MCk9PShjW1Q+PjJdfDApKXtVPWIwW2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEy
N10oQyl8MH1lbHNle1U9Y1tIPj4yXXwwfWlmKChmVShVLHUsUyxxLHQsQixuLHcscyx2KXwwKSE9
MCl7TD1TO009SjtOPUs7YnJlYWt9SD1jW0Q+PjJdfDA7aWYoKEh8MCk9PShjW1Q+PjJdfDApKXtU
PWNbKGNbQz4+Ml18MCkrNDA+PjJdfDA7YjBbVCYxMjddKEMpfDA7bT1TO3g9Qztjb250aW51ZX1l
bHNle2NbRD4+Ml09SCs0O209Uzt4PUM7Y29udGludWV9fXg9ZFtuXXwwO2lmKCh4JjF8MCk9PTAp
e1Y9eD4+PjF9ZWxzZXtWPWNbbis0Pj4yXXwwfWRve2lmKChWfDApIT0wKXt4PWNbcz4+Ml18MDtp
ZigoeC1yfDApPj0xNjApe2JyZWFrfVM9Y1t0Pj4yXXwwO2Nbcz4+Ml09eCs0O2NbeD4+Ml09U319
d2hpbGUoMCk7YltsPj4xXT1meihMLGNbcT4+Ml18MCxrLHUpfDA7ZnQobix3LGNbcz4+Ml18MCxr
KTtkb3tpZihGKXtXPTB9ZWxzZXtzPWNbQysxMj4+Ml18MDtpZigoc3wwKT09KGNbQysxNj4+Ml18
MCkpe1g9YjBbY1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7WD1jW3M+PjJdfDB9
aWYoKFh8MCkhPS0xKXtXPUM7YnJlYWt9Y1tqPj4yXT0wO1c9MH19d2hpbGUoMCk7aj0oV3wwKT09
MDtkb3tpZihOKXtHPTU2Mn1lbHNle0M9Y1tNKzEyPj4yXXwwO2lmKChDfDApPT0oY1tNKzE2Pj4y
XXwwKSl7WT1iMFtjWyhjW00+PjJdfDApKzM2Pj4yXSYxMjddKE0pfDB9ZWxzZXtZPWNbQz4+Ml18
MH1pZigoWXwwKT09LTEpe2NbZz4+Ml09MDtHPTU2MjticmVha31pZighKGpeKE18MCk9PTApKXti
cmVha31aPWV8MDtjW1o+PjJdPVc7ZFAobyk7ZFAobik7aT1mO3JldHVybn19d2hpbGUoMCk7ZG97
aWYoKEd8MCk9PTU2Mil7aWYoail7YnJlYWt9Wj1lfDA7Y1taPj4yXT1XO2RQKG8pO2RQKG4pO2k9
ZjtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4yXXwyO1o9ZXwwO2NbWj4+Ml09VztkUChv
KTtkUChuKTtpPWY7cmV0dXJufWZ1bmN0aW9uIGZaKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0w
LEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAs
VD0wLFU9MCxWPTAsVz0wLFg9MCxZPTA7ZT1pO2k9aSsxNDR8MDtsPWY7Zj1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+
PjJdPWNbbD4+Ml07bD1lKzEwNHwwO209ZSsxMTJ8MDtuPWUrMTI4fDA7bz1uO3A9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDg6e3Q9MTY7YnJl
YWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDY0Ont0PTg7YnJlYWt9O2RlZmF1bHQ6e3Q9MTB9
fXU9ZXwwO2ZXKG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtpZigoYVtvXSYx
KT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2Pj4yXXwwO3g9
aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9ZnwwO2Y9Z3ww
O2c9bnwwO3o9bis0fDA7QT1jW2w+PjJdfDA7bD13O3c9Y1toPj4yXXwwO0w3MTM6d2hpbGUoMSl7
ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNle0M9Y1t3KzEyPj4yXXwwO2lmKChDfDApPT0oY1t3KzE2
Pj4yXXwwKSl7RD1iMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYxMjddKHcpfDB9ZWxzZXtEPWNbQz4+
Ml18MH1pZigoRHwwKSE9LTEpe0I9dzticmVha31jW2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtFPShC
fDApPT0wO0M9Y1tmPj4yXXwwO2Rve2lmKChDfDApPT0wKXtGPTU5MH1lbHNle0c9Y1tDKzEyPj4y
XXwwO2lmKChHfDApPT0oY1tDKzE2Pj4yXXwwKSl7SD1iMFtjWyhjW0M+PjJdfDApKzM2Pj4yXSYx
MjddKEMpfDB9ZWxzZXtIPWNbRz4+Ml18MH1pZigoSHwwKT09LTEpe2NbZj4+Ml09MDtGPTU5MDti
cmVha31lbHNle0c9KEN8MCk9PTA7aWYoRV5HKXtJPUM7Sj1HO2JyZWFrfWVsc2V7Sz1sO0w9QztN
PUc7YnJlYWsgTDcxM319fX13aGlsZSgwKTtpZigoRnwwKT09NTkwKXtGPTA7aWYoRSl7Sz1sO0w9
MDtNPTE7YnJlYWt9ZWxzZXtJPTA7Sj0xfX1DPWRbb118MDtHPShDJjF8MCk9PTA7aWYoKChjW3A+
PjJdfDApLWx8MCk9PSgoRz9DPj4+MTpjW3o+PjJdfDApfDApKXtpZihHKXtOPUM+Pj4xO089Qz4+
PjF9ZWxzZXtDPWNbej4+Ml18MDtOPUM7Tz1DfWRSKG4sTjw8MSwwKTtpZigoYVtvXSYxKT09MCl7
UD0xMH1lbHNle1A9KGNbZz4+Ml0mLTIpLTF8MH1kUihuLFAsMCk7aWYoKGFbb10mMSk9PTApe1E9
eH1lbHNle1E9Y1t5Pj4yXXwwfWNbcD4+Ml09UStPO1I9UX1lbHNle1I9bH1DPUIrMTJ8MDtHPWNb
Qz4+Ml18MDtTPUIrMTZ8MDtpZigoR3wwKT09KGNbUz4+Ml18MCkpe1Q9YjBbY1soY1tCPj4yXXww
KSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7VD1jW0c+PjJdfDB9aWYoKGZVKFQsdCxSLHAscyxBLG0s
dixyLHUpfDApIT0wKXtLPVI7TD1JO009SjticmVha31HPWNbQz4+Ml18MDtpZigoR3wwKT09KGNb
Uz4+Ml18MCkpe1M9Y1soY1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtTJjEyN10oQil8MDtsPVI7dz1C
O2NvbnRpbnVlfWVsc2V7Y1tDPj4yXT1HKzQ7bD1SO3c9Qjtjb250aW51ZX19dz1kW21dfDA7aWYo
KHcmMXwwKT09MCl7VT13Pj4+MX1lbHNle1U9Y1ttKzQ+PjJdfDB9ZG97aWYoKFV8MCkhPTApe3c9
Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9Uj1jW3M+PjJdfDA7Y1tyPj4yXT13KzQ7
Y1t3Pj4yXT1SfX13aGlsZSgwKTtjW2s+PjJdPWZCKEssY1twPj4yXXwwLGosdCl8MDtmdChtLHYs
Y1tyPj4yXXwwLGopO2Rve2lmKEUpe1Y9MH1lbHNle3I9Y1tCKzEyPj4yXXwwO2lmKChyfDApPT0o
Y1tCKzE2Pj4yXXwwKSl7Vz1iMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtX
PWNbcj4+Ml18MH1pZigoV3wwKSE9LTEpe1Y9QjticmVha31jW2g+PjJdPTA7Vj0wfX13aGlsZSgw
KTtoPShWfDApPT0wO2Rve2lmKE0pe0Y9NjMyfWVsc2V7Qj1jW0wrMTI+PjJdfDA7aWYoKEJ8MCk9
PShjW0wrMTY+PjJdfDApKXtYPWIwW2NbKGNbTD4+Ml18MCkrMzY+PjJdJjEyN10oTCl8MH1lbHNl
e1g9Y1tCPj4yXXwwfWlmKChYfDApPT0tMSl7Y1tmPj4yXT0wO0Y9NjMyO2JyZWFrfWlmKCEoaF4o
THwwKT09MCkpe2JyZWFrfVk9YnwwO2NbWT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13
aGlsZSgwKTtkb3tpZigoRnwwKT09NjMyKXtpZihoKXticmVha31ZPWJ8MDtjW1k+PjJdPVY7ZFAo
bik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7WT1ifDA7Y1tZ
Pj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZl8oYixlLGYsZyxoLGosayl7
Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxR
PTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MDtlPWk7aT1pKzE0NHwwO2w9ZjtmPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMTA0fDA7bT1lKzExMnwwO249ZSsxMjh8MDtvPW47
cD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2Ug
ODp7dD0xNjticmVha307Y2FzZSA2NDp7dD04O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307ZGVm
YXVsdDp7dD0xMH19dT1lfDA7ZlcobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtkUihuLDEwLDAp
O2lmKChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1j
W3Y+PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7
aD1mfDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWNbbD4+Ml18MDtsPXc7dz1jW2g+PjJdfDA7TDgw
Mjp3aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7Qz1jW3crMTI+PjJdfDA7aWYoKEN8
MCk9PShjW3crMTY+PjJdfDApKXtEPWIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MH1l
bHNle0Q9Y1tDPj4yXXwwfWlmKChEfDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9fXdo
aWxlKDApO0U9KEJ8MCk9PTA7Qz1jW2Y+PjJdfDA7ZG97aWYoKEN8MCk9PTApe0Y9NjYwfWVsc2V7
Rz1jW0MrMTI+PjJdfDA7aWYoKEd8MCk9PShjW0MrMTY+PjJdfDApKXtIPWIwW2NbKGNbQz4+Ml18
MCkrMzY+PjJdJjEyN10oQyl8MH1lbHNle0g9Y1tHPj4yXXwwfWlmKChIfDApPT0tMSl7Y1tmPj4y
XT0wO0Y9NjYwO2JyZWFrfWVsc2V7Rz0oQ3wwKT09MDtpZihFXkcpe0k9QztKPUc7YnJlYWt9ZWxz
ZXtLPWw7TD1DO009RzticmVhayBMODAyfX19fXdoaWxlKDApO2lmKChGfDApPT02NjApe0Y9MDtp
ZihFKXtLPWw7TD0wO009MTticmVha31lbHNle0k9MDtKPTF9fUM9ZFtvXXwwO0c9KEMmMXwwKT09
MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChHP0M+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEcpe049
Qz4+PjE7Tz1DPj4+MX1lbHNle0M9Y1t6Pj4yXXwwO049QztPPUN9ZFIobixOPDwxLDApO2lmKChh
W29dJjEpPT0wKXtQPTEwfWVsc2V7UD0oY1tnPj4yXSYtMiktMXwwfWRSKG4sUCwwKTtpZigoYVtv
XSYxKT09MCl7UT14fWVsc2V7UT1jW3k+PjJdfDB9Y1twPj4yXT1RK087Uj1RfWVsc2V7Uj1sfUM9
QisxMnwwO0c9Y1tDPj4yXXwwO1M9QisxNnwwO2lmKChHfDApPT0oY1tTPj4yXXwwKSl7VD1iMFtj
WyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtUPWNbRz4+Ml18MH1pZigoZlUoVCx0
LFIscCxzLEEsbSx2LHIsdSl8MCkhPTApe0s9UjtMPUk7TT1KO2JyZWFrfUc9Y1tDPj4yXXwwO2lm
KChHfDApPT0oY1tTPj4yXXwwKSl7Uz1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1MmMTI3XShC
KXwwO2w9Ujt3PUI7Y29udGludWV9ZWxzZXtjW0M+PjJdPUcrNDtsPVI7dz1CO2NvbnRpbnVlfX13
PWRbbV18MDtpZigodyYxfDApPT0wKXtVPXc+Pj4xfWVsc2V7VT1jW20rND4+Ml18MH1kb3tpZigo
VXwwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31SPWNbcz4+Ml18MDtj
W3I+PjJdPXcrNDtjW3c+PjJdPVJ9fXdoaWxlKDApO2Nbaz4+Ml09ZkQoSyxjW3A+PjJdfDAsaix0
KXwwO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoRSl7Vj0wfWVsc2V7cj1jW0IrMTI+PjJdfDA7
aWYoKHJ8MCk9PShjW0IrMTY+PjJdfDApKXtXPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10o
Qil8MH1lbHNle1c9Y1tyPj4yXXwwfWlmKChXfDApIT0tMSl7Vj1CO2JyZWFrfWNbaD4+Ml09MDtW
PTB9fXdoaWxlKDApO2g9KFZ8MCk9PTA7ZG97aWYoTSl7Rj03MDJ9ZWxzZXtCPWNbTCsxMj4+Ml18
MDtpZigoQnwwKT09KGNbTCsxNj4+Ml18MCkpe1g9YjBbY1soY1tMPj4yXXwwKSszNj4+Ml0mMTI3
XShMKXwwfWVsc2V7WD1jW0I+PjJdfDB9aWYoKFh8MCk9PS0xKXtjW2Y+PjJdPTA7Rj03MDI7YnJl
YWt9aWYoIShoXihMfDApPT0wKSl7YnJlYWt9WT1ifDA7Y1tZPj4yXT1WO2RQKG4pO2RQKG0pO2k9
ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDApPT03MDIpe2lmKGgpe2JyZWFrfVk9YnwwO2Nb
WT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18
MjtZPWJ8MDtjW1k+PjJdPVY7ZFAobik7ZFAobSk7aT1lO3JldHVybn1mdW5jdGlvbiBmJChiLGUs
ZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIg
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6
PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEw9MCxNPTAsTj0wLE89
MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wO2U9aTtpPWkrMTQ0
fDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSsxMDR8MDttPWUrMTEyfDA7bj1l
KzEyOHwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0m
NzR8MCl7Y2FzZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA2NDp7dD04
O2JyZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtmVyhtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1u
O2RSKG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7
dj1uKzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12
O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9Y1tsPj4yXXwwO2w9dzt3PWNb
aD4+Ml18MDtMODkxOndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtDPWNbdysxMj4+
Ml18MDtpZigoQ3wwKT09KGNbdysxNj4+Ml18MCkpe0Q9YjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0m
MTI3XSh3KXwwfWVsc2V7RD1jW0M+PjJdfDB9aWYoKER8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4y
XT0wO0I9MH19d2hpbGUoMCk7RT0oQnwwKT09MDtDPWNbZj4+Ml18MDtkb3tpZigoQ3wwKT09MCl7
Rj03MzB9ZWxzZXtHPWNbQysxMj4+Ml18MDtpZigoR3wwKT09KGNbQysxNj4+Ml18MCkpe0g9YjBb
Y1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7SD1jW0c+PjJdfDB9aWYoKEh8MCk9
PS0xKXtjW2Y+PjJdPTA7Rj03MzA7YnJlYWt9ZWxzZXtHPShDfDApPT0wO2lmKEVeRyl7ST1DO0o9
RzticmVha31lbHNle0w9bDtNPUM7Tj1HO2JyZWFrIEw4OTF9fX19d2hpbGUoMCk7aWYoKEZ8MCk9
PTczMCl7Rj0wO2lmKEUpe0w9bDtNPTA7Tj0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Qz1kW29dfDA7
Rz0oQyYxfDApPT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEc/Qz4+PjE6Y1t6Pj4yXXwwKXww
KSl7aWYoRyl7Tz1DPj4+MTtQPUM+Pj4xfWVsc2V7Qz1jW3o+PjJdfDA7Tz1DO1A9Q31kUihuLE88
PDEsMCk7aWYoKGFbb10mMSk9PTApe1E9MTB9ZWxzZXtRPShjW2c+PjJdJi0yKS0xfDB9ZFIobixR
LDApO2lmKChhW29dJjEpPT0wKXtSPXh9ZWxzZXtSPWNbeT4+Ml18MH1jW3A+PjJdPVIrUDtTPVJ9
ZWxzZXtTPWx9Qz1CKzEyfDA7Rz1jW0M+PjJdfDA7VD1CKzE2fDA7aWYoKEd8MCk9PShjW1Q+PjJd
fDApKXtVPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1U9Y1tHPj4yXXww
fWlmKChmVShVLHQsUyxwLHMsQSxtLHYscix1KXwwKSE9MCl7TD1TO009STtOPUo7YnJlYWt9Rz1j
W0M+PjJdfDA7aWYoKEd8MCk9PShjW1Q+PjJdfDApKXtUPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7
YjBbVCYxMjddKEIpfDA7bD1TO3c9Qjtjb250aW51ZX1lbHNle2NbQz4+Ml09Rys0O2w9Uzt3PUI7
Y29udGludWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1Y9dz4+PjF9ZWxzZXtWPWNbbSs0Pj4y
XXwwfWRve2lmKChWfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVM9
Y1tzPj4yXXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09U319d2hpbGUoMCk7cz1mRihMLGNbcD4+Ml18
MCxqLHQpfDA7Y1trPj4yXT1zO2Nbays0Pj4yXT1LO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYo
RSl7Vz0wfWVsc2V7cj1jW0IrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW0IrMTY+PjJdfDApKXtYPWIw
W2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1g9Y1tyPj4yXXwwfWlmKChYfDAp
IT0tMSl7Vz1CO2JyZWFrfWNbaD4+Ml09MDtXPTB9fXdoaWxlKDApO2g9KFd8MCk9PTA7ZG97aWYo
Til7Rj03NzJ9ZWxzZXtCPWNbTSsxMj4+Ml18MDtpZigoQnwwKT09KGNbTSsxNj4+Ml18MCkpe1k9
YjBbY1soY1tNPj4yXXwwKSszNj4+Ml0mMTI3XShNKXwwfWVsc2V7WT1jW0I+PjJdfDB9aWYoKFl8
MCk9PS0xKXtjW2Y+PjJdPTA7Rj03NzI7YnJlYWt9aWYoIShoXihNfDApPT0wKSl7YnJlYWt9Wj1i
fDA7Y1taPj4yXT1XO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDAp
PT03NzIpe2lmKGgpe2JyZWFrfVo9YnwwO2NbWj4+Ml09VztkUChuKTtkUChtKTtpPWU7cmV0dXJu
fX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtaPWJ8MDtjW1o+PjJdPVc7ZFAobik7ZFAobSk7
aT1lO3JldHVybn1mdW5jdGlvbiBmMChiLGUsZixoLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDto
PWh8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0w
LEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAs
Vz0wLFg9MCxZPTAsWj0wLF89MCwkPTA7ZT1pO2k9aSsxNzZ8MDttPWY7Zj1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209aDtoPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2g+
PjJdPWNbbT4+Ml07bT1lKzEyOHwwO249ZSsxMzZ8MDtvPWUrMTQ0fDA7cD1lKzE2MHwwO3E9cDty
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzE2MHwwO3Q9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3c9aTtp
PWkrMXwwO2k9aSs3Pj4zPDwzO3g9ZXwwO2YxKG8saix4LG0sbik7ayQocXwwLDAsMTIpO2o9cDtk
UihwLDEwLDApO2lmKChhW3FdJjEpPT0wKXt5PWorMXwwO3o9eTtBPXk7Qj1wKzh8MH1lbHNle3k9
cCs4fDA7ej1jW3k+PjJdfDA7QT1qKzF8MDtCPXl9Y1tyPj4yXT16O3k9c3wwO2NbdD4+Ml09eTtj
W3U+PjJdPTA7YVt2XT0xO2Fbd109Njk7aj1mfDA7Zj1ofDA7aD1wfDA7Qz1wKzR8MDtEPWNbbT4+
Ml18MDttPWNbbj4+Ml18MDtuPXo7ej1jW2o+PjJdfDA7TDk3NTp3aGlsZSgxKXtkb3tpZigoenww
KT09MCl7RT0wfWVsc2V7Rj1jW3orMTI+PjJdfDA7aWYoKEZ8MCk9PShjW3orMTY+PjJdfDApKXtH
PWIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MH1lbHNle0c9Y1tGPj4yXXwwfWlmKChH
fDApIT0tMSl7RT16O2JyZWFrfWNbaj4+Ml09MDtFPTB9fXdoaWxlKDApO0g9KEV8MCk9PTA7Rj1j
W2Y+PjJdfDA7ZG97aWYoKEZ8MCk9PTApe0k9Nzk2fWVsc2V7Sj1jW0YrMTI+PjJdfDA7aWYoKEp8
MCk9PShjW0YrMTY+PjJdfDApKXtLPWIwW2NbKGNbRj4+Ml18MCkrMzY+PjJdJjEyN10oRil8MH1l
bHNle0s9Y1tKPj4yXXwwfWlmKChLfDApPT0tMSl7Y1tmPj4yXT0wO0k9Nzk2O2JyZWFrfWVsc2V7
Sj0oRnwwKT09MDtpZihIXkope0w9RjtNPUo7YnJlYWt9ZWxzZXtOPW47Tz1GO1A9SjticmVhayBM
OTc1fX19fXdoaWxlKDApO2lmKChJfDApPT03OTYpe0k9MDtpZihIKXtOPW47Tz0wO1A9MTticmVh
a31lbHNle0w9MDtNPTF9fUY9ZFtxXXwwO0o9KEYmMXwwKT09MDtpZigoKGNbcj4+Ml18MCktbnww
KT09KChKP0Y+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKEope1E9Rj4+PjE7Uj1GPj4+MX1lbHNle0Y9
Y1tDPj4yXXwwO1E9RjtSPUZ9ZFIocCxRPDwxLDApO2lmKChhW3FdJjEpPT0wKXtTPTEwfWVsc2V7
Uz0oY1toPj4yXSYtMiktMXwwfWRSKHAsUywwKTtpZigoYVtxXSYxKT09MCl7VD1BfWVsc2V7VD1j
W0I+PjJdfDB9Y1tyPj4yXT1UK1I7VT1UfWVsc2V7VT1ufUY9RSsxMnwwO0o9Y1tGPj4yXXwwO1Y9
RSsxNnwwO2lmKChKfDApPT0oY1tWPj4yXXwwKSl7Vz1iMFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYx
MjddKEUpfDB9ZWxzZXtXPWNbSj4+Ml18MH1pZigoZjIoVyx2LHcsVSxyLEQsbSxvLHksdCx1LHgp
fDApIT0wKXtOPVU7Tz1MO1A9TTticmVha31KPWNbRj4+Ml18MDtpZigoSnwwKT09KGNbVj4+Ml18
MCkpe1Y9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtWJjEyN10oRSl8MDtuPVU7ej1FO2NvbnRp
bnVlfWVsc2V7Y1tGPj4yXT1KKzQ7bj1VO3o9RTtjb250aW51ZX19ej1kW29dfDA7aWYoKHomMXww
KT09MCl7WD16Pj4+MX1lbHNle1g9Y1tvKzQ+PjJdfDB9ZG97aWYoKFh8MCkhPTApe2lmKChhW3Zd
JjEpPT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1zfDApPj0xNjApe2JyZWFrfVU9Y1t1Pj4y
XXwwO2NbdD4+Ml09eis0O2Nbej4+Ml09VX19d2hpbGUoMCk7Z1tsPj4yXT0rZkkoTixjW3I+PjJd
fDAsayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihIKXtZPTB9ZWxzZXt0PWNbRSsxMj4+Ml18
MDtpZigodHwwKT09KGNbRSsxNj4+Ml18MCkpe1o9YjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3
XShFKXwwfWVsc2V7Wj1jW3Q+PjJdfDB9aWYoKFp8MCkhPS0xKXtZPUU7YnJlYWt9Y1tqPj4yXT0w
O1k9MH19d2hpbGUoMCk7aj0oWXwwKT09MDtkb3tpZihQKXtJPTgzOX1lbHNle0U9Y1tPKzEyPj4y
XXwwO2lmKChFfDApPT0oY1tPKzE2Pj4yXXwwKSl7Xz1iMFtjWyhjW08+PjJdfDApKzM2Pj4yXSYx
MjddKE8pfDB9ZWxzZXtfPWNbRT4+Ml18MH1pZigoX3wwKT09LTEpe2NbZj4+Ml09MDtJPTgzOTti
cmVha31pZighKGpeKE98MCk9PTApKXticmVha30kPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7ZFAobyk7
aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEl8MCk9PTgzOSl7aWYoail7YnJlYWt9JD1ifDA7
Y1skPj4yXT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4y
XXwyOyQ9YnwwO2NbJD4+Ml09WTtkUChwKTtkUChvKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGYxKGEs
YixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7Zz1pO2k9aSs0MHwwO2g9Z3wwO2o9ZysxNnww
O2s9ZyszMnwwO2VqKGssYik7Yj1rfDA7az1jW2I+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtj
W2o+PjJdPTE1Njg4O2Nbais0Pj4yXT0xMjtjW2orOD4+Ml09MDtkVygxNTY4OCxqLDk2KX1qPShj
WzM5MjNdfDApLTF8MDtsPWNbays4Pj4yXXwwO2Rve2lmKChjW2srMTI+PjJdfDApLWw+PjI+Pj4w
Pmo+Pj4wKXttPWNbbCsoajw8Mik+PjJdfDA7aWYoKG18MCk9PTApe2JyZWFrfW49bTtvPWNbKGNb
bT4+Ml18MCkrNDg+PjJdfDA7Y2FbbyYxNV0obiw5NzQ0LDk3NzYsZCl8MDtuPWNbYj4+Ml18MDtp
ZigoY1szODI2XXwwKSE9LTEpe2NbaD4+Ml09MTUzMDQ7Y1toKzQ+PjJdPTEyO2NbaCs4Pj4yXT0w
O2RXKDE1MzA0LGgsOTYpfW89KGNbMzgyN118MCktMXwwO209Y1tuKzg+PjJdfDA7ZG97aWYoKGNb
bisxMj4+Ml18MCktbT4+Mj4+PjA+bz4+PjApe3A9Y1ttKyhvPDwyKT4+Ml18MDtpZigocHwwKT09
MCl7YnJlYWt9cT1wO3I9cDtjW2U+PjJdPWIwW2NbKGNbcj4+Ml18MCkrMTI+PjJdJjEyN10ocSl8
MDtjW2Y+PjJdPWIwW2NbKGNbcj4+Ml18MCkrMTY+PjJdJjEyN10ocSl8MDtiWltjWyhjW3A+PjJd
fDApKzIwPj4yXSYxMjddKGEscSk7cT1jW2I+PjJdfDA7ZHoocSl8MDtpPWc7cmV0dXJufX13aGls
ZSgwKTtvPWJPKDQpfDA7a3Eobyk7Ymwob3wwLDgxNzYsMTM0KX19d2hpbGUoMCk7Zz1iTyg0KXww
O2txKGcpO2JsKGd8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZjIoYixlLGYsZyxoLGksaixrLGwsbSxu
LG8pe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO2s9a3wwO2w9bHww
O209bXwwO249bnwwO289b3wwO3ZhciBwPTAscT0wLHI9MCxzPTAsdD0wO2lmKChifDApPT0oaXww
KSl7aWYoKGFbZV0mMSk9PTApe3A9LTE7cmV0dXJuIHB8MH1hW2VdPTA7aT1jW2g+PjJdfDA7Y1to
Pj4yXT1pKzE7YVtpXT00NjtpPWRba118MDtpZigoaSYxfDApPT0wKXtxPWk+Pj4xfWVsc2V7cT1j
W2srND4+Ml18MH1pZigocXwwKT09MCl7cD0wO3JldHVybiBwfDB9cT1jW20+PjJdfDA7aWYoKHEt
bHwwKT49MTYwKXtwPTA7cmV0dXJuIHB8MH1pPWNbbj4+Ml18MDtjW20+PjJdPXErNDtjW3E+PjJd
PWk7cD0wO3JldHVybiBwfDB9ZG97aWYoKGJ8MCk9PShqfDApKXtpPWRba118MDtpZigoaSYxfDAp
PT0wKXtyPWk+Pj4xfWVsc2V7cj1jW2srND4+Ml18MH1pZigocnwwKT09MCl7YnJlYWt9aWYoKGFb
ZV0mMSk9PTApe3A9LTE7cmV0dXJuIHB8MH1pPWNbbT4+Ml18MDtpZigoaS1sfDApPj0xNjApe3A9
MDtyZXR1cm4gcHwwfXE9Y1tuPj4yXXwwO2NbbT4+Ml09aSs0O2NbaT4+Ml09cTtjW24+PjJdPTA7
cD0wO3JldHVybiBwfDB9fXdoaWxlKDApO3I9bysxMjh8MDtqPW87d2hpbGUoMSl7aWYoKGp8MCk9
PShyfDApKXtzPXI7YnJlYWt9aWYoKGNbaj4+Ml18MCk9PShifDApKXtzPWo7YnJlYWt9ZWxzZXtq
PWorNHwwfX1qPXMtb3wwO289aj4+MjtpZigoanwwKT4xMjQpe3A9LTE7cmV0dXJuIHB8MH1zPWFb
OTc0NCtvfDBdfDA7TDExMTU6ZG97c3dpdGNoKG98MCl7Y2FzZSAyNTpjYXNlIDI0OntiPWNbaD4+
Ml18MDtkb3tpZigoYnwwKSE9KGd8MCkpe2lmKChhW2ItMXwwXSY5NXwwKT09KGFbZl0mMTI3fDAp
KXticmVha31lbHNle3A9LTF9cmV0dXJuIHB8MH19d2hpbGUoMCk7Y1toPj4yXT1iKzE7YVtiXT1z
O3A9MDtyZXR1cm4gcHwwfTtjYXNlIDIyOmNhc2UgMjM6e2FbZl09ODA7YnJlYWt9O2RlZmF1bHQ6
e3I9YVtmXXwwO2lmKChzJjk1fDApIT0ocjw8MjQ+PjI0fDApKXticmVhayBMMTExNX1hW2ZdPXJ8
LTEyODtpZigoYVtlXSYxKT09MCl7YnJlYWsgTDExMTV9YVtlXT0wO3I9ZFtrXXwwO2lmKChyJjF8
MCk9PTApe3Q9cj4+PjF9ZWxzZXt0PWNbays0Pj4yXXwwfWlmKCh0fDApPT0wKXticmVhayBMMTEx
NX1yPWNbbT4+Ml18MDtpZigoci1sfDApPj0xNjApe2JyZWFrIEwxMTE1fXE9Y1tuPj4yXXwwO2Nb
bT4+Ml09cis0O2Nbcj4+Ml09cX19fXdoaWxlKDApO209Y1toPj4yXXwwO2NbaD4+Ml09bSsxO2Fb
bV09cztpZigoanwwKT44NCl7cD0wO3JldHVybiBwfDB9Y1tuPj4yXT0oY1tuPj4yXXwwKSsxO3A9
MDtyZXR1cm4gcHwwfWZ1bmN0aW9uIGYzKGIsZSxmLGcsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9
MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MDtlPWk7aT1pKzE3NnwwO209ZjtmPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
Zz4+Ml09Y1ttPj4yXTttPWUrMTI4fDA7bj1lKzEzNnwwO289ZSsxNDR8MDtwPWUrMTYwfDA7cT1w
O3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrMTYwfDA7dD1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7dz1p
O2k9aSsxfDA7aT1pKzc+PjM8PDM7eD1lfDA7ZjEobyxqLHgsbSxuKTtrJChxfDAsMCwxMik7aj1w
O2RSKHAsMTAsMCk7aWYoKGFbcV0mMSk9PTApe3k9aisxfDA7ej15O0E9eTtCPXArOHwwfWVsc2V7
eT1wKzh8MDt6PWNbeT4+Ml18MDtBPWorMXwwO0I9eX1jW3I+PjJdPXo7eT1zfDA7Y1t0Pj4yXT15
O2NbdT4+Ml09MDthW3ZdPTE7YVt3XT02OTtqPWZ8MDtmPWd8MDtnPXB8MDtDPXArNHwwO0Q9Y1tt
Pj4yXXwwO209Y1tuPj4yXXwwO249ejt6PWNbaj4+Ml18MDtMMTE0Mzp3aGlsZSgxKXtkb3tpZigo
enwwKT09MCl7RT0wfWVsc2V7Rj1jW3orMTI+PjJdfDA7aWYoKEZ8MCk9PShjW3orMTY+PjJdfDAp
KXtHPWIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MH1lbHNle0c9Y1tGPj4yXXwwfWlm
KChHfDApIT0tMSl7RT16O2JyZWFrfWNbaj4+Ml09MDtFPTB9fXdoaWxlKDApO0g9KEV8MCk9PTA7
Rj1jW2Y+PjJdfDA7ZG97aWYoKEZ8MCk9PTApe0k9OTI5fWVsc2V7Sj1jW0YrMTI+PjJdfDA7aWYo
KEp8MCk9PShjW0YrMTY+PjJdfDApKXtLPWIwW2NbKGNbRj4+Ml18MCkrMzY+PjJdJjEyN10oRil8
MH1lbHNle0s9Y1tKPj4yXXwwfWlmKChLfDApPT0tMSl7Y1tmPj4yXT0wO0k9OTI5O2JyZWFrfWVs
c2V7Sj0oRnwwKT09MDtpZihIXkope0w9RjtNPUo7YnJlYWt9ZWxzZXtOPW47Tz1GO1A9SjticmVh
ayBMMTE0M319fX13aGlsZSgwKTtpZigoSXwwKT09OTI5KXtJPTA7aWYoSCl7Tj1uO089MDtQPTE7
YnJlYWt9ZWxzZXtMPTA7TT0xfX1GPWRbcV18MDtKPShGJjF8MCk9PTA7aWYoKChjW3I+PjJdfDAp
LW58MCk9PSgoSj9GPj4+MTpjW0M+PjJdfDApfDApKXtpZihKKXtRPUY+Pj4xO1I9Rj4+PjF9ZWxz
ZXtGPWNbQz4+Ml18MDtRPUY7Uj1GfWRSKHAsUTw8MSwwKTtpZigoYVtxXSYxKT09MCl7Uz0xMH1l
bHNle1M9KGNbZz4+Ml0mLTIpLTF8MH1kUihwLFMsMCk7aWYoKGFbcV0mMSk9PTApe1Q9QX1lbHNl
e1Q9Y1tCPj4yXXwwfWNbcj4+Ml09VCtSO1U9VH1lbHNle1U9bn1GPUUrMTJ8MDtKPWNbRj4+Ml18
MDtWPUUrMTZ8MDtpZigoSnwwKT09KGNbVj4+Ml18MCkpe1c9YjBbY1soY1tFPj4yXXwwKSszNj4+
Ml0mMTI3XShFKXwwfWVsc2V7Vz1jW0o+PjJdfDB9aWYoKGYyKFcsdix3LFUscixELG0sbyx5LHQs
dSx4KXwwKSE9MCl7Tj1VO089TDtQPU07YnJlYWt9Sj1jW0Y+PjJdfDA7aWYoKEp8MCk9PShjW1Y+
PjJdfDApKXtWPWNbKGNbRT4+Ml18MCkrNDA+PjJdfDA7YjBbViYxMjddKEUpfDA7bj1VO3o9RTtj
b250aW51ZX1lbHNle2NbRj4+Ml09Sis0O249VTt6PUU7Y29udGludWV9fXo9ZFtvXXwwO2lmKCh6
JjF8MCk9PTApe1g9ej4+PjF9ZWxzZXtYPWNbbys0Pj4yXXwwfWRve2lmKChYfDApIT0wKXtpZigo
YVt2XSYxKT09MCl7YnJlYWt9ej1jW3Q+PjJdfDA7aWYoKHotc3wwKT49MTYwKXticmVha31VPWNb
dT4+Ml18MDtjW3Q+PjJdPXorNDtjW3o+PjJdPVV9fXdoaWxlKDApO2hbbD4+M109K2ZMKE4sY1ty
Pj4yXXwwLGspO2Z0KG8seSxjW3Q+PjJdfDAsayk7ZG97aWYoSCl7WT0wfWVsc2V7dD1jW0UrMTI+
PjJdfDA7aWYoKHR8MCk9PShjW0UrMTY+PjJdfDApKXtaPWIwW2NbKGNbRT4+Ml18MCkrMzY+PjJd
JjEyN10oRSl8MH1lbHNle1o9Y1t0Pj4yXXwwfWlmKChafDApIT0tMSl7WT1FO2JyZWFrfWNbaj4+
Ml09MDtZPTB9fXdoaWxlKDApO2o9KFl8MCk9PTA7ZG97aWYoUCl7ST05NzJ9ZWxzZXtFPWNbTysx
Mj4+Ml18MDtpZigoRXwwKT09KGNbTysxNj4+Ml18MCkpe189YjBbY1soY1tPPj4yXXwwKSszNj4+
Ml0mMTI3XShPKXwwfWVsc2V7Xz1jW0U+PjJdfDB9aWYoKF98MCk9PS0xKXtjW2Y+PjJdPTA7ST05
NzI7YnJlYWt9aWYoIShqXihPfDApPT0wKSl7YnJlYWt9JD1ifDA7Y1skPj4yXT1ZO2RQKHApO2RQ
KG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChJfDApPT05NzIpe2lmKGope2JyZWFrfSQ9
YnwwO2NbJD4+Ml09WTtkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNb
az4+Ml18MjskPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlvbiBm
NChiLGUsZixnLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPWp8MDtrPWt8MDtsPWx8
MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0w
LHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAs
Tj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwk
PTA7ZT1pO2k9aSsxNzZ8MDttPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+
PjJdO209ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbT4+Ml07bT1lKzEyOHww
O249ZSsxMzZ8MDtvPWUrMTQ0fDA7cD1lKzE2MHwwO3E9cDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztzPWk7aT1pKzE2MHwwO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3U9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO3Y9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3c9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3g9
ZXwwO2YxKG8saix4LG0sbik7ayQocXwwLDAsMTIpO2o9cDtkUihwLDEwLDApO2lmKChhW3FdJjEp
PT0wKXt5PWorMXwwO3o9eTtBPXk7Qj1wKzh8MH1lbHNle3k9cCs4fDA7ej1jW3k+PjJdfDA7QT1q
KzF8MDtCPXl9Y1tyPj4yXT16O3k9c3wwO2NbdD4+Ml09eTtjW3U+PjJdPTA7YVt2XT0xO2Fbd109
Njk7aj1mfDA7Zj1nfDA7Zz1wfDA7Qz1wKzR8MDtEPWNbbT4+Ml18MDttPWNbbj4+Ml18MDtuPXo7
ej1jW2o+PjJdfDA7TDEyMjg6d2hpbGUoMSl7ZG97aWYoKHp8MCk9PTApe0U9MH1lbHNle0Y9Y1t6
KzEyPj4yXXwwO2lmKChGfDApPT0oY1t6KzE2Pj4yXXwwKSl7Rz1iMFtjWyhjW3o+PjJdfDApKzM2
Pj4yXSYxMjddKHopfDB9ZWxzZXtHPWNbRj4+Ml18MH1pZigoR3wwKSE9LTEpe0U9ejticmVha31j
W2o+PjJdPTA7RT0wfX13aGlsZSgwKTtIPShFfDApPT0wO0Y9Y1tmPj4yXXwwO2Rve2lmKChGfDAp
PT0wKXtJPTk5Nn1lbHNle0o9Y1tGKzEyPj4yXXwwO2lmKChKfDApPT0oY1tGKzE2Pj4yXXwwKSl7
Sz1iMFtjWyhjW0Y+PjJdfDApKzM2Pj4yXSYxMjddKEYpfDB9ZWxzZXtLPWNbSj4+Ml18MH1pZigo
S3wwKT09LTEpe2NbZj4+Ml09MDtJPTk5NjticmVha31lbHNle0o9KEZ8MCk9PTA7aWYoSF5KKXtM
PUY7TT1KO2JyZWFrfWVsc2V7Tj1uO089RjtQPUo7YnJlYWsgTDEyMjh9fX19d2hpbGUoMCk7aWYo
KEl8MCk9PTk5Nil7ST0wO2lmKEgpe049bjtPPTA7UD0xO2JyZWFrfWVsc2V7TD0wO009MX19Rj1k
W3FdfDA7Sj0oRiYxfDApPT0wO2lmKCgoY1tyPj4yXXwwKS1ufDApPT0oKEo/Rj4+PjE6Y1tDPj4y
XXwwKXwwKSl7aWYoSil7UT1GPj4+MTtSPUY+Pj4xfWVsc2V7Rj1jW0M+PjJdfDA7UT1GO1I9Rn1k
UihwLFE8PDEsMCk7aWYoKGFbcV0mMSk9PTApe1M9MTB9ZWxzZXtTPShjW2c+PjJdJi0yKS0xfDB9
ZFIocCxTLDApO2lmKChhW3FdJjEpPT0wKXtUPUF9ZWxzZXtUPWNbQj4+Ml18MH1jW3I+PjJdPVQr
UjtVPVR9ZWxzZXtVPW59Rj1FKzEyfDA7Sj1jW0Y+PjJdfDA7Vj1FKzE2fDA7aWYoKEp8MCk9PShj
W1Y+PjJdfDApKXtXPWIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MH1lbHNle1c9Y1tK
Pj4yXXwwfWlmKChmMihXLHYsdyxVLHIsRCxtLG8seSx0LHUseCl8MCkhPTApe049VTtPPUw7UD1N
O2JyZWFrfUo9Y1tGPj4yXXwwO2lmKChKfDApPT0oY1tWPj4yXXwwKSl7Vj1jWyhjW0U+PjJdfDAp
KzQwPj4yXXwwO2IwW1YmMTI3XShFKXwwO249VTt6PUU7Y29udGludWV9ZWxzZXtjW0Y+PjJdPUor
NDtuPVU7ej1FO2NvbnRpbnVlfX16PWRbb118MDtpZigoeiYxfDApPT0wKXtYPXo+Pj4xfWVsc2V7
WD1jW28rND4+Ml18MH1kb3tpZigoWHwwKSE9MCl7aWYoKGFbdl0mMSk9PTApe2JyZWFrfXo9Y1t0
Pj4yXXwwO2lmKCh6LXN8MCk+PTE2MCl7YnJlYWt9VT1jW3U+PjJdfDA7Y1t0Pj4yXT16KzQ7Y1t6
Pj4yXT1VfX13aGlsZSgwKTtoW2w+PjNdPStmTihOLGNbcj4+Ml18MCxrKTtmdChvLHksY1t0Pj4y
XXwwLGspO2Rve2lmKEgpe1k9MH1lbHNle3Q9Y1tFKzEyPj4yXXwwO2lmKCh0fDApPT0oY1tFKzE2
Pj4yXXwwKSl7Wj1iMFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYxMjddKEUpfDB9ZWxzZXtaPWNbdD4+
Ml18MH1pZigoWnwwKSE9LTEpe1k9RTticmVha31jW2o+PjJdPTA7WT0wfX13aGlsZSgwKTtqPShZ
fDApPT0wO2Rve2lmKFApe0k9MTAzOX1lbHNle0U9Y1tPKzEyPj4yXXwwO2lmKChFfDApPT0oY1tP
KzE2Pj4yXXwwKSl7Xz1iMFtjWyhjW08+PjJdfDApKzM2Pj4yXSYxMjddKE8pfDB9ZWxzZXtfPWNb
RT4+Ml18MH1pZigoX3wwKT09LTEpe2NbZj4+Ml09MDtJPTEwMzk7YnJlYWt9aWYoIShqXihPfDAp
PT0wKSl7YnJlYWt9JD1ifDA7Y1skPj4yXT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxl
KDApO2Rve2lmKChJfDApPT0xMDM5KXtpZihqKXticmVha30kPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7
ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1trPj4yXT1jW2s+PjJdfDI7JD1ifDA7Y1skPj4y
XT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZjUoYSl7YT1hfDA7ZGUoYXwwKTtr
UyhhKTtyZXR1cm59ZnVuY3Rpb24gZjYoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24g
ZjcoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1r
fDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0w
LE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTA7
ZT1pO2k9aSsxMzZ8MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJd
O2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lfDA7bT1lKzE2
fDA7bj1lKzEyMHwwO289aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3A9aTtpPWkrMTJ8MDtpPWkrNz4+
Mzw8MztxPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztyPWk7aT1pKzE2MHwwO3M9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2skKG58MCwwLDEyKTt1PXA7ZWoobyxo
KTtoPW98MDtvPWNbaD4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbD4+Ml09MTU2ODg7Y1ts
KzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njg4LGwsOTYpfWw9KGNbMzkyM118MCktMXwwO3Y9
Y1tvKzg+PjJdfDA7ZG97aWYoKGNbbysxMj4+Ml18MCktdj4+Mj4+PjA+bD4+PjApe3c9Y1t2Kyhs
PDwyKT4+Ml18MDtpZigod3wwKT09MCl7YnJlYWt9eD13O3k9bXwwO3o9Y1soY1t3Pj4yXXwwKSs0
OD4+Ml18MDtjYVt6JjE1XSh4LDk3NDQsOTc3MCx5KXwwO3g9Y1toPj4yXXwwO2R6KHgpfDA7ayQo
dXwwLDAsMTIpO3g9cDtkUihwLDEwLDApO2lmKChhW3VdJjEpPT0wKXt6PXgrMXwwO0E9ejtCPXo7
Qz1wKzh8MH1lbHNle3o9cCs4fDA7QT1jW3o+PjJdfDA7Qj14KzF8MDtDPXp9Y1txPj4yXT1BO3o9
cnwwO2Nbcz4+Ml09ejtjW3Q+PjJdPTA7eD1mfDA7dz1nfDA7RD1wfDA7RT1wKzR8MDtGPUE7Rz1j
W3g+PjJdfDA7TDEzMjM6d2hpbGUoMSl7ZG97aWYoKEd8MCk9PTApe0g9MH1lbHNle0k9Y1tHKzEy
Pj4yXXwwO2lmKChJfDApPT0oY1tHKzE2Pj4yXXwwKSl7Sj1iMFtjWyhjW0c+PjJdfDApKzM2Pj4y
XSYxMjddKEcpfDB9ZWxzZXtKPWNbST4+Ml18MH1pZigoSnwwKSE9LTEpe0g9RzticmVha31jW3g+
PjJdPTA7SD0wfX13aGlsZSgwKTtJPShIfDApPT0wO0s9Y1t3Pj4yXXwwO2Rve2lmKChLfDApPT0w
KXtMPTEwNzN9ZWxzZXtNPWNbSysxMj4+Ml18MDtpZigoTXwwKT09KGNbSysxNj4+Ml18MCkpe049
YjBbY1soY1tLPj4yXXwwKSszNj4+Ml0mMTI3XShLKXwwfWVsc2V7Tj1jW00+PjJdfDB9aWYoKE58
MCk9PS0xKXtjW3c+PjJdPTA7TD0xMDczO2JyZWFrfWVsc2V7aWYoSV4oS3wwKT09MCl7YnJlYWt9
ZWxzZXtPPUY7YnJlYWsgTDEzMjN9fX19d2hpbGUoMCk7aWYoKEx8MCk9PTEwNzMpe0w9MDtpZihJ
KXtPPUY7YnJlYWt9fUs9ZFt1XXwwO009KEsmMXwwKT09MDtpZigoKGNbcT4+Ml18MCktRnwwKT09
KChNP0s+Pj4xOmNbRT4+Ml18MCl8MCkpe2lmKE0pe1A9Sz4+PjE7UT1LPj4+MX1lbHNle0s9Y1tF
Pj4yXXwwO1A9SztRPUt9ZFIocCxQPDwxLDApO2lmKChhW3VdJjEpPT0wKXtSPTEwfWVsc2V7Uj0o
Y1tEPj4yXSYtMiktMXwwfWRSKHAsUiwwKTtpZigoYVt1XSYxKT09MCl7Uz1CfWVsc2V7Uz1jW0M+
PjJdfDB9Y1txPj4yXT1TK1E7VD1TfWVsc2V7VD1GfUs9SCsxMnwwO009Y1tLPj4yXXwwO1U9SCsx
NnwwO2lmKChNfDApPT0oY1tVPj4yXXwwKSl7Vj1iMFtjWyhjW0g+PjJdfDApKzM2Pj4yXSYxMjdd
KEgpfDB9ZWxzZXtWPWNbTT4+Ml18MH1pZigoZlUoViwxNixULHEsdCwwLG4seixzLHkpfDApIT0w
KXtPPVQ7YnJlYWt9TT1jW0s+PjJdfDA7aWYoKE18MCk9PShjW1U+PjJdfDApKXtVPWNbKGNbSD4+
Ml18MCkrNDA+PjJdfDA7YjBbVSYxMjddKEgpfDA7Rj1UO0c9SDtjb250aW51ZX1lbHNle2NbSz4+
Ml09TSs0O0Y9VDtHPUg7Y29udGludWV9fWFbTyszfDBdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0w
KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGls
ZSgwKTtHPWZSKE8sY1syOTU4XXwwLDEzMjAsKEY9aSxpPWkrOHwwLGNbRj4+Ml09ayxGKXwwKXww
O2k9RjtpZigoR3wwKSE9MSl7Y1tqPj4yXT00fUc9Y1t4Pj4yXXwwO2Rve2lmKChHfDApPT0wKXtX
PTB9ZWxzZXtGPWNbRysxMj4+Ml18MDtpZigoRnwwKT09KGNbRysxNj4+Ml18MCkpe1g9YjBbY1so
Y1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwfWVsc2V7WD1jW0Y+PjJdfDB9aWYoKFh8MCkhPS0x
KXtXPUc7YnJlYWt9Y1t4Pj4yXT0wO1c9MH19d2hpbGUoMCk7eD0oV3wwKT09MDtHPWNbdz4+Ml18
MDtkb3tpZigoR3wwKT09MCl7TD0xMTE4fWVsc2V7Rj1jW0crMTI+PjJdfDA7aWYoKEZ8MCk9PShj
W0crMTY+PjJdfDApKXtZPWIwW2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MH1lbHNle1k9
Y1tGPj4yXXwwfWlmKChZfDApPT0tMSl7Y1t3Pj4yXT0wO0w9MTExODticmVha31pZighKHheKEd8
MCk9PTApKXticmVha31aPWJ8MDtjW1o+PjJdPVc7ZFAocCk7ZFAobik7aT1lO3JldHVybn19d2hp
bGUoMCk7ZG97aWYoKEx8MCk9PTExMTgpe2lmKHgpe2JyZWFrfVo9YnwwO2NbWj4+Ml09VztkUChw
KTtkUChuKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtaPWJ8MDtjW1o+
PjJdPVc7ZFAocCk7ZFAobik7aT1lO3JldHVybn19d2hpbGUoMCk7ZT1iTyg0KXwwO2txKGUpO2Js
KGV8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZjgoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtkPWk7aT1pKzgwfDA7aj1lO2U9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZT4+Ml09Y1tqPj4yXTtqPWR8MDtrPWQrOHwwO2w9ZCsyNHwwO209ZCs0OHww
O249ZCs1NnwwO289ZCs2NHwwO3A9ZCs3MnwwO3E9anwwO2FbcV09YVsyMzg0XXwwO2FbcSsxfDBd
PWFbMjM4NXwwXXwwO2FbcSsyfDBdPWFbMjM4NnwwXXwwO2FbcSszfDBdPWFbMjM4N3wwXXwwO2Fb
cSs0fDBdPWFbMjM4OHwwXXwwO2FbcSs1fDBdPWFbMjM4OXwwXXwwO3I9aisxfDA7cz1mKzR8MDt0
PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1PXJ9ZWxzZXthW3JdPTQzO3U9aisyfDB9aWYo
KHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2XT0xMDg7dT12KzF8MDtM
MTQxMDpkb3tzd2l0Y2godCY3NHwwKXtjYXNlIDY0OnthW3VdPTExMTticmVha307Y2FzZSA4Ontp
ZigodCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7YnJlYWsgTDE0MTB9ZWxzZXthW3VdPTg4O2JyZWFr
IEwxNDEwfWJyZWFrfTtkZWZhdWx0OnthW3VdPTEwMH19fXdoaWxlKDApO3U9a3wwO2Rve2lmKChh
WzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEz
NDQsMCl8MH19d2hpbGUoMCk7dD1nYih1LDEyLGNbMjk1OF18MCxxLChxPWksaT1pKzh8MCxjW3E+
PjJdPWgscSl8MCl8MDtpPXE7cT1rK3R8MDtMMTQyMzpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8MCl7
Y2FzZSAzMjp7dz1xO2JyZWFrfTtjYXNlIDE2OntoPWFbdV18MDtzd2l0Y2goaDw8MjQ+PjI0KXtj
YXNlIDQ1OmNhc2UgNDM6e3c9aysxfDA7YnJlYWsgTDE0MjM7YnJlYWt9O2RlZmF1bHQ6e319aWYo
ISgodHwwKT4xJmg8PDI0Pj4yND09NDgpKXt4PTExNDc7YnJlYWsgTDE0MjN9c3dpdGNoKGFbaysx
fDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PTExNDc7YnJlYWsgTDE0
MjN9fXc9aysyfDA7YnJlYWt9O2RlZmF1bHQ6e3g9MTE0N319fXdoaWxlKDApO2lmKCh4fDApPT0x
MTQ3KXt3PXV9eD1sfDA7ZWoobyxmKTtnYyh1LHcscSx4LG0sbixvKTtkeihjW28+PjJdfDApfDA7
Y1twPj4yXT1jW2U+PjJdO2Y5KGIscCx4LGNbbT4+Ml18MCxjW24+PjJdfDAsZixnKTtpPWQ7cmV0
dXJufWZ1bmN0aW9uIGY5KGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2s9aTtp
PWkrMTZ8MDtsPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2w+PjJdO2w9a3ww
O209ZHwwO2Q9Y1ttPj4yXXwwO2lmKChkfDApPT0wKXtjW2I+PjJdPTA7aT1rO3JldHVybn1uPWc7
Zz1lO289bi1nfDA7cD1oKzEyfDA7aD1jW3A+PjJdfDA7cT0oaHwwKT4ob3wwKT9oLW98MDowO289
ZjtoPW8tZ3wwO2Rve2lmKChofDApPjApe2lmKChiMVtjWyhjW2Q+PjJdfDApKzQ4Pj4yXSY2M10o
ZCxlLGgpfDApPT0oaHwwKSl7YnJlYWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtpPWs7cmV0dXJufX13
aGlsZSgwKTtkb3tpZigocXwwKT4wKXtkXyhsLHEsaik7aWYoKGFbbF0mMSk9PTApe3I9bCsxfDB9
ZWxzZXtyPWNbbCs4Pj4yXXwwfWlmKChiMVtjWyhjW2Q+PjJdfDApKzQ4Pj4yXSY2M10oZCxyLHEp
fDApPT0ocXwwKSl7ZFAobCk7YnJlYWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtkUChsKTtpPWs7cmV0
dXJufX13aGlsZSgwKTtsPW4tb3wwO2Rve2lmKChsfDApPjApe2lmKChiMVtjWyhjW2Q+PjJdfDAp
KzQ4Pj4yXSY2M10oZCxmLGwpfDApPT0obHwwKSl7YnJlYWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtp
PWs7cmV0dXJufX13aGlsZSgwKTtjW3A+PjJdPTA7Y1tiPj4yXT1kO2k9aztyZXR1cm59ZnVuY3Rp
b24gZ2EoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3Zh
ciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0w
LHg9MCx5PTA7aj1pO2k9aSs0OHwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJd
PWNbaz4+Ml07az1qfDA7bD1qKzE2fDA7bT1qKzI0fDA7bj1qKzMyfDA7aWYoKGNbZis0Pj4yXSYx
fDApPT0wKXtvPWNbKGNbZD4+Ml18MCkrMjQ+PjJdfDA7Y1tsPj4yXT1jW2U+PjJdO2I5W28mMzFd
KGIsZCxsLGYsZyxoJjEpO2k9ajtyZXR1cm59ZWoobSxmKTtmPW18MDttPWNbZj4+Ml18MDtpZigo
Y1szODI4XXwwKSE9LTEpe2Nbaz4+Ml09MTUzMTI7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RX
KDE1MzEyLGssOTYpfWs9KGNbMzgyOV18MCktMXwwO2c9Y1ttKzg+PjJdfDA7ZG97aWYoKGNbbSsx
Mj4+Ml18MCktZz4+Mj4+PjA+az4+PjApe2w9Y1tnKyhrPDwyKT4+Ml18MDtpZigobHwwKT09MCl7
YnJlYWt9ZD1sO289Y1tmPj4yXXwwO2R6KG8pfDA7bz1jW2w+PjJdfDA7aWYoaCl7YlpbY1tvKzI0
Pj4yXSYxMjddKG4sZCl9ZWxzZXtiWltjW28rMjg+PjJdJjEyN10obixkKX1kPW47bz1uO2w9YVtv
XXwwO2lmKChsJjEpPT0wKXtwPWQrMXwwO3E9cDtyPXA7cz1uKzh8MH1lbHNle3A9bis4fDA7cT1j
W3A+PjJdfDA7cj1kKzF8MDtzPXB9cD1lfDA7ZD1uKzR8MDt0PXE7dT1sO3doaWxlKDEpe2lmKCh1
JjEpPT0wKXt2PXJ9ZWxzZXt2PWNbcz4+Ml18MH1sPXUmMjU1O2lmKCh0fDApPT0odisoKGwmMXww
KT09MD9sPj4+MTpjW2Q+PjJdfDApfDApKXticmVha31sPWFbdF18MDt3PWNbcD4+Ml18MDtkb3tp
Zigod3wwKSE9MCl7eD13KzI0fDA7eT1jW3g+PjJdfDA7aWYoKHl8MCkhPShjW3crMjg+PjJdfDAp
KXtjW3g+PjJdPXkrMTthW3ldPWw7YnJlYWt9aWYoKGJfW2NbKGNbdz4+Ml18MCkrNTI+PjJdJjMx
XSh3LGwmMjU1KXwwKSE9LTEpe2JyZWFrfWNbcD4+Ml09MH19d2hpbGUoMCk7dD10KzF8MDt1PWFb
b118MH1jW2I+PjJdPWNbcD4+Ml07ZFAobik7aT1qO3JldHVybn19d2hpbGUoMCk7aj1iTyg0KXww
O2txKGopO2JsKGp8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ2IoYSxiLGQsZSxmKXthPWF8MDtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTA7Zz1pO2k9aSsxNnwwO2g9Z3wwO2o9
aDtjW2o+PjJdPWY7Y1tqKzQ+PjJdPTA7aj1iQihkfDApfDA7ZD1iQyhhfDAsYnwwLGV8MCxofDAp
fDA7aWYoKGp8MCk9PTApe2k9ZztyZXR1cm4gZHwwfWJCKGp8MCl8MDtpPWc7cmV0dXJuIGR8MH1m
dW5jdGlvbiBnYyhiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtq
PWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0w
LEs9MCxMPTA7bD1pO2k9aSs0OHwwO209bHwwO249bCsxNnwwO289bCszMnwwO3A9a3wwO2s9Y1tw
Pj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tuPj4yXT0xNTY5NjtjW24rND4+Ml09MTI7Y1tu
Kzg+PjJdPTA7ZFcoMTU2OTYsbiw5Nil9bj0oY1szOTI1XXwwKS0xfDA7cT1jW2srOD4+Ml18MDtp
ZigoY1trKzEyPj4yXXwwKS1xPj4yPj4+MDw9bj4+PjApe3I9Yk8oNCl8MDtzPXI7a3Eocyk7Ymwo
cnwwLDgxNzYsMTM0KX1rPWNbcSsobjw8Mik+PjJdfDA7aWYoKGt8MCk9PTApe3I9Yk8oNCl8MDtz
PXI7a3Eocyk7YmwocnwwLDgxNzYsMTM0KX1yPWs7cz1jW3A+PjJdfDA7aWYoKGNbMzgyOF18MCkh
PS0xKXtjW20+PjJdPTE1MzEyO2NbbSs0Pj4yXT0xMjtjW20rOD4+Ml09MDtkVygxNTMxMixtLDk2
KX1tPShjWzM4MjldfDApLTF8MDtwPWNbcys4Pj4yXXwwO2lmKChjW3MrMTI+PjJdfDApLXA+PjI+
Pj4wPD1tPj4+MCl7dD1iTyg0KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3NiwxMzQpfXM9Y1twKyht
PDwyKT4+Ml18MDtpZigoc3wwKT09MCl7dD1iTyg0KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3Niwx
MzQpfXQ9cztiWltjWyhjW3M+PjJdfDApKzIwPj4yXSYxMjddKG8sdCk7dT1vO209bztwPWRbbV18
MDtpZigocCYxfDApPT0wKXt2PXA+Pj4xfWVsc2V7dj1jW28rND4+Ml18MH1kb3tpZigodnwwKT09
MCl7cD1jWyhjW2s+PjJdfDApKzMyPj4yXXwwO2NhW3AmMTVdKHIsYixmLGcpfDA7Y1tqPj4yXT1n
KyhmLWIpfWVsc2V7Y1tqPj4yXT1nO3A9YVtiXXwwO3N3aXRjaChwPDwyND4+MjQpe2Nhc2UgNDU6
Y2FzZSA0Mzp7bj1iX1tjWyhjW2s+PjJdfDApKzI4Pj4yXSYzMV0ocixwKXwwO3A9Y1tqPj4yXXww
O2Nbaj4+Ml09cCsxO2FbcF09bjt3PWIrMXwwO2JyZWFrfTtkZWZhdWx0Ont3PWJ9fUwxNTMzOmRv
e2lmKChmLXd8MCk+MSl7aWYoKGFbd118MCkhPTQ4KXt4PXc7YnJlYWt9bj13KzF8MDtzd2l0Y2go
YVtuXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7eD13O2JyZWFrIEwxNTMz
fX1wPWs7cT1iX1tjWyhjW3A+PjJdfDApKzI4Pj4yXSYzMV0ociw0OCl8MDt5PWNbaj4+Ml18MDtj
W2o+PjJdPXkrMTthW3ldPXE7cT1iX1tjWyhjW3A+PjJdfDApKzI4Pj4yXSYzMV0ocixhW25dfDAp
fDA7bj1jW2o+PjJdfDA7Y1tqPj4yXT1uKzE7YVtuXT1xO3g9dysyfDB9ZWxzZXt4PXd9fXdoaWxl
KDApO2Rve2lmKCh4fDApIT0oZnwwKSl7cT1mLTF8MDtpZih4Pj4+MDxxPj4+MCl7ej14O0E9cX1l
bHNle2JyZWFrfWRve3E9YVt6XXwwO2Fbel09YVtBXXwwO2FbQV09cTt6PXorMXwwO0E9QS0xfDA7
fXdoaWxlKHo+Pj4wPEE+Pj4wKX19d2hpbGUoMCk7cT1iMFtjWyhjW3M+PjJdfDApKzE2Pj4yXSYx
MjddKHQpfDA7aWYoeD4+PjA8Zj4+PjApe249dSsxfDA7cD1rO3k9bys0fDA7Qj1vKzh8MDtDPTA7
RD0wO0U9eDt3aGlsZSgxKXtGPShhW21dJjEpPT0wO2Rve2lmKChhWyhGP246Y1tCPj4yXXwwKStE
fDBdfDApPT0wKXtHPUQ7SD1DfWVsc2V7aWYoKEN8MCkhPShhWyhGP246Y1tCPj4yXXwwKStEfDBd
fDApKXtHPUQ7SD1DO2JyZWFrfUk9Y1tqPj4yXXwwO2Nbaj4+Ml09SSsxO2FbSV09cTtJPWRbbV18
MDtHPShEPj4+MDwoKChJJjF8MCk9PTA/ST4+PjE6Y1t5Pj4yXXwwKS0xfDApPj4+MCkrRHwwO0g9
MH19d2hpbGUoMCk7Rj1iX1tjWyhjW3A+PjJdfDApKzI4Pj4yXSYzMV0ocixhW0VdfDApfDA7ST1j
W2o+PjJdfDA7Y1tqPj4yXT1JKzE7YVtJXT1GO0Y9RSsxfDA7aWYoRj4+PjA8Zj4+PjApe0M9SCsx
fDA7RD1HO0U9Rn1lbHNle2JyZWFrfX19RT1nKyh4LWIpfDA7RD1jW2o+PjJdfDA7aWYoKEV8MCk9
PShEfDApKXticmVha31DPUQtMXwwO2lmKEU+Pj4wPEM+Pj4wKXtKPUU7Sz1DfWVsc2V7YnJlYWt9
ZG97Qz1hW0pdfDA7YVtKXT1hW0tdfDA7YVtLXT1DO0o9SisxfDA7Sz1LLTF8MDt9d2hpbGUoSj4+
PjA8Sz4+PjApfX13aGlsZSgwKTtpZigoZXwwKT09KGZ8MCkpe0w9Y1tqPj4yXXwwO2NbaD4+Ml09
TDtkUChvKTtpPWw7cmV0dXJufWVsc2V7TD1nKyhlLWIpfDA7Y1toPj4yXT1MO2RQKG8pO2k9bDty
ZXR1cm59fWZ1bmN0aW9uIGdkKGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MCx3PTAseD0wO2Q9aTtpPWkrMTEyfDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWR8MDtsPWQrOHwwO209ZCszMnwwO249ZCs4MHwwO289
ZCs4OHwwO3A9ZCs5NnwwO3E9ZCsxMDR8MDtjW2s+PjJdPTM3O2Nbays0Pj4yXT0wO3I9aztrPXIr
MXwwO3M9Zis0fDA7dD1jW3M+PjJdfDA7aWYoKHQmMjA0OHwwKT09MCl7dT1rfWVsc2V7YVtrXT00
Mzt1PXIrMnwwfWlmKCh0JjUxMnwwKT09MCl7dj11fWVsc2V7YVt1XT0zNTt2PXUrMXwwfWFbdl09
MTA4O2FbdisxfDBdPTEwODt1PXYrMnwwO0wxNTc0OmRve3N3aXRjaCh0Jjc0fDApe2Nhc2UgNjQ6
e2FbdV09MTExO2JyZWFrfTtjYXNlIDg6e2lmKCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDticmVh
ayBMMTU3NH1lbHNle2FbdV09ODg7YnJlYWsgTDE1NzR9YnJlYWt9O2RlZmF1bHQ6e2FbdV09MTAw
fX19d2hpbGUoMCk7dT1sfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDAp
PT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt0PWdiKHUsMjIsY1sy
OTU4XXwwLHIsKHI9aSxpPWkrMTZ8MCxjW3I+PjJdPWgsY1tyKzg+PjJdPWoscil8MCl8MDtpPXI7
cj1sK3R8MDtMMTU4Nzpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8MCl7Y2FzZSAxNjp7aj1hW3VdfDA7
c3dpdGNoKGo8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnt3PWwrMXwwO2JyZWFrIEwxNTg3O2Jy
ZWFrfTtkZWZhdWx0Ont9fWlmKCEoKHR8MCk+MSZqPDwyND4+MjQ9PTQ4KSl7eD0xMjg2O2JyZWFr
IEwxNTg3fXN3aXRjaChhW2wrMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVs
dDp7eD0xMjg2O2JyZWFrIEwxNTg3fX13PWwrMnwwO2JyZWFrfTtjYXNlIDMyOnt3PXI7YnJlYWt9
O2RlZmF1bHQ6e3g9MTI4Nn19fXdoaWxlKDApO2lmKCh4fDApPT0xMjg2KXt3PXV9eD1tfDA7ZWoo
cCxmKTtnYyh1LHcscix4LG4sbyxwKTtkeihjW3A+PjJdfDApfDA7Y1txPj4yXT1jW2U+PjJdO2Y5
KGIscSx4LGNbbj4+Ml18MCxjW28+PjJdfDAsZixnKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdlKGIs
ZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTA7ZD1p
O2k9aSs4MHwwO2o9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1k
fDA7az1kKzh8MDtsPWQrMjR8MDttPWQrNDh8MDtuPWQrNTZ8MDtvPWQrNjR8MDtwPWQrNzJ8MDtx
PWp8MDthW3FdPWFbMjM4NF18MDthW3ErMXwwXT1hWzIzODV8MF18MDthW3ErMnwwXT1hWzIzODZ8
MF18MDthW3ErM3wwXT1hWzIzODd8MF18MDthW3ErNHwwXT1hWzIzODh8MF18MDthW3ErNXwwXT1h
WzIzODl8MF18MDtyPWorMXwwO3M9Zis0fDA7dD1jW3M+PjJdfDA7aWYoKHQmMjA0OHwwKT09MCl7
dT1yfWVsc2V7YVtyXT00Mzt1PWorMnwwfWlmKCh0JjUxMnwwKT09MCl7dj11fWVsc2V7YVt1XT0z
NTt2PXUrMXwwfWFbdl09MTA4O3U9disxfDA7TDE2MDU6ZG97c3dpdGNoKHQmNzR8MCl7Y2FzZSA2
NDp7YVt1XT0xMTE7YnJlYWt9O2Nhc2UgODp7aWYoKHQmMTYzODR8MCk9PTApe2FbdV09MTIwO2Jy
ZWFrIEwxNjA1fWVsc2V7YVt1XT04ODticmVhayBMMTYwNX1icmVha307ZGVmYXVsdDp7YVt1XT0x
MTd9fX13aGlsZSgwKTt1PWt8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8
MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3Q9Z2IodSwxMixj
WzI5NThdfDAscSwocT1pLGk9aSs4fDAsY1txPj4yXT1oLHEpfDApfDA7aT1xO3E9ayt0fDA7TDE2
MTg6ZG97c3dpdGNoKGNbcz4+Ml0mMTc2fDApe2Nhc2UgMzI6e3c9cTticmVha307Y2FzZSAxNjp7
aD1hW3VdfDA7c3dpdGNoKGg8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnt3PWsrMXwwO2JyZWFr
IEwxNjE4O2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKHR8MCk+MSZoPDwyND4+MjQ9PTQ4KSl7eD0x
MzExO2JyZWFrIEwxNjE4fXN3aXRjaChhW2srMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVh
a307ZGVmYXVsdDp7eD0xMzExO2JyZWFrIEwxNjE4fX13PWsrMnwwO2JyZWFrfTtkZWZhdWx0Ont4
PTEzMTF9fX13aGlsZSgwKTtpZigoeHwwKT09MTMxMSl7dz11fXg9bHwwO2VqKG8sZik7Z2ModSx3
LHEseCxtLG4sbyk7ZHooY1tvPj4yXXwwKXwwO2NbcD4+Ml09Y1tlPj4yXTtmOShiLHAseCxjW20+
PjJdfDAsY1tuPj4yXXwwLGYsZyk7aT1kO3JldHVybn1mdW5jdGlvbiBnZihiLGQsZSxmLGcsaCxq
KXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtkPWk7aT1pKzEx
MnwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1kfDA7bD1k
Kzh8MDttPWQrMzJ8MDtuPWQrODB8MDtvPWQrODh8MDtwPWQrOTZ8MDtxPWQrMTA0fDA7Y1trPj4y
XT0zNztjW2srND4+Ml09MDtyPWs7az1yKzF8MDtzPWYrNHwwO3Q9Y1tzPj4yXXwwO2lmKCh0JjIw
NDh8MCk9PTApe3U9a31lbHNle2Fba109NDM7dT1yKzJ8MH1pZigodCY1MTJ8MCk9PTApe3Y9dX1l
bHNle2FbdV09MzU7dj11KzF8MH1hW3ZdPTEwODthW3YrMXwwXT0xMDg7dT12KzJ8MDtMMTYzNjpk
b3tzd2l0Y2godCY3NHwwKXtjYXNlIDg6e2lmKCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDticmVh
ayBMMTYzNn1lbHNle2FbdV09ODg7YnJlYWsgTDE2MzZ9YnJlYWt9O2Nhc2UgNjQ6e2FbdV09MTEx
O2JyZWFrfTtkZWZhdWx0OnthW3VdPTExN319fXdoaWxlKDApO3U9bHwwO2Rve2lmKChhWzE2MjY0
XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8
MH19d2hpbGUoMCk7dD1nYih1LDIzLGNbMjk1OF18MCxyLChyPWksaT1pKzE2fDAsY1tyPj4yXT1o
LGNbcis4Pj4yXT1qLHIpfDApfDA7aT1yO3I9bCt0fDA7TDE2NDk6ZG97c3dpdGNoKGNbcz4+Ml0m
MTc2fDApe2Nhc2UgMTY6e2o9YVt1XXwwO3N3aXRjaChqPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0
Mzp7dz1sKzF8MDticmVhayBMMTY0OTticmVha307ZGVmYXVsdDp7fX1pZighKCh0fDApPjEmajw8
MjQ+PjI0PT00OCkpe3g9MTMzNjticmVhayBMMTY0OX1zd2l0Y2goYVtsKzF8MF18MCl7Y2FzZSAx
MjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTMzNjticmVhayBMMTY0OX19dz1sKzJ8MDti
cmVha307Y2FzZSAzMjp7dz1yO2JyZWFrfTtkZWZhdWx0Ont4PTEzMzZ9fX13aGlsZSgwKTtpZigo
eHwwKT09MTMzNil7dz11fXg9bXwwO2VqKHAsZik7Z2ModSx3LHIseCxuLG8scCk7ZHooY1twPj4y
XXwwKXwwO2NbcT4+Ml09Y1tlPj4yXTtmOShiLHEseCxjW24+PjJdfDAsY1tvPj4yXXwwLGYsZyk7
aT1kO3JldHVybn1mdW5jdGlvbiBnZyhiLGQsZSxmLGcsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7aj0rajt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MDtkPWk7aT1pKzE1MnwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJd
PWNbaz4+Ml07az1kfDA7bD1kKzh8MDttPWQrNDB8MDtuPWQrNDh8MDtvPWQrMTEyfDA7cD1kKzEy
MHwwO3E9ZCsxMjh8MDtyPWQrMTM2fDA7cz1kKzE0NHwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7
dD1rO2s9dCsxfDA7dT1mKzR8MDt2PWNbdT4+Ml18MDtpZigodiYyMDQ4fDApPT0wKXt3PWt9ZWxz
ZXthW2tdPTQzO3c9dCsyfDB9aWYoKHYmMTAyNHwwKT09MCl7eD13fWVsc2V7YVt3XT0zNTt4PXcr
MXwwfXc9diYyNjA7az12Pj4+MTQ7TDE2Njc6ZG97aWYoKHd8MCk9PTI2MCl7aWYoKGsmMXwwKT09
MCl7YVt4XT05Nzt5PTA7YnJlYWt9ZWxzZXthW3hdPTY1O3k9MDticmVha319ZWxzZXthW3hdPTQ2
O3Y9eCsyfDA7YVt4KzF8MF09NDI7c3dpdGNoKHd8MCl7Y2FzZSA0OntpZigoayYxfDApPT0wKXth
W3ZdPTEwMjt5PTE7YnJlYWsgTDE2Njd9ZWxzZXthW3ZdPTcwO3k9MTticmVhayBMMTY2N31icmVh
a307Y2FzZSAyNTY6e2lmKChrJjF8MCk9PTApe2Fbdl09MTAxO3k9MTticmVhayBMMTY2N31lbHNl
e2Fbdl09Njk7eT0xO2JyZWFrIEwxNjY3fWJyZWFrfTtkZWZhdWx0OntpZigoayYxfDApPT0wKXth
W3ZdPTEwMzt5PTE7YnJlYWsgTDE2Njd9ZWxzZXthW3ZdPTcxO3k9MTticmVhayBMMTY2N319fX19
d2hpbGUoMCk7az1sfDA7Y1ttPj4yXT1rO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2
MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bD1jWzI5
NThdfDA7aWYoeSl7dz1nYihrLDMwLGwsdCwoej1pLGk9aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJd
LGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0E9d31lbHNle3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkr
OHwwLGhbej4+M109aix6KXwwKXwwO2k9ejtBPXd9ZG97aWYoKEF8MCk+Mjkpe3c9KGFbMTYyNjRd
fDApPT0wO2lmKHkpe2Rve2lmKHcpe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09
YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9Z2gobSxjWzI5NThdfDAsdCwoej1pLGk9aSsxNnww
LGNbej4+Ml09Y1tmKzg+PjJdLGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0I9bH1lbHNle2Rve2lm
KHcpe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdo
aWxlKDApO3c9Z2gobSxjWzI5NThdfDAsdCwoej1pLGk9aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJd
LGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0I9d313PWNbbT4+Ml18MDtpZigod3wwKSE9MCl7Qz1C
O0Q9dztFPXc7YnJlYWt9a1goKTt3PWNbbT4+Ml18MDtDPUI7RD13O0U9d31lbHNle0M9QTtEPTA7
RT1jW20+PjJdfDB9fXdoaWxlKDApO0E9RStDfDA7TDE3MTY6ZG97c3dpdGNoKGNbdT4+Ml0mMTc2
fDApe2Nhc2UgMTY6e0I9YVtFXXwwO3N3aXRjaChCPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7
Rj1FKzF8MDticmVhayBMMTcxNjticmVha307ZGVmYXVsdDp7fX1pZighKChDfDApPjEmQjw8MjQ+
PjI0PT00OCkpe0c9MTM5MjticmVhayBMMTcxNn1zd2l0Y2goYVtFKzF8MF18MCl7Y2FzZSAxMjA6
Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e0c9MTM5MjticmVhayBMMTcxNn19Rj1FKzJ8MDticmVh
a307Y2FzZSAzMjp7Rj1BO2JyZWFrfTtkZWZhdWx0OntHPTEzOTJ9fX13aGlsZSgwKTtpZigoR3ww
KT09MTM5Mil7Rj1FfWRve2lmKChFfDApPT0oa3wwKSl7SD1ufDA7ST0wO0o9a31lbHNle0c9a0oo
Qzw8MSl8MDtpZigoR3wwKSE9MCl7SD1HO0k9RztKPUU7YnJlYWt9a1goKTtIPTA7ST0wO0o9Y1tt
Pj4yXXwwfX13aGlsZSgwKTtlaihxLGYpO2dqKEosRixBLEgsbyxwLHEpO2R6KGNbcT4+Ml18MCl8
MDtxPWV8MDtjW3M+PjJdPWNbcT4+Ml07ZjkocixzLEgsY1tvPj4yXXwwLGNbcD4+Ml18MCxmLGcp
O2c9Y1tyPj4yXXwwO2NbcT4+Ml09ZztjW2I+PjJdPWc7aWYoKEl8MCkhPTApe2tLKEkpfWlmKChE
fDApPT0wKXtpPWQ7cmV0dXJufWtLKEQpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ2goYSxiLGQsZSl7
YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wO2Y9aTtpPWkrMTZ8MDtnPWZ8
MDtoPWc7Y1toPj4yXT1lO2NbaCs0Pj4yXT0wO2g9YkIoYnwwKXwwO2I9YlEoYXwwLGR8MCxnfDAp
fDA7aWYoKGh8MCk9PTApe2k9ZjtyZXR1cm4gYnwwfWJCKGh8MCl8MDtpPWY7cmV0dXJuIGJ8MH1m
dW5jdGlvbiBnaShiLGQsZSxmLGcsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj0r
ajt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0w
LHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MDtkPWk7
aT1pKzE1MnwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1k
fDA7bD1kKzh8MDttPWQrNDB8MDtuPWQrNDh8MDtvPWQrMTEyfDA7cD1kKzEyMHwwO3E9ZCsxMjh8
MDtyPWQrMTM2fDA7cz1kKzE0NHwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7dD1rO2s9dCsxfDA7
dT1mKzR8MDt2PWNbdT4+Ml18MDtpZigodiYyMDQ4fDApPT0wKXt3PWt9ZWxzZXthW2tdPTQzO3c9
dCsyfDB9aWYoKHYmMTAyNHwwKT09MCl7eD13fWVsc2V7YVt3XT0zNTt4PXcrMXwwfXc9diYyNjA7
az12Pj4+MTQ7TDE3NTQ6ZG97aWYoKHd8MCk9PTI2MCl7YVt4XT03Njt2PXgrMXwwO2lmKChrJjF8
MCk9PTApe2Fbdl09OTc7eT0wO2JyZWFrfWVsc2V7YVt2XT02NTt5PTA7YnJlYWt9fWVsc2V7YVt4
XT00NjthW3grMXwwXT00MjthW3grMnwwXT03Njt2PXgrM3wwO3N3aXRjaCh3fDApe2Nhc2UgNDp7
aWYoKGsmMXwwKT09MCl7YVt2XT0xMDI7eT0xO2JyZWFrIEwxNzU0fWVsc2V7YVt2XT03MDt5PTE7
YnJlYWsgTDE3NTR9YnJlYWt9O2Nhc2UgMjU2OntpZigoayYxfDApPT0wKXthW3ZdPTEwMTt5PTE7
YnJlYWsgTDE3NTR9ZWxzZXthW3ZdPTY5O3k9MTticmVhayBMMTc1NH1icmVha307ZGVmYXVsdDp7
aWYoKGsmMXwwKT09MCl7YVt2XT0xMDM7eT0xO2JyZWFrIEwxNzU0fWVsc2V7YVt2XT03MTt5PTE7
YnJlYWsgTDE3NTR9fX19fXdoaWxlKDApO2s9bHwwO2NbbT4+Ml09aztkb3tpZigoYVsxNjI2NF18
MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9
fXdoaWxlKDApO2w9Y1syOTU4XXwwO2lmKHkpe3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkrMTZ8MCxj
W3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtBPXd9ZWxzZXt3PWdiKGss
MzAsbCx0LCh6PWksaT1pKzh8MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7QT13fWRve2lmKChBfDAp
PjI5KXt3PShhWzE2MjY0XXwwKT09MDtpZih5KXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0w
KXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWdoKG0sY1syOTU4XXww
LHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9
ejtCPWx9ZWxzZXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFT
KDEsMTM0NCwwKXwwfX13aGlsZSgwKTt3PWdoKG0sY1syOTU4XXwwLHQsKHo9aSxpPWkrOHwwLGhb
ej4+M109aix6KXwwKXwwO2k9ejtCPXd9dz1jW20+PjJdfDA7aWYoKHd8MCkhPTApe0M9QjtEPXc7
RT13O2JyZWFrfWtYKCk7dz1jW20+PjJdfDA7Qz1CO0Q9dztFPXd9ZWxzZXtDPUE7RD0wO0U9Y1tt
Pj4yXXwwfX13aGlsZSgwKTtBPUUrQ3wwO0wxODAzOmRve3N3aXRjaChjW3U+PjJdJjE3NnwwKXtj
YXNlIDMyOntGPUE7YnJlYWt9O2Nhc2UgMTY6e0I9YVtFXXwwO3N3aXRjaChCPDwyND4+MjQpe2Nh
c2UgNDU6Y2FzZSA0Mzp7Rj1FKzF8MDticmVhayBMMTgwMzticmVha307ZGVmYXVsdDp7fX1pZigh
KChDfDApPjEmQjw8MjQ+PjI0PT00OCkpe0c9MTQ3NzticmVhayBMMTgwM31zd2l0Y2goYVtFKzF8
MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e0c9MTQ3NzticmVhayBMMTgw
M319Rj1FKzJ8MDticmVha307ZGVmYXVsdDp7Rz0xNDc3fX19d2hpbGUoMCk7aWYoKEd8MCk9PTE0
Nzcpe0Y9RX1kb3tpZigoRXwwKT09KGt8MCkpe0g9bnwwO0k9MDtKPWt9ZWxzZXtHPWtKKEM8PDEp
fDA7aWYoKEd8MCkhPTApe0g9RztJPUc7Sj1FO2JyZWFrfWtYKCk7SD0wO0k9MDtKPWNbbT4+Ml18
MH19d2hpbGUoMCk7ZWoocSxmKTtnaihKLEYsQSxILG8scCxxKTtkeihjW3E+PjJdfDApfDA7cT1l
fDA7Y1tzPj4yXT1jW3E+PjJdO2Y5KHIscyxILGNbbz4+Ml18MCxjW3A+PjJdfDAsZixnKTtnPWNb
cj4+Ml18MDtjW3E+PjJdPWc7Y1tiPj4yXT1nO2lmKChJfDApIT0wKXtrSyhJKX1pZigoRHwwKT09
MCl7aT1kO3JldHVybn1rSyhEKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdqKGIsZSxmLGcsaCxqLGsp
e2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0w
LEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wO2w9aTtpPWkr
NDh8MDttPWx8MDtuPWwrMTZ8MDtvPWwrMzJ8MDtwPWt8MDtrPWNbcD4+Ml18MDtpZigoY1szOTI0
XXwwKSE9LTEpe2Nbbj4+Ml09MTU2OTY7Y1tuKzQ+PjJdPTEyO2Nbbis4Pj4yXT0wO2RXKDE1Njk2
LG4sOTYpfW49KGNbMzkyNV18MCktMXwwO3E9Y1trKzg+PjJdfDA7aWYoKGNbaysxMj4+Ml18MCkt
cT4+Mj4+PjA8PW4+Pj4wKXtyPWJPKDQpfDA7cz1yO2txKHMpO2JsKHJ8MCw4MTc2LDEzNCl9az1j
W3ErKG48PDIpPj4yXXwwO2lmKChrfDApPT0wKXtyPWJPKDQpfDA7cz1yO2txKHMpO2JsKHJ8MCw4
MTc2LDEzNCl9cj1rO3M9Y1twPj4yXXwwO2lmKChjWzM4MjhdfDApIT0tMSl7Y1ttPj4yXT0xNTMx
MjtjW20rND4+Ml09MTI7Y1ttKzg+PjJdPTA7ZFcoMTUzMTIsbSw5Nil9bT0oY1szODI5XXwwKS0x
fDA7cD1jW3MrOD4+Ml18MDtpZigoY1tzKzEyPj4yXXwwKS1wPj4yPj4+MDw9bT4+PjApe3Q9Yk8o
NCl8MDt1PXQ7a3EodSk7YmwodHwwLDgxNzYsMTM0KX1zPWNbcCsobTw8Mik+PjJdfDA7aWYoKHN8
MCk9PTApe3Q9Yk8oNCl8MDt1PXQ7a3EodSk7YmwodHwwLDgxNzYsMTM0KX10PXM7YlpbY1soY1tz
Pj4yXXwwKSsyMD4+Ml0mMTI3XShvLHQpO2Nbaj4+Ml09Zzt1PWFbYl18MDtzd2l0Y2godTw8MjQ+
PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e209Yl9bY1soY1trPj4yXXwwKSsyOD4+Ml0mMzFdKHIsdSl8
MDt1PWNbaj4+Ml18MDtjW2o+PjJdPXUrMTthW3VdPW07dj1iKzF8MDticmVha307ZGVmYXVsdDp7
dj1ifX1tPWY7TDE4NTE6ZG97aWYoKG0tdnwwKT4xKXtpZigoYVt2XXwwKSE9NDgpe3c9djt4PTE1
MzI7YnJlYWt9dT12KzF8MDtzd2l0Y2goYVt1XXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307
ZGVmYXVsdDp7dz12O3g9MTUzMjticmVhayBMMTg1MX19cD1rO249Yl9bY1soY1twPj4yXXwwKSsy
OD4+Ml0mMzFdKHIsNDgpfDA7cT1jW2o+PjJdfDA7Y1tqPj4yXT1xKzE7YVtxXT1uO249disyfDA7
cT1iX1tjWyhjW3A+PjJdfDApKzI4Pj4yXSYzMV0ocixhW3VdfDApfDA7dT1jW2o+PjJdfDA7Y1tq
Pj4yXT11KzE7YVt1XT1xO3E9bjt3aGlsZSgxKXtpZihxPj4+MD49Zj4+PjApe3k9cTt6PW47YnJl
YWsgTDE4NTF9dT1hW3FdfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDAp
PT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtpZigoYTModTw8MjQ+
PjI0fDAsY1syOTU4XXwwKXwwKT09MCl7eT1xO3o9bjticmVha31lbHNle3E9cSsxfDB9fX1lbHNl
e3c9djt4PTE1MzJ9fXdoaWxlKDApO0wxODY2OmRve2lmKCh4fDApPT0xNTMyKXt3aGlsZSgxKXt4
PTA7aWYodz4+PjA+PWY+Pj4wKXt5PXc7ej12O2JyZWFrIEwxODY2fXE9YVt3XXwwO2Rve2lmKChh
WzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEz
NDQsMCl8MH19d2hpbGUoMCk7aWYoKGJIKHE8PDI0Pj4yNHwwLGNbMjk1OF18MCl8MCk9PTApe3k9
dzt6PXY7YnJlYWt9ZWxzZXt3PXcrMXwwO3g9MTUzMn19fX13aGlsZSgwKTt4PW87dz1vO3Y9ZFt3
XXwwO2lmKCh2JjF8MCk9PTApe0E9dj4+PjF9ZWxzZXtBPWNbbys0Pj4yXXwwfWRve2lmKChBfDAp
PT0wKXt2PWNbaj4+Ml18MDt1PWNbKGNbaz4+Ml18MCkrMzI+PjJdfDA7Y2FbdSYxNV0ocix6LHks
dil8MDtjW2o+PjJdPShjW2o+PjJdfDApKyh5LXopfWVsc2V7ZG97aWYoKHp8MCkhPSh5fDApKXt2
PXktMXwwO2lmKHo+Pj4wPHY+Pj4wKXtCPXo7Qz12fWVsc2V7YnJlYWt9ZG97dj1hW0JdfDA7YVtC
XT1hW0NdfDA7YVtDXT12O0I9QisxfDA7Qz1DLTF8MDt9d2hpbGUoQj4+PjA8Qz4+PjApfX13aGls
ZSgwKTtxPWIwW2NbKGNbcz4+Ml18MCkrMTY+PjJdJjEyN10odCl8MDtpZih6Pj4+MDx5Pj4+MCl7
dj14KzF8MDt1PW8rNHwwO249bys4fDA7cD1rO0Q9MDtFPTA7Rj16O3doaWxlKDEpe0c9KGFbd10m
MSk9PTA7ZG97aWYoKGFbKEc/djpjW24+PjJdfDApK0V8MF18MCk+MCl7aWYoKER8MCkhPShhWyhH
P3Y6Y1tuPj4yXXwwKStFfDBdfDApKXtIPUU7ST1EO2JyZWFrfUo9Y1tqPj4yXXwwO2Nbaj4+Ml09
SisxO2FbSl09cTtKPWRbd118MDtIPShFPj4+MDwoKChKJjF8MCk9PTA/Sj4+PjE6Y1t1Pj4yXXww
KS0xfDApPj4+MCkrRXwwO0k9MH1lbHNle0g9RTtJPUR9fXdoaWxlKDApO0c9Yl9bY1soY1twPj4y
XXwwKSsyOD4+Ml0mMzFdKHIsYVtGXXwwKXwwO0o9Y1tqPj4yXXwwO2Nbaj4+Ml09SisxO2FbSl09
RztHPUYrMXwwO2lmKEc+Pj4wPHk+Pj4wKXtEPUkrMXwwO0U9SDtGPUd9ZWxzZXticmVha319fUY9
Zysoei1iKXwwO0U9Y1tqPj4yXXwwO2lmKChGfDApPT0oRXwwKSl7YnJlYWt9RD1FLTF8MDtpZihG
Pj4+MDxEPj4+MCl7Sz1GO0w9RH1lbHNle2JyZWFrfWRve0Q9YVtLXXwwO2FbS109YVtMXXwwO2Fb
TF09RDtLPUsrMXwwO0w9TC0xfDA7fXdoaWxlKEs+Pj4wPEw+Pj4wKX19d2hpbGUoMCk7TDE5MDU6
ZG97aWYoeT4+PjA8Zj4+PjApe0w9aztLPXk7d2hpbGUoMSl7ej1hW0tdfDA7aWYoejw8MjQ+PjI0
PT00Nil7YnJlYWt9SD1iX1tjWyhjW0w+PjJdfDApKzI4Pj4yXSYzMV0ocix6KXwwO3o9Y1tqPj4y
XXwwO2Nbaj4+Ml09eisxO2Fbel09SDtIPUsrMXwwO2lmKEg+Pj4wPGY+Pj4wKXtLPUh9ZWxzZXtN
PUg7YnJlYWsgTDE5MDV9fUw9YjBbY1soY1tzPj4yXXwwKSsxMj4+Ml0mMTI3XSh0KXwwO0g9Y1tq
Pj4yXXwwO2Nbaj4+Ml09SCsxO2FbSF09TDtNPUsrMXwwfWVsc2V7TT15fX13aGlsZSgwKTtjYVtj
WyhjW2s+PjJdfDApKzMyPj4yXSYxNV0ocixNLGYsY1tqPj4yXXwwKXwwO3I9KGNbaj4+Ml18MCkr
KG0tTSl8MDtjW2o+PjJdPXI7aWYoKGV8MCk9PShmfDApKXtOPXI7Y1toPj4yXT1OO2RQKG8pO2k9
bDtyZXR1cm59Tj1nKyhlLWIpfDA7Y1toPj4yXT1OO2RQKG8pO2k9bDtyZXR1cm59ZnVuY3Rpb24g
Z2soYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZ2woYSl7YT1hfDA7ZGUo
YXwwKTtyZXR1cm59ZnVuY3Rpb24gZ20oYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxz
PTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtkPWk7aT1pKzE0NHwwO2o9ZTtlPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1kfDA7az1kKzh8MDtsPWQrMjR8MDttPWQrMTEyfDA7
bj1kKzEyMHwwO289ZCsxMjh8MDtwPWQrMTM2fDA7cT1qfDA7YVtxXT1hWzIzODRdfDA7YVtxKzF8
MF09YVsyMzg1fDBdfDA7YVtxKzJ8MF09YVsyMzg2fDBdfDA7YVtxKzN8MF09YVsyMzg3fDBdfDA7
YVtxKzR8MF09YVsyMzg4fDBdfDA7YVtxKzV8MF09YVsyMzg5fDBdfDA7cj1qKzF8MDtzPWYrNHww
O3Q9Y1tzPj4yXXwwO2lmKCh0JjIwNDh8MCk9PTApe3U9cn1lbHNle2Fbcl09NDM7dT1qKzJ8MH1p
ZigodCY1MTJ8MCk9PTApe3Y9dX1lbHNle2FbdV09MzU7dj11KzF8MH1hW3ZdPTEwODt1PXYrMXww
O0wxOTI4OmRve3N3aXRjaCh0Jjc0fDApe2Nhc2UgNjQ6e2FbdV09MTExO2JyZWFrfTtjYXNlIDg6
e2lmKCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDticmVhayBMMTkyOH1lbHNle2FbdV09ODg7YnJl
YWsgTDE5Mjh9YnJlYWt9O2RlZmF1bHQ6e2FbdV09MTAwfX19d2hpbGUoMCk7dT1rfDA7ZG97aWYo
KGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEs
MTM0NCwwKXwwfX13aGlsZSgwKTt0PWdiKHUsMTIsY1syOTU4XXwwLHEsKHE9aSxpPWkrOHwwLGNb
cT4+Ml09aCxxKXwwKXwwO2k9cTtxPWsrdHwwO0wxOTQxOmRve3N3aXRjaChjW3M+PjJdJjE3Nnww
KXtjYXNlIDMyOnt3PXE7YnJlYWt9O2Nhc2UgMTY6e2g9YVt1XXwwO3N3aXRjaChoPDwyND4+MjQp
e2Nhc2UgNDU6Y2FzZSA0Mzp7dz1rKzF8MDticmVhayBMMTk0MTticmVha307ZGVmYXVsdDp7fX1p
ZighKCh0fDApPjEmaDw8MjQ+PjI0PT00OCkpe3g9MTYwMDticmVhayBMMTk0MX1zd2l0Y2goYVtr
KzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTYwMDticmVhayBM
MTk0MX19dz1rKzJ8MDticmVha307ZGVmYXVsdDp7eD0xNjAwfX19d2hpbGUoMCk7aWYoKHh8MCk9
PTE2MDApe3c9dX14PWx8MDtlaihvLGYpO2dwKHUsdyxxLHgsbSxuLG8pO2R6KGNbbz4+Ml18MCl8
MDtjW3A+PjJdPWNbZT4+Ml07Z3EoYixwLHgsY1ttPj4yXXwwLGNbbj4+Ml18MCxmLGcpO2k9ZDty
ZXR1cm59ZnVuY3Rpb24gZ24oYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MDtkPWk7aT1pKzEwNHwwO2o9ZTtlPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1kfDA7az1kKzI0fDA7bD1kKzQ4fDA7bT1k
Kzg4fDA7bj1kKzk2fDA7bz1kKzE2fDA7YVtvXT1hWzIzOTJdfDA7YVtvKzF8MF09YVsyMzkzfDBd
fDA7YVtvKzJ8MF09YVsyMzk0fDBdfDA7YVtvKzN8MF09YVsyMzk1fDBdfDA7YVtvKzR8MF09YVsy
Mzk2fDBdfDA7YVtvKzV8MF09YVsyMzk3fDBdfDA7cD1rfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0w
KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGls
ZSgwKTtxPWdiKHAsMjAsY1syOTU4XXwwLG8sKG89aSxpPWkrOHwwLGNbbz4+Ml09aCxvKXwwKXww
O2k9bztvPWsrcXwwO0wxOTU4OmRve3N3aXRjaChjW2YrND4+Ml0mMTc2fDApe2Nhc2UgMTY6e2g9
YVtwXXwwO3N3aXRjaChoPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7cj1rKzF8MDticmVhayBM
MTk1ODticmVha307ZGVmYXVsdDp7fX1pZighKChxfDApPjEmaDw8MjQ+PjI0PT00OCkpe3M9MTYx
NTticmVhayBMMTk1OH1zd2l0Y2goYVtrKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9
O2RlZmF1bHQ6e3M9MTYxNTticmVhayBMMTk1OH19cj1rKzJ8MDticmVha307Y2FzZSAzMjp7cj1v
O2JyZWFrfTtkZWZhdWx0OntzPTE2MTV9fX13aGlsZSgwKTtpZigoc3wwKT09MTYxNSl7cj1wfWVq
KG0sZik7cz1tfDA7bT1jW3M+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2o+PjJdPTE1Njk2
O2Nbais0Pj4yXT0xMjtjW2orOD4+Ml09MDtkVygxNTY5NixqLDk2KX1qPShjWzM5MjVdfDApLTF8
MDtoPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJdfDApLWg+PjI+Pj4wPmo+Pj4wKXt0PWNb
aCsoajw8Mik+PjJdfDA7aWYoKHR8MCk9PTApe2JyZWFrfXU9dDt2PWNbcz4+Ml18MDtkeih2KXww
O3Y9bHwwO3c9Y1soY1t0Pj4yXXwwKSszMj4+Ml18MDtjYVt3JjE1XSh1LHAsbyx2KXwwO3U9bCtx
fDA7aWYoKHJ8MCk9PShvfDApKXt4PXU7eT1lfDA7ej1jW3k+PjJdfDA7QT1ufDA7Y1tBPj4yXT16
O2Y5KGIsbix2LHgsdSxmLGcpO2k9ZDtyZXR1cm59eD1sKyhyLWspfDA7eT1lfDA7ej1jW3k+PjJd
fDA7QT1ufDA7Y1tBPj4yXT16O2Y5KGIsbix2LHgsdSxmLGcpO2k9ZDtyZXR1cm59fXdoaWxlKDAp
O2Q9Yk8oNCl8MDtrcShkKTtibChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdvKGIsZCxlLGYsZyxo
KXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MDtqPWk7
aT1pKzQ4fDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8
MDtsPWorMTZ8MDttPWorMjR8MDtuPWorMzJ8MDtpZigoY1tmKzQ+PjJdJjF8MCk9PTApe289Y1so
Y1tkPj4yXXwwKSsyND4+Ml18MDtjW2w+PjJdPWNbZT4+Ml07YjlbbyYzMV0oYixkLGwsZixnLGgm
MSk7aT1qO3JldHVybn1laihtLGYpO2Y9bXwwO209Y1tmPj4yXXwwO2lmKChjWzM4MjZdfDApIT0t
MSl7Y1trPj4yXT0xNTMwNDtjW2srND4+Ml09MTI7Y1trKzg+PjJdPTA7ZFcoMTUzMDQsayw5Nil9
az0oY1szODI3XXwwKS0xfDA7Zz1jW20rOD4+Ml18MDtkb3tpZigoY1ttKzEyPj4yXXwwKS1nPj4y
Pj4+MD5rPj4+MCl7bD1jW2crKGs8PDIpPj4yXXwwO2lmKChsfDApPT0wKXticmVha31kPWw7bz1j
W2Y+PjJdfDA7ZHoobyl8MDtvPWNbbD4+Ml18MDtpZihoKXtiWltjW28rMjQ+PjJdJjEyN10obixk
KX1lbHNle2JaW2NbbysyOD4+Ml0mMTI3XShuLGQpfWQ9bjtvPWFbZF18MDtpZigobyYxKT09MCl7
bD1uKzR8MDtwPWw7cT1sO3I9bis4fDB9ZWxzZXtsPW4rOHwwO3A9Y1tsPj4yXXwwO3E9bis0fDA7
cj1sfWw9ZXwwO3M9cDt0PW87d2hpbGUoMSl7aWYoKHQmMSk9PTApe3U9cX1lbHNle3U9Y1tyPj4y
XXwwfW89dCYyNTU7aWYoKG8mMXwwKT09MCl7dj1vPj4+MX1lbHNle3Y9Y1txPj4yXXwwfWlmKChz
fDApPT0odSsodjw8Mil8MCkpe2JyZWFrfW89Y1tzPj4yXXwwO3c9Y1tsPj4yXXwwO2Rve2lmKCh3
fDApIT0wKXt4PXcrMjR8MDt5PWNbeD4+Ml18MDtpZigoeXwwKT09KGNbdysyOD4+Ml18MCkpe3o9
Yl9bY1soY1t3Pj4yXXwwKSs1Mj4+Ml0mMzFdKHcsbyl8MH1lbHNle2NbeD4+Ml09eSs0O2NbeT4+
Ml09bzt6PW99aWYoKHp8MCkhPS0xKXticmVha31jW2w+PjJdPTB9fXdoaWxlKDApO3M9cys0fDA7
dD1hW2RdfDB9Y1tiPj4yXT1jW2w+PjJdO2VlKG4pO2k9ajtyZXR1cm59fXdoaWxlKDApO2o9Yk8o
NCl8MDtrcShqKTtibChqfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdwKGIsZSxmLGcsaCxqLGspe2I9
YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MDtsPWk7aT1pKzQ4fDA7bT1sfDA7
bj1sKzE2fDA7bz1sKzMyfDA7cD1rfDA7az1jW3A+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtj
W24+PjJdPTE1Njg4O2Nbbis0Pj4yXT0xMjtjW24rOD4+Ml09MDtkVygxNTY4OCxuLDk2KX1uPShj
WzM5MjNdfDApLTF8MDtxPWNbays4Pj4yXXwwO2lmKChjW2srMTI+PjJdfDApLXE+PjI+Pj4wPD1u
Pj4+MCl7cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfWs9Y1txKyhuPDwyKT4+
Ml18MDtpZigoa3wwKT09MCl7cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfXI9
aztzPWNbcD4+Ml18MDtpZigoY1szODI2XXwwKSE9LTEpe2NbbT4+Ml09MTUzMDQ7Y1ttKzQ+PjJd
PTEyO2NbbSs4Pj4yXT0wO2RXKDE1MzA0LG0sOTYpfW09KGNbMzgyN118MCktMXwwO3A9Y1tzKzg+
PjJdfDA7aWYoKGNbcysxMj4+Ml18MCktcD4+Mj4+PjA8PW0+Pj4wKXt0PWJPKDQpfDA7dT10O2tx
KHUpO2JsKHR8MCw4MTc2LDEzNCl9cz1jW3ArKG08PDIpPj4yXXwwO2lmKChzfDApPT0wKXt0PWJP
KDQpfDA7dT10O2txKHUpO2JsKHR8MCw4MTc2LDEzNCl9dD1zO2JaW2NbKGNbcz4+Ml18MCkrMjA+
PjJdJjEyN10obyx0KTt1PW87bT1vO3A9ZFttXXwwO2lmKChwJjF8MCk9PTApe3Y9cD4+PjF9ZWxz
ZXt2PWNbbys0Pj4yXXwwfWRve2lmKCh2fDApPT0wKXtwPWNbKGNbaz4+Ml18MCkrNDg+PjJdfDA7
Y2FbcCYxNV0ocixiLGYsZyl8MDtjW2o+PjJdPWcrKGYtYjw8Mil9ZWxzZXtjW2o+PjJdPWc7cD1h
W2JdfDA7c3dpdGNoKHA8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOntuPWJfW2NbKGNbaz4+Ml18
MCkrNDQ+PjJdJjMxXShyLHApfDA7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzQ7Y1twPj4yXT1uO3c9
YisxfDA7YnJlYWt9O2RlZmF1bHQ6e3c9Yn19TDIwNTA6ZG97aWYoKGYtd3wwKT4xKXtpZigoYVt3
XXwwKSE9NDgpe3g9dzticmVha31uPXcrMXwwO3N3aXRjaChhW25dfDApe2Nhc2UgMTIwOmNhc2Ug
ODg6e2JyZWFrfTtkZWZhdWx0Ont4PXc7YnJlYWsgTDIwNTB9fXA9aztxPWJfW2NbKGNbcD4+Ml18
MCkrNDQ+PjJdJjMxXShyLDQ4KXwwO3k9Y1tqPj4yXXwwO2Nbaj4+Ml09eSs0O2NbeT4+Ml09cTtx
PWJfW2NbKGNbcD4+Ml18MCkrNDQ+PjJdJjMxXShyLGFbbl18MCl8MDtuPWNbaj4+Ml18MDtjW2o+
PjJdPW4rNDtjW24+PjJdPXE7eD13KzJ8MH1lbHNle3g9d319d2hpbGUoMCk7ZG97aWYoKHh8MCkh
PShmfDApKXtxPWYtMXwwO2lmKHg+Pj4wPHE+Pj4wKXt6PXg7QT1xfWVsc2V7YnJlYWt9ZG97cT1h
W3pdfDA7YVt6XT1hW0FdfDA7YVtBXT1xO3o9eisxfDA7QT1BLTF8MDt9d2hpbGUoej4+PjA8QT4+
PjApfX13aGlsZSgwKTtxPWIwW2NbKGNbcz4+Ml18MCkrMTY+PjJdJjEyN10odCl8MDtpZih4Pj4+
MDxmPj4+MCl7bj11KzF8MDtwPWs7eT1vKzR8MDtCPW8rOHwwO0M9MDtEPTA7RT14O3doaWxlKDEp
e0Y9KGFbbV0mMSk9PTA7ZG97aWYoKGFbKEY/bjpjW0I+PjJdfDApK0R8MF18MCk9PTApe0c9RDtI
PUN9ZWxzZXtpZigoQ3wwKSE9KGFbKEY/bjpjW0I+PjJdfDApK0R8MF18MCkpe0c9RDtIPUM7YnJl
YWt9ST1jW2o+PjJdfDA7Y1tqPj4yXT1JKzQ7Y1tJPj4yXT1xO0k9ZFttXXwwO0c9KEQ+Pj4wPCgo
KEkmMXwwKT09MD9JPj4+MTpjW3k+PjJdfDApLTF8MCk+Pj4wKStEfDA7SD0wfX13aGlsZSgwKTtG
PWJfW2NbKGNbcD4+Ml18MCkrNDQ+PjJdJjMxXShyLGFbRV18MCl8MDtJPWNbaj4+Ml18MDtjW2o+
PjJdPUkrNDtjW0k+PjJdPUY7Rj1FKzF8MDtpZihGPj4+MDxmPj4+MCl7Qz1IKzF8MDtEPUc7RT1G
fWVsc2V7YnJlYWt9fX1FPWcrKHgtYjw8Mil8MDtEPWNbaj4+Ml18MDtpZigoRXwwKT09KER8MCkp
e2JyZWFrfUM9RC00fDA7aWYoRT4+PjA8Qz4+PjApe0o9RTtLPUN9ZWxzZXticmVha31kb3tDPWNb
Sj4+Ml18MDtjW0o+PjJdPWNbSz4+Ml07Y1tLPj4yXT1DO0o9Sis0fDA7Sz1LLTR8MDt9d2hpbGUo
Sj4+PjA8Sz4+PjApfX13aGlsZSgwKTtpZigoZXwwKT09KGZ8MCkpe0w9Y1tqPj4yXXwwO2NbaD4+
Ml09TDtkUChvKTtpPWw7cmV0dXJufWVsc2V7TD1nKyhlLWI8PDIpfDA7Y1toPj4yXT1MO2RQKG8p
O2k9bDtyZXR1cm59fWZ1bmN0aW9uIGdxKGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wO2s9aTtpPWkrMTZ8MDtsPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2w+
PjJdO2w9a3wwO209ZHwwO2Q9Y1ttPj4yXXwwO2lmKChkfDApPT0wKXtjW2I+PjJdPTA7aT1rO3Jl
dHVybn1uPWc7Zz1lO289bi1nPj4yO3A9aCsxMnwwO2g9Y1twPj4yXXwwO3E9KGh8MCk+KG98MCk/
aC1vfDA6MDtvPWY7aD1vLWd8MDtnPWg+PjI7ZG97aWYoKGh8MCk+MCl7aWYoKGIxW2NbKGNbZD4+
Ml18MCkrNDg+PjJdJjYzXShkLGUsZyl8MCk9PShnfDApKXticmVha31jW20+PjJdPTA7Y1tiPj4y
XT0wO2k9aztyZXR1cm59fXdoaWxlKDApO2Rve2lmKChxfDApPjApe2V5KGwscSxqKTtpZigoYVts
XSYxKT09MCl7cj1sKzR8MH1lbHNle3I9Y1tsKzg+PjJdfDB9aWYoKGIxW2NbKGNbZD4+Ml18MCkr
NDg+PjJdJjYzXShkLHIscSl8MCk9PShxfDApKXtlZShsKTticmVha31jW20+PjJdPTA7Y1tiPj4y
XT0wO2VlKGwpO2k9aztyZXR1cm59fXdoaWxlKDApO2w9bi1vfDA7bz1sPj4yO2Rve2lmKChsfDAp
PjApe2lmKChiMVtjWyhjW2Q+PjJdfDApKzQ4Pj4yXSY2M10oZCxmLG8pfDApPT0ob3wwKSl7YnJl
YWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtpPWs7cmV0dXJufX13aGlsZSgwKTtjW3A+PjJdPTA7Y1ti
Pj4yXT1kO2k9aztyZXR1cm59ZnVuY3Rpb24gZ3IoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7
ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTA7ZD1pO2k9aSsyMzJ8MDtrPWU7ZT1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzMyfDA7
bj1kKzIwMHwwO289ZCsyMDh8MDtwPWQrMjE2fDA7cT1kKzIyNHwwO2Nbaz4+Ml09Mzc7Y1trKzQ+
PjJdPTA7cj1rO2s9cisxfDA7cz1mKzR8MDt0PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1
PWt9ZWxzZXthW2tdPTQzO3U9cisyfDB9aWYoKHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1
O3Y9dSsxfDB9YVt2XT0xMDg7YVt2KzF8MF09MTA4O3U9disyfDA7TDIxMTk6ZG97c3dpdGNoKHQm
NzR8MCl7Y2FzZSA4OntpZigodCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7YnJlYWsgTDIxMTl9ZWxz
ZXthW3VdPTg4O2JyZWFrIEwyMTE5fWJyZWFrfTtjYXNlIDY0OnthW3VdPTExMTticmVha307ZGVm
YXVsdDp7YVt1XT0xMDB9fX13aGlsZSgwKTt1PWx8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lm
KChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDAp
O3Q9Z2IodSwyMixjWzI5NThdfDAsciwocj1pLGk9aSsxNnwwLGNbcj4+Ml09aCxjW3IrOD4+Ml09
aixyKXwwKXwwO2k9cjtyPWwrdHwwO0wyMTMyOmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNl
IDMyOnt3PXI7YnJlYWt9O2Nhc2UgMTY6e2o9YVt1XXwwO3N3aXRjaChqPDwyND4+MjQpe2Nhc2Ug
NDU6Y2FzZSA0Mzp7dz1sKzF8MDticmVhayBMMjEzMjticmVha307ZGVmYXVsdDp7fX1pZighKCh0
fDApPjEmajw8MjQ+PjI0PT00OCkpe3g9MTc2MDticmVhayBMMjEzMn1zd2l0Y2goYVtsKzF8MF18
MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTc2MDticmVhayBMMjEzMn19
dz1sKzJ8MDticmVha307ZGVmYXVsdDp7eD0xNzYwfX19d2hpbGUoMCk7aWYoKHh8MCk9PTE3NjAp
e3c9dX14PW18MDtlaihwLGYpO2dwKHUsdyxyLHgsbixvLHApO2R6KGNbcD4+Ml18MCl8MDtjW3E+
PjJdPWNbZT4+Ml07Z3EoYixxLHgsY1tuPj4yXXwwLGNbbz4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59
ZnVuY3Rpb24gZ3MoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9
aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2
PTAsdz0wLHg9MDtkPWk7aT1pKzE0NHwwO2o9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+
PjJdPWNbaj4+Ml07aj1kfDA7az1kKzh8MDtsPWQrMjR8MDttPWQrMTEyfDA7bj1kKzEyMHwwO289
ZCsxMjh8MDtwPWQrMTM2fDA7cT1qfDA7YVtxXT1hWzIzODRdfDA7YVtxKzF8MF09YVsyMzg1fDBd
fDA7YVtxKzJ8MF09YVsyMzg2fDBdfDA7YVtxKzN8MF09YVsyMzg3fDBdfDA7YVtxKzR8MF09YVsy
Mzg4fDBdfDA7YVtxKzV8MF09YVsyMzg5fDBdfDA7cj1qKzF8MDtzPWYrNHwwO3Q9Y1tzPj4yXXww
O2lmKCh0JjIwNDh8MCk9PTApe3U9cn1lbHNle2Fbcl09NDM7dT1qKzJ8MH1pZigodCY1MTJ8MCk9
PTApe3Y9dX1lbHNle2FbdV09MzU7dj11KzF8MH1hW3ZdPTEwODt1PXYrMXwwO0wyMTUwOmRve3N3
aXRjaCh0Jjc0fDApe2Nhc2UgNjQ6e2FbdV09MTExO2JyZWFrfTtjYXNlIDg6e2lmKCh0JjE2Mzg0
fDApPT0wKXthW3VdPTEyMDticmVhayBMMjE1MH1lbHNle2FbdV09ODg7YnJlYWsgTDIxNTB9YnJl
YWt9O2RlZmF1bHQ6e2FbdV09MTE3fX19d2hpbGUoMCk7dT1rfDA7ZG97aWYoKGFbMTYyNjRdfDAp
PT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13
aGlsZSgwKTt0PWdiKHUsMTIsY1syOTU4XXwwLHEsKHE9aSxpPWkrOHwwLGNbcT4+Ml09aCxxKXww
KXwwO2k9cTtxPWsrdHwwO0wyMTYzOmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNlIDE2Onto
PWFbdV18MDtzd2l0Y2goaDw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3c9aysxfDA7YnJlYWsg
TDIxNjM7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgodHwwKT4xJmg8PDI0Pj4yND09NDgpKXt4PTE3
ODU7YnJlYWsgTDIxNjN9c3dpdGNoKGFbaysxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFr
fTtkZWZhdWx0Ont4PTE3ODU7YnJlYWsgTDIxNjN9fXc9aysyfDA7YnJlYWt9O2Nhc2UgMzI6e3c9
cTticmVha307ZGVmYXVsdDp7eD0xNzg1fX19d2hpbGUoMCk7aWYoKHh8MCk9PTE3ODUpe3c9dX14
PWx8MDtlaihvLGYpO2dwKHUsdyxxLHgsbSxuLG8pO2R6KGNbbz4+Ml18MCl8MDtjW3A+PjJdPWNb
ZT4+Ml07Z3EoYixwLHgsY1ttPj4yXXwwLGNbbj4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59ZnVuY3Rp
b24gZ3QoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0w
LHc9MCx4PTA7ZD1pO2k9aSsyNDB8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4y
XT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzMyfDA7bj1kKzIwOHwwO289ZCsyMTZ8MDtwPWQr
MjI0fDA7cT1kKzIzMnwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7cj1rO2s9cisxfDA7cz1mKzR8
MDt0PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1PWt9ZWxzZXthW2tdPTQzO3U9cisyfDB9
aWYoKHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2XT0xMDg7YVt2KzF8
MF09MTA4O3U9disyfDA7TDIxODE6ZG97c3dpdGNoKHQmNzR8MCl7Y2FzZSA4OntpZigodCYxNjM4
NHwwKT09MCl7YVt1XT0xMjA7YnJlYWsgTDIxODF9ZWxzZXthW3VdPTg4O2JyZWFrIEwyMTgxfWJy
ZWFrfTtjYXNlIDY0OnthW3VdPTExMTticmVha307ZGVmYXVsdDp7YVt1XT0xMTd9fX13aGlsZSgw
KTt1PWx8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFr
fWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3Q9Z2IodSwyMyxjWzI5NThdfDAsciwo
cj1pLGk9aSsxNnwwLGNbcj4+Ml09aCxjW3IrOD4+Ml09aixyKXwwKXwwO2k9cjtyPWwrdHwwO0wy
MTk0OmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNlIDE2OntqPWFbdV18MDtzd2l0Y2goajw8
MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3c9bCsxfDA7YnJlYWsgTDIxOTQ7YnJlYWt9O2RlZmF1
bHQ6e319aWYoISgodHwwKT4xJmo8PDI0Pj4yND09NDgpKXt4PTE4MTA7YnJlYWsgTDIxOTR9c3dp
dGNoKGFbbCsxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PTE4MTA7
YnJlYWsgTDIxOTR9fXc9bCsyfDA7YnJlYWt9O2Nhc2UgMzI6e3c9cjticmVha307ZGVmYXVsdDp7
eD0xODEwfX19d2hpbGUoMCk7aWYoKHh8MCk9PTE4MTApe3c9dX14PW18MDtlaihwLGYpO2dwKHUs
dyxyLHgsbixvLHApO2R6KGNbcD4+Ml18MCl8MDtjW3E+PjJdPWNbZT4+Ml07Z3EoYixxLHgsY1tu
Pj4yXXwwLGNbbz4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ3UoYixkLGUsZixnLGop
e2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9K2o7dmFyIGs9MCxsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTA7ZD1pO2k9aSszMjB8MDtrPWU7ZT1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzQwfDA7bj1k
KzQ4fDA7bz1kKzI4MHwwO3A9ZCsyODh8MDtxPWQrMjk2fDA7cj1kKzMwNHwwO3M9ZCszMTJ8MDtj
W2s+PjJdPTM3O2Nbays0Pj4yXT0wO3Q9aztrPXQrMXwwO3U9Zis0fDA7dj1jW3U+PjJdfDA7aWYo
KHYmMjA0OHwwKT09MCl7dz1rfWVsc2V7YVtrXT00Mzt3PXQrMnwwfWlmKCh2JjEwMjR8MCk9PTAp
e3g9d31lbHNle2Fbd109MzU7eD13KzF8MH13PXYmMjYwO2s9dj4+PjE0O0wyMjEyOmRve2lmKCh3
fDApPT0yNjApe2lmKChrJjF8MCk9PTApe2FbeF09OTc7eT0wO2JyZWFrfWVsc2V7YVt4XT02NTt5
PTA7YnJlYWt9fWVsc2V7YVt4XT00Njt2PXgrMnwwO2FbeCsxfDBdPTQyO3N3aXRjaCh3fDApe2Nh
c2UgMjU2OntpZigoayYxfDApPT0wKXthW3ZdPTEwMTt5PTE7YnJlYWsgTDIyMTJ9ZWxzZXthW3Zd
PTY5O3k9MTticmVhayBMMjIxMn1icmVha307Y2FzZSA0OntpZigoayYxfDApPT0wKXthW3ZdPTEw
Mjt5PTE7YnJlYWsgTDIyMTJ9ZWxzZXthW3ZdPTcwO3k9MTticmVhayBMMjIxMn1icmVha307ZGVm
YXVsdDp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDM7eT0xO2JyZWFrIEwyMjEyfWVsc2V7YVt2XT03
MTt5PTE7YnJlYWsgTDIyMTJ9fX19fXdoaWxlKDApO2s9bHwwO2NbbT4+Ml09aztkb3tpZigoYVsx
NjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0
LDApfDB9fXdoaWxlKDApO2w9Y1syOTU4XXwwO2lmKHkpe3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkr
MTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtBPXd9ZWxzZXt3
PWdiKGssMzAsbCx0LCh6PWksaT1pKzh8MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7QT13fWRve2lm
KChBfDApPjI5KXt3PShhWzE2MjY0XXwwKT09MDtpZih5KXtkb3tpZih3KXtpZigoYmMoMTYyNjQp
fDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWdoKG0sY1sy
OTU4XXwwLHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXww
KXwwO2k9ejtCPWx9ZWxzZXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5
NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt3PWdoKG0sY1syOTU4XXwwLHQsKHo9aSxpPWkr
MTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtCPXd9dz1jW20+
PjJdfDA7aWYoKHd8MCkhPTApe0M9QjtEPXc7RT13O2JyZWFrfWtYKCk7dz1jW20+PjJdfDA7Qz1C
O0Q9dztFPXd9ZWxzZXtDPUE7RD0wO0U9Y1ttPj4yXXwwfX13aGlsZSgwKTtBPUUrQ3wwO0wyMjYx
OmRve3N3aXRjaChjW3U+PjJdJjE3NnwwKXtjYXNlIDMyOntGPUE7YnJlYWt9O2Nhc2UgMTY6e0I9
YVtFXXwwO3N3aXRjaChCPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7Rj1FKzF8MDticmVhayBM
MjI2MTticmVha307ZGVmYXVsdDp7fX1pZighKChDfDApPjEmQjw8MjQ+PjI0PT00OCkpe0c9MTg2
NjticmVhayBMMjI2MX1zd2l0Y2goYVtFKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9
O2RlZmF1bHQ6e0c9MTg2NjticmVhayBMMjI2MX19Rj1FKzJ8MDticmVha307ZGVmYXVsdDp7Rz0x
ODY2fX19d2hpbGUoMCk7aWYoKEd8MCk9PTE4NjYpe0Y9RX1kb3tpZigoRXwwKT09KGt8MCkpe0g9
bnwwO0k9MDtKPWt9ZWxzZXtHPWtKKEM8PDMpfDA7dT1HO2lmKChHfDApIT0wKXtIPXU7ST11O0o9
RTticmVha31rWCgpO0g9dTtJPXU7Sj1jW20+PjJdfDB9fXdoaWxlKDApO2VqKHEsZik7Z3YoSixG
LEEsSCxvLHAscSk7ZHooY1txPj4yXXwwKXwwO3E9ZXwwO2Nbcz4+Ml09Y1txPj4yXTtncShyLHMs
SCxjW28+PjJdfDAsY1twPj4yXXwwLGYsZyk7Zz1jW3I+PjJdfDA7Y1txPj4yXT1nO2NbYj4+Ml09
ZztpZigoSXwwKSE9MCl7a0soSSl9aWYoKER8MCk9PTApe2k9ZDtyZXR1cm59a0soRCk7aT1kO3Jl
dHVybn1mdW5jdGlvbiBndihiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJ
PTAsSj0wLEs9MCxMPTAsTT0wLE49MDtsPWk7aT1pKzQ4fDA7bT1sfDA7bj1sKzE2fDA7bz1sKzMy
fDA7cD1rfDA7az1jW3A+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW24+PjJdPTE1Njg4O2Nb
bis0Pj4yXT0xMjtjW24rOD4+Ml09MDtkVygxNTY4OCxuLDk2KX1uPShjWzM5MjNdfDApLTF8MDtx
PWNbays4Pj4yXXwwO2lmKChjW2srMTI+PjJdfDApLXE+PjI+Pj4wPD1uPj4+MCl7cj1iTyg0KXww
O3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfWs9Y1txKyhuPDwyKT4+Ml18MDtpZigoa3wwKT09
MCl7cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfXI9aztzPWNbcD4+Ml18MDtp
ZigoY1szODI2XXwwKSE9LTEpe2NbbT4+Ml09MTUzMDQ7Y1ttKzQ+PjJdPTEyO2NbbSs4Pj4yXT0w
O2RXKDE1MzA0LG0sOTYpfW09KGNbMzgyN118MCktMXwwO3A9Y1tzKzg+PjJdfDA7aWYoKGNbcysx
Mj4+Ml18MCktcD4+Mj4+PjA8PW0+Pj4wKXt0PWJPKDQpfDA7dT10O2txKHUpO2JsKHR8MCw4MTc2
LDEzNCl9cz1jW3ArKG08PDIpPj4yXXwwO2lmKChzfDApPT0wKXt0PWJPKDQpfDA7dT10O2txKHUp
O2JsKHR8MCw4MTc2LDEzNCl9dD1zO2JaW2NbKGNbcz4+Ml18MCkrMjA+PjJdJjEyN10obyx0KTtj
W2o+PjJdPWc7dT1hW2JdfDA7c3dpdGNoKHU8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnttPWJf
W2NbKGNbaz4+Ml18MCkrNDQ+PjJdJjMxXShyLHUpfDA7dT1jW2o+PjJdfDA7Y1tqPj4yXT11KzQ7
Y1t1Pj4yXT1tO3Y9YisxfDA7YnJlYWt9O2RlZmF1bHQ6e3Y9Yn19bT1mO0wyMzA5OmRve2lmKCht
LXZ8MCk+MSl7aWYoKGFbdl18MCkhPTQ4KXt3PXY7eD0xOTIxO2JyZWFrfXU9disxfDA7c3dpdGNo
KGFbdV18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3c9djt4PTE5MjE7YnJl
YWsgTDIzMDl9fXA9aztuPWJfW2NbKGNbcD4+Ml18MCkrNDQ+PjJdJjMxXShyLDQ4KXwwO3E9Y1tq
Pj4yXXwwO2Nbaj4+Ml09cSs0O2NbcT4+Ml09bjtuPXYrMnwwO3E9Yl9bY1soY1twPj4yXXwwKSs0
ND4+Ml0mMzFdKHIsYVt1XXwwKXwwO3U9Y1tqPj4yXXwwO2Nbaj4+Ml09dSs0O2NbdT4+Ml09cTtx
PW47d2hpbGUoMSl7aWYocT4+PjA+PWY+Pj4wKXt5PXE7ej1uO2JyZWFrIEwyMzA5fXU9YVtxXXww
O2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4
XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7aWYoKGEzKHU8PDI0Pj4yNHwwLGNbMjk1OF18MCl8
MCk9PTApe3k9cTt6PW47YnJlYWt9ZWxzZXtxPXErMXwwfX19ZWxzZXt3PXY7eD0xOTIxfX13aGls
ZSgwKTtMMjMyNDpkb3tpZigoeHwwKT09MTkyMSl7d2hpbGUoMSl7eD0wO2lmKHc+Pj4wPj1mPj4+
MCl7eT13O3o9djticmVhayBMMjMyNH1xPWFbd118MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lm
KChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDAp
O2lmKChiSChxPDwyND4+MjR8MCxjWzI5NThdfDApfDApPT0wKXt5PXc7ej12O2JyZWFrfWVsc2V7
dz13KzF8MDt4PTE5MjF9fX19d2hpbGUoMCk7eD1vO3c9bzt2PWRbd118MDtpZigodiYxfDApPT0w
KXtBPXY+Pj4xfWVsc2V7QT1jW28rND4+Ml18MH1kb3tpZigoQXwwKT09MCl7dj1jW2o+PjJdfDA7
dT1jWyhjW2s+PjJdfDApKzQ4Pj4yXXwwO2NhW3UmMTVdKHIseix5LHYpfDA7Y1tqPj4yXT0oY1tq
Pj4yXXwwKSsoeS16PDwyKX1lbHNle2Rve2lmKCh6fDApIT0oeXwwKSl7dj15LTF8MDtpZih6Pj4+
MDx2Pj4+MCl7Qj16O0M9dn1lbHNle2JyZWFrfWRve3Y9YVtCXXwwO2FbQl09YVtDXXwwO2FbQ109
djtCPUIrMXwwO0M9Qy0xfDA7fXdoaWxlKEI+Pj4wPEM+Pj4wKX19d2hpbGUoMCk7cT1iMFtjWyhj
W3M+PjJdfDApKzE2Pj4yXSYxMjddKHQpfDA7aWYoej4+PjA8eT4+PjApe3Y9eCsxfDA7dT1vKzR8
MDtuPW8rOHwwO3A9aztEPTA7RT0wO0Y9ejt3aGlsZSgxKXtHPShhW3ddJjEpPT0wO2Rve2lmKChh
WyhHP3Y6Y1tuPj4yXXwwKStFfDBdfDApPjApe2lmKChEfDApIT0oYVsoRz92OmNbbj4+Ml18MCkr
RXwwXXwwKSl7SD1FO0k9RDticmVha31KPWNbaj4+Ml18MDtjW2o+PjJdPUorNDtjW0o+PjJdPXE7
Sj1kW3ddfDA7SD0oRT4+PjA8KCgoSiYxfDApPT0wP0o+Pj4xOmNbdT4+Ml18MCktMXwwKT4+PjAp
K0V8MDtJPTB9ZWxzZXtIPUU7ST1EfX13aGlsZSgwKTtHPWJfW2NbKGNbcD4+Ml18MCkrNDQ+PjJd
JjMxXShyLGFbRl18MCl8MDtKPWNbaj4+Ml18MDtjW2o+PjJdPUorNDtjW0o+PjJdPUc7Rz1GKzF8
MDtpZihHPj4+MDx5Pj4+MCl7RD1JKzF8MDtFPUg7Rj1HfWVsc2V7YnJlYWt9fX1GPWcrKHotYjw8
Mil8MDtFPWNbaj4+Ml18MDtpZigoRnwwKT09KEV8MCkpe2JyZWFrfUQ9RS00fDA7aWYoRj4+PjA8
RD4+PjApe0s9RjtMPUR9ZWxzZXticmVha31kb3tEPWNbSz4+Ml18MDtjW0s+PjJdPWNbTD4+Ml07
Y1tMPj4yXT1EO0s9Sys0fDA7TD1MLTR8MDt9d2hpbGUoSz4+PjA8TD4+PjApfX13aGlsZSgwKTtM
MjM2Mzpkb3tpZih5Pj4+MDxmPj4+MCl7TD1rO0s9eTt3aGlsZSgxKXt6PWFbS118MDtpZih6PDwy
ND4+MjQ9PTQ2KXticmVha31IPWJfW2NbKGNbTD4+Ml18MCkrNDQ+PjJdJjMxXShyLHopfDA7ej1j
W2o+PjJdfDA7Y1tqPj4yXT16KzQ7Y1t6Pj4yXT1IO0g9SysxfDA7aWYoSD4+PjA8Zj4+PjApe0s9
SH1lbHNle009SDticmVhayBMMjM2M319TD1iMFtjWyhjW3M+PjJdfDApKzEyPj4yXSYxMjddKHQp
fDA7SD1jW2o+PjJdfDA7Y1tqPj4yXT1IKzQ7Y1tIPj4yXT1MO009SysxfDB9ZWxzZXtNPXl9fXdo
aWxlKDApO2NhW2NbKGNbaz4+Ml18MCkrNDg+PjJdJjE1XShyLE0sZixjW2o+PjJdfDApfDA7cj0o
Y1tqPj4yXXwwKSsobS1NPDwyKXwwO2Nbaj4+Ml09cjtpZigoZXwwKT09KGZ8MCkpe049cjtjW2g+
PjJdPU47ZFAobyk7aT1sO3JldHVybn1OPWcrKGUtYjw8Mil8MDtjW2g+PjJdPU47ZFAobyk7aT1s
O3JldHVybn1mdW5jdGlvbiBndyhiLGQsZSxmLGcsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aj0rajt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9
MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0w
LEo9MDtkPWk7aT1pKzMyMHwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNb
az4+Ml07az1kfDA7bD1kKzh8MDttPWQrNDB8MDtuPWQrNDh8MDtvPWQrMjgwfDA7cD1kKzI4OHww
O3E9ZCsyOTZ8MDtyPWQrMzA0fDA7cz1kKzMxMnwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7dD1r
O2s9dCsxfDA7dT1mKzR8MDt2PWNbdT4+Ml18MDtpZigodiYyMDQ4fDApPT0wKXt3PWt9ZWxzZXth
W2tdPTQzO3c9dCsyfDB9aWYoKHYmMTAyNHwwKT09MCl7eD13fWVsc2V7YVt3XT0zNTt4PXcrMXww
fXc9diYyNjA7az12Pj4+MTQ7TDIzODQ6ZG97aWYoKHd8MCk9PTI2MCl7YVt4XT03Njt2PXgrMXww
O2lmKChrJjF8MCk9PTApe2Fbdl09OTc7eT0wO2JyZWFrfWVsc2V7YVt2XT02NTt5PTA7YnJlYWt9
fWVsc2V7YVt4XT00NjthW3grMXwwXT00MjthW3grMnwwXT03Njt2PXgrM3wwO3N3aXRjaCh3fDAp
e2Nhc2UgMjU2OntpZigoayYxfDApPT0wKXthW3ZdPTEwMTt5PTE7YnJlYWsgTDIzODR9ZWxzZXth
W3ZdPTY5O3k9MTticmVhayBMMjM4NH1icmVha307Y2FzZSA0OntpZigoayYxfDApPT0wKXthW3Zd
PTEwMjt5PTE7YnJlYWsgTDIzODR9ZWxzZXthW3ZdPTcwO3k9MTticmVhayBMMjM4NH1icmVha307
ZGVmYXVsdDp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDM7eT0xO2JyZWFrIEwyMzg0fWVsc2V7YVt2
XT03MTt5PTE7YnJlYWsgTDIzODR9fX19fXdoaWxlKDApO2s9bHwwO2NbbT4+Ml09aztkb3tpZigo
YVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwx
MzQ0LDApfDB9fXdoaWxlKDApO2w9Y1syOTU4XXwwO2lmKHkpe3c9Z2IoaywzMCxsLHQsKHo9aSxp
PWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtBPXd9ZWxz
ZXt3PWdiKGssMzAsbCx0LCh6PWksaT1pKzh8MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7QT13fWRv
e2lmKChBfDApPjI5KXt3PShhWzE2MjY0XXwwKT09MDtpZih5KXtkb3tpZih3KXtpZigoYmMoMTYy
NjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWdoKG0s
Y1syOTU4XXwwLHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6
KXwwKXwwO2k9ejtCPWx9ZWxzZXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31j
WzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt3PWdoKG0sY1syOTU4XXwwLHQsKHo9aSxp
PWkrOHwwLGhbej4+M109aix6KXwwKXwwO2k9ejtCPXd9dz1jW20+PjJdfDA7aWYoKHd8MCkhPTAp
e0M9QjtEPXc7RT13O2JyZWFrfWtYKCk7dz1jW20+PjJdfDA7Qz1CO0Q9dztFPXd9ZWxzZXtDPUE7
RD0wO0U9Y1ttPj4yXXwwfX13aGlsZSgwKTtBPUUrQ3wwO0wyNDMzOmRve3N3aXRjaChjW3U+PjJd
JjE3NnwwKXtjYXNlIDE2OntCPWFbRV18MDtzd2l0Y2goQjw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2Ug
NDM6e0Y9RSsxfDA7YnJlYWsgTDI0MzM7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgoQ3wwKT4xJkI8
PDI0Pj4yND09NDgpKXtHPTIwMTg7YnJlYWsgTDI0MzN9c3dpdGNoKGFbRSsxfDBdfDApe2Nhc2Ug
MTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0OntHPTIwMTg7YnJlYWsgTDI0MzN9fUY9RSsyfDA7
YnJlYWt9O2Nhc2UgMzI6e0Y9QTticmVha307ZGVmYXVsdDp7Rz0yMDE4fX19d2hpbGUoMCk7aWYo
KEd8MCk9PTIwMTgpe0Y9RX1kb3tpZigoRXwwKT09KGt8MCkpe0g9bnwwO0k9MDtKPWt9ZWxzZXtH
PWtKKEM8PDMpfDA7dT1HO2lmKChHfDApIT0wKXtIPXU7ST11O0o9RTticmVha31rWCgpO0g9dTtJ
PXU7Sj1jW20+PjJdfDB9fXdoaWxlKDApO2VqKHEsZik7Z3YoSixGLEEsSCxvLHAscSk7ZHooY1tx
Pj4yXXwwKXwwO3E9ZXwwO2Nbcz4+Ml09Y1txPj4yXTtncShyLHMsSCxjW28+PjJdfDAsY1twPj4y
XXwwLGYsZyk7Zz1jW3I+PjJdfDA7Y1txPj4yXT1nO2NbYj4+Ml09ZztpZigoSXwwKSE9MCl7a0so
SSl9aWYoKER8MCk9PTApe2k9ZDtyZXR1cm59a0soRCk7aT1kO3JldHVybn1mdW5jdGlvbiBneChi
LGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxr
PTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wO2Q9aTtpPWkrMjE2fDA7aj1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+
Ml09Y1tqPj4yXTtqPWR8MDtrPWQrMjR8MDtsPWQrNDh8MDttPWQrMjAwfDA7bj1kKzIwOHwwO289
ZCsxNnwwO2Fbb109YVsyMzkyXXwwO2FbbysxfDBdPWFbMjM5M3wwXXwwO2FbbysyfDBdPWFbMjM5
NHwwXXwwO2FbbyszfDBdPWFbMjM5NXwwXXwwO2Fbbys0fDBdPWFbMjM5NnwwXXwwO2Fbbys1fDBd
PWFbMjM5N3wwXXwwO3A9a3wwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXww
KT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7cT1nYihwLDIwLGNb
Mjk1OF18MCxvLChvPWksaT1pKzh8MCxjW28+PjJdPWgsbyl8MCl8MDtpPW87bz1rK3F8MDtMMjQ2
NDpkb3tzd2l0Y2goY1tmKzQ+PjJdJjE3NnwwKXtjYXNlIDE2OntoPWFbcF18MDtzd2l0Y2goaDw8
MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3I9aysxfDA7YnJlYWsgTDI0NjQ7YnJlYWt9O2RlZmF1
bHQ6e319aWYoISgocXwwKT4xJmg8PDI0Pj4yND09NDgpKXtzPTIwNTE7YnJlYWsgTDI0NjR9c3dp
dGNoKGFbaysxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0OntzPTIwNTE7
YnJlYWsgTDI0NjR9fXI9aysyfDA7YnJlYWt9O2Nhc2UgMzI6e3I9bzticmVha307ZGVmYXVsdDp7
cz0yMDUxfX19d2hpbGUoMCk7aWYoKHN8MCk9PTIwNTEpe3I9cH1laihtLGYpO3M9bXwwO209Y1tz
Pj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tqPj4yXT0xNTY4ODtjW2orND4+Ml09MTI7Y1tq
Kzg+PjJdPTA7ZFcoMTU2ODgsaiw5Nil9aj0oY1szOTIzXXwwKS0xfDA7aD1jW20rOD4+Ml18MDtk
b3tpZigoY1ttKzEyPj4yXXwwKS1oPj4yPj4+MD5qPj4+MCl7dD1jW2grKGo8PDIpPj4yXXwwO2lm
KCh0fDApPT0wKXticmVha311PXQ7dj1jW3M+PjJdfDA7ZHoodil8MDt2PWx8MDt3PWNbKGNbdD4+
Ml18MCkrNDg+PjJdfDA7Y2FbdyYxNV0odSxwLG8sdil8MDt1PWwrKHE8PDIpfDA7aWYoKHJ8MCk9
PShvfDApKXt4PXU7eT1lfDA7ej1jW3k+PjJdfDA7QT1ufDA7Y1tBPj4yXT16O2dxKGIsbix2LHgs
dSxmLGcpO2k9ZDtyZXR1cm59eD1sKyhyLWs8PDIpfDA7eT1lfDA7ej1jW3k+PjJdfDA7QT1ufDA7
Y1tBPj4yXT16O2dxKGIsbix2LHgsdSxmLGcpO2k9ZDtyZXR1cm59fXdoaWxlKDApO2Q9Yk8oNCl8
MDtrcShkKTtibChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGd5KGEpe2E9YXwwO3JldHVybiAyfWZ1
bmN0aW9uIGd6KGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGdBKGEpe2E9
YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGdCKGEsYixkLGUsZixnLGgpe2E9YXwwO2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MDtqPWk7aT1pKzE2
fDA7az1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7Y1trPj4yXT1j
W2Q+PjJdO2NbbD4+Ml09Y1tlPj4yXTtnRChhLGIsayxsLGYsZyxoLDIzNzYsMjM4NCk7aT1qO3Jl
dHVybn1mdW5jdGlvbiBnQyhiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtrPWk7
aT1pKzE2fDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTtsPWY7
Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209ays4fDA7bj1k
Kzh8MDtvPWIwW2NbKGNbbj4+Ml18MCkrMjA+PjJdJjEyN10obil8MDtjW2w+PjJdPWNbZT4+Ml07
Y1ttPj4yXT1jW2Y+PjJdO2Y9bztlPWFbb118MDtpZigoZSYxKT09MCl7cD1mKzF8MDtxPWYrMXww
fWVsc2V7Zj1jW28rOD4+Ml18MDtwPWY7cT1mfWY9ZSYyNTU7aWYoKGYmMXwwKT09MCl7cj1mPj4+
MX1lbHNle3I9Y1tvKzQ+PjJdfDB9Z0QoYixkLGwsbSxnLGgsaixxLHArcnwwKTtpPWs7cmV0dXJu
fWZ1bmN0aW9uIGdEKGQsZSxmLGcsaCxqLGssbCxtKXtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDt2YXIgbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9
MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wO249aTtpPWkrNDh8
MDtvPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW28+PjJdO289ZztnPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbz4+Ml07bz1ufDA7cD1uKzE2fDA7cT1uKzI0fDA7
cj1uKzMyfDA7cz1uKzQwfDA7ZWoocCxoKTt0PXB8MDtwPWNbdD4+Ml18MDtpZigoY1szOTI0XXww
KSE9LTEpe2Nbbz4+Ml09MTU2OTY7Y1tvKzQ+PjJdPTEyO2Nbbys4Pj4yXT0wO2RXKDE1Njk2LG8s
OTYpfW89KGNbMzkyNV18MCktMXwwO3U9Y1twKzg+PjJdfDA7ZG97aWYoKGNbcCsxMj4+Ml18MCkt
dT4+Mj4+PjA+bz4+PjApe3Y9Y1t1KyhvPDwyKT4+Ml18MDtpZigodnwwKT09MCl7YnJlYWt9dz12
O3g9Y1t0Pj4yXXwwO2R6KHgpfDA7Y1tqPj4yXT0wO3g9ZnwwO0wyNTA2OmRve2lmKChsfDApPT0o
bXwwKSl7eT0yMTQxfWVsc2V7ej1nfDA7QT12O0I9dis4fDA7Qz12O0Q9ZTtFPXJ8MDtGPXN8MDtH
PXF8MDtIPWw7ST0wO0wyNTA4OndoaWxlKDEpe0o9STt3aGlsZSgxKXtpZigoSnwwKSE9MCl7eT0y
MTQxO2JyZWFrIEwyNTA2fUs9Y1t4Pj4yXXwwO2Rve2lmKChLfDApPT0wKXtMPTB9ZWxzZXtpZigo
Y1tLKzEyPj4yXXwwKSE9KGNbSysxNj4+Ml18MCkpe0w9SzticmVha31pZigoYjBbY1soY1tLPj4y
XXwwKSszNj4+Ml0mMTI3XShLKXwwKSE9LTEpe0w9SzticmVha31jW3g+PjJdPTA7TD0wfX13aGls
ZSgwKTtLPShMfDApPT0wO009Y1t6Pj4yXXwwO0wyNTE4OmRve2lmKChNfDApPT0wKXt5PTIwOTR9
ZWxzZXtkb3tpZigoY1tNKzEyPj4yXXwwKT09KGNbTSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW00+
PjJdfDApKzM2Pj4yXSYxMjddKE0pfDApIT0tMSl7YnJlYWt9Y1t6Pj4yXT0wO3k9MjA5NDticmVh
ayBMMjUxOH19d2hpbGUoMCk7aWYoSyl7Tj1NfWVsc2V7eT0yMDk1O2JyZWFrIEwyNTA4fX19d2hp
bGUoMCk7aWYoKHl8MCk9PTIwOTQpe3k9MDtpZihLKXt5PTIwOTU7YnJlYWsgTDI1MDh9ZWxzZXtO
PTB9fWlmKChiMVtjWyhjW0E+PjJdfDApKzM2Pj4yXSY2M10odyxhW0hdfDAsMCl8MCk8PDI0Pj4y
ND09Mzcpe3k9MjA5ODticmVha31NPWFbSF18MDtpZihNPDwyND4+MjQ+LTEpe089Y1tCPj4yXXww
O2lmKChiW08rKE08PDI0Pj4yNDw8MSk+PjFdJjgxOTIpIT0wKXtQPUg7eT0yMTA5O2JyZWFrfX1R
PUwrMTJ8MDtNPWNbUT4+Ml18MDtSPUwrMTZ8MDtpZigoTXwwKT09KGNbUj4+Ml18MCkpe1M9KGIw
W2NbKGNbTD4+Ml18MCkrMzY+PjJdJjEyN10oTCl8MCkmMjU1fWVsc2V7Uz1hW01dfDB9TT1iX1tj
WyhjW0M+PjJdfDApKzEyPj4yXSYzMV0odyxTKXwwO2lmKE08PDI0Pj4yND09KGJfW2NbKGNbQz4+
Ml18MCkrMTI+PjJdJjMxXSh3LGFbSF18MCl8MCk8PDI0Pj4yNCl7eT0yMTM2O2JyZWFrfWNbaj4+
Ml09NDtKPTR9TDI1MzY6ZG97aWYoKHl8MCk9PTIxMzYpe3k9MDtKPWNbUT4+Ml18MDtpZigoSnww
KT09KGNbUj4+Ml18MCkpe009Y1soY1tMPj4yXXwwKSs0MD4+Ml18MDtiMFtNJjEyN10oTCl8MH1l
bHNle2NbUT4+Ml09SisxfVQ9SCsxfDB9ZWxzZSBpZigoeXwwKT09MjA5OCl7eT0wO0o9SCsxfDA7
aWYoKEp8MCk9PShtfDApKXt5PTIwOTk7YnJlYWsgTDI1MDh9TT1iMVtjWyhjW0E+PjJdfDApKzM2
Pj4yXSY2M10odyxhW0pdfDAsMCl8MDtzd2l0Y2goTTw8MjQ+PjI0KXtjYXNlIDY5OmNhc2UgNDg6
e1U9SCsyfDA7aWYoKFV8MCk9PShtfDApKXt5PTIxMDI7YnJlYWsgTDI1MDh9Vj1NO1c9YjFbY1so
Y1tBPj4yXXwwKSszNj4+Ml0mNjNdKHcsYVtVXXwwLDApfDA7WD1VO2JyZWFrfTtkZWZhdWx0OntW
PTA7Vz1NO1g9Sn19Sj1jWyhjW0Q+PjJdfDApKzM2Pj4yXXwwO2NbRT4+Ml09TDtjW0Y+PjJdPU47
YjdbSiY3XShxLGUscixzLGgsaixrLFcsVik7Y1t4Pj4yXT1jW0c+PjJdO1Q9WCsxfDB9ZWxzZSBp
ZigoeXwwKT09MjEwOSl7d2hpbGUoMSl7eT0wO0o9UCsxfDA7aWYoKEp8MCk9PShtfDApKXtZPW07
YnJlYWt9TT1hW0pdfDA7aWYoTTw8MjQ+PjI0PD0tMSl7WT1KO2JyZWFrfWlmKChiW08rKE08PDI0
Pj4yNDw8MSk+PjFdJjgxOTIpPT0wKXtZPUo7YnJlYWt9ZWxzZXtQPUo7eT0yMTA5fX1LPUw7Sj1O
O3doaWxlKDEpe2Rve2lmKChLfDApPT0wKXtaPTB9ZWxzZXtpZigoY1tLKzEyPj4yXXwwKSE9KGNb
SysxNj4+Ml18MCkpe1o9SzticmVha31pZigoYjBbY1soY1tLPj4yXXwwKSszNj4+Ml0mMTI3XShL
KXwwKSE9LTEpe1o9SzticmVha31jW3g+PjJdPTA7Wj0wfX13aGlsZSgwKTtNPShafDApPT0wO2Rv
e2lmKChKfDApPT0wKXt5PTIxMjJ9ZWxzZXtpZigoY1tKKzEyPj4yXXwwKSE9KGNbSisxNj4+Ml18
MCkpe2lmKE0pe189SjticmVha31lbHNle1Q9WTticmVhayBMMjUzNn19aWYoKGIwW2NbKGNbSj4+
Ml18MCkrMzY+PjJdJjEyN10oSil8MCk9PS0xKXtjW3o+PjJdPTA7eT0yMTIyO2JyZWFrfWVsc2V7
aWYoTV4oSnwwKT09MCl7Xz1KO2JyZWFrfWVsc2V7VD1ZO2JyZWFrIEwyNTM2fX19fXdoaWxlKDAp
O2lmKCh5fDApPT0yMTIyKXt5PTA7aWYoTSl7VD1ZO2JyZWFrIEwyNTM2fWVsc2V7Xz0wfX1VPVor
MTJ8MDskPWNbVT4+Ml18MDthYT1aKzE2fDA7aWYoKCR8MCk9PShjW2FhPj4yXXwwKSl7YWI9KGIw
W2NbKGNbWj4+Ml18MCkrMzY+PjJdJjEyN10oWil8MCkmMjU1fWVsc2V7YWI9YVskXXwwfWlmKGFi
PDwyND4+MjQ8PS0xKXtUPVk7YnJlYWsgTDI1MzZ9aWYoKGJbKGNbQj4+Ml18MCkrKGFiPDwyND4+
MjQ8PDEpPj4xXSY4MTkyKT09MCl7VD1ZO2JyZWFrIEwyNTM2fSQ9Y1tVPj4yXXwwO2lmKCgkfDAp
PT0oY1thYT4+Ml18MCkpe2FhPWNbKGNbWj4+Ml18MCkrNDA+PjJdfDA7YjBbYWEmMTI3XShaKXww
O0s9WjtKPV87Y29udGludWV9ZWxzZXtjW1U+PjJdPSQrMTtLPVo7Sj1fO2NvbnRpbnVlfX19fXdo
aWxlKDApO2lmKChUfDApPT0obXwwKSl7eT0yMTQxO2JyZWFrIEwyNTA2fUg9VDtJPWNbaj4+Ml18
MH1pZigoeXwwKT09MjA5OSl7Y1tqPj4yXT00O2FjPUw7YnJlYWt9ZWxzZSBpZigoeXwwKT09MjEw
Mil7Y1tqPj4yXT00O2FjPUw7YnJlYWt9ZWxzZSBpZigoeXwwKT09MjA5NSl7Y1tqPj4yXT00O2Fj
PUw7YnJlYWt9fX13aGlsZSgwKTtpZigoeXwwKT09MjE0MSl7YWM9Y1t4Pj4yXXwwfXc9ZnwwO2Rv
e2lmKChhY3wwKSE9MCl7aWYoKGNbYWMrMTI+PjJdfDApIT0oY1thYysxNj4+Ml18MCkpe2JyZWFr
fWlmKChiMFtjWyhjW2FjPj4yXXwwKSszNj4+Ml0mMTI3XShhYyl8MCkhPS0xKXticmVha31jW3c+
PjJdPTB9fXdoaWxlKDApO3g9Y1t3Pj4yXXwwO3Y9KHh8MCk9PTA7ST1nfDA7SD1jW0k+PjJdfDA7
TDI1OTQ6ZG97aWYoKEh8MCk9PTApe3k9MjE1MX1lbHNle2Rve2lmKChjW0grMTI+PjJdfDApPT0o
Y1tIKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbSD4+Ml18MCkrMzY+PjJdJjEyN10oSCl8MCkhPS0x
KXticmVha31jW0k+PjJdPTA7eT0yMTUxO2JyZWFrIEwyNTk0fX13aGlsZSgwKTtpZighdil7YnJl
YWt9YWQ9ZHwwO2NbYWQ+PjJdPXg7aT1uO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKHl8MCk9PTIx
NTEpe2lmKHYpe2JyZWFrfWFkPWR8MDtjW2FkPj4yXT14O2k9bjtyZXR1cm59fXdoaWxlKDApO2Nb
aj4+Ml09Y1tqPj4yXXwyO2FkPWR8MDtjW2FkPj4yXT14O2k9bjtyZXR1cm59fXdoaWxlKDApO249
Yk8oNCl8MDtrcShuKTtibChufDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdFKGEsYixkLGUsZixnLGgp
e2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9
MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtqPWk7aT1pKzMyfDA7az1kO2Q9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7bT1qKzI0fDA7ZWoobSxmKTtm
PW18MDttPWNbZj4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbbD4+Ml09MTU2OTY7Y1tsKzQ+
PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2LGwsOTYpfWw9KGNbMzkyNV18MCktMXwwO249Y1tt
Kzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+Ml18MCktbj4+Mj4+PjA+bD4+PjApe289Y1tuKyhsPDwy
KT4+Ml18MDtpZigob3wwKT09MCl7YnJlYWt9cD1vO289Y1tmPj4yXXwwO2R6KG8pfDA7bz1jW2U+
PjJdfDA7cT1iKzh8MDtyPWIwW2NbY1txPj4yXT4+Ml0mMTI3XShxKXwwO2Nbaz4+Ml09bztvPShm
cShkLGsscixyKzE2OHwwLHAsZywwKXwwKS1yfDA7aWYoKG98MCk+PTE2OCl7cz1kfDA7dD1jW3M+
PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1cm59Y1toKzI0Pj4yXT0oKG98MCkvMTJ8MHww
KSU3fDA7cz1kfDA7dD1jW3M+PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1cm59fXdoaWxl
KDApO2o9Yk8oNCl8MDtrcShqKTtibChqfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdGKGEsYixkLGUs
ZixnLGgpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAs
az0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtqPWk7aT1pKzMyfDA7
az1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7bT1qKzI0fDA7ZWoo
bSxmKTtmPW18MDttPWNbZj4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbbD4+Ml09MTU2OTY7
Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2LGwsOTYpfWw9KGNbMzkyNV18MCktMXww
O249Y1ttKzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+Ml18MCktbj4+Mj4+PjA+bD4+PjApe289Y1tu
KyhsPDwyKT4+Ml18MDtpZigob3wwKT09MCl7YnJlYWt9cD1vO289Y1tmPj4yXXwwO2R6KG8pfDA7
bz1jW2U+PjJdfDA7cT1iKzh8MDtyPWIwW2NbKGNbcT4+Ml18MCkrND4+Ml0mMTI3XShxKXwwO2Nb
az4+Ml09bztvPShmcShkLGsscixyKzI4OHwwLHAsZywwKXwwKS1yfDA7aWYoKG98MCk+PTI4OCl7
cz1kfDA7dD1jW3M+PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1cm59Y1toKzE2Pj4yXT0o
KG98MCkvMTJ8MHwwKSUxMnwwO3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7
cmV0dXJufX13aGlsZSgwKTtqPWJPKDQpfDA7a3Eoaik7YmwoanwwLDgxNzYsMTM0KX1mdW5jdGlv
biBnRyhhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wO2I9aTtpPWkr
MzJ8MDtqPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2o+PjJdO2o9ZTtlPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1ifDA7az1iKzh8MDtsPWIrMjR8
MDtlaihsLGYpO2Y9bHwwO2w9Y1tmPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1trPj4yXT0x
NTY5NjtjW2srND4+Ml09MTI7Y1trKzg+PjJdPTA7ZFcoMTU2OTYsayw5Nil9az0oY1szOTI1XXww
KS0xfDA7bT1jW2wrOD4+Ml18MDtkb3tpZigoY1tsKzEyPj4yXXwwKS1tPj4yPj4+MD5rPj4+MCl7
bj1jW20rKGs8PDIpPj4yXXwwO2lmKChufDApPT0wKXticmVha31vPW47bj1jW2Y+PjJdfDA7ZHoo
bil8MDtjW2o+PjJdPWNbZT4+Ml07bj1nTChkLGosZyxvLDQpfDA7aWYoKGNbZz4+Ml0mNHwwKSE9
MCl7cD1kfDA7cT1jW3A+PjJdfDA7cj1hfDA7Y1tyPj4yXT1xO2k9YjtyZXR1cm59aWYoKG58MCk8
Njkpe3M9bisyZTN8MH1lbHNle3M9KG4tNjl8MCk+Pj4wPDMxP24rMTkwMHwwOm59Y1toKzIwPj4y
XT1zLTE5MDA7cD1kfDA7cT1jW3A+PjJdfDA7cj1hfDA7Y1tyPj4yXT1xO2k9YjtyZXR1cm59fXdo
aWxlKDApO2I9Yk8oNCl8MDtrcShiKTtibChifDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdIKGQsZSxm
LGcsaCl7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MDtkPWk7aj1mO2Y9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZj4+Ml09Y1tqPj4yXTtqPWV8MDtlPWZ8MDtmPWgrOHwwO0wyNjUyOndoaWxl
KDEpe2g9Y1tqPj4yXXwwO2Rve2lmKChofDApPT0wKXtrPTB9ZWxzZXtpZigoY1toKzEyPj4yXXww
KSE9KGNbaCsxNj4+Ml18MCkpe2s9aDticmVha31pZigoYjBbY1soY1toPj4yXXwwKSszNj4+Ml0m
MTI3XShoKXwwKT09LTEpe2Nbaj4+Ml09MDtrPTA7YnJlYWt9ZWxzZXtrPWNbaj4+Ml18MDticmVh
a319fXdoaWxlKDApO2g9KGt8MCk9PTA7bD1jW2U+PjJdfDA7TDI2NjE6ZG97aWYoKGx8MCk9PTAp
e209MjIwN31lbHNle2Rve2lmKChjW2wrMTI+PjJdfDApPT0oY1tsKzE2Pj4yXXwwKSl7aWYoKGIw
W2NbKGNbbD4+Ml18MCkrMzY+PjJdJjEyN10obCl8MCkhPS0xKXticmVha31jW2U+PjJdPTA7bT0y
MjA3O2JyZWFrIEwyNjYxfX13aGlsZSgwKTtpZihoKXtuPWw7bz0wfWVsc2V7cD1sO3E9MDticmVh
ayBMMjY1Mn19fXdoaWxlKDApO2lmKChtfDApPT0yMjA3KXttPTA7aWYoaCl7cD0wO3E9MTticmVh
a31lbHNle249MDtvPTF9fWw9Y1tqPj4yXXwwO3I9Y1tsKzEyPj4yXXwwO2lmKChyfDApPT0oY1ts
KzE2Pj4yXXwwKSl7cz0oYjBbY1soY1tsPj4yXXwwKSszNj4+Ml0mMTI3XShsKXwwKSYyNTV9ZWxz
ZXtzPWFbcl18MH1pZihzPDwyND4+MjQ8PS0xKXtwPW47cT1vO2JyZWFrfWlmKChiWyhjW2Y+PjJd
fDApKyhzPDwyND4+MjQ8PDEpPj4xXSY4MTkyKT09MCl7cD1uO3E9bzticmVha31yPWNbaj4+Ml18
MDtsPXIrMTJ8MDt0PWNbbD4+Ml18MDtpZigodHwwKT09KGNbcisxNj4+Ml18MCkpe3U9Y1soY1ty
Pj4yXXwwKSs0MD4+Ml18MDtiMFt1JjEyN10ocil8MDtjb250aW51ZX1lbHNle2NbbD4+Ml09dCsx
O2NvbnRpbnVlfX1vPWNbaj4+Ml18MDtkb3tpZigob3wwKT09MCl7dj0wfWVsc2V7aWYoKGNbbysx
Mj4+Ml18MCkhPShjW28rMTY+PjJdfDApKXt2PW87YnJlYWt9aWYoKGIwW2NbKGNbbz4+Ml18MCkr
MzY+PjJdJjEyN10obyl8MCk9PS0xKXtjW2o+PjJdPTA7dj0wO2JyZWFrfWVsc2V7dj1jW2o+PjJd
fDA7YnJlYWt9fX13aGlsZSgwKTtqPSh2fDApPT0wO2Rve2lmKHEpe209MjIyNn1lbHNle2lmKChj
W3ArMTI+PjJdfDApIT0oY1twKzE2Pj4yXXwwKSl7aWYoIShqXihwfDApPT0wKSl7YnJlYWt9aT1k
O3JldHVybn1pZigoYjBbY1soY1twPj4yXXwwKSszNj4+Ml0mMTI3XShwKXwwKT09LTEpe2NbZT4+
Ml09MDttPTIyMjY7YnJlYWt9aWYoIWope2JyZWFrfWk9ZDtyZXR1cm59fXdoaWxlKDApO2Rve2lm
KChtfDApPT0yMjI2KXtpZihqKXticmVha31pPWQ7cmV0dXJufX13aGlsZSgwKTtjW2c+PjJdPWNb
Zz4+Ml18MjtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdJKGIsZCxlLGYsZyxoLGosayxsKXtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0w
LEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAs
UT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0w
LGFjPTAsYWQ9MCxhZT0wLGFmPTAsYWc9MCxhaD0wLGFpPTAsYWo9MCxhaz0wLGFsPTAsYW09MDts
PWk7aT1pKzMyOHwwO209ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbT4+Ml07
bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWx8MDtuPWwrOHww
O289bCsxNnwwO3A9bCsyNHwwO3E9bCszMnwwO3I9bCs0MHwwO3M9bCs0OHwwO3Q9bCs1NnwwO3U9
bCs2NHwwO3Y9bCs3MnwwO3c9bCs4MHwwO3g9bCs4OHwwO3k9bCs5NnwwO3o9bCsxMTJ8MDtBPWwr
MTIwfDA7Qj1sKzEyOHwwO0M9bCsxMzZ8MDtEPWwrMTQ0fDA7RT1sKzE1MnwwO0Y9bCsxNjB8MDtH
PWwrMTY4fDA7SD1sKzE3NnwwO0k9bCsxODR8MDtKPWwrMTkyfDA7Sz1sKzIwMHwwO0w9bCsyMDh8
MDtNPWwrMjE2fDA7Tj1sKzIyNHwwO089bCsyMzJ8MDtQPWwrMjQwfDA7UT1sKzI0OHwwO1I9bCsy
NTZ8MDtTPWwrMjY0fDA7VD1sKzI3MnwwO1U9bCsyODB8MDtWPWwrMjg4fDA7Vz1sKzI5NnwwO1g9
bCszMDR8MDtZPWwrMzEyfDA7Wj1sKzMyMHwwO2NbaD4+Ml09MDtlaih6LGcpO189enwwO3o9Y1tf
Pj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1t5Pj4yXT0xNTY5NjtjW3krND4+Ml09MTI7Y1t5
Kzg+PjJdPTA7ZFcoMTU2OTYseSw5Nil9eT0oY1szOTI1XXwwKS0xfDA7JD1jW3orOD4+Ml18MDtk
b3tpZigoY1t6KzEyPj4yXXwwKS0kPj4yPj4+MD55Pj4+MCl7YWE9Y1skKyh5PDwyKT4+Ml18MDtp
ZigoYWF8MCk9PTApe2JyZWFrfWFiPWFhO2FhPWNbXz4+Ml18MDtkeihhYSl8MDtMMjcwOTpkb3tz
d2l0Y2goazw8MjQ+PjI0fDApe2Nhc2UgNzI6e2NbdT4+Ml09Y1tmPj4yXTthYT1nTChlLHUsaCxh
YiwyKXwwO2FjPWNbaD4+Ml18MDtpZigoYWMmNHwwKT09MCYoYWF8MCk8MjQpe2Nbais4Pj4yXT1h
YTticmVhayBMMjcwOX1lbHNle2NbaD4+Ml09YWN8NDticmVhayBMMjcwOX1icmVha307Y2FzZSA5
NzpjYXNlIDY1OnthYz1jW2Y+PjJdfDA7YWE9ZCs4fDA7YWQ9YjBbY1tjW2FhPj4yXT4+Ml0mMTI3
XShhYSl8MDtjW3g+PjJdPWFjO2FjPShmcShlLHgsYWQsYWQrMTY4fDAsYWIsaCwwKXwwKS1hZHww
O2lmKChhY3wwKT49MTY4KXticmVhayBMMjcwOX1jW2orMjQ+PjJdPSgoYWN8MCkvMTJ8MHwwKSU3
fDA7YnJlYWt9O2Nhc2UgMTA5OntjW3I+PjJdPWNbZj4+Ml07YWM9KGdMKGUscixoLGFiLDIpfDAp
LTF8MDthZD1jW2g+PjJdfDA7aWYoKGFkJjR8MCk9PTAmKGFjfDApPDEyKXtjW2orMTY+PjJdPWFj
O2JyZWFrIEwyNzA5fWVsc2V7Y1toPj4yXT1hZHw0O2JyZWFrIEwyNzA5fWJyZWFrfTtjYXNlIDEy
MTp7Y1tuPj4yXT1jW2Y+PjJdO2FkPWdMKGUsbixoLGFiLDQpfDA7aWYoKGNbaD4+Ml0mNHwwKSE9
MCl7YnJlYWsgTDI3MDl9aWYoKGFkfDApPDY5KXthZT1hZCsyZTN8MH1lbHNle2FlPShhZC02OXww
KT4+PjA8MzE/YWQrMTkwMHwwOmFkfWNbaisyMD4+Ml09YWUtMTkwMDticmVha307Y2FzZSA5ODpj
YXNlIDY2OmNhc2UgMTA0OnthZD1jW2Y+PjJdfDA7YWM9ZCs4fDA7YWE9YjBbY1soY1thYz4+Ml18
MCkrND4+Ml0mMTI3XShhYyl8MDtjW3c+PjJdPWFkO2FkPShmcShlLHcsYWEsYWErMjg4fDAsYWIs
aCwwKXwwKS1hYXwwO2lmKChhZHwwKT49Mjg4KXticmVhayBMMjcwOX1jW2orMTY+PjJdPSgoYWR8
MCkvMTJ8MHwwKSUxMnwwO2JyZWFrfTtjYXNlIDczOnthZD1qKzh8MDtjW3Q+PjJdPWNbZj4+Ml07
YWE9Z0woZSx0LGgsYWIsMil8MDthYz1jW2g+PjJdfDA7ZG97aWYoKGFjJjR8MCk9PTApe2lmKChh
YS0xfDApPj4+MD49MTIpe2JyZWFrfWNbYWQ+PjJdPWFhO2JyZWFrIEwyNzA5fX13aGlsZSgwKTtj
W2g+PjJdPWFjfDQ7YnJlYWt9O2Nhc2UgMTA2OntjW3M+PjJdPWNbZj4+Ml07YWE9Z0woZSxzLGgs
YWIsMyl8MDthZD1jW2g+PjJdfDA7aWYoKGFkJjR8MCk9PTAmKGFhfDApPDM2Nil7Y1tqKzI4Pj4y
XT1hYTticmVhayBMMjcwOX1lbHNle2NbaD4+Ml09YWR8NDticmVhayBMMjcwOX1icmVha307Y2Fz
ZSA2ODp7YWQ9ZXwwO2NbRT4+Ml09Y1thZD4+Ml07Y1tGPj4yXT1jW2Y+PjJdO2dEKEQsZCxFLEYs
ZyxoLGosMjM2OCwyMzc2KTtjW2FkPj4yXT1jW0Q+PjJdO2JyZWFrfTtjYXNlIDg0OnthZD1lfDA7
Y1tTPj4yXT1jW2FkPj4yXTtjW1Q+PjJdPWNbZj4+Ml07Z0QoUixkLFMsVCxnLGgsaiwyMzI4LDIz
MzYpO2NbYWQ+PjJdPWNbUj4+Ml07YnJlYWt9O2Nhc2UgMTE5OntjW28+PjJdPWNbZj4+Ml07YWQ9
Z0woZSxvLGgsYWIsMSl8MDthYT1jW2g+PjJdfDA7aWYoKGFhJjR8MCk9PTAmKGFkfDApPDcpe2Nb
aisyND4+Ml09YWQ7YnJlYWsgTDI3MDl9ZWxzZXtjW2g+PjJdPWFhfDQ7YnJlYWsgTDI3MDl9YnJl
YWt9O2Nhc2UgNzA6e2FhPWV8MDtjW0g+PjJdPWNbYWE+PjJdO2NbST4+Ml09Y1tmPj4yXTtnRChH
LGQsSCxJLGcsaCxqLDIzNjAsMjM2OCk7Y1thYT4+Ml09Y1tHPj4yXTticmVha307Y2FzZSA4OTp7
Y1ttPj4yXT1jW2Y+PjJdO2FhPWdMKGUsbSxoLGFiLDQpfDA7aWYoKGNbaD4+Ml0mNHwwKSE9MCl7
YnJlYWsgTDI3MDl9Y1tqKzIwPj4yXT1hYS0xOTAwO2JyZWFrfTtjYXNlIDM3OntjW1o+PjJdPWNb
Zj4+Ml07Z0soMCxlLFosaCxhYik7YnJlYWt9O2Nhc2UgMTE0OnthYT1lfDA7Y1tNPj4yXT1jW2Fh
Pj4yXTtjW04+PjJdPWNbZj4+Ml07Z0QoTCxkLE0sTixnLGgsaiwyMzQ0LDIzNTUpO2NbYWE+PjJd
PWNbTD4+Ml07YnJlYWt9O2Nhc2UgODI6e2FhPWV8MDtjW1A+PjJdPWNbYWE+PjJdO2NbUT4+Ml09
Y1tmPj4yXTtnRChPLGQsUCxRLGcsaCxqLDIzMzYsMjM0MSk7Y1thYT4+Ml09Y1tPPj4yXTticmVh
a307Y2FzZSA5OTp7YWE9ZCs4fDA7YWQ9YjBbY1soY1thYT4+Ml18MCkrMTI+PjJdJjEyN10oYWEp
fDA7YWE9ZXwwO2NbQj4+Ml09Y1thYT4+Ml07Y1tDPj4yXT1jW2Y+PjJdO2FmPWFkO2FnPWFbYWRd
fDA7aWYoKGFnJjEpPT0wKXthaD1hZisxfDA7YWk9YWYrMXwwfWVsc2V7YWY9Y1thZCs4Pj4yXXww
O2FoPWFmO2FpPWFmfWFmPWFnJjI1NTtpZigoYWYmMXwwKT09MCl7YWo9YWY+Pj4xfWVsc2V7YWo9
Y1thZCs0Pj4yXXwwfWdEKEEsZCxCLEMsZyxoLGosYWksYWgrYWp8MCk7Y1thYT4+Ml09Y1tBPj4y
XTticmVha307Y2FzZSA4Mzp7Y1twPj4yXT1jW2Y+PjJdO2FhPWdMKGUscCxoLGFiLDIpfDA7YWQ9
Y1toPj4yXXwwO2lmKChhZCY0fDApPT0wJihhYXwwKTw2MSl7Y1tqPj4yXT1hYTticmVhayBMMjcw
OX1lbHNle2NbaD4+Ml09YWR8NDticmVhayBMMjcwOX1icmVha307Y2FzZSA3Nzp7Y1txPj4yXT1j
W2Y+PjJdO2FkPWdMKGUscSxoLGFiLDIpfDA7YWE9Y1toPj4yXXwwO2lmKChhYSY0fDApPT0wJihh
ZHwwKTw2MCl7Y1tqKzQ+PjJdPWFkO2JyZWFrIEwyNzA5fWVsc2V7Y1toPj4yXT1hYXw0O2JyZWFr
IEwyNzA5fWJyZWFrfTtjYXNlIDExMDpjYXNlIDExNjp7Y1tKPj4yXT1jW2Y+PjJdO2dIKDAsZSxK
LGgsYWIpO2JyZWFrfTtjYXNlIDExMjp7Y1tLPj4yXT1jW2Y+PjJdO2dKKGQsais4fDAsZSxLLGgs
YWIpO2JyZWFrfTtjYXNlIDEyMDp7YWE9Y1soY1tkPj4yXXwwKSsyMD4+Ml18MDtjW1U+PjJdPWNb
ZT4+Ml07Y1tWPj4yXT1jW2Y+PjJdO2JYW2FhJjEyN10oYixkLFUsVixnLGgsaik7aT1sO3JldHVy
bn07Y2FzZSA4ODp7YWE9ZCs4fDA7YWQ9YjBbY1soY1thYT4+Ml18MCkrMjQ+PjJdJjEyN10oYWEp
fDA7YWE9ZXwwO2NbWD4+Ml09Y1thYT4+Ml07Y1tZPj4yXT1jW2Y+PjJdO2FmPWFkO2FnPWFbYWRd
fDA7aWYoKGFnJjEpPT0wKXthaz1hZisxfDA7YWw9YWYrMXwwfWVsc2V7YWY9Y1thZCs4Pj4yXXww
O2FrPWFmO2FsPWFmfWFmPWFnJjI1NTtpZigoYWYmMXwwKT09MCl7YW09YWY+Pj4xfWVsc2V7YW09
Y1thZCs0Pj4yXXwwfWdEKFcsZCxYLFksZyxoLGosYWwsYWsrYW18MCk7Y1thYT4+Ml09Y1tXPj4y
XTticmVha307Y2FzZSAxMDA6Y2FzZSAxMDE6e2FhPWorMTJ8MDtjW3Y+PjJdPWNbZj4+Ml07YWQ9
Z0woZSx2LGgsYWIsMil8MDthZj1jW2g+PjJdfDA7ZG97aWYoKGFmJjR8MCk9PTApe2lmKChhZC0x
fDApPj4+MD49MzEpe2JyZWFrfWNbYWE+PjJdPWFkO2JyZWFrIEwyNzA5fX13aGlsZSgwKTtjW2g+
PjJdPWFmfDQ7YnJlYWt9O2RlZmF1bHQ6e2NbaD4+Ml09Y1toPj4yXXw0fX19d2hpbGUoMCk7Y1ti
Pj4yXT1jW2U+PjJdO2k9bDtyZXR1cm59fXdoaWxlKDApO2w9Yk8oNCl8MDtrcShsKTtibChsfDAs
ODE3NiwxMzQpfWZ1bmN0aW9uIGdKKGEsYixlLGYsZyxoKXthPWF8MDtiPWJ8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MDtqPWk7aT1pKzh8MDtrPWY7Zj1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2s+PjJdO2s9anwwO2w9YSs4fDA7YT1iMFtj
WyhjW2w+PjJdfDApKzg+PjJdJjEyN10obCl8MDtsPWRbYV18MDtpZigobCYxfDApPT0wKXttPWw+
Pj4xfWVsc2V7bT1jW2ErND4+Ml18MH1sPWRbYSsxMnwwXXwwO2lmKChsJjF8MCk9PTApe249bD4+
PjF9ZWxzZXtuPWNbYSsxNj4+Ml18MH1pZigobXwwKT09KC1ufDApKXtjW2c+PjJdPWNbZz4+Ml18
NDtpPWo7cmV0dXJufWNbaz4+Ml09Y1tmPj4yXTtmPWZxKGUsayxhLGErMjR8MCxoLGcsMCl8MDtn
PWYtYXwwO2Rve2lmKChmfDApPT0oYXwwKSl7aWYoKGNbYj4+Ml18MCkhPTEyKXticmVha31jW2I+
PjJdPTA7aT1qO3JldHVybn19d2hpbGUoMCk7aWYoKGd8MCkhPTEyKXtpPWo7cmV0dXJufWc9Y1ti
Pj4yXXwwO2lmKChnfDApPj0xMil7aT1qO3JldHVybn1jW2I+PjJdPWcrMTI7aT1qO3JldHVybn1m
dW5jdGlvbiBnSyhiLGQsZSxmLGcpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO3ZhciBo
PTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTA7Yj1pO2g9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztjW2U+PjJdPWNbaD4+Ml07aD1kfDA7ZD1jW2g+PjJdfDA7ZG97aWYoKGR8MCk9PTApe2o9MH1l
bHNle2lmKChjW2QrMTI+PjJdfDApIT0oY1tkKzE2Pj4yXXwwKSl7aj1kO2JyZWFrfWlmKChiMFtj
WyhjW2Q+PjJdfDApKzM2Pj4yXSYxMjddKGQpfDApPT0tMSl7Y1toPj4yXT0wO2o9MDticmVha31l
bHNle2o9Y1toPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7ZD0oanwwKT09MDtqPWV8MDtlPWNbaj4+
Ml18MDtMMjgyMjpkb3tpZigoZXwwKT09MCl7az0yMzM3fWVsc2V7ZG97aWYoKGNbZSsxMj4+Ml18
MCk9PShjW2UrMTY+PjJdfDApKXtpZigoYjBbY1soY1tlPj4yXXwwKSszNj4+Ml0mMTI3XShlKXww
KSE9LTEpe2JyZWFrfWNbaj4+Ml09MDtrPTIzMzc7YnJlYWsgTDI4MjJ9fXdoaWxlKDApO2lmKGQp
e2w9ZTttPTB9ZWxzZXtrPTIzMzh9fX13aGlsZSgwKTtpZigoa3wwKT09MjMzNyl7aWYoZCl7az0y
MzM4fWVsc2V7bD0wO209MX19aWYoKGt8MCk9PTIzMzgpe2NbZj4+Ml09Y1tmPj4yXXw2O2k9Yjty
ZXR1cm59ZD1jW2g+PjJdfDA7ZT1jW2QrMTI+PjJdfDA7aWYoKGV8MCk9PShjW2QrMTY+PjJdfDAp
KXtuPShiMFtjWyhjW2Q+PjJdfDApKzM2Pj4yXSYxMjddKGQpfDApJjI1NX1lbHNle249YVtlXXww
fWlmKChiMVtjWyhjW2c+PjJdfDApKzM2Pj4yXSY2M10oZyxuLDApfDApPDwyND4+MjQhPTM3KXtj
W2Y+PjJdPWNbZj4+Ml18NDtpPWI7cmV0dXJufW49Y1toPj4yXXwwO2c9bisxMnwwO2U9Y1tnPj4y
XXwwO2lmKChlfDApPT0oY1tuKzE2Pj4yXXwwKSl7ZD1jWyhjW24+PjJdfDApKzQwPj4yXXwwO2Iw
W2QmMTI3XShuKXwwfWVsc2V7Y1tnPj4yXT1lKzF9ZT1jW2g+PjJdfDA7ZG97aWYoKGV8MCk9PTAp
e289MH1lbHNle2lmKChjW2UrMTI+PjJdfDApIT0oY1tlKzE2Pj4yXXwwKSl7bz1lO2JyZWFrfWlm
KChiMFtjWyhjW2U+PjJdfDApKzM2Pj4yXSYxMjddKGUpfDApPT0tMSl7Y1toPj4yXT0wO289MDti
cmVha31lbHNle289Y1toPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7aD0ob3wwKT09MDtkb3tpZiht
KXtrPTIzNTd9ZWxzZXtpZigoY1tsKzEyPj4yXXwwKSE9KGNbbCsxNj4+Ml18MCkpe2lmKCEoaF4o
bHwwKT09MCkpe2JyZWFrfWk9YjtyZXR1cm59aWYoKGIwW2NbKGNbbD4+Ml18MCkrMzY+PjJdJjEy
N10obCl8MCk9PS0xKXtjW2o+PjJdPTA7az0yMzU3O2JyZWFrfWlmKCFoKXticmVha31pPWI7cmV0
dXJufX13aGlsZSgwKTtkb3tpZigoa3wwKT09MjM1Nyl7aWYoaCl7YnJlYWt9aT1iO3JldHVybn19
d2hpbGUoMCk7Y1tmPj4yXT1jW2Y+PjJdfDI7aT1iO3JldHVybn1mdW5jdGlvbiBnTChkLGUsZixn
LGgpe2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTA7aj1pO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztj
W2U+PjJdPWNbaz4+Ml07az1kfDA7ZD1jW2s+PjJdfDA7ZG97aWYoKGR8MCk9PTApe2w9MH1lbHNl
e2lmKChjW2QrMTI+PjJdfDApIT0oY1tkKzE2Pj4yXXwwKSl7bD1kO2JyZWFrfWlmKChiMFtjWyhj
W2Q+PjJdfDApKzM2Pj4yXSYxMjddKGQpfDApPT0tMSl7Y1trPj4yXT0wO2w9MDticmVha31lbHNl
e2w9Y1trPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7ZD0obHwwKT09MDtsPWV8MDtlPWNbbD4+Ml18
MDtMMjg3Njpkb3tpZigoZXwwKT09MCl7bT0yMzc3fWVsc2V7ZG97aWYoKGNbZSsxMj4+Ml18MCk9
PShjW2UrMTY+PjJdfDApKXtpZigoYjBbY1soY1tlPj4yXXwwKSszNj4+Ml0mMTI3XShlKXwwKSE9
LTEpe2JyZWFrfWNbbD4+Ml09MDttPTIzNzc7YnJlYWsgTDI4NzZ9fXdoaWxlKDApO2lmKGQpe249
ZX1lbHNle209MjM3OH19fXdoaWxlKDApO2lmKChtfDApPT0yMzc3KXtpZihkKXttPTIzNzh9ZWxz
ZXtuPTB9fWlmKChtfDApPT0yMzc4KXtjW2Y+PjJdPWNbZj4+Ml18NjtvPTA7aT1qO3JldHVybiBv
fDB9ZD1jW2s+PjJdfDA7ZT1jW2QrMTI+PjJdfDA7aWYoKGV8MCk9PShjW2QrMTY+PjJdfDApKXtw
PShiMFtjWyhjW2Q+PjJdfDApKzM2Pj4yXSYxMjddKGQpfDApJjI1NX1lbHNle3A9YVtlXXwwfWRv
e2lmKHA8PDI0Pj4yND4tMSl7ZT1nKzh8MDtpZigoYlsoY1tlPj4yXXwwKSsocDw8MjQ+PjI0PDwx
KT4+MV0mMjA0OCk9PTApe2JyZWFrfWQ9ZztxPShiMVtjWyhjW2Q+PjJdfDApKzM2Pj4yXSY2M10o
ZyxwLDApfDApPDwyND4+MjQ7cj1jW2s+PjJdfDA7cz1yKzEyfDA7dD1jW3M+PjJdfDA7aWYoKHR8
MCk9PShjW3IrMTY+PjJdfDApKXt1PWNbKGNbcj4+Ml18MCkrNDA+PjJdfDA7YjBbdSYxMjddKHIp
fDA7dj1xO3c9aDt4PW59ZWxzZXtjW3M+PjJdPXQrMTt2PXE7dz1oO3g9bn13aGlsZSgxKXt5PXYt
NDh8MDtxPXctMXwwO3Q9Y1trPj4yXXwwO2Rve2lmKCh0fDApPT0wKXt6PTB9ZWxzZXtpZigoY1t0
KzEyPj4yXXwwKSE9KGNbdCsxNj4+Ml18MCkpe3o9dDticmVha31pZigoYjBbY1soY1t0Pj4yXXww
KSszNj4+Ml0mMTI3XSh0KXwwKT09LTEpe2Nbaz4+Ml09MDt6PTA7YnJlYWt9ZWxzZXt6PWNbaz4+
Ml18MDticmVha319fXdoaWxlKDApO3Q9KHp8MCk9PTA7aWYoKHh8MCk9PTApe0E9ejtCPTB9ZWxz
ZXtkb3tpZigoY1t4KzEyPj4yXXwwKT09KGNbeCsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW3g+PjJd
fDApKzM2Pj4yXSYxMjddKHgpfDApIT0tMSl7Qz14O2JyZWFrfWNbbD4+Ml09MDtDPTB9ZWxzZXtD
PXh9fXdoaWxlKDApO0E9Y1trPj4yXXwwO0I9Q31EPShCfDApPT0wO2lmKCEoKHReRCkmKHF8MCk+
MCkpe209MjQwNzticmVha31zPWNbQSsxMj4+Ml18MDtpZigoc3wwKT09KGNbQSsxNj4+Ml18MCkp
e0U9KGIwW2NbKGNbQT4+Ml18MCkrMzY+PjJdJjEyN10oQSl8MCkmMjU1fWVsc2V7RT1hW3NdfDB9
aWYoRTw8MjQ+PjI0PD0tMSl7bz15O209MjQyMjticmVha31pZigoYlsoY1tlPj4yXXwwKSsoRTw8
MjQ+PjI0PDwxKT4+MV0mMjA0OCk9PTApe289eTttPTI0MjM7YnJlYWt9cz0oKGIxW2NbKGNbZD4+
Ml18MCkrMzY+PjJdJjYzXShnLEUsMCl8MCk8PDI0Pj4yNCkrKHkqMTB8MCl8MDtyPWNbaz4+Ml18
MDt1PXIrMTJ8MDtGPWNbdT4+Ml18MDtpZigoRnwwKT09KGNbcisxNj4+Ml18MCkpe0c9Y1soY1ty
Pj4yXXwwKSs0MD4+Ml18MDtiMFtHJjEyN10ocil8MDt2PXM7dz1xO3g9Qjtjb250aW51ZX1lbHNl
e2NbdT4+Ml09RisxO3Y9czt3PXE7eD1CO2NvbnRpbnVlfX1pZigobXwwKT09MjQwNyl7ZG97aWYo
KEF8MCk9PTApe0g9MH1lbHNle2lmKChjW0ErMTI+PjJdfDApIT0oY1tBKzE2Pj4yXXwwKSl7SD1B
O2JyZWFrfWlmKChiMFtjWyhjW0E+PjJdfDApKzM2Pj4yXSYxMjddKEEpfDApPT0tMSl7Y1trPj4y
XT0wO0g9MDticmVha31lbHNle0g9Y1trPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7ZD0oSHwwKT09
MDtMMjkzMzpkb3tpZihEKXttPTI0MTd9ZWxzZXtkb3tpZigoY1tCKzEyPj4yXXwwKT09KGNbQisx
Nj4+Ml18MCkpe2lmKChiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7YnJl
YWt9Y1tsPj4yXT0wO209MjQxNzticmVhayBMMjkzM319d2hpbGUoMCk7aWYoZCl7bz15fWVsc2V7
YnJlYWt9aT1qO3JldHVybiBvfDB9fXdoaWxlKDApO2Rve2lmKChtfDApPT0yNDE3KXtpZihkKXti
cmVha31lbHNle289eX1pPWo7cmV0dXJuIG98MH19d2hpbGUoMCk7Y1tmPj4yXT1jW2Y+PjJdfDI7
bz15O2k9ajtyZXR1cm4gb3wwfWVsc2UgaWYoKG18MCk9PTI0MjIpe2k9ajtyZXR1cm4gb3wwfWVs
c2UgaWYoKG18MCk9PTI0MjMpe2k9ajtyZXR1cm4gb3wwfX19d2hpbGUoMCk7Y1tmPj4yXT1jW2Y+
PjJdfDQ7bz0wO2k9ajtyZXR1cm4gb3wwfWZ1bmN0aW9uIGdNKGEpe2E9YXwwO3JldHVybiAyfWZ1
bmN0aW9uIGdOKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGdPKGEpe2E9
YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGdQKGEsYixkLGUsZixnLGgpe2E9YXwwO2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MDtqPWk7aT1pKzE2
fDA7az1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7Y1trPj4yXT1j
W2Q+PjJdO2NbbD4+Ml09Y1tlPj4yXTtnUihhLGIsayxsLGYsZyxoLDIyOTYsMjMyOCk7aT1qO3Jl
dHVybn1mdW5jdGlvbiBnUShiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtrPWk7
aT1pKzE2fDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTtsPWY7
Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209ays4fDA7bj1k
Kzh8MDtvPWIwW2NbKGNbbj4+Ml18MCkrMjA+PjJdJjEyN10obil8MDtjW2w+PjJdPWNbZT4+Ml07
Y1ttPj4yXT1jW2Y+PjJdO2Y9YVtvXXwwO2lmKChmJjEpPT0wKXtwPW8rNHwwO3E9bys0fDB9ZWxz
ZXtlPWNbbys4Pj4yXXwwO3A9ZTtxPWV9ZT1mJjI1NTtpZigoZSYxfDApPT0wKXtyPWU+Pj4xfWVs
c2V7cj1jW28rND4+Ml18MH1nUihiLGQsbCxtLGcsaCxqLHEscCsocjw8Mil8MCk7aT1rO3JldHVy
bn1mdW5jdGlvbiBnUihhLGIsZCxlLGYsZyxoLGosayl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAs
Rj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxU
PTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFl
PTAsYWY9MCxhZz0wO2w9aTtpPWkrNDh8MDttPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tk
Pj4yXT1jW20+PjJdO209ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbT4+Ml07
bT1sfDA7bj1sKzE2fDA7bz1sKzI0fDA7cD1sKzMyfDA7cT1sKzQwfDA7ZWoobixmKTtyPW58MDtu
PWNbcj4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbT4+Ml09MTU2ODg7Y1ttKzQ+PjJdPTEy
O2NbbSs4Pj4yXT0wO2RXKDE1Njg4LG0sOTYpfW09KGNbMzkyM118MCktMXwwO3M9Y1tuKzg+PjJd
fDA7ZG97aWYoKGNbbisxMj4+Ml18MCktcz4+Mj4+PjA+bT4+PjApe3Q9Y1tzKyhtPDwyKT4+Ml18
MDtpZigodHwwKT09MCl7YnJlYWt9dT10O3Y9Y1tyPj4yXXwwO2R6KHYpfDA7Y1tnPj4yXT0wO3Y9
ZHwwO0wyOTY5OmRve2lmKChqfDApPT0oa3wwKSl7dz0yNTA4fWVsc2V7eD1lfDA7eT10O3o9dDtB
PXQ7Qj1iO0M9cHwwO0Q9cXwwO0U9b3wwO0Y9ajtHPTA7TDI5NzE6d2hpbGUoMSl7SD1HO3doaWxl
KDEpe2lmKChIfDApIT0wKXt3PTI1MDg7YnJlYWsgTDI5Njl9ST1jW3Y+PjJdfDA7ZG97aWYoKEl8
MCk9PTApe0o9MH1lbHNle0s9Y1tJKzEyPj4yXXwwO2lmKChLfDApPT0oY1tJKzE2Pj4yXXwwKSl7
TD1iMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYxMjddKEkpfDB9ZWxzZXtMPWNbSz4+Ml18MH1pZigo
THwwKSE9LTEpe0o9STticmVha31jW3Y+PjJdPTA7Sj0wfX13aGlsZSgwKTtJPShKfDApPT0wO0s9
Y1t4Pj4yXXwwO2Rve2lmKChLfDApPT0wKXt3PTI0NjB9ZWxzZXtNPWNbSysxMj4+Ml18MDtpZigo
TXwwKT09KGNbSysxNj4+Ml18MCkpe049YjBbY1soY1tLPj4yXXwwKSszNj4+Ml0mMTI3XShLKXww
fWVsc2V7Tj1jW00+PjJdfDB9aWYoKE58MCk9PS0xKXtjW3g+PjJdPTA7dz0yNDYwO2JyZWFrfWVs
c2V7aWYoSV4oS3wwKT09MCl7Tz1LO2JyZWFrfWVsc2V7dz0yNDYyO2JyZWFrIEwyOTcxfX19fXdo
aWxlKDApO2lmKCh3fDApPT0yNDYwKXt3PTA7aWYoSSl7dz0yNDYyO2JyZWFrIEwyOTcxfWVsc2V7
Tz0wfX1pZigoYjFbY1soY1t5Pj4yXXwwKSs1Mj4+Ml0mNjNdKHUsY1tGPj4yXXwwLDApfDApPDwy
ND4+MjQ9PTM3KXt3PTI0NjU7YnJlYWt9aWYoYjFbY1soY1t6Pj4yXXwwKSsxMj4+Ml0mNjNdKHUs
ODE5MixjW0Y+PjJdfDApfDApe1A9Rjt3PTI0NzU7YnJlYWt9UT1KKzEyfDA7Sz1jW1E+PjJdfDA7
Uj1KKzE2fDA7aWYoKEt8MCk9PShjW1I+PjJdfDApKXtTPWIwW2NbKGNbSj4+Ml18MCkrMzY+PjJd
JjEyN10oSil8MH1lbHNle1M9Y1tLPj4yXXwwfUs9Yl9bY1soY1tBPj4yXXwwKSsyOD4+Ml0mMzFd
KHUsUyl8MDtpZigoS3wwKT09KGJfW2NbKGNbQT4+Ml18MCkrMjg+PjJdJjMxXSh1LGNbRj4+Ml18
MCl8MCkpe3c9MjUwMzticmVha31jW2c+PjJdPTQ7SD00fUwzMDAzOmRve2lmKCh3fDApPT0yNTAz
KXt3PTA7SD1jW1E+PjJdfDA7aWYoKEh8MCk9PShjW1I+PjJdfDApKXtLPWNbKGNbSj4+Ml18MCkr
NDA+PjJdfDA7YjBbSyYxMjddKEopfDB9ZWxzZXtjW1E+PjJdPUgrNH1UPUYrNHwwfWVsc2UgaWYo
KHd8MCk9PTI0NjUpe3c9MDtIPUYrNHwwO2lmKChIfDApPT0oa3wwKSl7dz0yNDY2O2JyZWFrIEwy
OTcxfUs9YjFbY1soY1t5Pj4yXXwwKSs1Mj4+Ml0mNjNdKHUsY1tIPj4yXXwwLDApfDA7c3dpdGNo
KEs8PDI0Pj4yNCl7Y2FzZSA2OTpjYXNlIDQ4OntNPUYrOHwwO2lmKChNfDApPT0oa3wwKSl7dz0y
NDY5O2JyZWFrIEwyOTcxfVU9SztWPWIxW2NbKGNbeT4+Ml18MCkrNTI+PjJdJjYzXSh1LGNbTT4+
Ml18MCwwKXwwO1c9TTticmVha307ZGVmYXVsdDp7VT0wO1Y9SztXPUh9fUg9Y1soY1tCPj4yXXww
KSszNj4+Ml18MDtjW0M+PjJdPUo7Y1tEPj4yXT1PO2I3W0gmN10obyxiLHAscSxmLGcsaCxWLFUp
O2Nbdj4+Ml09Y1tFPj4yXTtUPVcrNHwwfWVsc2UgaWYoKHd8MCk9PTI0NzUpe3doaWxlKDEpe3c9
MDtIPVArNHwwO2lmKChIfDApPT0oa3wwKSl7WD1rO2JyZWFrfWlmKGIxW2NbKGNbej4+Ml18MCkr
MTI+PjJdJjYzXSh1LDgxOTIsY1tIPj4yXXwwKXwwKXtQPUg7dz0yNDc1fWVsc2V7WD1IO2JyZWFr
fX1JPUo7SD1PO3doaWxlKDEpe2Rve2lmKChJfDApPT0wKXtZPTB9ZWxzZXtLPWNbSSsxMj4+Ml18
MDtpZigoS3wwKT09KGNbSSsxNj4+Ml18MCkpe1o9YjBbY1soY1tJPj4yXXwwKSszNj4+Ml0mMTI3
XShJKXwwfWVsc2V7Wj1jW0s+PjJdfDB9aWYoKFp8MCkhPS0xKXtZPUk7YnJlYWt9Y1t2Pj4yXT0w
O1k9MH19d2hpbGUoMCk7Sz0oWXwwKT09MDtkb3tpZigoSHwwKT09MCl7dz0yNDkwfWVsc2V7TT1j
W0grMTI+PjJdfDA7aWYoKE18MCk9PShjW0grMTY+PjJdfDApKXtfPWIwW2NbKGNbSD4+Ml18MCkr
MzY+PjJdJjEyN10oSCl8MH1lbHNle189Y1tNPj4yXXwwfWlmKChffDApPT0tMSl7Y1t4Pj4yXT0w
O3c9MjQ5MDticmVha31lbHNle2lmKEteKEh8MCk9PTApeyQ9SDticmVha31lbHNle1Q9WDticmVh
ayBMMzAwM319fX13aGlsZSgwKTtpZigod3wwKT09MjQ5MCl7dz0wO2lmKEspe1Q9WDticmVhayBM
MzAwM31lbHNleyQ9MH19TT1ZKzEyfDA7YWE9Y1tNPj4yXXwwO2FiPVkrMTZ8MDtpZigoYWF8MCk9
PShjW2FiPj4yXXwwKSl7YWM9YjBbY1soY1tZPj4yXXwwKSszNj4+Ml0mMTI3XShZKXwwfWVsc2V7
YWM9Y1thYT4+Ml18MH1pZighKGIxW2NbKGNbej4+Ml18MCkrMTI+PjJdJjYzXSh1LDgxOTIsYWMp
fDApKXtUPVg7YnJlYWsgTDMwMDN9YWE9Y1tNPj4yXXwwO2lmKChhYXwwKT09KGNbYWI+PjJdfDAp
KXthYj1jWyhjW1k+PjJdfDApKzQwPj4yXXwwO2IwW2FiJjEyN10oWSl8MDtJPVk7SD0kO2NvbnRp
bnVlfWVsc2V7Y1tNPj4yXT1hYSs0O0k9WTtIPSQ7Y29udGludWV9fX19d2hpbGUoMCk7aWYoKFR8
MCk9PShrfDApKXt3PTI1MDg7YnJlYWsgTDI5Njl9Rj1UO0c9Y1tnPj4yXXwwfWlmKCh3fDApPT0y
NDYyKXtjW2c+PjJdPTQ7YWQ9SjticmVha31lbHNlIGlmKCh3fDApPT0yNDY2KXtjW2c+PjJdPTQ7
YWQ9SjticmVha31lbHNlIGlmKCh3fDApPT0yNDY5KXtjW2c+PjJdPTQ7YWQ9SjticmVha319fXdo
aWxlKDApO2lmKCh3fDApPT0yNTA4KXthZD1jW3Y+PjJdfDB9dT1kfDA7ZG97aWYoKGFkfDApIT0w
KXt0PWNbYWQrMTI+PjJdfDA7aWYoKHR8MCk9PShjW2FkKzE2Pj4yXXwwKSl7YWU9YjBbY1soY1th
ZD4+Ml18MCkrMzY+PjJdJjEyN10oYWQpfDB9ZWxzZXthZT1jW3Q+PjJdfDB9aWYoKGFlfDApIT0t
MSl7YnJlYWt9Y1t1Pj4yXT0wfX13aGlsZSgwKTt2PWNbdT4+Ml18MDt0PSh2fDApPT0wO0c9ZXww
O0Y9Y1tHPj4yXXwwO2Rve2lmKChGfDApPT0wKXt3PTI1MjF9ZWxzZXt6PWNbRisxMj4+Ml18MDtp
ZigoenwwKT09KGNbRisxNj4+Ml18MCkpe2FmPWIwW2NbKGNbRj4+Ml18MCkrMzY+PjJdJjEyN10o
Ril8MH1lbHNle2FmPWNbej4+Ml18MH1pZigoYWZ8MCk9PS0xKXtjW0c+PjJdPTA7dz0yNTIxO2Jy
ZWFrfWlmKCEodF4oRnwwKT09MCkpe2JyZWFrfWFnPWF8MDtjW2FnPj4yXT12O2k9bDtyZXR1cm59
fXdoaWxlKDApO2Rve2lmKCh3fDApPT0yNTIxKXtpZih0KXticmVha31hZz1hfDA7Y1thZz4+Ml09
djtpPWw7cmV0dXJufX13aGlsZSgwKTtjW2c+PjJdPWNbZz4+Ml18MjthZz1hfDA7Y1thZz4+Ml09
djtpPWw7cmV0dXJufX13aGlsZSgwKTtsPWJPKDQpfDA7a3EobCk7YmwobHwwLDgxNzYsMTM0KX1m
dW5jdGlvbiBnUyhhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTA7aj1pO2k9aSszMnwwO2s9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNb
az4+Ml07az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8MDts
PWorOHwwO209aisyNHwwO2VqKG0sZik7Zj1tfDA7bT1jW2Y+PjJdfDA7aWYoKGNbMzkyMl18MCkh
PS0xKXtjW2w+PjJdPTE1Njg4O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY4OCxsLDk2
KX1sPShjWzM5MjNdfDApLTF8MDtuPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJdfDApLW4+
PjI+Pj4wPmw+Pj4wKXtvPWNbbisobDw8Mik+PjJdfDA7aWYoKG98MCk9PTApe2JyZWFrfXA9bztv
PWNbZj4+Ml18MDtkeihvKXwwO289Y1tlPj4yXXwwO3E9Yis4fDA7cj1iMFtjW2NbcT4+Ml0+PjJd
JjEyN10ocSl8MDtjW2s+PjJdPW87bz0oZlMoZCxrLHIscisxNjh8MCxwLGcsMCl8MCktcnwwO2lm
KChvfDApPj0xNjgpe3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7cmV0dXJu
fWNbaCsyND4+Ml09KChvfDApLzEyfDB8MCklN3wwO3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2Nb
dT4+Ml09dDtpPWo7cmV0dXJufX13aGlsZSgwKTtqPWJPKDQpfDA7a3Eoaik7YmwoanwwLDgxNzYs
MTM0KX1mdW5jdGlvbiBnVChhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MCx1PTA7aj1pO2k9aSszMnwwO2s9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+
PjJdPWNbaz4+Ml07az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtr
PWp8MDtsPWorOHwwO209aisyNHwwO2VqKG0sZik7Zj1tfDA7bT1jW2Y+PjJdfDA7aWYoKGNbMzky
Ml18MCkhPS0xKXtjW2w+PjJdPTE1Njg4O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY4
OCxsLDk2KX1sPShjWzM5MjNdfDApLTF8MDtuPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJd
fDApLW4+PjI+Pj4wPmw+Pj4wKXtvPWNbbisobDw8Mik+PjJdfDA7aWYoKG98MCk9PTApe2JyZWFr
fXA9bztvPWNbZj4+Ml18MDtkeihvKXwwO289Y1tlPj4yXXwwO3E9Yis4fDA7cj1iMFtjWyhjW3E+
PjJdfDApKzQ+PjJdJjEyN10ocSl8MDtjW2s+PjJdPW87bz0oZlMoZCxrLHIscisyODh8MCxwLGcs
MCl8MCktcnwwO2lmKChvfDApPj0yODgpe3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09
dDtpPWo7cmV0dXJufWNbaCsxNj4+Ml09KChvfDApLzEyfDB8MCklMTJ8MDtzPWR8MDt0PWNbcz4+
Ml18MDt1PWF8MDtjW3U+PjJdPXQ7aT1qO3JldHVybn19d2hpbGUoMCk7aj1iTyg0KXwwO2txKGop
O2JsKGp8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ1UoYSxiLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MDtiPWk7aT1pKzMyfDA7aj1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O2NbZD4+Ml09Y1tqPj4yXTtqPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2o+
PjJdO2o9YnwwO2s9Yis4fDA7bD1iKzI0fDA7ZWoobCxmKTtmPWx8MDtsPWNbZj4+Ml18MDtpZigo
Y1szOTIyXXwwKSE9LTEpe2Nbaz4+Ml09MTU2ODg7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RX
KDE1Njg4LGssOTYpfWs9KGNbMzkyM118MCktMXwwO209Y1tsKzg+PjJdfDA7ZG97aWYoKGNbbCsx
Mj4+Ml18MCktbT4+Mj4+PjA+az4+PjApe249Y1ttKyhrPDwyKT4+Ml18MDtpZigobnwwKT09MCl7
YnJlYWt9bz1uO249Y1tmPj4yXXwwO2R6KG4pfDA7Y1tqPj4yXT1jW2U+PjJdO249aGMoZCxqLGcs
byw0KXwwO2lmKChjW2c+PjJdJjR8MCkhPTApe3A9ZHwwO3E9Y1twPj4yXXwwO3I9YXwwO2Nbcj4+
Ml09cTtpPWI7cmV0dXJufWlmKChufDApPDY5KXtzPW4rMmUzfDB9ZWxzZXtzPShuLTY5fDApPj4+
MDwzMT9uKzE5MDB8MDpufWNbaCsyMD4+Ml09cy0xOTAwO3A9ZHwwO3E9Y1twPj4yXXwwO3I9YXww
O2Nbcj4+Ml09cTtpPWI7cmV0dXJufX13aGlsZSgwKTtiPWJPKDQpfDA7a3EoYik7YmwoYnwwLDgx
NzYsMTM0KX1mdW5jdGlvbiBnVihhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTAseD0wO2E9aTtnPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4y
XT1jW2c+PjJdO2c9YnwwO2I9ZHwwO2Q9ZjtMMzEyNzp3aGlsZSgxKXtoPWNbZz4+Ml18MDtkb3tp
ZigoaHwwKT09MCl7aj0xfWVsc2V7az1jW2grMTI+PjJdfDA7aWYoKGt8MCk9PShjW2grMTY+PjJd
fDApKXtsPWIwW2NbKGNbaD4+Ml18MCkrMzY+PjJdJjEyN10oaCl8MH1lbHNle2w9Y1trPj4yXXww
fWlmKChsfDApPT0tMSl7Y1tnPj4yXT0wO2o9MTticmVha31lbHNle2o9KGNbZz4+Ml18MCk9PTA7
YnJlYWt9fX13aGlsZSgwKTtoPWNbYj4+Ml18MDtkb3tpZigoaHwwKT09MCl7bT0yNTgxfWVsc2V7
az1jW2grMTI+PjJdfDA7aWYoKGt8MCk9PShjW2grMTY+PjJdfDApKXtuPWIwW2NbKGNbaD4+Ml18
MCkrMzY+PjJdJjEyN10oaCl8MH1lbHNle249Y1trPj4yXXwwfWlmKChufDApPT0tMSl7Y1tiPj4y
XT0wO209MjU4MTticmVha31lbHNle2s9KGh8MCk9PTA7aWYoal5rKXtvPWg7cD1rO2JyZWFrfWVs
c2V7cT1oO3I9azticmVhayBMMzEyN319fX13aGlsZSgwKTtpZigobXwwKT09MjU4MSl7bT0wO2lm
KGope3E9MDtyPTE7YnJlYWt9ZWxzZXtvPTA7cD0xfX1oPWNbZz4+Ml18MDtrPWNbaCsxMj4+Ml18
MDtpZigoa3wwKT09KGNbaCsxNj4+Ml18MCkpe3M9YjBbY1soY1toPj4yXXwwKSszNj4+Ml0mMTI3
XShoKXwwfWVsc2V7cz1jW2s+PjJdfDB9aWYoIShiMVtjWyhjW2Q+PjJdfDApKzEyPj4yXSY2M10o
Ziw4MTkyLHMpfDApKXtxPW87cj1wO2JyZWFrfWs9Y1tnPj4yXXwwO2g9aysxMnwwO3Q9Y1toPj4y
XXwwO2lmKCh0fDApPT0oY1trKzE2Pj4yXXwwKSl7dT1jWyhjW2s+PjJdfDApKzQwPj4yXXwwO2Iw
W3UmMTI3XShrKXwwO2NvbnRpbnVlfWVsc2V7Y1toPj4yXT10KzQ7Y29udGludWV9fXA9Y1tnPj4y
XXwwO2Rve2lmKChwfDApPT0wKXt2PTF9ZWxzZXtvPWNbcCsxMj4+Ml18MDtpZigob3wwKT09KGNb
cCsxNj4+Ml18MCkpe3c9YjBbY1soY1twPj4yXXwwKSszNj4+Ml0mMTI3XShwKXwwfWVsc2V7dz1j
W28+PjJdfDB9aWYoKHd8MCk9PS0xKXtjW2c+PjJdPTA7dj0xO2JyZWFrfWVsc2V7dj0oY1tnPj4y
XXwwKT09MDticmVha319fXdoaWxlKDApO2Rve2lmKHIpe209MjYwM31lbHNle2c9Y1txKzEyPj4y
XXwwO2lmKChnfDApPT0oY1txKzE2Pj4yXXwwKSl7eD1iMFtjWyhjW3E+PjJdfDApKzM2Pj4yXSYx
MjddKHEpfDB9ZWxzZXt4PWNbZz4+Ml18MH1pZigoeHwwKT09LTEpe2NbYj4+Ml09MDttPTI2MDM7
YnJlYWt9aWYoISh2XihxfDApPT0wKSl7YnJlYWt9aT1hO3JldHVybn19d2hpbGUoMCk7ZG97aWYo
KG18MCk9PTI2MDMpe2lmKHYpe2JyZWFrfWk9YTtyZXR1cm59fXdoaWxlKDApO2NbZT4+Ml09Y1tl
Pj4yXXwyO2k9YTtyZXR1cm59ZnVuY3Rpb24gZ1coYixkLGUsZixnLGgsaixrLGwpe2I9YnwwO2Q9
ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxR
PTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAs
YWM9MCxhZD0wLGFlPTAsYWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0wO2w9
aTtpPWkrMzI4fDA7bT1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1ttPj4yXTtt
PWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209bHwwO249bCs4fDA7
bz1sKzE2fDA7cD1sKzI0fDA7cT1sKzMyfDA7cj1sKzQwfDA7cz1sKzQ4fDA7dD1sKzU2fDA7dT1s
KzY0fDA7dj1sKzcyfDA7dz1sKzgwfDA7eD1sKzg4fDA7eT1sKzk2fDA7ej1sKzExMnwwO0E9bCsx
MjB8MDtCPWwrMTI4fDA7Qz1sKzEzNnwwO0Q9bCsxNDR8MDtFPWwrMTUyfDA7Rj1sKzE2MHwwO0c9
bCsxNjh8MDtIPWwrMTc2fDA7ST1sKzE4NHwwO0o9bCsxOTJ8MDtLPWwrMjAwfDA7TD1sKzIwOHww
O009bCsyMTZ8MDtOPWwrMjI0fDA7Tz1sKzIzMnwwO1A9bCsyNDB8MDtRPWwrMjQ4fDA7Uj1sKzI1
NnwwO1M9bCsyNjR8MDtUPWwrMjcyfDA7VT1sKzI4MHwwO1Y9bCsyODh8MDtXPWwrMjk2fDA7WD1s
KzMwNHwwO1k9bCszMTJ8MDtaPWwrMzIwfDA7Y1toPj4yXT0wO2VqKHosZyk7Xz16fDA7ej1jW18+
PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW3k+PjJdPTE1Njg4O2NbeSs0Pj4yXT0xMjtjW3kr
OD4+Ml09MDtkVygxNTY4OCx5LDk2KX15PShjWzM5MjNdfDApLTF8MDskPWNbeis4Pj4yXXwwO2Rv
e2lmKChjW3orMTI+PjJdfDApLSQ+PjI+Pj4wPnk+Pj4wKXthYT1jWyQrKHk8PDIpPj4yXXwwO2lm
KChhYXwwKT09MCl7YnJlYWt9YWI9YWE7YWE9Y1tfPj4yXXwwO2R6KGFhKXwwO0wzMTkyOmRve3N3
aXRjaChrPDwyND4+MjR8MCl7Y2FzZSAxMDA6Y2FzZSAxMDE6e2FhPWorMTJ8MDtjW3Y+PjJdPWNb
Zj4+Ml07YWM9aGMoZSx2LGgsYWIsMil8MDthZD1jW2g+PjJdfDA7ZG97aWYoKGFkJjR8MCk9PTAp
e2lmKChhYy0xfDApPj4+MD49MzEpe2JyZWFrfWNbYWE+PjJdPWFjO2JyZWFrIEwzMTkyfX13aGls
ZSgwKTtjW2g+PjJdPWFkfDQ7YnJlYWt9O2Nhc2UgMTEwOmNhc2UgMTE2OntjW0o+PjJdPWNbZj4+
Ml07Z1YoMCxlLEosaCxhYik7YnJlYWt9O2Nhc2UgODg6e2FjPWQrOHwwO2FhPWIwW2NbKGNbYWM+
PjJdfDApKzI0Pj4yXSYxMjddKGFjKXwwO2FjPWV8MDtjW1g+PjJdPWNbYWM+PjJdO2NbWT4+Ml09
Y1tmPj4yXTthZT1hW2FhXXwwO2lmKChhZSYxKT09MCl7YWY9YWErNHwwO2FnPWFhKzR8MH1lbHNl
e2FoPWNbYWErOD4+Ml18MDthZj1haDthZz1haH1haD1hZSYyNTU7aWYoKGFoJjF8MCk9PTApe2Fp
PWFoPj4+MX1lbHNle2FpPWNbYWErND4+Ml18MH1nUihXLGQsWCxZLGcsaCxqLGFnLGFmKyhhaTw8
Mil8MCk7Y1thYz4+Ml09Y1tXPj4yXTticmVha307Y2FzZSA5ODpjYXNlIDY2OmNhc2UgMTA0Onth
Yz1jW2Y+PjJdfDA7YWE9ZCs4fDA7YWg9YjBbY1soY1thYT4+Ml18MCkrND4+Ml0mMTI3XShhYSl8
MDtjW3c+PjJdPWFjO2FjPShmUyhlLHcsYWgsYWgrMjg4fDAsYWIsaCwwKXwwKS1haHwwO2lmKChh
Y3wwKT49Mjg4KXticmVhayBMMzE5Mn1jW2orMTY+PjJdPSgoYWN8MCkvMTJ8MHwwKSUxMnwwO2Jy
ZWFrfTtjYXNlIDExMjp7Y1tLPj4yXT1jW2Y+PjJdO2dYKGQsais4fDAsZSxLLGgsYWIpO2JyZWFr
fTtjYXNlIDExNDp7YWM9ZXwwO2NbTT4+Ml09Y1thYz4+Ml07Y1tOPj4yXT1jW2Y+PjJdO2dSKEws
ZCxNLE4sZyxoLGosMjIxNiwyMjYwKTtjW2FjPj4yXT1jW0w+PjJdO2JyZWFrfTtjYXNlIDM3Ontj
W1o+PjJdPWNbZj4+Ml07Z1koMCxlLFosaCxhYik7YnJlYWt9O2Nhc2UgNjg6e2FjPWV8MDtjW0U+
PjJdPWNbYWM+PjJdO2NbRj4+Ml09Y1tmPj4yXTtnUihELGQsRSxGLGcsaCxqLDIyNjQsMjI5Nik7
Y1thYz4+Ml09Y1tEPj4yXTticmVha307Y2FzZSA4OTp7Y1ttPj4yXT1jW2Y+PjJdO2FjPWhjKGUs
bSxoLGFiLDQpfDA7aWYoKGNbaD4+Ml0mNHwwKSE9MCl7YnJlYWsgTDMxOTJ9Y1tqKzIwPj4yXT1h
Yy0xOTAwO2JyZWFrfTtjYXNlIDgyOnthYz1lfDA7Y1tQPj4yXT1jW2FjPj4yXTtjW1E+PjJdPWNb
Zj4+Ml07Z1IoTyxkLFAsUSxnLGgsaiwyMTkyLDIyMTIpO2NbYWM+PjJdPWNbTz4+Ml07YnJlYWt9
O2Nhc2UgODM6e2NbcD4+Ml09Y1tmPj4yXTthYz1oYyhlLHAsaCxhYiwyKXwwO2FoPWNbaD4+Ml18
MDtpZigoYWgmNHwwKT09MCYoYWN8MCk8NjEpe2Nbaj4+Ml09YWM7YnJlYWsgTDMxOTJ9ZWxzZXtj
W2g+PjJdPWFofDQ7YnJlYWsgTDMxOTJ9YnJlYWt9O2Nhc2UgMTA2OntjW3M+PjJdPWNbZj4+Ml07
YWg9aGMoZSxzLGgsYWIsMyl8MDthYz1jW2g+PjJdfDA7aWYoKGFjJjR8MCk9PTAmKGFofDApPDM2
Nil7Y1tqKzI4Pj4yXT1haDticmVhayBMMzE5Mn1lbHNle2NbaD4+Ml09YWN8NDticmVhayBMMzE5
Mn1icmVha307Y2FzZSA5NzpjYXNlIDY1OnthYz1jW2Y+PjJdfDA7YWg9ZCs4fDA7YWE9YjBbY1tj
W2FoPj4yXT4+Ml0mMTI3XShhaCl8MDtjW3g+PjJdPWFjO2FjPShmUyhlLHgsYWEsYWErMTY4fDAs
YWIsaCwwKXwwKS1hYXwwO2lmKChhY3wwKT49MTY4KXticmVhayBMMzE5Mn1jW2orMjQ+PjJdPSgo
YWN8MCkvMTJ8MHwwKSU3fDA7YnJlYWt9O2Nhc2UgOTk6e2FjPWQrOHwwO2FhPWIwW2NbKGNbYWM+
PjJdfDApKzEyPj4yXSYxMjddKGFjKXwwO2FjPWV8MDtjW0I+PjJdPWNbYWM+PjJdO2NbQz4+Ml09
Y1tmPj4yXTthaD1hW2FhXXwwO2lmKChhaCYxKT09MCl7YWo9YWErNHwwO2FrPWFhKzR8MH1lbHNl
e2FlPWNbYWErOD4+Ml18MDthaj1hZTthaz1hZX1hZT1haCYyNTU7aWYoKGFlJjF8MCk9PTApe2Fs
PWFlPj4+MX1lbHNle2FsPWNbYWErND4+Ml18MH1nUihBLGQsQixDLGcsaCxqLGFrLGFqKyhhbDw8
Mil8MCk7Y1thYz4+Ml09Y1tBPj4yXTticmVha307Y2FzZSA4NDp7YWM9ZXwwO2NbUz4+Ml09Y1th
Yz4+Ml07Y1tUPj4yXT1jW2Y+PjJdO2dSKFIsZCxTLFQsZyxoLGosMjE2MCwyMTkyKTtjW2FjPj4y
XT1jW1I+PjJdO2JyZWFrfTtjYXNlIDcwOnthYz1lfDA7Y1tIPj4yXT1jW2FjPj4yXTtjW0k+PjJd
PWNbZj4+Ml07Z1IoRyxkLEgsSSxnLGgsaiwyMTI4LDIxNjApO2NbYWM+PjJdPWNbRz4+Ml07YnJl
YWt9O2Nhc2UgNzI6e2NbdT4+Ml09Y1tmPj4yXTthYz1oYyhlLHUsaCxhYiwyKXwwO2FhPWNbaD4+
Ml18MDtpZigoYWEmNHwwKT09MCYoYWN8MCk8MjQpe2Nbais4Pj4yXT1hYzticmVhayBMMzE5Mn1l
bHNle2NbaD4+Ml09YWF8NDticmVhayBMMzE5Mn1icmVha307Y2FzZSAxMjE6e2Nbbj4+Ml09Y1tm
Pj4yXTthYT1oYyhlLG4saCxhYiw0KXwwO2lmKChjW2g+PjJdJjR8MCkhPTApe2JyZWFrIEwzMTky
fWlmKChhYXwwKTw2OSl7YW09YWErMmUzfDB9ZWxzZXthbT0oYWEtNjl8MCk+Pj4wPDMxP2FhKzE5
MDB8MDphYX1jW2orMjA+PjJdPWFtLTE5MDA7YnJlYWt9O2Nhc2UgMTA5OntjW3I+PjJdPWNbZj4+
Ml07YWE9KGhjKGUscixoLGFiLDIpfDApLTF8MDthYz1jW2g+PjJdfDA7aWYoKGFjJjR8MCk9PTAm
KGFhfDApPDEyKXtjW2orMTY+PjJdPWFhO2JyZWFrIEwzMTkyfWVsc2V7Y1toPj4yXT1hY3w0O2Jy
ZWFrIEwzMTkyfWJyZWFrfTtjYXNlIDczOnthYz1qKzh8MDtjW3Q+PjJdPWNbZj4+Ml07YWE9aGMo
ZSx0LGgsYWIsMil8MDthZT1jW2g+PjJdfDA7ZG97aWYoKGFlJjR8MCk9PTApe2lmKChhYS0xfDAp
Pj4+MD49MTIpe2JyZWFrfWNbYWM+PjJdPWFhO2JyZWFrIEwzMTkyfX13aGlsZSgwKTtjW2g+PjJd
PWFlfDQ7YnJlYWt9O2Nhc2UgNzc6e2NbcT4+Ml09Y1tmPj4yXTthYT1oYyhlLHEsaCxhYiwyKXww
O2FjPWNbaD4+Ml18MDtpZigoYWMmNHwwKT09MCYoYWF8MCk8NjApe2Nbais0Pj4yXT1hYTticmVh
ayBMMzE5Mn1lbHNle2NbaD4+Ml09YWN8NDticmVhayBMMzE5Mn1icmVha307Y2FzZSAxMTk6e2Nb
bz4+Ml09Y1tmPj4yXTthYz1oYyhlLG8saCxhYiwxKXwwO2FhPWNbaD4+Ml18MDtpZigoYWEmNHww
KT09MCYoYWN8MCk8Nyl7Y1tqKzI0Pj4yXT1hYzticmVhayBMMzE5Mn1lbHNle2NbaD4+Ml09YWF8
NDticmVhayBMMzE5Mn1icmVha307Y2FzZSAxMjA6e2FhPWNbKGNbZD4+Ml18MCkrMjA+PjJdfDA7
Y1tVPj4yXT1jW2U+PjJdO2NbVj4+Ml09Y1tmPj4yXTtiWFthYSYxMjddKGIsZCxVLFYsZyxoLGop
O2k9bDtyZXR1cm59O2RlZmF1bHQ6e2NbaD4+Ml09Y1toPj4yXXw0fX19d2hpbGUoMCk7Y1tiPj4y
XT1jW2U+PjJdO2k9bDtyZXR1cm59fXdoaWxlKDApO2w9Yk8oNCl8MDtrcShsKTtibChsfDAsODE3
NiwxMzQpfWZ1bmN0aW9uIGdYKGEsYixlLGYsZyxoKXthPWF8MDtiPWJ8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MDtqPWk7aT1pKzh8MDtrPWY7Zj1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2s+PjJdO2s9anwwO2w9YSs4fDA7YT1iMFtjWyhj
W2w+PjJdfDApKzg+PjJdJjEyN10obCl8MDtsPWRbYV18MDtpZigobCYxfDApPT0wKXttPWw+Pj4x
fWVsc2V7bT1jW2ErND4+Ml18MH1sPWRbYSsxMnwwXXwwO2lmKChsJjF8MCk9PTApe249bD4+PjF9
ZWxzZXtuPWNbYSsxNj4+Ml18MH1pZigobXwwKT09KC1ufDApKXtjW2c+PjJdPWNbZz4+Ml18NDtp
PWo7cmV0dXJufWNbaz4+Ml09Y1tmPj4yXTtmPWZTKGUsayxhLGErMjR8MCxoLGcsMCl8MDtnPWYt
YXwwO2Rve2lmKChmfDApPT0oYXwwKSl7aWYoKGNbYj4+Ml18MCkhPTEyKXticmVha31jW2I+PjJd
PTA7aT1qO3JldHVybn19d2hpbGUoMCk7aWYoKGd8MCkhPTEyKXtpPWo7cmV0dXJufWc9Y1tiPj4y
XXwwO2lmKChnfDApPj0xMil7aT1qO3JldHVybn1jW2I+PjJdPWcrMTI7aT1qO3JldHVybn0KLWZ1
bmN0aW9uIGdZKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9
MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wO2E9aTtnPWQ7ZD1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2c+PjJdO2c9YnwwO2I9Y1tnPj4yXXwwO2Rv
e2lmKChifDApPT0wKXtoPTF9ZWxzZXtqPWNbYisxMj4+Ml18MDtpZigoanwwKT09KGNbYisxNj4+
Ml18MCkpe2s9YjBbY1soY1tiPj4yXXwwKSszNj4+Ml0mMTI3XShiKXwwfWVsc2V7az1jW2o+PjJd
fDB9aWYoKGt8MCk9PS0xKXtjW2c+PjJdPTA7aD0xO2JyZWFrfWVsc2V7aD0oY1tnPj4yXXwwKT09
MDticmVha319fXdoaWxlKDApO2s9ZHwwO2Q9Y1trPj4yXXwwO2Rve2lmKChkfDApPT0wKXtsPTI3
MTZ9ZWxzZXtiPWNbZCsxMj4+Ml18MDtpZigoYnwwKT09KGNbZCsxNj4+Ml18MCkpe209YjBbY1so
Y1tkPj4yXXwwKSszNj4+Ml0mMTI3XShkKXwwfWVsc2V7bT1jW2I+PjJdfDB9aWYoKG18MCk9PS0x
KXtjW2s+PjJdPTA7bD0yNzE2O2JyZWFrfWVsc2V7Yj0oZHwwKT09MDtpZihoXmIpe249ZDtvPWI7
YnJlYWt9ZWxzZXtsPTI3MTg7YnJlYWt9fX19d2hpbGUoMCk7aWYoKGx8MCk9PTI3MTYpe2lmKGgp
e2w9MjcxOH1lbHNle249MDtvPTF9fWlmKChsfDApPT0yNzE4KXtjW2U+PjJdPWNbZT4+Ml18Njtp
PWE7cmV0dXJufWg9Y1tnPj4yXXwwO2Q9Y1toKzEyPj4yXXwwO2lmKChkfDApPT0oY1toKzE2Pj4y
XXwwKSl7cD1iMFtjWyhjW2g+PjJdfDApKzM2Pj4yXSYxMjddKGgpfDB9ZWxzZXtwPWNbZD4+Ml18
MH1pZigoYjFbY1soY1tmPj4yXXwwKSs1Mj4+Ml0mNjNdKGYscCwwKXwwKTw8MjQ+PjI0IT0zNyl7
Y1tlPj4yXT1jW2U+PjJdfDQ7aT1hO3JldHVybn1wPWNbZz4+Ml18MDtmPXArMTJ8MDtkPWNbZj4+
Ml18MDtpZigoZHwwKT09KGNbcCsxNj4+Ml18MCkpe2g9Y1soY1twPj4yXXwwKSs0MD4+Ml18MDti
MFtoJjEyN10ocCl8MH1lbHNle2NbZj4+Ml09ZCs0fWQ9Y1tnPj4yXXwwO2Rve2lmKChkfDApPT0w
KXtxPTF9ZWxzZXtmPWNbZCsxMj4+Ml18MDtpZigoZnwwKT09KGNbZCsxNj4+Ml18MCkpe3I9YjBb
Y1soY1tkPj4yXXwwKSszNj4+Ml0mMTI3XShkKXwwfWVsc2V7cj1jW2Y+PjJdfDB9aWYoKHJ8MCk9
PS0xKXtjW2c+PjJdPTA7cT0xO2JyZWFrfWVsc2V7cT0oY1tnPj4yXXwwKT09MDticmVha319fXdo
aWxlKDApO2Rve2lmKG8pe2w9Mjc0MH1lbHNle2c9Y1tuKzEyPj4yXXwwO2lmKChnfDApPT0oY1tu
KzE2Pj4yXXwwKSl7cz1iMFtjWyhjW24+PjJdfDApKzM2Pj4yXSYxMjddKG4pfDB9ZWxzZXtzPWNb
Zz4+Ml18MH1pZigoc3wwKT09LTEpe2Nbaz4+Ml09MDtsPTI3NDA7YnJlYWt9aWYoIShxXihufDAp
PT0wKSl7YnJlYWt9aT1hO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKGx8MCk9PTI3NDApe2lmKHEp
e2JyZWFrfWk9YTtyZXR1cm59fXdoaWxlKDApO2NbZT4+Ml09Y1tlPj4yXXwyO2k9YTtyZXR1cm59
ZnVuY3Rpb24gZ1ooYSl7YT1hfDA7cmV0dXJuIDEyN31mdW5jdGlvbiBnXyhhKXthPWF8MDtyZXR1
cm4gMTI3fWZ1bmN0aW9uIGckKGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGcwKGEpe2E9YXww
O3JldHVybiAxMjd9ZnVuY3Rpb24gZzEoYSl7YT1hfDA7cmV0dXJuIDEyN31mdW5jdGlvbiBnMihh
KXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBnMyhhKXthPWF8MDtyZXR1cm4gMjE0NzQ4MzY0N31m
dW5jdGlvbiBnNChhKXthPWF8MDtyZXR1cm4gMjE0NzQ4MzY0N31mdW5jdGlvbiBnNShhKXthPWF8
MDtyZXR1cm4gMH1mdW5jdGlvbiBnNihiLGMpe2I9YnwwO2M9Y3wwO2M9YjtDPTY3MTA5NjM0O2Fb
Y109QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1O0M9Qz4+ODthW2MrMnwwXT1DJjI1NTtDPUM+
Pjg7YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0aW9uIGc3KGIsYyl7Yj1ifDA7Yz1jfDA7Yz1i
O0M9NjcxMDk2MzQ7YVtjXT1DJjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYyNTU7Qz1DPj44O2FbYysy
fDBdPUMmMjU1O0M9Qz4+ODthW2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVuY3Rpb24gZzgoYixjKXti
PWJ8MDtjPWN8MDtjPWI7Qz02NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1
NTtDPUM+Pjg7YVtjKzJ8MF09QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5j
dGlvbiBnOShiLGMpe2I9YnwwO2M9Y3wwO2M9YjtDPTY3MTA5NjM0O2FbY109QyYyNTU7Qz1DPj44
O2FbYysxfDBdPUMmMjU1O0M9Qz4+ODthW2MrMnwwXT1DJjI1NTtDPUM+Pjg7YVtjKzN8MF09QyYy
NTU7cmV0dXJufWZ1bmN0aW9uIGhhKGIsYyl7Yj1ifDA7Yz1jfDA7Yz1iO0M9NjcxMDk2MzQ7YVtj
XT1DJjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYyNTU7Qz1DPj44O2FbYysyfDBdPUMmMjU1O0M9Qz4+
ODthW2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVuY3Rpb24gaGIoYixjKXtiPWJ8MDtjPWN8MDtjPWI7
Qz02NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8
MF09QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlvbiBoYyhhLGIsZCxl
LGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wO2c9aTtoPWI7Yj1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7Y1tiPj4yXT1jW2g+PjJdO2g9YXwwO2E9Y1toPj4yXXwwO2Rve2lmKChhfDApPT0wKXtqPTF9
ZWxzZXtrPWNbYSsxMj4+Ml18MDtpZigoa3wwKT09KGNbYSsxNj4+Ml18MCkpe2w9YjBbY1soY1th
Pj4yXXwwKSszNj4+Ml0mMTI3XShhKXwwfWVsc2V7bD1jW2s+PjJdfDB9aWYoKGx8MCk9PS0xKXtj
W2g+PjJdPTA7aj0xO2JyZWFrfWVsc2V7aj0oY1toPj4yXXwwKT09MDticmVha319fXdoaWxlKDAp
O2w9YnwwO2I9Y1tsPj4yXXwwO2Rve2lmKChifDApPT0wKXttPTI5fWVsc2V7YT1jW2IrMTI+PjJd
fDA7aWYoKGF8MCk9PShjW2IrMTY+PjJdfDApKXtuPWIwW2NbKGNbYj4+Ml18MCkrMzY+PjJdJjEy
N10oYil8MH1lbHNle249Y1thPj4yXXwwfWlmKChufDApPT0tMSl7Y1tsPj4yXT0wO209Mjk7YnJl
YWt9ZWxzZXtpZihqXihifDApPT0wKXtvPWI7YnJlYWt9ZWxzZXttPTMxO2JyZWFrfX19fXdoaWxl
KDApO2lmKChtfDApPT0yOSl7aWYoail7bT0zMX1lbHNle289MH19aWYoKG18MCk9PTMxKXtjW2Q+
PjJdPWNbZD4+Ml18NjtwPTA7aT1nO3JldHVybiBwfDB9aj1jW2g+PjJdfDA7Yj1jW2orMTI+PjJd
fDA7aWYoKGJ8MCk9PShjW2orMTY+PjJdfDApKXtxPWIwW2NbKGNbaj4+Ml18MCkrMzY+PjJdJjEy
N10oail8MH1lbHNle3E9Y1tiPj4yXXwwfWI9ZTtpZighKGIxW2NbKGNbYj4+Ml18MCkrMTI+PjJd
JjYzXShlLDIwNDgscSl8MCkpe2NbZD4+Ml09Y1tkPj4yXXw0O3A9MDtpPWc7cmV0dXJuIHB8MH1q
PWU7bj0oYjFbY1soY1tqPj4yXXwwKSs1Mj4+Ml0mNjNdKGUscSwwKXwwKTw8MjQ+PjI0O3E9Y1to
Pj4yXXwwO2E9cSsxMnwwO2s9Y1thPj4yXXwwO2lmKChrfDApPT0oY1txKzE2Pj4yXXwwKSl7cj1j
WyhjW3E+PjJdfDApKzQwPj4yXXwwO2IwW3ImMTI3XShxKXwwO3M9bjt0PWY7dT1vfWVsc2V7Y1th
Pj4yXT1rKzQ7cz1uO3Q9Zjt1PW99d2hpbGUoMSl7dj1zLTQ4fDA7bz10LTF8MDtmPWNbaD4+Ml18
MDtkb3tpZigoZnwwKT09MCl7dz0wfWVsc2V7bj1jW2YrMTI+PjJdfDA7aWYoKG58MCk9PShjW2Yr
MTY+PjJdfDApKXt4PWIwW2NbKGNbZj4+Ml18MCkrMzY+PjJdJjEyN10oZil8MH1lbHNle3g9Y1tu
Pj4yXXwwfWlmKCh4fDApPT0tMSl7Y1toPj4yXT0wO3c9MDticmVha31lbHNle3c9Y1toPj4yXXww
O2JyZWFrfX19d2hpbGUoMCk7Zj0od3wwKT09MDtpZigodXwwKT09MCl7eT13O3o9MH1lbHNle249
Y1t1KzEyPj4yXXwwO2lmKChufDApPT0oY1t1KzE2Pj4yXXwwKSl7QT1iMFtjWyhjW3U+PjJdfDAp
KzM2Pj4yXSYxMjddKHUpfDB9ZWxzZXtBPWNbbj4+Ml18MH1pZigoQXwwKT09LTEpe2NbbD4+Ml09
MDtCPTB9ZWxzZXtCPXV9eT1jW2g+PjJdfDA7ej1CfUM9KHp8MCk9PTA7aWYoISgoZl5DKSYob3ww
KT4wKSl7YnJlYWt9Zj1jW3krMTI+PjJdfDA7aWYoKGZ8MCk9PShjW3krMTY+PjJdfDApKXtEPWIw
W2NbKGNbeT4+Ml18MCkrMzY+PjJdJjEyN10oeSl8MH1lbHNle0Q9Y1tmPj4yXXwwfWlmKCEoYjFb
Y1soY1tiPj4yXXwwKSsxMj4+Ml0mNjNdKGUsMjA0OCxEKXwwKSl7cD12O209ODE7YnJlYWt9Zj0o
KGIxW2NbKGNbaj4+Ml18MCkrNTI+PjJdJjYzXShlLEQsMCl8MCk8PDI0Pj4yNCkrKHYqMTB8MCl8
MDtuPWNbaD4+Ml18MDtrPW4rMTJ8MDthPWNbaz4+Ml18MDtpZigoYXwwKT09KGNbbisxNj4+Ml18
MCkpe3E9Y1soY1tuPj4yXXwwKSs0MD4+Ml18MDtiMFtxJjEyN10obil8MDtzPWY7dD1vO3U9ejtj
b250aW51ZX1lbHNle2Nbaz4+Ml09YSs0O3M9Zjt0PW87dT16O2NvbnRpbnVlfX1pZigobXwwKT09
ODEpe2k9ZztyZXR1cm4gcHwwfWRve2lmKCh5fDApPT0wKXtFPTF9ZWxzZXt1PWNbeSsxMj4+Ml18
MDtpZigodXwwKT09KGNbeSsxNj4+Ml18MCkpe0Y9YjBbY1soY1t5Pj4yXXwwKSszNj4+Ml0mMTI3
XSh5KXwwfWVsc2V7Rj1jW3U+PjJdfDB9aWYoKEZ8MCk9PS0xKXtjW2g+PjJdPTA7RT0xO2JyZWFr
fWVsc2V7RT0oY1toPj4yXXwwKT09MDticmVha319fXdoaWxlKDApO2Rve2lmKEMpe209NzV9ZWxz
ZXtoPWNbeisxMj4+Ml18MDtpZigoaHwwKT09KGNbeisxNj4+Ml18MCkpe0c9YjBbY1soY1t6Pj4y
XXwwKSszNj4+Ml0mMTI3XSh6KXwwfWVsc2V7Rz1jW2g+PjJdfDB9aWYoKEd8MCk9PS0xKXtjW2w+
PjJdPTA7bT03NTticmVha31pZihFXih6fDApPT0wKXtwPXZ9ZWxzZXticmVha31pPWc7cmV0dXJu
IHB8MH19d2hpbGUoMCk7ZG97aWYoKG18MCk9PTc1KXtpZihFKXticmVha31lbHNle3A9dn1pPWc7
cmV0dXJuIHB8MH19d2hpbGUoMCk7Y1tkPj4yXT1jW2Q+PjJdfDI7cD12O2k9ZztyZXR1cm4gcHww
fWZ1bmN0aW9uIGhkKGIsZCxlLGYsZyxoLGosayl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTA7Zz1pO2k9aSsxMTJ8MDtmPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tl
Pj4yXT1jW2Y+PjJdO2Y9Z3wwO2w9Zys4fDA7bT1sfDA7bj1mfDA7YVtuXT0zNztvPWYrMXwwO2Fb
b109ajtwPWYrMnwwO2FbcF09azthW2YrM3wwXT0wO2lmKGs8PDI0Pj4yNCE9MCl7YVtvXT1rO2Fb
cF09an1qPWJrKG18MCwxMDAsbnwwLGh8MCxjW2QrOD4+Ml18MCl8MDtkPWwranwwO2w9Y1tlPj4y
XXwwO2lmKChqfDApPT0wKXtxPWw7cj1ifDA7Y1tyPj4yXT1xO2k9ZztyZXR1cm59ZWxzZXtzPWw7
dD1tfXdoaWxlKDEpe209YVt0XXwwO2lmKChzfDApPT0wKXt1PTB9ZWxzZXtsPXMrMjR8MDtqPWNb
bD4+Ml18MDtpZigoanwwKT09KGNbcysyOD4+Ml18MCkpe3Y9Yl9bY1soY1tzPj4yXXwwKSs1Mj4+
Ml0mMzFdKHMsbSYyNTUpfDB9ZWxzZXtjW2w+PjJdPWorMTthW2pdPW07dj1tJjI1NX11PSh2fDAp
PT0tMT8wOnN9bT10KzF8MDtpZigobXwwKT09KGR8MCkpe3E9dTticmVha31lbHNle3M9dTt0PW19
fXI9YnwwO2Nbcj4+Ml09cTtpPWc7cmV0dXJufWZ1bmN0aW9uIGhlKGEsYixkLGUsZixnLGgsail7
YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxs
PTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7Zj1pO2k9aSs0MDh8MDtlPWQ7ZD1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2U+PjJdO2U9ZnwwO2s9Zis0MDB8MDtsPWV8MDtjW2s+PjJd
PWUrNDAwO2hDKGIrOHwwLGwsayxnLGgsaik7aj1jW2s+PjJdfDA7az1jW2Q+PjJdfDA7aWYoKGx8
MCk9PShqfDApKXttPWs7bj1hfDA7Y1tuPj4yXT1tO2k9ZjtyZXR1cm59ZWxzZXtvPWs7cD1sfXdo
aWxlKDEpe2w9Y1twPj4yXXwwO2lmKChvfDApPT0wKXtxPTB9ZWxzZXtrPW8rMjR8MDtkPWNbaz4+
Ml18MDtpZigoZHwwKT09KGNbbysyOD4+Ml18MCkpe3I9Yl9bY1soY1tvPj4yXXwwKSs1Mj4+Ml0m
MzFdKG8sbCl8MH1lbHNle2Nbaz4+Ml09ZCs0O2NbZD4+Ml09bDtyPWx9cT0ocnwwKT09LTE/MDpv
fWw9cCs0fDA7aWYoKGx8MCk9PShqfDApKXttPXE7YnJlYWt9ZWxzZXtvPXE7cD1sfX1uPWF8MDtj
W24+PjJdPW07aT1mO3JldHVybn1mdW5jdGlvbiBoZihhKXthPWF8MDtkZShhfDApO2tTKGEpO3Jl
dHVybn1mdW5jdGlvbiBoZyhhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBoaChhLGIp
e2E9YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24gaGkoYSxiKXthPWF8MDti
PWJ8MDtrJChhfDAsMCwxMik7cmV0dXJufWZ1bmN0aW9uIGhqKGEsYil7YT1hfDA7Yj1ifDA7ayQo
YXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBoayhhLGIpe2E9YXwwO2I9YnwwO2RfKGEsMSw0NSk7
cmV0dXJufWZ1bmN0aW9uIGhsKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9u
IGhtKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGhuKGEsYil7YT1hfDA7Yj1ifDA7
ayQoYXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBobyhhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCww
LDEyKTtyZXR1cm59ZnVuY3Rpb24gaHAoYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7cmV0
dXJufWZ1bmN0aW9uIGhxKGEsYil7YT1hfDA7Yj1ifDA7ZF8oYSwxLDQ1KTtyZXR1cm59ZnVuY3Rp
b24gaHIoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaHMoYSl7YT1hfDA7
ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaHQoYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7
cmV0dXJufWZ1bmN0aW9uIGh1KGEsYil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIpO3JldHVybn1m
dW5jdGlvbiBodihhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24g
aHcoYSxiKXthPWF8MDtiPWJ8MDtleShhLDEsNDUpO3JldHVybn1mdW5jdGlvbiBoeChhKXthPWF8
MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBoeShiKXtiPWJ8MDt2YXIgZD0wLGU9MCxm
PTAsZz0wO2Q9YjtlPWIrOHwwO2Y9Y1tlPj4yXXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYo
KGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7
aWYoKGZ8MCk9PShjWzI5NThdfDApKXtnPWJ8MDtkZShnKTtrUyhkKTtyZXR1cm59YTcoY1tlPj4y
XXwwKTtnPWJ8MDtkZShnKTtrUyhkKTtyZXR1cm59ZnVuY3Rpb24gaHooYil7Yj1ifDA7dmFyIGQ9
MCxlPTAsZj0wO2Q9Yis4fDA7ZT1jW2Q+PjJdfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigo
YmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtp
ZigoZXwwKT09KGNbMjk1OF18MCkpe2Y9YnwwO2RlKGYpO3JldHVybn1hNyhjW2Q+PjJdfDApO2Y9
YnwwO2RlKGYpO3JldHVybn1mdW5jdGlvbiBoQShiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0w
O2Q9YjtlPWIrOHwwO2Y9Y1tlPj4yXXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2
MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7aWYoKGZ8
MCk9PShjWzI5NThdfDApKXtnPWJ8MDtkZShnKTtrUyhkKTtyZXR1cm59YTcoY1tlPj4yXXwwKTtn
PWJ8MDtkZShnKTtrUyhkKTtyZXR1cm59ZnVuY3Rpb24gaEIoYil7Yj1ifDA7dmFyIGQ9MCxlPTAs
Zj0wO2Q9Yis4fDA7ZT1jW2Q+PjJdfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYy
NjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtpZigoZXww
KT09KGNbMjk1OF18MCkpe2Y9YnwwO2RlKGYpO3JldHVybn1hNyhjW2Q+PjJdfDApO2Y9YnwwO2Rl
KGYpO3JldHVybn1mdW5jdGlvbiBoQyhiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTA7aj1pO2k9
aSsxMjB8MDtrPWp8MDtsPWorMTEyfDA7bT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7bj1qKzh8MDtv
PWt8MDthW29dPTM3O3A9aysxfDA7YVtwXT1nO3E9aysyfDA7YVtxXT1oO2FbayszfDBdPTA7aWYo
aDw8MjQ+PjI0IT0wKXthW3BdPWg7YVtxXT1nfWc9YnwwO2JrKG58MCwxMDAsb3wwLGZ8MCxjW2c+
PjJdfDApfDA7Y1tsPj4yXT0wO2NbbCs0Pj4yXT0wO2NbbT4+Ml09bjtuPShjW2U+PjJdfDApLWQ+
PjI7Zj1iQihjW2c+PjJdfDApfDA7Zz1rZShkLG0sbixsKXwwO2lmKChmfDApIT0wKXtiQihmfDAp
fDB9aWYoKGd8MCk9PS0xKXtoVig5MDQpfWVsc2V7Y1tlPj4yXT1kKyhnPDwyKTtpPWo7cmV0dXJu
fX1mdW5jdGlvbiBoRChhKXthPWF8MDtyZXR1cm4gMjE0NzQ4MzY0N31mdW5jdGlvbiBoRShhKXth
PWF8MDtyZXR1cm4gMjE0NzQ4MzY0N31mdW5jdGlvbiBoRihhKXthPWF8MDtyZXR1cm4gMH1mdW5j
dGlvbiBoRyhhKXthPWF8MDtyZXR1cm59ZnVuY3Rpb24gaEgoYixjKXtiPWJ8MDtjPWN8MDtjPWI7
Qz02NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8
MF09QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlvbiBoSShiLGMpe2I9
YnwwO2M9Y3wwO2M9YjtDPTY3MTA5NjM0O2FbY109QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1
O0M9Qz4+ODthW2MrMnwwXT1DJjI1NTtDPUM+Pjg7YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0
aW9uIGhKKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGhLKGEsYil7YT1hfDA7Yj1i
fDA7ayQoYXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBoTChhLGIpe2E9YXwwO2I9YnwwO2skKGF8
MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24gaE0oYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7
cmV0dXJufWZ1bmN0aW9uIGhOKGEsYil7YT1hfDA7Yj1ifDA7ZXkoYSwxLDQ1KTtyZXR1cm59ZnVu
Y3Rpb24gaE8oYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaFAoYSl7YT1h
fDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaFEoYixkLGUsZixnLGgsaixrKXtiPWJ8MDtkPWR8
MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAs
RD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxS
PTAsUz0wO2Q9aTtpPWkrMjgwfDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09
Y1tsPj4yXTtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZHww
O209ZCsxNnwwO249ZCsxMjB8MDtvPWQrMTI4fDA7cD1kKzEzNnwwO3E9ZCsxNDR8MDtyPWQrMTUy
fDA7cz1kKzE2MHwwO3Q9ZCsxNzZ8MDt1PW58MDtjW3U+PjJdPW07dj1uKzR8MDtjW3Y+PjJdPTE2
Njt3PW0rMTAwfDA7ZWoocCxoKTttPXB8MDt4PWNbbT4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEp
e2NbbD4+Ml09MTU2OTY7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2LGwsOTYpfWw9
KGNbMzkyNV18MCktMXwwO3k9Y1t4Kzg+PjJdfDA7ZG97aWYoKGNbeCsxMj4+Ml18MCkteT4+Mj4+
PjA+bD4+PjApe3o9Y1t5KyhsPDwyKT4+Ml18MDtpZigoenwwKT09MCl7YnJlYWt9QT16O2FbcV09
MDtCPWZ8MDtjW3I+PjJdPWNbQj4+Ml07ZG97aWYoaFIoZSxyLGcscCxjW2grND4+Ml18MCxqLHEs
QSxuLG8sdyl8MCl7Qz1zfDA7RD1jWyhjW3o+PjJdfDApKzMyPj4yXXwwO2NhW0QmMTVdKEEsMjEx
MiwyMTIyLEMpfDA7RD10fDA7RT1jW28+PjJdfDA7Rj1jW3U+PjJdfDA7Rz1FLUZ8MDtkb3tpZigo
R3wwKT45OCl7SD1rSihHKzJ8MCl8MDtpZigoSHwwKSE9MCl7ST1IO0o9SDticmVha31rWCgpO0k9
MDtKPTB9ZWxzZXtJPUQ7Sj0wfX13aGlsZSgwKTtpZigoYVtxXSYxKT09MCl7Sz1JfWVsc2V7YVtJ
XT00NTtLPUkrMXwwfWlmKEY+Pj4wPEU+Pj4wKXtHPXMrMTB8MDtIPXM7TD1LO009Rjt3aGlsZSgx
KXtOPUM7d2hpbGUoMSl7aWYoKE58MCk9PShHfDApKXtPPUc7YnJlYWt9aWYoKGFbTl18MCk9PShh
W01dfDApKXtPPU47YnJlYWt9ZWxzZXtOPU4rMXwwfX1hW0xdPWFbMjExMisoTy1IKXwwXXwwO049
TSsxfDA7UD1MKzF8MDtpZihOPj4+MDwoY1tvPj4yXXwwKT4+PjApe0w9UDtNPU59ZWxzZXtRPVA7
YnJlYWt9fX1lbHNle1E9S31hW1FdPTA7TT1iRChEfDAsMTQwOCwoTD1pLGk9aSs4fDAsY1tMPj4y
XT1rLEwpfDApfDA7aT1MO2lmKChNfDApPT0xKXtpZigoSnwwKT09MCl7YnJlYWt9a0soSik7YnJl
YWt9TT1iTyg4KXwwO2RFKE0sMTM2OCk7YmwoTXwwLDgxOTIsMjIpfX13aGlsZSgwKTtBPWV8MDt6
PWNbQT4+Ml18MDtkb3tpZigoenwwKT09MCl7Uj0wfWVsc2V7aWYoKGNbeisxMj4+Ml18MCkhPShj
W3orMTY+PjJdfDApKXtSPXo7YnJlYWt9aWYoKGIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10o
eil8MCkhPS0xKXtSPXo7YnJlYWt9Y1tBPj4yXT0wO1I9MH19d2hpbGUoMCk7QT0oUnwwKT09MDt6
PWNbQj4+Ml18MDtkb3tpZigoenwwKT09MCl7Uz0yNDR9ZWxzZXtpZigoY1t6KzEyPj4yXXwwKSE9
KGNbeisxNj4+Ml18MCkpe2lmKEEpe2JyZWFrfWVsc2V7Uz0yNDY7YnJlYWt9fWlmKChiMFtjWyhj
W3o+PjJdfDApKzM2Pj4yXSYxMjddKHopfDApPT0tMSl7Y1tCPj4yXT0wO1M9MjQ0O2JyZWFrfWVs
c2V7aWYoQV4oenwwKT09MCl7YnJlYWt9ZWxzZXtTPTI0NjticmVha319fX13aGlsZSgwKTtpZigo
U3wwKT09MjQ0KXtpZihBKXtTPTI0Nn19aWYoKFN8MCk9PTI0Nil7Y1tqPj4yXT1jW2o+PjJdfDJ9
Y1tiPj4yXT1SO3o9Y1ttPj4yXXwwO2R6KHopfDA7ej1jW3U+PjJdfDA7Y1t1Pj4yXT0wO2lmKCh6
fDApPT0wKXtpPWQ7cmV0dXJufWJZW2Nbdj4+Ml0mNTExXSh6KTtpPWQ7cmV0dXJufX13aGlsZSgw
KTtkPWJPKDQpfDA7a3EoZCk7YmwoZHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBoUihlLGYsZyxoLGos
ayxsLG0sbixvLHApe2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209
bXwwO249bnwwO289b3wwO3A9cHwwO3ZhciBxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAs
TT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxf
PTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAs
YWs9MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFzPTAsYXQ9MCxhdT0wLGF2
PTAsYXc9MCxheD0wLGF5PTAsYXo9MCxhQT0wLGFCPTAsYUM9MCxhRD0wLGFFPTAsYUY9MCxhRz0w
LGFIPTAsYUk9MCxhSj0wLGFLPTAsYUw9MCxhTT0wLGFOPTAsYU89MCxhUD0wLGFRPTAsYVI9MCxh
Uz0wLGFUPTAsYVU9MCxhVj0wLGFXPTAsYVg9MCxhWT0wLGFaPTAsYV89MCxhJD0wLGEwPTAsYTE9
MCxhMj0wLGEzPTAsYTQ9MCxhNT0wLGE2PTAsYTc9MCxhOD0wLGE5PTAsYmE9MCxiYj0wLGJjPTAs
YmQ9MCxiZT0wLGJmPTAsYmc9MCxiaD0wLGJpPTAsYmo9MCxiaz0wLGJsPTAsYm09MCxibj0wLGJv
PTAsYnA9MCxicT0wLGJyPTAsYnM9MCxidD0wLGJ1PTAsYnY9MCxidz0wLGJ4PTAsYnk9MCxiej0w
LGJBPTAsYkI9MCxiQz0wLGJEPTAsYkU9MDtxPWk7aT1pKzQ0MHwwO3I9ZjtmPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2Y+PjJdPWNbcj4+Ml07cj1xfDA7cz1xKzQwMHwwO3Q9cSs0MDh8MDt1PXEr
NDE2fDA7dj1xKzQyNHwwO3c9djt4PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7eT1pO2k9aSsxMnww
O2k9aSs3Pj4zPDwzO3o9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztBPWk7aT1pKzEyfDA7aT1pKzc+
PjM8PDM7Qj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7RD1y
fDA7ayQod3wwLDAsMTIpO0U9eDtGPXk7Rz16O0g9QTtrJChFfDAsMCwxMik7ayQoRnwwLDAsMTIp
O2skKEd8MCwwLDEyKTtrJChIfDAsMCwxMik7aFgoZyxoLHMsdCx1LHYseCx5LHosQik7aD1ufDA7
Y1tvPj4yXT1jW2g+PjJdO2c9ZXwwO2U9ZnwwO2Y9bSs4fDA7bT16KzF8MDtJPXorNHwwO0o9eis4
fDA7Sz15KzF8MDtMPXkrNHwwO009eSs4fDA7Tj0oaiY1MTJ8MCkhPTA7aj14KzF8MDtPPXgrNHww
O1A9eCs4fDA7UT1BKzF8MDtSPUErNHwwO1M9QSs4fDA7VD1zKzN8MDtVPW4rNHwwO249dis0fDA7
Vj1wO3A9MTY2O1c9RDtYPUQ7RD1yKzQwMHwwO3I9MDtZPTA7TDI4Njp3aGlsZSgxKXtaPWNbZz4+
Ml18MDtkb3tpZigoWnwwKT09MCl7Xz0wfWVsc2V7aWYoKGNbWisxMj4+Ml18MCkhPShjW1orMTY+
PjJdfDApKXtfPVo7YnJlYWt9aWYoKGIwW2NbKGNbWj4+Ml18MCkrMzY+PjJdJjEyN10oWil8MCk9
PS0xKXtjW2c+PjJdPTA7Xz0wO2JyZWFrfWVsc2V7Xz1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgw
KTtaPShffDApPT0wOyQ9Y1tlPj4yXXwwO2Rve2lmKCgkfDApPT0wKXthYT0yNzF9ZWxzZXtpZigo
Y1skKzEyPj4yXXwwKSE9KGNbJCsxNj4+Ml18MCkpe2lmKFope2FiPSQ7YnJlYWt9ZWxzZXthYz1w
O2FkPVc7YWU9WDthZj1yO2FhPTUyMzticmVhayBMMjg2fX1pZigoYjBbY1soY1skPj4yXXwwKSsz
Nj4+Ml0mMTI3XSgkKXwwKT09LTEpe2NbZT4+Ml09MDthYT0yNzE7YnJlYWt9ZWxzZXtpZihaKXth
Yj0kO2JyZWFrfWVsc2V7YWM9cDthZD1XO2FlPVg7YWY9cjthYT01MjM7YnJlYWsgTDI4Nn19fX13
aGlsZSgwKTtpZigoYWF8MCk9PTI3MSl7YWE9MDtpZihaKXthYz1wO2FkPVc7YWU9WDthZj1yO2Fh
PTUyMzticmVha31lbHNle2FiPTB9fUwzMDg6ZG97c3dpdGNoKGFbcytZfDBdfDApe2Nhc2UgMTp7
aWYoKFl8MCk9PTMpe2FjPXA7YWQ9VzthZT1YO2FmPXI7YWE9NTIzO2JyZWFrIEwyODZ9JD1jW2c+
PjJdfDA7YWc9Y1skKzEyPj4yXXwwO2lmKChhZ3wwKT09KGNbJCsxNj4+Ml18MCkpe2FoPShiMFtj
WyhjWyQ+PjJdfDApKzM2Pj4yXSYxMjddKCQpfDApJjI1NX1lbHNle2FoPWFbYWddfDB9aWYoYWg8
PDI0Pj4yNDw9LTEpe2FhPTI5NjticmVhayBMMjg2fWlmKChiWyhjW2Y+PjJdfDApKyhhaDw8MjQ+
PjI0PDwxKT4+MV0mODE5Mik9PTApe2FhPTI5NjticmVhayBMMjg2fWFnPWNbZz4+Ml18MDskPWFn
KzEyfDA7YWk9Y1skPj4yXXwwO2lmKChhaXwwKT09KGNbYWcrMTY+PjJdfDApKXthaj0oYjBbY1so
Y1thZz4+Ml18MCkrNDA+PjJdJjEyN10oYWcpfDApJjI1NX1lbHNle2NbJD4+Ml09YWkrMTthaj1h
W2FpXXwwfWRVKEEsYWopO2FhPTI5NzticmVha307Y2FzZSAzOnthaT1hW0ZdfDA7JD1haSYyNTU7
YWc9KCQmMXwwKT09MD8kPj4+MTpjW0w+PjJdfDA7JD1hW0ddfDA7YWs9JCYyNTU7YWw9KGFrJjF8
MCk9PTA/YWs+Pj4xOmNbST4+Ml18MDtpZigoYWd8MCk9PSgtYWx8MCkpe2FtPXI7YW49RDthbz1Y
O2FwPVc7YXE9cDthcj1WO2JyZWFrIEwzMDh9YWs9KGFnfDApPT0wO2FnPWNbZz4+Ml18MDthcz1j
W2FnKzEyPj4yXXwwO2F0PWNbYWcrMTY+PjJdfDA7YXU9KGFzfDApPT0oYXR8MCk7aWYoIShha3wo
YWx8MCk9PTApKXtpZihhdSl7YWw9KGIwW2NbKGNbYWc+PjJdfDApKzM2Pj4yXSYxMjddKGFnKXww
KSYyNTU7YXY9Y1tnPj4yXXwwO2F3PWFsO2F4PWFbRl18MDtheT1hdjthej1jW2F2KzEyPj4yXXww
O2FBPWNbYXYrMTY+PjJdfDB9ZWxzZXthdz1hW2FzXXwwO2F4PWFpO2F5PWFnO2F6PWFzO2FBPWF0
fWF0PWF5KzEyfDA7YXY9KGF6fDApPT0oYUF8MCk7aWYoYXc8PDI0Pj4yND09KGFbKGF4JjEpPT0w
P0s6Y1tNPj4yXXwwXXwwKSl7aWYoYXYpe2FsPWNbKGNbYXk+PjJdfDApKzQwPj4yXXwwO2IwW2Fs
JjEyN10oYXkpfDB9ZWxzZXtjW2F0Pj4yXT1heisxfWF0PWRbRl18MDthbT0oKGF0JjF8MCk9PTA/
YXQ+Pj4xOmNbTD4+Ml18MCk+Pj4wPjE/eTpyO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVh
ayBMMzA4fWlmKGF2KXthQj0oYjBbY1soY1theT4+Ml18MCkrMzY+PjJdJjEyN10oYXkpfDApJjI1
NX1lbHNle2FCPWFbYXpdfDB9aWYoYUI8PDI0Pj4yNCE9KGFbKGFbR10mMSk9PTA/bTpjW0o+PjJd
fDBdfDApKXthYT0zNjM7YnJlYWsgTDI4Nn1hdj1jW2c+PjJdfDA7YXQ9YXYrMTJ8MDthbD1jW2F0
Pj4yXXwwO2lmKChhbHwwKT09KGNbYXYrMTY+PjJdfDApKXthQz1jWyhjW2F2Pj4yXXwwKSs0MD4+
Ml18MDtiMFthQyYxMjddKGF2KXwwfWVsc2V7Y1thdD4+Ml09YWwrMX1hW2xdPTE7YWw9ZFtHXXww
O2FtPSgoYWwmMXwwKT09MD9hbD4+PjE6Y1tJPj4yXXwwKT4+PjA+MT96OnI7YW49RDthbz1YO2Fw
PVc7YXE9cDthcj1WO2JyZWFrIEwzMDh9aWYoYWspe2lmKGF1KXthaz0oYjBbY1soY1thZz4+Ml18
MCkrMzY+PjJdJjEyN10oYWcpfDApJjI1NTthRD1hazthRT1hW0ddfDB9ZWxzZXthRD1hW2FzXXww
O2FFPSR9aWYoYUQ8PDI0Pj4yNCE9KGFbKGFFJjEpPT0wP206Y1tKPj4yXXwwXXwwKSl7YW09cjth
bj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDMwOH0kPWNbZz4+Ml18MDthaz0kKzEyfDA7
YWw9Y1thaz4+Ml18MDtpZigoYWx8MCk9PShjWyQrMTY+PjJdfDApKXthdD1jWyhjWyQ+PjJdfDAp
KzQwPj4yXXwwO2IwW2F0JjEyN10oJCl8MH1lbHNle2NbYWs+PjJdPWFsKzF9YVtsXT0xO2FsPWRb
R118MDthbT0oKGFsJjF8MCk9PTA/YWw+Pj4xOmNbST4+Ml18MCk+Pj4wPjE/ejpyO2FuPUQ7YW89
WDthcD1XO2FxPXA7YXI9VjticmVhayBMMzA4fWlmKGF1KXthdT0oYjBbY1soY1thZz4+Ml18MCkr
MzY+PjJdJjEyN10oYWcpfDApJjI1NTthRj1hdTthRz1hW0ZdfDB9ZWxzZXthRj1hW2FzXXwwO2FH
PWFpfWlmKGFGPDwyND4+MjQhPShhWyhhRyYxKT09MD9LOmNbTT4+Ml18MF18MCkpe2FbbF09MTth
bT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMMzA4fWFpPWNbZz4+Ml18MDthcz1h
aSsxMnwwO2F1PWNbYXM+PjJdfDA7aWYoKGF1fDApPT0oY1thaSsxNj4+Ml18MCkpe2FnPWNbKGNb
YWk+PjJdfDApKzQwPj4yXXwwO2IwW2FnJjEyN10oYWkpfDB9ZWxzZXtjW2FzPj4yXT1hdSsxfWF1
PWRbRl18MDthbT0oKGF1JjF8MCk9PTA/YXU+Pj4xOmNbTD4+Ml18MCk+Pj4wPjE/eTpyO2FuPUQ7
YW89WDthcD1XO2FxPXA7YXI9VjticmVha307Y2FzZSAwOnthYT0yOTc7YnJlYWt9O2Nhc2UgMjp7
aWYoISgocnwwKSE9MHxZPj4+MDwyKSl7aWYoKFl8MCk9PTIpe2FIPShhW1RdfDApIT0wfWVsc2V7
YUg9MH1pZighKE58YUgpKXthbT0wO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMMzA4
fX1hdT1hW0VdfDA7YXM9KGF1JjEpPT0wP2o6Y1tQPj4yXXwwO0wzODI6ZG97aWYoKFl8MCk9PTAp
e2FJPWFzfWVsc2V7aWYoKGRbcysoWS0xKXwwXXwwKT49Mil7YUk9YXM7YnJlYWt9YWk9YXUmMjU1
O2FnPWFzKygoYWkmMXwwKT09MD9haT4+PjE6Y1tPPj4yXXwwKXwwO2FpPWFzO3doaWxlKDEpe2lm
KChhaXwwKT09KGFnfDApKXthSj1hZzticmVha31hbD1hW2FpXXwwO2lmKGFsPDwyND4+MjQ8PS0x
KXthSj1haTticmVha31pZigoYlsoY1tmPj4yXXwwKSsoYWw8PDI0Pj4yNDw8MSk+PjFdJjgxOTIp
PT0wKXthSj1haTticmVha31lbHNle2FpPWFpKzF8MH19YWk9YUotYXN8MDthZz1hW0hdfDA7YWw9
YWcmMjU1O2FrPShhbCYxfDApPT0wP2FsPj4+MTpjW1I+PjJdfDA7aWYoYWk+Pj4wPmFrPj4+MCl7
YUk9YXM7YnJlYWt9YWw9KGFnJjEpPT0wP1E6Y1tTPj4yXXwwO2FnPWFsK2FrfDA7aWYoKGFKfDAp
PT0oYXN8MCkpe2FJPWFzO2JyZWFrfSQ9YXM7YXQ9YWwrKGFrLWFpKXwwO3doaWxlKDEpe2lmKChh
W2F0XXwwKSE9KGFbJF18MCkpe2FJPWFzO2JyZWFrIEwzODJ9YWk9YXQrMXwwO2lmKChhaXwwKT09
KGFnfDApKXthST1hSjticmVha31lbHNleyQ9JCsxfDA7YXQ9YWl9fX19d2hpbGUoMCk7YXQ9YXUm
MjU1O0wzOTY6ZG97aWYoKGFJfDApPT0oYXMrKChhdCYxfDApPT0wP2F0Pj4+MTpjW08+PjJdfDAp
fDApKXthSz1hSX1lbHNleyQ9YWI7YWc9YUk7d2hpbGUoMSl7YWk9Y1tnPj4yXXwwO2Rve2lmKChh
aXwwKT09MCl7YUw9MH1lbHNle2lmKChjW2FpKzEyPj4yXXwwKSE9KGNbYWkrMTY+PjJdfDApKXth
TD1haTticmVha31pZigoYjBbY1soY1thaT4+Ml18MCkrMzY+PjJdJjEyN10oYWkpfDApPT0tMSl7
Y1tnPj4yXT0wO2FMPTA7YnJlYWt9ZWxzZXthTD1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTth
aT0oYUx8MCk9PTA7ZG97aWYoKCR8MCk9PTApe2FhPTM5Mn1lbHNle2lmKChjWyQrMTI+PjJdfDAp
IT0oY1skKzE2Pj4yXXwwKSl7aWYoYWkpe2FNPSQ7YnJlYWt9ZWxzZXthSz1hZzticmVhayBMMzk2
fX1pZigoYjBbY1soY1skPj4yXXwwKSszNj4+Ml0mMTI3XSgkKXwwKT09LTEpe2NbZT4+Ml09MDth
YT0zOTI7YnJlYWt9ZWxzZXtpZihhaSl7YU09JDticmVha31lbHNle2FLPWFnO2JyZWFrIEwzOTZ9
fX19d2hpbGUoMCk7aWYoKGFhfDApPT0zOTIpe2FhPTA7aWYoYWkpe2FLPWFnO2JyZWFrIEwzOTZ9
ZWxzZXthTT0wfX1haz1jW2c+PjJdfDA7YWw9Y1thaysxMj4+Ml18MDtpZigoYWx8MCk9PShjW2Fr
KzE2Pj4yXXwwKSl7YU49KGIwW2NbKGNbYWs+PjJdfDApKzM2Pj4yXSYxMjddKGFrKXwwKSYyNTV9
ZWxzZXthTj1hW2FsXXwwfWlmKGFOPDwyND4+MjQhPShhW2FnXXwwKSl7YUs9YWc7YnJlYWsgTDM5
Nn1hbD1jW2c+PjJdfDA7YWs9YWwrMTJ8MDthdj1jW2FrPj4yXXwwO2lmKChhdnwwKT09KGNbYWwr
MTY+PjJdfDApKXthQz1jWyhjW2FsPj4yXXwwKSs0MD4+Ml18MDtiMFthQyYxMjddKGFsKXwwfWVs
c2V7Y1thaz4+Ml09YXYrMX1hdj1hZysxfDA7YWs9YVtFXXwwO2FsPWFrJjI1NTtpZigoYXZ8MCk9
PSgoKGFrJjEpPT0wP2o6Y1tQPj4yXXwwKSsoKGFsJjF8MCk9PTA/YWw+Pj4xOmNbTz4+Ml18MCl8
MCkpe2FLPWF2O2JyZWFrfWVsc2V7JD1hTTthZz1hdn19fX13aGlsZSgwKTtpZighTil7YW09cjth
bj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDMwOH1hdD1hW0VdfDA7YXM9YXQmMjU1O2lm
KChhS3wwKT09KCgoYXQmMSk9PTA/ajpjW1A+PjJdfDApKygoYXMmMXwwKT09MD9hcz4+PjE6Y1tP
Pj4yXXwwKXwwKSl7YW09cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVZ9ZWxzZXthYT00MDU7YnJl
YWsgTDI4Nn1icmVha307Y2FzZSA0Onthcz0wO2F0PUQ7YXU9WDthZz1XOyQ9cDthdj1WO0w0MzE6
d2hpbGUoMSl7YWw9Y1tnPj4yXXwwO2Rve2lmKChhbHwwKT09MCl7YU89MH1lbHNle2lmKChjW2Fs
KzEyPj4yXXwwKSE9KGNbYWwrMTY+PjJdfDApKXthTz1hbDticmVha31pZigoYjBbY1soY1thbD4+
Ml18MCkrMzY+PjJdJjEyN10oYWwpfDApPT0tMSl7Y1tnPj4yXT0wO2FPPTA7YnJlYWt9ZWxzZXth
Tz1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTthbD0oYU98MCk9PTA7YWs9Y1tlPj4yXXwwO2Rv
e2lmKChha3wwKT09MCl7YWE9NDE4fWVsc2V7aWYoKGNbYWsrMTI+PjJdfDApIT0oY1thaysxNj4+
Ml18MCkpe2lmKGFsKXticmVha31lbHNle2JyZWFrIEw0MzF9fWlmKChiMFtjWyhjW2FrPj4yXXww
KSszNj4+Ml0mMTI3XShhayl8MCk9PS0xKXtjW2U+PjJdPTA7YWE9NDE4O2JyZWFrfWVsc2V7aWYo
YWwpe2JyZWFrfWVsc2V7YnJlYWsgTDQzMX19fX13aGlsZSgwKTtpZigoYWF8MCk9PTQxOCl7YWE9
MDtpZihhbCl7YnJlYWt9fWFrPWNbZz4+Ml18MDthQz1jW2FrKzEyPj4yXXwwO2lmKChhQ3wwKT09
KGNbYWsrMTY+PjJdfDApKXthUD0oYjBbY1soY1thaz4+Ml18MCkrMzY+PjJdJjEyN10oYWspfDAp
JjI1NX1lbHNle2FQPWFbYUNdfDB9ZG97aWYoYVA8PDI0Pj4yND4tMSl7aWYoKGJbKGNbZj4+Ml18
MCkrKGFQPDwyND4+MjQ8PDEpPj4xXSYyMDQ4KT09MCl7YWE9NDM3O2JyZWFrfWFDPWNbbz4+Ml18
MDtpZigoYUN8MCk9PShhdnwwKSl7YWs9KGNbVT4+Ml18MCkhPTE2NjthUT1jW2g+PjJdfDA7YVI9
YXYtYVF8MDthUz1hUj4+PjA8MjE0NzQ4MzY0Nz9hUjw8MTotMTthVD1rTChhaz9hUTowLGFTKXww
O2lmKChhVHwwKT09MCl7a1goKX1kb3tpZihhayl7Y1toPj4yXT1hVDthVT1hVH1lbHNle2FRPWNb
aD4+Ml18MDtjW2g+PjJdPWFUO2lmKChhUXwwKT09MCl7YVU9YVQ7YnJlYWt9YllbY1tVPj4yXSY1
MTFdKGFRKTthVT1jW2g+PjJdfDB9fXdoaWxlKDApO2NbVT4+Ml09ODI7YVQ9YVUrYVJ8MDtjW28+
PjJdPWFUO2FWPShjW2g+PjJdfDApK2FTfDA7YVc9YVR9ZWxzZXthVj1hdjthVz1hQ31jW28+PjJd
PWFXKzE7YVthV109YVA7YVg9YXMrMXwwO2FZPWF0O2FaPWF1O2FfPWFnO2EkPSQ7YTA9YVZ9ZWxz
ZXthYT00Mzd9fXdoaWxlKDApO2lmKChhYXwwKT09NDM3KXthYT0wO2FsPWRbd118MDtpZigoKChh
bCYxfDApPT0wP2FsPj4+MTpjW24+PjJdfDApfDApPT0wfChhc3wwKT09MCl7YnJlYWt9aWYoYVA8
PDI0Pj4yNCE9KGFbdV18MCkpe2JyZWFrfWlmKChhdXwwKT09KGF0fDApKXthbD1hdS1hZ3wwO2FU
PWFsPj4+MDwyMTQ3NDgzNjQ3P2FsPDwxOi0xO2lmKCgkfDApPT0xNjYpe2ExPTB9ZWxzZXthMT1h
Z31haz1rTChhMSxhVCl8MDthaT1haztpZigoYWt8MCk9PTApe2tYKCl9YTI9YWkrKGFUPj4+Mjw8
Mil8MDthMz1haSsoYWw+PjI8PDIpfDA7YTQ9YWk7YTU9ODJ9ZWxzZXthMj1hdDthMz1hdTthND1h
ZzthNT0kfWNbYTM+PjJdPWFzO2FYPTA7YVk9YTI7YVo9YTMrNHwwO2FfPWE0O2EkPWE1O2EwPWF2
fWFpPWNbZz4+Ml18MDthbD1haSsxMnwwO2FUPWNbYWw+PjJdfDA7aWYoKGFUfDApPT0oY1thaSsx
Nj4+Ml18MCkpe2FrPWNbKGNbYWk+PjJdfDApKzQwPj4yXXwwO2IwW2FrJjEyN10oYWkpfDA7YXM9
YVg7YXQ9YVk7YXU9YVo7YWc9YV87JD1hJDthdj1hMDtjb250aW51ZX1lbHNle2NbYWw+PjJdPWFU
KzE7YXM9YVg7YXQ9YVk7YXU9YVo7YWc9YV87JD1hJDthdj1hMDtjb250aW51ZX19aWYoKGFnfDAp
PT0oYXV8MCl8KGFzfDApPT0wKXthNj1hdDthNz1hdTthOD1hZzthOT0kfWVsc2V7aWYoKGF1fDAp
PT0oYXR8MCkpe2FUPWF1LWFnfDA7YWw9YVQ+Pj4wPDIxNDc0ODM2NDc/YVQ8PDE6LTE7aWYoKCR8
MCk9PTE2Nil7YmE9MH1lbHNle2JhPWFnfWFpPWtMKGJhLGFsKXwwO2FrPWFpO2lmKChhaXwwKT09
MCl7a1goKX1iYj1haysoYWw+Pj4yPDwyKXwwO2JjPWFrKyhhVD4+Mjw8Mil8MDtiZD1haztiZT04
Mn1lbHNle2JiPWF0O2JjPWF1O2JkPWFnO2JlPSR9Y1tiYz4+Ml09YXM7YTY9YmI7YTc9YmMrNHww
O2E4PWJkO2E5PWJlfWlmKChjW0I+PjJdfDApPjApe2FrPWNbZz4+Ml18MDtkb3tpZigoYWt8MCk9
PTApe2JmPTB9ZWxzZXtpZigoY1thaysxMj4+Ml18MCkhPShjW2FrKzE2Pj4yXXwwKSl7YmY9YWs7
YnJlYWt9aWYoKGIwW2NbKGNbYWs+PjJdfDApKzM2Pj4yXSYxMjddKGFrKXwwKT09LTEpe2NbZz4+
Ml09MDtiZj0wO2JyZWFrfWVsc2V7YmY9Y1tnPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7YWs9KGJm
fDApPT0wO2FzPWNbZT4+Ml18MDtkb3tpZigoYXN8MCk9PTApe2FhPTQ3MH1lbHNle2lmKChjW2Fz
KzEyPj4yXXwwKSE9KGNbYXMrMTY+PjJdfDApKXtpZihhayl7Ymc9YXM7YnJlYWt9ZWxzZXthYT00
Nzc7YnJlYWsgTDI4Nn19aWYoKGIwW2NbKGNbYXM+PjJdfDApKzM2Pj4yXSYxMjddKGFzKXwwKT09
LTEpe2NbZT4+Ml09MDthYT00NzA7YnJlYWt9ZWxzZXtpZihhayl7Ymc9YXM7YnJlYWt9ZWxzZXth
YT00Nzc7YnJlYWsgTDI4Nn19fX13aGlsZSgwKTtpZigoYWF8MCk9PTQ3MCl7YWE9MDtpZihhayl7
YWE9NDc3O2JyZWFrIEwyODZ9ZWxzZXtiZz0wfX1hcz1jW2c+PjJdfDA7JD1jW2FzKzEyPj4yXXww
O2lmKCgkfDApPT0oY1thcysxNj4+Ml18MCkpe2JoPShiMFtjWyhjW2FzPj4yXXwwKSszNj4+Ml0m
MTI3XShhcyl8MCkmMjU1fWVsc2V7Ymg9YVskXXwwfWlmKGJoPDwyND4+MjQhPShhW3RdfDApKXth
YT00Nzc7YnJlYWsgTDI4Nn0kPWNbZz4+Ml18MDthcz0kKzEyfDA7YWc9Y1thcz4+Ml18MDtpZigo
YWd8MCk9PShjWyQrMTY+PjJdfDApKXthdT1jWyhjWyQ+PjJdfDApKzQwPj4yXXwwO2IwW2F1JjEy
N10oJCl8MDtiaT1hdjtiaj1iZ31lbHNle2NbYXM+PjJdPWFnKzE7Ymk9YXY7Ymo9Ymd9d2hpbGUo
MSl7YWc9Y1tnPj4yXXwwO2Rve2lmKChhZ3wwKT09MCl7Yms9MH1lbHNle2lmKChjW2FnKzEyPj4y
XXwwKSE9KGNbYWcrMTY+PjJdfDApKXtiaz1hZzticmVha31pZigoYjBbY1soY1thZz4+Ml18MCkr
MzY+PjJdJjEyN10oYWcpfDApPT0tMSl7Y1tnPj4yXT0wO2JrPTA7YnJlYWt9ZWxzZXtiaz1jW2c+
PjJdfDA7YnJlYWt9fX13aGlsZSgwKTthZz0oYmt8MCk9PTA7ZG97aWYoKGJqfDApPT0wKXthYT00
OTN9ZWxzZXtpZigoY1tiaisxMj4+Ml18MCkhPShjW2JqKzE2Pj4yXXwwKSl7aWYoYWcpe2JsPWJq
O2JyZWFrfWVsc2V7YWE9NTAxO2JyZWFrIEwyODZ9fWlmKChiMFtjWyhjW2JqPj4yXXwwKSszNj4+
Ml0mMTI3XShiail8MCk9PS0xKXtjW2U+PjJdPTA7YWE9NDkzO2JyZWFrfWVsc2V7aWYoYWcpe2Js
PWJqO2JyZWFrfWVsc2V7YWE9NTAxO2JyZWFrIEwyODZ9fX19d2hpbGUoMCk7aWYoKGFhfDApPT00
OTMpe2FhPTA7aWYoYWcpe2FhPTUwMTticmVhayBMMjg2fWVsc2V7Ymw9MH19YXM9Y1tnPj4yXXww
OyQ9Y1thcysxMj4+Ml18MDtpZigoJHwwKT09KGNbYXMrMTY+PjJdfDApKXtibT0oYjBbY1soY1th
cz4+Ml18MCkrMzY+PjJdJjEyN10oYXMpfDApJjI1NX1lbHNle2JtPWFbJF18MH1pZihibTw8MjQ+
PjI0PD0tMSl7YWE9NTAxO2JyZWFrIEwyODZ9aWYoKGJbKGNbZj4+Ml18MCkrKGJtPDwyND4+MjQ8
PDEpPj4xXSYyMDQ4KT09MCl7YWE9NTAxO2JyZWFrIEwyODZ9JD1jW28+PjJdfDA7aWYoKCR8MCk9
PShiaXwwKSl7YXM9KGNbVT4+Ml18MCkhPTE2NjthdT1jW2g+PjJdfDA7YXQ9YmktYXV8MDthVD1h
dD4+PjA8MjE0NzQ4MzY0Nz9hdDw8MTotMTthbD1rTChhcz9hdTowLGFUKXwwO2lmKChhbHwwKT09
MCl7a1goKX1kb3tpZihhcyl7Y1toPj4yXT1hbDtibj1hbH1lbHNle2F1PWNbaD4+Ml18MDtjW2g+
PjJdPWFsO2lmKChhdXwwKT09MCl7Ym49YWw7YnJlYWt9YllbY1tVPj4yXSY1MTFdKGF1KTtibj1j
W2g+PjJdfDB9fXdoaWxlKDApO2NbVT4+Ml09ODI7YWw9Ym4rYXR8MDtjW28+PjJdPWFsO2JvPShj
W2g+PjJdfDApK2FUfDA7YnA9YWx9ZWxzZXtibz1iaTticD0kfWFsPWNbZz4+Ml18MDthcz1jW2Fs
KzEyPj4yXXwwO2lmKChhc3wwKT09KGNbYWwrMTY+PjJdfDApKXthZz0oYjBbY1soY1thbD4+Ml18
MCkrMzY+PjJdJjEyN10oYWwpfDApJjI1NTticT1hZzticj1jW28+PjJdfDB9ZWxzZXticT1hW2Fz
XXwwO2JyPWJwfWNbbz4+Ml09YnIrMTthW2JyXT1icTthcz0oY1tCPj4yXXwwKS0xfDA7Y1tCPj4y
XT1hczthZz1jW2c+PjJdfDA7YWw9YWcrMTJ8MDthdT1jW2FsPj4yXXwwO2lmKChhdXwwKT09KGNb
YWcrMTY+PjJdfDApKXthaT1jWyhjW2FnPj4yXXwwKSs0MD4+Ml18MDtiMFthaSYxMjddKGFnKXww
fWVsc2V7Y1thbD4+Ml09YXUrMX1pZigoYXN8MCk+MCl7Ymk9Ym87Ymo9Ymx9ZWxzZXticz1ibzti
cmVha319fWVsc2V7YnM9YXZ9aWYoKGNbbz4+Ml18MCk9PShjW2g+PjJdfDApKXthYT01MjE7YnJl
YWsgTDI4Nn1lbHNle2FtPXI7YW49YTY7YW89YTc7YXA9YTg7YXE9YTk7YXI9YnN9YnJlYWt9O2Rl
ZmF1bHQ6e2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WfX19d2hpbGUoMCk7TDU4NTpkb3tp
ZigoYWF8MCk9PTI5Nyl7YWE9MDtpZigoWXwwKT09Myl7YWM9cDthZD1XO2FlPVg7YWY9cjthYT01
MjM7YnJlYWsgTDI4Nn1lbHNle2J0PWFifXdoaWxlKDEpe1o9Y1tnPj4yXXwwO2Rve2lmKChafDAp
PT0wKXtidT0wfWVsc2V7aWYoKGNbWisxMj4+Ml18MCkhPShjW1orMTY+PjJdfDApKXtidT1aO2Jy
ZWFrfWlmKChiMFtjWyhjW1o+PjJdfDApKzM2Pj4yXSYxMjddKFopfDApPT0tMSl7Y1tnPj4yXT0w
O2J1PTA7YnJlYWt9ZWxzZXtidT1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtaPShidXwwKT09
MDtkb3tpZigoYnR8MCk9PTApe2FhPTMxMH1lbHNle2lmKChjW2J0KzEyPj4yXXwwKSE9KGNbYnQr
MTY+PjJdfDApKXtpZihaKXtidj1idDticmVha31lbHNle2FtPXI7YW49RDthbz1YO2FwPVc7YXE9
cDthcj1WO2JyZWFrIEw1ODV9fWlmKChiMFtjWyhjW2J0Pj4yXXwwKSszNj4+Ml0mMTI3XShidCl8
MCk9PS0xKXtjW2U+PjJdPTA7YWE9MzEwO2JyZWFrfWVsc2V7aWYoWil7YnY9YnQ7YnJlYWt9ZWxz
ZXthbT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMNTg1fX19fXdoaWxlKDApO2lm
KChhYXwwKT09MzEwKXthYT0wO2lmKFope2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2Jy
ZWFrIEw1ODV9ZWxzZXtidj0wfX0kPWNbZz4+Ml18MDthVD1jWyQrMTI+PjJdfDA7aWYoKGFUfDAp
PT0oY1skKzE2Pj4yXXwwKSl7Ync9KGIwW2NbKGNbJD4+Ml18MCkrMzY+PjJdJjEyN10oJCl8MCkm
MjU1fWVsc2V7Ync9YVthVF18MH1pZihidzw8MjQ+PjI0PD0tMSl7YW09cjthbj1EO2FvPVg7YXA9
VzthcT1wO2FyPVY7YnJlYWsgTDU4NX1pZigoYlsoY1tmPj4yXXwwKSsoYnc8PDI0Pj4yNDw8MSk+
PjFdJjgxOTIpPT0wKXthbT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMNTg1fWFU
PWNbZz4+Ml18MDskPWFUKzEyfDA7YXQ9Y1skPj4yXXwwO2lmKChhdHwwKT09KGNbYVQrMTY+PjJd
fDApKXtieD0oYjBbY1soY1thVD4+Ml18MCkrNDA+PjJdJjEyN10oYVQpfDApJjI1NX1lbHNle2Nb
JD4+Ml09YXQrMTtieD1hW2F0XXwwfWRVKEEsYngpO2J0PWJ2fX19d2hpbGUoMCk7YXY9WSsxfDA7
aWYoYXY+Pj4wPDQpe1Y9YXI7cD1hcTtXPWFwO1g9YW87RD1hbjtyPWFtO1k9YXZ9ZWxzZXthYz1h
cTthZD1hcDthZT1hbzthZj1hbTthYT01MjM7YnJlYWt9fUw2MjI6ZG97aWYoKGFhfDApPT0yOTYp
e2Nbaz4+Ml09Y1trPj4yXXw0O2J5PTA7Yno9VztiQT1wfWVsc2UgaWYoKGFhfDApPT0zNjMpe2Nb
az4+Ml09Y1trPj4yXXw0O2J5PTA7Yno9VztiQT1wfWVsc2UgaWYoKGFhfDApPT00MDUpe2Nbaz4+
Ml09Y1trPj4yXXw0O2J5PTA7Yno9VztiQT1wfWVsc2UgaWYoKGFhfDApPT00Nzcpe2Nbaz4+Ml09
Y1trPj4yXXw0O2J5PTA7Yno9YTg7YkE9YTl9ZWxzZSBpZigoYWF8MCk9PTUwMSl7Y1trPj4yXT1j
W2s+PjJdfDQ7Ynk9MDtiej1hODtiQT1hOX1lbHNlIGlmKChhYXwwKT09NTIxKXtjW2s+PjJdPWNb
az4+Ml18NDtieT0wO2J6PWE4O2JBPWE5fWVsc2UgaWYoKGFhfDApPT01MjMpe0w2MzA6ZG97aWYo
KGFmfDApIT0wKXthbT1hZjthbz1hZisxfDA7YXA9YWYrOHwwO2FxPWFmKzR8MDtZPTE7TDYzMjp3
aGlsZSgxKXtyPWRbYW1dfDA7aWYoKHImMXwwKT09MCl7YkI9cj4+PjF9ZWxzZXtiQj1jW2FxPj4y
XXwwfWlmKFk+Pj4wPj1iQj4+PjApe2JyZWFrIEw2MzB9cj1jW2c+PjJdfDA7ZG97aWYoKHJ8MCk9
PTApe2JDPTB9ZWxzZXtpZigoY1tyKzEyPj4yXXwwKSE9KGNbcisxNj4+Ml18MCkpe2JDPXI7YnJl
YWt9aWYoKGIwW2NbKGNbcj4+Ml18MCkrMzY+PjJdJjEyN10ocil8MCk9PS0xKXtjW2c+PjJdPTA7
YkM9MDticmVha31lbHNle2JDPWNbZz4+Ml18MDticmVha319fXdoaWxlKDApO3I9KGJDfDApPT0w
O1o9Y1tlPj4yXXwwO2Rve2lmKChafDApPT0wKXthYT01NDF9ZWxzZXtpZigoY1taKzEyPj4yXXww
KSE9KGNbWisxNj4+Ml18MCkpe2lmKHIpe2JyZWFrfWVsc2V7YnJlYWsgTDYzMn19aWYoKGIwW2Nb
KGNbWj4+Ml18MCkrMzY+PjJdJjEyN10oWil8MCk9PS0xKXtjW2U+PjJdPTA7YWE9NTQxO2JyZWFr
fWVsc2V7aWYocil7YnJlYWt9ZWxzZXticmVhayBMNjMyfX19fXdoaWxlKDApO2lmKChhYXwwKT09
NTQxKXthYT0wO2lmKHIpe2JyZWFrfX1aPWNbZz4+Ml18MDthbj1jW1orMTI+PjJdfDA7aWYoKGFu
fDApPT0oY1taKzE2Pj4yXXwwKSl7YkQ9KGIwW2NbKGNbWj4+Ml18MCkrMzY+PjJdJjEyN10oWil8
MCkmMjU1fWVsc2V7YkQ9YVthbl18MH1pZigoYVthbV0mMSk9PTApe2JFPWFvfWVsc2V7YkU9Y1th
cD4+Ml18MH1pZihiRDw8MjQ+PjI0IT0oYVtiRStZfDBdfDApKXticmVha31hbj1ZKzF8MDtaPWNb
Zz4+Ml18MDtEPVorMTJ8MDtYPWNbRD4+Ml18MDtpZigoWHwwKT09KGNbWisxNj4+Ml18MCkpe2Fy
PWNbKGNbWj4+Ml18MCkrNDA+PjJdfDA7YjBbYXImMTI3XShaKXwwO1k9YW47Y29udGludWV9ZWxz
ZXtjW0Q+PjJdPVgrMTtZPWFuO2NvbnRpbnVlfX1jW2s+PjJdPWNbaz4+Ml18NDtieT0wO2J6PWFk
O2JBPWFjO2JyZWFrIEw2MjJ9fXdoaWxlKDApO2lmKChhZHwwKT09KGFlfDApKXtieT0xO2J6PWFl
O2JBPWFjO2JyZWFrfWNbQz4+Ml09MDtmdCh2LGFkLGFlLEMpO2lmKChjW0M+PjJdfDApPT0wKXti
eT0xO2J6PWFkO2JBPWFjO2JyZWFrfWNbaz4+Ml09Y1trPj4yXXw0O2J5PTA7Yno9YWQ7YkE9YWN9
fXdoaWxlKDApO2RQKEEpO2RQKHopO2RQKHkpO2RQKHgpO2RQKHYpO2lmKChienwwKT09MCl7aT1x
O3JldHVybiBieXwwfWJZW2JBJjUxMV0oYnopO2k9cTtyZXR1cm4gYnl8MH1mdW5jdGlvbiBoUyhi
LGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxt
PTAsbj0wO2Y9YjtnPWQ7aD1hW2ZdfDA7aT1oJjI1NTtpZigoaSYxfDApPT0wKXtqPWk+Pj4xfWVs
c2V7aj1jW2IrND4+Ml18MH1pZigoaCYxKT09MCl7az0xMDtsPWh9ZWxzZXtoPWNbYj4+Ml18MDtr
PShoJi0yKS0xfDA7bD1oJjI1NX1oPWUtZ3wwO2lmKChlfDApPT0oZHwwKSl7cmV0dXJuIGJ8MH1p
Zigoay1qfDApPj4+MDxoPj4+MCl7ZDEoYixrLGoraC1rfDAsaixqLDAsMCk7bT1hW2ZdfDB9ZWxz
ZXttPWx9aWYoKG0mMSk9PTApe249YisxfDB9ZWxzZXtuPWNbYis4Pj4yXXwwfW09ZSsoai1nKXww
O2c9ZDtkPW4ranwwO3doaWxlKDEpe2FbZF09YVtnXXwwO2w9ZysxfDA7aWYoKGx8MCk9PShlfDAp
KXticmVha31lbHNle2c9bDtkPWQrMXwwfX1hW24rbXwwXT0wO209aitofDA7aWYoKGFbZl0mMSk9
PTApe2FbZl09bTw8MSYyNTU7cmV0dXJuIGJ8MH1lbHNle2NbYis0Pj4yXT1tO3JldHVybiBifDB9
cmV0dXJuIDB9ZnVuY3Rpb24gaFQoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rp
b24gaFUoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaFYoYSl7YT1hfDA7dmFyIGI9
MDtiPWJPKDgpfDA7ZEUoYixhKTtibChifDAsODE5MiwyMil9ZnVuY3Rpb24gaFcoYixkLGUsZixn
LGgsaixrKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2
YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MDtkPWk7aT1pKzE2MHwwO2w9ZTtlPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2U+PjJdPWNbbD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
Zj4+Ml09Y1tsPj4yXTtsPWR8MDttPWQrMTZ8MDtuPWQrMTIwfDA7bz1kKzEyOHwwO3A9ZCsxMzZ8
MDtxPWQrMTQ0fDA7cj1kKzE1MnwwO3M9bnwwO2Nbcz4+Ml09bTt0PW4rNHwwO2NbdD4+Ml09MTY2
O3U9bSsxMDB8MDtlaihwLGgpO209cHwwO3Y9Y1ttPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7
Y1tsPj4yXT0xNTY5NjtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2OTYsbCw5Nil9bD0o
Y1szOTI1XXwwKS0xfDA7dz1jW3YrOD4+Ml18MDtkb3tpZigoY1t2KzEyPj4yXXwwKS13Pj4yPj4+
MD5sPj4+MCl7eD1jW3crKGw8PDIpPj4yXXwwO2lmKCh4fDApPT0wKXticmVha315PXg7YVtxXT0w
O3o9ZnwwO0E9Y1t6Pj4yXXwwO2Nbcj4+Ml09QTtpZihoUihlLHIsZyxwLGNbaCs0Pj4yXXwwLGos
cSx5LG4sbyx1KXwwKXtCPWs7aWYoKGFbQl0mMSk9PTApe2FbaysxfDBdPTA7YVtCXT0wfWVsc2V7
YVtjW2srOD4+Ml18MF09MDtjW2srND4+Ml09MH1CPXg7aWYoKGFbcV0mMSkhPTApe2RVKGssYl9b
Y1soY1tCPj4yXXwwKSsyOD4+Ml0mMzFdKHksNDUpfDApfXg9Yl9bY1soY1tCPj4yXXwwKSsyOD4+
Ml0mMzFdKHksNDgpfDA7eT1jW28+PjJdfDA7Qj15LTF8MDtDPWNbcz4+Ml18MDt3aGlsZSgxKXtp
ZihDPj4+MD49Qj4+PjApe2JyZWFrfWlmKChhW0NdfDApPT14PDwyND4+MjQpe0M9QysxfDB9ZWxz
ZXticmVha319aFMoayxDLHkpfDB9eD1lfDA7Qj1jW3g+PjJdfDA7ZG97aWYoKEJ8MCk9PTApe0Q9
MH1lbHNle2lmKChjW0IrMTI+PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7RD1CO2JyZWFrfWlmKChi
MFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7RD1CO2JyZWFrfWNbeD4+Ml09
MDtEPTB9fXdoaWxlKDApO3g9KER8MCk9PTA7ZG97aWYoKEF8MCk9PTApe0U9NjIxfWVsc2V7aWYo
KGNbQSsxMj4+Ml18MCkhPShjW0ErMTY+PjJdfDApKXtpZih4KXticmVha31lbHNle0U9NjIzO2Jy
ZWFrfX1pZigoYjBbY1soY1tBPj4yXXwwKSszNj4+Ml0mMTI3XShBKXwwKT09LTEpe2Nbej4+Ml09
MDtFPTYyMTticmVha31lbHNle2lmKHheKEF8MCk9PTApe2JyZWFrfWVsc2V7RT02MjM7YnJlYWt9
fX19d2hpbGUoMCk7aWYoKEV8MCk9PTYyMSl7aWYoeCl7RT02MjN9fWlmKChFfDApPT02MjMpe2Nb
aj4+Ml09Y1tqPj4yXXwyfWNbYj4+Ml09RDtBPWNbbT4+Ml18MDtkeihBKXwwO0E9Y1tzPj4yXXww
O2Nbcz4+Ml09MDtpZigoQXwwKT09MCl7aT1kO3JldHVybn1iWVtjW3Q+PjJdJjUxMV0oQSk7aT1k
O3JldHVybn19d2hpbGUoMCk7ZD1iTyg0KXwwO2txKGQpO2JsKGR8MCw4MTc2LDEzNCl9ZnVuY3Rp
b24gaFgoYixkLGUsZixnLGgsaixrLGwsbSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7dmFyIG49MCxvPTAscD0wLHE9MCxyPTAscz0w
LHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wO249aTtpPWkrNTZ8MDtvPW58MDtwPW4rMTZ8MDtx
PW4rMzJ8MDtyPW4rNDB8MDtzPXI7dD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3U9dDt2PWk7aT1p
KzEyfDA7aT1pKzc+PjM8PDM7dz12O3g9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt5PXg7ej1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7QT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0I9QTtEPWk7aT1pKzEy
fDA7aT1pKzc+PjM8PDM7RT1EO0Y9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztHPUY7SD1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO0k9SDtpZihiKXtiPWNbZD4+Ml18MDtpZigoY1s0MDQ0XXwwKSE9LTEp
e2NbcD4+Ml09MTYxNzY7Y1twKzQ+PjJdPTEyO2NbcCs4Pj4yXT0wO2RXKDE2MTc2LHAsOTYpfXA9
KGNbNDA0NV18MCktMXwwO0o9Y1tiKzg+PjJdfDA7aWYoKGNbYisxMj4+Ml18MCktSj4+Mj4+PjA8
PXA+Pj4wKXtLPWJPKDQpfDA7TD1LO2txKEwpO2JsKEt8MCw4MTc2LDEzNCl9Yj1jW0orKHA8PDIp
Pj4yXXwwO2lmKChifDApPT0wKXtLPWJPKDQpfDA7TD1LO2txKEwpO2JsKEt8MCw4MTc2LDEzNCl9
Sz1iO2JaW2NbKGNbYj4+Ml18MCkrNDQ+PjJdJjEyN10ocSxLKTtMPWU7Qz1jW3E+PjJdfDA7YVtM
XT1DJjI1NTtDPUM+Pjg7YVtMKzF8MF09QyYyNTU7Qz1DPj44O2FbTCsyfDBdPUMmMjU1O0M9Qz4+
ODthW0wrM3wwXT1DJjI1NTtMPWI7YlpbY1soY1tMPj4yXXwwKSszMj4+Ml0mMTI3XShyLEspO3E9
bDtpZigoYVtxXSYxKT09MCl7YVtsKzF8MF09MDthW3FdPTB9ZWxzZXthW2NbbCs4Pj4yXXwwXT0w
O2NbbCs0Pj4yXT0wfWQkKGwsMCk7Y1txPj4yXT1jW3M+PjJdO2NbcSs0Pj4yXT1jW3MrND4+Ml07
Y1txKzg+PjJdPWNbcys4Pj4yXTtrJChzfDAsMCwxMik7ZFAocik7YlpbY1soY1tMPj4yXXwwKSsy
OD4+Ml0mMTI3XSh0LEspO3I9aztpZigoYVtyXSYxKT09MCl7YVtrKzF8MF09MDthW3JdPTB9ZWxz
ZXthW2Nbays4Pj4yXXwwXT0wO2Nbays0Pj4yXT0wfWQkKGssMCk7Y1tyPj4yXT1jW3U+PjJdO2Nb
cis0Pj4yXT1jW3UrND4+Ml07Y1tyKzg+PjJdPWNbdSs4Pj4yXTtrJCh1fDAsMCwxMik7ZFAodCk7
dD1iO2FbZl09YjBbY1soY1t0Pj4yXXwwKSsxMj4+Ml0mMTI3XShLKXwwO2FbZ109YjBbY1soY1t0
Pj4yXXwwKSsxNj4+Ml0mMTI3XShLKXwwO2JaW2NbKGNbTD4+Ml18MCkrMjA+PjJdJjEyN10odixL
KTt0PWg7aWYoKGFbdF0mMSk9PTApe2FbaCsxfDBdPTA7YVt0XT0wfWVsc2V7YVtjW2grOD4+Ml18
MF09MDtjW2grND4+Ml09MH1kJChoLDApO2NbdD4+Ml09Y1t3Pj4yXTtjW3QrND4+Ml09Y1t3KzQ+
PjJdO2NbdCs4Pj4yXT1jW3crOD4+Ml07ayQod3wwLDAsMTIpO2RQKHYpO2JaW2NbKGNbTD4+Ml18
MCkrMjQ+PjJdJjEyN10oeCxLKTtMPWo7aWYoKGFbTF0mMSk9PTApe2FbaisxfDBdPTA7YVtMXT0w
fWVsc2V7YVtjW2orOD4+Ml18MF09MDtjW2orND4+Ml09MH1kJChqLDApO2NbTD4+Ml09Y1t5Pj4y
XTtjW0wrND4+Ml09Y1t5KzQ+PjJdO2NbTCs4Pj4yXT1jW3krOD4+Ml07ayQoeXwwLDAsMTIpO2RQ
KHgpO009YjBbY1soY1tiPj4yXXwwKSszNj4+Ml0mMTI3XShLKXwwO2NbbT4+Ml09TTtpPW47cmV0
dXJufWVsc2V7Sz1jW2Q+PjJdfDA7aWYoKGNbNDA0Nl18MCkhPS0xKXtjW28+PjJdPTE2MTg0O2Nb
bys0Pj4yXT0xMjtjW28rOD4+Ml09MDtkVygxNjE4NCxvLDk2KX1vPShjWzQwNDddfDApLTF8MDtk
PWNbSys4Pj4yXXwwO2lmKChjW0srMTI+PjJdfDApLWQ+PjI+Pj4wPD1vPj4+MCl7Tj1iTyg0KXww
O089TjtrcShPKTtibChOfDAsODE3NiwxMzQpfUs9Y1tkKyhvPDwyKT4+Ml18MDtpZigoS3wwKT09
MCl7Tj1iTyg0KXwwO089TjtrcShPKTtibChOfDAsODE3NiwxMzQpfU49SztiWltjWyhjW0s+PjJd
fDApKzQ0Pj4yXSYxMjddKHosTik7Tz1lO0M9Y1t6Pj4yXXwwO2FbT109QyYyNTU7Qz1DPj44O2Fb
TysxfDBdPUMmMjU1O0M9Qz4+ODthW08rMnwwXT1DJjI1NTtDPUM+Pjg7YVtPKzN8MF09QyYyNTU7
Tz1LO2JaW2NbKGNbTz4+Ml18MCkrMzI+PjJdJjEyN10oQSxOKTt6PWw7aWYoKGFbel0mMSk9PTAp
e2FbbCsxfDBdPTA7YVt6XT0wfWVsc2V7YVtjW2wrOD4+Ml18MF09MDtjW2wrND4+Ml09MH1kJChs
LDApO2Nbej4+Ml09Y1tCPj4yXTtjW3orND4+Ml09Y1tCKzQ+PjJdO2Nbeis4Pj4yXT1jW0IrOD4+
Ml07ayQoQnwwLDAsMTIpO2RQKEEpO2JaW2NbKGNbTz4+Ml18MCkrMjg+PjJdJjEyN10oRCxOKTtB
PWs7aWYoKGFbQV0mMSk9PTApe2FbaysxfDBdPTA7YVtBXT0wfWVsc2V7YVtjW2srOD4+Ml18MF09
MDtjW2srND4+Ml09MH1kJChrLDApO2NbQT4+Ml09Y1tFPj4yXTtjW0ErND4+Ml09Y1tFKzQ+PjJd
O2NbQSs4Pj4yXT1jW0UrOD4+Ml07ayQoRXwwLDAsMTIpO2RQKEQpO0Q9SzthW2ZdPWIwW2NbKGNb
RD4+Ml18MCkrMTI+PjJdJjEyN10oTil8MDthW2ddPWIwW2NbKGNbRD4+Ml18MCkrMTY+PjJdJjEy
N10oTil8MDtiWltjWyhjW08+PjJdfDApKzIwPj4yXSYxMjddKEYsTik7RD1oO2lmKChhW0RdJjEp
PT0wKXthW2grMXwwXT0wO2FbRF09MH1lbHNle2FbY1toKzg+PjJdfDBdPTA7Y1toKzQ+PjJdPTB9
ZCQoaCwwKTtjW0Q+PjJdPWNbRz4+Ml07Y1tEKzQ+PjJdPWNbRys0Pj4yXTtjW0QrOD4+Ml09Y1tH
Kzg+PjJdO2skKEd8MCwwLDEyKTtkUChGKTtiWltjWyhjW08+PjJdfDApKzI0Pj4yXSYxMjddKEgs
Tik7Tz1qO2lmKChhW09dJjEpPT0wKXthW2orMXwwXT0wO2FbT109MH1lbHNle2FbY1tqKzg+PjJd
fDBdPTA7Y1tqKzQ+PjJdPTB9ZCQoaiwwKTtjW08+PjJdPWNbST4+Ml07Y1tPKzQ+PjJdPWNbSSs0
Pj4yXTtjW08rOD4+Ml09Y1tJKzg+PjJdO2skKEl8MCwwLDEyKTtkUChIKTtNPWIwW2NbKGNbSz4+
Ml18MCkrMzY+PjJdJjEyN10oTil8MDtjW20+PjJdPU07aT1uO3JldHVybn19ZnVuY3Rpb24gaFko
YixkLGUsZixnLGgsaixrKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8
MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9
MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTA7ZD1pO2k9aSs2MDB8MDts
PWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2w+PjJdO2w9ZjtmPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1kfDA7bT1kKzE2fDA7bj1kKzQxNnwwO289
ZCs0MjR8MDtwPWQrNDMyfDA7cT1kKzQ0MHwwO3I9ZCs0NDh8MDtzPWQrNDU2fDA7dD1kKzQ5Nnww
O3U9bnwwO2NbdT4+Ml09bTt2PW4rNHwwO2Nbdj4+Ml09MTY2O3c9bSs0MDB8MDtlaihwLGgpO209
cHwwO3g9Y1ttPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tsPj4yXT0xNTY4ODtjW2wrND4+
Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2ODgsbCw5Nil9bD0oY1szOTIzXXwwKS0xfDA7eT1jW3gr
OD4+Ml18MDtkb3tpZigoY1t4KzEyPj4yXXwwKS15Pj4yPj4+MD5sPj4+MCl7ej1jW3krKGw8PDIp
Pj4yXXwwO2lmKCh6fDApPT0wKXticmVha31BPXo7YVtxXT0wO0I9ZnwwO2Nbcj4+Ml09Y1tCPj4y
XTtkb3tpZihoWihlLHIsZyxwLGNbaCs0Pj4yXXwwLGoscSxBLG4sbyx3KXwwKXtDPXN8MDtEPWNb
KGNbej4+Ml18MCkrNDg+PjJdfDA7Y2FbRCYxNV0oQSwyMDk2LDIxMDYsQyl8MDtEPXR8MDtFPWNb
bz4+Ml18MDtGPWNbdT4+Ml18MDtHPUUtRnwwO2Rve2lmKChHfDApPjM5Mil7SD1rSigoRz4+Mikr
MnwwKXwwO2lmKChIfDApIT0wKXtJPUg7Sj1IO2JyZWFrfWtYKCk7ST0wO0o9MH1lbHNle0k9RDtK
PTB9fXdoaWxlKDApO2lmKChhW3FdJjEpPT0wKXtLPUl9ZWxzZXthW0ldPTQ1O0s9SSsxfDB9aWYo
Rj4+PjA8RT4+PjApe0c9cys0MHwwO0g9cztMPUs7TT1GO3doaWxlKDEpe049Qzt3aGlsZSgxKXtp
ZigoTnwwKT09KEd8MCkpe089RzticmVha31pZigoY1tOPj4yXXwwKT09KGNbTT4+Ml18MCkpe089
TjticmVha31lbHNle049Tis0fDB9fWFbTF09YVsyMDk2KyhPLUg+PjIpfDBdfDA7Tj1NKzR8MDtQ
PUwrMXwwO2lmKE4+Pj4wPChjW28+PjJdfDApPj4+MCl7TD1QO009Tn1lbHNle1E9UDticmVha319
fWVsc2V7UT1LfWFbUV09MDtNPWJEKER8MCwxNDA4LChMPWksaT1pKzh8MCxjW0w+PjJdPWssTCl8
MCl8MDtpPUw7aWYoKE18MCk9PTEpe2lmKChKfDApPT0wKXticmVha31rSyhKKTticmVha31NPWJP
KDgpfDA7ZEUoTSwxMzY4KTtibChNfDAsODE5MiwyMil9fXdoaWxlKDApO0E9ZXwwO3o9Y1tBPj4y
XXwwO2Rve2lmKCh6fDApPT0wKXtSPTB9ZWxzZXtNPWNbeisxMj4+Ml18MDtpZigoTXwwKT09KGNb
eisxNj4+Ml18MCkpe1M9YjBbY1soY1t6Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXwwfWVsc2V7Uz1j
W00+PjJdfDB9aWYoKFN8MCkhPS0xKXtSPXo7YnJlYWt9Y1tBPj4yXT0wO1I9MH19d2hpbGUoMCk7
QT0oUnwwKT09MDt6PWNbQj4+Ml18MDtkb3tpZigoenwwKT09MCl7VD03Mzl9ZWxzZXtNPWNbeisx
Mj4+Ml18MDtpZigoTXwwKT09KGNbeisxNj4+Ml18MCkpe1U9YjBbY1soY1t6Pj4yXXwwKSszNj4+
Ml0mMTI3XSh6KXwwfWVsc2V7VT1jW00+PjJdfDB9aWYoKFV8MCk9PS0xKXtjW0I+PjJdPTA7VD03
Mzk7YnJlYWt9ZWxzZXtpZihBXih6fDApPT0wKXticmVha31lbHNle1Q9NzQxO2JyZWFrfX19fXdo
aWxlKDApO2lmKChUfDApPT03Mzkpe2lmKEEpe1Q9NzQxfX1pZigoVHwwKT09NzQxKXtjW2o+PjJd
PWNbaj4+Ml18Mn1jW2I+PjJdPVI7ej1jW20+PjJdfDA7ZHooeil8MDt6PWNbdT4+Ml18MDtjW3U+
PjJdPTA7aWYoKHp8MCk9PTApe2k9ZDtyZXR1cm59YllbY1t2Pj4yXSY1MTFdKHopO2k9ZDtyZXR1
cm59fXdoaWxlKDApO2Q9Yk8oNCl8MDtrcShkKTtibChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGha
KGIsZSxmLGcsaCxqLGssbCxtLG4sbyl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1q
fDA7az1rfDA7bD1sfDA7bT1tfDA7bj1ufDA7bz1vfDA7dmFyIHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJ
PTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9
MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAs
YWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFz
PTAsYXQ9MCxhdT0wLGF2PTAsYXc9MCxheD0wLGF5PTAsYXo9MCxhQT0wLGFCPTAsYUM9MCxhRD0w
LGFFPTAsYUY9MCxhRz0wLGFIPTAsYUk9MCxhSj0wLGFLPTAsYUw9MCxhTT0wLGFOPTAsYU89MCxh
UD0wLGFRPTAsYVI9MCxhUz0wLGFUPTAsYVU9MCxhVj0wLGFXPTAsYVg9MCxhWT0wLGFaPTAsYV89
MCxhJD0wLGEwPTAsYTE9MCxhMj0wLGEzPTAsYTQ9MCxhNT0wLGE2PTAsYTc9MCxhOD0wLGE5PTAs
YmE9MCxiYj0wLGJjPTAsYmQ9MCxiZT0wLGJmPTAsYmc9MCxiaD0wLGJpPTAsYmo9MCxiaz0wLGJs
PTAsYm09MCxibj0wLGJvPTAsYnA9MCxicT0wLGJyPTAsYnM9MCxidD0wLGJ1PTAsYnY9MCxidz0w
LGJ4PTAsYnk9MCxiej0wLGJBPTAsYkI9MCxiQz0wLGJEPTA7cD1pO2k9aSs0NDh8MDtxPWU7ZT1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW3E+PjJdO3E9cHwwO3I9cCs4fDA7cz1wKzQw
OHwwO3Q9cCs0MTZ8MDt1PXArNDI0fDA7dj1wKzQzMnwwO3c9djt4PWk7aT1pKzEyfDA7aT1pKzc+
PjM8PDM7eT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3o9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztB
PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7Qj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qz1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1txPj4yXT1vO289cnwwO2skKHd8MCwwLDEyKTtEPXg7RT15O0Y9ejtH
PUE7ayQoRHwwLDAsMTIpO2skKEV8MCwwLDEyKTtrJChGfDAsMCwxMik7ayQoR3wwLDAsMTIpO2gy
KGYsZyxzLHQsdSx2LHgseSx6LEIpO2c9bXwwO2Nbbj4+Ml09Y1tnPj4yXTtmPWJ8MDtiPWV8MDtl
PWw7SD16KzR8MDtJPXorOHwwO0o9eSs0fDA7Sz15Kzh8MDtMPShoJjUxMnwwKSE9MDtoPXgrNHww
O009eCs4fDA7Tj1BKzR8MDtPPUErOHwwO1A9cyszfDA7UT12KzR8MDtSPTE2NjtTPW87VD1vO289
cis0MDB8MDtyPTA7VT0wO0w4OTA6d2hpbGUoMSl7Vj1jW2Y+PjJdfDA7ZG97aWYoKFZ8MCk9PTAp
e1c9MX1lbHNle1g9Y1tWKzEyPj4yXXwwO2lmKChYfDApPT0oY1tWKzE2Pj4yXXwwKSl7WT1iMFtj
WyhjW1Y+PjJdfDApKzM2Pj4yXSYxMjddKFYpfDB9ZWxzZXtZPWNbWD4+Ml18MH1pZigoWXwwKT09
LTEpe2NbZj4+Ml09MDtXPTE7YnJlYWt9ZWxzZXtXPShjW2Y+PjJdfDApPT0wO2JyZWFrfX19d2hp
bGUoMCk7Vj1jW2I+PjJdfDA7ZG97aWYoKFZ8MCk9PTApe1o9NzY3fWVsc2V7WD1jW1YrMTI+PjJd
fDA7aWYoKFh8MCk9PShjW1YrMTY+PjJdfDApKXtfPWIwW2NbKGNbVj4+Ml18MCkrMzY+PjJdJjEy
N10oVil8MH1lbHNle189Y1tYPj4yXXwwfWlmKChffDApPT0tMSl7Y1tiPj4yXT0wO1o9NzY3O2Jy
ZWFrfWVsc2V7aWYoV14oVnwwKT09MCl7JD1WO2JyZWFrfWVsc2V7YWE9UjthYj1TO2FjPVQ7YWQ9
cjtaPTEwMDc7YnJlYWsgTDg5MH19fX13aGlsZSgwKTtpZigoWnwwKT09NzY3KXtaPTA7aWYoVyl7
YWE9UjthYj1TO2FjPVQ7YWQ9cjtaPTEwMDc7YnJlYWt9ZWxzZXskPTB9fUw5MTQ6ZG97c3dpdGNo
KGFbcytVfDBdfDApe2Nhc2UgMjp7aWYoISgocnwwKSE9MHxVPj4+MDwyKSl7aWYoKFV8MCk9PTIp
e2FlPShhW1BdfDApIT0wfWVsc2V7YWU9MH1pZighKEx8YWUpKXthZj0wO2FnPW87YWg9VDthaT1T
O2FqPVI7YnJlYWsgTDkxNH19Vj1hW0RdfDA7WD0oViYxKT09MD9oOmNbTT4+Ml18MDtMOTIyOmRv
e2lmKChVfDApPT0wKXthaz1YO2FsPVY7YW09JH1lbHNle2lmKChkW3MrKFUtMSl8MF18MCk8Mil7
YW49WDthbz1WfWVsc2V7YWs9WDthbD1WO2FtPSQ7YnJlYWt9d2hpbGUoMSl7YXA9YW8mMjU1O2lm
KChhbnwwKT09KCgoYW8mMSk9PTA/aDpjW00+PjJdfDApKygoKGFwJjF8MCk9PTA/YXA+Pj4xOmNb
aD4+Ml18MCk8PDIpfDApKXthcT1hbzticmVha31pZighKGIxW2NbKGNbZT4+Ml18MCkrMTI+PjJd
JjYzXShsLDgxOTIsY1thbj4+Ml18MCl8MCkpe1o9ODY4O2JyZWFrfWFuPWFuKzR8MDthbz1hW0Rd
fDB9aWYoKFp8MCk9PTg2OCl7Wj0wO2FxPWFbRF18MH1hcD0oYXEmMSk9PTA7YXI9YW4tKGFwP2g6
Y1tNPj4yXXwwKT4+Mjthcz1hW0ddfDA7YXQ9YXMmMjU1O2F1PShhdCYxfDApPT0wO0w5MzI6ZG97
aWYoYXI+Pj4wPD0oYXU/YXQ+Pj4xOmNbTj4+Ml18MCk+Pj4wKXthdj0oYXMmMSk9PTA7YXc9KGF2
P046Y1tPPj4yXXwwKSsoKGF1P2F0Pj4+MTpjW04+PjJdfDApLWFyPDwyKXwwO2F4PShhdj9OOmNb
Tz4+Ml18MCkrKChhdT9hdD4+PjE6Y1tOPj4yXXwwKTw8Mil8MDtpZigoYXd8MCk9PShheHwwKSl7
YWs9YW47YWw9YXE7YW09JDticmVhayBMOTIyfWVsc2V7YXk9YXc7YXo9YXA/aDpjW00+PjJdfDB9
d2hpbGUoMSl7aWYoKGNbYXk+PjJdfDApIT0oY1thej4+Ml18MCkpe2JyZWFrIEw5MzJ9YXc9YXkr
NHwwO2lmKChhd3wwKT09KGF4fDApKXthaz1hbjthbD1hcTthbT0kO2JyZWFrIEw5MjJ9YXk9YXc7
YXo9YXorNHwwfX19d2hpbGUoMCk7YWs9YXA/aDpjW00+PjJdfDA7YWw9YXE7YW09JH19d2hpbGUo
MCk7TDkzOTp3aGlsZSgxKXtWPWFsJjI1NTtpZigoYWt8MCk9PSgoKGFsJjEpPT0wP2g6Y1tNPj4y
XXwwKSsoKChWJjF8MCk9PTA/Vj4+PjE6Y1toPj4yXXwwKTw8Mil8MCkpe2JyZWFrfVY9Y1tmPj4y
XXwwO2Rve2lmKChWfDApPT0wKXthQT0xfWVsc2V7WD1jW1YrMTI+PjJdfDA7aWYoKFh8MCk9PShj
W1YrMTY+PjJdfDApKXthQj1iMFtjWyhjW1Y+PjJdfDApKzM2Pj4yXSYxMjddKFYpfDB9ZWxzZXth
Qj1jW1g+PjJdfDB9aWYoKGFCfDApPT0tMSl7Y1tmPj4yXT0wO2FBPTE7YnJlYWt9ZWxzZXthQT0o
Y1tmPj4yXXwwKT09MDticmVha319fXdoaWxlKDApO2Rve2lmKChhbXwwKT09MCl7Wj04ODl9ZWxz
ZXtWPWNbYW0rMTI+PjJdfDA7aWYoKFZ8MCk9PShjW2FtKzE2Pj4yXXwwKSl7YUM9YjBbY1soY1th
bT4+Ml18MCkrMzY+PjJdJjEyN10oYW0pfDB9ZWxzZXthQz1jW1Y+PjJdfDB9aWYoKGFDfDApPT0t
MSl7Y1tiPj4yXT0wO1o9ODg5O2JyZWFrfWVsc2V7aWYoYUFeKGFtfDApPT0wKXthRD1hbTticmVh
a31lbHNle2JyZWFrIEw5Mzl9fX19d2hpbGUoMCk7aWYoKFp8MCk9PTg4OSl7Wj0wO2lmKGFBKXti
cmVha31lbHNle2FEPTB9fVY9Y1tmPj4yXXwwO2FwPWNbVisxMj4+Ml18MDtpZigoYXB8MCk9PShj
W1YrMTY+PjJdfDApKXthRT1iMFtjWyhjW1Y+PjJdfDApKzM2Pj4yXSYxMjddKFYpfDB9ZWxzZXth
RT1jW2FwPj4yXXwwfWlmKChhRXwwKSE9KGNbYWs+PjJdfDApKXticmVha31hcD1jW2Y+PjJdfDA7
Vj1hcCsxMnwwO1g9Y1tWPj4yXXwwO2lmKChYfDApPT0oY1thcCsxNj4+Ml18MCkpe2F0PWNbKGNb
YXA+PjJdfDApKzQwPj4yXXwwO2IwW2F0JjEyN10oYXApfDB9ZWxzZXtjW1Y+PjJdPVgrNH1haz1h
ays0fDA7YWw9YVtEXXwwO2FtPWFEfWlmKCFMKXthZj1yO2FnPW87YWg9VDthaT1TO2FqPVI7YnJl
YWsgTDkxNH1YPWFbRF18MDtWPVgmMjU1O2lmKChha3wwKT09KCgoWCYxKT09MD9oOmNbTT4+Ml18
MCkrKCgoViYxfDApPT0wP1Y+Pj4xOmNbaD4+Ml18MCk8PDIpfDApKXthZj1yO2FnPW87YWg9VDth
aT1TO2FqPVJ9ZWxzZXtaPTkwMTticmVhayBMODkwfWJyZWFrfTtjYXNlIDQ6e1Y9MDtYPW87YXA9
VDthdD1TO2F1PVI7TDk3NTp3aGlsZSgxKXthcj1jW2Y+PjJdfDA7ZG97aWYoKGFyfDApPT0wKXth
Rj0xfWVsc2V7YXM9Y1thcisxMj4+Ml18MDtpZigoYXN8MCk9PShjW2FyKzE2Pj4yXXwwKSl7YUc9
YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXthRz1jW2FzPj4yXXwwfWlm
KChhR3wwKT09LTEpe2NbZj4+Ml09MDthRj0xO2JyZWFrfWVsc2V7YUY9KGNbZj4+Ml18MCk9PTA7
YnJlYWt9fX13aGlsZSgwKTthcj1jW2I+PjJdfDA7ZG97aWYoKGFyfDApPT0wKXtaPTkxNX1lbHNl
e2FzPWNbYXIrMTI+PjJdfDA7aWYoKGFzfDApPT0oY1thcisxNj4+Ml18MCkpe2FIPWIwW2NbKGNb
YXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwfWVsc2V7YUg9Y1thcz4+Ml18MH1pZigoYUh8MCk9
PS0xKXtjW2I+PjJdPTA7Wj05MTU7YnJlYWt9ZWxzZXtpZihhRl4oYXJ8MCk9PTApe2JyZWFrfWVs
c2V7YnJlYWsgTDk3NX19fX13aGlsZSgwKTtpZigoWnwwKT09OTE1KXtaPTA7aWYoYUYpe2JyZWFr
fX1hcj1jW2Y+PjJdfDA7YXM9Y1thcisxMj4+Ml18MDtpZigoYXN8MCk9PShjW2FyKzE2Pj4yXXww
KSl7YUk9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXthST1jW2FzPj4y
XXwwfWlmKGIxW2NbKGNbZT4+Ml18MCkrMTI+PjJdJjYzXShsLDIwNDgsYUkpfDApe2FzPWNbbj4+
Ml18MDtpZigoYXN8MCk9PShjW3E+PjJdfDApKXtoMyhtLG4scSk7YUo9Y1tuPj4yXXwwfWVsc2V7
YUo9YXN9Y1tuPj4yXT1hSis0O2NbYUo+PjJdPWFJO2FLPVYrMXwwO2FMPVg7YU09YXA7YU49YXQ7
YU89YXV9ZWxzZXthcz1kW3ddfDA7aWYoKCgoYXMmMXwwKT09MD9hcz4+PjE6Y1tRPj4yXXwwKXww
KT09MHwoVnwwKT09MCl7YnJlYWt9aWYoKGFJfDApIT0oY1t1Pj4yXXwwKSl7YnJlYWt9aWYoKGFw
fDApPT0oWHwwKSl7YXM9KGF1fDApIT0xNjY7YXI9YXAtYXR8MDtheD1hcj4+PjA8MjE0NzQ4MzY0
Nz9hcjw8MTotMTtpZihhcyl7YVA9YXR9ZWxzZXthUD0wfWFzPWtMKGFQLGF4KXwwO2F3PWFzO2lm
KChhc3wwKT09MCl7a1goKX1hUT1hdysoYXg+Pj4yPDwyKXwwO2FSPWF3Kyhhcj4+Mjw8Mil8MDth
Uz1hdzthVD04Mn1lbHNle2FRPVg7YVI9YXA7YVM9YXQ7YVQ9YXV9Y1thUj4+Ml09VjthSz0wO2FM
PWFRO2FNPWFSKzR8MDthTj1hUzthTz1hVH1hdz1jW2Y+PjJdfDA7YXI9YXcrMTJ8MDtheD1jW2Fy
Pj4yXXwwO2lmKChheHwwKT09KGNbYXcrMTY+PjJdfDApKXthcz1jWyhjW2F3Pj4yXXwwKSs0MD4+
Ml18MDtiMFthcyYxMjddKGF3KXwwO1Y9YUs7WD1hTDthcD1hTTthdD1hTjthdT1hTztjb250aW51
ZX1lbHNle2NbYXI+PjJdPWF4KzQ7Vj1hSztYPWFMO2FwPWFNO2F0PWFOO2F1PWFPO2NvbnRpbnVl
fX1pZigoYXR8MCk9PShhcHwwKXwoVnwwKT09MCl7YVU9WDthVj1hcDthVz1hdDthWD1hdX1lbHNl
e2lmKChhcHwwKT09KFh8MCkpe2F4PShhdXwwKSE9MTY2O2FyPWFwLWF0fDA7YXc9YXI+Pj4wPDIx
NDc0ODM2NDc/YXI8PDE6LTE7aWYoYXgpe2FZPWF0fWVsc2V7YVk9MH1heD1rTChhWSxhdyl8MDth
cz1heDtpZigoYXh8MCk9PTApe2tYKCl9YVo9YXMrKGF3Pj4+Mjw8Mil8MDthXz1hcysoYXI+PjI8
PDIpfDA7YSQ9YXM7YTA9ODJ9ZWxzZXthWj1YO2FfPWFwO2EkPWF0O2EwPWF1fWNbYV8+PjJdPVY7
YVU9YVo7YVY9YV8rNHwwO2FXPWEkO2FYPWEwfWFzPWNbQj4+Ml18MDtpZigoYXN8MCk+MCl7YXI9
Y1tmPj4yXXwwO2Rve2lmKChhcnwwKT09MCl7YTE9MX1lbHNle2F3PWNbYXIrMTI+PjJdfDA7aWYo
KGF3fDApPT0oY1thcisxNj4+Ml18MCkpe2EyPWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjdd
KGFyKXwwfWVsc2V7YTI9Y1thdz4+Ml18MH1pZigoYTJ8MCk9PS0xKXtjW2Y+PjJdPTA7YTE9MTti
cmVha31lbHNle2ExPShjW2Y+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7YXI9Y1tiPj4yXXww
O2Rve2lmKChhcnwwKT09MCl7Wj05NjR9ZWxzZXtWPWNbYXIrMTI+PjJdfDA7aWYoKFZ8MCk9PShj
W2FyKzE2Pj4yXXwwKSl7YTM9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxz
ZXthMz1jW1Y+PjJdfDB9aWYoKGEzfDApPT0tMSl7Y1tiPj4yXT0wO1o9OTY0O2JyZWFrfWVsc2V7
aWYoYTFeKGFyfDApPT0wKXthND1hcjticmVha31lbHNle1o9OTcwO2JyZWFrIEw4OTB9fX19d2hp
bGUoMCk7aWYoKFp8MCk9PTk2NCl7Wj0wO2lmKGExKXtaPTk3MDticmVhayBMODkwfWVsc2V7YTQ9
MH19YXI9Y1tmPj4yXXwwO1Y9Y1thcisxMj4+Ml18MDtpZigoVnwwKT09KGNbYXIrMTY+PjJdfDAp
KXthNT1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2E1PWNbVj4+Ml18
MH1pZigoYTV8MCkhPShjW3Q+PjJdfDApKXtaPTk3MDticmVhayBMODkwfVY9Y1tmPj4yXXwwO2Fy
PVYrMTJ8MDthdT1jW2FyPj4yXXwwO2lmKChhdXwwKT09KGNbVisxNj4+Ml18MCkpe2F0PWNbKGNb
Vj4+Ml18MCkrNDA+PjJdfDA7YjBbYXQmMTI3XShWKXwwO2E2PWE0O2E3PWFzfWVsc2V7Y1thcj4+
Ml09YXUrNDthNj1hNDthNz1hc313aGlsZSgxKXthdT1jW2Y+PjJdfDA7ZG97aWYoKGF1fDApPT0w
KXthOD0xfWVsc2V7YXI9Y1thdSsxMj4+Ml18MDtpZigoYXJ8MCk9PShjW2F1KzE2Pj4yXXwwKSl7
YTk9YjBbY1soY1thdT4+Ml18MCkrMzY+PjJdJjEyN10oYXUpfDB9ZWxzZXthOT1jW2FyPj4yXXww
fWlmKChhOXwwKT09LTEpe2NbZj4+Ml09MDthOD0xO2JyZWFrfWVsc2V7YTg9KGNbZj4+Ml18MCk9
PTA7YnJlYWt9fX13aGlsZSgwKTtkb3tpZigoYTZ8MCk9PTApe1o9OTg3fWVsc2V7YXU9Y1thNisx
Mj4+Ml18MDtpZigoYXV8MCk9PShjW2E2KzE2Pj4yXXwwKSl7YmE9YjBbY1soY1thNj4+Ml18MCkr
MzY+PjJdJjEyN10oYTYpfDB9ZWxzZXtiYT1jW2F1Pj4yXXwwfWlmKChiYXwwKT09LTEpe2NbYj4+
Ml09MDtaPTk4NzticmVha31lbHNle2lmKGE4XihhNnwwKT09MCl7YmI9YTY7YnJlYWt9ZWxzZXta
PTk5NDticmVhayBMODkwfX19fXdoaWxlKDApO2lmKChafDApPT05ODcpe1o9MDtpZihhOCl7Wj05
OTQ7YnJlYWsgTDg5MH1lbHNle2JiPTB9fWF1PWNbZj4+Ml18MDthcj1jW2F1KzEyPj4yXXwwO2lm
KChhcnwwKT09KGNbYXUrMTY+PjJdfDApKXtiYz1iMFtjWyhjW2F1Pj4yXXwwKSszNj4+Ml0mMTI3
XShhdSl8MH1lbHNle2JjPWNbYXI+PjJdfDB9aWYoIShiMVtjWyhjW2U+PjJdfDApKzEyPj4yXSY2
M10obCwyMDQ4LGJjKXwwKSl7Wj05OTQ7YnJlYWsgTDg5MH1pZigoY1tuPj4yXXwwKT09KGNbcT4+
Ml18MCkpe2gzKG0sbixxKX1hcj1jW2Y+PjJdfDA7YXU9Y1thcisxMj4+Ml18MDtpZigoYXV8MCk9
PShjW2FyKzE2Pj4yXXwwKSl7YmQ9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9
ZWxzZXtiZD1jW2F1Pj4yXXwwfWF1PWNbbj4+Ml18MDtjW24+PjJdPWF1KzQ7Y1thdT4+Ml09YmQ7
YXU9YTctMXwwO2NbQj4+Ml09YXU7YXI9Y1tmPj4yXXwwO1Y9YXIrMTJ8MDthdD1jW1Y+PjJdfDA7
aWYoKGF0fDApPT0oY1thcisxNj4+Ml18MCkpe2FwPWNbKGNbYXI+PjJdfDApKzQwPj4yXXwwO2Iw
W2FwJjEyN10oYXIpfDB9ZWxzZXtjW1Y+PjJdPWF0KzR9aWYoKGF1fDApPjApe2E2PWJiO2E3PWF1
fWVsc2V7YnJlYWt9fX1pZigoY1tuPj4yXXwwKT09KGNbZz4+Ml18MCkpe1o9MTAwNTticmVhayBM
ODkwfWVsc2V7YWY9cjthZz1hVTthaD1hVjthaT1hVzthaj1hWH1icmVha307Y2FzZSAxOntpZigo
VXwwKT09Myl7YWE9UjthYj1TO2FjPVQ7YWQ9cjtaPTEwMDc7YnJlYWsgTDg5MH1hcz1jW2Y+PjJd
fDA7YXU9Y1thcysxMj4+Ml18MDtpZigoYXV8MCk9PShjW2FzKzE2Pj4yXXwwKSl7YmU9YjBbY1so
Y1thcz4+Ml18MCkrMzY+PjJdJjEyN10oYXMpfDB9ZWxzZXtiZT1jW2F1Pj4yXXwwfWlmKCEoYjFb
Y1soY1tlPj4yXXwwKSsxMj4+Ml0mNjNdKGwsODE5MixiZSl8MCkpe1o9NzkxO2JyZWFrIEw4OTB9
YXU9Y1tmPj4yXXwwO2FzPWF1KzEyfDA7YXQ9Y1thcz4+Ml18MDtpZigoYXR8MCk9PShjW2F1KzE2
Pj4yXXwwKSl7YmY9YjBbY1soY1thdT4+Ml18MCkrNDA+PjJdJjEyN10oYXUpfDB9ZWxzZXtjW2Fz
Pj4yXT1hdCs0O2JmPWNbYXQ+PjJdfDB9ZWgoQSxiZik7Wj03OTI7YnJlYWt9O2Nhc2UgMDp7Wj03
OTI7YnJlYWt9O2Nhc2UgMzp7YXQ9YVtFXXwwO2FzPWF0JjI1NTthdT0oYXMmMXwwKT09MDtWPWFb
Rl18MDthcj1WJjI1NTthcD0oYXImMXwwKT09MDtpZigoKGF1P2FzPj4+MTpjW0o+PjJdfDApfDAp
PT0oLShhcD9hcj4+PjE6Y1tIPj4yXXwwKXwwKSl7YWY9cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2Jy
ZWFrIEw5MTR9ZG97aWYoKChhdT9hcz4+PjE6Y1tKPj4yXXwwKXwwKSE9MCl7aWYoKChhcD9hcj4+
PjE6Y1tIPj4yXXwwKXwwKT09MCl7YnJlYWt9WD1jW2Y+PjJdfDA7YXc9Y1tYKzEyPj4yXXwwO2lm
KChhd3wwKT09KGNbWCsxNj4+Ml18MCkpe2F4PWIwW2NbKGNbWD4+Ml18MCkrMzY+PjJdJjEyN10o
WCl8MDtiZz1heDtiaD1hW0VdfDB9ZWxzZXtiZz1jW2F3Pj4yXXwwO2JoPWF0fWF3PWNbZj4+Ml18
MDtheD1hdysxMnwwO1g9Y1theD4+Ml18MDthdj0oWHwwKT09KGNbYXcrMTY+PjJdfDApO2lmKChi
Z3wwKT09KGNbKChiaCYxKT09MD9KOmNbSz4+Ml18MCk+PjJdfDApKXtpZihhdil7Ymk9Y1soY1th
dz4+Ml18MCkrNDA+PjJdfDA7YjBbYmkmMTI3XShhdyl8MH1lbHNle2NbYXg+PjJdPVgrNH1heD1k
W0VdfDA7YWY9KChheCYxfDApPT0wP2F4Pj4+MTpjW0o+PjJdfDApPj4+MD4xP3k6cjthZz1vO2Fo
PVQ7YWk9Uzthaj1SO2JyZWFrIEw5MTR9aWYoYXYpe2JqPWIwW2NbKGNbYXc+PjJdfDApKzM2Pj4y
XSYxMjddKGF3KXwwfWVsc2V7Ymo9Y1tYPj4yXXwwfWlmKChianwwKSE9KGNbKChhW0ZdJjEpPT0w
P0g6Y1tJPj4yXXwwKT4+Ml18MCkpe1o9ODU3O2JyZWFrIEw4OTB9WD1jW2Y+PjJdfDA7YXc9WCsx
MnwwO2F2PWNbYXc+PjJdfDA7aWYoKGF2fDApPT0oY1tYKzE2Pj4yXXwwKSl7YXg9Y1soY1tYPj4y
XXwwKSs0MD4+Ml18MDtiMFtheCYxMjddKFgpfDB9ZWxzZXtjW2F3Pj4yXT1hdis0fWFba109MTth
dj1kW0ZdfDA7YWY9KChhdiYxfDApPT0wP2F2Pj4+MTpjW0g+PjJdfDApPj4+MD4xP3o6cjthZz1v
O2FoPVQ7YWk9Uzthaj1SO2JyZWFrIEw5MTR9fXdoaWxlKDApO2FyPWNbZj4+Ml18MDthcD1jW2Fy
KzEyPj4yXXwwO2F2PShhcHwwKT09KGNbYXIrMTY+PjJdfDApO2lmKCgoYXU/YXM+Pj4xOmNbSj4+
Ml18MCl8MCk9PTApe2lmKGF2KXthdz1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8
MDtiaz1hdztibD1hW0ZdfDB9ZWxzZXtiaz1jW2FwPj4yXXwwO2JsPVZ9aWYoKGJrfDApIT0oY1so
KGJsJjEpPT0wP0g6Y1tJPj4yXXwwKT4+Ml18MCkpe2FmPXI7YWc9bzthaD1UO2FpPVM7YWo9Ujti
cmVhayBMOTE0fWF3PWNbZj4+Ml18MDtYPWF3KzEyfDA7YXg9Y1tYPj4yXXwwO2lmKChheHwwKT09
KGNbYXcrMTY+PjJdfDApKXtiaT1jWyhjW2F3Pj4yXXwwKSs0MD4+Ml18MDtiMFtiaSYxMjddKGF3
KXwwfWVsc2V7Y1tYPj4yXT1heCs0fWFba109MTtheD1kW0ZdfDA7YWY9KChheCYxfDApPT0wP2F4
Pj4+MTpjW0g+PjJdfDApPj4+MD4xP3o6cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFrIEw5MTR9
aWYoYXYpe2F2PWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwO2JtPWF2O2JuPWFb
RV18MH1lbHNle2JtPWNbYXA+PjJdfDA7Ym49YXR9aWYoKGJtfDApIT0oY1soKGJuJjEpPT0wP0o6
Y1tLPj4yXXwwKT4+Ml18MCkpe2Fba109MTthZj1yO2FnPW87YWg9VDthaT1TO2FqPVI7YnJlYWsg
TDkxNH1hcD1jW2Y+PjJdfDA7YXY9YXArMTJ8MDthcj1jW2F2Pj4yXXwwO2lmKChhcnwwKT09KGNb
YXArMTY+PjJdfDApKXtheD1jWyhjW2FwPj4yXXwwKSs0MD4+Ml18MDtiMFtheCYxMjddKGFwKXww
fWVsc2V7Y1thdj4+Ml09YXIrNH1hcj1kW0VdfDA7YWY9KChhciYxfDApPT0wP2FyPj4+MTpjW0o+
PjJdfDApPj4+MD4xP3k6cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFrfTtkZWZhdWx0OnthZj1y
O2FnPW87YWg9VDthaT1TO2FqPVJ9fX13aGlsZSgwKTtMMTE4Mzpkb3tpZigoWnwwKT09NzkyKXta
PTA7aWYoKFV8MCk9PTMpe2FhPVI7YWI9UzthYz1UO2FkPXI7Wj0xMDA3O2JyZWFrIEw4OTB9ZWxz
ZXtibz0kfXdoaWxlKDEpe2FyPWNbZj4+Ml18MDtkb3tpZigoYXJ8MCk9PTApe2JwPTF9ZWxzZXth
dj1jW2FyKzEyPj4yXXwwO2lmKChhdnwwKT09KGNbYXIrMTY+PjJdfDApKXticT1iMFtjWyhjW2Fy
Pj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2JxPWNbYXY+PjJdfDB9aWYoKGJxfDApPT0t
MSl7Y1tmPj4yXT0wO2JwPTE7YnJlYWt9ZWxzZXticD0oY1tmPj4yXXwwKT09MDticmVha319fXdo
aWxlKDApO2Rve2lmKChib3wwKT09MCl7Wj04MDZ9ZWxzZXthcj1jW2JvKzEyPj4yXXwwO2lmKChh
cnwwKT09KGNbYm8rMTY+PjJdfDApKXticj1iMFtjWyhjW2JvPj4yXXwwKSszNj4+Ml0mMTI3XShi
byl8MH1lbHNle2JyPWNbYXI+PjJdfDB9aWYoKGJyfDApPT0tMSl7Y1tiPj4yXT0wO1o9ODA2O2Jy
ZWFrfWVsc2V7aWYoYnBeKGJvfDApPT0wKXticz1ibzticmVha31lbHNle2FmPXI7YWc9bzthaD1U
O2FpPVM7YWo9UjticmVhayBMMTE4M319fX13aGlsZSgwKTtpZigoWnwwKT09ODA2KXtaPTA7aWYo
YnApe2FmPXI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVhayBMMTE4M31lbHNle2JzPTB9fWFyPWNb
Zj4+Ml18MDthdj1jW2FyKzEyPj4yXXwwO2lmKChhdnwwKT09KGNbYXIrMTY+PjJdfDApKXtidD1i
MFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2J0PWNbYXY+PjJdfDB9aWYo
IShiMVtjWyhjW2U+PjJdfDApKzEyPj4yXSY2M10obCw4MTkyLGJ0KXwwKSl7YWY9cjthZz1vO2Fo
PVQ7YWk9Uzthaj1SO2JyZWFrIEwxMTgzfWF2PWNbZj4+Ml18MDthcj1hdisxMnwwO2FwPWNbYXI+
PjJdfDA7aWYoKGFwfDApPT0oY1thdisxNj4+Ml18MCkpe2J1PWIwW2NbKGNbYXY+PjJdfDApKzQw
Pj4yXSYxMjddKGF2KXwwfWVsc2V7Y1thcj4+Ml09YXArNDtidT1jW2FwPj4yXXwwfWVoKEEsYnUp
O2JvPWJzfX19d2hpbGUoMCk7YXQ9VSsxfDA7aWYoYXQ+Pj4wPDQpe1I9YWo7Uz1haTtUPWFoO289
YWc7cj1hZjtVPWF0fWVsc2V7YWE9YWo7YWI9YWk7YWM9YWg7YWQ9YWY7Wj0xMDA3O2JyZWFrfX1M
MTIyMDpkb3tpZigoWnwwKT09ODU3KXtjW2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PVM7Yng9Un1l
bHNlIGlmKChafDApPT05MDEpe2Nbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9UztieD1SfWVsc2Ug
aWYoKFp8MCk9PTk3MCl7Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hVztieD1hWH1lbHNlIGlm
KChafDApPT05OTQpe2Nbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9YVc7Yng9YVh9ZWxzZSBpZigo
WnwwKT09MTAwNSl7Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hVztieD1hWH1lbHNlIGlmKCha
fDApPT0xMDA3KXtMMTIyNzpkb3tpZigoYWR8MCkhPTApe2FmPWFkO2FoPWFkKzR8MDthaT1hZCs4
fDA7YWo9MTtMMTIyOTp3aGlsZSgxKXtVPWRbYWZdfDA7aWYoKFUmMXwwKT09MCl7Ynk9VT4+PjF9
ZWxzZXtieT1jW2FoPj4yXXwwfWlmKGFqPj4+MD49Ynk+Pj4wKXticmVhayBMMTIyN31VPWNbZj4+
Ml18MDtkb3tpZigoVXwwKT09MCl7Yno9MX1lbHNle3I9Y1tVKzEyPj4yXXwwO2lmKChyfDApPT0o
Y1tVKzE2Pj4yXXwwKSl7YkE9YjBbY1soY1tVPj4yXXwwKSszNj4+Ml0mMTI3XShVKXwwfWVsc2V7
YkE9Y1tyPj4yXXwwfWlmKChiQXwwKT09LTEpe2NbZj4+Ml09MDtiej0xO2JyZWFrfWVsc2V7Yno9
KGNbZj4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTtVPWNbYj4+Ml18MDtkb3tpZigoVXwwKT09
MCl7Wj0xMDI2fWVsc2V7cj1jW1UrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW1UrMTY+PjJdfDApKXti
Qj1iMFtjWyhjW1U+PjJdfDApKzM2Pj4yXSYxMjddKFUpfDB9ZWxzZXtiQj1jW3I+PjJdfDB9aWYo
KGJCfDApPT0tMSl7Y1tiPj4yXT0wO1o9MTAyNjticmVha31lbHNle2lmKGJ6XihVfDApPT0wKXti
cmVha31lbHNle2JyZWFrIEwxMjI5fX19fXdoaWxlKDApO2lmKChafDApPT0xMDI2KXtaPTA7aWYo
Ynope2JyZWFrfX1VPWNbZj4+Ml18MDtyPWNbVSsxMj4+Ml18MDtpZigocnwwKT09KGNbVSsxNj4+
Ml18MCkpe2JDPWIwW2NbKGNbVT4+Ml18MCkrMzY+PjJdJjEyN10oVSl8MH1lbHNle2JDPWNbcj4+
Ml18MH1pZigoYVthZl0mMSk9PTApe2JEPWFofWVsc2V7YkQ9Y1thaT4+Ml18MH1pZigoYkN8MCkh
PShjW2JEKyhhajw8Mik+PjJdfDApKXticmVha31yPWFqKzF8MDtVPWNbZj4+Ml18MDthZz1VKzEy
fDA7bz1jW2FnPj4yXXwwO2lmKChvfDApPT0oY1tVKzE2Pj4yXXwwKSl7VD1jWyhjW1U+PjJdfDAp
KzQwPj4yXXwwO2IwW1QmMTI3XShVKXwwO2FqPXI7Y29udGludWV9ZWxzZXtjW2FnPj4yXT1vKzQ7
YWo9cjtjb250aW51ZX19Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hYjtieD1hYTticmVhayBM
MTIyMH19d2hpbGUoMCk7aWYoKGFifDApPT0oYWN8MCkpe2J2PTE7Ync9YWM7Yng9YWE7YnJlYWt9
Y1tDPj4yXT0wO2Z0KHYsYWIsYWMsQyk7aWYoKGNbQz4+Ml18MCk9PTApe2J2PTE7Ync9YWI7Yng9
YWE7YnJlYWt9Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hYjtieD1hYX1lbHNlIGlmKChafDAp
PT03OTEpe2Nbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9UztieD1SfX13aGlsZSgwKTtlZShBKTtl
ZSh6KTtlZSh5KTtlZSh4KTtkUCh2KTtpZigoYnd8MCk9PTApe2k9cDtyZXR1cm4gYnZ8MH1iWVti
eCY1MTFdKGJ3KTtpPXA7cmV0dXJuIGJ2fDB9ZnVuY3Rpb24gaF8oYixkLGUpe2I9YnwwO2Q9ZHww
O2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTA7Zj1iO2c9
ZDtoPWFbZl18MDtpPWgmMjU1O2lmKChpJjF8MCk9PTApe2o9aT4+PjF9ZWxzZXtqPWNbYis0Pj4y
XXwwfWlmKChoJjEpPT0wKXtrPTE7bD1ofWVsc2V7aD1jW2I+PjJdfDA7az0oaCYtMiktMXwwO2w9
aCYyNTV9aD1lLWc+PjI7aWYoKGh8MCk9PTApe3JldHVybiBifDB9aWYoKGstanwwKT4+PjA8aD4+
PjApe2VCKGIsayxqK2gta3wwLGosaiwwLDApO209YVtmXXwwfWVsc2V7bT1sfWlmKChtJjEpPT0w
KXtuPWIrNHwwfWVsc2V7bj1jW2IrOD4+Ml18MH1tPW4rKGo8PDIpfDA7aWYoKGR8MCk9PShlfDAp
KXtvPW19ZWxzZXtsPWorKChlLTQrKC1nfDApfDApPj4+MikrMXwwO2c9ZDtkPW07d2hpbGUoMSl7
Y1tkPj4yXT1jW2c+PjJdO209Zys0fDA7aWYoKG18MCk9PShlfDApKXticmVha31lbHNle2c9bTtk
PWQrNHwwfX1vPW4rKGw8PDIpfDB9Y1tvPj4yXT0wO289aitofDA7aWYoKGFbZl0mMSk9PTApe2Fb
Zl09bzw8MSYyNTU7cmV0dXJuIGJ8MH1lbHNle2NbYis0Pj4yXT1vO3JldHVybiBifDB9cmV0dXJu
IDB9ZnVuY3Rpb24gaCQoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaDAo
YSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaDEoYixkLGUsZixnLGgsaixrKXtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9
MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MDtkPWk7aT1pKzQ1NnwwO2w9ZTtlPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2U+PjJdPWNbbD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
Zj4+Ml09Y1tsPj4yXTtsPWR8MDttPWQrMTZ8MDtuPWQrNDE2fDA7bz1kKzQyNHwwO3A9ZCs0MzJ8
MDtxPWQrNDQwfDA7cj1kKzQ0OHwwO3M9bnwwO2Nbcz4+Ml09bTt0PW4rNHwwO2NbdD4+Ml09MTY2
O3U9bSs0MDB8MDtlaihwLGgpO209cHwwO3Y9Y1ttPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7
Y1tsPj4yXT0xNTY4ODtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2ODgsbCw5Nil9bD0o
Y1szOTIzXXwwKS0xfDA7dz1jW3YrOD4+Ml18MDtkb3tpZigoY1t2KzEyPj4yXXwwKS13Pj4yPj4+
MD5sPj4+MCl7eD1jW3crKGw8PDIpPj4yXXwwO2lmKCh4fDApPT0wKXticmVha315PXg7YVtxXT0w
O3o9ZnwwO0E9Y1t6Pj4yXXwwO2Nbcj4+Ml09QTtpZihoWihlLHIsZyxwLGNbaCs0Pj4yXXwwLGos
cSx5LG4sbyx1KXwwKXtCPWs7aWYoKGFbQl0mMSk9PTApe2Nbays0Pj4yXT0wO2FbQl09MH1lbHNl
e2NbY1trKzg+PjJdPj4yXT0wO2Nbays0Pj4yXT0wfUI9eDtpZigoYVtxXSYxKSE9MCl7ZWgoayxi
X1tjWyhjW0I+PjJdfDApKzQ0Pj4yXSYzMV0oeSw0NSl8MCl9eD1iX1tjWyhjW0I+PjJdfDApKzQ0
Pj4yXSYzMV0oeSw0OCl8MDt5PWNbbz4+Ml18MDtCPXktNHwwO0M9Y1tzPj4yXXwwO3doaWxlKDEp
e2lmKEM+Pj4wPj1CPj4+MCl7YnJlYWt9aWYoKGNbQz4+Ml18MCk9PSh4fDApKXtDPUMrNHwwfWVs
c2V7YnJlYWt9fWhfKGssQyx5KXwwfXg9ZXwwO0I9Y1t4Pj4yXXwwO2Rve2lmKChCfDApPT0wKXtE
PTB9ZWxzZXtFPWNbQisxMj4+Ml18MDtpZigoRXwwKT09KGNbQisxNj4+Ml18MCkpe0Y9YjBbY1so
Y1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7Rj1jW0U+PjJdfDB9aWYoKEZ8MCkhPS0x
KXtEPUI7YnJlYWt9Y1t4Pj4yXT0wO0Q9MH19d2hpbGUoMCk7eD0oRHwwKT09MDtkb3tpZigoQXww
KT09MCl7Rz0xMTA1fWVsc2V7Qj1jW0ErMTI+PjJdfDA7aWYoKEJ8MCk9PShjW0ErMTY+PjJdfDAp
KXtIPWIwW2NbKGNbQT4+Ml18MCkrMzY+PjJdJjEyN10oQSl8MH1lbHNle0g9Y1tCPj4yXXwwfWlm
KChIfDApPT0tMSl7Y1t6Pj4yXT0wO0c9MTEwNTticmVha31lbHNle2lmKHheKEF8MCk9PTApe2Jy
ZWFrfWVsc2V7Rz0xMTA3O2JyZWFrfX19fXdoaWxlKDApO2lmKChHfDApPT0xMTA1KXtpZih4KXtH
PTExMDd9fWlmKChHfDApPT0xMTA3KXtjW2o+PjJdPWNbaj4+Ml18Mn1jW2I+PjJdPUQ7QT1jW20+
PjJdfDA7ZHooQSl8MDtBPWNbcz4+Ml18MDtjW3M+PjJdPTA7aWYoKEF8MCk9PTApe2k9ZDtyZXR1
cm59YllbY1t0Pj4yXSY1MTFdKEEpO2k9ZDtyZXR1cm59fXdoaWxlKDApO2Q9Yk8oNCl8MDtrcShk
KTtibChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGgyKGIsZCxlLGYsZyxoLGosayxsLG0pe2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO3Zh
ciBuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0w
LEI9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MDtuPWk7
aT1pKzU2fDA7bz1ufDA7cD1uKzE2fDA7cT1uKzMyfDA7cj1uKzQwfDA7cz1yO3Q9aTtpPWkrMTJ8
MDtpPWkrNz4+Mzw8Mzt1PXQ7dj1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3c9djt4PWk7aT1pKzEy
fDA7aT1pKzc+PjM8PDM7eT14O3o9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0E9aTtpPWkrMTJ8MDtp
PWkrNz4+Mzw8MztCPUE7RD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0U9RDtGPWk7aT1pKzEyfDA7
aT1pKzc+PjM8PDM7Rz1GO0g9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztJPUg7aWYoYil7Yj1jW2Q+
PjJdfDA7aWYoKGNbNDA0MF18MCkhPS0xKXtjW3A+PjJdPTE2MTYwO2NbcCs0Pj4yXT0xMjtjW3Ar
OD4+Ml09MDtkVygxNjE2MCxwLDk2KX1wPShjWzQwNDFdfDApLTF8MDtKPWNbYis4Pj4yXXwwO2lm
KChjW2IrMTI+PjJdfDApLUo+PjI+Pj4wPD1wPj4+MCl7Sz1iTyg0KXwwO0w9SztrcShMKTtibChL
fDAsODE3NiwxMzQpfWI9Y1tKKyhwPDwyKT4+Ml18MDtpZigoYnwwKT09MCl7Sz1iTyg0KXwwO0w9
SztrcShMKTtibChLfDAsODE3NiwxMzQpfUs9YjtiWltjWyhjW2I+PjJdfDApKzQ0Pj4yXSYxMjdd
KHEsSyk7TD1lO0M9Y1txPj4yXXwwO2FbTF09QyYyNTU7Qz1DPj44O2FbTCsxfDBdPUMmMjU1O0M9
Qz4+ODthW0wrMnwwXT1DJjI1NTtDPUM+Pjg7YVtMKzN8MF09QyYyNTU7TD1iO2JaW2NbKGNbTD4+
Ml18MCkrMzI+PjJdJjEyN10ocixLKTtxPWw7aWYoKGFbcV0mMSk9PTApe2NbbCs0Pj4yXT0wO2Fb
cV09MH1lbHNle2NbY1tsKzg+PjJdPj4yXT0wO2NbbCs0Pj4yXT0wfWV6KGwsMCk7Y1txPj4yXT1j
W3M+PjJdO2NbcSs0Pj4yXT1jW3MrND4+Ml07Y1txKzg+PjJdPWNbcys4Pj4yXTtrJChzfDAsMCwx
Mik7ZWUocik7YlpbY1soY1tMPj4yXXwwKSsyOD4+Ml0mMTI3XSh0LEspO3I9aztpZigoYVtyXSYx
KT09MCl7Y1trKzQ+PjJdPTA7YVtyXT0wfWVsc2V7Y1tjW2srOD4+Ml0+PjJdPTA7Y1trKzQ+PjJd
PTB9ZXooaywwKTtjW3I+PjJdPWNbdT4+Ml07Y1tyKzQ+PjJdPWNbdSs0Pj4yXTtjW3IrOD4+Ml09
Y1t1Kzg+PjJdO2skKHV8MCwwLDEyKTtlZSh0KTt0PWI7Y1tmPj4yXT1iMFtjWyhjW3Q+PjJdfDAp
KzEyPj4yXSYxMjddKEspfDA7Y1tnPj4yXT1iMFtjWyhjW3Q+PjJdfDApKzE2Pj4yXSYxMjddKEsp
fDA7YlpbY1soY1tiPj4yXXwwKSsyMD4+Ml0mMTI3XSh2LEspO2I9aDtpZigoYVtiXSYxKT09MCl7
YVtoKzF8MF09MDthW2JdPTB9ZWxzZXthW2NbaCs4Pj4yXXwwXT0wO2NbaCs0Pj4yXT0wfWQkKGgs
MCk7Y1tiPj4yXT1jW3c+PjJdO2NbYis0Pj4yXT1jW3crND4+Ml07Y1tiKzg+PjJdPWNbdys4Pj4y
XTtrJCh3fDAsMCwxMik7ZFAodik7YlpbY1soY1tMPj4yXXwwKSsyND4+Ml0mMTI3XSh4LEspO0w9
ajtpZigoYVtMXSYxKT09MCl7Y1tqKzQ+PjJdPTA7YVtMXT0wfWVsc2V7Y1tjW2orOD4+Ml0+PjJd
PTA7Y1tqKzQ+PjJdPTB9ZXooaiwwKTtjW0w+PjJdPWNbeT4+Ml07Y1tMKzQ+PjJdPWNbeSs0Pj4y
XTtjW0wrOD4+Ml09Y1t5Kzg+PjJdO2skKHl8MCwwLDEyKTtlZSh4KTtNPWIwW2NbKGNbdD4+Ml18
MCkrMzY+PjJdJjEyN10oSyl8MDtjW20+PjJdPU07aT1uO3JldHVybn1lbHNle0s9Y1tkPj4yXXww
O2lmKChjWzQwNDJdfDApIT0tMSl7Y1tvPj4yXT0xNjE2ODtjW28rND4+Ml09MTI7Y1tvKzg+PjJd
PTA7ZFcoMTYxNjgsbyw5Nil9bz0oY1s0MDQzXXwwKS0xfDA7ZD1jW0srOD4+Ml18MDtpZigoY1tL
KzEyPj4yXXwwKS1kPj4yPj4+MDw9bz4+PjApe049Yk8oNCl8MDtPPU47a3EoTyk7YmwoTnwwLDgx
NzYsMTM0KX1LPWNbZCsobzw8Mik+PjJdfDA7aWYoKEt8MCk9PTApe049Yk8oNCl8MDtPPU47a3Eo
Tyk7YmwoTnwwLDgxNzYsMTM0KX1OPUs7YlpbY1soY1tLPj4yXXwwKSs0ND4+Ml0mMTI3XSh6LE4p
O089ZTtDPWNbej4+Ml18MDthW09dPUMmMjU1O0M9Qz4+ODthW08rMXwwXT1DJjI1NTtDPUM+Pjg7
YVtPKzJ8MF09QyYyNTU7Qz1DPj44O2FbTyszfDBdPUMmMjU1O089SztiWltjWyhjW08+PjJdfDAp
KzMyPj4yXSYxMjddKEEsTik7ej1sO2lmKChhW3pdJjEpPT0wKXtjW2wrND4+Ml09MDthW3pdPTB9
ZWxzZXtjW2NbbCs4Pj4yXT4+Ml09MDtjW2wrND4+Ml09MH1leihsLDApO2Nbej4+Ml09Y1tCPj4y
XTtjW3orND4+Ml09Y1tCKzQ+PjJdO2Nbeis4Pj4yXT1jW0IrOD4+Ml07ayQoQnwwLDAsMTIpO2Vl
KEEpO2JaW2NbKGNbTz4+Ml18MCkrMjg+PjJdJjEyN10oRCxOKTtBPWs7aWYoKGFbQV0mMSk9PTAp
e2Nbays0Pj4yXT0wO2FbQV09MH1lbHNle2NbY1trKzg+PjJdPj4yXT0wO2Nbays0Pj4yXT0wfWV6
KGssMCk7Y1tBPj4yXT1jW0U+PjJdO2NbQSs0Pj4yXT1jW0UrND4+Ml07Y1tBKzg+PjJdPWNbRSs4
Pj4yXTtrJChFfDAsMCwxMik7ZWUoRCk7RD1LO2NbZj4+Ml09YjBbY1soY1tEPj4yXXwwKSsxMj4+
Ml0mMTI3XShOKXwwO2NbZz4+Ml09YjBbY1soY1tEPj4yXXwwKSsxNj4+Ml0mMTI3XShOKXwwO2Ja
W2NbKGNbSz4+Ml18MCkrMjA+PjJdJjEyN10oRixOKTtLPWg7aWYoKGFbS10mMSk9PTApe2FbaCsx
fDBdPTA7YVtLXT0wfWVsc2V7YVtjW2grOD4+Ml18MF09MDtjW2grND4+Ml09MH1kJChoLDApO2Nb
Sz4+Ml09Y1tHPj4yXTtjW0srND4+Ml09Y1tHKzQ+PjJdO2NbSys4Pj4yXT1jW0crOD4+Ml07ayQo
R3wwLDAsMTIpO2RQKEYpO2JaW2NbKGNbTz4+Ml18MCkrMjQ+PjJdJjEyN10oSCxOKTtPPWo7aWYo
KGFbT10mMSk9PTApe2Nbais0Pj4yXT0wO2FbT109MH1lbHNle2NbY1tqKzg+PjJdPj4yXT0wO2Nb
ais0Pj4yXT0wfWV6KGosMCk7Y1tPPj4yXT1jW0k+PjJdO2NbTys0Pj4yXT1jW0krND4+Ml07Y1tP
Kzg+PjJdPWNbSSs4Pj4yXTtrJChJfDAsMCwxMik7ZWUoSCk7TT1iMFtjWyhjW0Q+PjJdfDApKzM2
Pj4yXSYxMjddKE4pfDA7Y1ttPj4yXT1NO2k9bjtyZXR1cm59fWZ1bmN0aW9uIGgzKGEsYixkKXth
PWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtlPWEr
NHwwO2Y9KGNbZT4+Ml18MCkhPTE2NjtnPWF8MDthPWNbZz4+Ml18MDtoPWE7aT0oY1tkPj4yXXww
KS1ofDA7aj1pPj4+MDwyMTQ3NDgzNjQ3P2k8PDE6LTE7aT0oY1tiPj4yXXwwKS1oPj4yO2lmKGYp
e2s9YX1lbHNle2s9MH1hPWtMKGssail8MDtrPWE7aWYoKGF8MCk9PTApe2tYKCl9ZG97aWYoZil7
Y1tnPj4yXT1rO2w9a31lbHNle2E9Y1tnPj4yXXwwO2NbZz4+Ml09aztpZigoYXwwKT09MCl7bD1r
O2JyZWFrfWJZW2NbZT4+Ml0mNTExXShhKTtsPWNbZz4+Ml18MH19d2hpbGUoMCk7Y1tlPj4yXT04
MjtjW2I+PjJdPWwrKGk8PDIpO2NbZD4+Ml09KGNbZz4+Ml18MCkrKGo+Pj4yPDwyKTtyZXR1cm59
ZnVuY3Rpb24gaDQoYixlLGYsZyxqLGssbCl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj1qfDA7
az1rfDA7bD0rbDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9
MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0w
LEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wO2U9aTtpPWkr
MjgwfDA7bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWV8MDtu
PWUrMTIwfDA7bz1lKzIzMnwwO3A9ZSsyNDB8MDtxPWUrMjQ4fDA7cj1lKzI1NnwwO3M9ZSsyNjR8
MDt0PXM7dT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzEyfDA7aT1pKzc+PjM8
PDM7eD13O3k9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3o9aTtpPWkrMTAwfDA7aT1pKzc+PjM8PDM7
QT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qz1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7RD1lKzE2fDA7Y1tuPj4yXT1EO0U9ZSsxMjh8MDtGPWFaKER8MCwxMDAs
MTM2MCwoRD1pLGk9aSs4fDAsaFtEPj4zXT1sLEQpfDApfDA7aT1EO2Rve2lmKEY+Pj4wPjk5KXtk
b3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09
YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO0c9Z2gobixjWzI5NThdfDAsMTM2MCwoRD1pLGk9aSs4
fDAsaFtEPj4zXT1sLEQpfDApfDA7aT1EO0g9Y1tuPj4yXXwwO2lmKChIfDApPT0wKXtrWCgpO0k9
Y1tuPj4yXXwwfWVsc2V7ST1IfUg9a0ooRyl8MDtpZigoSHwwKSE9MCl7Sj1IO0s9RztMPUk7TT1I
O2JyZWFrfWtYKCk7Sj0wO0s9RztMPUk7TT0wfWVsc2V7Sj1FO0s9RjtMPTA7TT0wfX13aGlsZSgw
KTtlaihvLGopO0Y9b3wwO0U9Y1tGPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1ttPj4yXT0x
NTY5NjtjW20rND4+Ml09MTI7Y1ttKzg+PjJdPTA7ZFcoMTU2OTYsbSw5Nil9bT0oY1szOTI1XXww
KS0xfDA7ST1jW0UrOD4+Ml18MDtkb3tpZigoY1tFKzEyPj4yXXwwKS1JPj4yPj4+MD5tPj4+MCl7
RD1jW0krKG08PDIpPj4yXXwwO2lmKChEfDApPT0wKXticmVha31HPUQ7SD1jW24+PjJdfDA7Tj1I
K0t8MDtPPWNbKGNbRD4+Ml18MCkrMzI+PjJdfDA7Y2FbTyYxNV0oRyxILE4sSil8MDtpZigoS3ww
KT09MCl7UD0wfWVsc2V7UD0oYVtjW24+PjJdfDBdfDApPT00NX1rJCh0fDAsMCwxMik7ayQodnww
LDAsMTIpO2skKHh8MCwwLDEyKTtoNShnLFAsbyxwLHEscixzLHUsdyx5KTtOPXp8MDtIPWNbeT4+
Ml18MDtpZigoS3wwKT4oSHwwKSl7Tz1kW3hdfDA7aWYoKE8mMXwwKT09MCl7UT1PPj4+MX1lbHNl
e1E9Y1t3KzQ+PjJdfDB9Tz1kW3ZdfDA7aWYoKE8mMXwwKT09MCl7Uj1PPj4+MX1lbHNle1I9Y1t1
KzQ+PjJdfDB9Uz0oSy1IPDwxfDEpK1ErUnwwfWVsc2V7Tz1kW3hdfDA7aWYoKE8mMXwwKT09MCl7
VD1PPj4+MX1lbHNle1Q9Y1t3KzQ+PjJdfDB9Tz1kW3ZdfDA7aWYoKE8mMXwwKT09MCl7VT1PPj4+
MX1lbHNle1U9Y1t1KzQ+PjJdfDB9Uz1UKzIrVXwwfU89UytIfDA7ZG97aWYoTz4+PjA+MTAwKXtE
PWtKKE8pfDA7aWYoKER8MCkhPTApe1Y9RDtXPUQ7YnJlYWt9a1goKTtWPTA7Vz0wfWVsc2V7Vj1O
O1c9MH19d2hpbGUoMCk7aDYoVixBLEIsY1tqKzQ+PjJdfDAsSixKK0t8MCxHLFAscCxhW3FdfDAs
YVtyXXwwLHMsdSx3LEgpO2NbQz4+Ml09Y1tmPj4yXTtmOShiLEMsVixjW0E+PjJdfDAsY1tCPj4y
XXwwLGosayk7aWYoKFd8MCkhPTApe2tLKFcpfWRQKHcpO2RQKHUpO2RQKHMpO049Y1tGPj4yXXww
O2R6KE4pfDA7aWYoKE18MCkhPTApe2tLKE0pfWlmKChMfDApPT0wKXtpPWU7cmV0dXJufWtLKEwp
O2k9ZTtyZXR1cm59fXdoaWxlKDApO2U9Yk8oNCl8MDtrcShlKTtibChlfDAsODE3NiwxMzQpfWZ1
bmN0aW9uIGg1KGIsZCxlLGYsZyxoLGosayxsLG0pe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO3ZhciBuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxEPTAsRT0wLEY9MCxHPTAs
SD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MDtu
PWk7aT1pKzQwfDA7bz1ufDA7cD1uKzE2fDA7cT1uKzMyfDA7cj1xO3M9aTtpPWkrMTJ8MDtpPWkr
Nz4+Mzw8Mzt0PXM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj11O3c9aTtpPWkrMTJ8MDtpPWkr
Nz4+Mzw8Mzt4PXc7eT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3o9eTtBPWk7aT1pKzEyfDA7aT1p
Kzc+PjM8PDM7Qj1BO0Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0U9RDtGPWk7aT1pKzEyfDA7aT1p
Kzc+PjM8PDM7Rz1GO0g9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0k9SDtKPWk7aT1pKzEyfDA7aT1p
Kzc+PjM8PDM7Sz1KO0w9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztNPUw7Tj1pO2k9aSsxMnwwO2k9
aSs3Pj4zPDwzO089TjtQPWNbZT4+Ml18MDtpZihiKXtpZigoY1s0MDQ0XXwwKSE9LTEpe2NbcD4+
Ml09MTYxNzY7Y1twKzQ+PjJdPTEyO2NbcCs4Pj4yXT0wO2RXKDE2MTc2LHAsOTYpfXA9KGNbNDA0
NV18MCktMXwwO2I9Y1tQKzg+PjJdfDA7aWYoKGNbUCsxMj4+Ml18MCktYj4+Mj4+PjA8PXA+Pj4w
KXtRPWJPKDQpfDA7Uj1RO2txKFIpO2JsKFF8MCw4MTc2LDEzNCl9ZT1jW2IrKHA8PDIpPj4yXXww
O2lmKChlfDApPT0wKXtRPWJPKDQpfDA7Uj1RO2txKFIpO2JsKFF8MCw4MTc2LDEzNCl9UT1lO1I9
Y1tlPj4yXXwwO2lmKGQpe2JaW2NbUis0ND4+Ml0mMTI3XShyLFEpO3I9ZjtDPWNbcT4+Ml18MDth
W3JdPUMmMjU1O0M9Qz4+ODthW3IrMXwwXT1DJjI1NTtDPUM+Pjg7YVtyKzJ8MF09QyYyNTU7Qz1D
Pj44O2FbciszfDBdPUMmMjU1O2JaW2NbKGNbZT4+Ml18MCkrMzI+PjJdJjEyN10ocyxRKTtyPWw7
aWYoKGFbcl0mMSk9PTApe2FbbCsxfDBdPTA7YVtyXT0wfWVsc2V7YVtjW2wrOD4+Ml18MF09MDtj
W2wrND4+Ml09MH1kJChsLDApO2Nbcj4+Ml09Y1t0Pj4yXTtjW3IrND4+Ml09Y1t0KzQ+PjJdO2Nb
cis4Pj4yXT1jW3QrOD4+Ml07ayQodHwwLDAsMTIpO2RQKHMpfWVsc2V7YlpbY1tSKzQwPj4yXSYx
MjddKHYsUSk7dj1mO0M9Y1t1Pj4yXXwwO2Fbdl09QyYyNTU7Qz1DPj44O2FbdisxfDBdPUMmMjU1
O0M9Qz4+ODthW3YrMnwwXT1DJjI1NTtDPUM+Pjg7YVt2KzN8MF09QyYyNTU7YlpbY1soY1tlPj4y
XXwwKSsyOD4+Ml0mMTI3XSh3LFEpO3Y9bDtpZigoYVt2XSYxKT09MCl7YVtsKzF8MF09MDthW3Zd
PTB9ZWxzZXthW2NbbCs4Pj4yXXwwXT0wO2NbbCs0Pj4yXT0wfWQkKGwsMCk7Y1t2Pj4yXT1jW3g+
PjJdO2Nbdis0Pj4yXT1jW3grND4+Ml07Y1t2Kzg+PjJdPWNbeCs4Pj4yXTtrJCh4fDAsMCwxMik7
ZFAodyl9dz1lO2FbZ109YjBbY1soY1t3Pj4yXXwwKSsxMj4+Ml0mMTI3XShRKXwwO2FbaF09YjBb
Y1soY1t3Pj4yXXwwKSsxNj4+Ml0mMTI3XShRKXwwO3c9ZTtiWltjWyhjW3c+PjJdfDApKzIwPj4y
XSYxMjddKHksUSk7eD1qO2lmKChhW3hdJjEpPT0wKXthW2orMXwwXT0wO2FbeF09MH1lbHNle2Fb
Y1tqKzg+PjJdfDBdPTA7Y1tqKzQ+PjJdPTB9ZCQoaiwwKTtjW3g+PjJdPWNbej4+Ml07Y1t4KzQ+
PjJdPWNbeis0Pj4yXTtjW3grOD4+Ml09Y1t6Kzg+PjJdO2skKHp8MCwwLDEyKTtkUCh5KTtiWltj
WyhjW3c+PjJdfDApKzI0Pj4yXSYxMjddKEEsUSk7dz1rO2lmKChhW3ddJjEpPT0wKXthW2srMXww
XT0wO2Fbd109MH1lbHNle2FbY1trKzg+PjJdfDBdPTA7Y1trKzQ+PjJdPTB9ZCQoaywwKTtjW3c+
PjJdPWNbQj4+Ml07Y1t3KzQ+PjJdPWNbQis0Pj4yXTtjW3crOD4+Ml09Y1tCKzg+PjJdO2skKEJ8
MCwwLDEyKTtkUChBKTtTPWIwW2NbKGNbZT4+Ml18MCkrMzY+PjJdJjEyN10oUSl8MDtjW20+PjJd
PVM7aT1uO3JldHVybn1lbHNle2lmKChjWzQwNDZdfDApIT0tMSl7Y1tvPj4yXT0xNjE4NDtjW28r
ND4+Ml09MTI7Y1tvKzg+PjJdPTA7ZFcoMTYxODQsbyw5Nil9bz0oY1s0MDQ3XXwwKS0xfDA7UT1j
W1ArOD4+Ml18MDtpZigoY1tQKzEyPj4yXXwwKS1RPj4yPj4+MDw9bz4+PjApe1Q9Yk8oNCl8MDtV
PVQ7a3EoVSk7YmwoVHwwLDgxNzYsMTM0KX1QPWNbUSsobzw8Mik+PjJdfDA7aWYoKFB8MCk9PTAp
e1Q9Yk8oNCl8MDtVPVQ7a3EoVSk7YmwoVHwwLDgxNzYsMTM0KX1UPVA7VT1jW1A+PjJdfDA7aWYo
ZCl7YlpbY1tVKzQ0Pj4yXSYxMjddKEUsVCk7RT1mO0M9Y1tEPj4yXXwwO2FbRV09QyYyNTU7Qz1D
Pj44O2FbRSsxfDBdPUMmMjU1O0M9Qz4+ODthW0UrMnwwXT1DJjI1NTtDPUM+Pjg7YVtFKzN8MF09
QyYyNTU7YlpbY1soY1tQPj4yXXwwKSszMj4+Ml0mMTI3XShGLFQpO0U9bDtpZigoYVtFXSYxKT09
MCl7YVtsKzF8MF09MDthW0VdPTB9ZWxzZXthW2NbbCs4Pj4yXXwwXT0wO2NbbCs0Pj4yXT0wfWQk
KGwsMCk7Y1tFPj4yXT1jW0c+PjJdO2NbRSs0Pj4yXT1jW0crND4+Ml07Y1tFKzg+PjJdPWNbRys4
Pj4yXTtrJChHfDAsMCwxMik7ZFAoRil9ZWxzZXtiWltjW1UrNDA+PjJdJjEyN10oSSxUKTtJPWY7
Qz1jW0g+PjJdfDA7YVtJXT1DJjI1NTtDPUM+Pjg7YVtJKzF8MF09QyYyNTU7Qz1DPj44O2FbSSsy
fDBdPUMmMjU1O0M9Qz4+ODthW0krM3wwXT1DJjI1NTtiWltjWyhjW1A+PjJdfDApKzI4Pj4yXSYx
MjddKEosVCk7ST1sO2lmKChhW0ldJjEpPT0wKXthW2wrMXwwXT0wO2FbSV09MH1lbHNle2FbY1ts
Kzg+PjJdfDBdPTA7Y1tsKzQ+PjJdPTB9ZCQobCwwKTtjW0k+PjJdPWNbSz4+Ml07Y1tJKzQ+PjJd
PWNbSys0Pj4yXTtjW0krOD4+Ml09Y1tLKzg+PjJdO2skKEt8MCwwLDEyKTtkUChKKX1KPVA7YVtn
XT1iMFtjWyhjW0o+PjJdfDApKzEyPj4yXSYxMjddKFQpfDA7YVtoXT1iMFtjWyhjW0o+PjJdfDAp
KzE2Pj4yXSYxMjddKFQpfDA7Sj1QO2JaW2NbKGNbSj4+Ml18MCkrMjA+PjJdJjEyN10oTCxUKTto
PWo7aWYoKGFbaF0mMSk9PTApe2FbaisxfDBdPTA7YVtoXT0wfWVsc2V7YVtjW2orOD4+Ml18MF09
MDtjW2orND4+Ml09MH1kJChqLDApO2NbaD4+Ml09Y1tNPj4yXTtjW2grND4+Ml09Y1tNKzQ+PjJd
O2NbaCs4Pj4yXT1jW00rOD4+Ml07ayQoTXwwLDAsMTIpO2RQKEwpO2JaW2NbKGNbSj4+Ml18MCkr
MjQ+PjJdJjEyN10oTixUKTtKPWs7aWYoKGFbSl0mMSk9PTApe2FbaysxfDBdPTA7YVtKXT0wfWVs
c2V7YVtjW2srOD4+Ml18MF09MDtjW2srND4+Ml09MH1kJChrLDApO2NbSj4+Ml09Y1tPPj4yXTtj
W0orND4+Ml09Y1tPKzQ+PjJdO2NbSis4Pj4yXT1jW08rOD4+Ml07ayQoT3wwLDAsMTIpO2RQKE4p
O1M9YjBbY1soY1tQPj4yXXwwKSszNj4+Ml0mMTI3XShUKXwwO2NbbT4+Ml09UztpPW47cmV0dXJu
fX1mdW5jdGlvbiBoNihkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscil7ZD1kfDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7bj1ufDA7bz1v
fDA7cD1wfDA7cT1xfDA7cj1yfDA7dmFyIHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxP
PTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFh
PTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0w
LGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFzPTAsYXQ9MCxhdT0wLGF2PTAsYXc9MCxh
eD0wLGF5PTA7Y1tmPj4yXT1kO3M9ajt0PXE7dT1xKzF8MDt2PXErOHwwO3c9cSs0fDA7cT1wO3g9
KGcmNTEyfDApPT0wO3k9cCsxfDA7ej1wKzR8MDtBPXArOHwwO3A9ais4fDA7Qj0ocnwwKT4wO0M9
bztEPW8rMXwwO0U9bys4fDA7Rj1vKzR8MDtvPS1yfDA7Rz1oO2g9MDt3aGlsZSgxKXtMMTU4MDpk
b3tzd2l0Y2goYVtsK2h8MF18MCl7Y2FzZSAwOntjW2U+PjJdPWNbZj4+Ml07SD1HO2JyZWFrfTtj
YXNlIDE6e2NbZT4+Ml09Y1tmPj4yXTtJPWJfW2NbKGNbcz4+Ml18MCkrMjg+PjJdJjMxXShqLDMy
KXwwO0o9Y1tmPj4yXXwwO2NbZj4+Ml09SisxO2FbSl09STtIPUc7YnJlYWt9O2Nhc2UgMzp7ST1h
W3RdfDA7Sj1JJjI1NTtpZigoSiYxfDApPT0wKXtLPUo+Pj4xfWVsc2V7Sz1jW3c+PjJdfDB9aWYo
KEt8MCk9PTApe0g9RzticmVhayBMMTU4MH1pZigoSSYxKT09MCl7TD11fWVsc2V7TD1jW3Y+PjJd
fDB9ST1hW0xdfDA7Sj1jW2Y+PjJdfDA7Y1tmPj4yXT1KKzE7YVtKXT1JO0g9RzticmVha307Y2Fz
ZSAyOntJPWFbcV18MDtKPUkmMjU1O009KEomMXwwKT09MDtpZihNKXtOPUo+Pj4xfWVsc2V7Tj1j
W3o+PjJdfDB9aWYoKE58MCk9PTB8eCl7SD1HO2JyZWFrIEwxNTgwfWlmKChJJjEpPT0wKXtPPXk7
UD15fWVsc2V7ST1jW0E+PjJdfDA7Tz1JO1A9SX1pZihNKXtRPUo+Pj4xfWVsc2V7UT1jW3o+PjJd
fDB9Sj1PK1F8MDtNPWNbZj4+Ml18MDtpZigoUHwwKT09KEp8MCkpe1I9TX1lbHNle0k9UDtTPU07
d2hpbGUoMSl7YVtTXT1hW0ldfDA7TT1JKzF8MDtUPVMrMXwwO2lmKChNfDApPT0oSnwwKSl7Uj1U
O2JyZWFrfWVsc2V7ST1NO1M9VH19fWNbZj4+Ml09UjtIPUc7YnJlYWt9O2Nhc2UgNDp7Uz1jW2Y+
PjJdfDA7ST1rP0crMXwwOkc7Sj1JO3doaWxlKDEpe2lmKEo+Pj4wPj1pPj4+MCl7YnJlYWt9VD1h
W0pdfDA7aWYoVDw8MjQ+PjI0PD0tMSl7YnJlYWt9aWYoKGJbKGNbcD4+Ml18MCkrKFQ8PDI0Pj4y
NDw8MSk+PjFdJjIwNDgpPT0wKXticmVha31lbHNle0o9SisxfDB9fVQ9SjtpZihCKXtpZihKPj4+
MD5JPj4+MCl7TT1JKygtVHwwKXwwO1Q9TT4+PjA8bz4+PjA/bzpNO009VCtyfDA7VT1KO1Y9cjtX
PVM7d2hpbGUoMSl7WD1VLTF8MDtZPWFbWF18MDtjW2Y+PjJdPVcrMTthW1ddPVk7WT1WLTF8MDta
PShZfDApPjA7aWYoIShYPj4+MD5JPj4+MCZaKSl7YnJlYWt9VT1YO1Y9WTtXPWNbZj4+Ml18MH1X
PUorVHwwO2lmKFope189TTskPVc7YWE9MTM1NH1lbHNle2FiPTA7YWM9TTthZD1XfX1lbHNle189
cjskPUo7YWE9MTM1NH1pZigoYWF8MCk9PTEzNTQpe2FhPTA7YWI9Yl9bY1soY1tzPj4yXXwwKSsy
OD4+Ml0mMzFdKGosNDgpfDA7YWM9XzthZD0kfVc9Y1tmPj4yXXwwO2NbZj4+Ml09VysxO2lmKChh
Y3wwKT4wKXtWPWFjO1U9Vzt3aGlsZSgxKXthW1VdPWFiO1k9Vi0xfDA7WD1jW2Y+PjJdfDA7Y1tm
Pj4yXT1YKzE7aWYoKFl8MCk+MCl7Vj1ZO1U9WH1lbHNle2FlPVg7YnJlYWt9fX1lbHNle2FlPVd9
YVthZV09bTthZj1hZH1lbHNle2FmPUp9aWYoKGFmfDApPT0oSXwwKSl7VT1iX1tjWyhjW3M+PjJd
fDApKzI4Pj4yXSYzMV0oaiw0OCl8MDtWPWNbZj4+Ml18MDtjW2Y+PjJdPVYrMTthW1ZdPVV9ZWxz
ZXtVPWFbQ118MDtWPVUmMjU1O2lmKChWJjF8MCk9PTApe2FnPVY+Pj4xfWVsc2V7YWc9Y1tGPj4y
XXwwfWlmKChhZ3wwKT09MCl7YWg9YWY7YWk9MDthaj0wO2FrPS0xfWVsc2V7aWYoKFUmMSk9PTAp
e2FsPUR9ZWxzZXthbD1jW0U+PjJdfDB9YWg9YWY7YWk9MDthaj0wO2FrPWFbYWxdfDB9d2hpbGUo
MSl7ZG97aWYoKGFpfDApPT0oYWt8MCkpe1U9Y1tmPj4yXXwwO2NbZj4+Ml09VSsxO2FbVV09bjtV
PWFqKzF8MDtWPWFbQ118MDtNPVYmMjU1O2lmKChNJjF8MCk9PTApe2FtPU0+Pj4xfWVsc2V7YW09
Y1tGPj4yXXwwfWlmKFU+Pj4wPj1hbT4+PjApe2FuPWFrO2FvPVU7YXA9MDticmVha31NPShWJjEp
PT0wO2lmKE0pe2FxPUR9ZWxzZXthcT1jW0U+PjJdfDB9aWYoKGFbYXErVXwwXXwwKT09MTI3KXth
bj0tMTthbz1VO2FwPTA7YnJlYWt9aWYoTSl7YXI9RH1lbHNle2FyPWNbRT4+Ml18MH1hbj1hW2Fy
K1V8MF18MDthbz1VO2FwPTB9ZWxzZXthbj1hazthbz1hajthcD1haX19d2hpbGUoMCk7VT1haC0x
fDA7TT1hW1VdfDA7Vj1jW2Y+PjJdfDA7Y1tmPj4yXT1WKzE7YVtWXT1NO2lmKChVfDApPT0oSXww
KSl7YnJlYWt9ZWxzZXthaD1VO2FpPWFwKzF8MDthaj1hbzthaz1hbn19fUo9Y1tmPj4yXXwwO2lm
KChTfDApPT0oSnwwKSl7SD1JO2JyZWFrIEwxNTgwfVc9Si0xfDA7aWYoUz4+PjA8Vz4+PjApe2Fz
PVM7YXQ9V31lbHNle0g9STticmVhayBMMTU4MH13aGlsZSgxKXtXPWFbYXNdfDA7YVthc109YVth
dF18MDthW2F0XT1XO1c9YXMrMXwwO0o9YXQtMXwwO2lmKFc+Pj4wPEo+Pj4wKXthcz1XO2F0PUp9
ZWxzZXtIPUk7YnJlYWt9fWJyZWFrfTtkZWZhdWx0OntIPUd9fX13aGlsZSgwKTtJPWgrMXwwO2lm
KEk+Pj4wPDQpe0c9SDtoPUl9ZWxzZXticmVha319aD1hW3RdfDA7dD1oJjI1NTtIPSh0JjF8MCk9
PTA7aWYoSCl7YXU9dD4+PjF9ZWxzZXthdT1jW3c+PjJdfDB9aWYoYXU+Pj4wPjEpe2lmKChoJjEp
PT0wKXthdj11O2F3PXV9ZWxzZXt1PWNbdj4+Ml18MDthdj11O2F3PXV9aWYoSCl7YXg9dD4+PjF9
ZWxzZXtheD1jW3c+PjJdfDB9dz1hditheHwwO2F4PWNbZj4+Ml18MDthdj1hdysxfDA7aWYoKGF2
fDApPT0od3wwKSl7YXk9YXh9ZWxzZXthdz1heDtheD1hdjt3aGlsZSgxKXthW2F3XT1hW2F4XXww
O2F2PWF3KzF8MDt0PWF4KzF8MDtpZigodHwwKT09KHd8MCkpe2F5PWF2O2JyZWFrfWVsc2V7YXc9
YXY7YXg9dH19fWNbZj4+Ml09YXl9c3dpdGNoKGcmMTc2fDApe2Nhc2UgMTY6e3JldHVybn07Y2Fz
ZSAzMjp7Y1tlPj4yXT1jW2Y+PjJdO3JldHVybn07ZGVmYXVsdDp7Y1tlPj4yXT1kO3JldHVybn19
fWZ1bmN0aW9uIGg3KGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGg4KGEp
e2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGg5KGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9
ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAs
RT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxT
PTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTA7ZT1p
O2k9aSs2NHwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1l
fDA7bT1lKzE2fDA7bj1lKzI0fDA7bz1lKzMyfDA7cD1lKzQwfDA7cT1lKzQ4fDA7cj1xO3M9aTtp
PWkrMTJ8MDtpPWkrNz4+Mzw8Mzt0PXM7dT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7
aT1pKzR8MDtpPWkrNz4+Mzw8Mzt4PWk7aT1pKzEwMHwwO2k9aSs3Pj4zPDwzO3k9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO3o9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0E9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2VqKG0saCk7Qj1tfDA7Qz1jW0I+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2w+PjJd
PTE1Njk2O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY5NixsLDk2KX1sPShjWzM5MjVd
fDApLTF8MDtEPWNbQys4Pj4yXXwwO2Rve2lmKChjW0MrMTI+PjJdfDApLUQ+PjI+Pj4wPmw+Pj4w
KXtFPWNbRCsobDw8Mik+PjJdfDA7aWYoKEV8MCk9PTApe2JyZWFrfUY9RTtHPWs7SD1rO0k9YVtI
XXwwO0o9SSYyNTU7aWYoKEomMXwwKT09MCl7Sz1KPj4+MX1lbHNle0s9Y1trKzQ+PjJdfDB9aWYo
KEt8MCk9PTApe0w9MH1lbHNle2lmKChJJjEpPT0wKXtNPUcrMXwwfWVsc2V7TT1jW2srOD4+Ml18
MH1JPWFbTV18MDtMPUk8PDI0Pj4yND09KGJfW2NbKGNbRT4+Ml18MCkrMjg+PjJdJjMxXShGLDQ1
KXwwKTw8MjQ+PjI0fWskKHJ8MCwwLDEyKTtrJCh0fDAsMCwxMik7ayQodnwwLDAsMTIpO2g1KGcs
TCxtLG4sbyxwLHEscyx1LHcpO0U9eHwwO0k9YVtIXXwwO0o9SSYyNTU7Tj0oSiYxfDApPT0wO2lm
KE4pe089Sj4+PjF9ZWxzZXtPPWNbays0Pj4yXXwwfVA9Y1t3Pj4yXXwwO2lmKChPfDApPihQfDAp
KXtpZihOKXtRPUo+Pj4xfWVsc2V7UT1jW2srND4+Ml18MH1KPWRbdl18MDtpZigoSiYxfDApPT0w
KXtSPUo+Pj4xfWVsc2V7Uj1jW3UrND4+Ml18MH1KPWRbdF18MDtpZigoSiYxfDApPT0wKXtTPUo+
Pj4xfWVsc2V7Uz1jW3MrND4+Ml18MH1UPShRLVA8PDF8MSkrUitTfDB9ZWxzZXtKPWRbdl18MDtp
ZigoSiYxfDApPT0wKXtVPUo+Pj4xfWVsc2V7VT1jW3UrND4+Ml18MH1KPWRbdF18MDtpZigoSiYx
fDApPT0wKXtWPUo+Pj4xfWVsc2V7Vj1jW3MrND4+Ml18MH1UPVUrMitWfDB9Sj1UK1B8MDtkb3tp
ZihKPj4+MD4xMDApe049a0ooSil8MDtpZigoTnwwKSE9MCl7Vz1OO1g9TjtZPUk7YnJlYWt9a1go
KTtXPTA7WD0wO1k9YVtIXXwwfWVsc2V7Vz1FO1g9MDtZPUl9fXdoaWxlKDApO2lmKChZJjEpPT0w
KXtaPUcrMXwwO189RysxfDB9ZWxzZXtJPWNbays4Pj4yXXwwO1o9STtfPUl9ST1ZJjI1NTtpZigo
SSYxfDApPT0wKXskPUk+Pj4xfWVsc2V7JD1jW2srND4+Ml18MH1oNihXLHkseixjW2grND4+Ml18
MCxfLForJHwwLEYsTCxuLGFbb118MCxhW3BdfDAscSxzLHUsUCk7Y1tBPj4yXT1jW2Y+PjJdO2Y5
KGIsQSxXLGNbeT4+Ml18MCxjW3o+PjJdfDAsaCxqKTtpZigoWHwwKT09MCl7ZFAodSk7ZFAocyk7
ZFAocSk7YWE9Y1tCPj4yXXwwO2FiPWFhfDA7YWM9ZHooYWIpfDA7aT1lO3JldHVybn1rSyhYKTtk
UCh1KTtkUChzKTtkUChxKTthYT1jW0I+PjJdfDA7YWI9YWF8MDthYz1keihhYil8MDtpPWU7cmV0
dXJufX13aGlsZSgwKTtlPWJPKDQpfDA7a3EoZSk7YmwoZXwwLDgxNzYsMTM0KX1mdW5jdGlvbiBp
YShiLGUsZixnLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPWp8MDtrPWt8MDtsPSts
O3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAs
ej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxO
PTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wO2U9aTtpPWkrNTc2fDA7
bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWV8MDtuPWUrMTIw
fDA7bz1lKzUyOHwwO3A9ZSs1MzZ8MDtxPWUrNTQ0fDA7cj1lKzU1MnwwO3M9ZSs1NjB8MDt0PXM7
dT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7eD13
O3k9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3o9aTtpPWkrNDAwfDA7QT1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7Qj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7RD1l
KzE2fDA7Y1tuPj4yXT1EO0U9ZSsxMjh8MDtGPWFaKER8MCwxMDAsMTM2MCwoRD1pLGk9aSs4fDAs
aFtEPj4zXT1sLEQpfDApfDA7aT1EO2Rve2lmKEY+Pj4wPjk5KXtkb3tpZigoYVsxNjI2NF18MCk9
PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdo
aWxlKDApO0c9Z2gobixjWzI5NThdfDAsMTM2MCwoRD1pLGk9aSs4fDAsaFtEPj4zXT1sLEQpfDAp
fDA7aT1EO0g9Y1tuPj4yXXwwO2lmKChIfDApPT0wKXtrWCgpO0k9Y1tuPj4yXXwwfWVsc2V7ST1I
fUg9a0ooRzw8Mil8MDtKPUg7aWYoKEh8MCkhPTApe0s9SjtMPUc7TT1JO049SjticmVha31rWCgp
O0s9SjtMPUc7TT1JO049Sn1lbHNle0s9RTtMPUY7TT0wO049MH19d2hpbGUoMCk7ZWoobyxqKTtG
PW98MDtFPWNbRj4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbT4+Ml09MTU2ODg7Y1ttKzQ+
PjJdPTEyO2NbbSs4Pj4yXT0wO2RXKDE1Njg4LG0sOTYpfW09KGNbMzkyM118MCktMXwwO0k9Y1tF
Kzg+PjJdfDA7ZG97aWYoKGNbRSsxMj4+Ml18MCktST4+Mj4+PjA+bT4+PjApe0Q9Y1tJKyhtPDwy
KT4+Ml18MDtpZigoRHwwKT09MCl7YnJlYWt9Sj1EO0c9Y1tuPj4yXXwwO0g9RytMfDA7Tz1jWyhj
W0Q+PjJdfDApKzQ4Pj4yXXwwO2NhW08mMTVdKEosRyxILEspfDA7aWYoKEx8MCk9PTApe1A9MH1l
bHNle1A9KGFbY1tuPj4yXXwwXXwwKT09NDV9ayQodHwwLDAsMTIpO2skKHZ8MCwwLDEyKTtrJCh4
fDAsMCwxMik7aWIoZyxQLG8scCxxLHIscyx1LHcseSk7SD16fDA7Rz1jW3k+PjJdfDA7aWYoKEx8
MCk+KEd8MCkpe089ZFt4XXwwO2lmKChPJjF8MCk9PTApe1E9Tz4+PjF9ZWxzZXtRPWNbdys0Pj4y
XXwwfU89ZFt2XXwwO2lmKChPJjF8MCk9PTApe1I9Tz4+PjF9ZWxzZXtSPWNbdSs0Pj4yXXwwfVM9
KEwtRzw8MXwxKStRK1J8MH1lbHNle089ZFt4XXwwO2lmKChPJjF8MCk9PTApe1Q9Tz4+PjF9ZWxz
ZXtUPWNbdys0Pj4yXXwwfU89ZFt2XXwwO2lmKChPJjF8MCk9PTApe1U9Tz4+PjF9ZWxzZXtVPWNb
dSs0Pj4yXXwwfVM9VCsyK1V8MH1PPVMrR3wwO2Rve2lmKE8+Pj4wPjEwMCl7RD1rSihPPDwyKXww
O1Y9RDtpZigoRHwwKSE9MCl7Vz1WO1g9VjticmVha31rWCgpO1c9VjtYPVZ9ZWxzZXtXPUg7WD0w
fX13aGlsZSgwKTtpYyhXLEEsQixjW2orND4+Ml18MCxLLEsrKEw8PDIpfDAsSixQLHAsY1txPj4y
XXwwLGNbcj4+Ml18MCxzLHUsdyxHKTtjW0M+PjJdPWNbZj4+Ml07Z3EoYixDLFcsY1tBPj4yXXww
LGNbQj4+Ml18MCxqLGspO2lmKChYfDApIT0wKXtrSyhYKX1lZSh3KTtlZSh1KTtkUChzKTtIPWNb
Rj4+Ml18MDtkeihIKXwwO2lmKChOfDApIT0wKXtrSyhOKX1pZigoTXwwKT09MCl7aT1lO3JldHVy
bn1rSyhNKTtpPWU7cmV0dXJufX13aGlsZSgwKTtlPWJPKDQpfDA7a3EoZSk7YmwoZXwwLDgxNzYs
MTM0KX1mdW5jdGlvbiBpYihiLGQsZSxmLGcsaCxqLGssbCxtKXtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDt2YXIgbj0wLG89MCxwPTAs
cT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsRD0wLEU9MCxG
PTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9
MCxVPTA7bj1pO2k9aSs0MHwwO289bnwwO3A9bisxNnwwO3E9biszMnwwO3I9cTtzPWk7aT1pKzEy
fDA7aT1pKzc+PjM8PDM7dD1zO3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzEy
fDA7aT1pKzc+PjM8PDM7eD13O3k9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt6PXk7QT1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO0I9QTtEPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztFPUQ7Rj1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO0c9RjtIPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztJPUg7Sj1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO0s9SjtMPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7TT1MO049aTtpPWkr
MTJ8MDtpPWkrNz4+Mzw8MztPPU47UD1jW2U+PjJdfDA7aWYoYil7aWYoKGNbNDA0MF18MCkhPS0x
KXtjW3A+PjJdPTE2MTYwO2NbcCs0Pj4yXT0xMjtjW3ArOD4+Ml09MDtkVygxNjE2MCxwLDk2KX1w
PShjWzQwNDFdfDApLTF8MDtiPWNbUCs4Pj4yXXwwO2lmKChjW1ArMTI+PjJdfDApLWI+PjI+Pj4w
PD1wPj4+MCl7UT1iTyg0KXwwO1I9UTtrcShSKTtibChRfDAsODE3NiwxMzQpfWU9Y1tiKyhwPDwy
KT4+Ml18MDtpZigoZXwwKT09MCl7UT1iTyg0KXwwO1I9UTtrcShSKTtibChRfDAsODE3NiwxMzQp
fVE9ZTtSPWNbZT4+Ml18MDtpZihkKXtiWltjW1IrNDQ+PjJdJjEyN10ocixRKTtyPWY7Qz1jW3E+
PjJdfDA7YVtyXT1DJjI1NTtDPUM+Pjg7YVtyKzF8MF09QyYyNTU7Qz1DPj44O2FbcisyfDBdPUMm
MjU1O0M9Qz4+ODthW3IrM3wwXT1DJjI1NTtiWltjWyhjW2U+PjJdfDApKzMyPj4yXSYxMjddKHMs
USk7cj1sO2lmKChhW3JdJjEpPT0wKXtjW2wrND4+Ml09MDthW3JdPTB9ZWxzZXtjW2NbbCs4Pj4y
XT4+Ml09MDtjW2wrND4+Ml09MH1leihsLDApO2Nbcj4+Ml09Y1t0Pj4yXTtjW3IrND4+Ml09Y1t0
KzQ+PjJdO2Nbcis4Pj4yXT1jW3QrOD4+Ml07ayQodHwwLDAsMTIpO2VlKHMpfWVsc2V7YlpbY1tS
KzQwPj4yXSYxMjddKHYsUSk7dj1mO0M9Y1t1Pj4yXXwwO2Fbdl09QyYyNTU7Qz1DPj44O2Fbdisx
fDBdPUMmMjU1O0M9Qz4+ODthW3YrMnwwXT1DJjI1NTtDPUM+Pjg7YVt2KzN8MF09QyYyNTU7Ylpb
Y1soY1tlPj4yXXwwKSsyOD4+Ml0mMTI3XSh3LFEpO3Y9bDtpZigoYVt2XSYxKT09MCl7Y1tsKzQ+
PjJdPTA7YVt2XT0wfWVsc2V7Y1tjW2wrOD4+Ml0+PjJdPTA7Y1tsKzQ+PjJdPTB9ZXoobCwwKTtj
W3Y+PjJdPWNbeD4+Ml07Y1t2KzQ+PjJdPWNbeCs0Pj4yXTtjW3YrOD4+Ml09Y1t4Kzg+PjJdO2sk
KHh8MCwwLDEyKTtlZSh3KX13PWU7Y1tnPj4yXT1iMFtjWyhjW3c+PjJdfDApKzEyPj4yXSYxMjdd
KFEpfDA7Y1toPj4yXT1iMFtjWyhjW3c+PjJdfDApKzE2Pj4yXSYxMjddKFEpfDA7YlpbY1soY1tl
Pj4yXXwwKSsyMD4+Ml0mMTI3XSh5LFEpO3g9ajtpZigoYVt4XSYxKT09MCl7YVtqKzF8MF09MDth
W3hdPTB9ZWxzZXthW2Nbais4Pj4yXXwwXT0wO2Nbais0Pj4yXT0wfWQkKGosMCk7Y1t4Pj4yXT1j
W3o+PjJdO2NbeCs0Pj4yXT1jW3orND4+Ml07Y1t4Kzg+PjJdPWNbeis4Pj4yXTtrJCh6fDAsMCwx
Mik7ZFAoeSk7YlpbY1soY1tlPj4yXXwwKSsyND4+Ml0mMTI3XShBLFEpO2U9aztpZigoYVtlXSYx
KT09MCl7Y1trKzQ+PjJdPTA7YVtlXT0wfWVsc2V7Y1tjW2srOD4+Ml0+PjJdPTA7Y1trKzQ+PjJd
PTB9ZXooaywwKTtjW2U+PjJdPWNbQj4+Ml07Y1tlKzQ+PjJdPWNbQis0Pj4yXTtjW2UrOD4+Ml09
Y1tCKzg+PjJdO2skKEJ8MCwwLDEyKTtlZShBKTtTPWIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEy
N10oUSl8MDtjW20+PjJdPVM7aT1uO3JldHVybn1lbHNle2lmKChjWzQwNDJdfDApIT0tMSl7Y1tv
Pj4yXT0xNjE2ODtjW28rND4+Ml09MTI7Y1tvKzg+PjJdPTA7ZFcoMTYxNjgsbyw5Nil9bz0oY1s0
MDQzXXwwKS0xfDA7UT1jW1ArOD4+Ml18MDtpZigoY1tQKzEyPj4yXXwwKS1RPj4yPj4+MDw9bz4+
PjApe1Q9Yk8oNCl8MDtVPVQ7a3EoVSk7YmwoVHwwLDgxNzYsMTM0KX1QPWNbUSsobzw8Mik+PjJd
fDA7aWYoKFB8MCk9PTApe1Q9Yk8oNCl8MDtVPVQ7a3EoVSk7YmwoVHwwLDgxNzYsMTM0KX1UPVA7
VT1jW1A+PjJdfDA7aWYoZCl7YlpbY1tVKzQ0Pj4yXSYxMjddKEUsVCk7RT1mO0M9Y1tEPj4yXXww
O2FbRV09QyYyNTU7Qz1DPj44O2FbRSsxfDBdPUMmMjU1O0M9Qz4+ODthW0UrMnwwXT1DJjI1NTtD
PUM+Pjg7YVtFKzN8MF09QyYyNTU7YlpbY1soY1tQPj4yXXwwKSszMj4+Ml0mMTI3XShGLFQpO0U9
bDtpZigoYVtFXSYxKT09MCl7Y1tsKzQ+PjJdPTA7YVtFXT0wfWVsc2V7Y1tjW2wrOD4+Ml0+PjJd
PTA7Y1tsKzQ+PjJdPTB9ZXoobCwwKTtjW0U+PjJdPWNbRz4+Ml07Y1tFKzQ+PjJdPWNbRys0Pj4y
XTtjW0UrOD4+Ml09Y1tHKzg+PjJdO2skKEd8MCwwLDEyKTtlZShGKX1lbHNle2JaW2NbVSs0MD4+
Ml0mMTI3XShJLFQpO0k9ZjtDPWNbSD4+Ml18MDthW0ldPUMmMjU1O0M9Qz4+ODthW0krMXwwXT1D
JjI1NTtDPUM+Pjg7YVtJKzJ8MF09QyYyNTU7Qz1DPj44O2FbSSszfDBdPUMmMjU1O2JaW2NbKGNb
UD4+Ml18MCkrMjg+PjJdJjEyN10oSixUKTtJPWw7aWYoKGFbSV0mMSk9PTApe2NbbCs0Pj4yXT0w
O2FbSV09MH1lbHNle2NbY1tsKzg+PjJdPj4yXT0wO2NbbCs0Pj4yXT0wfWV6KGwsMCk7Y1tJPj4y
XT1jW0s+PjJdO2NbSSs0Pj4yXT1jW0srND4+Ml07Y1tJKzg+PjJdPWNbSys4Pj4yXTtrJChLfDAs
MCwxMik7ZWUoSil9Sj1QO2NbZz4+Ml09YjBbY1soY1tKPj4yXXwwKSsxMj4+Ml0mMTI3XShUKXww
O2NbaD4+Ml09YjBbY1soY1tKPj4yXXwwKSsxNj4+Ml0mMTI3XShUKXwwO2JaW2NbKGNbUD4+Ml18
MCkrMjA+PjJdJjEyN10oTCxUKTtoPWo7aWYoKGFbaF0mMSk9PTApe2FbaisxfDBdPTA7YVtoXT0w
fWVsc2V7YVtjW2orOD4+Ml18MF09MDtjW2orND4+Ml09MH1kJChqLDApO2NbaD4+Ml09Y1tNPj4y
XTtjW2grND4+Ml09Y1tNKzQ+PjJdO2NbaCs4Pj4yXT1jW00rOD4+Ml07ayQoTXwwLDAsMTIpO2RQ
KEwpO2JaW2NbKGNbUD4+Ml18MCkrMjQ+PjJdJjEyN10oTixUKTtQPWs7aWYoKGFbUF0mMSk9PTAp
e2Nbays0Pj4yXT0wO2FbUF09MH1lbHNle2NbY1trKzg+PjJdPj4yXT0wO2Nbays0Pj4yXT0wfWV6
KGssMCk7Y1tQPj4yXT1jW08+PjJdO2NbUCs0Pj4yXT1jW08rND4+Ml07Y1tQKzg+PjJdPWNbTys4
Pj4yXTtrJChPfDAsMCwxMik7ZWUoTik7Uz1iMFtjWyhjW0o+PjJdfDApKzM2Pj4yXSYxMjddKFQp
fDA7Y1ttPj4yXT1TO2k9bjtyZXR1cm59fWZ1bmN0aW9uIGljKGIsZCxlLGYsZyxoLGksaixrLGws
bSxuLG8scCxxKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8
MDtrPWt8MDtsPWx8MDttPW18MDtuPW58MDtvPW98MDtwPXB8MDtxPXF8MDt2YXIgcj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9
MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0w
LFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFn
PTAsYWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0w
LGFzPTAsYXQ9MCxhdT0wLGF2PTAsYXc9MDtjW2U+PjJdPWI7cj1pO3M9cDt0PXArNHwwO3U9cCs4
fDA7cD1vO3Y9KGYmNTEyfDApPT0wO3c9bys0fDA7eD1vKzh8MDtvPWk7eT0ocXwwKT4wO3o9bjtB
PW4rMXwwO0I9bis4fDA7Qz1uKzR8MDtuPWc7Zz0wO3doaWxlKDEpe0wxOTAxOmRve3N3aXRjaChh
W2srZ3wwXXwwKXtjYXNlIDA6e2NbZD4+Ml09Y1tlPj4yXTtEPW47YnJlYWt9O2Nhc2UgMTp7Y1tk
Pj4yXT1jW2U+PjJdO0U9Yl9bY1soY1tyPj4yXXwwKSs0ND4+Ml0mMzFdKGksMzIpfDA7Rj1jW2U+
PjJdfDA7Y1tlPj4yXT1GKzQ7Y1tGPj4yXT1FO0Q9bjticmVha307Y2FzZSAzOntFPWFbc118MDtG
PUUmMjU1O2lmKChGJjF8MCk9PTApe0c9Rj4+PjF9ZWxzZXtHPWNbdD4+Ml18MH1pZigoR3wwKT09
MCl7RD1uO2JyZWFrIEwxOTAxfWlmKChFJjEpPT0wKXtIPXR9ZWxzZXtIPWNbdT4+Ml18MH1FPWNb
SD4+Ml18MDtGPWNbZT4+Ml18MDtjW2U+PjJdPUYrNDtjW0Y+PjJdPUU7RD1uO2JyZWFrfTtjYXNl
IDI6e0U9YVtwXXwwO0Y9RSYyNTU7ST0oRiYxfDApPT0wO2lmKEkpe0o9Rj4+PjF9ZWxzZXtKPWNb
dz4+Ml18MH1pZigoSnwwKT09MHx2KXtEPW47YnJlYWsgTDE5MDF9aWYoKEUmMSk9PTApe0s9dztM
PXc7TT13fWVsc2V7RT1jW3g+PjJdfDA7Sz1FO0w9RTtNPUV9aWYoSSl7Tj1GPj4+MX1lbHNle049
Y1t3Pj4yXXwwfUY9SysoTjw8Mil8MDtJPWNbZT4+Ml18MDtpZigoTHwwKT09KEZ8MCkpe089SX1l
bHNle0U9KEsrKE4tMTw8MikrKC1NfDApfDApPj4+MjtQPUw7UT1JO3doaWxlKDEpe2NbUT4+Ml09
Y1tQPj4yXTtSPVArNHwwO2lmKChSfDApPT0oRnwwKSl7YnJlYWt9UD1SO1E9USs0fDB9Tz1JKyhF
KzE8PDIpfDB9Y1tlPj4yXT1PO0Q9bjticmVha307Y2FzZSA0OntRPWNbZT4+Ml18MDtQPWo/bis0
fDA6bjtGPVA7d2hpbGUoMSl7aWYoRj4+PjA+PWg+Pj4wKXticmVha31pZihiMVtjWyhjW28+PjJd
fDApKzEyPj4yXSY2M10oaSwyMDQ4LGNbRj4+Ml18MCl8MCl7Rj1GKzR8MH1lbHNle2JyZWFrfX1p
Zih5KXtpZihGPj4+MD5QPj4+MCl7RT1GO0k9cTtkb3tFPUUtNHwwO1I9Y1tFPj4yXXwwO1M9Y1tl
Pj4yXXwwO2NbZT4+Ml09Uys0O2NbUz4+Ml09UjtJPUktMXwwO1Q9KEl8MCk+MDt9d2hpbGUoRT4+
PjA+UD4+PjAmVCk7aWYoVCl7VT1JO1Y9RTtXPTE2MzB9ZWxzZXtYPTA7WT1JO1o9RX19ZWxzZXtV
PXE7Vj1GO1c9MTYzMH1pZigoV3wwKT09MTYzMCl7Vz0wO1g9Yl9bY1soY1tyPj4yXXwwKSs0ND4+
Ml0mMzFdKGksNDgpfDA7WT1VO1o9Vn1SPWNbZT4+Ml18MDtjW2U+PjJdPVIrNDtpZigoWXwwKT4w
KXtTPVk7Xz1SO3doaWxlKDEpe2NbXz4+Ml09WDskPVMtMXwwO2FhPWNbZT4+Ml18MDtjW2U+PjJd
PWFhKzQ7aWYoKCR8MCk+MCl7Uz0kO189YWF9ZWxzZXthYj1hYTticmVha319fWVsc2V7YWI9Un1j
W2FiPj4yXT1sO2FjPVp9ZWxzZXthYz1GfWlmKChhY3wwKT09KFB8MCkpe189Yl9bY1soY1tyPj4y
XXwwKSs0ND4+Ml0mMzFdKGksNDgpfDA7Uz1jW2U+PjJdfDA7Y1tlPj4yXT1TKzQ7Y1tTPj4yXT1f
fWVsc2V7Xz1hW3pdfDA7Uz1fJjI1NTtpZigoUyYxfDApPT0wKXthZD1TPj4+MX1lbHNle2FkPWNb
Qz4+Ml18MH1pZigoYWR8MCk9PTApe2FlPWFjO2FmPTA7YWc9MDthaD0tMX1lbHNle2lmKChfJjEp
PT0wKXthaT1BfWVsc2V7YWk9Y1tCPj4yXXwwfWFlPWFjO2FmPTA7YWc9MDthaD1hW2FpXXwwfXdo
aWxlKDEpe2Rve2lmKChhZnwwKT09KGFofDApKXtfPWNbZT4+Ml18MDtjW2U+PjJdPV8rNDtjW18+
PjJdPW07Xz1hZysxfDA7Uz1hW3pdfDA7RT1TJjI1NTtpZigoRSYxfDApPT0wKXthaj1FPj4+MX1l
bHNle2FqPWNbQz4+Ml18MH1pZihfPj4+MD49YWo+Pj4wKXthaz1haDthbD1fO2FtPTA7YnJlYWt9
RT0oUyYxKT09MDtpZihFKXthbj1BfWVsc2V7YW49Y1tCPj4yXXwwfWlmKChhW2FuK198MF18MCk9
PTEyNyl7YWs9LTE7YWw9XzthbT0wO2JyZWFrfWlmKEUpe2FvPUF9ZWxzZXthbz1jW0I+PjJdfDB9
YWs9YVthbytffDBdfDA7YWw9XzthbT0wfWVsc2V7YWs9YWg7YWw9YWc7YW09YWZ9fXdoaWxlKDAp
O189YWUtNHwwO0U9Y1tfPj4yXXwwO1M9Y1tlPj4yXXwwO2NbZT4+Ml09Uys0O2NbUz4+Ml09RTtp
ZigoX3wwKT09KFB8MCkpe2JyZWFrfWVsc2V7YWU9XzthZj1hbSsxfDA7YWc9YWw7YWg9YWt9fX1G
PWNbZT4+Ml18MDtpZigoUXwwKT09KEZ8MCkpe0Q9UDticmVhayBMMTkwMX1SPUYtNHwwO2lmKFE+
Pj4wPFI+Pj4wKXthcD1RO2FxPVJ9ZWxzZXtEPVA7YnJlYWsgTDE5MDF9d2hpbGUoMSl7Uj1jW2Fw
Pj4yXXwwO2NbYXA+PjJdPWNbYXE+PjJdO2NbYXE+PjJdPVI7Uj1hcCs0fDA7Rj1hcS00fDA7aWYo
Uj4+PjA8Rj4+PjApe2FwPVI7YXE9Rn1lbHNle0Q9UDticmVha319YnJlYWt9O2RlZmF1bHQ6e0Q9
bn19fXdoaWxlKDApO1A9ZysxfDA7aWYoUD4+PjA8NCl7bj1EO2c9UH1lbHNle2JyZWFrfX1nPWFb
c118MDtzPWcmMjU1O0Q9KHMmMXwwKT09MDtpZihEKXthcj1zPj4+MX1lbHNle2FyPWNbdD4+Ml18
MH1pZihhcj4+PjA+MSl7aWYoKGcmMSk9PTApe2FzPXQ7YXQ9dDthdT10fWVsc2V7Zz1jW3U+PjJd
fDA7YXM9ZzthdD1nO2F1PWd9aWYoRCl7YXY9cz4+PjF9ZWxzZXthdj1jW3Q+PjJdfDB9dD1hcyso
YXY8PDIpfDA7cz1jW2U+PjJdfDA7RD1hdCs0fDA7aWYoKER8MCk9PSh0fDApKXthdz1zfWVsc2V7
YXQ9KChhcysoYXYtMjw8MikrKC1hdXwwKXwwKT4+PjIpKzF8MDthdT1zO2F2PUQ7d2hpbGUoMSl7
Y1thdT4+Ml09Y1thdj4+Ml07RD1hdis0fDA7aWYoKER8MCk9PSh0fDApKXticmVha31lbHNle2F1
PWF1KzR8MDthdj1EfX1hdz1zKyhhdDw8Mil8MH1jW2U+PjJdPWF3fXN3aXRjaChmJjE3NnwwKXtj
YXNlIDMyOntjW2Q+PjJdPWNbZT4+Ml07cmV0dXJufTtjYXNlIDE2OntyZXR1cm59O2RlZmF1bHQ6
e2NbZD4+Ml09YjtyZXR1cm59fX1mdW5jdGlvbiBpZChhKXthPWF8MDtkZShhfDApO2tTKGEpO3Jl
dHVybn1mdW5jdGlvbiBpZShhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBpZyhiLGQs
ZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MDtpZigoYVtkXSYxKT09MCl7Zj1kKzF8MH1lbHNl
e2Y9Y1tkKzg+PjJdfDB9ZD1hOChmfDAsMjAwKXwwO3JldHVybiBkPj4+KCgoZHwwKSE9LTF8MCk+
Pj4wKXwwfWZ1bmN0aW9uIGloKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0w
LEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAs
Vz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTA7ZT1pO2k9aSs2NHwwO2w9Zjtm
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1lfDA7bT1lKzE2fDA7bj1l
KzI0fDA7bz1lKzMyfDA7cD1lKzQwfDA7cT1lKzQ4fDA7cj1xO3M9aTtpPWkrMTJ8MDtpPWkrNz4+
Mzw8Mzt0PXM7dT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzR8MDtpPWkrNz4+
Mzw8Mzt4PWk7aT1pKzQwMHwwO3k9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3o9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO0E9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2VqKG0saCk7Qj1tfDA7Qz1jW0I+PjJd
fDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW2w+PjJdPTE1Njg4O2NbbCs0Pj4yXT0xMjtjW2wrOD4+
Ml09MDtkVygxNTY4OCxsLDk2KX1sPShjWzM5MjNdfDApLTF8MDtEPWNbQys4Pj4yXXwwO2Rve2lm
KChjW0MrMTI+PjJdfDApLUQ+PjI+Pj4wPmw+Pj4wKXtFPWNbRCsobDw8Mik+PjJdfDA7aWYoKEV8
MCk9PTApe2JyZWFrfUY9RTtHPWs7SD1hW0ddfDA7ST1IJjI1NTtpZigoSSYxfDApPT0wKXtKPUk+
Pj4xfWVsc2V7Sj1jW2srND4+Ml18MH1pZigoSnwwKT09MCl7Sz0wfWVsc2V7aWYoKEgmMSk9PTAp
e0w9ays0fDB9ZWxzZXtMPWNbays4Pj4yXXwwfUg9Y1tMPj4yXXwwO0s9KEh8MCk9PShiX1tjWyhj
W0U+PjJdfDApKzQ0Pj4yXSYzMV0oRiw0NSl8MCl9ayQocnwwLDAsMTIpO2skKHR8MCwwLDEyKTtr
JCh2fDAsMCwxMik7aWIoZyxLLG0sbixvLHAscSxzLHUsdyk7RT14fDA7SD1hW0ddfDA7ST1IJjI1
NTtNPShJJjF8MCk9PTA7aWYoTSl7Tj1JPj4+MX1lbHNle049Y1trKzQ+PjJdfDB9Tz1jW3c+PjJd
fDA7aWYoKE58MCk+KE98MCkpe2lmKE0pe1A9ST4+PjF9ZWxzZXtQPWNbays0Pj4yXXwwfUk9ZFt2
XXwwO2lmKChJJjF8MCk9PTApe1E9ST4+PjF9ZWxzZXtRPWNbdSs0Pj4yXXwwfUk9ZFt0XXwwO2lm
KChJJjF8MCk9PTApe1I9ST4+PjF9ZWxzZXtSPWNbcys0Pj4yXXwwfVM9KFAtTzw8MXwxKStRK1J8
MH1lbHNle0k9ZFt2XXwwO2lmKChJJjF8MCk9PTApe1Q9ST4+PjF9ZWxzZXtUPWNbdSs0Pj4yXXww
fUk9ZFt0XXwwO2lmKChJJjF8MCk9PTApe1U9ST4+PjF9ZWxzZXtVPWNbcys0Pj4yXXwwfVM9VCsy
K1V8MH1JPVMrT3wwO2Rve2lmKEk+Pj4wPjEwMCl7TT1rSihJPDwyKXwwO1Y9TTtpZigoTXwwKSE9
MCl7Vz1WO1g9VjtZPUg7YnJlYWt9a1goKTtXPVY7WD1WO1k9YVtHXXwwfWVsc2V7Vz1FO1g9MDtZ
PUh9fXdoaWxlKDApO2lmKChZJjEpPT0wKXtaPWsrNHwwO189ays0fDB9ZWxzZXtIPWNbays4Pj4y
XXwwO1o9SDtfPUh9SD1ZJjI1NTtpZigoSCYxfDApPT0wKXskPUg+Pj4xfWVsc2V7JD1jW2srND4+
Ml18MH1pYyhXLHkseixjW2grND4+Ml18MCxfLForKCQ8PDIpfDAsRixLLG4sY1tvPj4yXXwwLGNb
cD4+Ml18MCxxLHMsdSxPKTtjW0E+PjJdPWNbZj4+Ml07Z3EoYixBLFcsY1t5Pj4yXXwwLGNbej4+
Ml18MCxoLGopO2lmKChYfDApPT0wKXtlZSh1KTtlZShzKTtkUChxKTthYT1jW0I+PjJdfDA7YWI9
YWF8MDthYz1keihhYil8MDtpPWU7cmV0dXJufWtLKFgpO2VlKHUpO2VlKHMpO2RQKHEpO2FhPWNb
Qj4+Ml18MDthYj1hYXwwO2FjPWR6KGFiKXwwO2k9ZTtyZXR1cm59fXdoaWxlKDApO2U9Yk8oNCl8
MDtrcShlKTtibChlfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGlpKGIsZCxlLGYsZyxoKXtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wO2Q9aTtpPWkrMTZ8MDtqPWR8MDtrPWo7ayQoa3ww
LDAsMTIpO2w9YjttPWg7bj1hW2hdfDA7aWYoKG4mMSk9PTApe289bSsxfDA7cD1tKzF8MH1lbHNl
e209Y1toKzg+PjJdfDA7bz1tO3A9bX1tPW4mMjU1O2lmKChtJjF8MCk9PTApe3E9bT4+PjF9ZWxz
ZXtxPWNbaCs0Pj4yXXwwfWg9bytxfDA7ZG97aWYocD4+PjA8aD4+PjApe3E9cDtkb3tkVShqLGFb
cV18MCk7cT1xKzF8MDt9d2hpbGUocT4+PjA8aD4+PjApO3E9KGV8MCk9PS0xPy0xOmU8PDE7aWYo
KGFba10mMSk9PTApe3I9cTtzPTE3NjI7YnJlYWt9dD1jW2orOD4+Ml18MDt1PXF9ZWxzZXtyPShl
fDApPT0tMT8tMTplPDwxO3M9MTc2Mn19d2hpbGUoMCk7aWYoKHN8MCk9PTE3NjIpe3Q9aisxfDA7
dT1yfXI9Yk0odXwwLGZ8MCxnfDAsdHwwKXwwO2skKGx8MCwwLDEyKTtsPWswKHJ8MCl8MDt0PXIr
bHwwO2lmKChsfDApPjApe3Y9cn1lbHNle2RQKGopO2k9ZDtyZXR1cm59ZG97ZFUoYixhW3ZdfDAp
O3Y9disxfDA7fXdoaWxlKHY+Pj4wPHQ+Pj4wKTtkUChqKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGlq
KGEsYil7YT1hfDA7Yj1ifDA7YTEoKChifDApPT0tMT8tMTpiPDwxKXwwKXwwO3JldHVybn1mdW5j
dGlvbiBpayhhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBpbChhKXthPWF8
MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBpbShiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFy
IGY9MDtpZigoYVtkXSYxKT09MCl7Zj1kKzF8MH1lbHNle2Y9Y1tkKzg+PjJdfDB9ZD1hOChmfDAs
MjAwKXwwO3JldHVybiBkPj4+KCgoZHwwKSE9LTF8MCk+Pj4wKXwwfWZ1bmN0aW9uIGlvKGEsYil7
YT1hfDA7Yj1ifDA7YTEoKChifDApPT0tMT8tMTpiPDwxKXwwKXwwO3JldHVybn1mdW5jdGlvbiBp
cChiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9
MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wO2Q9aTtpPWkr
MjI0fDA7aj1kfDA7az1kKzh8MDtsPWQrNDB8MDttPWQrNDh8MDtuPWQrNTZ8MDtvPWQrNjR8MDtw
PWQrMTkyfDA7cT1kKzIwMHwwO3I9ZCsyMDh8MDtzPXI7dD1pO2k9aSs4fDA7dT1pO2k9aSs4fDA7
ayQoc3wwLDAsMTIpO3Y9Yjt3PXR8MDtjW3QrND4+Ml09MDtjW3Q+PjJdPTQxMDQ7eD1hW2hdfDA7
aWYoKHgmMSk9PTApe3k9aCs0fDA7ej1oKzR8MH1lbHNle0E9Y1toKzg+PjJdfDA7eT1BO3o9QX1B
PXgmMjU1O2lmKChBJjF8MCk9PTApe0I9QT4+PjF9ZWxzZXtCPWNbaCs0Pj4yXXwwfWg9eSsoQjw8
Mil8MDtMMjEzNTpkb3tpZih6Pj4+MDxoPj4+MCl7Qj10O3k9a3wwO0E9ayszMnwwO3g9ejtDPTQx
MDQ7d2hpbGUoMSl7Y1ttPj4yXT14O0Q9KGI2W2NbQysxMj4+Ml0mMzFdKHcsaix4LGgsbSx5LEEs
bCl8MCk9PTI7RT1jW20+PjJdfDA7aWYoRHwoRXwwKT09KHh8MCkpe2JyZWFrfWlmKHk+Pj4wPChj
W2w+PjJdfDApPj4+MCl7RD15O2Rve2RVKHIsYVtEXXwwKTtEPUQrMXwwO313aGlsZShEPj4+MDwo
Y1tsPj4yXXwwKT4+PjApO0Y9Y1ttPj4yXXwwfWVsc2V7Rj1FfWlmKEY+Pj4wPj1oPj4+MCl7YnJl
YWsgTDIxMzV9eD1GO0M9Y1tCPj4yXXwwfUI9Yk8oOCl8MDtkRShCLDkwNCk7YmwoQnwwLDgxOTIs
MjIpfX13aGlsZSgwKTtkZSh0fDApO2lmKChhW3NdJjEpPT0wKXtHPXIrMXwwfWVsc2V7Rz1jW3Ir
OD4+Ml18MH1zPWJNKCgoZXwwKT09LTE/LTE6ZTw8MSl8MCxmfDAsZ3wwLEd8MCl8MDtrJCh2fDAs
MCwxMik7dj11fDA7Y1t1KzQ+PjJdPTA7Y1t1Pj4yXT00MDQ4O0c9azAoc3wwKXwwO2c9cytHfDA7
aWYoKEd8MCk8MSl7SD11fDA7ZGUoSCk7ZFAocik7aT1kO3JldHVybn1HPXU7Zj1nO2U9b3wwO3Q9
bysxMjh8MDtvPXM7cz00MDQ4O3doaWxlKDEpe2NbcT4+Ml09bztGPShiNltjW3MrMTY+PjJdJjMx
XSh2LG4sbywoZi1vfDApPjMyP28rMzJ8MDpnLHEsZSx0LHApfDApPT0yO2g9Y1txPj4yXXwwO2lm
KEZ8KGh8MCk9PShvfDApKXticmVha31pZihlPj4+MDwoY1twPj4yXXwwKT4+PjApe0Y9ZTtkb3tl
aChiLGNbRj4+Ml18MCk7Rj1GKzR8MDt9d2hpbGUoRj4+PjA8KGNbcD4+Ml18MCk+Pj4wKTtJPWNb
cT4+Ml18MH1lbHNle0k9aH1pZihJPj4+MD49Zz4+PjApe0o9MTgyOTticmVha31vPUk7cz1jW0c+
PjJdfDB9aWYoKEp8MCk9PTE4Mjkpe0g9dXwwO2RlKEgpO2RQKHIpO2k9ZDtyZXR1cm59ZD1iTyg4
KXwwO2RFKGQsOTA0KTtibChkfDAsODE5MiwyMil9ZnVuY3Rpb24gaXEoYil7Yj1ifDA7dmFyIGQ9
MCxlPTAsZj0wO2NbYj4+Ml09MzU2ODtkPWIrOHwwO2U9Y1tkPj4yXXwwO2Rve2lmKChhWzE2MjY0
XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8
MH19d2hpbGUoMCk7aWYoKGV8MCk9PShjWzI5NThdfDApKXtmPWJ8MDtkZShmKTtyZXR1cm59YTco
Y1tkPj4yXXwwKTtmPWJ8MDtkZShmKTtyZXR1cm59ZnVuY3Rpb24gaXIoYSl7YT1hfDA7YT1iTyg4
KXwwO2RBKGEsMTM1Mik7Y1thPj4yXT0yNTA0O2JsKGF8MCw4MjA4LDMyKX1mdW5jdGlvbiBpcyhi
LGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTA7ZT1pO2k9aSs0NDh8MDtm
PWV8MDtnPWUrMTZ8MDtoPWUrMzJ8MDtqPWUrNDh8MDtrPWUrNjR8MDtsPWUrODB8MDttPWUrOTZ8
MDtuPWUrMTEyfDA7bz1lKzEyOHwwO3A9ZSsxNDR8MDtxPWUrMTYwfDA7cj1lKzE3NnwwO3M9ZSsx
OTJ8MDt0PWUrMjA4fDA7dT1lKzIyNHwwO3Y9ZSsyNDB8MDt3PWUrMjU2fDA7eD1lKzI3MnwwO3k9
ZSsyODh8MDt6PWUrMzA0fDA7QT1lKzMyMHwwO0I9ZSszMzZ8MDtDPWUrMzUyfDA7RD1lKzM2OHww
O0U9ZSszODR8MDtGPWUrNDAwfDA7Rz1lKzQxNnwwO0g9ZSs0MzJ8MDtjW2IrND4+Ml09ZC0xO2Nb
Yj4+Ml09MzgyNDtkPWIrOHwwO0k9YisxMnwwO2FbYisxMzZ8MF09MTtKPWIrMjR8MDtLPUo7Y1tJ
Pj4yXT1LO2NbZD4+Ml09SztjW2IrMTY+PjJdPUorMTEyO0o9Mjg7TD1LO2Rve2lmKChMfDApPT0w
KXtNPTB9ZWxzZXtjW0w+PjJdPTA7TT1jW0k+PjJdfDB9TD1NKzR8MDtjW0k+PjJdPUw7Sj1KLTF8
MDt9d2hpbGUoKEp8MCkhPTApO2RaKGIrMTQ0fDAsMTM0NCwxKTtKPWNbZD4+Ml18MDtkPWNbST4+
Ml18MDtpZigoSnwwKSE9KGR8MCkpe2NbST4+Ml09ZCsofigoZC00KygtSnwwKXwwKT4+PjIpPDwy
KX1jWzM2MTddPTA7Y1szNjE2XT0zNTI4O2lmKChjWzM4NDRdfDApIT0tMSl7Y1tIPj4yXT0xNTM3
NjtjW0grND4+Ml09MTI7Y1tIKzg+PjJdPTA7ZFcoMTUzNzYsSCw5Nil9aUooYiwxNDQ2NCwoY1sz
ODQ1XXwwKS0xfDApO2NbMzYxNV09MDtjWzM2MTRdPTM0ODg7aWYoKGNbMzg0Ml18MCkhPS0xKXtj
W0c+PjJdPTE1MzY4O2NbRys0Pj4yXT0xMjtjW0crOD4+Ml09MDtkVygxNTM2OCxHLDk2KX1pSihi
LDE0NDU2LChjWzM4NDNdfDApLTF8MCk7Y1szNjY3XT0wO2NbMzY2Nl09MzkzNjtjWzM2NjhdPTA7
YVsxNDY3Nl09MDtjWzM2NjhdPWNbKGE2KCl8MCk+PjJdO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tG
Pj4yXT0xNTY5NjtjW0YrND4+Ml09MTI7Y1tGKzg+PjJdPTA7ZFcoMTU2OTYsRiw5Nil9aUooYiwx
NDY2NCwoY1szOTI1XXwwKS0xfDApO2NbMzY2NV09MDtjWzM2NjRdPTM4NTY7aWYoKGNbMzkyMl18
MCkhPS0xKXtjW0U+PjJdPTE1Njg4O2NbRSs0Pj4yXT0xMjtjW0UrOD4+Ml09MDtkVygxNTY4OCxF
LDk2KX1pSihiLDE0NjU2LChjWzM5MjNdfDApLTF8MCk7Y1szNjE5XT0wO2NbMzYxOF09MzYyNDtp
ZigoY1szODQ4XXwwKSE9LTEpe2NbRD4+Ml09MTUzOTI7Y1tEKzQ+PjJdPTEyO2NbRCs4Pj4yXT0w
O2RXKDE1MzkyLEQsOTYpfWlKKGIsMTQ0NzIsKGNbMzg0OV18MCktMXwwKTtjWzUyMV09MDtjWzUy
MF09MzU2ODtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFr
fWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2NbNTIyXT1jWzI5NThdO2lmKChjWzM4
NDZdfDApIT0tMSl7Y1tDPj4yXT0xNTM4NDtjW0MrND4+Ml09MTI7Y1tDKzg+PjJdPTA7ZFcoMTUz
ODQsQyw5Nil9aUooYiwyMDgwLChjWzM4NDddfDApLTF8MCk7Y1szNjIxXT0wO2NbMzYyMF09MzY4
MDtpZigoY1szODUwXXwwKSE9LTEpe2NbQj4+Ml09MTU0MDA7Y1tCKzQ+PjJdPTEyO2NbQis4Pj4y
XT0wO2RXKDE1NDAwLEIsOTYpfWlKKGIsMTQ0ODAsKGNbMzg1MV18MCktMXwwKTtjWzM2MjNdPTA7
Y1szNjIyXT0zNzM2O2lmKChjWzM4NTJdfDApIT0tMSl7Y1tBPj4yXT0xNTQwODtjW0ErND4+Ml09
MTI7Y1tBKzg+PjJdPTA7ZFcoMTU0MDgsQSw5Nil9aUooYiwxNDQ4OCwoY1szODUzXXwwKS0xfDAp
O2NbMzU5N109MDtjWzM1OTZdPTMwMzI7YVsxNDM5Ml09NDY7YVsxNDM5M109NDQ7ayQoMTQzOTYs
MCwxMik7aWYoKGNbMzgyOF18MCkhPS0xKXtjW3o+PjJdPTE1MzEyO2Nbeis0Pj4yXT0xMjtjW3or
OD4+Ml09MDtkVygxNTMxMix6LDk2KX1pSihiLDE0Mzg0LChjWzM4MjldfDApLTF8MCk7Y1s1MTNd
PTA7Y1s1MTJdPTI5ODQ7Y1s1MTRdPTQ2O2NbNTE1XT00NDtrJCgyMDY0LDAsMTIpO2lmKChjWzM4
MjZdfDApIT0tMSl7Y1t5Pj4yXT0xNTMwNDtjW3krND4+Ml09MTI7Y1t5Kzg+PjJdPTA7ZFcoMTUz
MDQseSw5Nil9aUooYiwyMDQ4LChjWzM4MjddfDApLTF8MCk7Y1szNjEzXT0wO2NbMzYxMl09MzQx
NjtpZigoY1szODQwXXwwKSE9LTEpe2NbeD4+Ml09MTUzNjA7Y1t4KzQ+PjJdPTEyO2NbeCs4Pj4y
XT0wO2RXKDE1MzYwLHgsOTYpfWlKKGIsMTQ0NDgsKGNbMzg0MV18MCktMXwwKTtjWzM2MTFdPTA7
Y1szNjEwXT0zMzQ0O2lmKChjWzM4MzhdfDApIT0tMSl7Y1t3Pj4yXT0xNTM1MjtjW3crND4+Ml09
MTI7Y1t3Kzg+PjJdPTA7ZFcoMTUzNTIsdyw5Nil9aUooYiwxNDQ0MCwoY1szODM5XXwwKS0xfDAp
O2NbMzYwOV09MDtjWzM2MDhdPTMyODA7aWYoKGNbMzgzNl18MCkhPS0xKXtjW3Y+PjJdPTE1MzQ0
O2Nbdis0Pj4yXT0xMjtjW3YrOD4+Ml09MDtkVygxNTM0NCx2LDk2KX1pSihiLDE0NDMyLChjWzM4
MzddfDApLTF8MCk7Y1szNjA3XT0wO2NbMzYwNl09MzIxNjtpZigoY1szODM0XXwwKSE9LTEpe2Nb
dT4+Ml09MTUzMzY7Y1t1KzQ+PjJdPTEyO2NbdSs4Pj4yXT0wO2RXKDE1MzM2LHUsOTYpfWlKKGIs
MTQ0MjQsKGNbMzgzNV18MCktMXwwKTtjWzM2NzddPTA7Y1szNjc2XT00OTEyO2lmKChjWzQwNDZd
fDApIT0tMSl7Y1t0Pj4yXT0xNjE4NDtjW3QrND4+Ml09MTI7Y1t0Kzg+PjJdPTA7ZFcoMTYxODQs
dCw5Nil9aUooYiwxNDcwNCwoY1s0MDQ3XXwwKS0xfDApO2NbMzY3NV09MDtjWzM2NzRdPTQ4NDg7
aWYoKGNbNDA0NF18MCkhPS0xKXtjW3M+PjJdPTE2MTc2O2Nbcys0Pj4yXT0xMjtjW3MrOD4+Ml09
MDtkVygxNjE3NixzLDk2KX1pSihiLDE0Njk2LChjWzQwNDVdfDApLTF8MCk7Y1szNjczXT0wO2Nb
MzY3Ml09NDc4NDtpZigoY1s0MDQyXXwwKSE9LTEpe2Nbcj4+Ml09MTYxNjg7Y1tyKzQ+PjJdPTEy
O2Nbcis4Pj4yXT0wO2RXKDE2MTY4LHIsOTYpfWlKKGIsMTQ2ODgsKGNbNDA0M118MCktMXwwKTtj
WzM2NzFdPTA7Y1szNjcwXT00NzIwO2lmKChjWzQwNDBdfDApIT0tMSl7Y1txPj4yXT0xNjE2MDtj
W3ErND4+Ml09MTI7Y1txKzg+PjJdPTA7ZFcoMTYxNjAscSw5Nil9aUooYiwxNDY4MCwoY1s0MDQx
XXwwKS0xfDApO2NbMzU5NV09MDtjWzM1OTRdPTI2ODg7aWYoKGNbMzgxNl18MCkhPS0xKXtjW3A+
PjJdPTE1MjY0O2NbcCs0Pj4yXT0xMjtjW3ArOD4+Ml09MDtkVygxNTI2NCxwLDk2KX1pSihiLDE0
Mzc2LChjWzM4MTddfDApLTF8MCk7Y1szNTkzXT0wO2NbMzU5Ml09MjY0ODtpZigoY1szODE0XXww
KSE9LTEpe2Nbbz4+Ml09MTUyNTY7Y1tvKzQ+PjJdPTEyO2Nbbys4Pj4yXT0wO2RXKDE1MjU2LG8s
OTYpfWlKKGIsMTQzNjgsKGNbMzgxNV18MCktMXwwKTtjWzM1OTFdPTA7Y1szNTkwXT0yNjA4O2lm
KChjWzM4MTJdfDApIT0tMSl7Y1tuPj4yXT0xNTI0ODtjW24rND4+Ml09MTI7Y1tuKzg+PjJdPTA7
ZFcoMTUyNDgsbiw5Nil9aUooYiwxNDM2MCwoY1szODEzXXwwKS0xfDApO2NbMzU4OV09MDtjWzM1
ODhdPTI1Njg7aWYoKGNbMzgxMF18MCkhPS0xKXtjW20+PjJdPTE1MjQwO2NbbSs0Pj4yXT0xMjtj
W20rOD4+Ml09MDtkVygxNTI0MCxtLDk2KX1pSihiLDE0MzUyLChjWzM4MTFdfDApLTF8MCk7Y1s1
MDldPTA7Y1s1MDhdPTI4ODg7Y1s1MTBdPTI5MzY7aWYoKGNbMzgyNF18MCkhPS0xKXtjW2w+PjJd
PTE1Mjk2O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTI5NixsLDk2KX1pSihiLDIwMzIs
KGNbMzgyNV18MCktMXwwKTtjWzUwNV09MDtjWzUwNF09Mjc5MjtjWzUwNl09Mjg0MDtpZigoY1sz
ODIyXXwwKSE9LTEpe2Nbaz4+Ml09MTUyODg7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RXKDE1
Mjg4LGssOTYpfWlKKGIsMjAxNiwoY1szODIzXXwwKS0xfDApO2NbNTAxXT0wO2NbNTAwXT0zNzky
O2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4
XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7Y1s1MDJdPWNbMjk1OF07Y1s1MDBdPTI3NjA7aWYo
KGNbMzgyMF18MCkhPS0xKXtjW2o+PjJdPTE1MjgwO2Nbais0Pj4yXT0xMjtjW2orOD4+Ml09MDtk
VygxNTI4MCxqLDk2KX1pSihiLDJlMywoY1szODIxXXwwKS0xfDApO2NbNDk3XT0wO2NbNDk2XT0z
NzkyO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1sy
OTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7Y1s0OThdPWNbMjk1OF07Y1s0OTZdPTI3Mjg7
aWYoKGNbMzgxOF18MCkhPS0xKXtjW2g+PjJdPTE1MjcyO2NbaCs0Pj4yXT0xMjtjW2grOD4+Ml09
MDtkVygxNTI3MixoLDk2KX1pSihiLDE5ODQsKGNbMzgxOV18MCktMXwwKTtjWzM2MDVdPTA7Y1sz
NjA0XT0zMTIwO2lmKChjWzM4MzJdfDApIT0tMSl7Y1tnPj4yXT0xNTMyODtjW2crND4+Ml09MTI7
Y1tnKzg+PjJdPTA7ZFcoMTUzMjgsZyw5Nil9aUooYiwxNDQxNiwoY1szODMzXXwwKS0xfDApO2Nb
MzYwM109MDtjWzM2MDJdPTMwODA7aWYoKGNbMzgzMF18MCkhPS0xKXtjW2Y+PjJdPTE1MzIwO2Nb
Zis0Pj4yXT0xMjtjW2YrOD4+Ml09MDtkVygxNTMyMCxmLDk2KX1pSihiLDE0NDA4LChjWzM4MzFd
fDApLTF8MCk7aT1lO3JldHVybn1mdW5jdGlvbiBpdChhLGIpe2E9YXwwO2I9YnwwO3JldHVybiBi
fDB9ZnVuY3Rpb24gaXUoYSxiLGQsZSxmLGcsaCxpKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtjW2Y+PjJdPWQ7Y1tpPj4yXT1nO3JldHVybiAzfWZ1bmN0
aW9uIGl2KGEsYixkLGUsZixnLGgsaSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7aT1pfDA7Y1tmPj4yXT1kO2NbaT4+Ml09ZztyZXR1cm4gM31mdW5jdGlvbiBpdyhh
LGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2NbZj4+Ml09ZDtyZXR1cm4g
M31mdW5jdGlvbiBpeChhKXthPWF8MDtyZXR1cm4gMX1mdW5jdGlvbiBpeShhKXthPWF8MDtyZXR1
cm4gMX1mdW5jdGlvbiBpeihhKXthPWF8MDtyZXR1cm4gMX1mdW5jdGlvbiBpQShhLGIpe2E9YXww
O2I9YnwwO3JldHVybiBiPDwyND4+MjR8MH1mdW5jdGlvbiBpQihhLGIsYyl7YT1hfDA7Yj1ifDA7
Yz1jfDA7cmV0dXJuKGI+Pj4wPDEyOD9iJjI1NTpjKXwwfWZ1bmN0aW9uIGlDKGEsYixjKXthPWF8
MDtiPWJ8MDtjPWN8MDtyZXR1cm4oYjw8MjQ+PjI0Pi0xP2I6Yyl8MH1mdW5jdGlvbiBpRChhLGIs
YyxkLGUpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2I9ZC1jfDA7cmV0dXJuKGI+Pj4w
PGU+Pj4wP2I6ZSl8MH1mdW5jdGlvbiBpRShhKXthPWF8MDtjW2ErND4+Ml09KEk9Y1szODU0XXww
LGNbMzg1NF09SSsxLEkpKzE7cmV0dXJufWZ1bmN0aW9uIGlGKGIsZCxlLGYpe2I9YnwwO2Q9ZHww
O2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MDtpZigoZHwwKT09KGV8MCkpe2c9ZDtyZXR1cm4g
Z3wwfWVsc2V7aD1kO2k9Zn13aGlsZSgxKXtjW2k+PjJdPWFbaF18MDtmPWgrMXwwO2lmKChmfDAp
PT0oZXwwKSl7Zz1lO2JyZWFrfWVsc2V7aD1mO2k9aSs0fDB9fXJldHVybiBnfDB9ZnVuY3Rpb24g
aUcoYixkLGUsZixnKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGk9MCxq
PTA7aWYoKGR8MCk9PShlfDApKXtoPWQ7cmV0dXJuIGh8MH1iPSgoZS00KygtZHwwKXwwKT4+PjIp
KzF8MDtpPWQ7aj1nO3doaWxlKDEpe2c9Y1tpPj4yXXwwO2Fbal09Zz4+PjA8MTI4P2cmMjU1OmY7
Zz1pKzR8MDtpZigoZ3wwKT09KGV8MCkpe2JyZWFrfWVsc2V7aT1nO2o9aisxfDB9fWg9ZCsoYjw8
Mil8MDtyZXR1cm4gaHwwfWZ1bmN0aW9uIGlIKGIsYyxkLGUpe2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9
ZXwwO3ZhciBmPTAsZz0wLGg9MDtpZigoY3wwKT09KGR8MCkpe2Y9YztyZXR1cm4gZnwwfWVsc2V7
Zz1jO2g9ZX13aGlsZSgxKXthW2hdPWFbZ118MDtlPWcrMXwwO2lmKChlfDApPT0oZHwwKSl7Zj1k
O2JyZWFrfWVsc2V7Zz1lO2g9aCsxfDB9fXJldHVybiBmfDB9ZnVuY3Rpb24gaUkoYixjLGQsZSxm
KXtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTA7aWYoKGN8MCk9
PShkfDApKXtnPWM7cmV0dXJuIGd8MH1lbHNle2g9YztpPWZ9d2hpbGUoMSl7Zj1hW2hdfDA7YVtp
XT1mPDwyND4+MjQ+LTE/ZjplO2Y9aCsxfDA7aWYoKGZ8MCk9PShkfDApKXtnPWQ7YnJlYWt9ZWxz
ZXtoPWY7aT1pKzF8MH19cmV0dXJuIGd8MH1mdW5jdGlvbiBpSihhLGIsZCl7YT1hfDA7Yj1ifDA7
ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MDtkZyhifDAp
O2U9YSs4fDA7Zj1hKzEyfDA7YT1jW2Y+PjJdfDA7Zz1lfDA7aD1jW2c+PjJdfDA7aT1hLWg+PjI7
ZG97aWYoaT4+PjA+ZD4+PjApe2o9aH1lbHNle2s9ZCsxfDA7aWYoaT4+PjA8az4+PjApe2o1KGUs
ay1pfDApO2o9Y1tnPj4yXXwwO2JyZWFrfWlmKGk+Pj4wPD1rPj4+MCl7aj1oO2JyZWFrfWw9aCso
azw8Mil8MDtpZigobHwwKT09KGF8MCkpe2o9aDticmVha31jW2Y+PjJdPWErKH4oKGEtNCsoLWx8
MCl8MCk+Pj4yKTw8Mik7aj1ofX13aGlsZSgwKTtoPWNbaisoZDw8Mik+PjJdfDA7aWYoKGh8MCk9
PTApe209ajtuPW0rKGQ8PDIpfDA7Y1tuPj4yXT1iO3JldHVybn1keihofDApfDA7bT1jW2c+PjJd
fDA7bj1tKyhkPDwyKXwwO2Nbbj4+Ml09YjtyZXR1cm59ZnVuY3Rpb24gaUsoYSl7YT1hfDA7aUwo
YSk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGlMKGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAs
aD0wLGk9MCxqPTAsaz0wLGw9MCxtPTA7Y1tiPj4yXT0zODI0O2Q9YisxMnwwO2U9Y1tkPj4yXXww
O2Y9Yis4fDA7Zz1jW2Y+PjJdfDA7aWYoKGV8MCkhPShnfDApKXtoPTA7aT1nO2c9ZTt3aGlsZSgx
KXtlPWNbaSsoaDw8Mik+PjJdfDA7aWYoKGV8MCk9PTApe2o9ZztrPWl9ZWxzZXtsPWV8MDtkeihs
KXwwO2o9Y1tkPj4yXXwwO2s9Y1tmPj4yXXwwfWw9aCsxfDA7aWYobD4+PjA8ai1rPj4yPj4+MCl7
aD1sO2k9aztnPWp9ZWxzZXticmVha319fWRQKGIrMTQ0fDApO2o9Y1tmPj4yXXwwO2lmKChqfDAp
PT0wKXttPWJ8MDtkZShtKTtyZXR1cm59Zj1jW2Q+PjJdfDA7aWYoKGp8MCkhPShmfDApKXtjW2Q+
PjJdPWYrKH4oKGYtNCsoLWp8MCl8MCk+Pj4yKTw8Mil9aWYoKGp8MCk9PShiKzI0fDApKXthW2Ir
MTM2fDBdPTA7bT1ifDA7ZGUobSk7cmV0dXJufWVsc2V7a1Moaik7bT1ifDA7ZGUobSk7cmV0dXJu
fX1mdW5jdGlvbiBpTSgpe3ZhciBiPTAsZD0wO2lmKChhWzE2MjQ4XXwwKSE9MCl7Yj1jWzI5NTBd
fDA7cmV0dXJuIGJ8MH1pZigoYmMoMTYyNDgpfDApPT0wKXtiPWNbMjk1MF18MDtyZXR1cm4gYnww
fWRve2lmKChhWzE2MjU2XXwwKT09MCl7aWYoKGJjKDE2MjU2KXwwKT09MCl7YnJlYWt9aXMoMTQ0
OTYsMSk7Y1syOTU0XT0xNDQ5NjtjWzI5NTJdPTExODE2fX13aGlsZSgwKTtkPWNbY1syOTUyXT4+
Ml18MDtjWzI5NTZdPWQ7ZGcoZHwwKTtjWzI5NTBdPTExODI0O2I9Y1syOTUwXXwwO3JldHVybiBi
fDB9ZnVuY3Rpb24gaU4oYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0wO2Q9Y1tiPj4yXXwwO2NbYT4+
Ml09ZDtkZyhkfDApO3JldHVybn1mdW5jdGlvbiBpTyhhKXthPWF8MDtkeihjW2E+PjJdfDApfDA7
cmV0dXJufWZ1bmN0aW9uIGlQKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9u
IGlRKGEpe2E9YXwwO2lmKChhfDApPT0wKXtyZXR1cm59YllbY1soY1thPj4yXXwwKSs0Pj4yXSY1
MTFdKGEpO3JldHVybn1mdW5jdGlvbiBpUihhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1m
dW5jdGlvbiBpUyhiKXtiPWJ8MDt2YXIgZD0wO2NbYj4+Ml09MzkzNjtkPWNbYis4Pj4yXXwwO2Rv
e2lmKChkfDApIT0wKXtpZigoYVtiKzEyfDBdJjEpPT0wKXticmVha31rVChkKX19d2hpbGUoMCk7
ZGUoYnwwKTtrUyhiKTtyZXR1cm59ZnVuY3Rpb24gaVQoYil7Yj1ifDA7dmFyIGQ9MDtjW2I+PjJd
PTM5MzY7ZD1jW2IrOD4+Ml18MDtkb3tpZigoZHwwKSE9MCl7aWYoKGFbYisxMnwwXSYxKT09MCl7
YnJlYWt9a1QoZCl9fXdoaWxlKDApO2RlKGJ8MCk7cmV0dXJufWZ1bmN0aW9uIGlVKGEpe2E9YXww
O2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGlWKGEpe2E9YXwwO2lxKGEpO2tTKGEpO3Jl
dHVybn1mdW5jdGlvbiBpVyhhKXthPWF8MDt2YXIgYj0wO2I9Y1soaU0oKXwwKT4+Ml18MDtjW2E+
PjJdPWI7ZGcoYnwwKTtyZXR1cm59ZnVuY3Rpb24gaVgoYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0w
LGU9MCxmPTAsZz0wLGg9MDtkPWk7aT1pKzE2fDA7ZT1kfDA7Zj1jW2E+PjJdfDA7YT1ifDA7aWYo
KGNbYT4+Ml18MCkhPS0xKXtjW2U+PjJdPWI7Y1tlKzQ+PjJdPTEyO2NbZSs4Pj4yXT0wO2RXKGEs
ZSw5Nil9ZT0oY1tiKzQ+PjJdfDApLTF8MDtiPWNbZis4Pj4yXXwwO2lmKChjW2YrMTI+PjJdfDAp
LWI+PjI+Pj4wPD1lPj4+MCl7Zz1iTyg0KXwwO2g9ZztrcShoKTtibChnfDAsODE3NiwxMzQpO3Jl
dHVybiAwfWY9Y1tiKyhlPDwyKT4+Ml18MDtpZigoZnwwKT09MCl7Zz1iTyg0KXwwO2g9ZztrcSho
KTtibChnfDAsODE3NiwxMzQpO3JldHVybiAwfWVsc2V7aT1kO3JldHVybiBmfDB9cmV0dXJuIDB9
ZnVuY3Rpb24gaVkoYSxkLGUpe2E9YXwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTA7aWYoZT4+PjA+PTEy
OCl7Zj0wO3JldHVybiBmfDB9Zj0oYlsoY1soYTYoKXwwKT4+Ml18MCkrKGU8PDEpPj4xXSZkKTw8
MTY+PjE2IT0wO3JldHVybiBmfDB9ZnVuY3Rpb24gaVooYSxkLGUsZil7YT1hfDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MDtpZigoZHwwKT09KGV8MCkpe2c9ZDtyZXR1cm4g
Z3wwfWVsc2V7aD1kO2k9Zn13aGlsZSgxKXtmPWNbaD4+Ml18MDtpZihmPj4+MDwxMjgpe2o9Ylso
Y1soYTYoKXwwKT4+Ml18MCkrKGY8PDEpPj4xXXwwfWVsc2V7aj0wfWJbaT4+MV09ajtmPWgrNHww
O2lmKChmfDApPT0oZXwwKSl7Zz1lO2JyZWFrfWVsc2V7aD1mO2k9aSsyfDB9fXJldHVybiBnfDB9
ZnVuY3Rpb24gaV8oYSxkLGUsZil7YT1hfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAs
aT0wO2lmKChlfDApPT0oZnwwKSl7Zz1lO3JldHVybiBnfDB9ZWxzZXtoPWV9d2hpbGUoMSl7ZT1j
W2g+PjJdfDA7aWYoZT4+PjA8MTI4KXtpZigoYlsoY1soYTYoKXwwKT4+Ml18MCkrKGU8PDEpPj4x
XSZkKTw8MTY+PjE2IT0wKXtnPWg7aT0yMDk0O2JyZWFrfX1lPWgrNHwwO2lmKChlfDApPT0oZnww
KSl7Zz1mO2k9MjA5NjticmVha31lbHNle2g9ZX19aWYoKGl8MCk9PTIwOTQpe3JldHVybiBnfDB9
ZWxzZSBpZigoaXwwKT09MjA5Nil7cmV0dXJuIGd8MH1yZXR1cm4gMH1mdW5jdGlvbiBpJChhLGQs
ZSxmKXthPWF8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MDthPWU7d2hpbGUoMSl7aWYo
KGF8MCk9PShmfDApKXtnPWY7aD0yMTA0O2JyZWFrfWU9Y1thPj4yXXwwO2lmKGU+Pj4wPj0xMjgp
e2c9YTtoPTIxMDY7YnJlYWt9aWYoKGJbKGNbKGE2KCl8MCk+PjJdfDApKyhlPDwxKT4+MV0mZCk8
PDE2Pj4xNj09MCl7Zz1hO2g9MjEwNTticmVha31lbHNle2E9YSs0fDB9fWlmKChofDApPT0yMTA0
KXtyZXR1cm4gZ3wwfWVsc2UgaWYoKGh8MCk9PTIxMDUpe3JldHVybiBnfDB9ZWxzZSBpZigoaHww
KT09MjEwNil7cmV0dXJuIGd8MH1yZXR1cm4gMH1mdW5jdGlvbiBpMChhLGIpe2E9YXwwO2I9Ynww
O3ZhciBkPTA7aWYoYj4+PjA+PTEyOCl7ZD1iO3JldHVybiBkfDB9ZD1jWyhjWyhiUigpfDApPj4y
XXwwKSsoYjw8Mik+PjJdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBpMShhLGIsZCl7YT1hfDA7Yj1i
fDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2lmKChifDApPT0oZHwwKSl7ZT1iO3JldHVybiBlfDB9
ZWxzZXtmPWJ9d2hpbGUoMSl7Yj1jW2Y+PjJdfDA7aWYoYj4+PjA8MTI4KXtnPWNbKGNbKGJSKCl8
MCk+PjJdfDApKyhiPDwyKT4+Ml18MH1lbHNle2c9Yn1jW2Y+PjJdPWc7Yj1mKzR8MDtpZigoYnww
KT09KGR8MCkpe2U9ZDticmVha31lbHNle2Y9Yn19cmV0dXJuIGV8MH1mdW5jdGlvbiBpMihhLGIp
e2E9YXwwO2I9YnwwO3ZhciBkPTA7aWYoYj4+PjA+PTEyOCl7ZD1iO3JldHVybiBkfDB9ZD1jWyhj
WyhiUygpfDApPj4yXXwwKSsoYjw8Mik+PjJdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBpMyhhLGIs
ZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2lmKChifDApPT0oZHwwKSl7ZT1i
O3JldHVybiBlfDB9ZWxzZXtmPWJ9d2hpbGUoMSl7Yj1jW2Y+PjJdfDA7aWYoYj4+PjA8MTI4KXtn
PWNbKGNbKGJTKCl8MCk+PjJdfDApKyhiPDwyKT4+Ml18MH1lbHNle2c9Yn1jW2Y+PjJdPWc7Yj1m
KzR8MDtpZigoYnwwKT09KGR8MCkpe2U9ZDticmVha31lbHNle2Y9Yn19cmV0dXJuIGV8MH1mdW5j
dGlvbiBpNChhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTA7aWYoYjw8MjQ+PjI0PD0tMSl7ZD1iO3Jl
dHVybiBkfDB9ZD1jWyhjWyhiUigpfDApPj4yXXwwKSsoKGImMjU1KTw8Mik+PjJdJjI1NTtyZXR1
cm4gZHwwfWZ1bmN0aW9uIGk1KGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxo
PTA7aWYoKGR8MCk9PShlfDApKXtmPWQ7cmV0dXJuIGZ8MH1lbHNle2c9ZH13aGlsZSgxKXtkPWFb
Z118MDtpZihkPDwyND4+MjQ+LTEpe2g9Y1soY1soYlIoKXwwKT4+Ml18MCkrKGQ8PDI0Pj4yNDw8
Mik+PjJdJjI1NX1lbHNle2g9ZH1hW2ddPWg7ZD1nKzF8MDtpZigoZHwwKT09KGV8MCkpe2Y9ZTti
cmVha31lbHNle2c9ZH19cmV0dXJuIGZ8MH1mdW5jdGlvbiBpNihhLGIpe2E9YXwwO2I9YnwwO3Zh
ciBkPTA7aWYoYjw8MjQ+PjI0PD0tMSl7ZD1iO3JldHVybiBkfDB9ZD1jWyhjWyhiUygpfDApPj4y
XXwwKSsoYjw8MjQ+PjI0PDwyKT4+Ml0mMjU1O3JldHVybiBkfDB9ZnVuY3Rpb24gaTcoYixkLGUp
e2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MDtpZigoZHwwKT09KGV8MCkpe2Y9ZDty
ZXR1cm4gZnwwfWVsc2V7Zz1kfXdoaWxlKDEpe2Q9YVtnXXwwO2lmKGQ8PDI0Pj4yND4tMSl7aD1j
WyhjWyhiUygpfDApPj4yXXwwKSsoZDw8MjQ+PjI0PDwyKT4+Ml0mMjU1fWVsc2V7aD1kfWFbZ109
aDtkPWcrMXwwO2lmKChkfDApPT0oZXwwKSl7Zj1lO2JyZWFrfWVsc2V7Zz1kfX1yZXR1cm4gZnww
fWZ1bmN0aW9uIGk4KGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGk5KGEpe2E9YXwwO2RlKGF8
MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGphKGEsYixkLGUsZixnLGgsail7YT1hfDA7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTA7Yj1pO2k9aSsx
NnwwO2E9YnwwO2s9Yis4fDA7Y1thPj4yXT1kO2Nbaz4+Ml09ZztsPWpsKGQsZSxhLGcsaCxrLDEx
MTQxMTEsMCl8MDtjW2Y+PjJdPWQrKChjW2E+PjJdfDApLWQ+PjE8PDEpO2Nbaj4+Ml09ZysoKGNb
az4+Ml18MCktZyk7aT1iO3JldHVybiBsfDB9ZnVuY3Rpb24gamIoYixkLGUsZixnLGgsaixrKXti
PWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09
MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0w
LEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MDtsPWk7aT1pKzh8MDttPWx8
MDtuPW07bz1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7cD1lO3doaWxlKDEpe2lmKChwfDApPT0oZnww
KSl7cT1mO2JyZWFrfWlmKChjW3A+PjJdfDApPT0wKXtxPXA7YnJlYWt9ZWxzZXtwPXArNHwwfX1j
W2s+PjJdPWg7Y1tnPj4yXT1lO0wyNTU1OmRve2lmKChlfDApPT0oZnwwKXwoaHwwKT09KGp8MCkp
e3I9ZX1lbHNle3A9ZDtzPWo7dD1iKzh8MDt1PW98MDt2PWg7dz1lO3g9cTtMMjU1Nzp3aGlsZSgx
KXt5PWNbcCs0Pj4yXXwwO2NbbT4+Ml09Y1twPj4yXTtjW20rND4+Ml09eTt5PWJCKGNbdD4+Ml18
MCl8MDt6PWtzKHYsZyx4LXc+PjIscy12fDAsZCl8MDtpZigoeXwwKSE9MCl7YkIoeXwwKXwwfXN3
aXRjaCh6fDApe2Nhc2UtMTp7QT0yMTg4O2JyZWFrIEwyNTU3O2JyZWFrfTtjYXNlIDA6e0I9MTtB
PTIyMjQ7YnJlYWsgTDI1NTc7YnJlYWt9O2RlZmF1bHQ6e319eT0oY1trPj4yXXwwKSt6fDA7Y1tr
Pj4yXT15O2lmKCh5fDApPT0oanwwKSl7QT0yMjIxO2JyZWFrfWlmKCh4fDApPT0oZnwwKSl7Qz1m
O0Q9eTtFPWNbZz4+Ml18MH1lbHNle3k9YkIoY1t0Pj4yXXwwKXwwO3o9a2codSwwLGQpfDA7aWYo
KHl8MCkhPTApe2JCKHl8MCl8MH1pZigoenwwKT09LTEpe0I9MjtBPTIyMjY7YnJlYWt9eT1jW2s+
PjJdfDA7aWYoej4+PjA+KHMteXwwKT4+PjApe0I9MTtBPTIyMjc7YnJlYWt9TDI1NzQ6ZG97aWYo
KHp8MCkhPTApe0Y9ejtHPXU7SD15O3doaWxlKDEpe0k9YVtHXXwwO2Nbaz4+Ml09SCsxO2FbSF09
STtJPUYtMXwwO2lmKChJfDApPT0wKXticmVhayBMMjU3NH1GPUk7Rz1HKzF8MDtIPWNbaz4+Ml18
MH19fXdoaWxlKDApO3k9KGNbZz4+Ml18MCkrNHwwO2NbZz4+Ml09eTt6PXk7d2hpbGUoMSl7aWYo
KHp8MCk9PShmfDApKXtKPWY7YnJlYWt9aWYoKGNbej4+Ml18MCk9PTApe0o9ejticmVha31lbHNl
e3o9eis0fDB9fUM9SjtEPWNbaz4+Ml18MDtFPXl9aWYoKEV8MCk9PShmfDApfChEfDApPT0oanww
KSl7cj1FO2JyZWFrIEwyNTU1fWVsc2V7dj1EO3c9RTt4PUN9fWlmKChBfDApPT0yMTg4KXtjW2s+
PjJdPXY7TDI1ODY6ZG97aWYoKHd8MCk9PShjW2c+PjJdfDApKXtLPXd9ZWxzZXt4PXc7dT12O3do
aWxlKDEpe3M9Y1t4Pj4yXXwwO3A9YkIoY1t0Pj4yXXwwKXwwO3o9a2codSxzLG4pfDA7aWYoKHB8
MCkhPTApe2JCKHB8MCl8MH1pZigoenwwKT09LTEpe0s9eDticmVhayBMMjU4Nn1wPShjW2s+PjJd
fDApK3p8MDtjW2s+PjJdPXA7ej14KzR8MDtpZigoenwwKT09KGNbZz4+Ml18MCkpe0s9ejticmVh
a31lbHNle3g9ejt1PXB9fX19d2hpbGUoMCk7Y1tnPj4yXT1LO0I9MjtpPWw7cmV0dXJuIEJ8MH1l
bHNlIGlmKChBfDApPT0yMjIxKXtyPWNbZz4+Ml18MDticmVha31lbHNlIGlmKChBfDApPT0yMjI0
KXtpPWw7cmV0dXJuIEJ8MH1lbHNlIGlmKChBfDApPT0yMjI2KXtpPWw7cmV0dXJuIEJ8MH1lbHNl
IGlmKChBfDApPT0yMjI3KXtpPWw7cmV0dXJuIEJ8MH19fXdoaWxlKDApO0I9KHJ8MCkhPShmfDAp
fDA7aT1sO3JldHVybiBCfDB9ZnVuY3Rpb24gamMoYixkLGUsZixnLGgsaixrKXtiPWJ8MDtkPWR8
MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAs
RD0wLEU9MCxGPTAsRz0wLEg9MCxJPTA7bD1pO2k9aSs4fDA7bT1sfDA7bj1tO289ZTt3aGlsZSgx
KXtpZigob3wwKT09KGZ8MCkpe3A9ZjticmVha31pZigoYVtvXXwwKT09MCl7cD1vO2JyZWFrfWVs
c2V7bz1vKzF8MH19Y1trPj4yXT1oO2NbZz4+Ml09ZTtMMjYwNzpkb3tpZigoZXwwKT09KGZ8MCl8
KGh8MCk9PShqfDApKXtxPWV9ZWxzZXtvPWQ7cj1qO3M9Yis4fDA7dD1oO3U9ZTt2PXA7TDI2MDk6
d2hpbGUoMSl7dz1jW28rND4+Ml18MDtjW20+PjJdPWNbbz4+Ml07Y1ttKzQ+PjJdPXc7eD12O3c9
YkIoY1tzPj4yXXwwKXwwO3k9a2QodCxnLHgtdXwwLHItdD4+MixkKXwwO2lmKCh3fDApIT0wKXti
Qih3fDApfDB9c3dpdGNoKHl8MCl7Y2FzZS0xOnt6PTIyNDM7YnJlYWsgTDI2MDk7YnJlYWt9O2Nh
c2UgMDp7QT0yO3o9MjI3ODticmVhayBMMjYwOTticmVha307ZGVmYXVsdDp7fX13PShjW2s+PjJd
fDApKyh5PDwyKXwwO2Nbaz4+Ml09dztpZigod3wwKT09KGp8MCkpe3o9MjI3NTticmVha315PWNb
Zz4+Ml18MDtpZigodnwwKT09KGZ8MCkpe0I9ZjtDPXc7RD15fWVsc2V7RT1iQihjW3M+PjJdfDAp
fDA7Rj1rYyh3LHksMSxkKXwwO2lmKChFfDApIT0wKXtiQihFfDApfDB9aWYoKEZ8MCkhPTApe0E9
Mjt6PTIyODI7YnJlYWt9Y1trPj4yXT0oY1trPj4yXXwwKSs0O0Y9KGNbZz4+Ml18MCkrMXwwO2Nb
Zz4+Ml09RjtFPUY7d2hpbGUoMSl7aWYoKEV8MCk9PShmfDApKXtHPWY7YnJlYWt9aWYoKGFbRV18
MCk9PTApe0c9RTticmVha31lbHNle0U9RSsxfDB9fUI9RztDPWNbaz4+Ml18MDtEPUZ9aWYoKER8
MCk9PShmfDApfChDfDApPT0oanwwKSl7cT1EO2JyZWFrIEwyNjA3fWVsc2V7dD1DO3U9RDt2PUJ9
fWlmKCh6fDApPT0yMjQzKXtjW2s+PjJdPXQ7TDI2MzE6ZG97aWYoKHV8MCk9PShjW2c+PjJdfDAp
KXtIPXV9ZWxzZXt2PXQ7cj11O0wyNjMyOndoaWxlKDEpe289YkIoY1tzPj4yXXwwKXwwO0U9a2Mo
dixyLHgtcnwwLG4pfDA7aWYoKG98MCkhPTApe2JCKG98MCl8MH1zd2l0Y2goRXwwKXtjYXNlIDA6
e0k9cisxfDA7YnJlYWt9O2Nhc2UtMTp7ej0yMjU0O2JyZWFrIEwyNjMyO2JyZWFrfTtjYXNlLTI6
e3o9MjI1NTticmVhayBMMjYzMjticmVha307ZGVmYXVsdDp7ST1yK0V8MH19RT0oY1trPj4yXXww
KSs0fDA7Y1trPj4yXT1FO2lmKChJfDApPT0oY1tnPj4yXXwwKSl7SD1JO2JyZWFrIEwyNjMxfWVs
c2V7dj1FO3I9SX19aWYoKHp8MCk9PTIyNTQpe2NbZz4+Ml09cjtBPTI7aT1sO3JldHVybiBBfDB9
ZWxzZSBpZigoenwwKT09MjI1NSl7Y1tnPj4yXT1yO0E9MTtpPWw7cmV0dXJuIEF8MH19fXdoaWxl
KDApO2NbZz4+Ml09SDtBPShIfDApIT0oZnwwKXwwO2k9bDtyZXR1cm4gQXwwfWVsc2UgaWYoKHp8
MCk9PTIyNzUpe3E9Y1tnPj4yXXwwO2JyZWFrfWVsc2UgaWYoKHp8MCk9PTIyNzgpe2k9bDtyZXR1
cm4gQXwwfWVsc2UgaWYoKHp8MCk9PTIyODIpe2k9bDtyZXR1cm4gQXwwfX19d2hpbGUoMCk7QT0o
cXwwKSE9KGZ8MCl8MDtpPWw7cmV0dXJuIEF8MH1mdW5jdGlvbiBqZChiLGQsZSxmLGcpe2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO3ZhciBoPTAsaj0wLGs9MCxsPTAsbT0wLG49MDtoPWk7
aT1pKzh8MDtjW2c+PjJdPWU7ZT1ofDA7aj1iQihjW2IrOD4+Ml18MCl8MDtiPWtnKGUsMCxkKXww
O2lmKChqfDApIT0wKXtiQihqfDApfDB9c3dpdGNoKGJ8MCl7Y2FzZS0xOmNhc2UgMDp7az0yO2k9
aDtyZXR1cm4ga3wwfTtkZWZhdWx0Ont9fWo9Yi0xfDA7Yj1jW2c+PjJdfDA7aWYoaj4+PjA+KGYt
YnwwKT4+PjApe2s9MTtpPWg7cmV0dXJuIGt8MH1pZigoanwwKT09MCl7az0wO2k9aDtyZXR1cm4g
a3wwfWVsc2V7bD1qO209ZTtuPWJ9d2hpbGUoMSl7Yj1hW21dfDA7Y1tnPj4yXT1uKzE7YVtuXT1i
O2I9bC0xfDA7aWYoKGJ8MCk9PTApe2s9MDticmVha31sPWI7bT1tKzF8MDtuPWNbZz4+Ml18MH1p
PWg7cmV0dXJuIGt8MH1mdW5jdGlvbiBqZShhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAsZj0wLGc9
MDtiPWErOHwwO2E9YkIoY1tiPj4yXXwwKXwwO2Q9a2YoMCwwLDEpfDA7aWYoKGF8MCkhPTApe2JC
KGF8MCl8MH1pZigoZHwwKSE9MCl7ZT0tMTtyZXR1cm4gZXwwfWQ9Y1tiPj4yXXwwO2lmKChkfDAp
PT0wKXtlPTE7cmV0dXJuIGV8MH1lPWJCKGR8MCl8MDtkPWJkKCl8MDtpZigoZXwwKT09MCl7Zj0o
ZHwwKT09MTtnPWYmMTtyZXR1cm4gZ3wwfWJCKGV8MCl8MDtmPShkfDApPT0xO2c9ZiYxO3JldHVy
biBnfDB9ZnVuY3Rpb24gamYoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTA7aWYoKGZ8MCk9PTB8KGR8
MCk9PShlfDApKXtnPTA7cmV0dXJuIGd8MH1oPWU7aT1hKzh8MDthPWQ7ZD0wO2o9MDtMMjY5Mzp3
aGlsZSgxKXtrPWJCKGNbaT4+Ml18MCl8MDtsPWtiKGEsaC1hfDAsYil8MDtpZigoa3wwKSE9MCl7
YkIoa3wwKXwwfXN3aXRjaChsfDApe2Nhc2UgMDp7bT0xO249YSsxfDA7YnJlYWt9O2Nhc2UtMTpj
YXNlLTI6e2c9ZDtvPTIzNDM7YnJlYWsgTDI2OTM7YnJlYWt9O2RlZmF1bHQ6e209bDtuPWErbHww
fX1sPW0rZHwwO2s9aisxfDA7aWYoaz4+PjA+PWY+Pj4wfChufDApPT0oZXwwKSl7Zz1sO289MjM0
NTticmVha31lbHNle2E9bjtkPWw7aj1rfX1pZigob3wwKT09MjM0NSl7cmV0dXJuIGd8MH1lbHNl
IGlmKChvfDApPT0yMzQzKXtyZXR1cm4gZ3wwfXJldHVybiAwfWZ1bmN0aW9uIGpnKGEpe2E9YXww
O3ZhciBiPTAsZD0wLGU9MDtiPWNbYSs4Pj4yXXwwO2Rve2lmKChifDApPT0wKXtkPTF9ZWxzZXth
PWJCKGJ8MCl8MDtlPWJkKCl8MDtpZigoYXwwKT09MCl7ZD1lO2JyZWFrfWJCKGF8MCl8MDtkPWV9
fXdoaWxlKDApO3JldHVybiBkfDB9ZnVuY3Rpb24gamgoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDtjW2Y+PjJdPWQ7cmV0dXJuIDN9ZnVuY3Rpb24gamkoYSl7YT1hfDA7
cmV0dXJuIDB9ZnVuY3Rpb24gamooYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gamsoYSl7YT1h
fDA7cmV0dXJuIDR9ZnVuY3Rpb24gamwoZCxmLGcsaCxpLGosayxsKXtkPWR8MDtmPWZ8MDtnPWd8
MDtoPWh8MDtpPWl8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxy
PTA7Y1tnPj4yXT1kO2Nbaj4+Ml09aDtkb3tpZigobCYyfDApIT0wKXtpZigoaS1ofDApPDMpe209
MTtyZXR1cm4gbXwwfWVsc2V7Y1tqPj4yXT1oKzE7YVtoXT0tMTc7ZD1jW2o+PjJdfDA7Y1tqPj4y
XT1kKzE7YVtkXT0tNjk7ZD1jW2o+PjJdfDA7Y1tqPj4yXT1kKzE7YVtkXT0tNjU7YnJlYWt9fX13
aGlsZSgwKTtoPWY7bD1jW2c+PjJdfDA7aWYobD4+PjA+PWY+Pj4wKXttPTA7cmV0dXJuIG18MH1k
PWk7aT1sO0wyNzI3OndoaWxlKDEpe2w9YltpPj4xXXwwO249bCY2NTUzNTtpZihuPj4+MD5rPj4+
MCl7bT0yO289MjM5OTticmVha31kb3tpZigobCY2NTUzNSk8MTI4KXtwPWNbaj4+Ml18MDtpZigo
ZC1wfDApPDEpe209MTtvPTIzODg7YnJlYWsgTDI3Mjd9Y1tqPj4yXT1wKzE7YVtwXT1sJjI1NX1l
bHNle2lmKChsJjY1NTM1KTwyMDQ4KXtwPWNbaj4+Ml18MDtpZigoZC1wfDApPDIpe209MTtvPTIz
ODk7YnJlYWsgTDI3Mjd9Y1tqPj4yXT1wKzE7YVtwXT0obj4+PjZ8MTkyKSYyNTU7cD1jW2o+PjJd
fDA7Y1tqPj4yXT1wKzE7YVtwXT0obiY2M3wxMjgpJjI1NTticmVha31pZigobCY2NTUzNSk8NTUy
OTYpe3A9Y1tqPj4yXXwwO2lmKChkLXB8MCk8Myl7bT0xO289MjM5NzticmVhayBMMjcyN31jW2o+
PjJdPXArMTthW3BdPShuPj4+MTJ8MjI0KSYyNTU7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzE7YVtw
XT0obj4+PjYmNjN8MTI4KSYyNTU7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzE7YVtwXT0obiY2M3wx
MjgpJjI1NTticmVha31pZigobCY2NTUzNSk+PTU2MzIwKXtpZigobCY2NTUzNSk8NTczNDQpe209
MjtvPTIzOTM7YnJlYWsgTDI3Mjd9cD1jW2o+PjJdfDA7aWYoKGQtcHwwKTwzKXttPTE7bz0yMzk0
O2JyZWFrIEwyNzI3fWNbaj4+Ml09cCsxO2FbcF09KG4+Pj4xMnwyMjQpJjI1NTtwPWNbaj4+Ml18
MDtjW2o+PjJdPXArMTthW3BdPShuPj4+NiY2M3wxMjgpJjI1NTtwPWNbaj4+Ml18MDtjW2o+PjJd
PXArMTthW3BdPShuJjYzfDEyOCkmMjU1O2JyZWFrfWlmKChoLWl8MCk8NCl7bT0xO289MjM5MTti
cmVhayBMMjcyN31wPWkrMnwwO3E9ZVtwPj4xXXwwO2lmKChxJjY0NTEyfDApIT01NjMyMCl7bT0y
O289MjM5MjticmVhayBMMjcyN31pZigoZC0oY1tqPj4yXXwwKXwwKTw0KXttPTE7bz0yMzk4O2Jy
ZWFrIEwyNzI3fXI9biY5NjA7aWYoKChyPDwxMCkrNjU1MzZ8bjw8MTAmNjQ1MTJ8cSYxMDIzKT4+
PjA+az4+PjApe209MjtvPTI0MDA7YnJlYWsgTDI3Mjd9Y1tnPj4yXT1wO3A9KHI+Pj42KSsxfDA7
cj1jW2o+PjJdfDA7Y1tqPj4yXT1yKzE7YVtyXT0ocD4+PjJ8MjQwKSYyNTU7cj1jW2o+PjJdfDA7
Y1tqPj4yXT1yKzE7YVtyXT0obj4+PjImMTV8cDw8NCY0OHwxMjgpJjI1NTtwPWNbaj4+Ml18MDtj
W2o+PjJdPXArMTthW3BdPShuPDw0JjQ4fHE+Pj42JjE1fDEyOCkmMjU1O3A9Y1tqPj4yXXwwO2Nb
aj4+Ml09cCsxO2FbcF09KHEmNjN8MTI4KSYyNTV9fXdoaWxlKDApO249KGNbZz4+Ml18MCkrMnww
O2NbZz4+Ml09bjtpZihuPj4+MDxmPj4+MCl7aT1ufWVsc2V7bT0wO289MjM5NTticmVha319aWYo
KG98MCk9PTIzODkpe3JldHVybiBtfDB9ZWxzZSBpZigob3wwKT09MjM5Myl7cmV0dXJuIG18MH1l
bHNlIGlmKChvfDApPT0yMzk0KXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTI0MDApe3JldHVy
biBtfDB9ZWxzZSBpZigob3wwKT09MjM4OCl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yMzkx
KXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTIzOTIpe3JldHVybiBtfDB9ZWxzZSBpZigob3ww
KT09MjM5NSl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yMzk3KXtyZXR1cm4gbXwwfWVsc2Ug
aWYoKG98MCk9PTIzOTgpe3JldHVybiBtfDB9ZWxzZSBpZigob3wwKT09MjM5OSl7cmV0dXJuIG18
MH1yZXR1cm4gMH1mdW5jdGlvbiBqbShlLGYsZyxoLGksaixrLGwpe2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2k9aXwwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTA7Y1tnPj4yXT1lO2Nbaj4+Ml09aDtoPWNbZz4+
Ml18MDtkb3tpZigobCY0fDApPT0wKXttPWh9ZWxzZXtpZigoZi1ofDApPD0yKXttPWg7YnJlYWt9
aWYoKGFbaF18MCkhPS0xNyl7bT1oO2JyZWFrfWlmKChhW2grMXwwXXwwKSE9LTY5KXttPWg7YnJl
YWt9aWYoKGFbaCsyfDBdfDApIT0tNjUpe209aDticmVha31lPWgrM3wwO2NbZz4+Ml09ZTttPWV9
fXdoaWxlKDApO0wyNzcyOmRve2lmKG0+Pj4wPGY+Pj4wKXtoPWY7bD1pO2U9Y1tqPj4yXXwwO249
bTtMMjc3NDp3aGlsZSgxKXtpZihlPj4+MD49aT4+PjApe289bjticmVhayBMMjc3Mn1wPWFbbl18
MDtxPXAmMjU1O2lmKHE+Pj4wPms+Pj4wKXtyPTI7cz0yNDQ0O2JyZWFrfWRve2lmKHA8PDI0Pj4y
ND4tMSl7YltlPj4xXT1wJjI1NTtjW2c+PjJdPShjW2c+PjJdfDApKzF9ZWxzZXtpZigocCYyNTUp
PDE5NCl7cj0yO3M9MjQ1MzticmVhayBMMjc3NH1pZigocCYyNTUpPDIyNCl7aWYoKGgtbnwwKTwy
KXtyPTE7cz0yNDU0O2JyZWFrIEwyNzc0fXQ9ZFtuKzF8MF18MDtpZigodCYxOTJ8MCkhPTEyOCl7
cj0yO3M9MjQ1NTticmVhayBMMjc3NH11PXQmNjN8cTw8NiYxOTg0O2lmKHU+Pj4wPms+Pj4wKXty
PTI7cz0yNDU2O2JyZWFrIEwyNzc0fWJbZT4+MV09dSY2NTUzNTtjW2c+PjJdPShjW2c+PjJdfDAp
KzI7YnJlYWt9aWYoKHAmMjU1KTwyNDApe2lmKChoLW58MCk8Myl7cj0xO3M9MjQ1NzticmVhayBM
Mjc3NH11PWFbbisxfDBdfDA7c3dpdGNoKHF8MCl7Y2FzZSAyMjQ6e2lmKCh1Ji0zMik8PDI0Pj4y
NCE9LTk2KXtyPTI7cz0yNDUwO2JyZWFrIEwyNzc0fWJyZWFrfTtjYXNlIDIzNzp7aWYoKHUmLTMy
KTw8MjQ+PjI0IT0tMTI4KXtyPTI7cz0yNDUyO2JyZWFrIEwyNzc0fWJyZWFrfTtkZWZhdWx0Ontp
ZigodSYtNjQpPDwyND4+MjQhPS0xMjgpe3I9MjtzPTI0NjI7YnJlYWsgTDI3NzR9fX10PWRbbisy
fDBdfDA7aWYoKHQmMTkyfDApIT0xMjgpe3I9MjtzPTI0NDM7YnJlYWsgTDI3NzR9dj0odSYyNTUp
PDw2JjQwMzJ8cTw8MTJ8dCY2MztpZigodiY2NTUzNSk+Pj4wPms+Pj4wKXtyPTI7cz0yNDQyO2Jy
ZWFrIEwyNzc0fWJbZT4+MV09diY2NTUzNTtjW2c+PjJdPShjW2c+PjJdfDApKzM7YnJlYWt9aWYo
KHAmMjU1KT49MjQ1KXtyPTI7cz0yNDQ3O2JyZWFrIEwyNzc0fWlmKChoLW58MCk8NCl7cj0xO3M9
MjQ1ODticmVhayBMMjc3NH12PWFbbisxfDBdfDA7c3dpdGNoKHF8MCl7Y2FzZSAyNDA6e2lmKCh2
KzExMiYyNTUpPj00OCl7cj0yO3M9MjQ0ODticmVhayBMMjc3NH1icmVha307Y2FzZSAyNDQ6e2lm
KCh2Ji0xNik8PDI0Pj4yNCE9LTEyOCl7cj0yO3M9MjQ1OTticmVhayBMMjc3NH1icmVha307ZGVm
YXVsdDp7aWYoKHYmLTY0KTw8MjQ+PjI0IT0tMTI4KXtyPTI7cz0yNDYwO2JyZWFrIEwyNzc0fX19
dD1kW24rMnwwXXwwO2lmKCh0JjE5MnwwKSE9MTI4KXtyPTI7cz0yNDYxO2JyZWFrIEwyNzc0fXU9
ZFtuKzN8MF18MDtpZigodSYxOTJ8MCkhPTEyOCl7cj0yO3M9MjQ0OTticmVhayBMMjc3NH1pZigo
bC1lfDApPDQpe3I9MTtzPTI0NDU7YnJlYWsgTDI3NzR9dz1xJjc7eD12JjI1NTt2PXQ8PDY7eT11
JjYzO2lmKCh4PDwxMiYyNTgwNDh8dzw8MTh8diY0MDMyfHkpPj4+MD5rPj4+MCl7cj0yO3M9MjQ0
NjticmVhayBMMjc3NH1iW2U+PjFdPSh4PDwyJjYwfHQ+Pj40JjN8KCh4Pj4+NCYzfHc8PDIpPDw2
KSsxNjMyMHw1NTI5NikmNjU1MzU7dz0oY1tqPj4yXXwwKSsyfDA7Y1tqPj4yXT13O2Jbdz4+MV09
KHl8diY5NjB8NTYzMjApJjY1NTM1O2NbZz4+Ml09KGNbZz4+Ml18MCkrNH19d2hpbGUoMCk7cT0o
Y1tqPj4yXXwwKSsyfDA7Y1tqPj4yXT1xO3A9Y1tnPj4yXXwwO2lmKHA+Pj4wPGY+Pj4wKXtlPXE7
bj1wfWVsc2V7bz1wO2JyZWFrIEwyNzcyfX1pZigoc3wwKT09MjQ0Mil7cmV0dXJuIHJ8MH1lbHNl
IGlmKChzfDApPT0yNDQzKXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NDQpe3JldHVybiBy
fDB9ZWxzZSBpZigoc3wwKT09MjQ0OCl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDQ5KXty
ZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTApe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09
MjQ0NSl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDQ2KXtyZXR1cm4gcnwwfWVsc2UgaWYo
KHN8MCk9PTI0NDcpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ1Nil7cmV0dXJuIHJ8MH1l
bHNlIGlmKChzfDApPT0yNDU3KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTgpe3JldHVy
biByfDB9ZWxzZSBpZigoc3wwKT09MjQ1OSl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDYw
KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NjEpe3JldHVybiByfDB9ZWxzZSBpZigoc3ww
KT09MjQ2Mil7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDUyKXtyZXR1cm4gcnwwfWVsc2Ug
aWYoKHN8MCk9PTI0NTMpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ1NCl7cmV0dXJuIHJ8
MH1lbHNlIGlmKChzfDApPT0yNDU1KXtyZXR1cm4gcnwwfX1lbHNle289bX19d2hpbGUoMCk7cj1v
Pj4+MDxmPj4+MHwwO3JldHVybiByfDB9ZnVuY3Rpb24gam4oYixjLGUsZixnKXtiPWJ8MDtjPWN8
MDtlPWV8MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxw
PTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTA7ZG97aWYoKGcmNHwwKT09MCl7aD1ifWVsc2V7aWYo
KGMtYnwwKTw9Mil7aD1iO2JyZWFrfWlmKChhW2JdfDApIT0tMTcpe2g9YjticmVha31pZigoYVti
KzF8MF18MCkhPS02OSl7aD1iO2JyZWFrfWg9KGFbYisyfDBdfDApPT0tNjU/YiszfDA6Yn19d2hp
bGUoMCk7TDI4NDE6ZG97aWYoaD4+PjA8Yz4+PjAmKGV8MCkhPTApe2c9YztpPTA7aj1oO0wyODQz
OndoaWxlKDEpe2s9YVtqXXwwO2w9ayYyNTU7aWYobD4+PjA+Zj4+PjApe209ajticmVhayBMMjg0
MX1kb3tpZihrPDwyND4+MjQ+LTEpe249aisxfDA7bz1pfWVsc2V7aWYoKGsmMjU1KTwxOTQpe209
ajticmVhayBMMjg0MX1pZigoayYyNTUpPDIyNCl7aWYoKGctanwwKTwyKXttPWo7YnJlYWsgTDI4
NDF9cD1kW2orMXwwXXwwO2lmKChwJjE5MnwwKSE9MTI4KXttPWo7YnJlYWsgTDI4NDF9aWYoKHAm
NjN8bDw8NiYxOTg0KT4+PjA+Zj4+PjApe209ajticmVhayBMMjg0MX1uPWorMnwwO289aTticmVh
a31pZigoayYyNTUpPDI0MCl7cT1qO2lmKChnLXF8MCk8Myl7bT1qO2JyZWFrIEwyODQxfXA9YVtq
KzF8MF18MDtzd2l0Y2gobHwwKXtjYXNlIDIyNDp7aWYoKHAmLTMyKTw8MjQ+PjI0IT0tOTYpe3I9
MjQ4MzticmVhayBMMjg0M31icmVha307Y2FzZSAyMzc6e2lmKChwJi0zMik8PDI0Pj4yNCE9LTEy
OCl7cj0yNDg1O2JyZWFrIEwyODQzfWJyZWFrfTtkZWZhdWx0OntpZigocCYtNjQpPDwyND4+MjQh
PS0xMjgpe3I9MjQ4NzticmVhayBMMjg0M319fXM9ZFtqKzJ8MF18MDtpZigocyYxOTJ8MCkhPTEy
OCl7bT1qO2JyZWFrIEwyODQxfWlmKCgocCYyNTUpPDw2JjQwMzJ8bDw8MTImNjE0NDB8cyY2Myk+
Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDI4NDF9bj1qKzN8MDtvPWk7YnJlYWt9aWYoKGsmMjU1KT49
MjQ1KXttPWo7YnJlYWsgTDI4NDF9dD1qO2lmKChnLXR8MCk8NCl7bT1qO2JyZWFrIEwyODQxfWlm
KChlLWl8MCk+Pj4wPDIpe209ajticmVhayBMMjg0MX1zPWFbaisxfDBdfDA7c3dpdGNoKGx8MCl7
Y2FzZSAyNDA6e2lmKChzKzExMiYyNTUpPj00OCl7cj0yNDk2O2JyZWFrIEwyODQzfWJyZWFrfTtj
YXNlIDI0NDp7aWYoKHMmLTE2KTw8MjQ+PjI0IT0tMTI4KXtyPTI0OTg7YnJlYWsgTDI4NDN9YnJl
YWt9O2RlZmF1bHQ6e2lmKChzJi02NCk8PDI0Pj4yNCE9LTEyOCl7cj0yNTAwO2JyZWFrIEwyODQz
fX19cD1kW2orMnwwXXwwO2lmKChwJjE5MnwwKSE9MTI4KXttPWo7YnJlYWsgTDI4NDF9dT1kW2or
M3wwXXwwO2lmKCh1JjE5MnwwKSE9MTI4KXttPWo7YnJlYWsgTDI4NDF9aWYoKChzJjI1NSk8PDEy
JjI1ODA0OHxsPDwxOCYxODM1MDA4fHA8PDYmNDAzMnx1JjYzKT4+PjA+Zj4+PjApe209ajticmVh
ayBMMjg0MX1uPWorNHwwO289aSsxfDB9fXdoaWxlKDApO2w9bysxfDA7aWYobj4+PjA8Yz4+PjAm
bD4+PjA8ZT4+PjApe2k9bDtqPW59ZWxzZXttPW47YnJlYWsgTDI4NDF9fWlmKChyfDApPT0yNTAw
KXt2PXQtYnwwO3JldHVybiB2fDB9ZWxzZSBpZigocnwwKT09MjQ5Nil7dj10LWJ8MDtyZXR1cm4g
dnwwfWVsc2UgaWYoKHJ8MCk9PTI0OTgpe3Y9dC1ifDA7cmV0dXJuIHZ8MH1lbHNlIGlmKChyfDAp
PT0yNDgzKXt2PXEtYnwwO3JldHVybiB2fDB9ZWxzZSBpZigocnwwKT09MjQ4NSl7dj1xLWJ8MDty
ZXR1cm4gdnwwfWVsc2UgaWYoKHJ8MCk9PTI0ODcpe3Y9cS1ifDA7cmV0dXJuIHZ8MH19ZWxzZXtt
PWh9fXdoaWxlKDApO3Y9bS1ifDA7cmV0dXJuIHZ8MH1mdW5jdGlvbiBqbyhhLGIsZCxlLGYsZyxo
LGope2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBr
PTAsbD0wO2I9aTtpPWkrMTZ8MDthPWJ8MDtrPWIrOHwwO2NbYT4+Ml09ZDtjW2s+PjJdPWc7bD1q
bShkLGUsYSxnLGgsaywxMTE0MTExLDApfDA7Y1tmPj4yXT1kKygoY1thPj4yXXwwKS1kKTtjW2o+
PjJdPWcrKChjW2s+PjJdfDApLWc+PjE8PDEpO2k9YjtyZXR1cm4gbHwwfWZ1bmN0aW9uIGpwKGEs
YixjLGQsZSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7cmV0dXJuIGpuKGMsZCxlLDEx
MTQxMTEsMCl8MH1mdW5jdGlvbiBqcShhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5j
dGlvbiBqcihhLGIsZCxlLGYsZyxoLGope2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wO2I9aTtpPWkrMTZ8MDthPWJ8MDtrPWIrOHwwO2Nb
YT4+Ml09ZDtjW2s+PjJdPWc7bD1qdyhkLGUsYSxnLGgsaywxMTE0MTExLDApfDA7Y1tmPj4yXT1k
KygoY1thPj4yXXwwKS1kPj4yPDwyKTtjW2o+PjJdPWcrKChjW2s+PjJdfDApLWcpO2k9YjtyZXR1
cm4gbHwwfWZ1bmN0aW9uIGpzKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Y1tmPj4yXT1kO3JldHVybiAzfWZ1bmN0aW9uIGp0KGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0
aW9uIGp1KGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGp2KGEpe2E9YXwwO3JldHVybiA0fWZ1
bmN0aW9uIGp3KGIsZCxlLGYsZyxoLGksail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7aT1pfDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MDtjW2U+PjJdPWI7Y1toPj4yXT1m
O2Rve2lmKChqJjJ8MCkhPTApe2lmKChnLWZ8MCk8Myl7az0xO3JldHVybiBrfDB9ZWxzZXtjW2g+
PjJdPWYrMTthW2ZdPS0xNztiPWNbaD4+Ml18MDtjW2g+PjJdPWIrMTthW2JdPS02OTtiPWNbaD4+
Ml18MDtjW2g+PjJdPWIrMTthW2JdPS02NTticmVha319fXdoaWxlKDApO2Y9Y1tlPj4yXXwwO2lm
KGY+Pj4wPj1kPj4+MCl7az0wO3JldHVybiBrfDB9aj1nO2c9ZjtMMjkxMjp3aGlsZSgxKXtmPWNb
Zz4+Ml18MDtpZigoZiYtMjA0OHwwKT09NTUyOTZ8Zj4+PjA+aT4+PjApe2s9MjtsPTI1NDg7YnJl
YWt9ZG97aWYoZj4+PjA8MTI4KXtiPWNbaD4+Ml18MDtpZigoai1ifDApPDEpe2s9MTtsPTI1NDQ7
YnJlYWsgTDI5MTJ9Y1toPj4yXT1iKzE7YVtiXT1mJjI1NX1lbHNle2lmKGY+Pj4wPDIwNDgpe2I9
Y1toPj4yXXwwO2lmKChqLWJ8MCk8Mil7az0xO2w9MjU0NzticmVhayBMMjkxMn1jW2g+PjJdPWIr
MTthW2JdPShmPj4+NnwxOTIpJjI1NTtiPWNbaD4+Ml18MDtjW2g+PjJdPWIrMTthW2JdPShmJjYz
fDEyOCkmMjU1O2JyZWFrfWI9Y1toPj4yXXwwO209ai1ifDA7aWYoZj4+PjA8NjU1MzYpe2lmKCht
fDApPDMpe2s9MTtsPTI1NDk7YnJlYWsgTDI5MTJ9Y1toPj4yXT1iKzE7YVtiXT0oZj4+PjEyfDIy
NCkmMjU1O249Y1toPj4yXXwwO2NbaD4+Ml09bisxO2Fbbl09KGY+Pj42JjYzfDEyOCkmMjU1O249
Y1toPj4yXXwwO2NbaD4+Ml09bisxO2Fbbl09KGYmNjN8MTI4KSYyNTU7YnJlYWt9ZWxzZXtpZigo
bXwwKTw0KXtrPTE7bD0yNTQyO2JyZWFrIEwyOTEyfWNbaD4+Ml09YisxO2FbYl09KGY+Pj4xOHwy
NDApJjI1NTtiPWNbaD4+Ml18MDtjW2g+PjJdPWIrMTthW2JdPShmPj4+MTImNjN8MTI4KSYyNTU7
Yj1jW2g+PjJdfDA7Y1toPj4yXT1iKzE7YVtiXT0oZj4+PjYmNjN8MTI4KSYyNTU7Yj1jW2g+PjJd
fDA7Y1toPj4yXT1iKzE7YVtiXT0oZiY2M3wxMjgpJjI1NTticmVha319fXdoaWxlKDApO2Y9KGNb
ZT4+Ml18MCkrNHwwO2NbZT4+Ml09ZjtpZihmPj4+MDxkPj4+MCl7Zz1mfWVsc2V7az0wO2w9MjU0
MzticmVha319aWYoKGx8MCk9PTI1NDMpe3JldHVybiBrfDB9ZWxzZSBpZigobHwwKT09MjU0Mil7
cmV0dXJuIGt8MH1lbHNlIGlmKChsfDApPT0yNTQ0KXtyZXR1cm4ga3wwfWVsc2UgaWYoKGx8MCk9
PTI1NDgpe3JldHVybiBrfDB9ZWxzZSBpZigobHwwKT09MjU0OSl7cmV0dXJuIGt8MH1lbHNlIGlm
KChsfDApPT0yNTQ3KXtyZXR1cm4ga3wwfXJldHVybiAwfWZ1bmN0aW9uIGp4KGIsZSxmLGcsaCxp
LGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7dmFy
IGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtjW2Y+PjJdPWI7Y1tpPj4y
XT1nO2c9Y1tmPj4yXXwwO2Rve2lmKChrJjR8MCk9PTApe2w9Z31lbHNle2lmKChlLWd8MCk8PTIp
e2w9ZzticmVha31pZigoYVtnXXwwKSE9LTE3KXtsPWc7YnJlYWt9aWYoKGFbZysxfDBdfDApIT0t
Njkpe2w9ZzticmVha31pZigoYVtnKzJ8MF18MCkhPS02NSl7bD1nO2JyZWFrfWI9ZyszfDA7Y1tm
Pj4yXT1iO2w9Yn19d2hpbGUoMCk7TDI5NDQ6ZG97aWYobD4+PjA8ZT4+PjApe2c9ZTtrPWNbaT4+
Ml18MDtiPWw7TDI5NDY6d2hpbGUoMSl7aWYoaz4+PjA+PWg+Pj4wKXttPWI7YnJlYWsgTDI5NDR9
bj1hW2JdfDA7bz1uJjI1NTtkb3tpZihuPDwyND4+MjQ+LTEpe2lmKG8+Pj4wPmo+Pj4wKXtwPTI7
cT0yNjA5O2JyZWFrIEwyOTQ2fWNbaz4+Ml09bztjW2Y+PjJdPShjW2Y+PjJdfDApKzF9ZWxzZXtp
ZigobiYyNTUpPDE5NCl7cD0yO3E9MjYwMjticmVhayBMMjk0Nn1pZigobiYyNTUpPDIyNCl7aWYo
KGctYnwwKTwyKXtwPTE7cT0yNjA1O2JyZWFrIEwyOTQ2fXI9ZFtiKzF8MF18MDtpZigociYxOTJ8
MCkhPTEyOCl7cD0yO3E9MjU5ODticmVhayBMMjk0Nn1zPXImNjN8bzw8NiYxOTg0O2lmKHM+Pj4w
Pmo+Pj4wKXtwPTI7cT0yNjA0O2JyZWFrIEwyOTQ2fWNbaz4+Ml09cztjW2Y+PjJdPShjW2Y+PjJd
fDApKzI7YnJlYWt9aWYoKG4mMjU1KTwyNDApe2lmKChnLWJ8MCk8Myl7cD0xO3E9MjYwNjticmVh
ayBMMjk0Nn1zPWFbYisxfDBdfDA7c3dpdGNoKG98MCl7Y2FzZSAyMjQ6e2lmKChzJi0zMik8PDI0
Pj4yNCE9LTk2KXtwPTI7cT0yNTkxO2JyZWFrIEwyOTQ2fWJyZWFrfTtjYXNlIDIzNzp7aWYoKHMm
LTMyKTw8MjQ+PjI0IT0tMTI4KXtwPTI7cT0yNTkzO2JyZWFrIEwyOTQ2fWJyZWFrfTtkZWZhdWx0
OntpZigocyYtNjQpPDwyND4+MjQhPS0xMjgpe3A9MjtxPTI2MDM7YnJlYWsgTDI5NDZ9fX1yPWRb
YisyfDBdfDA7aWYoKHImMTkyfDApIT0xMjgpe3A9MjtxPTI1OTQ7YnJlYWsgTDI5NDZ9dD0ocyYy
NTUpPDw2JjQwMzJ8bzw8MTImNjE0NDB8ciY2MztpZih0Pj4+MD5qPj4+MCl7cD0yO3E9MjU5Mjti
cmVhayBMMjk0Nn1jW2s+PjJdPXQ7Y1tmPj4yXT0oY1tmPj4yXXwwKSszO2JyZWFrfWlmKChuJjI1
NSk+PTI0NSl7cD0yO3E9MjYwNzticmVhayBMMjk0Nn1pZigoZy1ifDApPDQpe3A9MTtxPTI2MDg7
YnJlYWsgTDI5NDZ9dD1hW2IrMXwwXXwwO3N3aXRjaChvfDApe2Nhc2UgMjQwOntpZigodCsxMTIm
MjU1KT49NDgpe3A9MjtxPTI1OTA7YnJlYWsgTDI5NDZ9YnJlYWt9O2Nhc2UgMjQ0OntpZigodCYt
MTYpPDwyND4+MjQhPS0xMjgpe3A9MjtxPTI1OTY7YnJlYWsgTDI5NDZ9YnJlYWt9O2RlZmF1bHQ6
e2lmKCh0Ji02NCk8PDI0Pj4yNCE9LTEyOCl7cD0yO3E9MjU5NzticmVhayBMMjk0Nn19fXI9ZFti
KzJ8MF18MDtpZigociYxOTJ8MCkhPTEyOCl7cD0yO3E9MjU5OTticmVhayBMMjk0Nn1zPWRbYisz
fDBdfDA7aWYoKHMmMTkyfDApIT0xMjgpe3A9MjtxPTI2MDE7YnJlYWsgTDI5NDZ9dT0odCYyNTUp
PDwxMiYyNTgwNDh8bzw8MTgmMTgzNTAwOHxyPDw2JjQwMzJ8cyY2MztpZih1Pj4+MD5qPj4+MCl7
cD0yO3E9MjYwMDticmVhayBMMjk0Nn1jW2s+PjJdPXU7Y1tmPj4yXT0oY1tmPj4yXXwwKSs0fX13
aGlsZSgwKTtvPShjW2k+PjJdfDApKzR8MDtjW2k+PjJdPW87bj1jW2Y+PjJdfDA7aWYobj4+PjA8
ZT4+PjApe2s9bztiPW59ZWxzZXttPW47YnJlYWsgTDI5NDR9fWlmKChxfDApPT0yNTk3KXtyZXR1
cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI1OTgpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjU5
OSl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjAwKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8
MCk9PTI1OTMpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjU5NCl7cmV0dXJuIHB8MH1lbHNl
IGlmKChxfDApPT0yNTk2KXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDUpe3JldHVybiBw
fDB9ZWxzZSBpZigocXwwKT09MjYwNil7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjA3KXty
ZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDgpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09
MjYwOSl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNTkwKXtyZXR1cm4gcHwwfWVsc2UgaWYo
KHF8MCk9PTI1OTEpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjU5Mil7cmV0dXJuIHB8MH1l
bHNlIGlmKChxfDApPT0yNjAxKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDIpe3JldHVy
biBwfDB9ZWxzZSBpZigocXwwKT09MjYwMyl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjA0
KXtyZXR1cm4gcHwwfX1lbHNle209bH19d2hpbGUoMCk7cD1tPj4+MDxlPj4+MHwwO3JldHVybiBw
fDB9ZnVuY3Rpb24gankoYixjLGUsZixnKXtiPWJ8MDtjPWN8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2
YXIgaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9
MDtkb3tpZigoZyY0fDApPT0wKXtoPWJ9ZWxzZXtpZigoYy1ifDApPD0yKXtoPWI7YnJlYWt9aWYo
KGFbYl18MCkhPS0xNyl7aD1iO2JyZWFrfWlmKChhW2IrMXwwXXwwKSE9LTY5KXtoPWI7YnJlYWt9
aD0oYVtiKzJ8MF18MCk9PS02NT9iKzN8MDpifX13aGlsZSgwKTtMMzAxMTpkb3tpZihoPj4+MDxj
Pj4+MCYoZXwwKSE9MCl7Zz1jO2k9MTtqPWg7TDMwMTM6d2hpbGUoMSl7az1hW2pdfDA7bD1rJjI1
NTtkb3tpZihrPDwyND4+MjQ+LTEpe2lmKGw+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDMwMTF9bj1q
KzF8MH1lbHNle2lmKChrJjI1NSk8MTk0KXttPWo7YnJlYWsgTDMwMTF9aWYoKGsmMjU1KTwyMjQp
e2lmKChnLWp8MCk8Mil7bT1qO2JyZWFrIEwzMDExfW89ZFtqKzF8MF18MDtpZigobyYxOTJ8MCkh
PTEyOCl7bT1qO2JyZWFrIEwzMDExfWlmKChvJjYzfGw8PDYmMTk4NCk+Pj4wPmY+Pj4wKXttPWo7
YnJlYWsgTDMwMTF9bj1qKzJ8MDticmVha31pZigoayYyNTUpPDI0MCl7cD1qO2lmKChnLXB8MCk8
Myl7bT1qO2JyZWFrIEwzMDExfW89YVtqKzF8MF18MDtzd2l0Y2gobHwwKXtjYXNlIDIyNDp7aWYo
KG8mLTMyKTw8MjQ+PjI0IT0tOTYpe3E9MjYzMDticmVhayBMMzAxM31icmVha307Y2FzZSAyMzc6
e2lmKChvJi0zMik8PDI0Pj4yNCE9LTEyOCl7cT0yNjMyO2JyZWFrIEwzMDEzfWJyZWFrfTtkZWZh
dWx0OntpZigobyYtNjQpPDwyND4+MjQhPS0xMjgpe3E9MjYzNDticmVhayBMMzAxM319fXI9ZFtq
KzJ8MF18MDtpZigociYxOTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwzMDExfWlmKCgobyYyNTUpPDw2
JjQwMzJ8bDw8MTImNjE0NDB8ciY2Myk+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDMwMTF9bj1qKzN8
MDticmVha31pZigoayYyNTUpPj0yNDUpe209ajticmVhayBMMzAxMX1zPWo7aWYoKGctc3wwKTw0
KXttPWo7YnJlYWsgTDMwMTF9cj1hW2orMXwwXXwwO3N3aXRjaChsfDApe2Nhc2UgMjQwOntpZigo
cisxMTImMjU1KT49NDgpe3E9MjY0MjticmVhayBMMzAxM31icmVha307Y2FzZSAyNDQ6e2lmKChy
Ji0xNik8PDI0Pj4yNCE9LTEyOCl7cT0yNjQ0O2JyZWFrIEwzMDEzfWJyZWFrfTtkZWZhdWx0Ontp
ZigociYtNjQpPDwyND4+MjQhPS0xMjgpe3E9MjY0NjticmVhayBMMzAxM319fW89ZFtqKzJ8MF18
MDtpZigobyYxOTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwzMDExfXQ9ZFtqKzN8MF18MDtpZigodCYx
OTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwzMDExfWlmKCgociYyNTUpPDwxMiYyNTgwNDh8bDw8MTgm
MTgzNTAwOHxvPDw2JjQwMzJ8dCY2Myk+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDMwMTF9bj1qKzR8
MH19d2hpbGUoMCk7aWYoIShuPj4+MDxjPj4+MCZpPj4+MDxlPj4+MCkpe209bjticmVhayBMMzAx
MX1pPWkrMXwwO2o9bn1pZigocXwwKT09MjY0NCl7dT1zLWJ8MDtyZXR1cm4gdXwwfWVsc2UgaWYo
KHF8MCk9PTI2NDIpe3U9cy1ifDA7cmV0dXJuIHV8MH1lbHNlIGlmKChxfDApPT0yNjMwKXt1PXAt
YnwwO3JldHVybiB1fDB9ZWxzZSBpZigocXwwKT09MjYzMil7dT1wLWJ8MDtyZXR1cm4gdXwwfWVs
c2UgaWYoKHF8MCk9PTI2MzQpe3U9cC1ifDA7cmV0dXJuIHV8MH1lbHNlIGlmKChxfDApPT0yNjQ2
KXt1PXMtYnwwO3JldHVybiB1fDB9fWVsc2V7bT1ofX13aGlsZSgwKTt1PW0tYnwwO3JldHVybiB1
fDB9ZnVuY3Rpb24ganooYil7Yj1ifDA7cmV0dXJuIGFbYis4fDBdfDB9ZnVuY3Rpb24gakEoYSl7
YT1hfDA7cmV0dXJuIGNbYSs4Pj4yXXwwfWZ1bmN0aW9uIGpCKGIpe2I9YnwwO3JldHVybiBhW2Ir
OXwwXXwwfWZ1bmN0aW9uIGpDKGEpe2E9YXwwO3JldHVybiBjW2ErMTI+PjJdfDB9ZnVuY3Rpb24g
akQoYSxiLGQsZSxmLGcsaCxqKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDtqPWp8MDt2YXIgaz0wLGw9MDtiPWk7aT1pKzE2fDA7YT1ifDA7az1iKzh8MDtjW2E+PjJd
PWQ7Y1trPj4yXT1nO2w9angoZCxlLGEsZyxoLGssMTExNDExMSwwKXwwO2NbZj4+Ml09ZCsoKGNb
YT4+Ml18MCktZCk7Y1tqPj4yXT1nKygoY1trPj4yXXwwKS1nPj4yPDwyKTtpPWI7cmV0dXJuIGx8
MH1mdW5jdGlvbiBqRShhLGIsYyxkLGUpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO3Jl
dHVybiBqeShjLGQsZSwxMTE0MTExLDApfDB9ZnVuY3Rpb24gakYoYSl7YT1hfDA7ZGUoYXwwKTtr
UyhhKTtyZXR1cm59ZnVuY3Rpb24gakcoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVu
Y3Rpb24gakgoYSl7YT1hfDA7Y1thPj4yXT0zMDMyO2RQKGErMTJ8MCk7ZGUoYXwwKTtrUyhhKTty
ZXR1cm59ZnVuY3Rpb24gakkoYSl7YT1hfDA7Y1thPj4yXT0zMDMyO2RQKGErMTJ8MCk7ZGUoYXww
KTtyZXR1cm59ZnVuY3Rpb24gakooYSl7YT1hfDA7Y1thPj4yXT0yOTg0O2RQKGErMTZ8MCk7ZGUo
YXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaksoYSl7YT1hfDA7Y1thPj4yXT0yOTg0O2RQKGEr
MTZ8MCk7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gakwoYSxiKXthPWF8MDtiPWJ8MDtkWShhLGIr
MTJ8MCk7cmV0dXJufWZ1bmN0aW9uIGpNKGEsYil7YT1hfDA7Yj1ifDA7ZFkoYSxiKzE2fDApO3Jl
dHVybn1mdW5jdGlvbiBqTihhLGIpe2E9YXwwO2I9YnwwO2RaKGEsMTI4OCw0KTtyZXR1cm59ZnVu
Y3Rpb24gak8oYSxiKXthPWF8MDtiPWJ8MDtleChhLDEyNjQsa20oMTI2NCl8MCk7cmV0dXJufWZ1
bmN0aW9uIGpQKGEsYil7YT1hfDA7Yj1ifDA7ZFooYSwxMjU2LDUpO3JldHVybn1mdW5jdGlvbiBq
UShhLGIpe2E9YXwwO2I9YnwwO2V4KGEsMTIzMixrbSgxMjMyKXwwKTtyZXR1cm59ZnVuY3Rpb24g
alIoYil7Yj1ifDA7dmFyIGQ9MDtpZigoYVsxNjM1Ml18MCkhPTApe2Q9Y1szNzAyXXwwO3JldHVy
biBkfDB9aWYoKGJjKDE2MzUyKXwwKT09MCl7ZD1jWzM3MDJdfDA7cmV0dXJuIGR8MH1kb3tpZigo
YVsxNjIzMl18MCk9PTApe2lmKChiYygxNjIzMil8MCk9PTApe2JyZWFrfWskKDExMzQ0LDAsMTY4
KTthJCgyNjYsMCx1fDApfDB9fXdoaWxlKDApO2RRKDExMzQ0LDE1MzYpfDA7ZFEoMTEzNTYsMTUy
OCl8MDtkUSgxMTM2OCwxNTIwKXwwO2RRKDExMzgwLDE1MDQpfDA7ZFEoMTEzOTIsMTQ4OCl8MDtk
USgxMTQwNCwxNDgwKXwwO2RRKDExNDE2LDE0NjQpfDA7ZFEoMTE0MjgsMTQ1Nil8MDtkUSgxMTQ0
MCwxNDQ4KXwwO2RRKDExNDUyLDE0NDApfDA7ZFEoMTE0NjQsMTQzMil8MDtkUSgxMTQ3NiwxNDAw
KXwwO2RRKDExNDg4LDEzOTIpfDA7ZFEoMTE1MDAsMTM4NCl8MDtjWzM3MDJdPTExMzQ0O2Q9Y1sz
NzAyXXwwO3JldHVybiBkfDB9ZnVuY3Rpb24galMoYil7Yj1ifDA7dmFyIGQ9MDtpZigoYVsxNjI5
Nl18MCkhPTApe2Q9Y1szNjgwXXwwO3JldHVybiBkfDB9aWYoKGJjKDE2Mjk2KXwwKT09MCl7ZD1j
WzM2ODBdfDA7cmV0dXJuIGR8MH1kb3tpZigoYVsxNjIwOF18MCk9PTApe2lmKChiYygxNjIwOCl8
MCk9PTApe2JyZWFrfWskKDEwNjAwLDAsMTY4KTthJCgxNDgsMCx1fDApfDB9fXdoaWxlKDApO2Vm
KDEwNjAwLDE5MTIpfDA7ZWYoMTA2MTIsMTg4MCl8MDtlZigxMDYyNCwxODQ4KXwwO2VmKDEwNjM2
LDE4MDgpfDA7ZWYoMTA2NDgsMTc2OCl8MDtlZigxMDY2MCwxNzM2KXwwO2VmKDEwNjcyLDE2OTYp
fDA7ZWYoMTA2ODQsMTY4MCl8MDtlZigxMDY5NiwxNjI0KXwwO2VmKDEwNzA4LDE2MDgpfDA7ZWYo
MTA3MjAsMTU5Mil8MDtlZigxMDczMiwxNTc2KXwwO2VmKDEwNzQ0LDE1NjApfDA7ZWYoMTA3NTYs
MTU0NCl8MDtjWzM2ODBdPTEwNjAwO2Q9Y1szNjgwXXwwO3JldHVybiBkfDB9ZnVuY3Rpb24galQo
Yil7Yj1ifDA7dmFyIGQ9MDtpZigoYVsxNjM0NF18MCkhPTApe2Q9Y1szNzAwXXwwO3JldHVybiBk
fDB9aWYoKGJjKDE2MzQ0KXwwKT09MCl7ZD1jWzM3MDBdfDA7cmV0dXJuIGR8MH1kb3tpZigoYVsx
NjIyNF18MCk9PTApe2lmKChiYygxNjIyNCl8MCk9PTApe2JyZWFrfWskKDExMDU2LDAsMjg4KTth
JCgxNzAsMCx1fDApfDB9fXdoaWxlKDApO2RRKDExMDU2LDI4OCl8MDtkUSgxMTA2OCwyNzIpfDA7
ZFEoMTEwODAsMjY0KXwwO2RRKDExMDkyLDI1Nil8MDtkUSgxMTEwNCwyNDgpfDA7ZFEoMTExMTYs
MjQwKXwwO2RRKDExMTI4LDIzMil8MDtkUSgxMTE0MCwyMjQpfDA7ZFEoMTExNTIsMTY4KXwwO2RR
KDExMTY0LDE2MCl8MDtkUSgxMTE3NiwxNDQpfDA7ZFEoMTExODgsMTI4KXwwO2RRKDExMjAwLDEy
MCl8MDtkUSgxMTIxMiwxMTIpfDA7ZFEoMTEyMjQsMTA0KXwwO2RRKDExMjM2LDk2KXwwO2RRKDEx
MjQ4LDI0OCl8MDtkUSgxMTI2MCw4OCl8MDtkUSgxMTI3Miw4MCl8MDtkUSgxMTI4NCwxOTc2KXww
O2RRKDExMjk2LDE5NjgpfDA7ZFEoMTEzMDgsMTk2MCl8MDtkUSgxMTMyMCwxOTUyKXwwO2RRKDEx
MzMyLDE5NDQpfDA7Y1szNzAwXT0xMTA1NjtkPWNbMzcwMF18MDtyZXR1cm4gZHwwfWZ1bmN0aW9u
IGpVKGIpe2I9YnwwO3ZhciBkPTA7aWYoKGFbMTYyODhdfDApIT0wKXtkPWNbMzY3OF18MDtyZXR1
cm4gZHwwfWlmKChiYygxNjI4OCl8MCk9PTApe2Q9Y1szNjc4XXwwO3JldHVybiBkfDB9ZG97aWYo
KGFbMTYyMDBdfDApPT0wKXtpZigoYmMoMTYyMDApfDApPT0wKXticmVha31rJCgxMDMxMiwwLDI4
OCk7YSQoMTIyLDAsdXwwKXwwfX13aGlsZSgwKTtlZigxMDMxMiw4MjQpfDA7ZWYoMTAzMjQsNzg0
KXwwO2VmKDEwMzM2LDc2MCl8MDtlZigxMDM0OCw3MzYpfDA7ZWYoMTAzNjAsNDI0KXwwO2VmKDEw
MzcyLDcxMil8MDtlZigxMDM4NCw2ODgpfDA7ZWYoMTAzOTYsNjU2KXwwO2VmKDEwNDA4LDYxNil8
MDtlZigxMDQyMCw1ODQpfDA7ZWYoMTA0MzIsNTQ0KXwwO2VmKDEwNDQ0LDUwNCl8MDtlZigxMDQ1
Niw0ODgpfDA7ZWYoMTA0NjgsNDcyKXwwO2VmKDEwNDgwLDQ1Nil8MDtlZigxMDQ5Miw0NDApfDA7
ZWYoMTA1MDQsNDI0KXwwO2VmKDEwNTE2LDQwOCl8MDtlZigxMDUyOCwzOTIpfDA7ZWYoMTA1NDAs
Mzc2KXwwO2VmKDEwNTUyLDM0NCl8MDtlZigxMDU2NCwzMjgpfDA7ZWYoMTA1NzYsMzEyKXwwO2Vm
KDEwNTg4LDI5Nil8MDtjWzM2NzhdPTEwMzEyO2Q9Y1szNjc4XXwwO3JldHVybiBkfDB9ZnVuY3Rp
b24galYoYil7Yj1ifDA7dmFyIGQ9MDtpZigoYVsxNjM2MF18MCkhPTApe2Q9Y1szNzA0XXwwO3Jl
dHVybiBkfDB9aWYoKGJjKDE2MzYwKXwwKT09MCl7ZD1jWzM3MDRdfDA7cmV0dXJuIGR8MH1kb3tp
ZigoYVsxNjI0MF18MCk9PTApe2lmKChiYygxNjI0MCl8MCk9PTApe2JyZWFrfWskKDExNTEyLDAs
Mjg4KTthJCgxMjAsMCx1fDApfDB9fXdoaWxlKDApO2RRKDExNTEyLDg2NCl8MDtkUSgxMTUyNCw4
NTYpfDA7Y1szNzA0XT0xMTUxMjtkPWNbMzcwNF18MDtyZXR1cm4gZHwwfWZ1bmN0aW9uIGpXKGIp
e2I9YnwwO3ZhciBkPTA7aWYoKGFbMTYzMDRdfDApIT0wKXtkPWNbMzY4Ml18MDtyZXR1cm4gZHww
fWlmKChiYygxNjMwNCl8MCk9PTApe2Q9Y1szNjgyXXwwO3JldHVybiBkfDB9ZG97aWYoKGFbMTYy
MTZdfDApPT0wKXtpZigoYmMoMTYyMTYpfDApPT0wKXticmVha31rJCgxMDc2OCwwLDI4OCk7YSQo
MjQwLDAsdXwwKXwwfX13aGlsZSgwKTtlZigxMDc2OCw4ODgpfDA7ZWYoMTA3ODAsODcyKXwwO2Nb
MzY4Ml09MTA3Njg7ZD1jWzM2ODJdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBqWChiKXtiPWJ8MDtp
ZigoYVsxNjM2OF18MCkhPTApe3JldHVybiAxNDgyNH1pZigoYmMoMTYzNjgpfDApPT0wKXtyZXR1
cm4gMTQ4MjR9ZFooMTQ4MjQsMTIxNiw4KTthJCgyNTgsMTQ4MjQsdXwwKXwwO3JldHVybiAxNDgy
NH1mdW5jdGlvbiBqWShiKXtiPWJ8MDtpZigoYVsxNjMxMl18MCkhPTApe3JldHVybiAxNDczNn1p
ZigoYmMoMTYzMTIpfDApPT0wKXtyZXR1cm4gMTQ3MzZ9ZXgoMTQ3MzYsMTE3NixrbSgxMTc2KXww
KTthJCgxOTIsMTQ3MzYsdXwwKXwwO3JldHVybiAxNDczNn1mdW5jdGlvbiBqWihiKXtiPWJ8MDtp
ZigoYVsxNjM5Ml18MCkhPTApe3JldHVybiAxNDg3Mn1pZigoYmMoMTYzOTIpfDApPT0wKXtyZXR1
cm4gMTQ4NzJ9ZFooMTQ4NzIsMTE0NCw4KTthJCgyNTgsMTQ4NzIsdXwwKXwwO3JldHVybiAxNDg3
Mn1mdW5jdGlvbiBqXyhiKXtiPWJ8MDtpZigoYVsxNjMzNl18MCkhPTApe3JldHVybiAxNDc4NH1p
ZigoYmMoMTYzMzYpfDApPT0wKXtyZXR1cm4gMTQ3ODR9ZXgoMTQ3ODQsMTEwNCxrbSgxMTA0KXww
KTthJCgxOTIsMTQ3ODQsdXwwKXwwO3JldHVybiAxNDc4NH1mdW5jdGlvbiBqJChiKXtiPWJ8MDtp
ZigoYVsxNjM4NF18MCkhPTApe3JldHVybiAxNDg1Nn1pZigoYmMoMTYzODQpfDApPT0wKXtyZXR1
cm4gMTQ4NTZ9ZFooMTQ4NTYsMTA4MCwyMCk7YSQoMjU4LDE0ODU2LHV8MCl8MDtyZXR1cm4gMTQ4
NTZ9ZnVuY3Rpb24gajAoYil7Yj1ifDA7aWYoKGFbMTYzMjhdfDApIT0wKXtyZXR1cm4gMTQ3Njh9
aWYoKGJjKDE2MzI4KXwwKT09MCl7cmV0dXJuIDE0NzY4fWV4KDE0NzY4LDk5MixrbSg5OTIpfDAp
O2EkKDE5MiwxNDc2OCx1fDApfDA7cmV0dXJuIDE0NzY4fWZ1bmN0aW9uIGoxKGIpe2I9YnwwO2lm
KChhWzE2Mzc2XXwwKSE9MCl7cmV0dXJuIDE0ODQwfWlmKChiYygxNjM3Nil8MCk9PTApe3JldHVy
biAxNDg0MH1kWigxNDg0MCw5NzYsMTEpO2EkKDI1OCwxNDg0MCx1fDApfDA7cmV0dXJuIDE0ODQw
fWZ1bmN0aW9uIGoyKGIpe2I9YnwwO2lmKChhWzE2MzIwXXwwKSE9MCl7cmV0dXJuIDE0NzUyfWlm
KChiYygxNjMyMCl8MCk9PTApe3JldHVybiAxNDc1Mn1leCgxNDc1Miw5Mjgsa20oOTI4KXwwKTth
JCgxOTIsMTQ3NTIsdXwwKXwwO3JldHVybiAxNDc1Mn1mdW5jdGlvbiBqMyhhKXthPWF8MDt2YXIg
Yj0wLGQ9MCxlPTAsZj0wO2I9YSs0fDA7ZD0oY1thPj4yXXwwKSsoY1tiKzQ+PjJdfDApfDA7YT1k
O2U9Y1tiPj4yXXwwO2lmKChlJjF8MCk9PTApe2Y9ZTtiWVtmJjUxMV0oYSk7cmV0dXJufWVsc2V7
Zj1jWyhjW2Q+PjJdfDApKyhlLTEpPj4yXXwwO2JZW2YmNTExXShhKTtyZXR1cm59fWZ1bmN0aW9u
IGo0KGEpe2E9YXwwO2VlKDExMDQ0KTtlZSgxMTAzMik7ZWUoMTEwMjApO2VlKDExMDA4KTtlZSgx
MDk5Nik7ZWUoMTA5ODQpO2VlKDEwOTcyKTtlZSgxMDk2MCk7ZWUoMTA5NDgpO2VlKDEwOTM2KTtl
ZSgxMDkyNCk7ZWUoMTA5MTIpO2VlKDEwOTAwKTtlZSgxMDg4OCk7ZWUoMTA4NzYpO2VlKDEwODY0
KTtlZSgxMDg1Mik7ZWUoMTA4NDApO2VlKDEwODI4KTtlZSgxMDgxNik7ZWUoMTA4MDQpO2VlKDEw
NzkyKTtlZSgxMDc4MCk7ZWUoMTA3NjgpO3JldHVybn1mdW5jdGlvbiBqNShiLGQpe2I9YnwwO2Q9
ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxx
PTAscj0wO2U9Yis4fDA7Zj1iKzR8MDtnPWNbZj4+Ml18MDtoPWNbZT4+Ml18MDtpPWc7aWYoaC1p
Pj4yPj4+MD49ZD4+PjApe2o9ZDtrPWc7ZG97aWYoKGt8MCk9PTApe2w9MH1lbHNle2Nbaz4+Ml09
MDtsPWNbZj4+Ml18MH1rPWwrNHwwO2NbZj4+Ml09aztqPWotMXwwO313aGlsZSgoanwwKSE9MCk7
cmV0dXJufWo9YisxNnwwO2s9YnwwO2w9Y1trPj4yXXwwO2c9aS1sPj4yO2k9ZytkfDA7aWYoaT4+
PjA+MTA3Mzc0MTgyMyl7aXIoMCl9bT1oLWx8MDtkb3tpZihtPj4yPj4+MD41MzY4NzA5MTApe249
MTA3Mzc0MTgyMztvPTI5MTl9ZWxzZXtsPW0+PjE7aD1sPj4+MDxpPj4+MD9pOmw7aWYoKGh8MCk9
PTApe3A9MDtxPTA7YnJlYWt9bD1iKzEyOHwwO2lmKCEoKGFbbF0mMSk9PTAmaD4+PjA8MjkpKXtu
PWg7bz0yOTE5O2JyZWFrfWFbbF09MTtwPWo7cT1ofX13aGlsZSgwKTtpZigob3wwKT09MjkxOSl7
cD1rTyhuPDwyKXwwO3E9bn1uPWQ7ZD1wKyhnPDwyKXwwO2Rve2lmKChkfDApPT0wKXtyPTB9ZWxz
ZXtjW2Q+PjJdPTA7cj1kfWQ9cis0fDA7bj1uLTF8MDt9d2hpbGUoKG58MCkhPTApO249cCsocTw8
Mil8MDtxPWNbaz4+Ml18MDtyPShjW2Y+PjJdfDApLXF8MDtvPXArKGctKHI+PjIpPDwyKXwwO2c9
bztwPXE7a1koZ3wwLHB8MCxyKXwwO2Nbaz4+Ml09bztjW2Y+PjJdPWQ7Y1tlPj4yXT1uO2lmKChx
fDApPT0wKXtyZXR1cm59aWYoKHF8MCk9PShqfDApKXthW2IrMTI4fDBdPTA7cmV0dXJufWVsc2V7
a1MocCk7cmV0dXJufX1mdW5jdGlvbiBqNihhKXthPWF8MDtkUCgxMTc4OCk7ZFAoMTE3NzYpO2RQ
KDExNzY0KTtkUCgxMTc1Mik7ZFAoMTE3NDApO2RQKDExNzI4KTtkUCgxMTcxNik7ZFAoMTE3MDQp
O2RQKDExNjkyKTtkUCgxMTY4MCk7ZFAoMTE2NjgpO2RQKDExNjU2KTtkUCgxMTY0NCk7ZFAoMTE2
MzIpO2RQKDExNjIwKTtkUCgxMTYwOCk7ZFAoMTE1OTYpO2RQKDExNTg0KTtkUCgxMTU3Mik7ZFAo
MTE1NjApO2RQKDExNTQ4KTtkUCgxMTUzNik7ZFAoMTE1MjQpO2RQKDExNTEyKTtyZXR1cm59ZnVu
Y3Rpb24gajcoYSl7YT1hfDA7ZWUoMTA1ODgpO2VlKDEwNTc2KTtlZSgxMDU2NCk7ZWUoMTA1NTIp
O2VlKDEwNTQwKTtlZSgxMDUyOCk7ZWUoMTA1MTYpO2VlKDEwNTA0KTtlZSgxMDQ5Mik7ZWUoMTA0
ODApO2VlKDEwNDY4KTtlZSgxMDQ1Nik7ZWUoMTA0NDQpO2VlKDEwNDMyKTtlZSgxMDQyMCk7ZWUo
MTA0MDgpO2VlKDEwMzk2KTtlZSgxMDM4NCk7ZWUoMTAzNzIpO2VlKDEwMzYwKTtlZSgxMDM0OCk7
ZWUoMTAzMzYpO2VlKDEwMzI0KTtlZSgxMDMxMik7cmV0dXJufWZ1bmN0aW9uIGo4KGEpe2E9YXww
O2RQKDExMzMyKTtkUCgxMTMyMCk7ZFAoMTEzMDgpO2RQKDExMjk2KTtkUCgxMTI4NCk7ZFAoMTEy
NzIpO2RQKDExMjYwKTtkUCgxMTI0OCk7ZFAoMTEyMzYpO2RQKDExMjI0KTtkUCgxMTIxMik7ZFAo
MTEyMDApO2RQKDExMTg4KTtkUCgxMTE3Nik7ZFAoMTExNjQpO2RQKDExMTUyKTtkUCgxMTE0MCk7
ZFAoMTExMjgpO2RQKDExMTE2KTtkUCgxMTEwNCk7ZFAoMTEwOTIpO2RQKDExMDgwKTtkUCgxMTA2
OCk7ZFAoMTEwNTYpO3JldHVybn1mdW5jdGlvbiBqOShhKXthPWF8MDtlZSgxMDc1Nik7ZWUoMTA3
NDQpO2VlKDEwNzMyKTtlZSgxMDcyMCk7ZWUoMTA3MDgpO2VlKDEwNjk2KTtlZSgxMDY4NCk7ZWUo
MTA2NzIpO2VlKDEwNjYwKTtlZSgxMDY0OCk7ZWUoMTA2MzYpO2VlKDEwNjI0KTtlZSgxMDYxMik7
ZWUoMTA2MDApO3JldHVybn1mdW5jdGlvbiBrYShhKXthPWF8MDtkUCgxMTUwMCk7ZFAoMTE0ODgp
O2RQKDExNDc2KTtkUCgxMTQ2NCk7ZFAoMTE0NTIpO2RQKDExNDQwKTtkUCgxMTQyOCk7ZFAoMTE0
MTYpO2RQKDExNDA0KTtkUCgxMTM5Mik7ZFAoMTEzODApO2RQKDExMzY4KTtkUCgxMTM1Nik7ZFAo
MTEzNDQpO3JldHVybn1mdW5jdGlvbiBrYihhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7cmV0dXJu
IGtjKDAsYSxiLChjfDApIT0wP2M6OTgzMil8MH1mdW5jdGlvbiBrYyhiLGQsZSxmKXtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAs
cT0wLHI9MCx0PTAsdT0wLHY9MCx3PTA7Zz1pO2k9aSs4fDA7aD1nfDA7Y1toPj4yXT1iO2o9KChm
fDApPT0wPzk4MjQ6Zil8MDtmPWNbaj4+Ml18MDtMNzpkb3tpZigoZHwwKT09MCl7aWYoKGZ8MCk9
PTApe2s9MH1lbHNle2JyZWFrfWk9ZztyZXR1cm4ga3wwfWVsc2V7aWYoKGJ8MCk9PTApe2w9aDtj
W2g+PjJdPWw7bT1sfWVsc2V7bT1ifWlmKChlfDApPT0wKXtrPS0yO2k9ZztyZXR1cm4ga3wwfWRv
e2lmKChmfDApPT0wKXtsPWFbZF18MDtuPWwmMjU1O2lmKGw8PDI0Pj4yND4tMSl7Y1ttPj4yXT1u
O2s9bDw8MjQ+PjI0IT0wfDA7aT1nO3JldHVybiBrfDB9ZWxzZXtsPW4tMTk0fDA7aWYobD4+PjA+
NTApe2JyZWFrIEw3fW89ZCsxfDA7cD1jW3MrKGw8PDIpPj4yXXwwO3E9ZS0xfDA7YnJlYWt9fWVs
c2V7bz1kO3A9ZjtxPWV9fXdoaWxlKDApO0wyNTpkb3tpZigocXwwKT09MCl7cj1wfWVsc2V7bD1h
W29dfDA7bj0obCYyNTUpPj4+MztpZigobi0xNnxuKyhwPj4yNikpPj4+MD43KXticmVhayBMN31l
bHNle3Q9bzt1PXA7dj1xO3c9bH13aGlsZSgxKXt0PXQrMXwwO3U9KHcmMjU1KS0xMjh8dTw8Njt2
PXYtMXwwO2lmKCh1fDApPj0wKXticmVha31pZigodnwwKT09MCl7cj11O2JyZWFrIEwyNX13PWFb
dF18MDtpZigoKHcmMjU1KS0xMjh8MCk+Pj4wPjYzKXticmVhayBMN319Y1tqPj4yXT0wO2NbbT4+
Ml09dTtrPWUtdnwwO2k9ZztyZXR1cm4ga3wwfX13aGlsZSgwKTtjW2o+PjJdPXI7az0tMjtpPWc7
cmV0dXJuIGt8MH19d2hpbGUoMCk7Y1tqPj4yXT0wO2NbKGJ3KCl8MCk+PjJdPTEzODtrPS0xO2k9
ZztyZXR1cm4ga3wwfWZ1bmN0aW9uIGtkKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxH
PTAsSD0wLEk9MCxKPTA7Zz1pO2k9aSsxMDMyfDA7aD1nfDA7aj1nKzEwMjR8MDtrPWNbYj4+Ml18
MDtjW2o+PjJdPWs7bD0oYXwwKSE9MDttPWw/ZToyNTY7ZT1sP2E6aHwwO0wzODpkb3tpZigoa3ww
KT09MHwobXwwKT09MCl7bj0wO289ZDtwPW07cT1lO3I9a31lbHNle2E9aHwwO3M9bTt0PWQ7dT0w
O3Y9ZTt3PWs7d2hpbGUoMSl7eD10Pj4+Mjt5PXg+Pj4wPj1zPj4+MDtpZighKHl8dD4+PjA+MTMx
KSl7bj11O289dDtwPXM7cT12O3I9dzticmVhayBMMzh9ej15P3M6eDtBPXQtenwwO3g9a2Uodixq
LHosZil8MDtpZigoeHwwKT09LTEpe2JyZWFrfWlmKCh2fDApPT0oYXwwKSl7Qj1hO0M9c31lbHNl
e0I9disoeDw8Mil8MDtDPXMteHwwfXo9eCt1fDA7eD1jW2o+PjJdfDA7aWYoKHh8MCk9PTB8KEN8
MCk9PTApe249ejtvPUE7cD1DO3E9QjtyPXg7YnJlYWsgTDM4fWVsc2V7cz1DO3Q9QTt1PXo7dj1C
O3c9eH19bj0tMTtvPUE7cD0wO3E9djtyPWNbaj4+Ml18MH19d2hpbGUoMCk7TDQ5OmRve2lmKChy
fDApPT0wKXtEPW59ZWxzZXtpZigocHwwKT09MHwob3wwKT09MCl7RD1uO2JyZWFrfWVsc2V7RT1w
O0Y9bztHPW47SD1xO0k9cn13aGlsZSgxKXtKPWtjKEgsSSxGLGYpfDA7aWYoKEorMnwwKT4+PjA8
Myl7YnJlYWt9QT0oY1tqPj4yXXwwKStKfDA7Y1tqPj4yXT1BO0I9RS0xfDA7Qz1HKzF8MDtpZigo
QnwwKT09MHwoRnwwKT09KEp8MCkpe0Q9QzticmVhayBMNDl9ZWxzZXtFPUI7Rj1GLUp8MDtHPUM7
SD1IKzR8MDtJPUF9fXN3aXRjaChKfDApe2Nhc2UgMDp7Y1tqPj4yXT0wO0Q9RzticmVhayBMNDk7
YnJlYWt9O2Nhc2UtMTp7RD0tMTticmVhayBMNDk7YnJlYWt9O2RlZmF1bHQ6e2NbZj4+Ml09MDtE
PUc7YnJlYWsgTDQ5fX19fXdoaWxlKDApO2lmKCFsKXtpPWc7cmV0dXJuIER8MH1jW2I+PjJdPWNb
aj4+Ml07aT1nO3JldHVybiBEfDB9ZnVuY3Rpb24ga2UoYixlLGYsZyl7Yj1ifDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7dmFyIGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9
MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MDto
PWNbZT4+Ml18MDtkb3tpZigoZ3wwKT09MCl7aT01Nn1lbHNle2o9Z3wwO2s9Y1tqPj4yXXwwO2lm
KChrfDApPT0wKXtpPTU2O2JyZWFrfWlmKChifDApPT0wKXtsPWs7bT1oO249ZjtpPTY3O2JyZWFr
fWNbaj4+Ml09MDtvPWs7cD1oO3E9YjtyPWY7aT04N319d2hpbGUoMCk7aWYoKGl8MCk9PTU2KXtp
ZigoYnwwKT09MCl7dD1oO3U9ZjtpPTU4fWVsc2V7dj1oO3c9Yjt4PWY7aT01N319TDcwOndoaWxl
KDEpe2lmKChpfDApPT04Nyl7aT0wO2g9ZFtwXXwwO2c9aD4+PjM7aWYoKGctMTZ8Zysobz4+MjYp
KT4+PjA+Nyl7aT04ODticmVha31nPXArMXwwO3k9aC0xMjh8bzw8Njtkb3tpZigoeXwwKTwwKXto
PShkW2ddfDApLTEyOHwwO2lmKGg+Pj4wPjYzKXtpPTkxO2JyZWFrIEw3MH1rPXArMnwwO3o9aHx5
PDw2O2lmKCh6fDApPj0wKXtBPXo7Qj1rO2JyZWFrfWg9KGRba118MCktMTI4fDA7aWYoaD4+PjA+
NjMpe2k9OTQ7YnJlYWsgTDcwfUE9aHx6PDw2O0I9cCszfDB9ZWxzZXtBPXk7Qj1nfX13aGlsZSgw
KTtjW3E+PjJdPUE7dj1CO3c9cSs0fDA7eD1yLTF8MDtpPTU3O2NvbnRpbnVlfWVsc2UgaWYoKGl8
MCk9PTU4KXtpPTA7Zz1hW3RdfDA7ZG97aWYoKChnJjI1NSktMXwwKT4+PjA8MTI3KXtpZigodCYz
fDApIT0wKXtDPXQ7RD11O0U9ZzticmVha31oPWNbdD4+Ml18MDtpZigoKGgtMTY4NDMwMDl8aCkm
LTIxMzkwNjIxNDR8MCk9PTApe0Y9dTtHPXR9ZWxzZXtDPXQ7RD11O0U9aCYyNTU7YnJlYWt9ZG97
Rz1HKzR8MDtGPUYtNHwwO0g9Y1tHPj4yXXwwO313aGlsZSgoKEgtMTY4NDMwMDl8SCkmLTIxMzkw
NjIxNDR8MCk9PTApO0M9RztEPUY7RT1IJjI1NX1lbHNle0M9dDtEPXU7RT1nfX13aGlsZSgwKTtn
PUUmMjU1O2lmKChnLTF8MCk+Pj4wPDEyNyl7dD1DKzF8MDt1PUQtMXwwO2k9NTg7Y29udGludWV9
aD1nLTE5NHwwO2lmKGg+Pj4wPjUwKXtJPUQ7Sj1iO0s9QztpPTk4O2JyZWFrfWw9Y1tzKyhoPDwy
KT4+Ml18MDttPUMrMXwwO249RDtpPTY3O2NvbnRpbnVlfWVsc2UgaWYoKGl8MCk9PTU3KXtpPTA7
aWYoKHh8MCk9PTApe0w9ZjtpPTEwNjticmVha31lbHNle009eDtOPXc7Tz12fXdoaWxlKDEpe2g9
YVtPXXwwO2Rve2lmKCgoaCYyNTUpLTF8MCk+Pj4wPDEyNyl7aWYoKE8mM3wwKT09MCZNPj4+MD4z
KXtQPU07UT1OO1I9T31lbHNle1M9TztUPU47VT1NO1Y9aDticmVha313aGlsZSgxKXtXPWNbUj4+
Ml18MDtpZigoKFctMTY4NDMwMDl8VykmLTIxMzkwNjIxNDR8MCkhPTApe2k9ODE7YnJlYWt9Y1tR
Pj4yXT1XJjI1NTtjW1ErND4+Ml09ZFtSKzF8MF18MDtjW1ErOD4+Ml09ZFtSKzJ8MF18MDtYPVIr
NHwwO1k9USsxNnwwO2NbUSsxMj4+Ml09ZFtSKzN8MF18MDtaPVAtNHwwO2lmKFo+Pj4wPjMpe1A9
WjtRPVk7Uj1YfWVsc2V7aT04MjticmVha319aWYoKGl8MCk9PTgxKXtpPTA7Uz1SO1Q9UTtVPVA7
Vj1XJjI1NTticmVha31lbHNlIGlmKChpfDApPT04Mil7aT0wO1M9WDtUPVk7VT1aO1Y9YVtYXXww
O2JyZWFrfX1lbHNle1M9TztUPU47VT1NO1Y9aH19d2hpbGUoMCk7Xz1WJjI1NTtpZigoXy0xfDAp
Pj4+MD49MTI3KXticmVha31jW1Q+PjJdPV87aD1VLTF8MDtpZigoaHwwKT09MCl7TD1mO2k9MTA1
O2JyZWFrIEw3MH1lbHNle009aDtOPVQrNHwwO089UysxfDB9fWg9Xy0xOTR8MDtpZihoPj4+MD41
MCl7ST1VO0o9VDtLPVM7aT05ODticmVha31vPWNbcysoaDw8Mik+PjJdfDA7cD1TKzF8MDtxPVQ7
cj1VO2k9ODc7Y29udGludWV9ZWxzZSBpZigoaXwwKT09Njcpe2k9MDtoPShkW21dfDApPj4+Mztp
ZigoaC0xNnxoKyhsPj4yNikpPj4+MD43KXtpPTY4O2JyZWFrfWg9bSsxfDA7ZG97aWYoKGwmMzM1
NTQ0MzJ8MCk9PTApeyQ9aH1lbHNle2lmKCgoZFtoXXwwKS0xMjh8MCk+Pj4wPjYzKXtpPTcxO2Jy
ZWFrIEw3MH1nPW0rMnwwO2lmKChsJjUyNDI4OHwwKT09MCl7JD1nO2JyZWFrfWlmKCgoZFtnXXww
KS0xMjh8MCk+Pj4wPjYzKXtpPTc0O2JyZWFrIEw3MH0kPW0rM3wwfX13aGlsZSgwKTt0PSQ7dT1u
LTF8MDtpPTU4O2NvbnRpbnVlfX1pZigoaXwwKT09NzEpe2FhPWw7YWI9bS0xfDA7YWM9YjthZD1u
O2k9OTd9ZWxzZSBpZigoaXwwKT09NzQpe2FhPWw7YWI9bS0xfDA7YWM9YjthZD1uO2k9OTd9ZWxz
ZSBpZigoaXwwKT09Njgpe2FhPWw7YWI9bS0xfDA7YWM9YjthZD1uO2k9OTd9ZWxzZSBpZigoaXww
KT09ODgpe2FhPW87YWI9cC0xfDA7YWM9cTthZD1yO2k9OTd9ZWxzZSBpZigoaXwwKT09OTEpe2Fh
PXk7YWI9cC0xfDA7YWM9cTthZD1yO2k9OTd9ZWxzZSBpZigoaXwwKT09OTQpe2FhPXo7YWI9cC0x
fDA7YWM9cTthZD1yO2k9OTd9ZWxzZSBpZigoaXwwKT09MTA1KXtyZXR1cm4gTHwwfWVsc2UgaWYo
KGl8MCk9PTEwNil7cmV0dXJuIEx8MH1pZigoaXwwKT09OTcpe2lmKChhYXwwKT09MCl7ST1hZDtK
PWFjO0s9YWI7aT05OH1lbHNle2FlPWFjO2FmPWFifX1kb3tpZigoaXwwKT09OTgpe2lmKChhW0td
fDApIT0wKXthZT1KO2FmPUs7YnJlYWt9aWYoKEp8MCkhPTApe2NbSj4+Ml09MDtjW2U+PjJdPTB9
TD1mLUl8MDtyZXR1cm4gTHwwfX13aGlsZSgwKTtjWyhidygpfDApPj4yXT0xMzg7aWYoKGFlfDAp
PT0wKXtMPS0xO3JldHVybiBMfDB9Y1tlPj4yXT1hZjtMPS0xO3JldHVybiBMfDB9ZnVuY3Rpb24g
a2YoYixlLGYpe2I9YnwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxu
PTA7Zz1pO2k9aSs4fDA7aD1nfDA7Y1toPj4yXT1iO2lmKChlfDApPT0wKXtqPTA7aT1nO3JldHVy
biBqfDB9ZG97aWYoKGZ8MCkhPTApe2lmKChifDApPT0wKXtrPWg7Y1toPj4yXT1rO2w9a31lbHNl
e2w9Yn1rPWFbZV18MDttPWsmMjU1O2lmKGs8PDI0Pj4yND4tMSl7Y1tsPj4yXT1tO2o9azw8MjQ+
PjI0IT0wfDA7aT1nO3JldHVybiBqfDB9az1tLTE5NHwwO2lmKGs+Pj4wPjUwKXticmVha31tPWUr
MXwwO249Y1tzKyhrPDwyKT4+Ml18MDtpZihmPj4+MDw0KXtpZigobiYtMjE0NzQ4MzY0OD4+Pigo
KGYqNnwwKS02fDApPj4+MCl8MCkhPTApe2JyZWFrfX1rPWRbbV18MDttPWs+Pj4zO2lmKChtLTE2
fG0rKG4+PjI2KSk+Pj4wPjcpe2JyZWFrfW09ay0xMjh8bjw8NjtpZigobXwwKT49MCl7Y1tsPj4y
XT1tO2o9MjtpPWc7cmV0dXJuIGp8MH1uPShkW2UrMnwwXXwwKS0xMjh8MDtpZihuPj4+MD42Myl7
YnJlYWt9az1ufG08PDY7aWYoKGt8MCk+PTApe2NbbD4+Ml09aztqPTM7aT1nO3JldHVybiBqfDB9
bT0oZFtlKzN8MF18MCktMTI4fDA7aWYobT4+PjA+NjMpe2JyZWFrfWNbbD4+Ml09bXxrPDw2O2o9
NDtpPWc7cmV0dXJuIGp8MH19d2hpbGUoMCk7Y1soYncoKXwwKT4+Ml09MTM4O2o9LTE7aT1nO3Jl
dHVybiBqfDB9ZnVuY3Rpb24ga2coYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTA7aWYo
KGJ8MCk9PTApe2Y9MTtyZXR1cm4gZnwwfWlmKGQ+Pj4wPDEyOCl7YVtiXT1kJjI1NTtmPTE7cmV0
dXJuIGZ8MH1pZihkPj4+MDwyMDQ4KXthW2JdPShkPj4+NnwxOTIpJjI1NTthW2IrMXwwXT0oZCY2
M3wxMjgpJjI1NTtmPTI7cmV0dXJuIGZ8MH1pZihkPj4+MDw1NTI5NnwoZC01NzM0NHwwKT4+PjA8
ODE5Mil7YVtiXT0oZD4+PjEyfDIyNCkmMjU1O2FbYisxfDBdPShkPj4+NiY2M3wxMjgpJjI1NTth
W2IrMnwwXT0oZCY2M3wxMjgpJjI1NTtmPTM7cmV0dXJuIGZ8MH1pZigoZC02NTUzNnwwKT4+PjA8
MTA0ODU3Nil7YVtiXT0oZD4+PjE4fDI0MCkmMjU1O2FbYisxfDBdPShkPj4+MTImNjN8MTI4KSYy
NTU7YVtiKzJ8MF09KGQ+Pj42JjYzfDEyOCkmMjU1O2FbYiszfDBdPShkJjYzfDEyOCkmMjU1O2Y9
NDtyZXR1cm4gZnwwfWVsc2V7Y1soYncoKXwwKT4+Ml09MTM4O2Y9LTE7cmV0dXJuIGZ8MH1yZXR1
cm4gMH1mdW5jdGlvbiBraChhKXthPWF8MDtyZXR1cm59ZnVuY3Rpb24ga2koYSl7YT1hfDA7cmV0
dXJufWZ1bmN0aW9uIGtqKGEpe2E9YXwwO3JldHVybiAxMzI4fDB9ZnVuY3Rpb24ga2soYSl7YT1h
fDA7cmV0dXJufWZ1bmN0aW9uIGtsKGEpe2E9YXwwO3JldHVybn1mdW5jdGlvbiBrbShhKXthPWF8
MDt2YXIgYj0wO2I9YTt3aGlsZSgxKXtpZigoY1tiPj4yXXwwKT09MCl7YnJlYWt9ZWxzZXtiPWIr
NHwwfX1yZXR1cm4gYi1hPj4yfDB9ZnVuY3Rpb24ga24oYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHww
O3ZhciBlPTAsZj0wLGc9MDtpZigoZHwwKT09MCl7cmV0dXJuIGF8MH1lbHNle2U9YjtmPWQ7Zz1h
fXdoaWxlKDEpe2Q9Zi0xfDA7Y1tnPj4yXT1jW2U+PjJdO2lmKChkfDApPT0wKXticmVha31lbHNl
e2U9ZSs0fDA7Zj1kO2c9Zys0fDB9fXJldHVybiBhfDB9ZnVuY3Rpb24ga28oYSxiLGQpe2E9YXww
O2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wO2U9KGR8MCk9PTA7aWYoYS1iPj4y
Pj4+MDxkPj4+MCl7aWYoZSl7cmV0dXJuIGF8MH1lbHNle2Y9ZH1kb3tmPWYtMXwwO2NbYSsoZjw8
Mik+PjJdPWNbYisoZjw8Mik+PjJdO313aGlsZSgoZnwwKSE9MCk7cmV0dXJuIGF8MH1lbHNle2lm
KGUpe3JldHVybiBhfDB9ZWxzZXtnPWI7aD1kO2k9YX13aGlsZSgxKXtkPWgtMXwwO2NbaT4+Ml09
Y1tnPj4yXTtpZigoZHwwKT09MCl7YnJlYWt9ZWxzZXtnPWcrNHwwO2g9ZDtpPWkrNHwwfX1yZXR1
cm4gYXwwfXJldHVybiAwfWZ1bmN0aW9uIGtwKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIg
ZT0wLGY9MDtpZigoZHwwKT09MCl7cmV0dXJuIGF8MH1lbHNle2U9ZDtmPWF9d2hpbGUoMSl7ZD1l
LTF8MDtjW2Y+PjJdPWI7aWYoKGR8MCk9PTApe2JyZWFrfWVsc2V7ZT1kO2Y9Zis0fDB9fXJldHVy
biBhfDB9ZnVuY3Rpb24ga3EoYSl7YT1hfDA7Y1thPj4yXT0yNDQwO3JldHVybn1mdW5jdGlvbiBr
cihiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wO2lmKChjW2QrOD4+Ml18
MCkhPShifDApKXtyZXR1cm59Yj1kKzE2fDA7Zz1jW2I+PjJdfDA7aWYoKGd8MCk9PTApe2NbYj4+
Ml09ZTtjW2QrMjQ+PjJdPWY7Y1tkKzM2Pj4yXT0xO3JldHVybn1pZigoZ3wwKSE9KGV8MCkpe2U9
ZCszNnwwO2NbZT4+Ml09KGNbZT4+Ml18MCkrMTtjW2QrMjQ+PjJdPTI7YVtkKzU0fDBdPTE7cmV0
dXJufWU9ZCsyNHwwO2lmKChjW2U+PjJdfDApIT0yKXtyZXR1cm59Y1tlPj4yXT1mO3JldHVybn1m
dW5jdGlvbiBrcyhhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBn
PTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MDtmPWk7aT1p
KzI2NHwwO2c9ZnwwO2g9ZisyNTZ8MDtqPWNbYj4+Ml18MDtjW2g+PjJdPWo7az0oYXwwKSE9MDts
PWs/ZToyNTY7ZT1rP2E6Z3wwO0wyNDM6ZG97aWYoKGp8MCk9PTB8KGx8MCk9PTApe209MDtuPWQ7
bz1sO3A9ZTtxPWp9ZWxzZXthPWd8MDtyPWw7cz1kO3Q9MDt1PWU7dj1qO3doaWxlKDEpe3c9cz4+
PjA+PXI+Pj4wO2lmKCEod3xzPj4+MD4zMikpe209dDtuPXM7bz1yO3A9dTtxPXY7YnJlYWsgTDI0
M314PXc/cjpzO3k9cy14fDA7dz1rdCh1LGgseCwwKXwwO2lmKCh3fDApPT0tMSl7YnJlYWt9aWYo
KHV8MCk9PShhfDApKXt6PWE7QT1yfWVsc2V7ej11K3d8MDtBPXItd3wwfXg9dyt0fDA7dz1jW2g+
PjJdfDA7aWYoKHd8MCk9PTB8KEF8MCk9PTApe209eDtuPXk7bz1BO3A9ejtxPXc7YnJlYWsgTDI0
M31lbHNle3I9QTtzPXk7dD14O3U9ejt2PXd9fW09LTE7bj15O289MDtwPXU7cT1jW2g+PjJdfDB9
fXdoaWxlKDApO0wyNTQ6ZG97aWYoKHF8MCk9PTApe0I9bX1lbHNle2lmKChvfDApPT0wfChufDAp
PT0wKXtCPW07YnJlYWt9ZWxzZXtDPW87RD1uO0U9bTtGPXA7Rz1xfXdoaWxlKDEpe0g9a2coRixj
W0c+PjJdfDAsMCl8MDtpZigoSCsxfDApPj4+MDwyKXticmVha315PShjW2g+PjJdfDApKzR8MDtj
W2g+PjJdPXk7ej1ELTF8MDtBPUUrMXwwO2lmKChDfDApPT0oSHwwKXwoenwwKT09MCl7Qj1BO2Jy
ZWFrIEwyNTR9ZWxzZXtDPUMtSHwwO0Q9ejtFPUE7Rj1GK0h8MDtHPXl9fWlmKChIfDApIT0wKXtC
PS0xO2JyZWFrfWNbaD4+Ml09MDtCPUV9fXdoaWxlKDApO2lmKCFrKXtpPWY7cmV0dXJuIEJ8MH1j
W2I+PjJdPWNbaD4+Ml07aT1mO3JldHVybiBCfDB9ZnVuY3Rpb24ga3QoYixkLGUsZil7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTA7Zj1pO2k9aSs4fDA7
Zz1mfDA7aWYoKGJ8MCk9PTApe2g9Y1tkPj4yXXwwO2o9Z3wwO2s9Y1toPj4yXXwwO2lmKChrfDAp
PT0wKXtsPTA7aT1mO3JldHVybiBsfDB9ZWxzZXttPTA7bj1oO289a313aGlsZSgxKXtpZihvPj4+
MD4xMjcpe2s9a2coaixvLDApfDA7aWYoKGt8MCk9PS0xKXtsPS0xO3A9MjQwO2JyZWFrfWVsc2V7
cT1rfX1lbHNle3E9MX1rPXErbXwwO2g9bis0fDA7cj1jW2g+PjJdfDA7aWYoKHJ8MCk9PTApe2w9
aztwPTI0MTticmVha31lbHNle209aztuPWg7bz1yfX1pZigocHwwKT09MjQwKXtpPWY7cmV0dXJu
IGx8MH1lbHNlIGlmKChwfDApPT0yNDEpe2k9ZjtyZXR1cm4gbHwwfX1MMjgwOmRve2lmKGU+Pj4w
PjMpe289ZTtuPWI7bT1jW2Q+PjJdfDA7d2hpbGUoMSl7cT1jW20+PjJdfDA7aWYoKHF8MCk9PTAp
e3M9bzt0PW47YnJlYWsgTDI4MH1pZihxPj4+MD4xMjcpe2o9a2cobixxLDApfDA7aWYoKGp8MCk9
PS0xKXtsPS0xO2JyZWFrfXU9bitqfDA7dj1vLWp8MDt3PW19ZWxzZXthW25dPXEmMjU1O3U9bisx
fDA7dj1vLTF8MDt3PWNbZD4+Ml18MH1xPXcrNHwwO2NbZD4+Ml09cTtpZih2Pj4+MD4zKXtvPXY7
bj11O209cX1lbHNle3M9djt0PXU7YnJlYWsgTDI4MH19aT1mO3JldHVybiBsfDB9ZWxzZXtzPWU7
dD1ifX13aGlsZSgwKTtMMjkyOmRve2lmKChzfDApPT0wKXt4PTB9ZWxzZXtiPWd8MDt1PXM7dj10
O3c9Y1tkPj4yXXwwO3doaWxlKDEpe209Y1t3Pj4yXXwwO2lmKChtfDApPT0wKXtwPTIzNjticmVh
a31pZihtPj4+MD4xMjcpe249a2coYixtLDApfDA7aWYoKG58MCk9PS0xKXtsPS0xO3A9MjQzO2Jy
ZWFrfWlmKG4+Pj4wPnU+Pj4wKXtwPTIzMjticmVha31vPWNbdz4+Ml18MDtrZyh2LG8sMCl8MDt5
PXYrbnwwO3o9dS1ufDA7QT13fWVsc2V7YVt2XT1tJjI1NTt5PXYrMXwwO3o9dS0xfDA7QT1jW2Q+
PjJdfDB9bT1BKzR8MDtjW2Q+PjJdPW07aWYoKHp8MCk9PTApe3g9MDticmVhayBMMjkyfWVsc2V7
dT16O3Y9eTt3PW19fWlmKChwfDApPT0yMzIpe2w9ZS11fDA7aT1mO3JldHVybiBsfDB9ZWxzZSBp
ZigocHwwKT09MjM2KXthW3ZdPTA7eD11O2JyZWFrfWVsc2UgaWYoKHB8MCk9PTI0Myl7aT1mO3Jl
dHVybiBsfDB9fX13aGlsZSgwKTtjW2Q+PjJdPTA7bD1lLXh8MDtpPWY7cmV0dXJuIGx8MH1mdW5j
dGlvbiBrdShhKXthPWF8MDtrUyhhKTtyZXR1cm59ZnVuY3Rpb24ga3YoYSl7YT1hfDA7a2goYXww
KTtyZXR1cm59ZnVuY3Rpb24ga3coYSl7YT1hfDA7a2goYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rp
b24ga3goYSl7YT1hfDA7a2goYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24ga3koYSl7YT1hfDA7
a2goYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24ga3ooYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHww
O3ZhciBlPTAsZj0wLGc9MCxoPTA7ZT1pO2k9aSs1NnwwO2Y9ZXwwO2lmKChhfDApPT0oYnwwKSl7
Zz0xO2k9ZTtyZXR1cm4gZ3wwfWlmKChifDApPT0wKXtnPTA7aT1lO3JldHVybiBnfDB9aD1rQyhi
LDk3MDQsOTY4OCwtMSl8MDtiPWg7aWYoKGh8MCk9PTApe2c9MDtpPWU7cmV0dXJuIGd8MH1rJChm
fDAsMCw1Nik7Y1tmPj4yXT1iO2NbZis4Pj4yXT1hO2NbZisxMj4+Ml09LTE7Y1tmKzQ4Pj4yXT0x
O2NiW2NbKGNbaD4+Ml18MCkrMjg+PjJdJjE1XShiLGYsY1tkPj4yXXwwLDEpO2lmKChjW2YrMjQ+
PjJdfDApIT0xKXtnPTA7aT1lO3JldHVybiBnfDB9Y1tkPj4yXT1jW2YrMTY+PjJdO2c9MTtpPWU7
cmV0dXJuIGd8MH1mdW5jdGlvbiBrQShiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2
YXIgZz0wO2lmKChifDApIT0oY1tkKzg+PjJdfDApKXtnPWNbYis4Pj4yXXwwO2NiW2NbKGNbZz4+
Ml18MCkrMjg+PjJdJjE1XShnLGQsZSxmKTtyZXR1cm59Zz1kKzE2fDA7Yj1jW2c+PjJdfDA7aWYo
KGJ8MCk9PTApe2NbZz4+Ml09ZTtjW2QrMjQ+PjJdPWY7Y1tkKzM2Pj4yXT0xO3JldHVybn1pZigo
YnwwKSE9KGV8MCkpe2U9ZCszNnwwO2NbZT4+Ml09KGNbZT4+Ml18MCkrMTtjW2QrMjQ+PjJdPTI7
YVtkKzU0fDBdPTE7cmV0dXJufWU9ZCsyNHwwO2lmKChjW2U+PjJdfDApIT0yKXtyZXR1cm59Y1tl
Pj4yXT1mO3JldHVybn1mdW5jdGlvbiBrQihiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wO2lmKChifDApPT0oY1tkKzg+PjJdfDAp
KXtnPWQrMTZ8MDtoPWNbZz4+Ml18MDtpZigoaHwwKT09MCl7Y1tnPj4yXT1lO2NbZCsyND4+Ml09
ZjtjW2QrMzY+PjJdPTE7cmV0dXJufWlmKChofDApIT0oZXwwKSl7aD1kKzM2fDA7Y1toPj4yXT0o
Y1toPj4yXXwwKSsxO2NbZCsyND4+Ml09MjthW2QrNTR8MF09MTtyZXR1cm59aD1kKzI0fDA7aWYo
KGNbaD4+Ml18MCkhPTIpe3JldHVybn1jW2g+PjJdPWY7cmV0dXJufWg9Y1tiKzEyPj4yXXwwO2c9
YisxNisoaDw8Myl8MDtpPWNbYisyMD4+Ml18MDtqPWk+Pjg7aWYoKGkmMXwwKT09MCl7az1qfWVs
c2V7az1jWyhjW2U+PjJdfDApK2o+PjJdfDB9aj1jW2IrMTY+PjJdfDA7Y2JbY1soY1tqPj4yXXww
KSsyOD4+Ml0mMTVdKGosZCxlK2t8MCwoaSYyfDApIT0wP2Y6Mik7aWYoKGh8MCk8PTEpe3JldHVy
bn1oPWQrNTR8MDtpPWU7az1iKzI0fDA7d2hpbGUoMSl7Yj1jW2srND4+Ml18MDtqPWI+Pjg7aWYo
KGImMXwwKT09MCl7bD1qfWVsc2V7bD1jWyhjW2k+PjJdfDApK2o+PjJdfDB9aj1jW2s+PjJdfDA7
Y2JbY1soY1tqPj4yXXwwKSsyOD4+Ml0mMTVdKGosZCxlK2x8MCwoYiYyfDApIT0wP2Y6Mik7aWYo
KGFbaF0mMSkhPTApe209Mjk3O2JyZWFrfWI9ays4fDA7aWYoYj4+PjA8Zz4+PjApe2s9Yn1lbHNl
e209Mjk4O2JyZWFrfX1pZigobXwwKT09Mjk3KXtyZXR1cm59ZWxzZSBpZigobXwwKT09Mjk4KXty
ZXR1cm59fWZ1bmN0aW9uIGtDKGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBm
PTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MDtmPWk7aT1pKzU2fDA7Zz1mfDA7aD1j
W2E+PjJdfDA7aj1hKyhjW2gtOD4+Ml18MCl8MDtrPWNbaC00Pj4yXXwwO2g9aztjW2c+PjJdPWQ7
Y1tnKzQ+PjJdPWE7Y1tnKzg+PjJdPWI7Y1tnKzEyPj4yXT1lO2U9ZysxNnwwO2I9ZysyMHwwO2E9
ZysyNHwwO2w9ZysyOHwwO209ZyszMnwwO249Zys0MHwwO2skKGV8MCwwLDM5KTtpZigoa3wwKT09
KGR8MCkpe2NbZys0OD4+Ml09MTtiOVtjWyhjW2s+PjJdfDApKzIwPj4yXSYzMV0oaCxnLGosaiwx
LDApO2k9ZjtyZXR1cm4oKGNbYT4+Ml18MCk9PTE/ajowKXwwfWJXW2NbKGNbaz4+Ml18MCkrMjQ+
PjJdJjddKGgsZyxqLDEsMCk7c3dpdGNoKGNbZyszNj4+Ml18MCl7Y2FzZSAxOntkb3tpZigoY1th
Pj4yXXwwKSE9MSl7aWYoKGNbbj4+Ml18MCkhPTApe289MDtpPWY7cmV0dXJuIG98MH1pZigoY1ts
Pj4yXXwwKSE9MSl7bz0wO2k9ZjtyZXR1cm4gb3wwfWlmKChjW20+PjJdfDApPT0xKXticmVha31l
bHNle289MH1pPWY7cmV0dXJuIG98MH19d2hpbGUoMCk7bz1jW2U+PjJdfDA7aT1mO3JldHVybiBv
fDB9O2Nhc2UgMDp7aWYoKGNbbj4+Ml18MCkhPTEpe289MDtpPWY7cmV0dXJuIG98MH1pZigoY1ts
Pj4yXXwwKSE9MSl7bz0wO2k9ZjtyZXR1cm4gb3wwfW89KGNbbT4+Ml18MCk9PTE/Y1tiPj4yXXww
OjA7aT1mO3JldHVybiBvfDB9O2RlZmF1bHQ6e289MDtpPWY7cmV0dXJuIG98MH19cmV0dXJuIDB9
ZnVuY3Rpb24ga0QoYixkLGUsZixnKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtpZigo
Y1tkKzg+PjJdfDApPT0oYnwwKSl7aWYoKGNbZCs0Pj4yXXwwKSE9KGV8MCkpe3JldHVybn1nPWQr
Mjh8MDtpZigoY1tnPj4yXXwwKT09MSl7cmV0dXJufWNbZz4+Ml09ZjtyZXR1cm59aWYoKGNbZD4+
Ml18MCkhPShifDApKXtyZXR1cm59ZG97aWYoKGNbZCsxNj4+Ml18MCkhPShlfDApKXtiPWQrMjB8
MDtpZigoY1tiPj4yXXwwKT09KGV8MCkpe2JyZWFrfWNbZCszMj4+Ml09ZjtjW2I+PjJdPWU7Yj1k
KzQwfDA7Y1tiPj4yXT0oY1tiPj4yXXwwKSsxO2Rve2lmKChjW2QrMzY+PjJdfDApPT0xKXtpZigo
Y1tkKzI0Pj4yXXwwKSE9Mil7YnJlYWt9YVtkKzU0fDBdPTF9fXdoaWxlKDApO2NbZCs0ND4+Ml09
NDtyZXR1cm59fXdoaWxlKDApO2lmKChmfDApIT0xKXtyZXR1cm59Y1tkKzMyPj4yXT0xO3JldHVy
bn1mdW5jdGlvbiBrRShiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7dmFyIGk9MDtpZigoY1tkKzg+PjJdfDApIT0oYnwwKSl7cmV0dXJufWFbZCs1M3wwXT0x
O2lmKChjW2QrND4+Ml18MCkhPShmfDApKXtyZXR1cm59YVtkKzUyfDBdPTE7Zj1kKzE2fDA7Yj1j
W2Y+PjJdfDA7aWYoKGJ8MCk9PTApe2NbZj4+Ml09ZTtjW2QrMjQ+PjJdPWc7Y1tkKzM2Pj4yXT0x
O2lmKCEoKGNbZCs0OD4+Ml18MCk9PTEmKGd8MCk9PTEpKXtyZXR1cm59YVtkKzU0fDBdPTE7cmV0
dXJufWlmKChifDApIT0oZXwwKSl7ZT1kKzM2fDA7Y1tlPj4yXT0oY1tlPj4yXXwwKSsxO2FbZCs1
NHwwXT0xO3JldHVybn1lPWQrMjR8MDtiPWNbZT4+Ml18MDtpZigoYnwwKT09Mil7Y1tlPj4yXT1n
O2k9Z31lbHNle2k9Yn1pZighKChjW2QrNDg+PjJdfDApPT0xJihpfDApPT0xKSl7cmV0dXJufWFb
ZCs1NHwwXT0xO3JldHVybn1mdW5jdGlvbiBrRihiLGQsZSxmLGcpe2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO3ZhciBoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxG
PTAsRz0wLEg9MDtoPWJ8MDtpZigoaHwwKT09KGNbZCs4Pj4yXXwwKSl7aWYoKGNbZCs0Pj4yXXww
KSE9KGV8MCkpe3JldHVybn1pPWQrMjh8MDtpZigoY1tpPj4yXXwwKT09MSl7cmV0dXJufWNbaT4+
Ml09ZjtyZXR1cm59aWYoKGh8MCk9PShjW2Q+PjJdfDApKXtkb3tpZigoY1tkKzE2Pj4yXXwwKSE9
KGV8MCkpe2g9ZCsyMHwwO2lmKChjW2g+PjJdfDApPT0oZXwwKSl7YnJlYWt9Y1tkKzMyPj4yXT1m
O2k9ZCs0NHwwO2lmKChjW2k+PjJdfDApPT00KXtyZXR1cm59aj1jW2IrMTI+PjJdfDA7az1iKzE2
KyhqPDwzKXwwO0w0NzQ6ZG97aWYoKGp8MCk+MCl7bD1kKzUyfDA7bT1kKzUzfDA7bj1kKzU0fDA7
bz1iKzh8MDtwPWQrMjR8MDtxPWU7cj0wO3M9YisxNnwwO3Q9MDtMNDc2OndoaWxlKDEpe2FbbF09
MDthW21dPTA7dT1jW3MrND4+Ml18MDt2PXU+Pjg7aWYoKHUmMXwwKT09MCl7dz12fWVsc2V7dz1j
WyhjW3E+PjJdfDApK3Y+PjJdfDB9dj1jW3M+PjJdfDA7YjlbY1soY1t2Pj4yXXwwKSsyMD4+Ml0m
MzFdKHYsZCxlLGUrd3wwLDItKHU+Pj4xJjEpfDAsZyk7aWYoKGFbbl0mMSkhPTApe3g9dDt5PXI7
YnJlYWt9ZG97aWYoKGFbbV0mMSk9PTApe3o9dDtBPXJ9ZWxzZXtpZigoYVtsXSYxKT09MCl7aWYo
KGNbbz4+Ml0mMXwwKT09MCl7eD0xO3k9cjticmVhayBMNDc2fWVsc2V7ej0xO0E9cjticmVha319
aWYoKGNbcD4+Ml18MCk9PTEpe0I9Mzg1O2JyZWFrIEw0NzR9aWYoKGNbbz4+Ml0mMnwwKT09MCl7
Qj0zODU7YnJlYWsgTDQ3NH1lbHNle3o9MTtBPTF9fX13aGlsZSgwKTt1PXMrOHwwO2lmKHU+Pj4w
PGs+Pj4wKXtyPUE7cz11O3Q9en1lbHNle3g9ejt5PUE7YnJlYWt9fWlmKHkpe0M9eDtCPTM4NH1l
bHNle0Q9eDtCPTM4MX19ZWxzZXtEPTA7Qj0zODF9fXdoaWxlKDApO2Rve2lmKChCfDApPT0zODEp
e2NbaD4+Ml09ZTtrPWQrNDB8MDtjW2s+PjJdPShjW2s+PjJdfDApKzE7aWYoKGNbZCszNj4+Ml18
MCkhPTEpe0M9RDtCPTM4NDticmVha31pZigoY1tkKzI0Pj4yXXwwKSE9Mil7Qz1EO0I9Mzg0O2Jy
ZWFrfWFbZCs1NHwwXT0xO2lmKEQpe0I9Mzg1fWVsc2V7Qj0zODZ9fX13aGlsZSgwKTtpZigoQnww
KT09Mzg0KXtpZihDKXtCPTM4NX1lbHNle0I9Mzg2fX1pZigoQnwwKT09Mzg1KXtjW2k+PjJdPTM7
cmV0dXJufWVsc2UgaWYoKEJ8MCk9PTM4Nil7Y1tpPj4yXT00O3JldHVybn19fXdoaWxlKDApO2lm
KChmfDApIT0xKXtyZXR1cm59Y1tkKzMyPj4yXT0xO3JldHVybn1DPWNbYisxMj4+Ml18MDtEPWIr
MTYrKEM8PDMpfDA7eD1jW2IrMjA+PjJdfDA7eT14Pj44O2lmKCh4JjF8MCk9PTApe0U9eX1lbHNl
e0U9Y1soY1tlPj4yXXwwKSt5Pj4yXXwwfXk9Y1tiKzE2Pj4yXXwwO2JXW2NbKGNbeT4+Ml18MCkr
MjQ+PjJdJjddKHksZCxlK0V8MCwoeCYyfDApIT0wP2Y6MixnKTt4PWIrMjR8MDtpZigoQ3wwKTw9
MSl7cmV0dXJufUM9Y1tiKzg+PjJdfDA7ZG97aWYoKEMmMnwwKT09MCl7Yj1kKzM2fDA7aWYoKGNb
Yj4+Ml18MCk9PTEpe2JyZWFrfWlmKChDJjF8MCk9PTApe0U9ZCs1NHwwO3k9ZTtBPXg7d2hpbGUo
MSl7aWYoKGFbRV0mMSkhPTApe0I9NDI1O2JyZWFrfWlmKChjW2I+PjJdfDApPT0xKXtCPTQyNjti
cmVha316PWNbQSs0Pj4yXXwwO3c9ej4+ODtpZigoeiYxfDApPT0wKXtGPXd9ZWxzZXtGPWNbKGNb
eT4+Ml18MCkrdz4+Ml18MH13PWNbQT4+Ml18MDtiV1tjWyhjW3c+PjJdfDApKzI0Pj4yXSY3XSh3
LGQsZStGfDAsKHomMnwwKSE9MD9mOjIsZyk7ej1BKzh8MDtpZih6Pj4+MDxEPj4+MCl7QT16fWVs
c2V7Qj00MTI7YnJlYWt9fWlmKChCfDApPT00MTIpe3JldHVybn1lbHNlIGlmKChCfDApPT00MjUp
e3JldHVybn1lbHNlIGlmKChCfDApPT00MjYpe3JldHVybn19QT1kKzI0fDA7eT1kKzU0fDA7RT1l
O2k9eDt3aGlsZSgxKXtpZigoYVt5XSYxKSE9MCl7Qj00MjI7YnJlYWt9aWYoKGNbYj4+Ml18MCk9
PTEpe2lmKChjW0E+PjJdfDApPT0xKXtCPTQyMzticmVha319ej1jW2krND4+Ml18MDt3PXo+Pjg7
aWYoKHomMXwwKT09MCl7Rz13fWVsc2V7Rz1jWyhjW0U+PjJdfDApK3c+PjJdfDB9dz1jW2k+PjJd
fDA7YldbY1soY1t3Pj4yXXwwKSsyND4+Ml0mN10odyxkLGUrR3wwLCh6JjJ8MCkhPTA/ZjoyLGcp
O3o9aSs4fDA7aWYoej4+PjA8RD4+PjApe2k9en1lbHNle0I9NDI0O2JyZWFrfX1pZigoQnwwKT09
NDIyKXtyZXR1cm59ZWxzZSBpZigoQnwwKT09NDIzKXtyZXR1cm59ZWxzZSBpZigoQnwwKT09NDI0
KXtyZXR1cm59fX13aGlsZSgwKTtHPWQrNTR8MDtGPWU7Qz14O3doaWxlKDEpe2lmKChhW0ddJjEp
IT0wKXtCPTQyMTticmVha314PWNbQys0Pj4yXXwwO2k9eD4+ODtpZigoeCYxfDApPT0wKXtIPWl9
ZWxzZXtIPWNbKGNbRj4+Ml18MCkraT4+Ml18MH1pPWNbQz4+Ml18MDtiV1tjWyhjW2k+PjJdfDAp
KzI0Pj4yXSY3XShpLGQsZStIfDAsKHgmMnwwKSE9MD9mOjIsZyk7eD1DKzh8MDtpZih4Pj4+MDxE
Pj4+MCl7Qz14fWVsc2V7Qj00MjA7YnJlYWt9fWlmKChCfDApPT00MjApe3JldHVybn1lbHNlIGlm
KChCfDApPT00MjEpe3JldHVybn19ZnVuY3Rpb24ga0coYixkLGUsZixnKXtiPWJ8MDtkPWR8MDtl
PWV8MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2g9YnwwO2lm
KChofDApPT0oY1tkKzg+PjJdfDApKXtpZigoY1tkKzQ+PjJdfDApIT0oZXwwKSl7cmV0dXJufWk9
ZCsyOHwwO2lmKChjW2k+PjJdfDApPT0xKXtyZXR1cm59Y1tpPj4yXT1mO3JldHVybn1pZigoaHww
KSE9KGNbZD4+Ml18MCkpe2g9Y1tiKzg+PjJdfDA7YldbY1soY1toPj4yXXwwKSsyND4+Ml0mN10o
aCxkLGUsZixnKTtyZXR1cm59ZG97aWYoKGNbZCsxNj4+Ml18MCkhPShlfDApKXtoPWQrMjB8MDtp
ZigoY1toPj4yXXwwKT09KGV8MCkpe2JyZWFrfWNbZCszMj4+Ml09ZjtpPWQrNDR8MDtpZigoY1tp
Pj4yXXwwKT09NCl7cmV0dXJufWo9ZCs1MnwwO2Fbal09MDtrPWQrNTN8MDthW2tdPTA7bD1jW2Ir
OD4+Ml18MDtiOVtjWyhjW2w+PjJdfDApKzIwPj4yXSYzMV0obCxkLGUsZSwxLGcpO2lmKChhW2td
JjEpPT0wKXttPTA7bj00NDF9ZWxzZXtpZigoYVtqXSYxKT09MCl7bT0xO249NDQxfX1MNTc2OmRv
e2lmKChufDApPT00NDEpe2NbaD4+Ml09ZTtqPWQrNDB8MDtjW2o+PjJdPShjW2o+PjJdfDApKzE7
ZG97aWYoKGNbZCszNj4+Ml18MCk9PTEpe2lmKChjW2QrMjQ+PjJdfDApIT0yKXtuPTQ0NDticmVh
a31hW2QrNTR8MF09MTtpZihtKXticmVhayBMNTc2fX1lbHNle249NDQ0fX13aGlsZSgwKTtpZigo
bnwwKT09NDQ0KXtpZihtKXticmVha319Y1tpPj4yXT00O3JldHVybn19d2hpbGUoMCk7Y1tpPj4y
XT0zO3JldHVybn19d2hpbGUoMCk7aWYoKGZ8MCkhPTEpe3JldHVybn1jW2QrMzI+PjJdPTE7cmV0
dXJufWZ1bmN0aW9uIGtIKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDt2YXIgaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTA7aWYoKGJ8MCkhPShjW2QrOD4+Ml18MCkpe2k9ZCs1MnwwO2o9YVtpXSYx
O2s9ZCs1M3wwO2w9YVtrXSYxO209Y1tiKzEyPj4yXXwwO249YisxNisobTw8Myl8MDthW2ldPTA7
YVtrXT0wO289Y1tiKzIwPj4yXXwwO3A9bz4+ODtpZigobyYxfDApPT0wKXtxPXB9ZWxzZXtxPWNb
KGNbZj4+Ml18MCkrcD4+Ml18MH1wPWNbYisxNj4+Ml18MDtiOVtjWyhjW3A+PjJdfDApKzIwPj4y
XSYzMV0ocCxkLGUsZitxfDAsKG8mMnwwKSE9MD9nOjIsaCk7TDU5ODpkb3tpZigobXwwKT4xKXtv
PWQrMjR8MDtxPWIrOHwwO3A9ZCs1NHwwO3I9ZjtzPWIrMjR8MDtkb3tpZigoYVtwXSYxKSE9MCl7
YnJlYWsgTDU5OH1kb3tpZigoYVtpXSYxKT09MCl7aWYoKGFba10mMSk9PTApe2JyZWFrfWlmKChj
W3E+PjJdJjF8MCk9PTApe2JyZWFrIEw1OTh9fWVsc2V7aWYoKGNbbz4+Ml18MCk9PTEpe2JyZWFr
IEw1OTh9aWYoKGNbcT4+Ml0mMnwwKT09MCl7YnJlYWsgTDU5OH19fXdoaWxlKDApO2FbaV09MDth
W2tdPTA7dD1jW3MrND4+Ml18MDt1PXQ+Pjg7aWYoKHQmMXwwKT09MCl7dj11fWVsc2V7dj1jWyhj
W3I+PjJdfDApK3U+PjJdfDB9dT1jW3M+PjJdfDA7YjlbY1soY1t1Pj4yXXwwKSsyMD4+Ml0mMzFd
KHUsZCxlLGYrdnwwLCh0JjJ8MCkhPTA/ZzoyLGgpO3M9cys4fDA7fXdoaWxlKHM+Pj4wPG4+Pj4w
KX19d2hpbGUoMCk7YVtpXT1qO2Fba109bDtyZXR1cm59YVtkKzUzfDBdPTE7aWYoKGNbZCs0Pj4y
XXwwKSE9KGZ8MCkpe3JldHVybn1hW2QrNTJ8MF09MTtmPWQrMTZ8MDtsPWNbZj4+Ml18MDtpZigo
bHwwKT09MCl7Y1tmPj4yXT1lO2NbZCsyND4+Ml09ZztjW2QrMzY+PjJdPTE7aWYoISgoY1tkKzQ4
Pj4yXXwwKT09MSYoZ3wwKT09MSkpe3JldHVybn1hW2QrNTR8MF09MTtyZXR1cm59aWYoKGx8MCkh
PShlfDApKXtlPWQrMzZ8MDtjW2U+PjJdPShjW2U+PjJdfDApKzE7YVtkKzU0fDBdPTE7cmV0dXJu
fWU9ZCsyNHwwO2w9Y1tlPj4yXXwwO2lmKChsfDApPT0yKXtjW2U+PjJdPWc7dz1nfWVsc2V7dz1s
fWlmKCEoKGNbZCs0OD4+Ml18MCk9PTEmKHd8MCk9PTEpKXtyZXR1cm59YVtkKzU0fDBdPTE7cmV0
dXJufWZ1bmN0aW9uIGtJKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDt2YXIgaT0wLGo9MDtpZigoYnwwKSE9KGNbZCs4Pj4yXXwwKSl7aT1jW2IrOD4+Ml18
MDtiOVtjWyhjW2k+PjJdfDApKzIwPj4yXSYzMV0oaSxkLGUsZixnLGgpO3JldHVybn1hW2QrNTN8
MF09MTtpZigoY1tkKzQ+PjJdfDApIT0oZnwwKSl7cmV0dXJufWFbZCs1MnwwXT0xO2Y9ZCsxNnww
O2g9Y1tmPj4yXXwwO2lmKChofDApPT0wKXtjW2Y+PjJdPWU7Y1tkKzI0Pj4yXT1nO2NbZCszNj4+
Ml09MTtpZighKChjW2QrNDg+PjJdfDApPT0xJihnfDApPT0xKSl7cmV0dXJufWFbZCs1NHwwXT0x
O3JldHVybn1pZigoaHwwKSE9KGV8MCkpe2U9ZCszNnwwO2NbZT4+Ml09KGNbZT4+Ml18MCkrMTth
W2QrNTR8MF09MTtyZXR1cm59ZT1kKzI0fDA7aD1jW2U+PjJdfDA7aWYoKGh8MCk9PTIpe2NbZT4+
Ml09ZztqPWd9ZWxzZXtqPWh9aWYoISgoY1tkKzQ4Pj4yXXwwKT09MSYoanwwKT09MSkpe3JldHVy
bn1hW2QrNTR8MF09MTtyZXR1cm59ZnVuY3Rpb24ga0ooYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0w
LGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9
MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MCxh
Zz0wLGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0wLGFuPTAsYW89MCxhcD0wLGFxPTAsYXI9
MCxhcz0wLGF0PTAsYXU9MCxhdj0wLGF3PTAsYXg9MCxheT0wLGF6PTAsYUE9MCxhQj0wLGFDPTAs
YUQ9MCxhRT0wLGFGPTAsYUc9MDtkb3tpZihhPj4+MDwyNDUpe2lmKGE+Pj4wPDExKXtiPTE2fWVs
c2V7Yj1hKzExJi04fWQ9Yj4+PjM7ZT1jWzI0NjBdfDA7Zj1lPj4+KGQ+Pj4wKTtpZigoZiYzfDAp
IT0wKXtnPShmJjFeMSkrZHwwO2g9Zzw8MTtpPTk4ODArKGg8PDIpfDA7aj05ODgwKyhoKzI8PDIp
fDA7aD1jW2o+PjJdfDA7az1oKzh8MDtsPWNbaz4+Ml18MDtkb3tpZigoaXwwKT09KGx8MCkpe2Nb
MjQ2MF09ZSZ+KDE8PGcpfWVsc2V7aWYobD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVy
biAwfW09bCsxMnwwO2lmKChjW20+PjJdfDApPT0oaHwwKSl7Y1ttPj4yXT1pO2Nbaj4+Ml09bDti
cmVha31lbHNle2JHKCk7cmV0dXJuIDB9fX13aGlsZSgwKTtsPWc8PDM7Y1toKzQ+PjJdPWx8Mztq
PWgrKGx8NCl8MDtjW2o+PjJdPWNbaj4+Ml18MTtuPWs7cmV0dXJuIG58MH1pZihiPj4+MDw9KGNb
MjQ2Ml18MCk+Pj4wKXtvPWI7YnJlYWt9aWYoKGZ8MCkhPTApe2o9Mjw8ZDtsPWY8PGQmKGp8LWop
O2o9KGwmLWwpLTF8MDtsPWo+Pj4xMiYxNjtpPWo+Pj4obD4+PjApO2o9aT4+PjUmODttPWk+Pj4o
aj4+PjApO2k9bT4+PjImNDtwPW0+Pj4oaT4+PjApO209cD4+PjEmMjtxPXA+Pj4obT4+PjApO3A9
cT4+PjEmMTtyPShqfGx8aXxtfHApKyhxPj4+KHA+Pj4wKSl8MDtwPXI8PDE7cT05ODgwKyhwPDwy
KXwwO209OTg4MCsocCsyPDwyKXwwO3A9Y1ttPj4yXXwwO2k9cCs4fDA7bD1jW2k+PjJdfDA7ZG97
aWYoKHF8MCk9PShsfDApKXtjWzI0NjBdPWUmfigxPDxyKX1lbHNle2lmKGw+Pj4wPChjWzI0NjRd
fDApPj4+MCl7YkcoKTtyZXR1cm4gMH1qPWwrMTJ8MDtpZigoY1tqPj4yXXwwKT09KHB8MCkpe2Nb
aj4+Ml09cTtjW20+PjJdPWw7YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUoMCk7bD1y
PDwzO209bC1ifDA7Y1twKzQ+PjJdPWJ8MztxPXA7ZT1xK2J8MDtjW3ErKGJ8NCk+PjJdPW18MTtj
W3ErbD4+Ml09bTtsPWNbMjQ2Ml18MDtpZigobHwwKSE9MCl7cT1jWzI0NjVdfDA7ZD1sPj4+Mzts
PWQ8PDE7Zj05ODgwKyhsPDwyKXwwO2s9Y1syNDYwXXwwO2g9MTw8ZDtkb3tpZigoayZofDApPT0w
KXtjWzI0NjBdPWt8aDtzPWY7dD05ODgwKyhsKzI8PDIpfDB9ZWxzZXtkPTk4ODArKGwrMjw8Mil8
MDtnPWNbZD4+Ml18MDtpZihnPj4+MD49KGNbMjQ2NF18MCk+Pj4wKXtzPWc7dD1kO2JyZWFrfWJH
KCk7cmV0dXJuIDB9fXdoaWxlKDApO2NbdD4+Ml09cTtjW3MrMTI+PjJdPXE7Y1txKzg+PjJdPXM7
Y1txKzEyPj4yXT1mfWNbMjQ2Ml09bTtjWzI0NjVdPWU7bj1pO3JldHVybiBufDB9bD1jWzI0NjFd
fDA7aWYoKGx8MCk9PTApe289YjticmVha31oPShsJi1sKS0xfDA7bD1oPj4+MTImMTY7az1oPj4+
KGw+Pj4wKTtoPWs+Pj41Jjg7cD1rPj4+KGg+Pj4wKTtrPXA+Pj4yJjQ7cj1wPj4+KGs+Pj4wKTtw
PXI+Pj4xJjI7ZD1yPj4+KHA+Pj4wKTtyPWQ+Pj4xJjE7Zz1jWzEwMTQ0KygoaHxsfGt8cHxyKSso
ZD4+PihyPj4+MCkpPDwyKT4+Ml18MDtyPWc7ZD1nO3A9KGNbZys0Pj4yXSYtOCktYnwwO3doaWxl
KDEpe2c9Y1tyKzE2Pj4yXXwwO2lmKChnfDApPT0wKXtrPWNbcisyMD4+Ml18MDtpZigoa3wwKT09
MCl7YnJlYWt9ZWxzZXt1PWt9fWVsc2V7dT1nfWc9KGNbdSs0Pj4yXSYtOCktYnwwO2s9Zz4+PjA8
cD4+PjA7cj11O2Q9az91OmQ7cD1rP2c6cH1yPWQ7aT1jWzI0NjRdfDA7aWYocj4+PjA8aT4+PjAp
e2JHKCk7cmV0dXJuIDB9ZT1yK2J8MDttPWU7aWYocj4+PjA+PWU+Pj4wKXtiRygpO3JldHVybiAw
fWU9Y1tkKzI0Pj4yXXwwO2Y9Y1tkKzEyPj4yXXwwO2Rve2lmKChmfDApPT0oZHwwKSl7cT1kKzIw
fDA7Zz1jW3E+PjJdfDA7aWYoKGd8MCk9PTApe2s9ZCsxNnwwO2w9Y1trPj4yXXwwO2lmKChsfDAp
PT0wKXt2PTA7YnJlYWt9ZWxzZXt3PWw7eD1rfX1lbHNle3c9Zzt4PXF9d2hpbGUoMSl7cT13KzIw
fDA7Zz1jW3E+PjJdfDA7aWYoKGd8MCkhPTApe3c9Zzt4PXE7Y29udGludWV9cT13KzE2fDA7Zz1j
W3E+PjJdfDA7aWYoKGd8MCk9PTApe2JyZWFrfWVsc2V7dz1nO3g9cX19aWYoeD4+PjA8aT4+PjAp
e2JHKCk7cmV0dXJuIDB9ZWxzZXtjW3g+PjJdPTA7dj13O2JyZWFrfX1lbHNle3E9Y1tkKzg+PjJd
fDA7aWYocT4+PjA8aT4+PjApe2JHKCk7cmV0dXJuIDB9Zz1xKzEyfDA7aWYoKGNbZz4+Ml18MCkh
PShkfDApKXtiRygpO3JldHVybiAwfWs9Zis4fDA7aWYoKGNbaz4+Ml18MCk9PShkfDApKXtjW2c+
PjJdPWY7Y1trPj4yXT1xO3Y9ZjticmVha31lbHNle2JHKCk7cmV0dXJuIDB9fX13aGlsZSgwKTtM
NzQwOmRve2lmKChlfDApIT0wKXtmPWQrMjh8MDtpPTEwMTQ0KyhjW2Y+PjJdPDwyKXwwO2Rve2lm
KChkfDApPT0oY1tpPj4yXXwwKSl7Y1tpPj4yXT12O2lmKCh2fDApIT0wKXticmVha31jWzI0NjFd
PWNbMjQ2MV0mfigxPDxjW2Y+PjJdKTticmVhayBMNzQwfWVsc2V7aWYoZT4+PjA8KGNbMjQ2NF18
MCk+Pj4wKXtiRygpO3JldHVybiAwfXE9ZSsxNnwwO2lmKChjW3E+PjJdfDApPT0oZHwwKSl7Y1tx
Pj4yXT12fWVsc2V7Y1tlKzIwPj4yXT12fWlmKCh2fDApPT0wKXticmVhayBMNzQwfX19d2hpbGUo
MCk7aWYodj4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWNbdisyND4+Ml09ZTtm
PWNbZCsxNj4+Ml18MDtkb3tpZigoZnwwKSE9MCl7aWYoZj4+PjA8KGNbMjQ2NF18MCk+Pj4wKXti
RygpO3JldHVybiAwfWVsc2V7Y1t2KzE2Pj4yXT1mO2NbZisyND4+Ml09djticmVha319fXdoaWxl
KDApO2Y9Y1tkKzIwPj4yXXwwO2lmKChmfDApPT0wKXticmVha31pZihmPj4+MDwoY1syNDY0XXww
KT4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW3YrMjA+PjJdPWY7Y1tmKzI0Pj4yXT12O2JyZWFr
fX19d2hpbGUoMCk7aWYocD4+PjA8MTYpe2U9cCtifDA7Y1tkKzQ+PjJdPWV8MztmPXIrKGUrNCl8
MDtjW2Y+PjJdPWNbZj4+Ml18MX1lbHNle2NbZCs0Pj4yXT1ifDM7Y1tyKyhifDQpPj4yXT1wfDE7
Y1tyKyhwK2IpPj4yXT1wO2Y9Y1syNDYyXXwwO2lmKChmfDApIT0wKXtlPWNbMjQ2NV18MDtpPWY+
Pj4zO2Y9aTw8MTtxPTk4ODArKGY8PDIpfDA7az1jWzI0NjBdfDA7Zz0xPDxpO2Rve2lmKChrJmd8
MCk9PTApe2NbMjQ2MF09a3xnO3k9cTt6PTk4ODArKGYrMjw8Mil8MH1lbHNle2k9OTg4MCsoZisy
PDwyKXwwO2w9Y1tpPj4yXXwwO2lmKGw+Pj4wPj0oY1syNDY0XXwwKT4+PjApe3k9bDt6PWk7YnJl
YWt9YkcoKTtyZXR1cm4gMH19d2hpbGUoMCk7Y1t6Pj4yXT1lO2NbeSsxMj4+Ml09ZTtjW2UrOD4+
Ml09eTtjW2UrMTI+PjJdPXF9Y1syNDYyXT1wO2NbMjQ2NV09bX1mPWQrOHwwO2lmKChmfDApPT0w
KXtvPWI7YnJlYWt9ZWxzZXtuPWZ9cmV0dXJuIG58MH1lbHNle2lmKGE+Pj4wPjQyOTQ5NjcyMzEp
e289LTE7YnJlYWt9Zj1hKzExfDA7Zz1mJi04O2s9Y1syNDYxXXwwO2lmKChrfDApPT0wKXtvPWc7
YnJlYWt9cj0tZ3wwO2k9Zj4+Pjg7ZG97aWYoKGl8MCk9PTApe0E9MH1lbHNle2lmKGc+Pj4wPjE2
Nzc3MjE1KXtBPTMxO2JyZWFrfWY9KGkrMTA0ODMyMHwwKT4+PjE2Jjg7bD1pPDxmO2g9KGwrNTIw
MTkyfDApPj4+MTYmNDtqPWw8PGg7bD0oaisyNDU3NjB8MCk+Pj4xNiYyO0I9MTQtKGh8ZnxsKSso
ajw8bD4+PjE1KXwwO0E9Zz4+PigoQis3fDApPj4+MCkmMXxCPDwxfX13aGlsZSgwKTtpPWNbMTAx
NDQrKEE8PDIpPj4yXXwwO0w3ODg6ZG97aWYoKGl8MCk9PTApe0M9MDtEPXI7RT0wfWVsc2V7aWYo
KEF8MCk9PTMxKXtGPTB9ZWxzZXtGPTI1LShBPj4+MSl8MH1kPTA7bT1yO3A9aTtxPWc8PEY7ZT0w
O3doaWxlKDEpe0I9Y1twKzQ+PjJdJi04O2w9Qi1nfDA7aWYobD4+PjA8bT4+PjApe2lmKChCfDAp
PT0oZ3wwKSl7Qz1wO0Q9bDtFPXA7YnJlYWsgTDc4OH1lbHNle0c9cDtIPWx9fWVsc2V7Rz1kO0g9
bX1sPWNbcCsyMD4+Ml18MDtCPWNbcCsxNisocT4+PjMxPDwyKT4+Ml18MDtqPShsfDApPT0wfChs
fDApPT0oQnwwKT9lOmw7aWYoKEJ8MCk9PTApe0M9RztEPUg7RT1qO2JyZWFrfWVsc2V7ZD1HO209
SDtwPUI7cT1xPDwxO2U9an19fX13aGlsZSgwKTtpZigoRXwwKT09MCYoQ3wwKT09MCl7aT0yPDxB
O3I9ayYoaXwtaSk7aWYoKHJ8MCk9PTApe289ZzticmVha31pPShyJi1yKS0xfDA7cj1pPj4+MTIm
MTY7ZT1pPj4+KHI+Pj4wKTtpPWU+Pj41Jjg7cT1lPj4+KGk+Pj4wKTtlPXE+Pj4yJjQ7cD1xPj4+
KGU+Pj4wKTtxPXA+Pj4xJjI7bT1wPj4+KHE+Pj4wKTtwPW0+Pj4xJjE7ST1jWzEwMTQ0KygoaXxy
fGV8cXxwKSsobT4+PihwPj4+MCkpPDwyKT4+Ml18MH1lbHNle0k9RX1pZigoSXwwKT09MCl7Sj1E
O0s9Q31lbHNle3A9STttPUQ7cT1DO3doaWxlKDEpe2U9KGNbcCs0Pj4yXSYtOCktZ3wwO3I9ZT4+
PjA8bT4+PjA7aT1yP2U6bTtlPXI/cDpxO3I9Y1twKzE2Pj4yXXwwO2lmKChyfDApIT0wKXtwPXI7
bT1pO3E9ZTtjb250aW51ZX1yPWNbcCsyMD4+Ml18MDtpZigocnwwKT09MCl7Sj1pO0s9ZTticmVh
a31lbHNle3A9cjttPWk7cT1lfX19aWYoKEt8MCk9PTApe289ZzticmVha31pZihKPj4+MD49KChj
WzI0NjJdfDApLWd8MCk+Pj4wKXtvPWc7YnJlYWt9cT1LO209Y1syNDY0XXwwO2lmKHE+Pj4wPG0+
Pj4wKXtiRygpO3JldHVybiAwfXA9cStnfDA7az1wO2lmKHE+Pj4wPj1wPj4+MCl7YkcoKTtyZXR1
cm4gMH1lPWNbSysyND4+Ml18MDtpPWNbSysxMj4+Ml18MDtkb3tpZigoaXwwKT09KEt8MCkpe3I9
SysyMHwwO2Q9Y1tyPj4yXXwwO2lmKChkfDApPT0wKXtqPUsrMTZ8MDtCPWNbaj4+Ml18MDtpZigo
QnwwKT09MCl7TD0wO2JyZWFrfWVsc2V7TT1CO049an19ZWxzZXtNPWQ7Tj1yfXdoaWxlKDEpe3I9
TSsyMHwwO2Q9Y1tyPj4yXXwwO2lmKChkfDApIT0wKXtNPWQ7Tj1yO2NvbnRpbnVlfXI9TSsxNnww
O2Q9Y1tyPj4yXXwwO2lmKChkfDApPT0wKXticmVha31lbHNle009ZDtOPXJ9fWlmKE4+Pj4wPG0+
Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1tOPj4yXT0wO0w9TTticmVha319ZWxzZXtyPWNbSys4
Pj4yXXwwO2lmKHI+Pj4wPG0+Pj4wKXtiRygpO3JldHVybiAwfWQ9cisxMnwwO2lmKChjW2Q+PjJd
fDApIT0oS3wwKSl7YkcoKTtyZXR1cm4gMH1qPWkrOHwwO2lmKChjW2o+PjJdfDApPT0oS3wwKSl7
Y1tkPj4yXT1pO2Nbaj4+Ml09cjtMPWk7YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUo
MCk7TDgzODpkb3tpZigoZXwwKSE9MCl7aT1LKzI4fDA7bT0xMDE0NCsoY1tpPj4yXTw8Mil8MDtk
b3tpZigoS3wwKT09KGNbbT4+Ml18MCkpe2NbbT4+Ml09TDtpZigoTHwwKSE9MCl7YnJlYWt9Y1sy
NDYxXT1jWzI0NjFdJn4oMTw8Y1tpPj4yXSk7YnJlYWsgTDgzOH1lbHNle2lmKGU+Pj4wPChjWzI0
NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1yPWUrMTZ8MDtpZigoY1tyPj4yXXwwKT09KEt8MCkp
e2Nbcj4+Ml09TH1lbHNle2NbZSsyMD4+Ml09TH1pZigoTHwwKT09MCl7YnJlYWsgTDgzOH19fXdo
aWxlKDApO2lmKEw+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1jW0wrMjQ+PjJd
PWU7aT1jW0srMTY+PjJdfDA7ZG97aWYoKGl8MCkhPTApe2lmKGk+Pj4wPChjWzI0NjRdfDApPj4+
MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbTCsxNj4+Ml09aTtjW2krMjQ+PjJdPUw7YnJlYWt9fX13
aGlsZSgwKTtpPWNbSysyMD4+Ml18MDtpZigoaXwwKT09MCl7YnJlYWt9aWYoaT4+PjA8KGNbMjQ2
NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1tMKzIwPj4yXT1pO2NbaSsyND4+Ml09TDti
cmVha319fXdoaWxlKDApO2Rve2lmKEo+Pj4wPDE2KXtlPUorZ3wwO2NbSys0Pj4yXT1lfDM7aT1x
KyhlKzQpfDA7Y1tpPj4yXT1jW2k+PjJdfDF9ZWxzZXtjW0srND4+Ml09Z3wzO2NbcSsoZ3w0KT4+
Ml09SnwxO2NbcSsoSitnKT4+Ml09SjtpPUo+Pj4zO2lmKEo+Pj4wPDI1Nil7ZT1pPDwxO209OTg4
MCsoZTw8Mil8MDtyPWNbMjQ2MF18MDtqPTE8PGk7ZG97aWYoKHImanwwKT09MCl7Y1syNDYwXT1y
fGo7Tz1tO1A9OTg4MCsoZSsyPDwyKXwwfWVsc2V7aT05ODgwKyhlKzI8PDIpfDA7ZD1jW2k+PjJd
fDA7aWYoZD4+PjA+PShjWzI0NjRdfDApPj4+MCl7Tz1kO1A9aTticmVha31iRygpO3JldHVybiAw
fX13aGlsZSgwKTtjW1A+PjJdPWs7Y1tPKzEyPj4yXT1rO2NbcSsoZys4KT4+Ml09TztjW3ErKGcr
MTIpPj4yXT1tO2JyZWFrfWU9cDtqPUo+Pj44O2Rve2lmKChqfDApPT0wKXtRPTB9ZWxzZXtpZihK
Pj4+MD4xNjc3NzIxNSl7UT0zMTticmVha31yPShqKzEwNDgzMjB8MCk+Pj4xNiY4O2k9ajw8cjtk
PShpKzUyMDE5MnwwKT4+PjE2JjQ7Qj1pPDxkO2k9KEIrMjQ1NzYwfDApPj4+MTYmMjtsPTE0LShk
fHJ8aSkrKEI8PGk+Pj4xNSl8MDtRPUo+Pj4oKGwrN3wwKT4+PjApJjF8bDw8MX19d2hpbGUoMCk7
aj0xMDE0NCsoUTw8Mil8MDtjW3ErKGcrMjgpPj4yXT1RO2NbcSsoZysyMCk+PjJdPTA7Y1txKyhn
KzE2KT4+Ml09MDttPWNbMjQ2MV18MDtsPTE8PFE7aWYoKG0mbHwwKT09MCl7Y1syNDYxXT1tfGw7
Y1tqPj4yXT1lO2NbcSsoZysyNCk+PjJdPWo7Y1txKyhnKzEyKT4+Ml09ZTtjW3ErKGcrOCk+PjJd
PWU7YnJlYWt9aWYoKFF8MCk9PTMxKXtSPTB9ZWxzZXtSPTI1LShRPj4+MSl8MH1sPUo8PFI7bT1j
W2o+PjJdfDA7d2hpbGUoMSl7aWYoKGNbbSs0Pj4yXSYtOHwwKT09KEp8MCkpe2JyZWFrfVM9bSsx
NisobD4+PjMxPDwyKXwwO2o9Y1tTPj4yXXwwO2lmKChqfDApPT0wKXtUPTY2MTticmVha31lbHNl
e2w9bDw8MTttPWp9fWlmKChUfDApPT02NjEpe2lmKFM+Pj4wPChjWzI0NjRdfDApPj4+MCl7Ykco
KTtyZXR1cm4gMH1lbHNle2NbUz4+Ml09ZTtjW3ErKGcrMjQpPj4yXT1tO2NbcSsoZysxMik+PjJd
PWU7Y1txKyhnKzgpPj4yXT1lO2JyZWFrfX1sPW0rOHwwO2o9Y1tsPj4yXXwwO2k9Y1syNDY0XXww
O2lmKG0+Pj4wPGk+Pj4wKXtiRygpO3JldHVybiAwfWlmKGo+Pj4wPGk+Pj4wKXtiRygpO3JldHVy
biAwfWVsc2V7Y1tqKzEyPj4yXT1lO2NbbD4+Ml09ZTtjW3ErKGcrOCk+PjJdPWo7Y1txKyhnKzEy
KT4+Ml09bTtjW3ErKGcrMjQpPj4yXT0wO2JyZWFrfX19d2hpbGUoMCk7cT1LKzh8MDtpZigocXww
KT09MCl7bz1nO2JyZWFrfWVsc2V7bj1xfXJldHVybiBufDB9fXdoaWxlKDApO0s9Y1syNDYyXXww
O2lmKG8+Pj4wPD1LPj4+MCl7Uz1LLW98MDtKPWNbMjQ2NV18MDtpZihTPj4+MD4xNSl7Uj1KO2Nb
MjQ2NV09UitvO2NbMjQ2Ml09UztjW1IrKG8rNCk+PjJdPVN8MTtjW1IrSz4+Ml09UztjW0orND4+
Ml09b3wzfWVsc2V7Y1syNDYyXT0wO2NbMjQ2NV09MDtjW0orND4+Ml09S3wzO1M9SisoSys0KXww
O2NbUz4+Ml09Y1tTPj4yXXwxfW49Sis4fDA7cmV0dXJuIG58MH1KPWNbMjQ2M118MDtpZihvPj4+
MDxKPj4+MCl7Uz1KLW98MDtjWzI0NjNdPVM7Sj1jWzI0NjZdfDA7Sz1KO2NbMjQ2Nl09SytvO2Nb
Sysobys0KT4+Ml09U3wxO2NbSis0Pj4yXT1vfDM7bj1KKzh8MDtyZXR1cm4gbnwwfWRve2lmKChj
WzI0NTBdfDApPT0wKXtKPWJFKDgpfDA7aWYoKEotMSZKfDApPT0wKXtjWzI0NTJdPUo7Y1syNDUx
XT1KO2NbMjQ1M109LTE7Y1syNDU0XT0tMTtjWzI0NTVdPTA7Y1syNTcxXT0wO2NbMjQ1MF09KGJW
KDApfDApJi0xNl4xNDMxNjU1NzY4O2JyZWFrfWVsc2V7YkcoKTtyZXR1cm4gMH19fXdoaWxlKDAp
O0o9bys0OHwwO1M9Y1syNDUyXXwwO0s9bys0N3wwO1I9UytLfDA7UT0tU3wwO1M9UiZRO2lmKFM+
Pj4wPD1vPj4+MCl7bj0wO3JldHVybiBufDB9Tz1jWzI1NzBdfDA7ZG97aWYoKE98MCkhPTApe1A9
Y1syNTY4XXwwO0w9UCtTfDA7aWYoTD4+PjA8PVA+Pj4wfEw+Pj4wPk8+Pj4wKXtuPTB9ZWxzZXti
cmVha31yZXR1cm4gbnwwfX13aGlsZSgwKTtMOTMwOmRve2lmKChjWzI1NzFdJjR8MCk9PTApe089
Y1syNDY2XXwwO0w5MzI6ZG97aWYoKE98MCk9PTApe1Q9NjkxfWVsc2V7TD1PO1A9MTAyODg7d2hp
bGUoMSl7VT1QfDA7TT1jW1U+PjJdfDA7aWYoTT4+PjA8PUw+Pj4wKXtWPVArNHwwO2lmKChNKyhj
W1Y+PjJdfDApfDApPj4+MD5MPj4+MCl7YnJlYWt9fU09Y1tQKzg+PjJdfDA7aWYoKE18MCk9PTAp
e1Q9NjkxO2JyZWFrIEw5MzJ9ZWxzZXtQPU19fWlmKChQfDApPT0wKXtUPTY5MTticmVha31MPVIt
KGNbMjQ2M118MCkmUTtpZihMPj4+MD49MjE0NzQ4MzY0Nyl7Vz0wO2JyZWFrfW09YnYoTHwwKXww
O2U9KG18MCk9PSgoY1tVPj4yXXwwKSsoY1tWPj4yXXwwKXwwKTtYPWU/bTotMTtZPWU/TDowO1o9
bTtfPUw7VD03MDB9fXdoaWxlKDApO2Rve2lmKChUfDApPT02OTEpe089YnYoMCl8MDtpZigoT3ww
KT09LTEpe1c9MDticmVha31nPU87TD1jWzI0NTFdfDA7bT1MLTF8MDtpZigobSZnfDApPT0wKXsk
PVN9ZWxzZXskPVMtZysobStnJi1MKXwwfUw9Y1syNTY4XXwwO2c9TCskfDA7aWYoISgkPj4+MD5v
Pj4+MCYkPj4+MDwyMTQ3NDgzNjQ3KSl7Vz0wO2JyZWFrfW09Y1syNTcwXXwwO2lmKChtfDApIT0w
KXtpZihnPj4+MDw9TD4+PjB8Zz4+PjA+bT4+PjApe1c9MDticmVha319bT1idigkfDApfDA7Zz0o
bXwwKT09KE98MCk7WD1nP086LTE7WT1nPyQ6MDtaPW07Xz0kO1Q9NzAwfX13aGlsZSgwKTtMOTUy
OmRve2lmKChUfDApPT03MDApe209LV98MDtpZigoWHwwKSE9LTEpe2FhPVk7YWI9WDtUPTcxMTti
cmVhayBMOTMwfWRve2lmKChafDApIT0tMSZfPj4+MDwyMTQ3NDgzNjQ3Jl8+Pj4wPEo+Pj4wKXtn
PWNbMjQ1Ml18MDtPPUstXytnJi1nO2lmKE8+Pj4wPj0yMTQ3NDgzNjQ3KXthYz1fO2JyZWFrfWlm
KChidihPfDApfDApPT0tMSl7YnYobXwwKXwwO1c9WTticmVhayBMOTUyfWVsc2V7YWM9TytffDA7
YnJlYWt9fWVsc2V7YWM9X319d2hpbGUoMCk7aWYoKFp8MCk9PS0xKXtXPVl9ZWxzZXthYT1hYzth
Yj1aO1Q9NzExO2JyZWFrIEw5MzB9fX13aGlsZSgwKTtjWzI1NzFdPWNbMjU3MV18NDthZD1XO1Q9
NzA4fWVsc2V7YWQ9MDtUPTcwOH19d2hpbGUoMCk7ZG97aWYoKFR8MCk9PTcwOCl7aWYoUz4+PjA+
PTIxNDc0ODM2NDcpe2JyZWFrfVc9YnYoU3wwKXwwO1o9YnYoMCl8MDtpZighKChafDApIT0tMSYo
V3wwKSE9LTEmVz4+PjA8Wj4+PjApKXticmVha31hYz1aLVd8MDtaPWFjPj4+MD4obys0MHwwKT4+
PjA7WT1aP1c6LTE7aWYoKFl8MCkhPS0xKXthYT1aP2FjOmFkO2FiPVk7VD03MTF9fX13aGlsZSgw
KTtkb3tpZigoVHwwKT09NzExKXthZD0oY1syNTY4XXwwKSthYXwwO2NbMjU2OF09YWQ7aWYoYWQ+
Pj4wPihjWzI1NjldfDApPj4+MCl7Y1syNTY5XT1hZH1hZD1jWzI0NjZdfDA7TDk3Mjpkb3tpZigo
YWR8MCk9PTApe1M9Y1syNDY0XXwwO2lmKChTfDApPT0wfGFiPj4+MDxTPj4+MCl7Y1syNDY0XT1h
Yn1jWzI1NzJdPWFiO2NbMjU3M109YWE7Y1syNTc1XT0wO2NbMjQ2OV09Y1syNDUwXTtjWzI0Njhd
PS0xO1M9MDtkb3tZPVM8PDE7YWM9OTg4MCsoWTw8Mil8MDtjWzk4ODArKFkrMzw8Mik+PjJdPWFj
O2NbOTg4MCsoWSsyPDwyKT4+Ml09YWM7Uz1TKzF8MDt9d2hpbGUoUz4+PjA8MzIpO1M9YWIrOHww
O2lmKChTJjd8MCk9PTApe2FlPTB9ZWxzZXthZT0tUyY3fVM9YWEtNDAtYWV8MDtjWzI0NjZdPWFi
K2FlO2NbMjQ2M109UztjW2FiKyhhZSs0KT4+Ml09U3wxO2NbYWIrKGFhLTM2KT4+Ml09NDA7Y1sy
NDY3XT1jWzI0NTRdfWVsc2V7Uz0xMDI4ODt3aGlsZSgxKXthZj1jW1M+PjJdfDA7YWc9Uys0fDA7
YWg9Y1thZz4+Ml18MDtpZigoYWJ8MCk9PShhZithaHwwKSl7VD03MjM7YnJlYWt9YWM9Y1tTKzg+
PjJdfDA7aWYoKGFjfDApPT0wKXticmVha31lbHNle1M9YWN9fWRve2lmKChUfDApPT03MjMpe2lm
KChjW1MrMTI+PjJdJjh8MCkhPTApe2JyZWFrfWFjPWFkO2lmKCEoYWM+Pj4wPj1hZj4+PjAmYWM+
Pj4wPGFiPj4+MCkpe2JyZWFrfWNbYWc+PjJdPWFoK2FhO2FjPWNbMjQ2Nl18MDtZPShjWzI0NjNd
fDApK2FhfDA7Wj1hYztXPWFjKzh8MDtpZigoVyY3fDApPT0wKXthaT0wfWVsc2V7YWk9LVcmN31X
PVktYWl8MDtjWzI0NjZdPVorYWk7Y1syNDYzXT1XO2NbWisoYWkrNCk+PjJdPVd8MTtjW1orKFkr
NCk+PjJdPTQwO2NbMjQ2N109Y1syNDU0XTticmVhayBMOTcyfX13aGlsZSgwKTtpZihhYj4+PjA8
KGNbMjQ2NF18MCk+Pj4wKXtjWzI0NjRdPWFifVM9YWIrYWF8MDtZPTEwMjg4O3doaWxlKDEpe2Fq
PVl8MDtpZigoY1thaj4+Ml18MCk9PShTfDApKXtUPTczMzticmVha31aPWNbWSs4Pj4yXXwwO2lm
KChafDApPT0wKXticmVha31lbHNle1k9Wn19ZG97aWYoKFR8MCk9PTczMyl7aWYoKGNbWSsxMj4+
Ml0mOHwwKSE9MCl7YnJlYWt9Y1thaj4+Ml09YWI7Uz1ZKzR8MDtjW1M+PjJdPShjW1M+PjJdfDAp
K2FhO1M9YWIrOHwwO2lmKChTJjd8MCk9PTApe2FrPTB9ZWxzZXthaz0tUyY3fVM9YWIrKGFhKzgp
fDA7aWYoKFMmN3wwKT09MCl7YWw9MH1lbHNle2FsPS1TJjd9Uz1hYisoYWwrYWEpfDA7Wj1TO1c9
YWsrb3wwO2FjPWFiK1d8MDtfPWFjO0s9Uy0oYWIrYWspLW98MDtjW2FiKyhhays0KT4+Ml09b3wz
O2Rve2lmKChafDApPT0oY1syNDY2XXwwKSl7Sj0oY1syNDYzXXwwKStLfDA7Y1syNDYzXT1KO2Nb
MjQ2Nl09XztjW2FiKyhXKzQpPj4yXT1KfDF9ZWxzZXtpZigoWnwwKT09KGNbMjQ2NV18MCkpe0o9
KGNbMjQ2Ml18MCkrS3wwO2NbMjQ2Ml09SjtjWzI0NjVdPV87Y1thYisoVys0KT4+Ml09SnwxO2Nb
YWIrKEorVyk+PjJdPUo7YnJlYWt9Sj1hYSs0fDA7WD1jW2FiKyhKK2FsKT4+Ml18MDtpZigoWCYz
fDApPT0xKXskPVgmLTg7Vj1YPj4+MztMMTAxNzpkb3tpZihYPj4+MDwyNTYpe1U9Y1thYisoKGFs
fDgpK2FhKT4+Ml18MDtRPWNbYWIrKGFhKzEyK2FsKT4+Ml18MDtSPTk4ODArKFY8PDE8PDIpfDA7
ZG97aWYoKFV8MCkhPShSfDApKXtpZihVPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJu
IDB9aWYoKGNbVSsxMj4+Ml18MCk9PShafDApKXticmVha31iRygpO3JldHVybiAwfX13aGlsZSgw
KTtpZigoUXwwKT09KFV8MCkpe2NbMjQ2MF09Y1syNDYwXSZ+KDE8PFYpO2JyZWFrfWRve2lmKChR
fDApPT0oUnwwKSl7YW09USs4fDB9ZWxzZXtpZihRPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7
cmV0dXJuIDB9bT1RKzh8MDtpZigoY1ttPj4yXXwwKT09KFp8MCkpe2FtPW07YnJlYWt9YkcoKTty
ZXR1cm4gMH19d2hpbGUoMCk7Y1tVKzEyPj4yXT1RO2NbYW0+PjJdPVV9ZWxzZXtSPVM7bT1jW2Fi
KygoYWx8MjQpK2FhKT4+Ml18MDtQPWNbYWIrKGFhKzEyK2FsKT4+Ml18MDtkb3tpZigoUHwwKT09
KFJ8MCkpe089YWx8MTY7Zz1hYisoSitPKXwwO0w9Y1tnPj4yXXwwO2lmKChMfDApPT0wKXtlPWFi
KyhPK2FhKXwwO089Y1tlPj4yXXwwO2lmKChPfDApPT0wKXthbj0wO2JyZWFrfWVsc2V7YW89Tzth
cD1lfX1lbHNle2FvPUw7YXA9Z313aGlsZSgxKXtnPWFvKzIwfDA7TD1jW2c+PjJdfDA7aWYoKEx8
MCkhPTApe2FvPUw7YXA9Zztjb250aW51ZX1nPWFvKzE2fDA7TD1jW2c+PjJdfDA7aWYoKEx8MCk9
PTApe2JyZWFrfWVsc2V7YW89TDthcD1nfX1pZihhcD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygp
O3JldHVybiAwfWVsc2V7Y1thcD4+Ml09MDthbj1hbzticmVha319ZWxzZXtnPWNbYWIrKChhbHw4
KSthYSk+PjJdfDA7aWYoZz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfUw9Zysx
MnwwO2lmKChjW0w+PjJdfDApIT0oUnwwKSl7YkcoKTtyZXR1cm4gMH1lPVArOHwwO2lmKChjW2U+
PjJdfDApPT0oUnwwKSl7Y1tMPj4yXT1QO2NbZT4+Ml09Zzthbj1QO2JyZWFrfWVsc2V7YkcoKTty
ZXR1cm4gMH19fXdoaWxlKDApO2lmKChtfDApPT0wKXticmVha31QPWFiKyhhYSsyOCthbCl8MDtV
PTEwMTQ0KyhjW1A+PjJdPDwyKXwwO2Rve2lmKChSfDApPT0oY1tVPj4yXXwwKSl7Y1tVPj4yXT1h
bjtpZigoYW58MCkhPTApe2JyZWFrfWNbMjQ2MV09Y1syNDYxXSZ+KDE8PGNbUD4+Ml0pO2JyZWFr
IEwxMDE3fWVsc2V7aWYobT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfVE9bSsx
NnwwO2lmKChjW1E+PjJdfDApPT0oUnwwKSl7Y1tRPj4yXT1hbn1lbHNle2NbbSsyMD4+Ml09YW59
aWYoKGFufDApPT0wKXticmVhayBMMTAxN319fXdoaWxlKDApO2lmKGFuPj4+MDwoY1syNDY0XXww
KT4+PjApe2JHKCk7cmV0dXJuIDB9Y1thbisyND4+Ml09bTtSPWFsfDE2O1A9Y1thYisoUithYSk+
PjJdfDA7ZG97aWYoKFB8MCkhPTApe2lmKFA+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1
cm4gMH1lbHNle2NbYW4rMTY+PjJdPVA7Y1tQKzI0Pj4yXT1hbjticmVha319fXdoaWxlKDApO1A9
Y1thYisoSitSKT4+Ml18MDtpZigoUHwwKT09MCl7YnJlYWt9aWYoUD4+PjA8KGNbMjQ2NF18MCk+
Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1thbisyMD4+Ml09UDtjW1ArMjQ+PjJdPWFuO2JyZWFr
fX19d2hpbGUoMCk7YXE9YWIrKCgkfGFsKSthYSl8MDthcj0kK0t8MH1lbHNle2FxPVo7YXI9S31K
PWFxKzR8MDtjW0o+PjJdPWNbSj4+Ml0mLTI7Y1thYisoVys0KT4+Ml09YXJ8MTtjW2FiKyhhcitX
KT4+Ml09YXI7Sj1hcj4+PjM7aWYoYXI+Pj4wPDI1Nil7Vj1KPDwxO1g9OTg4MCsoVjw8Mil8MDtQ
PWNbMjQ2MF18MDttPTE8PEo7ZG97aWYoKFAmbXwwKT09MCl7Y1syNDYwXT1QfG07YXM9WDthdD05
ODgwKyhWKzI8PDIpfDB9ZWxzZXtKPTk4ODArKFYrMjw8Mil8MDtVPWNbSj4+Ml18MDtpZihVPj4+
MD49KGNbMjQ2NF18MCk+Pj4wKXthcz1VO2F0PUo7YnJlYWt9YkcoKTtyZXR1cm4gMH19d2hpbGUo
MCk7Y1thdD4+Ml09XztjW2FzKzEyPj4yXT1fO2NbYWIrKFcrOCk+PjJdPWFzO2NbYWIrKFcrMTIp
Pj4yXT1YO2JyZWFrfVY9YWM7bT1hcj4+Pjg7ZG97aWYoKG18MCk9PTApe2F1PTB9ZWxzZXtpZihh
cj4+PjA+MTY3NzcyMTUpe2F1PTMxO2JyZWFrfVA9KG0rMTA0ODMyMHwwKT4+PjE2Jjg7JD1tPDxQ
O0o9KCQrNTIwMTkyfDApPj4+MTYmNDtVPSQ8PEo7JD0oVSsyNDU3NjB8MCk+Pj4xNiYyO1E9MTQt
KEp8UHwkKSsoVTw8JD4+PjE1KXwwO2F1PWFyPj4+KChRKzd8MCk+Pj4wKSYxfFE8PDF9fXdoaWxl
KDApO209MTAxNDQrKGF1PDwyKXwwO2NbYWIrKFcrMjgpPj4yXT1hdTtjW2FiKyhXKzIwKT4+Ml09
MDtjW2FiKyhXKzE2KT4+Ml09MDtYPWNbMjQ2MV18MDtRPTE8PGF1O2lmKChYJlF8MCk9PTApe2Nb
MjQ2MV09WHxRO2NbbT4+Ml09VjtjW2FiKyhXKzI0KT4+Ml09bTtjW2FiKyhXKzEyKT4+Ml09Vjtj
W2FiKyhXKzgpPj4yXT1WO2JyZWFrfWlmKChhdXwwKT09MzEpe2F2PTB9ZWxzZXthdj0yNS0oYXU+
Pj4xKXwwfVE9YXI8PGF2O1g9Y1ttPj4yXXwwO3doaWxlKDEpe2lmKChjW1grND4+Ml0mLTh8MCk9
PShhcnwwKSl7YnJlYWt9YXc9WCsxNisoUT4+PjMxPDwyKXwwO209Y1thdz4+Ml18MDtpZigobXww
KT09MCl7VD04MDY7YnJlYWt9ZWxzZXtRPVE8PDE7WD1tfX1pZigoVHwwKT09ODA2KXtpZihhdz4+
PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1thdz4+Ml09VjtjW2FiKyhX
KzI0KT4+Ml09WDtjW2FiKyhXKzEyKT4+Ml09VjtjW2FiKyhXKzgpPj4yXT1WO2JyZWFrfX1RPVgr
OHwwO209Y1tRPj4yXXwwOyQ9Y1syNDY0XXwwO2lmKFg+Pj4wPCQ+Pj4wKXtiRygpO3JldHVybiAw
fWlmKG0+Pj4wPCQ+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1ttKzEyPj4yXT1WO2NbUT4+Ml09
VjtjW2FiKyhXKzgpPj4yXT1tO2NbYWIrKFcrMTIpPj4yXT1YO2NbYWIrKFcrMjQpPj4yXT0wO2Jy
ZWFrfX19d2hpbGUoMCk7bj1hYisoYWt8OCl8MDtyZXR1cm4gbnwwfX13aGlsZSgwKTtZPWFkO1c9
MTAyODg7d2hpbGUoMSl7YXg9Y1tXPj4yXXwwO2lmKGF4Pj4+MDw9WT4+PjApe2F5PWNbVys0Pj4y
XXwwO2F6PWF4K2F5fDA7aWYoYXo+Pj4wPlk+Pj4wKXticmVha319Vz1jW1crOD4+Ml18MH1XPWF4
KyhheS0zOSl8MDtpZigoVyY3fDApPT0wKXthQT0wfWVsc2V7YUE9LVcmN31XPWF4KyhheS00Nyth
QSl8MDthYz1XPj4+MDwoYWQrMTZ8MCk+Pj4wP1k6VztXPWFjKzh8MDtfPWFiKzh8MDtpZigoXyY3
fDApPT0wKXthQj0wfWVsc2V7YUI9LV8mN31fPWFhLTQwLWFCfDA7Y1syNDY2XT1hYithQjtjWzI0
NjNdPV87Y1thYisoYUIrNCk+PjJdPV98MTtjW2FiKyhhYS0zNik+PjJdPTQwO2NbMjQ2N109Y1sy
NDU0XTtjW2FjKzQ+PjJdPTI3O2NbVz4+Ml09Y1syNTcyXTtjW1crND4+Ml09Y1sxMDI5Mj4+Ml07
Y1tXKzg+PjJdPWNbMTAyOTY+PjJdO2NbVysxMj4+Ml09Y1sxMDMwMD4+Ml07Y1syNTcyXT1hYjtj
WzI1NzNdPWFhO2NbMjU3NV09MDtjWzI1NzRdPVc7Vz1hYysyOHwwO2NbVz4+Ml09NztpZigoYWMr
MzJ8MCk+Pj4wPGF6Pj4+MCl7Xz1XO3doaWxlKDEpe1c9Xys0fDA7Y1tXPj4yXT03O2lmKChfKzh8
MCk+Pj4wPGF6Pj4+MCl7Xz1XfWVsc2V7YnJlYWt9fX1pZigoYWN8MCk9PShZfDApKXticmVha31f
PWFjLWFkfDA7Vz1ZKyhfKzQpfDA7Y1tXPj4yXT1jW1c+PjJdJi0yO2NbYWQrND4+Ml09X3wxO2Nb
WStfPj4yXT1fO1c9Xz4+PjM7aWYoXz4+PjA8MjU2KXtLPVc8PDE7Wj05ODgwKyhLPDwyKXwwO1M9
Y1syNDYwXXwwO209MTw8Vztkb3tpZigoUyZtfDApPT0wKXtjWzI0NjBdPVN8bTthQz1aO2FEPTk4
ODArKEsrMjw8Mil8MH1lbHNle1c9OTg4MCsoSysyPDwyKXwwO1E9Y1tXPj4yXXwwO2lmKFE+Pj4w
Pj0oY1syNDY0XXwwKT4+PjApe2FDPVE7YUQ9VzticmVha31iRygpO3JldHVybiAwfX13aGlsZSgw
KTtjW2FEPj4yXT1hZDtjW2FDKzEyPj4yXT1hZDtjW2FkKzg+PjJdPWFDO2NbYWQrMTI+PjJdPVo7
YnJlYWt9Sz1hZDttPV8+Pj44O2Rve2lmKChtfDApPT0wKXthRT0wfWVsc2V7aWYoXz4+PjA+MTY3
NzcyMTUpe2FFPTMxO2JyZWFrfVM9KG0rMTA0ODMyMHwwKT4+PjE2Jjg7WT1tPDxTO2FjPShZKzUy
MDE5MnwwKT4+PjE2JjQ7Vz1ZPDxhYztZPShXKzI0NTc2MHwwKT4+PjE2JjI7UT0xNC0oYWN8U3xZ
KSsoVzw8WT4+PjE1KXwwO2FFPV8+Pj4oKFErN3wwKT4+PjApJjF8UTw8MX19d2hpbGUoMCk7bT0x
MDE0NCsoYUU8PDIpfDA7Y1thZCsyOD4+Ml09YUU7Y1thZCsyMD4+Ml09MDtjW2FkKzE2Pj4yXT0w
O1o9Y1syNDYxXXwwO1E9MTw8YUU7aWYoKFomUXwwKT09MCl7Y1syNDYxXT1afFE7Y1ttPj4yXT1L
O2NbYWQrMjQ+PjJdPW07Y1thZCsxMj4+Ml09YWQ7Y1thZCs4Pj4yXT1hZDticmVha31pZigoYUV8
MCk9PTMxKXthRj0wfWVsc2V7YUY9MjUtKGFFPj4+MSl8MH1RPV88PGFGO1o9Y1ttPj4yXXwwO3do
aWxlKDEpe2lmKChjW1orND4+Ml0mLTh8MCk9PShffDApKXticmVha31hRz1aKzE2KyhRPj4+MzE8
PDIpfDA7bT1jW2FHPj4yXXwwO2lmKChtfDApPT0wKXtUPTg0MTticmVha31lbHNle1E9UTw8MTta
PW19fWlmKChUfDApPT04NDEpe2lmKGFHPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJu
IDB9ZWxzZXtjW2FHPj4yXT1LO2NbYWQrMjQ+PjJdPVo7Y1thZCsxMj4+Ml09YWQ7Y1thZCs4Pj4y
XT1hZDticmVha319UT1aKzh8MDtfPWNbUT4+Ml18MDttPWNbMjQ2NF18MDtpZihaPj4+MDxtPj4+
MCl7YkcoKTtyZXR1cm4gMH1pZihfPj4+MDxtPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbXysx
Mj4+Ml09SztjW1E+PjJdPUs7Y1thZCs4Pj4yXT1fO2NbYWQrMTI+PjJdPVo7Y1thZCsyND4+Ml09
MDticmVha319fXdoaWxlKDApO2FkPWNbMjQ2M118MDtpZihhZD4+PjA8PW8+Pj4wKXticmVha31f
PWFkLW98MDtjWzI0NjNdPV87YWQ9Y1syNDY2XXwwO1E9YWQ7Y1syNDY2XT1RK287Y1tRKyhvKzQp
Pj4yXT1ffDE7Y1thZCs0Pj4yXT1vfDM7bj1hZCs4fDA7cmV0dXJuIG58MH19d2hpbGUoMCk7Y1so
YncoKXwwKT4+Ml09MTI7bj0wO3JldHVybiBufDB9ZnVuY3Rpb24ga0soYSl7YT1hfDA7dmFyIGI9
MCxkPTAsZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAs
Rj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wO2lmKChhfDApPT0wKXtyZXR1
cm59Yj1hLTh8MDtkPWI7ZT1jWzI0NjRdfDA7aWYoYj4+PjA8ZT4+PjApe2JHKCl9Zj1jW2EtND4+
Ml18MDtnPWYmMztpZigoZ3wwKT09MSl7YkcoKX1oPWYmLTg7aT1hKyhoLTgpfDA7aj1pO0wxMTg5
OmRve2lmKChmJjF8MCk9PTApe2s9Y1tiPj4yXXwwO2lmKChnfDApPT0wKXtyZXR1cm59bD0tOC1r
fDA7bT1hK2x8MDtuPW07bz1rK2h8MDtpZihtPj4+MDxlPj4+MCl7YkcoKX1pZigobnwwKT09KGNb
MjQ2NV18MCkpe3A9YSsoaC00KXwwO2lmKChjW3A+PjJdJjN8MCkhPTMpe3E9bjtyPW87YnJlYWt9
Y1syNDYyXT1vO2NbcD4+Ml09Y1twPj4yXSYtMjtjW2ErKGwrNCk+PjJdPW98MTtjW2k+PjJdPW87
cmV0dXJufXA9az4+PjM7aWYoaz4+PjA8MjU2KXtrPWNbYSsobCs4KT4+Ml18MDtzPWNbYSsobCsx
Mik+PjJdfDA7dD05ODgwKyhwPDwxPDwyKXwwO2Rve2lmKChrfDApIT0odHwwKSl7aWYoaz4+PjA8
ZT4+PjApe2JHKCl9aWYoKGNbaysxMj4+Ml18MCk9PShufDApKXticmVha31iRygpfX13aGlsZSgw
KTtpZigoc3wwKT09KGt8MCkpe2NbMjQ2MF09Y1syNDYwXSZ+KDE8PHApO3E9bjtyPW87YnJlYWt9
ZG97aWYoKHN8MCk9PSh0fDApKXt1PXMrOHwwfWVsc2V7aWYocz4+PjA8ZT4+PjApe2JHKCl9dj1z
Kzh8MDtpZigoY1t2Pj4yXXwwKT09KG58MCkpe3U9djticmVha31iRygpfX13aGlsZSgwKTtjW2sr
MTI+PjJdPXM7Y1t1Pj4yXT1rO3E9bjtyPW87YnJlYWt9dD1tO3A9Y1thKyhsKzI0KT4+Ml18MDt2
PWNbYSsobCsxMik+PjJdfDA7ZG97aWYoKHZ8MCk9PSh0fDApKXt3PWErKGwrMjApfDA7eD1jW3c+
PjJdfDA7aWYoKHh8MCk9PTApe3k9YSsobCsxNil8MDt6PWNbeT4+Ml18MDtpZigoenwwKT09MCl7
QT0wO2JyZWFrfWVsc2V7Qj16O0M9eX19ZWxzZXtCPXg7Qz13fXdoaWxlKDEpe3c9QisyMHwwO3g9
Y1t3Pj4yXXwwO2lmKCh4fDApIT0wKXtCPXg7Qz13O2NvbnRpbnVlfXc9QisxNnwwO3g9Y1t3Pj4y
XXwwO2lmKCh4fDApPT0wKXticmVha31lbHNle0I9eDtDPXd9fWlmKEM+Pj4wPGU+Pj4wKXtiRygp
fWVsc2V7Y1tDPj4yXT0wO0E9QjticmVha319ZWxzZXt3PWNbYSsobCs4KT4+Ml18MDtpZih3Pj4+
MDxlPj4+MCl7YkcoKX14PXcrMTJ8MDtpZigoY1t4Pj4yXXwwKSE9KHR8MCkpe2JHKCl9eT12Kzh8
MDtpZigoY1t5Pj4yXXwwKT09KHR8MCkpe2NbeD4+Ml09djtjW3k+PjJdPXc7QT12O2JyZWFrfWVs
c2V7YkcoKX19fXdoaWxlKDApO2lmKChwfDApPT0wKXtxPW47cj1vO2JyZWFrfXY9YSsobCsyOCl8
MDttPTEwMTQ0KyhjW3Y+PjJdPDwyKXwwO2Rve2lmKCh0fDApPT0oY1ttPj4yXXwwKSl7Y1ttPj4y
XT1BO2lmKChBfDApIT0wKXticmVha31jWzI0NjFdPWNbMjQ2MV0mfigxPDxjW3Y+PjJdKTtxPW47
cj1vO2JyZWFrIEwxMTg5fWVsc2V7aWYocD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWs9cCsx
NnwwO2lmKChjW2s+PjJdfDApPT0odHwwKSl7Y1trPj4yXT1BfWVsc2V7Y1twKzIwPj4yXT1BfWlm
KChBfDApPT0wKXtxPW47cj1vO2JyZWFrIEwxMTg5fX19d2hpbGUoMCk7aWYoQT4+PjA8KGNbMjQ2
NF18MCk+Pj4wKXtiRygpfWNbQSsyND4+Ml09cDt0PWNbYSsobCsxNik+PjJdfDA7ZG97aWYoKHR8
MCkhPTApe2lmKHQ+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1lbHNle2NbQSsxNj4+Ml09dDtj
W3QrMjQ+PjJdPUE7YnJlYWt9fX13aGlsZSgwKTt0PWNbYSsobCsyMCk+PjJdfDA7aWYoKHR8MCk9
PTApe3E9bjtyPW87YnJlYWt9aWYodD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tB
KzIwPj4yXT10O2NbdCsyND4+Ml09QTtxPW47cj1vO2JyZWFrfX1lbHNle3E9ZDtyPWh9fXdoaWxl
KDApO2Q9cTtpZihkPj4+MD49aT4+PjApe2JHKCl9QT1hKyhoLTQpfDA7ZT1jW0E+PjJdfDA7aWYo
KGUmMXwwKT09MCl7YkcoKX1kb3tpZigoZSYyfDApPT0wKXtpZigoanwwKT09KGNbMjQ2Nl18MCkp
e0I9KGNbMjQ2M118MCkrcnwwO2NbMjQ2M109QjtjWzI0NjZdPXE7Y1txKzQ+PjJdPUJ8MTtpZigo
cXwwKSE9KGNbMjQ2NV18MCkpe3JldHVybn1jWzI0NjVdPTA7Y1syNDYyXT0wO3JldHVybn1pZigo
anwwKT09KGNbMjQ2NV18MCkpe0I9KGNbMjQ2Ml18MCkrcnwwO2NbMjQ2Ml09QjtjWzI0NjVdPXE7
Y1txKzQ+PjJdPUJ8MTtjW2QrQj4+Ml09QjtyZXR1cm59Qj0oZSYtOCkrcnwwO0M9ZT4+PjM7TDEy
OTI6ZG97aWYoZT4+PjA8MjU2KXt1PWNbYStoPj4yXXwwO2c9Y1thKyhofDQpPj4yXXwwO2I9OTg4
MCsoQzw8MTw8Mil8MDtkb3tpZigodXwwKSE9KGJ8MCkpe2lmKHU+Pj4wPChjWzI0NjRdfDApPj4+
MCl7YkcoKX1pZigoY1t1KzEyPj4yXXwwKT09KGp8MCkpe2JyZWFrfWJHKCl9fXdoaWxlKDApO2lm
KChnfDApPT0odXwwKSl7Y1syNDYwXT1jWzI0NjBdJn4oMTw8Qyk7YnJlYWt9ZG97aWYoKGd8MCk9
PShifDApKXtEPWcrOHwwfWVsc2V7aWYoZz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWY9Zys4
fDA7aWYoKGNbZj4+Ml18MCk9PShqfDApKXtEPWY7YnJlYWt9YkcoKX19d2hpbGUoMCk7Y1t1KzEy
Pj4yXT1nO2NbRD4+Ml09dX1lbHNle2I9aTtmPWNbYSsoaCsxNik+PjJdfDA7dD1jW2ErKGh8NCk+
PjJdfDA7ZG97aWYoKHR8MCk9PShifDApKXtwPWErKGgrMTIpfDA7dj1jW3A+PjJdfDA7aWYoKHZ8
MCk9PTApe209YSsoaCs4KXwwO2s9Y1ttPj4yXXwwO2lmKChrfDApPT0wKXtFPTA7YnJlYWt9ZWxz
ZXtGPWs7Rz1tfX1lbHNle0Y9djtHPXB9d2hpbGUoMSl7cD1GKzIwfDA7dj1jW3A+PjJdfDA7aWYo
KHZ8MCkhPTApe0Y9djtHPXA7Y29udGludWV9cD1GKzE2fDA7dj1jW3A+PjJdfDA7aWYoKHZ8MCk9
PTApe2JyZWFrfWVsc2V7Rj12O0c9cH19aWYoRz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVs
c2V7Y1tHPj4yXT0wO0U9RjticmVha319ZWxzZXtwPWNbYStoPj4yXXwwO2lmKHA+Pj4wPChjWzI0
NjRdfDApPj4+MCl7YkcoKX12PXArMTJ8MDtpZigoY1t2Pj4yXXwwKSE9KGJ8MCkpe2JHKCl9bT10
Kzh8MDtpZigoY1ttPj4yXXwwKT09KGJ8MCkpe2Nbdj4+Ml09dDtjW20+PjJdPXA7RT10O2JyZWFr
fWVsc2V7YkcoKX19fXdoaWxlKDApO2lmKChmfDApPT0wKXticmVha310PWErKGgrMjApfDA7dT0x
MDE0NCsoY1t0Pj4yXTw8Mil8MDtkb3tpZigoYnwwKT09KGNbdT4+Ml18MCkpe2NbdT4+Ml09RTtp
ZigoRXwwKSE9MCl7YnJlYWt9Y1syNDYxXT1jWzI0NjFdJn4oMTw8Y1t0Pj4yXSk7YnJlYWsgTDEy
OTJ9ZWxzZXtpZihmPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9Zz1mKzE2fDA7aWYoKGNbZz4+
Ml18MCk9PShifDApKXtjW2c+PjJdPUV9ZWxzZXtjW2YrMjA+PjJdPUV9aWYoKEV8MCk9PTApe2Jy
ZWFrIEwxMjkyfX19d2hpbGUoMCk7aWYoRT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWNbRSsy
ND4+Ml09ZjtiPWNbYSsoaCs4KT4+Ml18MDtkb3tpZigoYnwwKSE9MCl7aWYoYj4+PjA8KGNbMjQ2
NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tFKzE2Pj4yXT1iO2NbYisyND4+Ml09RTticmVha319fXdo
aWxlKDApO2I9Y1thKyhoKzEyKT4+Ml18MDtpZigoYnwwKT09MCl7YnJlYWt9aWYoYj4+PjA8KGNb
MjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tFKzIwPj4yXT1iO2NbYisyND4+Ml09RTticmVha319
fXdoaWxlKDApO2NbcSs0Pj4yXT1CfDE7Y1tkK0I+PjJdPUI7aWYoKHF8MCkhPShjWzI0NjVdfDAp
KXtIPUI7YnJlYWt9Y1syNDYyXT1CO3JldHVybn1lbHNle2NbQT4+Ml09ZSYtMjtjW3ErND4+Ml09
cnwxO2NbZCtyPj4yXT1yO0g9cn19d2hpbGUoMCk7cj1IPj4+MztpZihIPj4+MDwyNTYpe2Q9cjw8
MTtlPTk4ODArKGQ8PDIpfDA7QT1jWzI0NjBdfDA7RT0xPDxyO2Rve2lmKChBJkV8MCk9PTApe2Nb
MjQ2MF09QXxFO0k9ZTtKPTk4ODArKGQrMjw8Mil8MH1lbHNle3I9OTg4MCsoZCsyPDwyKXwwO2g9
Y1tyPj4yXXwwO2lmKGg+Pj4wPj0oY1syNDY0XXwwKT4+PjApe0k9aDtKPXI7YnJlYWt9YkcoKX19
d2hpbGUoMCk7Y1tKPj4yXT1xO2NbSSsxMj4+Ml09cTtjW3ErOD4+Ml09STtjW3ErMTI+PjJdPWU7
cmV0dXJufWU9cTtJPUg+Pj44O2Rve2lmKChJfDApPT0wKXtLPTB9ZWxzZXtpZihIPj4+MD4xNjc3
NzIxNSl7Sz0zMTticmVha31KPShJKzEwNDgzMjB8MCk+Pj4xNiY4O2Q9STw8SjtFPShkKzUyMDE5
MnwwKT4+PjE2JjQ7QT1kPDxFO2Q9KEErMjQ1NzYwfDApPj4+MTYmMjtyPTE0LShFfEp8ZCkrKEE8
PGQ+Pj4xNSl8MDtLPUg+Pj4oKHIrN3wwKT4+PjApJjF8cjw8MX19d2hpbGUoMCk7ST0xMDE0NCso
Szw8Mil8MDtjW3ErMjg+PjJdPUs7Y1txKzIwPj4yXT0wO2NbcSsxNj4+Ml09MDtyPWNbMjQ2MV18
MDtkPTE8PEs7ZG97aWYoKHImZHwwKT09MCl7Y1syNDYxXT1yfGQ7Y1tJPj4yXT1lO2NbcSsyND4+
Ml09STtjW3ErMTI+PjJdPXE7Y1txKzg+PjJdPXF9ZWxzZXtpZigoS3wwKT09MzEpe0w9MH1lbHNl
e0w9MjUtKEs+Pj4xKXwwfUE9SDw8TDtKPWNbST4+Ml18MDt3aGlsZSgxKXtpZigoY1tKKzQ+PjJd
Ji04fDApPT0oSHwwKSl7YnJlYWt9TT1KKzE2KyhBPj4+MzE8PDIpfDA7RT1jW00+PjJdfDA7aWYo
KEV8MCk9PTApe049MTAxODticmVha31lbHNle0E9QTw8MTtKPUV9fWlmKChOfDApPT0xMDE4KXtp
ZihNPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9ZWxzZXtjW00+PjJdPWU7Y1txKzI0Pj4yXT1K
O2NbcSsxMj4+Ml09cTtjW3ErOD4+Ml09cTticmVha319QT1KKzh8MDtCPWNbQT4+Ml18MDtFPWNb
MjQ2NF18MDtpZihKPj4+MDxFPj4+MCl7YkcoKX1pZihCPj4+MDxFPj4+MCl7YkcoKX1lbHNle2Nb
QisxMj4+Ml09ZTtjW0E+PjJdPWU7Y1txKzg+PjJdPUI7Y1txKzEyPj4yXT1KO2NbcSsyND4+Ml09
MDticmVha319fXdoaWxlKDApO3E9KGNbMjQ2OF18MCktMXwwO2NbMjQ2OF09cTtpZigocXwwKT09
MCl7Tz0xMDI5Nn1lbHNle3JldHVybn13aGlsZSgxKXtxPWNbTz4+Ml18MDtpZigocXwwKT09MCl7
YnJlYWt9ZWxzZXtPPXErOHwwfX1jWzI0NjhdPS0xO3JldHVybn1mdW5jdGlvbiBrTChhLGIpe2E9
YXwwO2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTA7aWYoKGF8MCk9PTApe2Q9a0ooYil8MDtyZXR1
cm4gZHwwfWlmKGI+Pj4wPjQyOTQ5NjcyMzEpe2NbKGJ3KCl8MCk+PjJdPTEyO2Q9MDtyZXR1cm4g
ZHwwfWlmKGI+Pj4wPDExKXtlPTE2fWVsc2V7ZT1iKzExJi04fWY9a00oYS04fDAsZSl8MDtpZigo
ZnwwKSE9MCl7ZD1mKzh8MDtyZXR1cm4gZHwwfWY9a0ooYil8MDtpZigoZnwwKT09MCl7ZD0wO3Jl
dHVybiBkfDB9ZT1jW2EtND4+Ml18MDtnPShlJi04KS0oKGUmM3wwKT09MD84OjQpfDA7ZT1nPj4+
MDxiPj4+MD9nOmI7a1koZnwwLGF8MCxlKXwwO2tLKGEpO2Q9ZjtyZXR1cm4gZHwwfWZ1bmN0aW9u
IGtNKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAs
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6
PTAsQT0wO2Q9YSs0fDA7ZT1jW2Q+PjJdfDA7Zj1lJi04O2c9YTtoPWcrZnwwO2k9aDtqPWNbMjQ2
NF18MDtpZihnPj4+MDxqPj4+MCl7YkcoKTtyZXR1cm4gMH1rPWUmMztpZighKChrfDApIT0xJmc+
Pj4wPGg+Pj4wKSl7YkcoKTtyZXR1cm4gMH1sPWcrKGZ8NCl8MDttPWNbbD4+Ml18MDtpZigobSYx
fDApPT0wKXtiRygpO3JldHVybiAwfWlmKChrfDApPT0wKXtpZihiPj4+MDwyNTYpe249MDtyZXR1
cm4gbnwwfWRve2lmKGY+Pj4wPj0oYis0fDApPj4+MCl7aWYoKGYtYnwwKT4+PjA+Y1syNDUyXTw8
MT4+PjApe2JyZWFrfWVsc2V7bj1hfXJldHVybiBufDB9fXdoaWxlKDApO249MDtyZXR1cm4gbnww
fWlmKGY+Pj4wPj1iPj4+MCl7az1mLWJ8MDtpZihrPj4+MDw9MTUpe249YTtyZXR1cm4gbnwwfWNb
ZD4+Ml09ZSYxfGJ8MjtjW2crKGIrNCk+PjJdPWt8MztjW2w+PjJdPWNbbD4+Ml18MTtrTihnK2J8
MCxrKTtuPWE7cmV0dXJuIG58MH1pZigoaXwwKT09KGNbMjQ2Nl18MCkpe2s9KGNbMjQ2M118MCkr
ZnwwO2lmKGs+Pj4wPD1iPj4+MCl7bj0wO3JldHVybiBufDB9bD1rLWJ8MDtjW2Q+PjJdPWUmMXxi
fDI7Y1tnKyhiKzQpPj4yXT1sfDE7Y1syNDY2XT1nK2I7Y1syNDYzXT1sO249YTtyZXR1cm4gbnww
fWlmKChpfDApPT0oY1syNDY1XXwwKSl7bD0oY1syNDYyXXwwKStmfDA7aWYobD4+PjA8Yj4+PjAp
e249MDtyZXR1cm4gbnwwfWs9bC1ifDA7aWYoaz4+PjA+MTUpe2NbZD4+Ml09ZSYxfGJ8MjtjW2cr
KGIrNCk+PjJdPWt8MTtjW2crbD4+Ml09aztvPWcrKGwrNCl8MDtjW28+PjJdPWNbbz4+Ml0mLTI7
cD1nK2J8MDtxPWt9ZWxzZXtjW2Q+PjJdPWUmMXxsfDI7ZT1nKyhsKzQpfDA7Y1tlPj4yXT1jW2U+
PjJdfDE7cD0wO3E9MH1jWzI0NjJdPXE7Y1syNDY1XT1wO249YTtyZXR1cm4gbnwwfWlmKChtJjJ8
MCkhPTApe249MDtyZXR1cm4gbnwwfXA9KG0mLTgpK2Z8MDtpZihwPj4+MDxiPj4+MCl7bj0wO3Jl
dHVybiBufDB9cT1wLWJ8MDtlPW0+Pj4zO0wxNDc4OmRve2lmKG0+Pj4wPDI1Nil7bD1jW2crKGYr
OCk+PjJdfDA7az1jW2crKGYrMTIpPj4yXXwwO289OTg4MCsoZTw8MTw8Mil8MDtkb3tpZigobHww
KSE9KG98MCkpe2lmKGw+Pj4wPGo+Pj4wKXtiRygpO3JldHVybiAwfWlmKChjW2wrMTI+PjJdfDAp
PT0oaXwwKSl7YnJlYWt9YkcoKTtyZXR1cm4gMH19d2hpbGUoMCk7aWYoKGt8MCk9PShsfDApKXtj
WzI0NjBdPWNbMjQ2MF0mfigxPDxlKTticmVha31kb3tpZigoa3wwKT09KG98MCkpe3I9ays4fDB9
ZWxzZXtpZihrPj4+MDxqPj4+MCl7YkcoKTtyZXR1cm4gMH1zPWsrOHwwO2lmKChjW3M+PjJdfDAp
PT0oaXwwKSl7cj1zO2JyZWFrfWJHKCk7cmV0dXJuIDB9fXdoaWxlKDApO2NbbCsxMj4+Ml09aztj
W3I+PjJdPWx9ZWxzZXtvPWg7cz1jW2crKGYrMjQpPj4yXXwwO3Q9Y1tnKyhmKzEyKT4+Ml18MDtk
b3tpZigodHwwKT09KG98MCkpe3U9ZysoZisyMCl8MDt2PWNbdT4+Ml18MDtpZigodnwwKT09MCl7
dz1nKyhmKzE2KXwwO3g9Y1t3Pj4yXXwwO2lmKCh4fDApPT0wKXt5PTA7YnJlYWt9ZWxzZXt6PXg7
QT13fX1lbHNle3o9djtBPXV9d2hpbGUoMSl7dT16KzIwfDA7dj1jW3U+PjJdfDA7aWYoKHZ8MCkh
PTApe3o9djtBPXU7Y29udGludWV9dT16KzE2fDA7dj1jW3U+PjJdfDA7aWYoKHZ8MCk9PTApe2Jy
ZWFrfWVsc2V7ej12O0E9dX19aWYoQT4+PjA8aj4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW0E+
PjJdPTA7eT16O2JyZWFrfX1lbHNle3U9Y1tnKyhmKzgpPj4yXXwwO2lmKHU+Pj4wPGo+Pj4wKXti
RygpO3JldHVybiAwfXY9dSsxMnwwO2lmKChjW3Y+PjJdfDApIT0ob3wwKSl7YkcoKTtyZXR1cm4g
MH13PXQrOHwwO2lmKChjW3c+PjJdfDApPT0ob3wwKSl7Y1t2Pj4yXT10O2Nbdz4+Ml09dTt5PXQ7
YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUoMCk7aWYoKHN8MCk9PTApe2JyZWFrfXQ9
ZysoZisyOCl8MDtsPTEwMTQ0KyhjW3Q+PjJdPDwyKXwwO2Rve2lmKChvfDApPT0oY1tsPj4yXXww
KSl7Y1tsPj4yXT15O2lmKCh5fDApIT0wKXticmVha31jWzI0NjFdPWNbMjQ2MV0mfigxPDxjW3Q+
PjJdKTticmVhayBMMTQ3OH1lbHNle2lmKHM+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1
cm4gMH1rPXMrMTZ8MDtpZigoY1trPj4yXXwwKT09KG98MCkpe2Nbaz4+Ml09eX1lbHNle2Nbcysy
MD4+Ml09eX1pZigoeXwwKT09MCl7YnJlYWsgTDE0Nzh9fX13aGlsZSgwKTtpZih5Pj4+MDwoY1sy
NDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9Y1t5KzI0Pj4yXT1zO289Y1tnKyhmKzE2KT4+Ml18
MDtkb3tpZigob3wwKSE9MCl7aWYobz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAw
fWVsc2V7Y1t5KzE2Pj4yXT1vO2NbbysyND4+Ml09eTticmVha319fXdoaWxlKDApO289Y1tnKyhm
KzIwKT4+Ml18MDtpZigob3wwKT09MCl7YnJlYWt9aWYobz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXti
RygpO3JldHVybiAwfWVsc2V7Y1t5KzIwPj4yXT1vO2NbbysyND4+Ml09eTticmVha319fXdoaWxl
KDApO2lmKHE+Pj4wPDE2KXtjW2Q+PjJdPXB8Y1tkPj4yXSYxfDI7eT1nKyhwfDQpfDA7Y1t5Pj4y
XT1jW3k+PjJdfDE7bj1hO3JldHVybiBufDB9ZWxzZXtjW2Q+PjJdPWNbZD4+Ml0mMXxifDI7Y1tn
KyhiKzQpPj4yXT1xfDM7ZD1nKyhwfDQpfDA7Y1tkPj4yXT1jW2Q+PjJdfDE7a04oZytifDAscSk7
bj1hO3JldHVybiBufDB9cmV0dXJuIDB9ZnVuY3Rpb24ga04oYSxiKXthPWF8MDtiPWJ8MDt2YXIg
ZD0wLGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxy
PTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9
MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MDtkPWE7ZT1kK2J8MDtmPWU7Zz1jW2ErND4+Ml18MDtM
MTU1NDpkb3tpZigoZyYxfDApPT0wKXtoPWNbYT4+Ml18MDtpZigoZyYzfDApPT0wKXtyZXR1cm59
aT1kKygtaHwwKXwwO2o9aTtrPWgrYnwwO2w9Y1syNDY0XXwwO2lmKGk+Pj4wPGw+Pj4wKXtiRygp
fWlmKChqfDApPT0oY1syNDY1XXwwKSl7bT1kKyhiKzQpfDA7aWYoKGNbbT4+Ml0mM3wwKSE9Myl7
bj1qO289azticmVha31jWzI0NjJdPWs7Y1ttPj4yXT1jW20+PjJdJi0yO2NbZCsoNC1oKT4+Ml09
a3wxO2NbZT4+Ml09aztyZXR1cm59bT1oPj4+MztpZihoPj4+MDwyNTYpe3A9Y1tkKyg4LWgpPj4y
XXwwO3E9Y1tkKygxMi1oKT4+Ml18MDtyPTk4ODArKG08PDE8PDIpfDA7ZG97aWYoKHB8MCkhPShy
fDApKXtpZihwPj4+MDxsPj4+MCl7YkcoKX1pZigoY1twKzEyPj4yXXwwKT09KGp8MCkpe2JyZWFr
fWJHKCl9fXdoaWxlKDApO2lmKChxfDApPT0ocHwwKSl7Y1syNDYwXT1jWzI0NjBdJn4oMTw8bSk7
bj1qO289azticmVha31kb3tpZigocXwwKT09KHJ8MCkpe3M9cSs4fDB9ZWxzZXtpZihxPj4+MDxs
Pj4+MCl7YkcoKX10PXErOHwwO2lmKChjW3Q+PjJdfDApPT0oanwwKSl7cz10O2JyZWFrfWJHKCl9
fXdoaWxlKDApO2NbcCsxMj4+Ml09cTtjW3M+PjJdPXA7bj1qO289azticmVha31yPWk7bT1jW2Qr
KDI0LWgpPj4yXXwwO3Q9Y1tkKygxMi1oKT4+Ml18MDtkb3tpZigodHwwKT09KHJ8MCkpe3U9MTYt
aHwwO3Y9ZCsodSs0KXwwO3c9Y1t2Pj4yXXwwO2lmKCh3fDApPT0wKXt4PWQrdXwwO3U9Y1t4Pj4y
XXwwO2lmKCh1fDApPT0wKXt5PTA7YnJlYWt9ZWxzZXt6PXU7QT14fX1lbHNle3o9dztBPXZ9d2hp
bGUoMSl7dj16KzIwfDA7dz1jW3Y+PjJdfDA7aWYoKHd8MCkhPTApe3o9dztBPXY7Y29udGludWV9
dj16KzE2fDA7dz1jW3Y+PjJdfDA7aWYoKHd8MCk9PTApe2JyZWFrfWVsc2V7ej13O0E9dn19aWYo
QT4+PjA8bD4+PjApe2JHKCl9ZWxzZXtjW0E+PjJdPTA7eT16O2JyZWFrfX1lbHNle3Y9Y1tkKyg4
LWgpPj4yXXwwO2lmKHY+Pj4wPGw+Pj4wKXtiRygpfXc9disxMnwwO2lmKChjW3c+PjJdfDApIT0o
cnwwKSl7YkcoKX14PXQrOHwwO2lmKChjW3g+PjJdfDApPT0ocnwwKSl7Y1t3Pj4yXT10O2NbeD4+
Ml09djt5PXQ7YnJlYWt9ZWxzZXtiRygpfX19d2hpbGUoMCk7aWYoKG18MCk9PTApe249ajtvPWs7
YnJlYWt9dD1kKygyOC1oKXwwO2w9MTAxNDQrKGNbdD4+Ml08PDIpfDA7ZG97aWYoKHJ8MCk9PShj
W2w+PjJdfDApKXtjW2w+PjJdPXk7aWYoKHl8MCkhPTApe2JyZWFrfWNbMjQ2MV09Y1syNDYxXSZ+
KDE8PGNbdD4+Ml0pO249ajtvPWs7YnJlYWsgTDE1NTR9ZWxzZXtpZihtPj4+MDwoY1syNDY0XXww
KT4+PjApe2JHKCl9aT1tKzE2fDA7aWYoKGNbaT4+Ml18MCk9PShyfDApKXtjW2k+PjJdPXl9ZWxz
ZXtjW20rMjA+PjJdPXl9aWYoKHl8MCk9PTApe249ajtvPWs7YnJlYWsgTDE1NTR9fX13aGlsZSgw
KTtpZih5Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9Y1t5KzI0Pj4yXT1tO3I9MTYtaHwwO3Q9
Y1tkK3I+PjJdfDA7ZG97aWYoKHR8MCkhPTApe2lmKHQ+Pj4wPChjWzI0NjRdfDApPj4+MCl7Ykco
KX1lbHNle2NbeSsxNj4+Ml09dDtjW3QrMjQ+PjJdPXk7YnJlYWt9fX13aGlsZSgwKTt0PWNbZCso
cis0KT4+Ml18MDtpZigodHwwKT09MCl7bj1qO289azticmVha31pZih0Pj4+MDwoY1syNDY0XXww
KT4+PjApe2JHKCl9ZWxzZXtjW3krMjA+PjJdPXQ7Y1t0KzI0Pj4yXT15O249ajtvPWs7YnJlYWt9
fWVsc2V7bj1hO289Yn19d2hpbGUoMCk7YT1jWzI0NjRdfDA7aWYoZT4+PjA8YT4+PjApe2JHKCl9
eT1kKyhiKzQpfDA7ej1jW3k+PjJdfDA7ZG97aWYoKHomMnwwKT09MCl7aWYoKGZ8MCk9PShjWzI0
NjZdfDApKXtBPShjWzI0NjNdfDApK298MDtjWzI0NjNdPUE7Y1syNDY2XT1uO2Nbbis0Pj4yXT1B
fDE7aWYoKG58MCkhPShjWzI0NjVdfDApKXtyZXR1cm59Y1syNDY1XT0wO2NbMjQ2Ml09MDtyZXR1
cm59aWYoKGZ8MCk9PShjWzI0NjVdfDApKXtBPShjWzI0NjJdfDApK298MDtjWzI0NjJdPUE7Y1sy
NDY1XT1uO2Nbbis0Pj4yXT1BfDE7Y1tuK0E+PjJdPUE7cmV0dXJufUE9KHomLTgpK298MDtzPXo+
Pj4zO0wxNjUzOmRve2lmKHo+Pj4wPDI1Nil7Zz1jW2QrKGIrOCk+PjJdfDA7dD1jW2QrKGIrMTIp
Pj4yXXwwO2g9OTg4MCsoczw8MTw8Mil8MDtkb3tpZigoZ3wwKSE9KGh8MCkpe2lmKGc+Pj4wPGE+
Pj4wKXtiRygpfWlmKChjW2crMTI+PjJdfDApPT0oZnwwKSl7YnJlYWt9YkcoKX19d2hpbGUoMCk7
aWYoKHR8MCk9PShnfDApKXtjWzI0NjBdPWNbMjQ2MF0mfigxPDxzKTticmVha31kb3tpZigodHww
KT09KGh8MCkpe0I9dCs4fDB9ZWxzZXtpZih0Pj4+MDxhPj4+MCl7YkcoKX1tPXQrOHwwO2lmKChj
W20+PjJdfDApPT0oZnwwKSl7Qj1tO2JyZWFrfWJHKCl9fXdoaWxlKDApO2NbZysxMj4+Ml09dDtj
W0I+PjJdPWd9ZWxzZXtoPWU7bT1jW2QrKGIrMjQpPj4yXXwwO2w9Y1tkKyhiKzEyKT4+Ml18MDtk
b3tpZigobHwwKT09KGh8MCkpe2k9ZCsoYisyMCl8MDtwPWNbaT4+Ml18MDtpZigocHwwKT09MCl7
cT1kKyhiKzE2KXwwO3Y9Y1txPj4yXXwwO2lmKCh2fDApPT0wKXtDPTA7YnJlYWt9ZWxzZXtEPXY7
RT1xfX1lbHNle0Q9cDtFPWl9d2hpbGUoMSl7aT1EKzIwfDA7cD1jW2k+PjJdfDA7aWYoKHB8MCkh
PTApe0Q9cDtFPWk7Y29udGludWV9aT1EKzE2fDA7cD1jW2k+PjJdfDA7aWYoKHB8MCk9PTApe2Jy
ZWFrfWVsc2V7RD1wO0U9aX19aWYoRT4+PjA8YT4+PjApe2JHKCl9ZWxzZXtjW0U+PjJdPTA7Qz1E
O2JyZWFrfX1lbHNle2k9Y1tkKyhiKzgpPj4yXXwwO2lmKGk+Pj4wPGE+Pj4wKXtiRygpfXA9aSsx
MnwwO2lmKChjW3A+PjJdfDApIT0oaHwwKSl7YkcoKX1xPWwrOHwwO2lmKChjW3E+PjJdfDApPT0o
aHwwKSl7Y1twPj4yXT1sO2NbcT4+Ml09aTtDPWw7YnJlYWt9ZWxzZXtiRygpfX19d2hpbGUoMCk7
aWYoKG18MCk9PTApe2JyZWFrfWw9ZCsoYisyOCl8MDtnPTEwMTQ0KyhjW2w+PjJdPDwyKXwwO2Rv
e2lmKChofDApPT0oY1tnPj4yXXwwKSl7Y1tnPj4yXT1DO2lmKChDfDApIT0wKXticmVha31jWzI0
NjFdPWNbMjQ2MV0mfigxPDxjW2w+PjJdKTticmVhayBMMTY1M31lbHNle2lmKG0+Pj4wPChjWzI0
NjRdfDApPj4+MCl7YkcoKX10PW0rMTZ8MDtpZigoY1t0Pj4yXXwwKT09KGh8MCkpe2NbdD4+Ml09
Q31lbHNle2NbbSsyMD4+Ml09Q31pZigoQ3wwKT09MCl7YnJlYWsgTDE2NTN9fX13aGlsZSgwKTtp
ZihDPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9Y1tDKzI0Pj4yXT1tO2g9Y1tkKyhiKzE2KT4+
Ml18MDtkb3tpZigoaHwwKSE9MCl7aWYoaD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7
Y1tDKzE2Pj4yXT1oO2NbaCsyND4+Ml09QzticmVha319fXdoaWxlKDApO2g9Y1tkKyhiKzIwKT4+
Ml18MDtpZigoaHwwKT09MCl7YnJlYWt9aWYoaD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVs
c2V7Y1tDKzIwPj4yXT1oO2NbaCsyND4+Ml09QzticmVha319fXdoaWxlKDApO2Nbbis0Pj4yXT1B
fDE7Y1tuK0E+PjJdPUE7aWYoKG58MCkhPShjWzI0NjVdfDApKXtGPUE7YnJlYWt9Y1syNDYyXT1B
O3JldHVybn1lbHNle2NbeT4+Ml09eiYtMjtjW24rND4+Ml09b3wxO2NbbitvPj4yXT1vO0Y9b319
d2hpbGUoMCk7bz1GPj4+MztpZihGPj4+MDwyNTYpe3o9bzw8MTt5PTk4ODArKHo8PDIpfDA7Qz1j
WzI0NjBdfDA7Yj0xPDxvO2Rve2lmKChDJmJ8MCk9PTApe2NbMjQ2MF09Q3xiO0c9eTtIPTk4ODAr
KHorMjw8Mil8MH1lbHNle289OTg4MCsoeisyPDwyKXwwO2Q9Y1tvPj4yXXwwO2lmKGQ+Pj4wPj0o
Y1syNDY0XXwwKT4+PjApe0c9ZDtIPW87YnJlYWt9YkcoKX19d2hpbGUoMCk7Y1tIPj4yXT1uO2Nb
RysxMj4+Ml09bjtjW24rOD4+Ml09RztjW24rMTI+PjJdPXk7cmV0dXJufXk9bjtHPUY+Pj44O2Rv
e2lmKChHfDApPT0wKXtJPTB9ZWxzZXtpZihGPj4+MD4xNjc3NzIxNSl7ST0zMTticmVha31IPShH
KzEwNDgzMjB8MCk+Pj4xNiY4O3o9Rzw8SDtiPSh6KzUyMDE5MnwwKT4+PjE2JjQ7Qz16PDxiO3o9
KEMrMjQ1NzYwfDApPj4+MTYmMjtvPTE0LShifEh8eikrKEM8PHo+Pj4xNSl8MDtJPUY+Pj4oKG8r
N3wwKT4+PjApJjF8bzw8MX19d2hpbGUoMCk7Rz0xMDE0NCsoSTw8Mil8MDtjW24rMjg+PjJdPUk7
Y1tuKzIwPj4yXT0wO2NbbisxNj4+Ml09MDtvPWNbMjQ2MV18MDt6PTE8PEk7aWYoKG8menwwKT09
MCl7Y1syNDYxXT1vfHo7Y1tHPj4yXT15O2NbbisyND4+Ml09RztjW24rMTI+PjJdPW47Y1tuKzg+
PjJdPW47cmV0dXJufWlmKChJfDApPT0zMSl7Sj0wfWVsc2V7Sj0yNS0oST4+PjEpfDB9ST1GPDxK
O0o9Y1tHPj4yXXwwO3doaWxlKDEpe2lmKChjW0orND4+Ml0mLTh8MCk9PShGfDApKXticmVha31L
PUorMTYrKEk+Pj4zMTw8Mil8MDtHPWNbSz4+Ml18MDtpZigoR3wwKT09MCl7TD0xMjk4O2JyZWFr
fWVsc2V7ST1JPDwxO0o9R319aWYoKEx8MCk9PTEyOTgpe2lmKEs+Pj4wPChjWzI0NjRdfDApPj4+
MCl7YkcoKX1jW0s+PjJdPXk7Y1tuKzI0Pj4yXT1KO2NbbisxMj4+Ml09bjtjW24rOD4+Ml09bjty
ZXR1cm59Sz1KKzh8MDtMPWNbSz4+Ml18MDtJPWNbMjQ2NF18MDtpZihKPj4+MDxJPj4+MCl7Ykco
KX1pZihMPj4+MDxJPj4+MCl7YkcoKX1jW0wrMTI+PjJdPXk7Y1tLPj4yXT15O2Nbbis4Pj4yXT1M
O2NbbisxMj4+Ml09SjtjW24rMjQ+PjJdPTA7cmV0dXJufWZ1bmN0aW9uIGtPKGEpe2E9YXwwO3Zh
ciBiPTAsZD0wLGU9MDtiPShhfDApPT0wPzE6YTt3aGlsZSgxKXtkPWtKKGIpfDA7aWYoKGR8MCkh
PTApe2U9MTM0MjticmVha31hPShJPWNbNDA0OF18MCxjWzQwNDhdPUkrMCxJKTtpZigoYXwwKT09
MCl7YnJlYWt9YjVbYSYzXSgpfWlmKChlfDApPT0xMzQyKXtyZXR1cm4gZHwwfWQ9Yk8oNCl8MDtj
W2Q+PjJdPTI0MDg7YmwoZHwwLDgxNjAsMzApO3JldHVybiAwfWZ1bmN0aW9uIGtQKGEpe2E9YXww
O3JldHVybiBrTyhhKXwwfWZ1bmN0aW9uIGtRKGEpe2E9YXwwO3JldHVybn1mdW5jdGlvbiBrUihh
KXthPWF8MDtyZXR1cm4gMTE2MHwwfWZ1bmN0aW9uIGtTKGEpe2E9YXwwO2lmKChhfDApIT0wKXtr
SyhhKX1yZXR1cm59ZnVuY3Rpb24ga1QoYSl7YT1hfDA7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGtV
KGEpe2E9YXwwO2tTKGEpO3JldHVybn1mdW5jdGlvbiBrVihiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBl
PTAsZj0wLGc9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MC4wLHI9MCxzPTAs
dD0wLHU9MCx2PTAuMCx3PTAseD0wLHk9MCx6PTAuMCxBPTAuMCxCPTAsQz0wLEQ9MCxFPTAuMCxG
PTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MC4wLE89MCxQPTAsUT0wLjAsUj0wLjAs
Uz0wLjA7ZT1iO3doaWxlKDEpe2Y9ZSsxfDA7aWYoKGFQKGFbZV18MCl8MCk9PTApe2JyZWFrfWVs
c2V7ZT1mfX1zd2l0Y2goYVtlXXwwKXtjYXNlIDQzOntnPWY7aT0wO2JyZWFrfTtjYXNlIDQ1Ontn
PWY7aT0xO2JyZWFrfTtkZWZhdWx0OntnPWU7aT0wfX1lPS0xO2Y9MDtqPWc7d2hpbGUoMSl7az1h
W2pdfDA7aWYoKChrPDwyND4+MjQpLTQ4fDApPj4+MDwxMCl7bD1lfWVsc2V7aWYoazw8MjQ+PjI0
IT00NnwoZXwwKT4tMSl7YnJlYWt9ZWxzZXtsPWZ9fWU9bDtmPWYrMXwwO2o9aisxfDB9bD1qKygt
ZnwwKXwwO2c9KGV8MCk8MDttPSgoZ14xKTw8MzE+PjMxKStmfDA7bj0obXwwKT4xODtvPShuPy0x
ODotbXwwKSsoZz9mOmUpfDA7ZT1uPzE4Om07ZG97aWYoKGV8MCk9PTApe3A9YjtxPTAuMH1lbHNl
e2lmKChlfDApPjkpe209bDtuPWU7Zj0wO3doaWxlKDEpe2c9YVttXXwwO3I9bSsxfDA7aWYoZzw8
MjQ+PjI0PT00Nil7cz1hW3JdfDA7dD1tKzJ8MH1lbHNle3M9Zzt0PXJ9dT0oZioxMHwwKS00OCso
czw8MjQ+PjI0KXwwO3I9bi0xfDA7aWYoKHJ8MCk+OSl7bT10O249cjtmPXV9ZWxzZXticmVha319
dj0rKHV8MCkqMS4wZTk7dz05O3g9dDt5PTEzNzB9ZWxzZXtpZigoZXwwKT4wKXt2PTAuMDt3PWU7
eD1sO3k9MTM3MH1lbHNle3o9MC4wO0E9MC4wfX1pZigoeXwwKT09MTM3MCl7Zj14O249dzttPTA7
d2hpbGUoMSl7cj1hW2ZdfDA7Zz1mKzF8MDtpZihyPDwyND4+MjQ9PTQ2KXtCPWFbZ118MDtDPWYr
MnwwfWVsc2V7Qj1yO0M9Z31EPShtKjEwfDApLTQ4KyhCPDwyND4+MjQpfDA7Zz1uLTF8MDtpZigo
Z3wwKT4wKXtmPUM7bj1nO209RH1lbHNle2JyZWFrfX16PSsoRHwwKTtBPXZ9RT1BK3o7TDE4MTY6
ZG97c3dpdGNoKGs8PDI0Pj4yNCl7Y2FzZSA2OTpjYXNlIDEwMTp7bT1qKzF8MDtzd2l0Y2goYVtt
XXwwKXtjYXNlIDQ1OntGPWorMnwwO0c9MTticmVha307Y2FzZSA0Mzp7Rj1qKzJ8MDtHPTA7YnJl
YWt9O2RlZmF1bHQ6e0Y9bTtHPTB9fW09YVtGXXwwO2lmKCgobTw8MjQ+PjI0KS00OHwwKT4+PjA8
MTApe0g9RjtJPTA7Sj1tfWVsc2V7Sz0wO0w9RjtNPUc7YnJlYWsgTDE4MTZ9d2hpbGUoMSl7bT0o
SSoxMHwwKS00OCsoSjw8MjQ+PjI0KXwwO249SCsxfDA7Zj1hW25dfDA7aWYoKChmPDwyND4+MjQp
LTQ4fDApPj4+MDwxMCl7SD1uO0k9bTtKPWZ9ZWxzZXtLPW07TD1uO009RzticmVha319YnJlYWt9
O2RlZmF1bHQ6e0s9MDtMPWo7TT0wfX19d2hpbGUoMCk7bj1vKygoTXwwKT09MD9LOi1LfDApfDA7
bT0obnwwKTwwPy1ufDA6bjtpZigobXwwKT41MTEpe2NbKGJ3KCl8MCk+PjJdPTM0O049MS4wO089
ODtQPTUxMTt5PTEzODd9ZWxzZXtpZigobXwwKT09MCl7UT0xLjB9ZWxzZXtOPTEuMDtPPTg7UD1t
O3k9MTM4N319aWYoKHl8MCk9PTEzODcpe3doaWxlKDEpe3k9MDtpZigoUCYxfDApPT0wKXtSPU59
ZWxzZXtSPU4qK2hbTz4+M119bT1QPj4xO2lmKChtfDApPT0wKXtRPVI7YnJlYWt9ZWxzZXtOPVI7
Tz1PKzh8MDtQPW07eT0xMzg3fX19aWYoKG58MCk+LTEpe3A9TDtxPUUqUTticmVha31lbHNle3A9
TDtxPUUvUTticmVha319fXdoaWxlKDApO2lmKChkfDApIT0wKXtjW2Q+PjJdPXB9aWYoKGl8MCk9
PTApe1M9cTtyZXR1cm4rU31TPS0wLjAtcTtyZXR1cm4rU31mdW5jdGlvbiBrVyhhLGIsYyl7YT1h
fDA7Yj1ifDA7Yz1jfDA7cmV0dXJuKygra1YoYSxiKSl9ZnVuY3Rpb24ga1goKXt2YXIgYT0wO2E9
Yk8oNCl8MDtjW2E+PjJdPTI0MDg7YmwoYXwwLDgxNjAsMzApfWZ1bmN0aW9uIGtZKGIsZCxlKXti
PWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wO2Y9YnwwO2lmKChiJjMpPT0oZCYzKSl7d2hpbGUoYiYz
KXtpZigoZXwwKT09MClyZXR1cm4gZnwwO2FbYl09YVtkXXwwO2I9YisxfDA7ZD1kKzF8MDtlPWUt
MXwwfXdoaWxlKChlfDApPj00KXtjW2I+PjJdPWNbZD4+Ml07Yj1iKzR8MDtkPWQrNHwwO2U9ZS00
fDB9fXdoaWxlKChlfDApPjApe2FbYl09YVtkXXwwO2I9YisxfDA7ZD1kKzF8MDtlPWUtMXwwfXJl
dHVybiBmfDB9ZnVuY3Rpb24ga1ooYil7Yj1ifDA7dmFyIGM9MDtjPWFbbisoYj4+PjI0KXwwXXww
O2lmKChjfDApPDgpcmV0dXJuIGN8MDtjPWFbbisoYj4+MTYmMjU1KXwwXXwwO2lmKChjfDApPDgp
cmV0dXJuIGMrOHwwO2M9YVtuKyhiPj44JjI1NSl8MF18MDtpZigoY3wwKTw4KXJldHVybiBjKzE2
fDA7cmV0dXJuKGFbbisoYiYyNTUpfDBdfDApKzI0fDB9ZnVuY3Rpb24ga18oYixjLGQpe2I9Ynww
O2M9Y3wwO2Q9ZHwwO2lmKChjfDApPChifDApJihifDApPChjK2R8MCkpe2M9YytkfDA7Yj1iK2R8
MDt3aGlsZSgoZHwwKT4wKXtiPWItMXwwO2M9Yy0xfDA7ZD1kLTF8MDthW2JdPWFbY118MH19ZWxz
ZXtrWShiLGMsZCl8MH19ZnVuY3Rpb24gayQoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBm
PTAsZz0wLGg9MDtmPWIrZXwwO2lmKChlfDApPj0yMCl7ZD1kJjI1NTtlPWImMztnPWR8ZDw8OHxk
PDwxNnxkPDwyNDtoPWYmfjM7aWYoZSl7ZT1iKzQtZXwwO3doaWxlKChifDApPChlfDApKXthW2Jd
PWQ7Yj1iKzF8MH19d2hpbGUoKGJ8MCk8KGh8MCkpe2NbYj4+Ml09ZztiPWIrNHwwfX13aGlsZSgo
YnwwKTwoZnwwKSl7YVtiXT1kO2I9YisxfDB9fWZ1bmN0aW9uIGswKGIpe2I9YnwwO3ZhciBjPTA7
Yz1iO3doaWxlKGFbY118MCl7Yz1jKzF8MH1yZXR1cm4gYy1ifDB9ZnVuY3Rpb24gazEoYSxiLGMs
ZCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7dmFyIGU9MDtlPWErYz4+PjA7cmV0dXJuKEs9Yitk
KyhlPj4+MDxhPj4+MHwwKT4+PjAsZXwwKXwwfWZ1bmN0aW9uIGsyKGEsYixjLGQpe2E9YXwwO2I9
YnwwO2M9Y3wwO2Q9ZHwwO3ZhciBlPTA7ZT1iLWQ+Pj4wO2U9Yi1kLShjPj4+MD5hPj4+MHwwKT4+
PjA7cmV0dXJuKEs9ZSxhLWM+Pj4wfDApfDB9ZnVuY3Rpb24gazMoYSxiLGMpe2E9YXwwO2I9Ynww
O2M9Y3wwO2lmKChjfDApPDMyKXtLPWI8PGN8KGEmKDE8PGMpLTE8PDMyLWMpPj4+MzItYztyZXR1
cm4gYTw8Y31LPWE8PGMtMzI7cmV0dXJuIDB9ZnVuY3Rpb24gazQoYSxiLGMpe2E9YXwwO2I9Ynww
O2M9Y3wwO2lmKChjfDApPDMyKXtLPWI+Pj5jO3JldHVybiBhPj4+Y3woYiYoMTw8YyktMSk8PDMy
LWN9Sz0wO3JldHVybiBiPj4+Yy0zMnwwfWZ1bmN0aW9uIGs1KGEsYixjKXthPWF8MDtiPWJ8MDtj
PWN8MDtpZigoY3wwKTwzMil7Sz1iPj5jO3JldHVybiBhPj4+Y3woYiYoMTw8YyktMSk8PDMyLWN9
Sz0oYnwwKTwwPy0xOjA7cmV0dXJuIGI+PmMtMzJ8MH1mdW5jdGlvbiBrNihiKXtiPWJ8MDt2YXIg
Yz0wO2M9YVttKyhiJjI1NSl8MF18MDtpZigoY3wwKTw4KXJldHVybiBjfDA7Yz1hW20rKGI+Pjgm
MjU1KXwwXXwwO2lmKChjfDApPDgpcmV0dXJuIGMrOHwwO2M9YVttKyhiPj4xNiYyNTUpfDBdfDA7
aWYoKGN8MCk8OClyZXR1cm4gYysxNnwwO3JldHVybihhW20rKGI+Pj4yNCl8MF18MCkrMjR8MH1m
dW5jdGlvbiBrNyhhLGIpe2E9YXwwO2I9YnwwO3ZhciBjPTAsZD0wLGU9MCxmPTA7Yz1hJjY1NTM1
O2Q9YiY2NTUzNTtlPWFnKGQsYyl8MDtmPWE+Pj4xNjthPShlPj4+MTYpKyhhZyhkLGYpfDApfDA7
ZD1iPj4+MTY7Yj1hZyhkLGMpfDA7cmV0dXJuKEs9KGE+Pj4xNikrKGFnKGQsZil8MCkrKCgoYSY2
NTUzNSkrYnwwKT4+PjE2KXwwLGErYjw8MTZ8ZSY2NTUzNXwwKXwwfWZ1bmN0aW9uIGs4KGEsYixj
LGQpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wO2U9Yj4+
MzF8KChifDApPDA/LTE6MCk8PDE7Zj0oKGJ8MCk8MD8tMTowKT4+MzF8KChifDApPDA/LTE6MCk8
PDE7Zz1kPj4zMXwoKGR8MCk8MD8tMTowKTw8MTtoPSgoZHwwKTwwPy0xOjApPj4zMXwoKGR8MCk8
MD8tMTowKTw8MTtpPWsyKGVeYSxmXmIsZSxmKXwwO2I9SzthPWdeZTtlPWheZjtmPWsyKChsZChp
LGIsazIoZ15jLGheZCxnLGgpfDAsSywwKXwwKV5hLEteZSxhLGUpfDA7cmV0dXJuKEs9SyxmKXww
fWZ1bmN0aW9uIGs5KGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0w
LGg9MCxqPTAsaz0wLGw9MCxtPTA7Zj1pO2k9aSs4fDA7Zz1mfDA7aD1iPj4zMXwoKGJ8MCk8MD8t
MTowKTw8MTtqPSgoYnwwKTwwPy0xOjApPj4zMXwoKGJ8MCk8MD8tMTowKTw8MTtrPWU+PjMxfCgo
ZXwwKTwwPy0xOjApPDwxO2w9KChlfDApPDA/LTE6MCk+PjMxfCgoZXwwKTwwPy0xOjApPDwxO209
azIoaF5hLGpeYixoLGopfDA7Yj1LO2E9azIoa15kLGxeZSxrLGwpfDA7bGQobSxiLGEsSyxnKXww
O2E9azIoY1tnPj4yXV5oLGNbZys0Pj4yXV5qLGgsail8MDtqPUs7aT1mO3JldHVybihLPWosYSl8
MH1mdW5jdGlvbiBsYShhLGIsYyxkKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDt2YXIgZT0wLGY9
MDtlPWE7YT1jO2M9azcoZSxhKXwwO2Y9SztyZXR1cm4oSz0oYWcoYixhKXwwKSsoYWcoZCxlKXww
KStmfGYmMCxjfDB8MCl8MH1mdW5jdGlvbiBsYihhLGIsYyxkKXthPWF8MDtiPWJ8MDtjPWN8MDtk
PWR8MDt2YXIgZT0wO2U9bGQoYSxiLGMsZCwwKXwwO3JldHVybihLPUssZSl8MH1mdW5jdGlvbiBs
YyhhLGIsZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MDtmPWk7aT1pKzh8
MDtnPWZ8MDtsZChhLGIsZCxlLGcpfDA7aT1mO3JldHVybihLPWNbZys0Pj4yXXwwLGNbZz4+Ml18
MCl8MH1mdW5jdGlvbiBsZChhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxMPTAsTT0wO2c9YTtoPWI7aT1oO2o9ZDtrPWU7bD1rO2lmKChpfDApPT0wKXtt
PShmfDApIT0wO2lmKChsfDApPT0wKXtpZihtKXtjW2Y+PjJdPShnPj4+MCklKGo+Pj4wKTtjW2Yr
ND4+Ml09MH1uPTA7bz0oZz4+PjApLyhqPj4+MCk+Pj4wO3JldHVybihLPW4sbyl8MH1lbHNle2lm
KCFtKXtuPTA7bz0wO3JldHVybihLPW4sbyl8MH1jW2Y+PjJdPWF8MDtjW2YrND4+Ml09YiYwO249
MDtvPTA7cmV0dXJuKEs9bixvKXwwfX1tPShsfDApPT0wO2Rve2lmKChqfDApPT0wKXtpZihtKXtp
ZigoZnwwKSE9MCl7Y1tmPj4yXT0oaT4+PjApJShqPj4+MCk7Y1tmKzQ+PjJdPTB9bj0wO289KGk+
Pj4wKS8oaj4+PjApPj4+MDtyZXR1cm4oSz1uLG8pfDB9aWYoKGd8MCk9PTApe2lmKChmfDApIT0w
KXtjW2Y+PjJdPTA7Y1tmKzQ+PjJdPShpPj4+MCklKGw+Pj4wKX1uPTA7bz0oaT4+PjApLyhsPj4+
MCk+Pj4wO3JldHVybihLPW4sbyl8MH1wPWwtMXwwO2lmKChwJmx8MCk9PTApe2lmKChmfDApIT0w
KXtjW2Y+PjJdPWF8MDtjW2YrND4+Ml09cCZpfGImMH1uPTA7bz1pPj4+KChrNihsfDApfDApPj4+
MCk7cmV0dXJuKEs9bixvKXwwfXA9KGtaKGx8MCl8MCktKGtaKGl8MCl8MCl8MDtpZihwPj4+MDw9
MzApe3E9cCsxfDA7cj0zMS1wfDA7cz1xO3Q9aTw8cnxnPj4+KHE+Pj4wKTt1PWk+Pj4ocT4+PjAp
O3Y9MDt3PWc8PHI7YnJlYWt9aWYoKGZ8MCk9PTApe249MDtvPTA7cmV0dXJuKEs9bixvKXwwfWNb
Zj4+Ml09YXwwO2NbZis0Pj4yXT1ofGImMDtuPTA7bz0wO3JldHVybihLPW4sbyl8MH1lbHNle2lm
KCFtKXtyPShrWihsfDApfDApLShrWihpfDApfDApfDA7aWYocj4+PjA8PTMxKXtxPXIrMXwwO3A9
MzEtcnwwO3g9ci0zMT4+MzE7cz1xO3Q9Zz4+PihxPj4+MCkmeHxpPDxwO3U9aT4+PihxPj4+MCkm
eDt2PTA7dz1nPDxwO2JyZWFrfWlmKChmfDApPT0wKXtuPTA7bz0wO3JldHVybihLPW4sbyl8MH1j
W2Y+PjJdPWF8MDtjW2YrND4+Ml09aHxiJjA7bj0wO289MDtyZXR1cm4oSz1uLG8pfDB9cD1qLTF8
MDtpZigocCZqfDApIT0wKXt4PShrWihqfDApfDApKzMzLShrWihpfDApfDApfDA7cT02NC14fDA7
cj0zMi14fDA7eT1yPj4zMTt6PXgtMzJ8MDtBPXo+PjMxO3M9eDt0PXItMT4+MzEmaT4+Pih6Pj4+
MCl8KGk8PHJ8Zz4+Pih4Pj4+MCkpJkE7dT1BJmk+Pj4oeD4+PjApO3Y9Zzw8cSZ5O3c9KGk8PHF8
Zz4+Pih6Pj4+MCkpJnl8Zzw8ciZ4LTMzPj4zMTticmVha31pZigoZnwwKSE9MCl7Y1tmPj4yXT1w
Jmc7Y1tmKzQ+PjJdPTB9aWYoKGp8MCk9PTEpe249aHxiJjA7bz1hfDB8MDtyZXR1cm4oSz1uLG8p
fDB9ZWxzZXtwPWs2KGp8MCl8MDtuPWk+Pj4ocD4+PjApfDA7bz1pPDwzMi1wfGc+Pj4ocD4+PjAp
fDA7cmV0dXJuKEs9bixvKXwwfX19d2hpbGUoMCk7aWYoKHN8MCk9PTApe0I9dztDPXY7RD11O0U9
dDtGPTA7Rz0wfWVsc2V7Zz1kfDB8MDtkPWt8ZSYwO2U9azEoZyxkLC0xLC0xKXwwO2s9SztpPXc7
dz12O3Y9dTt1PXQ7dD1zO3M9MDt3aGlsZSgxKXtIPXc+Pj4zMXxpPDwxO0k9c3x3PDwxO2o9dTw8
MXxpPj4+MzF8MDthPXU+Pj4zMXx2PDwxfDA7azIoZSxrLGosYSl8MDtiPUs7aD1iPj4zMXwoKGJ8
MCk8MD8tMTowKTw8MTtKPWgmMTtMPWsyKGosYSxoJmcsKCgoYnwwKTwwPy0xOjApPj4zMXwoKGJ8
MCk8MD8tMTowKTw8MSkmZCl8MDtNPUs7Yj10LTF8MDtpZigoYnwwKT09MCl7YnJlYWt9ZWxzZXtp
PUg7dz1JO3Y9TTt1PUw7dD1iO3M9Sn19Qj1IO0M9STtEPU07RT1MO0Y9MDtHPUp9Sj1DO0M9MDtp
ZigoZnwwKSE9MCl7Y1tmPj4yXT1FO2NbZis0Pj4yXT1EfW49KEp8MCk+Pj4zMXwoQnxDKTw8MXwo
Qzw8MXxKPj4+MzEpJjB8RjtvPShKPDwxfDA+Pj4zMSkmLTJ8RztyZXR1cm4oSz1uLG8pfDB9ZnVu
Y3Rpb24gbGUoKXtiUCgpfWZ1bmN0aW9uIGxmKGEsYixjLGQsZSxmKXthPWF8MDtiPWJ8MDtjPWN8
MDtkPWR8MDtlPWV8MDtmPWZ8MDtiV1thJjddKGJ8MCxjfDAsZHwwLGV8MCxmfDApfWZ1bmN0aW9u
IGxnKGEsYixjLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7YlhbYSYxMjddKGJ8MCxjfDAsZHwwLGV8MCxmfDAsZ3wwLGh8MCl9ZnVuY3Rp
b24gbGgoYSxiKXthPWF8MDtiPWJ8MDtiWVthJjUxMV0oYnwwKX1mdW5jdGlvbiBsaShhLGIsYyl7
YT1hfDA7Yj1ifDA7Yz1jfDA7YlpbYSYxMjddKGJ8MCxjfDApfWZ1bmN0aW9uIGxqKGEsYixjKXth
PWF8MDtiPWJ8MDtjPWN8MDtyZXR1cm4gYl9bYSYzMV0oYnwwLGN8MCl8MH1mdW5jdGlvbiBsayhh
LGIsYyxkLGUsZil7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7cmV0dXJuIGIk
W2EmMzFdKGJ8MCxjfDAsZHwwLGV8MCxmfDApfDB9ZnVuY3Rpb24gbGwoYSxiKXthPWF8MDtiPWJ8
MDtyZXR1cm4gYjBbYSYxMjddKGJ8MCl8MH1mdW5jdGlvbiBsbShhLGIsYyxkKXthPWF8MDtiPWJ8
MDtjPWN8MDtkPWR8MDtyZXR1cm4gYjFbYSY2M10oYnwwLGN8MCxkfDApfDB9ZnVuY3Rpb24gbG4o
YSxiLGMsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz0rZzti
MlthJjE1XShifDAsY3wwLGR8MCxlfDAsZnwwLCtnKX1mdW5jdGlvbiBsbyhhLGIsYyxkKXthPWF8
MDtiPWJ8MDtjPWN8MDtkPWR8MDtiM1thJjddKGJ8MCxjfDAsZHwwKX1mdW5jdGlvbiBscChhLGIs
YyxkLGUsZixnLGgsaSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7aT1pfDA7YjRbYSYxNV0oYnwwLGN8MCxkfDAsZXwwLGZ8MCxnfDAsaHwwLGl8MCl9ZnVu
Y3Rpb24gbHEoYSl7YT1hfDA7YjVbYSYzXSgpfWZ1bmN0aW9uIGxyKGEsYixjLGQsZSxmLGcsaCxp
KXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDty
ZXR1cm4gYjZbYSYzMV0oYnwwLGN8MCxkfDAsZXwwLGZ8MCxnfDAsaHwwLGl8MCl8MH1mdW5jdGlv
biBscyhhLGIsYyxkLGUsZixnLGgsaSxqKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDtiN1thJjddKGJ8MCxjfDAsZHwwLGV8MCxmfDAs
Z3wwLGh8MCxpfDAsanwwKX1mdW5jdGlvbiBsdChhLGIsYyxkLGUsZixnLGgpe2E9YXwwO2I9Ynww
O2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9K2g7YjhbYSY3XShifDAsY3wwLGR8MCxl
fDAsZnwwLGd8MCwraCl9ZnVuY3Rpb24gbHUoYSxiLGMsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7Yz1j
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7YjlbYSYzMV0oYnwwLGN8MCxkfDAsZXwwLGZ8MCxn
fDApfWZ1bmN0aW9uIGx2KGEsYixjLGQsZSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7
cmV0dXJuIGNhW2EmMTVdKGJ8MCxjfDAsZHwwLGV8MCl8MH1mdW5jdGlvbiBsdyhhLGIsYyxkLGUp
e2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2NiW2EmMTVdKGJ8MCxjfDAsZHwwLGV8MCl9
ZnVuY3Rpb24gbHgoYSxiLGMsZCxlKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDthaCgw
KX1mdW5jdGlvbiBseShhLGIsYyxkLGUsZixnKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDthaCgxKX1mdW5jdGlvbiBseihhKXthPWF8MDthaCgyKX1mdW5jdGlvbiBs
QShhLGIpe2E9YXwwO2I9YnwwO2FoKDMpfWZ1bmN0aW9uIGxCKGEsYil7YT1hfDA7Yj1ifDA7YWgo
NCk7cmV0dXJuIDB9ZnVuY3Rpb24gbEMoYSxiLGMsZCxlKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8
MDtlPWV8MDthaCg1KTtyZXR1cm4gMH1mdW5jdGlvbiBsRChhKXthPWF8MDthaCg2KTtyZXR1cm4g
MH1mdW5jdGlvbiBsRShhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7YWgoNyk7cmV0dXJuIDB9ZnVu
Y3Rpb24gbEYoYSxiLGMsZCxlLGYpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9K2Y7
YWgoOCl9ZnVuY3Rpb24gbEcoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO2FoKDkpfWZ1bmN0aW9u
IGxIKGEsYixjLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7YWgoMTApfWZ1bmN0aW9uIGxJKCl7YWgoMTEpfWZ1bmN0aW9uIGxKKGEsYixj
LGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1o
fDA7YWgoMTIpO3JldHVybiAwfWZ1bmN0aW9uIGxLKGEsYixjLGQsZSxmLGcsaCxpKXthPWF8MDti
PWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDthaCgxMyl9ZnVu
Y3Rpb24gbEwoYSxiLGMsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Zz0rZzthaCgxNCl9ZnVuY3Rpb24gbE0oYSxiLGMsZCxlLGYpe2E9YXwwO2I9YnwwO2M9Y3ww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2FoKDE1KX1mdW5jdGlvbiBsTihhLGIsYyxkKXthPWF8MDtiPWJ8
MDtjPWN8MDtkPWR8MDthaCgxNik7cmV0dXJuIDB9ZnVuY3Rpb24gbE8oYSxiLGMsZCl7YT1hfDA7
Yj1ifDA7Yz1jfDA7ZD1kfDA7YWgoMTcpfQotLy8gRU1TQ1JJUFRFTl9FTkRfRlVOQ1MKLXZhciBi
Vz1bbHgsbHgsa0csbHgsa0QsbHgsa0YsbHhdO3ZhciBiWD1bbHksbHksZ0csbHksZ1AsbHksZ1Ms
bHksaWgsbHksZ3QsbHksZ3IsbHksaDksbHksZ0IsbHksZ0YsbHksZ1QsbHksZ2YsbHksZjcsbHks
Z0UsbHksZkgsbHksZlosbHksZ1EsbHksZ2QsbHksZiQsbHksZlgsbHksZlksbHksZlEsbHksZl8s
bHksZlYsbHksZlQsbHksZjQsbHksZjMsbHksZjAsbHksZ1UsbHksZkEsbHksZ0MsbHksZkUsbHks
ZnYsbHksZnksbHksZkMsbHksZnIsbHksZk0sbHksZkssbHksZnAsbHksbHksbHksbHksbHksbHks
bHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHks
bHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHks
bHksbHksbHksbHksbHksbHksbHldO3ZhciBiWT1bbHosbHosaWssbHosZm4sbHosZ2wsbHosZEgs
bHosZW4sbHosaUUsbHosZHIsbHosaEEsbHosZjUsbHosZEIsbHosZEcsbHosZk8sbHosZmIsbHos
ZTcsbHosa1EsbHosZEMsbHosaVAsbHosaVMsbHosZ08sbHosZlAsbHosa3EsbHosZTEsbHosaWUs
bHosaVEsbHosZVMsbHosZm8sbHosaHIsbHosaUwsbHosakksbHosaVUsbHosa2ssbHosakgsbHos
ZTUsbHosYzUsbHosZEcsbHosY3QsbHosZmYsbHosaGcsbHosakssbHosaVIsbHosa0ssbHosaDcs
bHosakcsbHosZVYsbHosYzQsbHosZmUsbHosZEMsbHosajMsbHosZjYsbHosZGYsbHosaHMsbHos
ZVIsbHosZSQsbHosaHksbHosZ04sbHosZTgsbHosaGwsbHosa1UsbHosZW0sbHosajYsbHosajcs
bHosZTIsbHosZXUsbHosa3gsbHosaVYsbHosaTksbHosa2ksbHosZVQsbHosZTYsbHosaE8sbHos
ZGQsbHosaHgsbHosZTMsbHosajksbHosa2wsbHosanEsbHosZGIsbHosaUssbHosaU8sbHosaHos
bHosaFUsbHosa3UsbHosaEcsbHosaDgsbHosajgsbHosaGYsbHosZ2ssbHosZmEsbHosZGMsbHos
ZmMsbHosZVgsbHosZE4sbHosaCQsbHosaFQsbHosakosbHosZWUsbHosZEksbHosa2ksbHosa3ks
bHosZV8sbHosZE8sbHosZVEsbHosZTAsbHosaWQsbHosZUQsbHosZVosbHosZHMsbHosaVcsbHos
ZTksbHosaEosbHosZ3osbHosaG0sbHosYyQsbHosaXEsbHosaDAsbHosZVcsbHosZXQsbHosZVks
bHosakYsbHosajQsbHosZ0EsbHosa3csbHosaWwsbHosY18sbHosa3YsbHosaEIsbHosaFAsbHos
Y1csbHosZFAsbHosaVQsbHosZEYsbHosZVUsbHosa2EsbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHpdO3ZhciBiWj1bbEEsbEEsalAsbEEsYzAsbEEsaE0s
bEEsak0sbEEsaGIsbEEsakwsbEEsaWosbEEsZDksbEEsaGssbEEsaEgsbEEsaHcsbEEsaGosbEEs
aGgsbEEsaE4sbEEsaU4sbEEsZzksbEEsZG0sbEEsaEksbEEsak8sbEEsaEssbEEsaG8sbEEsZEUs
bEEsaG4sbEEsalEsbEEsaGEsbEEsaHEsbEEsak4sbEEsZzgsbEEsZDIsbEEsZHQsbEEsYzYsbEEs
aW8sbEEsaHQsbEEsZzcsbEEsZzYsbEEsaGksbEEsaHUsbEEsaHYsbEEsaHAsbEEsaEwsbEEsbEEs
bEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEs
bEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEs
bEEsbEEsbEEsbEEsbEEsbEEsbEFdO3ZhciBiXz1bbEIsbEIsaTQsbEIsZHcsbEIsaUEsbEIsaXQs
bEIsZDgsbEIsYzksbEIsZHAsbEIsaTAsbEIsaTYsbEIsZUksbEIsaTIsbEIsZDcsbEIsYzIsbEIs
ZUgsbEIsbEIsbEJdO3ZhciBiJD1bbEMsbEMsamgsbEMsamYsbEMsakUsbEMsaXcsbEMsaUcsbEMs
anAsbEMsaUksbEMsZmssbEMsaUQsbEMsamQsbEMsZUwsbEMsanMsbEMsbEMsbEMsbEMsbEMsbEMs
bENdO3ZhciBiMD1bbEQsbEQsajIsbEQsZzQsbEQsZDYsbEQsalUsbEQsZXIsbEQsajAsbEQsZzAs
bEQsamUsbEQsamssbEQsZ3ksbEQsalMsbEQsZHYsbEQsZU8sbEQsZUcsbEQsalksbEQsalcsbEQs
anQsbEQsa2osbEQsZGksbEQsakMsbEQsanosbEQsalgsbEQsamosbEQsakEsbEQsZDQsbEQsaEYs
bEQsalosbEQsZHUsbEQsYzEsbEQsZzEsbEQsaTgsbEQsajEsbEQsanYsbEQsaEQsbEQsalIsbEQs
YzcsbEQsanUsbEQsamcsbEQsZUosbEQsZyQsbEQsYzgsbEQsakIsbEQsZDUsbEQsZUUsbEQsZG4s
bEQsZzIsbEQsaXosbEQsaXksbEQsa1IsbEQsZUYsbEQsZ1osbEQsalQsbEQsaXgsbEQsZ18sbEQs
ZGgsbEQsZzMsbEQsZzUsbEQsalYsbEQsaEUsbEQsZ00sbEQsaiQsbEQsal8sbEQsamksbERdO3Zh
ciBiMT1bbEUsbEUsZU0sbEUsaTUsbEUsaTMsbEUsa3osbEUsaUIsbEUsZmwsbEUsZEosbEUsZXMs
bEUsZXEsbEUsaVksbEUsZWEsbEUsaW0sbEUsaUMsbEUsaTEsbEUsZU4sbEUsZGwsbEUsaTcsbEUs
aWcsbEUsZDMsbEUsZVAsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUs
bEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEVdO3ZhciBiMj1bbEYsbEYsZ3csbEYsZ3UsbEYsZ2ks
bEYsZ2csbEYsbEYsbEYsbEYsbEYsbEYsbEZdO3ZhciBiMz1bbEcsbEcsZGssbEcsZTQsbEcsbEcs
bEddO3ZhciBiND1bbEgsbEgsaGUsbEgsaGQsbEgsaFEsbEgsaFksbEgsaFcsbEgsaDEsbEgsbEgs
bEhdO3ZhciBiNT1bbEksbEksbGUsbEldO3ZhciBiNj1bbEosbEosaXUsbEosamMsbEosam8sbEos
aXYsbEosanIsbEosakQsbEosamIsbEosamEsbEosbEosbEosbEosbEosbEosbEosbEosbEosbEos
bEosbEosbEosbEosbEpdO3ZhciBiNz1bbEssbEssZ1csbEssZ0ksbEssbEssbEtdO3ZhciBiOD1b
bEwsbEwsaWEsbEwsaDQsbEwsbEwsbExdO3ZhciBiOT1bbE0sbE0sa0gsbE0sZ3MsbE0sZ20sbE0s
Z28sbE0sa0ksbE0sZ3gsbE0saWksbE0sZWQsbE0sZ24sbE0sZ2EsbE0sZ2UsbE0sZjgsbE0sa0Us
bE0sZWIsbE0saXAsbE1dO3ZhciBjYT1bbE4sbE4saVosbE4saV8sbE4saUgsbE4saUYsbE4saSQs
bE4sbE4sbE4sbE4sbE5dO3ZhciBjYj1bbE8sbE8sa0EsbE8sa0IsbE8sZWMsbE8sa3IsbE8sZUss
bE8sZm0sbE8sZmQsbE9dO3JldHVybntfc3RybGVuOmswLF9mcmVlOmtLLF9tYWluOmNELF9yZWFs
bG9jOmtMLF9tZW1tb3ZlOmtfLF9fR0xPQkFMX19JX2E6Y1QsX21lbXNldDprJCxfbWFsbG9jOmtK
LF9tZW1jcHk6a1ksX2xsdm1fY3Rsel9pMzI6a1osX19HTE9CQUxfX0lfYTg6ZHkscnVuUG9zdFNl
dHM6Y3Msc3RhY2tBbGxvYzpjYyxzdGFja1NhdmU6Y2Qsc3RhY2tSZXN0b3JlOmNlLHNldFRocmV3
OmNmLHNldFRlbXBSZXQwOmNpLHNldFRlbXBSZXQxOmNqLHNldFRlbXBSZXQyOmNrLHNldFRlbXBS
ZXQzOmNsLHNldFRlbXBSZXQ0OmNtLHNldFRlbXBSZXQ1OmNuLHNldFRlbXBSZXQ2OmNvLHNldFRl
bXBSZXQ3OmNwLHNldFRlbXBSZXQ4OmNxLHNldFRlbXBSZXQ5OmNyLGR5bkNhbGxfdmlpaWlpOmxm
LGR5bkNhbGxfdmlpaWlpaWk6bGcsZHluQ2FsbF92aTpsaCxkeW5DYWxsX3ZpaTpsaSxkeW5DYWxs
X2lpaTpsaixkeW5DYWxsX2lpaWlpaTpsayxkeW5DYWxsX2lpOmxsLGR5bkNhbGxfaWlpaTpsbSxk
eW5DYWxsX3ZpaWlpaWY6bG4sZHluQ2FsbF92aWlpOmxvLGR5bkNhbGxfdmlpaWlpaWlpOmxwLGR5
bkNhbGxfdjpscSxkeW5DYWxsX2lpaWlpaWlpaTpscixkeW5DYWxsX3ZpaWlpaWlpaWk6bHMsZHlu
Q2FsbF92aWlpaWlpZjpsdCxkeW5DYWxsX3ZpaWlpaWk6bHUsZHluQ2FsbF9paWlpaTpsdixkeW5D
YWxsX3ZpaWlpOmx3fX0pCi0vLyBFTVNDUklQVEVOX0VORF9BU00KLSh7ICJNYXRoIjogTWF0aCwg
IkludDhBcnJheSI6IEludDhBcnJheSwgIkludDE2QXJyYXkiOiBJbnQxNkFycmF5LCAiSW50MzJB
cnJheSI6IEludDMyQXJyYXksICJVaW50OEFycmF5IjogVWludDhBcnJheSwgIlVpbnQxNkFycmF5
IjogVWludDE2QXJyYXksICJVaW50MzJBcnJheSI6IFVpbnQzMkFycmF5LCAiRmxvYXQzMkFycmF5
IjogRmxvYXQzMkFycmF5LCAiRmxvYXQ2NEFycmF5IjogRmxvYXQ2NEFycmF5IH0sIHsgImFib3J0
IjogYWJvcnQsICJhc3NlcnQiOiBhc3NlcnQsICJhc21QcmludEludCI6IGFzbVByaW50SW50LCAi
YXNtUHJpbnRGbG9hdCI6IGFzbVByaW50RmxvYXQsICJtaW4iOiBNYXRoX21pbiwgImludm9rZV92
aWlpaWkiOiBpbnZva2VfdmlpaWlpLCAiaW52b2tlX3ZpaWlpaWlpIjogaW52b2tlX3ZpaWlpaWlp
LCAiaW52b2tlX3ZpIjogaW52b2tlX3ZpLCAiaW52b2tlX3ZpaSI6IGludm9rZV92aWksICJpbnZv
a2VfaWlpIjogaW52b2tlX2lpaSwgImludm9rZV9paWlpaWkiOiBpbnZva2VfaWlpaWlpLCAiaW52
b2tlX2lpIjogaW52b2tlX2lpLCAiaW52b2tlX2lpaWkiOiBpbnZva2VfaWlpaSwgImludm9rZV92
aWlpaWlmIjogaW52b2tlX3ZpaWlpaWYsICJpbnZva2VfdmlpaSI6IGludm9rZV92aWlpLCAiaW52
b2tlX3ZpaWlpaWlpaSI6IGludm9rZV92aWlpaWlpaWksICJpbnZva2VfdiI6IGludm9rZV92LCAi
aW52b2tlX2lpaWlpaWlpaSI6IGludm9rZV9paWlpaWlpaWksICJpbnZva2VfdmlpaWlpaWlpaSI6
IGludm9rZV92aWlpaWlpaWlpLCAiaW52b2tlX3ZpaWlpaWlmIjogaW52b2tlX3ZpaWlpaWlmLCAi
aW52b2tlX3ZpaWlpaWkiOiBpbnZva2VfdmlpaWlpaSwgImludm9rZV9paWlpaSI6IGludm9rZV9p
aWlpaSwgImludm9rZV92aWlpaSI6IGludm9rZV92aWlpaSwgIl9sbHZtX2xpZmV0aW1lX2VuZCI6
IF9sbHZtX2xpZmV0aW1lX2VuZCwgIl9fc2NhblN0cmluZyI6IF9fc2NhblN0cmluZywgIl9wdGhy
ZWFkX211dGV4X2xvY2siOiBfcHRocmVhZF9tdXRleF9sb2NrLCAiX19fY3hhX2VuZF9jYXRjaCI6
IF9fX2N4YV9lbmRfY2F0Y2gsICJfc3RydG91bGwiOiBfc3RydG91bGwsICJfX2lzRmxvYXQiOiBf
X2lzRmxvYXQsICJfZmZsdXNoIjogX2ZmbHVzaCwgIl9faXNMZWFwWWVhciI6IF9faXNMZWFwWWVh
ciwgIl9md3JpdGUiOiBfZndyaXRlLCAiX3NlbmQiOiBfc2VuZCwgIl9sbHZtX3VtdWxfd2l0aF9v
dmVyZmxvd19pMzIiOiBfbGx2bV91bXVsX3dpdGhfb3ZlcmZsb3dfaTMyLCAiX2lzc3BhY2UiOiBf
aXNzcGFjZSwgIl9yZWFkIjogX3JlYWQsICJfX19jeGFfZ3VhcmRfYWJvcnQiOiBfX19jeGFfZ3Vh
cmRfYWJvcnQsICJfbmV3bG9jYWxlIjogX25ld2xvY2FsZSwgIl9fX2d4eF9wZXJzb25hbGl0eV92
MCI6IF9fX2d4eF9wZXJzb25hbGl0eV92MCwgIl9wdGhyZWFkX2NvbmRfd2FpdCI6IF9wdGhyZWFk
X2NvbmRfd2FpdCwgIl9fX2N4YV9yZXRocm93IjogX19fY3hhX3JldGhyb3csICJfX19yZXN1bWVF
eGNlcHRpb24iOiBfX19yZXN1bWVFeGNlcHRpb24sICJfbGx2bV92YV9lbmQiOiBfbGx2bV92YV9l
bmQsICJfdnNzY2FuZiI6IF92c3NjYW5mLCAiX3NucHJpbnRmIjogX3NucHJpbnRmLCAiX2ZnZXRj
IjogX2ZnZXRjLCAiX2F0ZXhpdCI6IF9hdGV4aXQsICJfX19jeGFfZnJlZV9leGNlcHRpb24iOiBf
X19jeGFfZnJlZV9leGNlcHRpb24sICJfX1o4Y2F0Y2xvc2VQOF9ubF9jYXRkIjogX19aOGNhdGNs
b3NlUDhfbmxfY2F0ZCwgIl9fX3NldEVyck5vIjogX19fc2V0RXJyTm8sICJfaXN4ZGlnaXQiOiBf
aXN4ZGlnaXQsICJfZXhpdCI6IF9leGl0LCAiX3NwcmludGYiOiBfc3ByaW50ZiwgIl9fX2N0eXBl
X2JfbG9jIjogX19fY3R5cGVfYl9sb2MsICJfZnJlZWxvY2FsZSI6IF9mcmVlbG9jYWxlLCAiX19a
N2NhdG9wZW5QS2NpIjogX19aN2NhdG9wZW5QS2NpLCAiX2FzcHJpbnRmIjogX2FzcHJpbnRmLCAi
X19fY3hhX2lzX251bWJlcl90eXBlIjogX19fY3hhX2lzX251bWJlcl90eXBlLCAiX19fY3hhX2Rv
ZXNfaW5oZXJpdCI6IF9fX2N4YV9kb2VzX2luaGVyaXQsICJfX19jeGFfZ3VhcmRfYWNxdWlyZSI6
IF9fX2N4YV9ndWFyZF9hY3F1aXJlLCAiX19fbG9jYWxlX21iX2N1cl9tYXgiOiBfX19sb2NhbGVf
bWJfY3VyX21heCwgIl9fX2N4YV9iZWdpbl9jYXRjaCI6IF9fX2N4YV9iZWdpbl9jYXRjaCwgIl9y
ZWN2IjogX3JlY3YsICJfX3BhcnNlSW50NjQiOiBfX3BhcnNlSW50NjQsICJfX1pTdDE4dW5jYXVn
aHRfZXhjZXB0aW9udiI6IF9fWlN0MTh1bmNhdWdodF9leGNlcHRpb252LCAiX19fY3hhX2NhbGxf
dW5leHBlY3RlZCI6IF9fX2N4YV9jYWxsX3VuZXhwZWN0ZWQsICJfX2V4aXQiOiBfX2V4aXQsICJf
c3RyZnRpbWUiOiBfc3RyZnRpbWUsICJfX19jeGFfdGhyb3ciOiBfX19jeGFfdGhyb3csICJfbGx2
bV9laF9leGNlcHRpb24iOiBfbGx2bV9laF9leGNlcHRpb24sICJfcHJlYWQiOiBfcHJlYWQsICJf
X2FycmF5U3VtIjogX19hcnJheVN1bSwgIl9sb2ciOiBfbG9nLCAiX19fY3hhX2ZpbmRfbWF0Y2hp
bmdfY2F0Y2giOiBfX19jeGFfZmluZF9tYXRjaGluZ19jYXRjaCwgIl9fZm9ybWF0U3RyaW5nIjog
X19mb3JtYXRTdHJpbmcsICJfcHRocmVhZF9jb25kX2Jyb2FkY2FzdCI6IF9wdGhyZWFkX2NvbmRf
YnJvYWRjYXN0LCAiX19aU3Q5dGVybWluYXRldiI6IF9fWlN0OXRlcm1pbmF0ZXYsICJfcHRocmVh
ZF9tdXRleF91bmxvY2siOiBfcHRocmVhZF9tdXRleF91bmxvY2ssICJfc2JyayI6IF9zYnJrLCAi
X19fZXJybm9fbG9jYXRpb24iOiBfX19lcnJub19sb2NhdGlvbiwgIl9zdHJlcnJvciI6IF9zdHJl
cnJvciwgIl9sbHZtX2xpZmV0aW1lX3N0YXJ0IjogX2xsdm1fbGlmZXRpbWVfc3RhcnQsICJfX19j
eGFfZ3VhcmRfcmVsZWFzZSI6IF9fX2N4YV9ndWFyZF9yZWxlYXNlLCAiX3VuZ2V0YyI6IF91bmdl
dGMsICJfdXNlbG9jYWxlIjogX3VzZWxvY2FsZSwgIl92c25wcmludGYiOiBfdnNucHJpbnRmLCAi
X3NzY2FuZiI6IF9zc2NhbmYsICJfc3lzY29uZiI6IF9zeXNjb25mLCAiX2ZyZWFkIjogX2ZyZWFk
LCAiX2Fib3J0IjogX2Fib3J0LCAiX2lzZGlnaXQiOiBfaXNkaWdpdCwgIl9zdHJ0b2xsIjogX3N0
cnRvbGwsICJfX2FkZERheXMiOiBfX2FkZERheXMsICJfZmxvb3IiOiBfZmxvb3IsICJfX3JlYWxs
eU5lZ2F0aXZlIjogX19yZWFsbHlOZWdhdGl2ZSwgIl9fWjdjYXRnZXRzUDhfbmxfY2F0ZGlpUEtj
IjogX19aN2NhdGdldHNQOF9ubF9jYXRkaWlQS2MsICJfd3JpdGUiOiBfd3JpdGUsICJfX19jeGFf
YWxsb2NhdGVfZXhjZXB0aW9uIjogX19fY3hhX2FsbG9jYXRlX2V4Y2VwdGlvbiwgIl9fX2N4YV9w
dXJlX3ZpcnR1YWwiOiBfX19jeGFfcHVyZV92aXJ0dWFsLCAiX3Zhc3ByaW50ZiI6IF92YXNwcmlu
dGYsICJfX19jdHlwZV90b3VwcGVyX2xvYyI6IF9fX2N0eXBlX3RvdXBwZXJfbG9jLCAiX19fY3R5
cGVfdG9sb3dlcl9sb2MiOiBfX19jdHlwZV90b2xvd2VyX2xvYywgIl9wd3JpdGUiOiBfcHdyaXRl
LCAiX3N0cmVycm9yX3IiOiBfc3RyZXJyb3JfciwgIl90aW1lIjogX3RpbWUsICJTVEFDS1RPUCI6
IFNUQUNLVE9QLCAiU1RBQ0tfTUFYIjogU1RBQ0tfTUFYLCAidGVtcERvdWJsZVB0ciI6IHRlbXBE
b3VibGVQdHIsICJBQk9SVCI6IEFCT1JULCAiY3R0el9pOCI6IGN0dHpfaTgsICJjdGx6X2k4Ijog
Y3Rsel9pOCwgIk5hTiI6IE5hTiwgIkluZmluaXR5IjogSW5maW5pdHksICJfc3RkaW4iOiBfc3Rk
aW4sICJfX1pUVk4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRSI6IF9fWlRWTjEwX19j
eHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FLCAiX19aVFZOMTBfX2N4eGFiaXYxMjBfX3NpX2Ns
YXNzX3R5cGVfaW5mb0UiOiBfX1pUVk4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZv
RSwgIl9zdGRlcnIiOiBfc3RkZXJyLCAiX19fZnNtdTgiOiBfX19mc211OCwgIl9zdGRvdXQiOiBf
c3Rkb3V0LCAiX19fZHNvX2hhbmRsZSI6IF9fX2Rzb19oYW5kbGUgfSwgYnVmZmVyKTsKLXZhciBf
c3RybGVuID0gTW9kdWxlWyJfc3RybGVuIl0gPSBhc21bIl9zdHJsZW4iXTsKLXZhciBfZnJlZSA9
IE1vZHVsZVsiX2ZyZWUiXSA9IGFzbVsiX2ZyZWUiXTsKLXZhciBfbWFpbiA9IE1vZHVsZVsiX21h
aW4iXSA9IGFzbVsiX21haW4iXTsKLXZhciBfcmVhbGxvYyA9IE1vZHVsZVsiX3JlYWxsb2MiXSA9
IGFzbVsiX3JlYWxsb2MiXTsKLXZhciBfbWVtbW92ZSA9IE1vZHVsZVsiX21lbW1vdmUiXSA9IGFz
bVsiX21lbW1vdmUiXTsKLXZhciBfX0dMT0JBTF9fSV9hID0gTW9kdWxlWyJfX0dMT0JBTF9fSV9h
Il0gPSBhc21bIl9fR0xPQkFMX19JX2EiXTsKLXZhciBfbWVtc2V0ID0gTW9kdWxlWyJfbWVtc2V0
Il0gPSBhc21bIl9tZW1zZXQiXTsKLXZhciBfbWFsbG9jID0gTW9kdWxlWyJfbWFsbG9jIl0gPSBh
c21bIl9tYWxsb2MiXTsKLXZhciBfbWVtY3B5ID0gTW9kdWxlWyJfbWVtY3B5Il0gPSBhc21bIl9t
ZW1jcHkiXTsKLXZhciBfbGx2bV9jdGx6X2kzMiA9IE1vZHVsZVsiX2xsdm1fY3Rsel9pMzIiXSA9
IGFzbVsiX2xsdm1fY3Rsel9pMzIiXTsKLXZhciBfX0dMT0JBTF9fSV9hOCA9IE1vZHVsZVsiX19H
TE9CQUxfX0lfYTgiXSA9IGFzbVsiX19HTE9CQUxfX0lfYTgiXTsKLXZhciBydW5Qb3N0U2V0cyA9
IE1vZHVsZVsicnVuUG9zdFNldHMiXSA9IGFzbVsicnVuUG9zdFNldHMiXTsKLXZhciBkeW5DYWxs
X3ZpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWkiXSA9IGFzbVsiZHluQ2FsbF92aWlpaWki
XTsKLXZhciBkeW5DYWxsX3ZpaWlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpIl0gPSBh
c21bImR5bkNhbGxfdmlpaWlpaWkiXTsKLXZhciBkeW5DYWxsX3ZpID0gTW9kdWxlWyJkeW5DYWxs
X3ZpIl0gPSBhc21bImR5bkNhbGxfdmkiXTsKLXZhciBkeW5DYWxsX3ZpaSA9IE1vZHVsZVsiZHlu
Q2FsbF92aWkiXSA9IGFzbVsiZHluQ2FsbF92aWkiXTsKLXZhciBkeW5DYWxsX2lpaSA9IE1vZHVs
ZVsiZHluQ2FsbF9paWkiXSA9IGFzbVsiZHluQ2FsbF9paWkiXTsKLXZhciBkeW5DYWxsX2lpaWlp
aSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpaWkiXSA9IGFzbVsiZHluQ2FsbF9paWlpaWkiXTsKLXZh
ciBkeW5DYWxsX2lpID0gTW9kdWxlWyJkeW5DYWxsX2lpIl0gPSBhc21bImR5bkNhbGxfaWkiXTsK
LXZhciBkeW5DYWxsX2lpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpaSJdID0gYXNtWyJkeW5DYWxs
X2lpaWkiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaWYgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpZiJd
ID0gYXNtWyJkeW5DYWxsX3ZpaWlpaWYiXTsKLXZhciBkeW5DYWxsX3ZpaWkgPSBNb2R1bGVbImR5
bkNhbGxfdmlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWkiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaWlp
aSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaWkiXSA9IGFzbVsiZHluQ2FsbF92aWlpaWlpaWki
XTsKLXZhciBkeW5DYWxsX3YgPSBNb2R1bGVbImR5bkNhbGxfdiJdID0gYXNtWyJkeW5DYWxsX3Yi
XTsKLXZhciBkeW5DYWxsX2lpaWlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpaWlpaWkiXSA9
IGFzbVsiZHluQ2FsbF9paWlpaWlpaWkiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaWlpaWkgPSBNb2R1
bGVbImR5bkNhbGxfdmlpaWlpaWlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWlpaWlpaWkiXTsKLXZh
ciBkeW5DYWxsX3ZpaWlpaWlmID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlmIl0gPSBhc21bImR5
bkNhbGxfdmlpaWlpaWYiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxf
dmlpaWlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWlpaWkiXTsKLXZhciBkeW5DYWxsX2lpaWlpID0g
TW9kdWxlWyJkeW5DYWxsX2lpaWlpIl0gPSBhc21bImR5bkNhbGxfaWlpaWkiXTsKLXZhciBkeW5D
YWxsX3ZpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpIl0gPSBhc21bImR5bkNhbGxfdmlpaWki
XTsKLVJ1bnRpbWUuc3RhY2tBbGxvYyA9IGZ1bmN0aW9uKHNpemUpIHsgcmV0dXJuIGFzbVsnc3Rh
Y2tBbGxvYyddKHNpemUpIH07Ci1SdW50aW1lLnN0YWNrU2F2ZSA9IGZ1bmN0aW9uKCkgeyByZXR1
cm4gYXNtWydzdGFja1NhdmUnXSgpIH07Ci1SdW50aW1lLnN0YWNrUmVzdG9yZSA9IGZ1bmN0aW9u
KHRvcCkgeyBhc21bJ3N0YWNrUmVzdG9yZSddKHRvcCkgfTsKLS8vIFRPRE86IHN0cmlwIG91dCBw
YXJ0cyBvZiB0aGlzIHdlIGRvIG5vdCBuZWVkCi0vLz09PT09PT0gYmVnaW4gY2xvc3VyZSBpNjQg
Y29kZSA9PT09PT09Ci0vLyBDb3B5cmlnaHQgMjAwOSBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhv
cnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNo
ZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0vLyB5b3UgbWF5IG5vdCB1
c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0vLyBZ
b3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLS8vCi0vLyAgICAgIGh0dHA6
Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotLy8KLS8vIFVubGVzcyByZXF1
aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUK
LS8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJB
Uy1JUyIgQkFTSVMsCi0vLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkg
S0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLS8vIFNlZSB0aGUgTGljZW5zZSBmb3Ig
dGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLS8vIGxpbWl0
YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IERlZmluZXMg
YSBMb25nIGNsYXNzIGZvciByZXByZXNlbnRpbmcgYSA2NC1iaXQgdHdvJ3MtY29tcGxlbWVudAot
ICogaW50ZWdlciB2YWx1ZSwgd2hpY2ggZmFpdGhmdWxseSBzaW11bGF0ZXMgdGhlIGJlaGF2aW9y
IG9mIGEgSmF2YSAibG9uZyIuIFRoaXMKLSAqIGltcGxlbWVudGF0aW9uIGlzIGRlcml2ZWQgZnJv
bSBMb25nTGliIGluIEdXVC4KLSAqCi0gKi8KLXZhciBpNjRNYXRoID0gKGZ1bmN0aW9uKCkgeyAv
LyBFbXNjcmlwdGVuIHdyYXBwZXIKLSAgdmFyIGdvb2cgPSB7IG1hdGg6IHt9IH07Ci0gIC8qKgot
ICAgKiBDb25zdHJ1Y3RzIGEgNjQtYml0IHR3bydzLWNvbXBsZW1lbnQgaW50ZWdlciwgZ2l2ZW4g
aXRzIGxvdyBhbmQgaGlnaCAzMi1iaXQKLSAgICogdmFsdWVzIGFzICpzaWduZWQqIGludGVnZXJz
LiAgU2VlIHRoZSBmcm9tKiBmdW5jdGlvbnMgYmVsb3cgZm9yIG1vcmUKLSAgICogY29udmVuaWVu
dCB3YXlzIG9mIGNvbnN0cnVjdGluZyBMb25ncy4KLSAgICoKLSAgICogVGhlIGludGVybmFsIHJl
cHJlc2VudGF0aW9uIG9mIGEgbG9uZyBpcyB0aGUgdHdvIGdpdmVuIHNpZ25lZCwgMzItYml0IHZh
bHVlcy4KLSAgICogV2UgdXNlIDMyLWJpdCBwaWVjZXMgYmVjYXVzZSB0aGVzZSBhcmUgdGhlIHNp
emUgb2YgaW50ZWdlcnMgb24gd2hpY2gKLSAgICogSmF2YXNjcmlwdCBwZXJmb3JtcyBiaXQtb3Bl
cmF0aW9ucy4gIEZvciBvcGVyYXRpb25zIGxpa2UgYWRkaXRpb24gYW5kCi0gICAqIG11bHRpcGxp
Y2F0aW9uLCB3ZSBzcGxpdCBlYWNoIG51bWJlciBpbnRvIDE2LWJpdCBwaWVjZXMsIHdoaWNoIGNh
biBlYXNpbHkgYmUKLSAgICogbXVsdGlwbGllZCB3aXRoaW4gSmF2YXNjcmlwdCdzIGZsb2F0aW5n
LXBvaW50IHJlcHJlc2VudGF0aW9uIHdpdGhvdXQgb3ZlcmZsb3cKLSAgICogb3IgY2hhbmdlIGlu
IHNpZ24uCi0gICAqCi0gICAqIEluIHRoZSBhbGdvcml0aG1zIGJlbG93LCB3ZSBmcmVxdWVudGx5
IHJlZHVjZSB0aGUgbmVnYXRpdmUgY2FzZSB0byB0aGUKLSAgICogcG9zaXRpdmUgY2FzZSBieSBu
ZWdhdGluZyB0aGUgaW5wdXQocykgYW5kIHRoZW4gcG9zdC1wcm9jZXNzaW5nIHRoZSByZXN1bHQu
Ci0gICAqIE5vdGUgdGhhdCB3ZSBtdXN0IEFMV0FZUyBjaGVjayBzcGVjaWFsbHkgd2hldGhlciB0
aG9zZSB2YWx1ZXMgYXJlIE1JTl9WQUxVRQotICAgKiAoLTJeNjMpIGJlY2F1c2UgLU1JTl9WQUxV
RSA9PSBNSU5fVkFMVUUgKHNpbmNlIDJeNjMgY2Fubm90IGJlIHJlcHJlc2VudGVkIGFzCi0gICAq
IGEgcG9zaXRpdmUgbnVtYmVyLCBpdCBvdmVyZmxvd3MgYmFjayBpbnRvIGEgbmVnYXRpdmUpLiAg
Tm90IGhhbmRsaW5nIHRoaXMKLSAgICogY2FzZSB3b3VsZCBvZnRlbiByZXN1bHQgaW4gaW5maW5p
dGUgcmVjdXJzaW9uLgotICAgKgotICAgKiBAcGFyYW0ge251bWJlcn0gbG93ICBUaGUgbG93IChz
aWduZWQpIDMyIGJpdHMgb2YgdGhlIGxvbmcuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBoaWdoICBU
aGUgaGlnaCAoc2lnbmVkKSAzMiBiaXRzIG9mIHRoZSBsb25nLgotICAgKiBAY29uc3RydWN0b3IK
LSAgICovCi0gIGdvb2cubWF0aC5Mb25nID0gZnVuY3Rpb24obG93LCBoaWdoKSB7Ci0gICAgLyoq
Ci0gICAgICogQHR5cGUge251bWJlcn0KLSAgICAgKiBAcHJpdmF0ZQotICAgICAqLwotICAgIHRo
aXMubG93XyA9IGxvdyB8IDA7ICAvLyBmb3JjZSBpbnRvIDMyIHNpZ25lZCBiaXRzLgotICAgIC8q
KgotICAgICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAgICogQHByaXZhdGUKLSAgICAgKi8KLSAgICB0
aGlzLmhpZ2hfID0gaGlnaCB8IDA7ICAvLyBmb3JjZSBpbnRvIDMyIHNpZ25lZCBiaXRzLgotICB9
OwotICAvLyBOT1RFOiBDb21tb24gY29uc3RhbnQgdmFsdWVzIFpFUk8sIE9ORSwgTkVHX09ORSwg
ZXRjLiBhcmUgZGVmaW5lZCBiZWxvdyB0aGUKLSAgLy8gZnJvbSogbWV0aG9kcyBvbiB3aGljaCB0
aGV5IGRlcGVuZC4KLSAgLyoqCi0gICAqIEEgY2FjaGUgb2YgdGhlIExvbmcgcmVwcmVzZW50YXRp
b25zIG9mIHNtYWxsIGludGVnZXIgdmFsdWVzLgotICAgKiBAdHlwZSB7IU9iamVjdH0KLSAgICog
QHByaXZhdGUKLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLkludENhY2hlXyA9IHt9OwotICAvKioK
LSAgICogUmV0dXJucyBhIExvbmcgcmVwcmVzZW50aW5nIHRoZSBnaXZlbiAoMzItYml0KSBpbnRl
Z2VyIHZhbHVlLgotICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgVGhlIDMyLWJpdCBpbnRlZ2Vy
IGluIHF1ZXN0aW9uLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBjb3JyZXNw
b25kaW5nIExvbmcgdmFsdWUuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5mcm9tSW50ID0gZnVu
Y3Rpb24odmFsdWUpIHsKLSAgICBpZiAoLTEyOCA8PSB2YWx1ZSAmJiB2YWx1ZSA8IDEyOCkgewot
ICAgICAgdmFyIGNhY2hlZE9iaiA9IGdvb2cubWF0aC5Mb25nLkludENhY2hlX1t2YWx1ZV07Ci0g
ICAgICBpZiAoY2FjaGVkT2JqKSB7Ci0gICAgICAgIHJldHVybiBjYWNoZWRPYmo7Ci0gICAgICB9
Ci0gICAgfQotICAgIHZhciBvYmogPSBuZXcgZ29vZy5tYXRoLkxvbmcodmFsdWUgfCAwLCB2YWx1
ZSA8IDAgPyAtMSA6IDApOwotICAgIGlmICgtMTI4IDw9IHZhbHVlICYmIHZhbHVlIDwgMTI4KSB7
Ci0gICAgICBnb29nLm1hdGguTG9uZy5JbnRDYWNoZV9bdmFsdWVdID0gb2JqOwotICAgIH0KLSAg
ICByZXR1cm4gb2JqOwotICB9OwotICAvKioKLSAgICogUmV0dXJucyBhIExvbmcgcmVwcmVzZW50
aW5nIHRoZSBnaXZlbiB2YWx1ZSwgcHJvdmlkZWQgdGhhdCBpdCBpcyBhIGZpbml0ZQotICAgKiBu
dW1iZXIuICBPdGhlcndpc2UsIHplcm8gaXMgcmV0dXJuZWQuCi0gICAqIEBwYXJhbSB7bnVtYmVy
fSB2YWx1ZSBUaGUgbnVtYmVyIGluIHF1ZXN0aW9uLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRo
Lkxvbmd9IFRoZSBjb3JyZXNwb25kaW5nIExvbmcgdmFsdWUuCi0gICAqLwotICBnb29nLm1hdGgu
TG9uZy5mcm9tTnVtYmVyID0gZnVuY3Rpb24odmFsdWUpIHsKLSAgICBpZiAoaXNOYU4odmFsdWUp
IHx8ICFpc0Zpbml0ZSh2YWx1ZSkpIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5aRVJP
OwotICAgIH0gZWxzZSBpZiAodmFsdWUgPD0gLWdvb2cubWF0aC5Mb25nLlRXT19QV1JfNjNfREJM
XykgewotICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRTsKLSAgICB9IGVsc2Ug
aWYgKHZhbHVlICsgMSA+PSBnb29nLm1hdGguTG9uZy5UV09fUFdSXzYzX0RCTF8pIHsKLSAgICAg
IHJldHVybiBnb29nLm1hdGguTG9uZy5NQVhfVkFMVUU7Ci0gICAgfSBlbHNlIGlmICh2YWx1ZSA8
IDApIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tTnVtYmVyKC12YWx1ZSkubmVn
YXRlKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHJldHVybiBuZXcgZ29vZy5tYXRoLkxvbmcoCi0g
ICAgICAgICAgKHZhbHVlICUgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMl9EQkxfKSB8IDAsCi0g
ICAgICAgICAgKHZhbHVlIC8gZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMl9EQkxfKSB8IDApOwot
ICAgIH0KLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgYSBMb25nIHJlcHJlc2VudGluZyB0aGUg
NjQtYml0IGludGVnZXIgdGhhdCBjb21lcyBieSBjb25jYXRlbmF0aW5nCi0gICAqIHRoZSBnaXZl
biBoaWdoIGFuZCBsb3cgYml0cy4gIEVhY2ggaXMgYXNzdW1lZCB0byB1c2UgMzIgYml0cy4KLSAg
ICogQHBhcmFtIHtudW1iZXJ9IGxvd0JpdHMgVGhlIGxvdyAzMi1iaXRzLgotICAgKiBAcGFyYW0g
e251bWJlcn0gaGlnaEJpdHMgVGhlIGhpZ2ggMzItYml0cy4KLSAgICogQHJldHVybiB7IWdvb2cu
bWF0aC5Mb25nfSBUaGUgY29ycmVzcG9uZGluZyBMb25nIHZhbHVlLgotICAgKi8KLSAgZ29vZy5t
YXRoLkxvbmcuZnJvbUJpdHMgPSBmdW5jdGlvbihsb3dCaXRzLCBoaWdoQml0cykgewotICAgIHJl
dHVybiBuZXcgZ29vZy5tYXRoLkxvbmcobG93Qml0cywgaGlnaEJpdHMpOwotICB9OwotICAvKioK
LSAgICogUmV0dXJucyBhIExvbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIHN0cmluZywg
d3JpdHRlbiB1c2luZyB0aGUgZ2l2ZW4KLSAgICogcmFkaXguCi0gICAqIEBwYXJhbSB7c3RyaW5n
fSBzdHIgVGhlIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIExvbmcuCi0gICAqIEBwYXJh
bSB7bnVtYmVyPX0gb3B0X3JhZGl4IFRoZSByYWRpeCBpbiB3aGljaCB0aGUgdGV4dCBpcyB3cml0
dGVuLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBjb3JyZXNwb25kaW5nIExv
bmcgdmFsdWUuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5mcm9tU3RyaW5nID0gZnVuY3Rpb24o
c3RyLCBvcHRfcmFkaXgpIHsKLSAgICBpZiAoc3RyLmxlbmd0aCA9PSAwKSB7Ci0gICAgICB0aHJv
dyBFcnJvcignbnVtYmVyIGZvcm1hdCBlcnJvcjogZW1wdHkgc3RyaW5nJyk7Ci0gICAgfQotICAg
IHZhciByYWRpeCA9IG9wdF9yYWRpeCB8fCAxMDsKLSAgICBpZiAocmFkaXggPCAyIHx8IDM2IDwg
cmFkaXgpIHsKLSAgICAgIHRocm93IEVycm9yKCdyYWRpeCBvdXQgb2YgcmFuZ2U6ICcgKyByYWRp
eCk7Ci0gICAgfQotICAgIGlmIChzdHIuY2hhckF0KDApID09ICctJykgewotICAgICAgcmV0dXJu
IGdvb2cubWF0aC5Mb25nLmZyb21TdHJpbmcoc3RyLnN1YnN0cmluZygxKSwgcmFkaXgpLm5lZ2F0
ZSgpOwotICAgIH0gZWxzZSBpZiAoc3RyLmluZGV4T2YoJy0nKSA+PSAwKSB7Ci0gICAgICB0aHJv
dyBFcnJvcignbnVtYmVyIGZvcm1hdCBlcnJvcjogaW50ZXJpb3IgIi0iIGNoYXJhY3RlcjogJyAr
IHN0cik7Ci0gICAgfQotICAgIC8vIERvIHNldmVyYWwgKDgpIGRpZ2l0cyBlYWNoIHRpbWUgdGhy
b3VnaCB0aGUgbG9vcCwgc28gYXMgdG8KLSAgICAvLyBtaW5pbWl6ZSB0aGUgY2FsbHMgdG8gdGhl
IHZlcnkgZXhwZW5zaXZlIGVtdWxhdGVkIGRpdi4KLSAgICB2YXIgcmFkaXhUb1Bvd2VyID0gZ29v
Zy5tYXRoLkxvbmcuZnJvbU51bWJlcihNYXRoLnBvdyhyYWRpeCwgOCkpOwotICAgIHZhciByZXN1
bHQgPSBnb29nLm1hdGguTG9uZy5aRVJPOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxl
bmd0aDsgaSArPSA4KSB7Ci0gICAgICB2YXIgc2l6ZSA9IE1hdGgubWluKDgsIHN0ci5sZW5ndGgg
LSBpKTsKLSAgICAgIHZhciB2YWx1ZSA9IHBhcnNlSW50KHN0ci5zdWJzdHJpbmcoaSwgaSArIHNp
emUpLCByYWRpeCk7Ci0gICAgICBpZiAoc2l6ZSA8IDgpIHsKLSAgICAgICAgdmFyIHBvd2VyID0g
Z29vZy5tYXRoLkxvbmcuZnJvbU51bWJlcihNYXRoLnBvdyhyYWRpeCwgc2l6ZSkpOwotICAgICAg
ICByZXN1bHQgPSByZXN1bHQubXVsdGlwbHkocG93ZXIpLmFkZChnb29nLm1hdGguTG9uZy5mcm9t
TnVtYmVyKHZhbHVlKSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXN1bHQgPSByZXN1bHQu
bXVsdGlwbHkocmFkaXhUb1Bvd2VyKTsKLSAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmFkZChnb29n
Lm1hdGguTG9uZy5mcm9tTnVtYmVyKHZhbHVlKSk7Ci0gICAgICB9Ci0gICAgfQotICAgIHJldHVy
biByZXN1bHQ7Ci0gIH07Ci0gIC8vIE5PVEU6IHRoZSBjb21waWxlciBzaG91bGQgaW5saW5lIHRo
ZXNlIGNvbnN0YW50IHZhbHVlcyBiZWxvdyBhbmQgdGhlbiByZW1vdmUKLSAgLy8gdGhlc2UgdmFy
aWFibGVzLCBzbyB0aGVyZSBzaG91bGQgYmUgbm8gcnVudGltZSBwZW5hbHR5IGZvciB0aGVzZS4K
LSAgLyoqCi0gICAqIE51bWJlciB1c2VkIHJlcGVhdGVkIGJlbG93IGluIGNhbGN1bGF0aW9ucy4g
IFRoaXMgbXVzdCBhcHBlYXIgYmVmb3JlIHRoZQotICAgKiBmaXJzdCBjYWxsIHRvIGFueSBmcm9t
KiBmdW5jdGlvbiBiZWxvdy4KLSAgICogQHR5cGUge251bWJlcn0KLSAgICogQHByaXZhdGUKLSAg
ICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMTZfREJMXyA9IDEgPDwgMTY7Ci0gIC8qKgot
ICAgKiBAdHlwZSB7bnVtYmVyfQotICAgKiBAcHJpdmF0ZQotICAgKi8KLSAgZ29vZy5tYXRoLkxv
bmcuVFdPX1BXUl8yNF9EQkxfID0gMSA8PCAyNDsKLSAgLyoqCi0gICAqIEB0eXBlIHtudW1iZXJ9
Ci0gICAqIEBwcml2YXRlCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8g
PQotICAgICAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8xNl9EQkxfICogZ29vZy5tYXRoLkxvbmcu
VFdPX1BXUl8xNl9EQkxfOwotICAvKioKLSAgICogQHR5cGUge251bWJlcn0KLSAgICogQHByaXZh
dGUKLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzFfREJMXyA9Ci0gICAgICBnb29n
Lm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8gLyAyOwotICAvKioKLSAgICogQHR5cGUge251bWJl
cn0KLSAgICogQHByaXZhdGUKLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfNDhfREJM
XyA9Ci0gICAgICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8gKiBnb29nLm1hdGguTG9u
Zy5UV09fUFdSXzE2X0RCTF87Ci0gIC8qKgotICAgKiBAdHlwZSB7bnVtYmVyfQotICAgKiBAcHJp
dmF0ZQotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl82NF9EQkxfID0KLSAgICAgIGdv
b2cubWF0aC5Mb25nLlRXT19QV1JfMzJfREJMXyAqIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzJf
REJMXzsKLSAgLyoqCi0gICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAqIEBwcml2YXRlCi0gICAqLwot
ICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzYzX0RCTF8gPQotICAgICAgZ29vZy5tYXRoLkxvbmcu
VFdPX1BXUl82NF9EQkxfIC8gMjsKLSAgLyoqIEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9ICovCi0g
IGdvb2cubWF0aC5Mb25nLlpFUk8gPSBnb29nLm1hdGguTG9uZy5mcm9tSW50KDApOwotICAvKiog
QHR5cGUgeyFnb29nLm1hdGguTG9uZ30gKi8KLSAgZ29vZy5tYXRoLkxvbmcuT05FID0gZ29vZy5t
YXRoLkxvbmcuZnJvbUludCgxKTsKLSAgLyoqIEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9ICovCi0g
IGdvb2cubWF0aC5Mb25nLk5FR19PTkUgPSBnb29nLm1hdGguTG9uZy5mcm9tSW50KC0xKTsKLSAg
LyoqIEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9ICovCi0gIGdvb2cubWF0aC5Mb25nLk1BWF9WQUxV
RSA9Ci0gICAgICBnb29nLm1hdGguTG9uZy5mcm9tQml0cygweEZGRkZGRkZGIHwgMCwgMHg3RkZG
RkZGRiB8IDApOwotICAvKiogQHR5cGUgeyFnb29nLm1hdGguTG9uZ30gKi8KLSAgZ29vZy5tYXRo
LkxvbmcuTUlOX1ZBTFVFID0gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoMCwgMHg4MDAwMDAwMCB8
IDApOwotICAvKioKLSAgICogQHR5cGUgeyFnb29nLm1hdGguTG9uZ30KLSAgICogQHByaXZhdGUK
LSAgICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMjRfID0gZ29vZy5tYXRoLkxvbmcuZnJv
bUludCgxIDw8IDI0KTsKLSAgLyoqIEByZXR1cm4ge251bWJlcn0gVGhlIHZhbHVlLCBhc3N1bWlu
ZyBpdCBpcyBhIDMyLWJpdCBpbnRlZ2VyLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUu
dG9JbnQgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5sb3dfOwotICB9OwotICAvKiog
QHJldHVybiB7bnVtYmVyfSBUaGUgY2xvc2VzdCBmbG9hdGluZy1wb2ludCByZXByZXNlbnRhdGlv
biB0byB0aGlzIHZhbHVlLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUudG9OdW1iZXIg
PSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5oaWdoXyAqIGdvb2cubWF0aC5Mb25nLlRX
T19QV1JfMzJfREJMXyArCi0gICAgICAgICAgIHRoaXMuZ2V0TG93Qml0c1Vuc2lnbmVkKCk7Ci0g
IH07Ci0gIC8qKgotICAgKiBAcGFyYW0ge251bWJlcj19IG9wdF9yYWRpeCBUaGUgcmFkaXggaW4g
d2hpY2ggdGhlIHRleHQgc2hvdWxkIGJlIHdyaXR0ZW4uCi0gICAqIEByZXR1cm4ge3N0cmluZ30g
VGhlIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhpcyB2YWx1ZS4KLSAgICovCi0gIGdvb2cu
bWF0aC5Mb25nLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKG9wdF9yYWRpeCkgewotICAg
IHZhciByYWRpeCA9IG9wdF9yYWRpeCB8fCAxMDsKLSAgICBpZiAocmFkaXggPCAyIHx8IDM2IDwg
cmFkaXgpIHsKLSAgICAgIHRocm93IEVycm9yKCdyYWRpeCBvdXQgb2YgcmFuZ2U6ICcgKyByYWRp
eCk7Ci0gICAgfQotICAgIGlmICh0aGlzLmlzWmVybygpKSB7Ci0gICAgICByZXR1cm4gJzAnOwot
ICAgIH0KLSAgICBpZiAodGhpcy5pc05lZ2F0aXZlKCkpIHsKLSAgICAgIGlmICh0aGlzLmVxdWFs
cyhnb29nLm1hdGguTG9uZy5NSU5fVkFMVUUpKSB7Ci0gICAgICAgIC8vIFdlIG5lZWQgdG8gY2hh
bmdlIHRoZSBMb25nIHZhbHVlIGJlZm9yZSBpdCBjYW4gYmUgbmVnYXRlZCwgc28gd2UgcmVtb3Zl
Ci0gICAgICAgIC8vIHRoZSBib3R0b20tbW9zdCBkaWdpdCBpbiB0aGlzIGJhc2UgYW5kIHRoZW4g
cmVjdXJzZSB0byBkbyB0aGUgcmVzdC4KLSAgICAgICAgdmFyIHJhZGl4TG9uZyA9IGdvb2cubWF0
aC5Mb25nLmZyb21OdW1iZXIocmFkaXgpOwotICAgICAgICB2YXIgZGl2ID0gdGhpcy5kaXYocmFk
aXhMb25nKTsKLSAgICAgICAgdmFyIHJlbSA9IGRpdi5tdWx0aXBseShyYWRpeExvbmcpLnN1YnRy
YWN0KHRoaXMpOwotICAgICAgICByZXR1cm4gZGl2LnRvU3RyaW5nKHJhZGl4KSArIHJlbS50b0lu
dCgpLnRvU3RyaW5nKHJhZGl4KTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiAnLScg
KyB0aGlzLm5lZ2F0ZSgpLnRvU3RyaW5nKHJhZGl4KTsKLSAgICAgIH0KLSAgICB9Ci0gICAgLy8g
RG8gc2V2ZXJhbCAoNikgZGlnaXRzIGVhY2ggdGltZSB0aHJvdWdoIHRoZSBsb29wLCBzbyBhcyB0
bwotICAgIC8vIG1pbmltaXplIHRoZSBjYWxscyB0byB0aGUgdmVyeSBleHBlbnNpdmUgZW11bGF0
ZWQgZGl2LgotICAgIHZhciByYWRpeFRvUG93ZXIgPSBnb29nLm1hdGguTG9uZy5mcm9tTnVtYmVy
KE1hdGgucG93KHJhZGl4LCA2KSk7Ci0gICAgdmFyIHJlbSA9IHRoaXM7Ci0gICAgdmFyIHJlc3Vs
dCA9ICcnOwotICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICB2YXIgcmVtRGl2ID0gcmVtLmRpdihy
YWRpeFRvUG93ZXIpOwotICAgICAgdmFyIGludHZhbCA9IHJlbS5zdWJ0cmFjdChyZW1EaXYubXVs
dGlwbHkocmFkaXhUb1Bvd2VyKSkudG9JbnQoKTsKLSAgICAgIHZhciBkaWdpdHMgPSBpbnR2YWwu
dG9TdHJpbmcocmFkaXgpOwotICAgICAgcmVtID0gcmVtRGl2OwotICAgICAgaWYgKHJlbS5pc1pl
cm8oKSkgewotICAgICAgICByZXR1cm4gZGlnaXRzICsgcmVzdWx0OwotICAgICAgfSBlbHNlIHsK
LSAgICAgICAgd2hpbGUgKGRpZ2l0cy5sZW5ndGggPCA2KSB7Ci0gICAgICAgICAgZGlnaXRzID0g
JzAnICsgZGlnaXRzOwotICAgICAgICB9Ci0gICAgICAgIHJlc3VsdCA9ICcnICsgZGlnaXRzICsg
cmVzdWx0OwotICAgICAgfQotICAgIH0KLSAgfTsKLSAgLyoqIEByZXR1cm4ge251bWJlcn0gVGhl
IGhpZ2ggMzItYml0cyBhcyBhIHNpZ25lZCB2YWx1ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJv
dG90eXBlLmdldEhpZ2hCaXRzID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRoaXMuaGlnaF87
Ci0gIH07Ci0gIC8qKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBsb3cgMzItYml0cyBhcyBhIHNpZ25l
ZCB2YWx1ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmdldExvd0JpdHMgPSBmdW5j
dGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5sb3dfOwotICB9OwotICAvKiogQHJldHVybiB7bnVt
YmVyfSBUaGUgbG93IDMyLWJpdHMgYXMgYW4gdW5zaWduZWQgdmFsdWUuICovCi0gIGdvb2cubWF0
aC5Mb25nLnByb3RvdHlwZS5nZXRMb3dCaXRzVW5zaWduZWQgPSBmdW5jdGlvbigpIHsKLSAgICBy
ZXR1cm4gKHRoaXMubG93XyA+PSAwKSA/Ci0gICAgICAgIHRoaXMubG93XyA6IGdvb2cubWF0aC5M
b25nLlRXT19QV1JfMzJfREJMXyArIHRoaXMubG93XzsKLSAgfTsKLSAgLyoqCi0gICAqIEByZXR1
cm4ge251bWJlcn0gUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJpdHMgbmVlZGVkIHRvIHJlcHJlc2Vu
dCB0aGUgYWJzb2x1dGUKLSAgICogICAgIHZhbHVlIG9mIHRoaXMgTG9uZy4KLSAgICovCi0gIGdv
b2cubWF0aC5Mb25nLnByb3RvdHlwZS5nZXROdW1CaXRzQWJzID0gZnVuY3Rpb24oKSB7Ci0gICAg
aWYgKHRoaXMuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICBpZiAodGhpcy5lcXVhbHMoZ29vZy5tYXRo
LkxvbmcuTUlOX1ZBTFVFKSkgewotICAgICAgICByZXR1cm4gNjQ7Ci0gICAgICB9IGVsc2Ugewot
ICAgICAgICByZXR1cm4gdGhpcy5uZWdhdGUoKS5nZXROdW1CaXRzQWJzKCk7Ci0gICAgICB9Ci0g
ICAgfSBlbHNlIHsKLSAgICAgIHZhciB2YWwgPSB0aGlzLmhpZ2hfICE9IDAgPyB0aGlzLmhpZ2hf
IDogdGhpcy5sb3dfOwotICAgICAgZm9yICh2YXIgYml0ID0gMzE7IGJpdCA+IDA7IGJpdC0tKSB7
Ci0gICAgICAgIGlmICgodmFsICYgKDEgPDwgYml0KSkgIT0gMCkgewotICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICByZXR1cm4gdGhpcy5oaWdoXyAhPSAwID8gYml0
ICsgMzMgOiBiaXQgKyAxOwotICAgIH0KLSAgfTsKLSAgLyoqIEByZXR1cm4ge2Jvb2xlYW59IFdo
ZXRoZXIgdGhpcyB2YWx1ZSBpcyB6ZXJvLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUu
aXNaZXJvID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRoaXMuaGlnaF8gPT0gMCAmJiB0aGlz
Lmxvd18gPT0gMDsKLSAgfTsKLSAgLyoqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyB2
YWx1ZSBpcyBuZWdhdGl2ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmlzTmVnYXRp
dmUgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5oaWdoXyA8IDA7Ci0gIH07Ci0gIC8q
KiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgdmFsdWUgaXMgb2RkLiAqLwotICBnb29n
Lm1hdGguTG9uZy5wcm90b3R5cGUuaXNPZGQgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gKHRo
aXMubG93XyAmIDEpID09IDE7Ci0gIH07Ci0gIC8qKgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5M
b25nfSBvdGhlciBMb25nIHRvIGNvbXBhcmUgYWdhaW5zdC4KLSAgICogQHJldHVybiB7Ym9vbGVh
bn0gV2hldGhlciB0aGlzIExvbmcgZXF1YWxzIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0
aC5Mb25nLnByb3RvdHlwZS5lcXVhbHMgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiAo
dGhpcy5oaWdoXyA9PSBvdGhlci5oaWdoXykgJiYgKHRoaXMubG93XyA9PSBvdGhlci5sb3dfKTsK
LSAgfTsKLSAgLyoqCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8g
Y29tcGFyZSBhZ2FpbnN0LgotICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgTG9u
ZyBkb2VzIG5vdCBlcXVhbCB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90
b3R5cGUubm90RXF1YWxzID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gKHRoaXMuaGln
aF8gIT0gb3RoZXIuaGlnaF8pIHx8ICh0aGlzLmxvd18gIT0gb3RoZXIubG93Xyk7Ci0gIH07Ci0g
IC8qKgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRvIGNvbXBhcmUg
YWdhaW5zdC4KLSAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGlzIExvbmcgaXMgbGVz
cyB0aGFuIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5sZXNz
VGhhbiA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJuIHRoaXMuY29tcGFyZShvdGhlcikg
PCAwOwotICB9OwotICAvKioKLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9u
ZyB0byBjb21wYXJlIGFnYWluc3QuCi0gICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhp
cyBMb25nIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgb3RoZXIuCi0gICAqLwotICBnb29n
Lm1hdGguTG9uZy5wcm90b3R5cGUubGVzc1RoYW5PckVxdWFsID0gZnVuY3Rpb24ob3RoZXIpIHsK
LSAgICByZXR1cm4gdGhpcy5jb21wYXJlKG90aGVyKSA8PSAwOwotICB9OwotICAvKioKLSAgICog
QHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0byBjb21wYXJlIGFnYWluc3QuCi0g
ICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyBMb25nIGlzIGdyZWF0ZXIgdGhhbiB0
aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuZ3JlYXRlclRoYW4g
PSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiB0aGlzLmNvbXBhcmUob3RoZXIpID4gMDsK
LSAgfTsKLSAgLyoqCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8g
Y29tcGFyZSBhZ2FpbnN0LgotICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgTG9u
ZyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5t
YXRoLkxvbmcucHJvdG90eXBlLmdyZWF0ZXJUaGFuT3JFcXVhbCA9IGZ1bmN0aW9uKG90aGVyKSB7
Ci0gICAgcmV0dXJuIHRoaXMuY29tcGFyZShvdGhlcikgPj0gMDsKLSAgfTsKLSAgLyoqCi0gICAq
IENvbXBhcmVzIHRoaXMgTG9uZyB3aXRoIHRoZSBnaXZlbiBvbmUuCi0gICAqIEBwYXJhbSB7Z29v
Zy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8gY29tcGFyZSBhZ2FpbnN0LgotICAgKiBAcmV0dXJu
IHtudW1iZXJ9IDAgaWYgdGhleSBhcmUgdGhlIHNhbWUsIDEgaWYgdGhlIHRoaXMgaXMgZ3JlYXRl
ciwgYW5kIC0xCi0gICAqICAgICBpZiB0aGUgZ2l2ZW4gb25lIGlzIGdyZWF0ZXIuCi0gICAqLwot
ICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0g
ICAgaWYgKHRoaXMuZXF1YWxzKG90aGVyKSkgewotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAg
IHZhciB0aGlzTmVnID0gdGhpcy5pc05lZ2F0aXZlKCk7Ci0gICAgdmFyIG90aGVyTmVnID0gb3Ro
ZXIuaXNOZWdhdGl2ZSgpOwotICAgIGlmICh0aGlzTmVnICYmICFvdGhlck5lZykgewotICAgICAg
cmV0dXJuIC0xOwotICAgIH0KLSAgICBpZiAoIXRoaXNOZWcgJiYgb3RoZXJOZWcpIHsKLSAgICAg
IHJldHVybiAxOwotICAgIH0KLSAgICAvLyBhdCB0aGlzIHBvaW50LCB0aGUgc2lnbnMgYXJlIHRo
ZSBzYW1lLCBzbyBzdWJ0cmFjdGlvbiB3aWxsIG5vdCBvdmVyZmxvdwotICAgIGlmICh0aGlzLnN1
YnRyYWN0KG90aGVyKS5pc05lZ2F0aXZlKCkpIHsKLSAgICAgIHJldHVybiAtMTsKLSAgICB9IGVs
c2UgewotICAgICAgcmV0dXJuIDE7Ci0gICAgfQotICB9OwotICAvKiogQHJldHVybiB7IWdvb2cu
bWF0aC5Mb25nfSBUaGUgbmVnYXRpb24gb2YgdGhpcyB2YWx1ZS4gKi8KLSAgZ29vZy5tYXRoLkxv
bmcucHJvdG90eXBlLm5lZ2F0ZSA9IGZ1bmN0aW9uKCkgewotICAgIGlmICh0aGlzLmVxdWFscyhn
b29nLm1hdGguTG9uZy5NSU5fVkFMVUUpKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcu
TUlOX1ZBTFVFOwotICAgIH0gZWxzZSB7Ci0gICAgICByZXR1cm4gdGhpcy5ub3QoKS5hZGQoZ29v
Zy5tYXRoLkxvbmcuT05FKTsKLSAgICB9Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoZSBz
dW0gb2YgdGhpcyBhbmQgdGhlIGdpdmVuIExvbmcuCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxv
bmd9IG90aGVyIExvbmcgdG8gYWRkIHRvIHRoaXMgb25lLgotICAgKiBAcmV0dXJuIHshZ29vZy5t
YXRoLkxvbmd9IFRoZSBzdW0gb2YgdGhpcyBhbmQgdGhlIGdpdmVuIExvbmcuCi0gICAqLwotICBn
b29nLm1hdGguTG9uZy5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICAvLyBE
aXZpZGUgZWFjaCBudW1iZXIgaW50byA0IGNodW5rcyBvZiAxNiBiaXRzLCBhbmQgdGhlbiBzdW0g
dGhlIGNodW5rcy4KLSAgICB2YXIgYTQ4ID0gdGhpcy5oaWdoXyA+Pj4gMTY7Ci0gICAgdmFyIGEz
MiA9IHRoaXMuaGlnaF8gJiAweEZGRkY7Ci0gICAgdmFyIGExNiA9IHRoaXMubG93XyA+Pj4gMTY7
Ci0gICAgdmFyIGEwMCA9IHRoaXMubG93XyAmIDB4RkZGRjsKLSAgICB2YXIgYjQ4ID0gb3RoZXIu
aGlnaF8gPj4+IDE2OwotICAgIHZhciBiMzIgPSBvdGhlci5oaWdoXyAmIDB4RkZGRjsKLSAgICB2
YXIgYjE2ID0gb3RoZXIubG93XyA+Pj4gMTY7Ci0gICAgdmFyIGIwMCA9IG90aGVyLmxvd18gJiAw
eEZGRkY7Ci0gICAgdmFyIGM0OCA9IDAsIGMzMiA9IDAsIGMxNiA9IDAsIGMwMCA9IDA7Ci0gICAg
YzAwICs9IGEwMCArIGIwMDsKLSAgICBjMTYgKz0gYzAwID4+PiAxNjsKLSAgICBjMDAgJj0gMHhG
RkZGOwotICAgIGMxNiArPSBhMTYgKyBiMTY7Ci0gICAgYzMyICs9IGMxNiA+Pj4gMTY7Ci0gICAg
YzE2ICY9IDB4RkZGRjsKLSAgICBjMzIgKz0gYTMyICsgYjMyOwotICAgIGM0OCArPSBjMzIgPj4+
IDE2OwotICAgIGMzMiAmPSAweEZGRkY7Ci0gICAgYzQ4ICs9IGE0OCArIGI0ODsKLSAgICBjNDgg
Jj0gMHhGRkZGOwotICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cygoYzE2IDw8IDE2
KSB8IGMwMCwgKGM0OCA8PCAxNikgfCBjMzIpOwotICB9OwotICAvKioKLSAgICogUmV0dXJucyB0
aGUgZGlmZmVyZW5jZSBvZiB0aGlzIGFuZCB0aGUgZ2l2ZW4gTG9uZy4KLSAgICogQHBhcmFtIHtn
b29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0byBzdWJ0cmFjdCBmcm9tIHRoaXMuCi0gICAqIEBy
ZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIGRpZmZlcmVuY2Ugb2YgdGhpcyBhbmQgdGhlIGdp
dmVuIExvbmcuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuc3VidHJhY3QgPSBm
dW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiB0aGlzLmFkZChvdGhlci5uZWdhdGUoKSk7Ci0g
IH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoZSBwcm9kdWN0IG9mIHRoaXMgYW5kIHRoZSBnaXZl
biBsb25nLgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRvIG11bHRp
cGx5IHdpdGggdGhpcy4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGUgcHJvZHVj
dCBvZiB0aGlzIGFuZCB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5
cGUubXVsdGlwbHkgPSBmdW5jdGlvbihvdGhlcikgewotICAgIGlmICh0aGlzLmlzWmVybygpKSB7
Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICB9IGVsc2UgaWYgKG90aGVy
LmlzWmVybygpKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICB9Ci0g
ICAgaWYgKHRoaXMuZXF1YWxzKGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSkpIHsKLSAgICAgIHJl
dHVybiBvdGhlci5pc09kZCgpID8gZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFIDogZ29vZy5tYXRo
LkxvbmcuWkVSTzsKLSAgICB9IGVsc2UgaWYgKG90aGVyLmVxdWFscyhnb29nLm1hdGguTG9uZy5N
SU5fVkFMVUUpKSB7Ci0gICAgICByZXR1cm4gdGhpcy5pc09kZCgpID8gZ29vZy5tYXRoLkxvbmcu
TUlOX1ZBTFVFIDogZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICB9Ci0gICAgaWYgKHRoaXMuaXNO
ZWdhdGl2ZSgpKSB7Ci0gICAgICBpZiAob3RoZXIuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICAgIHJl
dHVybiB0aGlzLm5lZ2F0ZSgpLm11bHRpcGx5KG90aGVyLm5lZ2F0ZSgpKTsKLSAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgIHJldHVybiB0aGlzLm5lZ2F0ZSgpLm11bHRpcGx5KG90aGVyKS5uZWdhdGUo
KTsKLSAgICAgIH0KLSAgICB9IGVsc2UgaWYgKG90aGVyLmlzTmVnYXRpdmUoKSkgewotICAgICAg
cmV0dXJuIHRoaXMubXVsdGlwbHkob3RoZXIubmVnYXRlKCkpLm5lZ2F0ZSgpOwotICAgIH0KLSAg
ICAvLyBJZiBib3RoIGxvbmdzIGFyZSBzbWFsbCwgdXNlIGZsb2F0IG11bHRpcGxpY2F0aW9uCi0g
ICAgaWYgKHRoaXMubGVzc1RoYW4oZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8yNF8pICYmCi0gICAg
ICAgIG90aGVyLmxlc3NUaGFuKGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMjRfKSkgewotICAgICAg
cmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21OdW1iZXIodGhpcy50b051bWJlcigpICogb3RoZXIu
dG9OdW1iZXIoKSk7Ci0gICAgfQotICAgIC8vIERpdmlkZSBlYWNoIGxvbmcgaW50byA0IGNodW5r
cyBvZiAxNiBiaXRzLCBhbmQgdGhlbiBhZGQgdXAgNHg0IHByb2R1Y3RzLgotICAgIC8vIFdlIGNh
biBza2lwIHByb2R1Y3RzIHRoYXQgd291bGQgb3ZlcmZsb3cuCi0gICAgdmFyIGE0OCA9IHRoaXMu
aGlnaF8gPj4+IDE2OwotICAgIHZhciBhMzIgPSB0aGlzLmhpZ2hfICYgMHhGRkZGOwotICAgIHZh
ciBhMTYgPSB0aGlzLmxvd18gPj4+IDE2OwotICAgIHZhciBhMDAgPSB0aGlzLmxvd18gJiAweEZG
RkY7Ci0gICAgdmFyIGI0OCA9IG90aGVyLmhpZ2hfID4+PiAxNjsKLSAgICB2YXIgYjMyID0gb3Ro
ZXIuaGlnaF8gJiAweEZGRkY7Ci0gICAgdmFyIGIxNiA9IG90aGVyLmxvd18gPj4+IDE2OwotICAg
IHZhciBiMDAgPSBvdGhlci5sb3dfICYgMHhGRkZGOwotICAgIHZhciBjNDggPSAwLCBjMzIgPSAw
LCBjMTYgPSAwLCBjMDAgPSAwOwotICAgIGMwMCArPSBhMDAgKiBiMDA7Ci0gICAgYzE2ICs9IGMw
MCA+Pj4gMTY7Ci0gICAgYzAwICY9IDB4RkZGRjsKLSAgICBjMTYgKz0gYTE2ICogYjAwOwotICAg
IGMzMiArPSBjMTYgPj4+IDE2OwotICAgIGMxNiAmPSAweEZGRkY7Ci0gICAgYzE2ICs9IGEwMCAq
IGIxNjsKLSAgICBjMzIgKz0gYzE2ID4+PiAxNjsKLSAgICBjMTYgJj0gMHhGRkZGOwotICAgIGMz
MiArPSBhMzIgKiBiMDA7Ci0gICAgYzQ4ICs9IGMzMiA+Pj4gMTY7Ci0gICAgYzMyICY9IDB4RkZG
RjsKLSAgICBjMzIgKz0gYTE2ICogYjE2OwotICAgIGM0OCArPSBjMzIgPj4+IDE2OwotICAgIGMz
MiAmPSAweEZGRkY7Ci0gICAgYzMyICs9IGEwMCAqIGIzMjsKLSAgICBjNDggKz0gYzMyID4+PiAx
NjsKLSAgICBjMzIgJj0gMHhGRkZGOwotICAgIGM0OCArPSBhNDggKiBiMDAgKyBhMzIgKiBiMTYg
KyBhMTYgKiBiMzIgKyBhMDAgKiBiNDg7Ci0gICAgYzQ4ICY9IDB4RkZGRjsKLSAgICByZXR1cm4g
Z29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoKGMxNiA8PCAxNikgfCBjMDAsIChjNDggPDwgMTYpIHwg
YzMyKTsKLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhpcyBMb25nIGRpdmlkZWQgYnkgdGhl
IGdpdmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyBieSB3
aGljaCB0byBkaXZpZGUuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhpcyBMb25n
IGRpdmlkZWQgYnkgdGhlIGdpdmVuIG9uZS4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3Rv
dHlwZS5kaXYgPSBmdW5jdGlvbihvdGhlcikgewotICAgIGlmIChvdGhlci5pc1plcm8oKSkgewot
ICAgICAgdGhyb3cgRXJyb3IoJ2RpdmlzaW9uIGJ5IHplcm8nKTsKLSAgICB9IGVsc2UgaWYgKHRo
aXMuaXNaZXJvKCkpIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5aRVJPOwotICAgIH0K
LSAgICBpZiAodGhpcy5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFKSkgewotICAgICAg
aWYgKG90aGVyLmVxdWFscyhnb29nLm1hdGguTG9uZy5PTkUpIHx8Ci0gICAgICAgICAgb3RoZXIu
ZXF1YWxzKGdvb2cubWF0aC5Mb25nLk5FR19PTkUpKSB7Ci0gICAgICAgIHJldHVybiBnb29nLm1h
dGguTG9uZy5NSU5fVkFMVUU7ICAvLyByZWNhbGwgdGhhdCAtTUlOX1ZBTFVFID09IE1JTl9WQUxV
RQotICAgICAgfSBlbHNlIGlmIChvdGhlci5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVF
KSkgewotICAgICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuT05FOwotICAgICAgfSBlbHNlIHsK
LSAgICAgICAgLy8gQXQgdGhpcyBwb2ludCwgd2UgaGF2ZSB8b3RoZXJ8ID49IDIsIHNvIHx0aGlz
L290aGVyfCA8IHxNSU5fVkFMVUV8LgotICAgICAgICB2YXIgaGFsZlRoaXMgPSB0aGlzLnNoaWZ0
UmlnaHQoMSk7Ci0gICAgICAgIHZhciBhcHByb3ggPSBoYWxmVGhpcy5kaXYob3RoZXIpLnNoaWZ0
TGVmdCgxKTsKLSAgICAgICAgaWYgKGFwcHJveC5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuWkVSTykp
IHsKLSAgICAgICAgICByZXR1cm4gb3RoZXIuaXNOZWdhdGl2ZSgpID8gZ29vZy5tYXRoLkxvbmcu
T05FIDogZ29vZy5tYXRoLkxvbmcuTkVHX09ORTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICB2YXIgcmVtID0gdGhpcy5zdWJ0cmFjdChvdGhlci5tdWx0aXBseShhcHByb3gpKTsKLSAgICAg
ICAgICB2YXIgcmVzdWx0ID0gYXBwcm94LmFkZChyZW0uZGl2KG90aGVyKSk7Ci0gICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0gZWxzZSBpZiAob3RoZXIu
ZXF1YWxzKGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSkpIHsKLSAgICAgIHJldHVybiBnb29nLm1h
dGguTG9uZy5aRVJPOwotICAgIH0KLSAgICBpZiAodGhpcy5pc05lZ2F0aXZlKCkpIHsKLSAgICAg
IGlmIChvdGhlci5pc05lZ2F0aXZlKCkpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMubmVnYXRlKCku
ZGl2KG90aGVyLm5lZ2F0ZSgpKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiB0aGlz
Lm5lZ2F0ZSgpLmRpdihvdGhlcikubmVnYXRlKCk7Ci0gICAgICB9Ci0gICAgfSBlbHNlIGlmIChv
dGhlci5pc05lZ2F0aXZlKCkpIHsKLSAgICAgIHJldHVybiB0aGlzLmRpdihvdGhlci5uZWdhdGUo
KSkubmVnYXRlKCk7Ci0gICAgfQotICAgIC8vIFJlcGVhdCB0aGUgZm9sbG93aW5nIHVudGlsIHRo
ZSByZW1haW5kZXIgaXMgbGVzcyB0aGFuIG90aGVyOiAgZmluZCBhCi0gICAgLy8gZmxvYXRpbmct
cG9pbnQgdGhhdCBhcHByb3hpbWF0ZXMgcmVtYWluZGVyIC8gb3RoZXIgKmZyb20gYmVsb3cqLCBh
ZGQgdGhpcwotICAgIC8vIGludG8gdGhlIHJlc3VsdCwgYW5kIHN1YnRyYWN0IGl0IGZyb20gdGhl
IHJlbWFpbmRlci4gIEl0IGlzIGNyaXRpY2FsIHRoYXQKLSAgICAvLyB0aGUgYXBwcm94aW1hdGUg
dmFsdWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSByZWFsIHZhbHVlIHNvIHRoYXQgdGhl
Ci0gICAgLy8gcmVtYWluZGVyIG5ldmVyIGJlY29tZXMgbmVnYXRpdmUuCi0gICAgdmFyIHJlcyA9
IGdvb2cubWF0aC5Mb25nLlpFUk87Ci0gICAgdmFyIHJlbSA9IHRoaXM7Ci0gICAgd2hpbGUgKHJl
bS5ncmVhdGVyVGhhbk9yRXF1YWwob3RoZXIpKSB7Ci0gICAgICAvLyBBcHByb3hpbWF0ZSB0aGUg
cmVzdWx0IG9mIGRpdmlzaW9uLiBUaGlzIG1heSBiZSBhIGxpdHRsZSBncmVhdGVyIG9yCi0gICAg
ICAvLyBzbWFsbGVyIHRoYW4gdGhlIGFjdHVhbCB2YWx1ZS4KLSAgICAgIHZhciBhcHByb3ggPSBN
YXRoLm1heCgxLCBNYXRoLmZsb29yKHJlbS50b051bWJlcigpIC8gb3RoZXIudG9OdW1iZXIoKSkp
OwotICAgICAgLy8gV2Ugd2lsbCB0d2VhayB0aGUgYXBwcm94aW1hdGUgcmVzdWx0IGJ5IGNoYW5n
aW5nIGl0IGluIHRoZSA0OC10aCBkaWdpdCBvcgotICAgICAgLy8gdGhlIHNtYWxsZXN0IG5vbi1m
cmFjdGlvbmFsIGRpZ2l0LCB3aGljaGV2ZXIgaXMgbGFyZ2VyLgotICAgICAgdmFyIGxvZzIgPSBN
YXRoLmNlaWwoTWF0aC5sb2coYXBwcm94KSAvIE1hdGguTE4yKTsKLSAgICAgIHZhciBkZWx0YSA9
IChsb2cyIDw9IDQ4KSA/IDEgOiBNYXRoLnBvdygyLCBsb2cyIC0gNDgpOwotICAgICAgLy8gRGVj
cmVhc2UgdGhlIGFwcHJveGltYXRpb24gdW50aWwgaXQgaXMgc21hbGxlciB0aGFuIHRoZSByZW1h
aW5kZXIuICBOb3RlCi0gICAgICAvLyB0aGF0IGlmIGl0IGlzIHRvbyBsYXJnZSwgdGhlIHByb2R1
Y3Qgb3ZlcmZsb3dzIGFuZCBpcyBuZWdhdGl2ZS4KLSAgICAgIHZhciBhcHByb3hSZXMgPSBnb29n
Lm1hdGguTG9uZy5mcm9tTnVtYmVyKGFwcHJveCk7Ci0gICAgICB2YXIgYXBwcm94UmVtID0gYXBw
cm94UmVzLm11bHRpcGx5KG90aGVyKTsKLSAgICAgIHdoaWxlIChhcHByb3hSZW0uaXNOZWdhdGl2
ZSgpIHx8IGFwcHJveFJlbS5ncmVhdGVyVGhhbihyZW0pKSB7Ci0gICAgICAgIGFwcHJveCAtPSBk
ZWx0YTsKLSAgICAgICAgYXBwcm94UmVzID0gZ29vZy5tYXRoLkxvbmcuZnJvbU51bWJlcihhcHBy
b3gpOwotICAgICAgICBhcHByb3hSZW0gPSBhcHByb3hSZXMubXVsdGlwbHkob3RoZXIpOwotICAg
ICAgfQotICAgICAgLy8gV2Uga25vdyB0aGUgYW5zd2VyIGNhbid0IGJlIHplcm8uLi4gYW5kIGFj
dHVhbGx5LCB6ZXJvIHdvdWxkIGNhdXNlCi0gICAgICAvLyBpbmZpbml0ZSByZWN1cnNpb24gc2lu
Y2Ugd2Ugd291bGQgbWFrZSBubyBwcm9ncmVzcy4KLSAgICAgIGlmIChhcHByb3hSZXMuaXNaZXJv
KCkpIHsKLSAgICAgICAgYXBwcm94UmVzID0gZ29vZy5tYXRoLkxvbmcuT05FOwotICAgICAgfQot
ICAgICAgcmVzID0gcmVzLmFkZChhcHByb3hSZXMpOwotICAgICAgcmVtID0gcmVtLnN1YnRyYWN0
KGFwcHJveFJlbSk7Ci0gICAgfQotICAgIHJldHVybiByZXM7Ci0gIH07Ci0gIC8qKgotICAgKiBS
ZXR1cm5zIHRoaXMgTG9uZyBtb2R1bG8gdGhlIGdpdmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29n
Lm1hdGguTG9uZ30gb3RoZXIgTG9uZyBieSB3aGljaCB0byBtb2QuCi0gICAqIEByZXR1cm4geyFn
b29nLm1hdGguTG9uZ30gVGhpcyBMb25nIG1vZHVsbyB0aGUgZ2l2ZW4gb25lLgotICAgKi8KLSAg
Z29vZy5tYXRoLkxvbmcucHJvdG90eXBlLm1vZHVsbyA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAg
cmV0dXJuIHRoaXMuc3VidHJhY3QodGhpcy5kaXYob3RoZXIpLm11bHRpcGx5KG90aGVyKSk7Ci0g
IH07Ci0gIC8qKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBiaXR3aXNlLU5PVCBvZiB0
aGlzIHZhbHVlLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUubm90ID0gZnVuY3Rpb24o
KSB7Ci0gICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKH50aGlzLmxvd18sIH50aGlz
LmhpZ2hfKTsKLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhlIGJpdHdpc2UtQU5EIG9mIHRo
aXMgTG9uZyBhbmQgdGhlIGdpdmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30g
b3RoZXIgVGhlIExvbmcgd2l0aCB3aGljaCB0byBBTkQuCi0gICAqIEByZXR1cm4geyFnb29nLm1h
dGguTG9uZ30gVGhlIGJpdHdpc2UtQU5EIG9mIHRoaXMgYW5kIHRoZSBvdGhlci4KLSAgICovCi0g
IGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5hbmQgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJl
dHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cyh0aGlzLmxvd18gJiBvdGhlci5sb3dfLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZ2hfICYgb3RoZXIuaGlnaF8p
OwotICB9OwotICAvKioKLSAgICogUmV0dXJucyB0aGUgYml0d2lzZS1PUiBvZiB0aGlzIExvbmcg
YW5kIHRoZSBnaXZlbiBvbmUuCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIFRo
ZSBMb25nIHdpdGggd2hpY2ggdG8gT1IuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30g
VGhlIGJpdHdpc2UtT1Igb2YgdGhpcyBhbmQgdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRo
LkxvbmcucHJvdG90eXBlLm9yID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gZ29vZy5t
YXRoLkxvbmcuZnJvbUJpdHModGhpcy5sb3dfIHwgb3RoZXIubG93XywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWdoXyB8IG90aGVyLmhpZ2hfKTsKLSAgfTsKLSAg
LyoqCi0gICAqIFJldHVybnMgdGhlIGJpdHdpc2UtWE9SIG9mIHRoaXMgTG9uZyBhbmQgdGhlIGdp
dmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgVGhlIExvbmcgd2l0
aCB3aGljaCB0byBYT1IuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIGJpdHdp
c2UtWE9SIG9mIHRoaXMgYW5kIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnBy
b3RvdHlwZS54b3IgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiBnb29nLm1hdGguTG9u
Zy5mcm9tQml0cyh0aGlzLmxvd18gXiBvdGhlci5sb3dfLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzLmhpZ2hfIF4gb3RoZXIuaGlnaF8pOwotICB9OwotICAvKioKLSAg
ICogUmV0dXJucyB0aGlzIExvbmcgd2l0aCBiaXRzIHNoaWZ0ZWQgdG8gdGhlIGxlZnQgYnkgdGhl
IGdpdmVuIGFtb3VudC4KLSAgICogQHBhcmFtIHtudW1iZXJ9IG51bUJpdHMgVGhlIG51bWJlciBv
ZiBiaXRzIGJ5IHdoaWNoIHRvIHNoaWZ0LgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9
IFRoaXMgc2hpZnRlZCB0byB0aGUgbGVmdCBieSB0aGUgZ2l2ZW4gYW1vdW50LgotICAgKi8KLSAg
Z29vZy5tYXRoLkxvbmcucHJvdG90eXBlLnNoaWZ0TGVmdCA9IGZ1bmN0aW9uKG51bUJpdHMpIHsK
LSAgICBudW1CaXRzICY9IDYzOwotICAgIGlmIChudW1CaXRzID09IDApIHsKLSAgICAgIHJldHVy
biB0aGlzOwotICAgIH0gZWxzZSB7Ci0gICAgICB2YXIgbG93ID0gdGhpcy5sb3dfOwotICAgICAg
aWYgKG51bUJpdHMgPCAzMikgewotICAgICAgICB2YXIgaGlnaCA9IHRoaXMuaGlnaF87Ci0gICAg
ICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cygKLSAgICAgICAgICAgIGxvdyA8PCBu
dW1CaXRzLAotICAgICAgICAgICAgKGhpZ2ggPDwgbnVtQml0cykgfCAobG93ID4+PiAoMzIgLSBu
dW1CaXRzKSkpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25n
LmZyb21CaXRzKDAsIGxvdyA8PCAobnVtQml0cyAtIDMyKSk7Ci0gICAgICB9Ci0gICAgfQotICB9
OwotICAvKioKLSAgICogUmV0dXJucyB0aGlzIExvbmcgd2l0aCBiaXRzIHNoaWZ0ZWQgdG8gdGhl
IHJpZ2h0IGJ5IHRoZSBnaXZlbiBhbW91bnQuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBudW1CaXRz
IFRoZSBudW1iZXIgb2YgYml0cyBieSB3aGljaCB0byBzaGlmdC4KLSAgICogQHJldHVybiB7IWdv
b2cubWF0aC5Mb25nfSBUaGlzIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0IGJ5IHRoZSBnaXZlbiBhbW91
bnQuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuc2hpZnRSaWdodCA9IGZ1bmN0
aW9uKG51bUJpdHMpIHsKLSAgICBudW1CaXRzICY9IDYzOwotICAgIGlmIChudW1CaXRzID09IDAp
IHsKLSAgICAgIHJldHVybiB0aGlzOwotICAgIH0gZWxzZSB7Ci0gICAgICB2YXIgaGlnaCA9IHRo
aXMuaGlnaF87Ci0gICAgICBpZiAobnVtQml0cyA8IDMyKSB7Ci0gICAgICAgIHZhciBsb3cgPSB0
aGlzLmxvd187Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cygKLSAgICAg
ICAgICAgIChsb3cgPj4+IG51bUJpdHMpIHwgKGhpZ2ggPDwgKDMyIC0gbnVtQml0cykpLAotICAg
ICAgICAgICAgaGlnaCA+PiBudW1CaXRzKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVy
biBnb29nLm1hdGguTG9uZy5mcm9tQml0cygKLSAgICAgICAgICAgIGhpZ2ggPj4gKG51bUJpdHMg
LSAzMiksCi0gICAgICAgICAgICBoaWdoID49IDAgPyAwIDogLTEpOwotICAgICAgfQotICAgIH0K
LSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhpcyBMb25nIHdpdGggYml0cyBzaGlmdGVkIHRv
IHRoZSByaWdodCBieSB0aGUgZ2l2ZW4gYW1vdW50LCB3aXRoCi0gICAqIHRoZSBuZXcgdG9wIGJp
dHMgbWF0Y2hpbmcgdGhlIGN1cnJlbnQgc2lnbiBiaXQuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBu
dW1CaXRzIFRoZSBudW1iZXIgb2YgYml0cyBieSB3aGljaCB0byBzaGlmdC4KLSAgICogQHJldHVy
biB7IWdvb2cubWF0aC5Mb25nfSBUaGlzIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0IGJ5IHRoZSBnaXZl
biBhbW91bnQsIHdpdGgKLSAgICogICAgIHplcm9zIHBsYWNlZCBpbnRvIHRoZSBuZXcgbGVhZGlu
ZyBiaXRzLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLnNoaWZ0UmlnaHRVbnNp
Z25lZCA9IGZ1bmN0aW9uKG51bUJpdHMpIHsKLSAgICBudW1CaXRzICY9IDYzOwotICAgIGlmIChu
dW1CaXRzID09IDApIHsKLSAgICAgIHJldHVybiB0aGlzOwotICAgIH0gZWxzZSB7Ci0gICAgICB2
YXIgaGlnaCA9IHRoaXMuaGlnaF87Ci0gICAgICBpZiAobnVtQml0cyA8IDMyKSB7Ci0gICAgICAg
IHZhciBsb3cgPSB0aGlzLmxvd187Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9t
Qml0cygKLSAgICAgICAgICAgIChsb3cgPj4+IG51bUJpdHMpIHwgKGhpZ2ggPDwgKDMyIC0gbnVt
Qml0cykpLAotICAgICAgICAgICAgaGlnaCA+Pj4gbnVtQml0cyk7Ci0gICAgICB9IGVsc2UgaWYg
KG51bUJpdHMgPT0gMzIpIHsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRz
KGhpZ2gsIDApOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25n
LmZyb21CaXRzKGhpZ2ggPj4+IChudW1CaXRzIC0gMzIpLCAwKTsKLSAgICAgIH0KLSAgICB9Ci0g
IH07Ci0gIC8vPT09PT09PSBiZWdpbiBqc2JuID09PT09PT0KLSAgdmFyIG5hdmlnYXRvciA9IHsg
YXBwTmFtZTogJ01vZGVybiBCcm93c2VyJyB9OyAvLyBwb2x5ZmlsbCBhIGxpdHRsZQotICAvLyBD
b3B5cmlnaHQgKGMpIDIwMDUgIFRvbSBXdQotICAvLyBBbGwgUmlnaHRzIFJlc2VydmVkLgotICAv
LyBodHRwOi8vd3d3LWNzLXN0dWRlbnRzLnN0YW5mb3JkLmVkdS9+dGp3L2pzYm4vCi0gIC8qCi0g
ICAqIENvcHlyaWdodCAoYykgMjAwMy0yMDA1ICBUb20gV3UKLSAgICogQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLSAgICoKLSAgICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj
aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nCi0gICAqIGEgY29weSBvZiB0aGlzIHNvZnR3
YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotICAgKiAiU29mdHdh
cmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk
aW5nCi0gICAqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9k
aWZ5LCBtZXJnZSwgcHVibGlzaCwKLSAgICogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29y
IHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCi0gICAqIHBlcm1pdCBwZXJzb25z
IHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwot
ICAgKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gICAqCi0gICAqIFRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCi0gICAqIGlu
Y2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3
YXJlLgotICAgKgotICAgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTLUlTIiBBTkQgV0lU
SE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgCi0gICAqIEVYUFJFU1MsIElNUExJRUQgT1IgT1RI
RVJXSVNFLCBJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgCi0gICAqIFdBUlJBTlRZ
IE9GIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IAotICAgKgotICAgKiBJTiBOTyBFVkVOVCBTSEFMTCBUT00gV1UgQkUgTElBQkxFIEZPUiBBTlkg
U1BFQ0lBTCwgSU5DSURFTlRBTCwKLSAgICogSU5ESVJFQ1QgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIE9GIEFOWSBLSU5ELCBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSCi0gICAqIFJFU1VMVElO
RyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgT1IgTk9UIEFEVklT
RUQgT0YKLSAgICogVEhFIFBPU1NJQklMSVRZIE9GIERBTUFHRSwgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBBUklTSU5HIE9VVAotICAgKiBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg
VEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgotICAgKgotICAgKiBJbiBh
ZGRpdGlvbiwgdGhlIGZvbGxvd2luZyBjb25kaXRpb24gYXBwbGllczoKLSAgICoKLSAgICogQWxs
IHJlZGlzdHJpYnV0aW9ucyBtdXN0IHJldGFpbiBhbiBpbnRhY3QgY29weSBvZiB0aGlzIGNvcHly
aWdodCBub3RpY2UKLSAgICogYW5kIGRpc2NsYWltZXIuCi0gICAqLwotICAvLyBCYXNpYyBKYXZh
U2NyaXB0IEJOIGxpYnJhcnkgLSBzdWJzZXQgdXNlZnVsIGZvciBSU0EgZW5jcnlwdGlvbi4KLSAg
Ly8gQml0cyBwZXIgZGlnaXQKLSAgdmFyIGRiaXRzOwotICAvLyBKYXZhU2NyaXB0IGVuZ2luZSBh
bmFseXNpcwotICB2YXIgY2FuYXJ5ID0gMHhkZWFkYmVlZmNhZmU7Ci0gIHZhciBqX2xtID0gKChj
YW5hcnkmMHhmZmZmZmYpPT0weGVmY2FmZSk7Ci0gIC8vIChwdWJsaWMpIENvbnN0cnVjdG9yCi0g
IGZ1bmN0aW9uIEJpZ0ludGVnZXIoYSxiLGMpIHsKLSAgICBpZihhICE9IG51bGwpCi0gICAgICBp
ZigibnVtYmVyIiA9PSB0eXBlb2YgYSkgdGhpcy5mcm9tTnVtYmVyKGEsYixjKTsKLSAgICAgIGVs
c2UgaWYoYiA9PSBudWxsICYmICJzdHJpbmciICE9IHR5cGVvZiBhKSB0aGlzLmZyb21TdHJpbmco
YSwyNTYpOwotICAgICAgZWxzZSB0aGlzLmZyb21TdHJpbmcoYSxiKTsKLSAgfQotICAvLyByZXR1
cm4gbmV3LCB1bnNldCBCaWdJbnRlZ2VyCi0gIGZ1bmN0aW9uIG5iaSgpIHsgcmV0dXJuIG5ldyBC
aWdJbnRlZ2VyKG51bGwpOyB9Ci0gIC8vIGFtOiBDb21wdXRlIHdfaiArPSAoeCp0aGlzX2kpLCBw
cm9wYWdhdGUgY2FycmllcywKLSAgLy8gYyBpcyBpbml0aWFsIGNhcnJ5LCByZXR1cm5zIGZpbmFs
IGNhcnJ5LgotICAvLyBjIDwgMypkdmFsdWUsIHggPCAyKmR2YWx1ZSwgdGhpc19pIDwgZHZhbHVl
Ci0gIC8vIFdlIG5lZWQgdG8gc2VsZWN0IHRoZSBmYXN0ZXN0IG9uZSB0aGF0IHdvcmtzIGluIHRo
aXMgZW52aXJvbm1lbnQuCi0gIC8vIGFtMTogdXNlIGEgc2luZ2xlIG11bHQgYW5kIGRpdmlkZSB0
byBnZXQgdGhlIGhpZ2ggYml0cywKLSAgLy8gbWF4IGRpZ2l0IGJpdHMgc2hvdWxkIGJlIDI2IGJl
Y2F1c2UKLSAgLy8gbWF4IGludGVybmFsIHZhbHVlID0gMipkdmFsdWVeMi0yKmR2YWx1ZSAoPCAy
XjUzKQotICBmdW5jdGlvbiBhbTEoaSx4LHcsaixjLG4pIHsKLSAgICB3aGlsZSgtLW4gPj0gMCkg
ewotICAgICAgdmFyIHYgPSB4KnRoaXNbaSsrXSt3W2pdK2M7Ci0gICAgICBjID0gTWF0aC5mbG9v
cih2LzB4NDAwMDAwMCk7Ci0gICAgICB3W2orK10gPSB2JjB4M2ZmZmZmZjsKLSAgICB9Ci0gICAg
cmV0dXJuIGM7Ci0gIH0KLSAgLy8gYW0yIGF2b2lkcyBhIGJpZyBtdWx0LWFuZC1leHRyYWN0IGNv
bXBsZXRlbHkuCi0gIC8vIE1heCBkaWdpdCBiaXRzIHNob3VsZCBiZSA8PSAzMCBiZWNhdXNlIHdl
IGRvIGJpdHdpc2Ugb3BzCi0gIC8vIG9uIHZhbHVlcyB1cCB0byAyKmhkdmFsdWVeMi1oZHZhbHVl
LTEgKDwgMl4zMSkKLSAgZnVuY3Rpb24gYW0yKGkseCx3LGosYyxuKSB7Ci0gICAgdmFyIHhsID0g
eCYweDdmZmYsIHhoID0geD4+MTU7Ci0gICAgd2hpbGUoLS1uID49IDApIHsKLSAgICAgIHZhciBs
ID0gdGhpc1tpXSYweDdmZmY7Ci0gICAgICB2YXIgaCA9IHRoaXNbaSsrXT4+MTU7Ci0gICAgICB2
YXIgbSA9IHhoKmwraCp4bDsKLSAgICAgIGwgPSB4bCpsKygobSYweDdmZmYpPDwxNSkrd1tqXSso
YyYweDNmZmZmZmZmKTsKLSAgICAgIGMgPSAobD4+PjMwKSsobT4+PjE1KSt4aCpoKyhjPj4+MzAp
OwotICAgICAgd1tqKytdID0gbCYweDNmZmZmZmZmOwotICAgIH0KLSAgICByZXR1cm4gYzsKLSAg
fQotICAvLyBBbHRlcm5hdGVseSwgc2V0IG1heCBkaWdpdCBiaXRzIHRvIDI4IHNpbmNlIHNvbWUK
LSAgLy8gYnJvd3NlcnMgc2xvdyBkb3duIHdoZW4gZGVhbGluZyB3aXRoIDMyLWJpdCBudW1iZXJz
LgotICBmdW5jdGlvbiBhbTMoaSx4LHcsaixjLG4pIHsKLSAgICB2YXIgeGwgPSB4JjB4M2ZmZiwg
eGggPSB4Pj4xNDsKLSAgICB3aGlsZSgtLW4gPj0gMCkgewotICAgICAgdmFyIGwgPSB0aGlzW2ld
JjB4M2ZmZjsKLSAgICAgIHZhciBoID0gdGhpc1tpKytdPj4xNDsKLSAgICAgIHZhciBtID0geGgq
bCtoKnhsOwotICAgICAgbCA9IHhsKmwrKChtJjB4M2ZmZik8PDE0KSt3W2pdK2M7Ci0gICAgICBj
ID0gKGw+PjI4KSsobT4+MTQpK3hoKmg7Ci0gICAgICB3W2orK10gPSBsJjB4ZmZmZmZmZjsKLSAg
ICB9Ci0gICAgcmV0dXJuIGM7Ci0gIH0KLSAgaWYoal9sbSAmJiAobmF2aWdhdG9yLmFwcE5hbWUg
PT0gIk1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciIpKSB7Ci0gICAgQmlnSW50ZWdlci5wcm90
b3R5cGUuYW0gPSBhbTI7Ci0gICAgZGJpdHMgPSAzMDsKLSAgfQotICBlbHNlIGlmKGpfbG0gJiYg
KG5hdmlnYXRvci5hcHBOYW1lICE9ICJOZXRzY2FwZSIpKSB7Ci0gICAgQmlnSW50ZWdlci5wcm90
b3R5cGUuYW0gPSBhbTE7Ci0gICAgZGJpdHMgPSAyNjsKLSAgfQotICBlbHNlIHsgLy8gTW96aWxs
YS9OZXRzY2FwZSBzZWVtcyB0byBwcmVmZXIgYW0zCi0gICAgQmlnSW50ZWdlci5wcm90b3R5cGUu
YW0gPSBhbTM7Ci0gICAgZGJpdHMgPSAyODsKLSAgfQotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5E
QiA9IGRiaXRzOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5ETSA9ICgoMTw8ZGJpdHMpLTEpOwot
ICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5EViA9ICgxPDxkYml0cyk7Ci0gIHZhciBCSV9GUCA9IDUy
OwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5GViA9IE1hdGgucG93KDIsQklfRlApOwotICBCaWdJ
bnRlZ2VyLnByb3RvdHlwZS5GMSA9IEJJX0ZQLWRiaXRzOwotICBCaWdJbnRlZ2VyLnByb3RvdHlw
ZS5GMiA9IDIqZGJpdHMtQklfRlA7Ci0gIC8vIERpZ2l0IGNvbnZlcnNpb25zCi0gIHZhciBCSV9S
TSA9ICIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiOwotICB2YXIgQklfUkMg
PSBuZXcgQXJyYXkoKTsKLSAgdmFyIHJyLHZ2OwotICByciA9ICIwIi5jaGFyQ29kZUF0KDApOwot
ICBmb3IodnYgPSAwOyB2diA8PSA5OyArK3Z2KSBCSV9SQ1tycisrXSA9IHZ2OwotICByciA9ICJh
Ii5jaGFyQ29kZUF0KDApOwotICBmb3IodnYgPSAxMDsgdnYgPCAzNjsgKyt2dikgQklfUkNbcnIr
K10gPSB2djsKLSAgcnIgPSAiQSIuY2hhckNvZGVBdCgwKTsKLSAgZm9yKHZ2ID0gMTA7IHZ2IDwg
MzY7ICsrdnYpIEJJX1JDW3JyKytdID0gdnY7Ci0gIGZ1bmN0aW9uIGludDJjaGFyKG4pIHsgcmV0
dXJuIEJJX1JNLmNoYXJBdChuKTsgfQotICBmdW5jdGlvbiBpbnRBdChzLGkpIHsKLSAgICB2YXIg
YyA9IEJJX1JDW3MuY2hhckNvZGVBdChpKV07Ci0gICAgcmV0dXJuIChjPT1udWxsKT8tMTpjOwot
ICB9Ci0gIC8vIChwcm90ZWN0ZWQpIGNvcHkgdGhpcyB0byByCi0gIGZ1bmN0aW9uIGJucENvcHlU
byhyKSB7Ci0gICAgZm9yKHZhciBpID0gdGhpcy50LTE7IGkgPj0gMDsgLS1pKSByW2ldID0gdGhp
c1tpXTsKLSAgICByLnQgPSB0aGlzLnQ7Ci0gICAgci5zID0gdGhpcy5zOwotICB9Ci0gIC8vIChw
cm90ZWN0ZWQpIHNldCBmcm9tIGludGVnZXIgdmFsdWUgeCwgLURWIDw9IHggPCBEVgotICBmdW5j
dGlvbiBibnBGcm9tSW50KHgpIHsKLSAgICB0aGlzLnQgPSAxOwotICAgIHRoaXMucyA9ICh4PDAp
Py0xOjA7Ci0gICAgaWYoeCA+IDApIHRoaXNbMF0gPSB4OwotICAgIGVsc2UgaWYoeCA8IC0xKSB0
aGlzWzBdID0geCtEVjsKLSAgICBlbHNlIHRoaXMudCA9IDA7Ci0gIH0KLSAgLy8gcmV0dXJuIGJp
Z2ludCBpbml0aWFsaXplZCB0byB2YWx1ZQotICBmdW5jdGlvbiBuYnYoaSkgeyB2YXIgciA9IG5i
aSgpOyByLmZyb21JbnQoaSk7IHJldHVybiByOyB9Ci0gIC8vIChwcm90ZWN0ZWQpIHNldCBmcm9t
IHN0cmluZyBhbmQgcmFkaXgKLSAgZnVuY3Rpb24gYm5wRnJvbVN0cmluZyhzLGIpIHsKLSAgICB2
YXIgazsKLSAgICBpZihiID09IDE2KSBrID0gNDsKLSAgICBlbHNlIGlmKGIgPT0gOCkgayA9IDM7
Ci0gICAgZWxzZSBpZihiID09IDI1NikgayA9IDg7IC8vIGJ5dGUgYXJyYXkKLSAgICBlbHNlIGlm
KGIgPT0gMikgayA9IDE7Ci0gICAgZWxzZSBpZihiID09IDMyKSBrID0gNTsKLSAgICBlbHNlIGlm
KGIgPT0gNCkgayA9IDI7Ci0gICAgZWxzZSB7IHRoaXMuZnJvbVJhZGl4KHMsYik7IHJldHVybjsg
fQotICAgIHRoaXMudCA9IDA7Ci0gICAgdGhpcy5zID0gMDsKLSAgICB2YXIgaSA9IHMubGVuZ3Ro
LCBtaSA9IGZhbHNlLCBzaCA9IDA7Ci0gICAgd2hpbGUoLS1pID49IDApIHsKLSAgICAgIHZhciB4
ID0gKGs9PTgpP3NbaV0mMHhmZjppbnRBdChzLGkpOwotICAgICAgaWYoeCA8IDApIHsKLSAgICAg
ICAgaWYocy5jaGFyQXQoaSkgPT0gIi0iKSBtaSA9IHRydWU7Ci0gICAgICAgIGNvbnRpbnVlOwot
ICAgICAgfQotICAgICAgbWkgPSBmYWxzZTsKLSAgICAgIGlmKHNoID09IDApCi0gICAgICAgIHRo
aXNbdGhpcy50KytdID0geDsKLSAgICAgIGVsc2UgaWYoc2grayA+IHRoaXMuREIpIHsKLSAgICAg
ICAgdGhpc1t0aGlzLnQtMV0gfD0gKHgmKCgxPDwodGhpcy5EQi1zaCkpLTEpKTw8c2g7Ci0gICAg
ICAgIHRoaXNbdGhpcy50KytdID0gKHg+Pih0aGlzLkRCLXNoKSk7Ci0gICAgICB9Ci0gICAgICBl
bHNlCi0gICAgICAgIHRoaXNbdGhpcy50LTFdIHw9IHg8PHNoOwotICAgICAgc2ggKz0gazsKLSAg
ICAgIGlmKHNoID49IHRoaXMuREIpIHNoIC09IHRoaXMuREI7Ci0gICAgfQotICAgIGlmKGsgPT0g
OCAmJiAoc1swXSYweDgwKSAhPSAwKSB7Ci0gICAgICB0aGlzLnMgPSAtMTsKLSAgICAgIGlmKHNo
ID4gMCkgdGhpc1t0aGlzLnQtMV0gfD0gKCgxPDwodGhpcy5EQi1zaCkpLTEpPDxzaDsKLSAgICB9
Ci0gICAgdGhpcy5jbGFtcCgpOwotICAgIGlmKG1pKSBCaWdJbnRlZ2VyLlpFUk8uc3ViVG8odGhp
cyx0aGlzKTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSBjbGFtcCBvZmYgZXhjZXNzIGhpZ2ggd29y
ZHMKLSAgZnVuY3Rpb24gYm5wQ2xhbXAoKSB7Ci0gICAgdmFyIGMgPSB0aGlzLnMmdGhpcy5ETTsK
LSAgICB3aGlsZSh0aGlzLnQgPiAwICYmIHRoaXNbdGhpcy50LTFdID09IGMpIC0tdGhpcy50Owot
ICB9Ci0gIC8vIChwdWJsaWMpIHJldHVybiBzdHJpbmcgcmVwcmVzZW50YXRpb24gaW4gZ2l2ZW4g
cmFkaXgKLSAgZnVuY3Rpb24gYm5Ub1N0cmluZyhiKSB7Ci0gICAgaWYodGhpcy5zIDwgMCkgcmV0
dXJuICItIit0aGlzLm5lZ2F0ZSgpLnRvU3RyaW5nKGIpOwotICAgIHZhciBrOwotICAgIGlmKGIg
PT0gMTYpIGsgPSA0OwotICAgIGVsc2UgaWYoYiA9PSA4KSBrID0gMzsKLSAgICBlbHNlIGlmKGIg
PT0gMikgayA9IDE7Ci0gICAgZWxzZSBpZihiID09IDMyKSBrID0gNTsKLSAgICBlbHNlIGlmKGIg
PT0gNCkgayA9IDI7Ci0gICAgZWxzZSByZXR1cm4gdGhpcy50b1JhZGl4KGIpOwotICAgIHZhciBr
bSA9ICgxPDxrKS0xLCBkLCBtID0gZmFsc2UsIHIgPSAiIiwgaSA9IHRoaXMudDsKLSAgICB2YXIg
cCA9IHRoaXMuREItKGkqdGhpcy5EQiklazsKLSAgICBpZihpLS0gPiAwKSB7Ci0gICAgICBpZihw
IDwgdGhpcy5EQiAmJiAoZCA9IHRoaXNbaV0+PnApID4gMCkgeyBtID0gdHJ1ZTsgciA9IGludDJj
aGFyKGQpOyB9Ci0gICAgICB3aGlsZShpID49IDApIHsKLSAgICAgICAgaWYocCA8IGspIHsKLSAg
ICAgICAgICBkID0gKHRoaXNbaV0mKCgxPDxwKS0xKSk8PChrLXApOwotICAgICAgICAgIGQgfD0g
dGhpc1stLWldPj4ocCs9dGhpcy5EQi1rKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAg
ICAgICAgICBkID0gKHRoaXNbaV0+PihwLT1rKSkma207Ci0gICAgICAgICAgaWYocCA8PSAwKSB7
IHAgKz0gdGhpcy5EQjsgLS1pOyB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYoZCA+IDApIG0gPSB0
cnVlOwotICAgICAgICBpZihtKSByICs9IGludDJjaGFyKGQpOwotICAgICAgfQotICAgIH0KLSAg
ICByZXR1cm4gbT9yOiIwIjsKLSAgfQotICAvLyAocHVibGljKSAtdGhpcwotICBmdW5jdGlvbiBi
bk5lZ2F0ZSgpIHsgdmFyIHIgPSBuYmkoKTsgQmlnSW50ZWdlci5aRVJPLnN1YlRvKHRoaXMscik7
IHJldHVybiByOyB9Ci0gIC8vIChwdWJsaWMpIHx0aGlzfAotICBmdW5jdGlvbiBibkFicygpIHsg
cmV0dXJuICh0aGlzLnM8MCk/dGhpcy5uZWdhdGUoKTp0aGlzOyB9Ci0gIC8vIChwdWJsaWMpIHJl
dHVybiArIGlmIHRoaXMgPiBhLCAtIGlmIHRoaXMgPCBhLCAwIGlmIGVxdWFsCi0gIGZ1bmN0aW9u
IGJuQ29tcGFyZVRvKGEpIHsKLSAgICB2YXIgciA9IHRoaXMucy1hLnM7Ci0gICAgaWYociAhPSAw
KSByZXR1cm4gcjsKLSAgICB2YXIgaSA9IHRoaXMudDsKLSAgICByID0gaS1hLnQ7Ci0gICAgaWYo
ciAhPSAwKSByZXR1cm4gKHRoaXMuczwwKT8tcjpyOwotICAgIHdoaWxlKC0taSA+PSAwKSBpZigo
cj10aGlzW2ldLWFbaV0pICE9IDApIHJldHVybiByOwotICAgIHJldHVybiAwOwotICB9Ci0gIC8v
IHJldHVybnMgYml0IGxlbmd0aCBvZiB0aGUgaW50ZWdlciB4Ci0gIGZ1bmN0aW9uIG5iaXRzKHgp
IHsKLSAgICB2YXIgciA9IDEsIHQ7Ci0gICAgaWYoKHQ9eD4+PjE2KSAhPSAwKSB7IHggPSB0OyBy
ICs9IDE2OyB9Ci0gICAgaWYoKHQ9eD4+OCkgIT0gMCkgeyB4ID0gdDsgciArPSA4OyB9Ci0gICAg
aWYoKHQ9eD4+NCkgIT0gMCkgeyB4ID0gdDsgciArPSA0OyB9Ci0gICAgaWYoKHQ9eD4+MikgIT0g
MCkgeyB4ID0gdDsgciArPSAyOyB9Ci0gICAgaWYoKHQ9eD4+MSkgIT0gMCkgeyB4ID0gdDsgciAr
PSAxOyB9Ci0gICAgcmV0dXJuIHI7Ci0gIH0KLSAgLy8gKHB1YmxpYykgcmV0dXJuIHRoZSBudW1i
ZXIgb2YgYml0cyBpbiAidGhpcyIKLSAgZnVuY3Rpb24gYm5CaXRMZW5ndGgoKSB7Ci0gICAgaWYo
dGhpcy50IDw9IDApIHJldHVybiAwOwotICAgIHJldHVybiB0aGlzLkRCKih0aGlzLnQtMSkrbmJp
dHModGhpc1t0aGlzLnQtMV1eKHRoaXMucyZ0aGlzLkRNKSk7Ci0gIH0KLSAgLy8gKHByb3RlY3Rl
ZCkgciA9IHRoaXMgPDwgbipEQgotICBmdW5jdGlvbiBibnBETFNoaWZ0VG8obixyKSB7Ci0gICAg
dmFyIGk7Ci0gICAgZm9yKGkgPSB0aGlzLnQtMTsgaSA+PSAwOyAtLWkpIHJbaStuXSA9IHRoaXNb
aV07Ci0gICAgZm9yKGkgPSBuLTE7IGkgPj0gMDsgLS1pKSByW2ldID0gMDsKLSAgICByLnQgPSB0
aGlzLnQrbjsKLSAgICByLnMgPSB0aGlzLnM7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgciA9IHRo
aXMgPj4gbipEQgotICBmdW5jdGlvbiBibnBEUlNoaWZ0VG8obixyKSB7Ci0gICAgZm9yKHZhciBp
ID0gbjsgaSA8IHRoaXMudDsgKytpKSByW2ktbl0gPSB0aGlzW2ldOwotICAgIHIudCA9IE1hdGgu
bWF4KHRoaXMudC1uLDApOwotICAgIHIucyA9IHRoaXMuczsKLSAgfQotICAvLyAocHJvdGVjdGVk
KSByID0gdGhpcyA8PCBuCi0gIGZ1bmN0aW9uIGJucExTaGlmdFRvKG4scikgewotICAgIHZhciBi
cyA9IG4ldGhpcy5EQjsKLSAgICB2YXIgY2JzID0gdGhpcy5EQi1iczsKLSAgICB2YXIgYm0gPSAo
MTw8Y2JzKS0xOwotICAgIHZhciBkcyA9IE1hdGguZmxvb3Iobi90aGlzLkRCKSwgYyA9ICh0aGlz
LnM8PGJzKSZ0aGlzLkRNLCBpOwotICAgIGZvcihpID0gdGhpcy50LTE7IGkgPj0gMDsgLS1pKSB7
Ci0gICAgICByW2krZHMrMV0gPSAodGhpc1tpXT4+Y2JzKXxjOwotICAgICAgYyA9ICh0aGlzW2ld
JmJtKTw8YnM7Ci0gICAgfQotICAgIGZvcihpID0gZHMtMTsgaSA+PSAwOyAtLWkpIHJbaV0gPSAw
OwotICAgIHJbZHNdID0gYzsKLSAgICByLnQgPSB0aGlzLnQrZHMrMTsKLSAgICByLnMgPSB0aGlz
LnM7Ci0gICAgci5jbGFtcCgpOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIHIgPSB0aGlzID4+IG4K
LSAgZnVuY3Rpb24gYm5wUlNoaWZ0VG8obixyKSB7Ci0gICAgci5zID0gdGhpcy5zOwotICAgIHZh
ciBkcyA9IE1hdGguZmxvb3Iobi90aGlzLkRCKTsKLSAgICBpZihkcyA+PSB0aGlzLnQpIHsgci50
ID0gMDsgcmV0dXJuOyB9Ci0gICAgdmFyIGJzID0gbiV0aGlzLkRCOwotICAgIHZhciBjYnMgPSB0
aGlzLkRCLWJzOwotICAgIHZhciBibSA9ICgxPDxicyktMTsKLSAgICByWzBdID0gdGhpc1tkc10+
PmJzOwotICAgIGZvcih2YXIgaSA9IGRzKzE7IGkgPCB0aGlzLnQ7ICsraSkgewotICAgICAgcltp
LWRzLTFdIHw9ICh0aGlzW2ldJmJtKTw8Y2JzOwotICAgICAgcltpLWRzXSA9IHRoaXNbaV0+PmJz
OwotICAgIH0KLSAgICBpZihicyA+IDApIHJbdGhpcy50LWRzLTFdIHw9ICh0aGlzLnMmYm0pPDxj
YnM7Ci0gICAgci50ID0gdGhpcy50LWRzOwotICAgIHIuY2xhbXAoKTsKLSAgfQotICAvLyAocHJv
dGVjdGVkKSByID0gdGhpcyAtIGEKLSAgZnVuY3Rpb24gYm5wU3ViVG8oYSxyKSB7Ci0gICAgdmFy
IGkgPSAwLCBjID0gMCwgbSA9IE1hdGgubWluKGEudCx0aGlzLnQpOwotICAgIHdoaWxlKGkgPCBt
KSB7Ci0gICAgICBjICs9IHRoaXNbaV0tYVtpXTsKLSAgICAgIHJbaSsrXSA9IGMmdGhpcy5ETTsK
LSAgICAgIGMgPj49IHRoaXMuREI7Ci0gICAgfQotICAgIGlmKGEudCA8IHRoaXMudCkgewotICAg
ICAgYyAtPSBhLnM7Ci0gICAgICB3aGlsZShpIDwgdGhpcy50KSB7Ci0gICAgICAgIGMgKz0gdGhp
c1tpXTsKLSAgICAgICAgcltpKytdID0gYyZ0aGlzLkRNOwotICAgICAgICBjID4+PSB0aGlzLkRC
OwotICAgICAgfQotICAgICAgYyArPSB0aGlzLnM7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAg
YyArPSB0aGlzLnM7Ci0gICAgICB3aGlsZShpIDwgYS50KSB7Ci0gICAgICAgIGMgLT0gYVtpXTsK
LSAgICAgICAgcltpKytdID0gYyZ0aGlzLkRNOwotICAgICAgICBjID4+PSB0aGlzLkRCOwotICAg
ICAgfQotICAgICAgYyAtPSBhLnM7Ci0gICAgfQotICAgIHIucyA9IChjPDApPy0xOjA7Ci0gICAg
aWYoYyA8IC0xKSByW2krK10gPSB0aGlzLkRWK2M7Ci0gICAgZWxzZSBpZihjID4gMCkgcltpKytd
ID0gYzsKLSAgICByLnQgPSBpOwotICAgIHIuY2xhbXAoKTsKLSAgfQotICAvLyAocHJvdGVjdGVk
KSByID0gdGhpcyAqIGEsIHIgIT0gdGhpcyxhIChIQUMgMTQuMTIpCi0gIC8vICJ0aGlzIiBzaG91
bGQgYmUgdGhlIGxhcmdlciBvbmUgaWYgYXBwcm9wcmlhdGUuCi0gIGZ1bmN0aW9uIGJucE11bHRp
cGx5VG8oYSxyKSB7Ci0gICAgdmFyIHggPSB0aGlzLmFicygpLCB5ID0gYS5hYnMoKTsKLSAgICB2
YXIgaSA9IHgudDsKLSAgICByLnQgPSBpK3kudDsKLSAgICB3aGlsZSgtLWkgPj0gMCkgcltpXSA9
IDA7Ci0gICAgZm9yKGkgPSAwOyBpIDwgeS50OyArK2kpIHJbaSt4LnRdID0geC5hbSgwLHlbaV0s
cixpLDAseC50KTsKLSAgICByLnMgPSAwOwotICAgIHIuY2xhbXAoKTsKLSAgICBpZih0aGlzLnMg
IT0gYS5zKSBCaWdJbnRlZ2VyLlpFUk8uc3ViVG8ocixyKTsKLSAgfQotICAvLyAocHJvdGVjdGVk
KSByID0gdGhpc14yLCByICE9IHRoaXMgKEhBQyAxNC4xNikKLSAgZnVuY3Rpb24gYm5wU3F1YXJl
VG8ocikgewotICAgIHZhciB4ID0gdGhpcy5hYnMoKTsKLSAgICB2YXIgaSA9IHIudCA9IDIqeC50
OwotICAgIHdoaWxlKC0taSA+PSAwKSByW2ldID0gMDsKLSAgICBmb3IoaSA9IDA7IGkgPCB4LnQt
MTsgKytpKSB7Ci0gICAgICB2YXIgYyA9IHguYW0oaSx4W2ldLHIsMippLDAsMSk7Ci0gICAgICBp
ZigocltpK3gudF0rPXguYW0oaSsxLDIqeFtpXSxyLDIqaSsxLGMseC50LWktMSkpID49IHguRFYp
IHsKLSAgICAgICAgcltpK3gudF0gLT0geC5EVjsKLSAgICAgICAgcltpK3gudCsxXSA9IDE7Ci0g
ICAgICB9Ci0gICAgfQotICAgIGlmKHIudCA+IDApIHJbci50LTFdICs9IHguYW0oaSx4W2ldLHIs
MippLDAsMSk7Ci0gICAgci5zID0gMDsKLSAgICByLmNsYW1wKCk7Ci0gIH0KLSAgLy8gKHByb3Rl
Y3RlZCkgZGl2aWRlIHRoaXMgYnkgbSwgcXVvdGllbnQgYW5kIHJlbWFpbmRlciB0byBxLCByIChI
QUMgMTQuMjApCi0gIC8vIHIgIT0gcSwgdGhpcyAhPSBtLiAgcSBvciByIG1heSBiZSBudWxsLgot
ICBmdW5jdGlvbiBibnBEaXZSZW1UbyhtLHEscikgewotICAgIHZhciBwbSA9IG0uYWJzKCk7Ci0g
ICAgaWYocG0udCA8PSAwKSByZXR1cm47Ci0gICAgdmFyIHB0ID0gdGhpcy5hYnMoKTsKLSAgICBp
ZihwdC50IDwgcG0udCkgewotICAgICAgaWYocSAhPSBudWxsKSBxLmZyb21JbnQoMCk7Ci0gICAg
ICBpZihyICE9IG51bGwpIHRoaXMuY29weVRvKHIpOwotICAgICAgcmV0dXJuOwotICAgIH0KLSAg
ICBpZihyID09IG51bGwpIHIgPSBuYmkoKTsKLSAgICB2YXIgeSA9IG5iaSgpLCB0cyA9IHRoaXMu
cywgbXMgPSBtLnM7Ci0gICAgdmFyIG5zaCA9IHRoaXMuREItbmJpdHMocG1bcG0udC0xXSk7CS8v
IG5vcm1hbGl6ZSBtb2R1bHVzCi0gICAgaWYobnNoID4gMCkgeyBwbS5sU2hpZnRUbyhuc2gseSk7
IHB0LmxTaGlmdFRvKG5zaCxyKTsgfQotICAgIGVsc2UgeyBwbS5jb3B5VG8oeSk7IHB0LmNvcHlU
byhyKTsgfQotICAgIHZhciB5cyA9IHkudDsKLSAgICB2YXIgeTAgPSB5W3lzLTFdOwotICAgIGlm
KHkwID09IDApIHJldHVybjsKLSAgICB2YXIgeXQgPSB5MCooMTw8dGhpcy5GMSkrKCh5cz4xKT95
W3lzLTJdPj50aGlzLkYyOjApOwotICAgIHZhciBkMSA9IHRoaXMuRlYveXQsIGQyID0gKDE8PHRo
aXMuRjEpL3l0LCBlID0gMTw8dGhpcy5GMjsKLSAgICB2YXIgaSA9IHIudCwgaiA9IGkteXMsIHQg
PSAocT09bnVsbCk/bmJpKCk6cTsKLSAgICB5LmRsU2hpZnRUbyhqLHQpOwotICAgIGlmKHIuY29t
cGFyZVRvKHQpID49IDApIHsKLSAgICAgIHJbci50KytdID0gMTsKLSAgICAgIHIuc3ViVG8odCxy
KTsKLSAgICB9Ci0gICAgQmlnSW50ZWdlci5PTkUuZGxTaGlmdFRvKHlzLHQpOwotICAgIHQuc3Vi
VG8oeSx5KTsJLy8gIm5lZ2F0aXZlIiB5IHNvIHdlIGNhbiByZXBsYWNlIHN1YiB3aXRoIGFtIGxh
dGVyCi0gICAgd2hpbGUoeS50IDwgeXMpIHlbeS50KytdID0gMDsKLSAgICB3aGlsZSgtLWogPj0g
MCkgewotICAgICAgLy8gRXN0aW1hdGUgcXVvdGllbnQgZGlnaXQKLSAgICAgIHZhciBxZCA9IChy
Wy0taV09PXkwKT90aGlzLkRNOk1hdGguZmxvb3IocltpXSpkMSsocltpLTFdK2UpKmQyKTsKLSAg
ICAgIGlmKChyW2ldKz15LmFtKDAscWQscixqLDAseXMpKSA8IHFkKSB7CS8vIFRyeSBpdCBvdXQK
LSAgICAgICAgeS5kbFNoaWZ0VG8oaix0KTsKLSAgICAgICAgci5zdWJUbyh0LHIpOwotICAgICAg
ICB3aGlsZShyW2ldIDwgLS1xZCkgci5zdWJUbyh0LHIpOwotICAgICAgfQotICAgIH0KLSAgICBp
ZihxICE9IG51bGwpIHsKLSAgICAgIHIuZHJTaGlmdFRvKHlzLHEpOwotICAgICAgaWYodHMgIT0g
bXMpIEJpZ0ludGVnZXIuWkVSTy5zdWJUbyhxLHEpOwotICAgIH0KLSAgICByLnQgPSB5czsKLSAg
ICByLmNsYW1wKCk7Ci0gICAgaWYobnNoID4gMCkgci5yU2hpZnRUbyhuc2gscik7CS8vIERlbm9y
bWFsaXplIHJlbWFpbmRlcgotICAgIGlmKHRzIDwgMCkgQmlnSW50ZWdlci5aRVJPLnN1YlRvKHIs
cik7Ci0gIH0KLSAgLy8gKHB1YmxpYykgdGhpcyBtb2QgYQotICBmdW5jdGlvbiBibk1vZChhKSB7
Ci0gICAgdmFyIHIgPSBuYmkoKTsKLSAgICB0aGlzLmFicygpLmRpdlJlbVRvKGEsbnVsbCxyKTsK
LSAgICBpZih0aGlzLnMgPCAwICYmIHIuY29tcGFyZVRvKEJpZ0ludGVnZXIuWkVSTykgPiAwKSBh
LnN1YlRvKHIscik7Ci0gICAgcmV0dXJuIHI7Ci0gIH0KLSAgLy8gTW9kdWxhciByZWR1Y3Rpb24g
dXNpbmcgImNsYXNzaWMiIGFsZ29yaXRobQotICBmdW5jdGlvbiBDbGFzc2ljKG0pIHsgdGhpcy5t
ID0gbTsgfQotICBmdW5jdGlvbiBjQ29udmVydCh4KSB7Ci0gICAgaWYoeC5zIDwgMCB8fCB4LmNv
bXBhcmVUbyh0aGlzLm0pID49IDApIHJldHVybiB4Lm1vZCh0aGlzLm0pOwotICAgIGVsc2UgcmV0
dXJuIHg7Ci0gIH0KLSAgZnVuY3Rpb24gY1JldmVydCh4KSB7IHJldHVybiB4OyB9Ci0gIGZ1bmN0
aW9uIGNSZWR1Y2UoeCkgeyB4LmRpdlJlbVRvKHRoaXMubSxudWxsLHgpOyB9Ci0gIGZ1bmN0aW9u
IGNNdWxUbyh4LHkscikgeyB4Lm11bHRpcGx5VG8oeSxyKTsgdGhpcy5yZWR1Y2Uocik7IH0KLSAg
ZnVuY3Rpb24gY1NxclRvKHgscikgeyB4LnNxdWFyZVRvKHIpOyB0aGlzLnJlZHVjZShyKTsgfQot
ICBDbGFzc2ljLnByb3RvdHlwZS5jb252ZXJ0ID0gY0NvbnZlcnQ7Ci0gIENsYXNzaWMucHJvdG90
eXBlLnJldmVydCA9IGNSZXZlcnQ7Ci0gIENsYXNzaWMucHJvdG90eXBlLnJlZHVjZSA9IGNSZWR1
Y2U7Ci0gIENsYXNzaWMucHJvdG90eXBlLm11bFRvID0gY011bFRvOwotICBDbGFzc2ljLnByb3Rv
dHlwZS5zcXJUbyA9IGNTcXJUbzsKLSAgLy8gKHByb3RlY3RlZCkgcmV0dXJuICItMS90aGlzICUg
Ml5EQiI7IHVzZWZ1bCBmb3IgTW9udC4gcmVkdWN0aW9uCi0gIC8vIGp1c3RpZmljYXRpb246Ci0g
IC8vICAgICAgICAgeHkgPT0gMSAobW9kIG0pCi0gIC8vICAgICAgICAgeHkgPSAgMStrbQotICAv
LyAgIHh5KDIteHkpID0gKDEra20pKDEta20pCi0gIC8vIHhbeSgyLXh5KV0gPSAxLWteMm1eMgot
ICAvLyB4W3koMi14eSldID09IDEgKG1vZCBtXjIpCi0gIC8vIGlmIHkgaXMgMS94IG1vZCBtLCB0
aGVuIHkoMi14eSkgaXMgMS94IG1vZCBtXjIKLSAgLy8gc2hvdWxkIHJlZHVjZSB4IGFuZCB5KDIt
eHkpIGJ5IG1eMiBhdCBlYWNoIHN0ZXAgdG8ga2VlcCBzaXplIGJvdW5kZWQuCi0gIC8vIEpTIG11
bHRpcGx5ICJvdmVyZmxvd3MiIGRpZmZlcmVudGx5IGZyb20gQy9DKyssIHNvIGNhcmUgaXMgbmVl
ZGVkIGhlcmUuCi0gIGZ1bmN0aW9uIGJucEludkRpZ2l0KCkgewotICAgIGlmKHRoaXMudCA8IDEp
IHJldHVybiAwOwotICAgIHZhciB4ID0gdGhpc1swXTsKLSAgICBpZigoeCYxKSA9PSAwKSByZXR1
cm4gMDsKLSAgICB2YXIgeSA9IHgmMzsJCS8vIHkgPT0gMS94IG1vZCAyXjIKLSAgICB5ID0gKHkq
KDItKHgmMHhmKSp5KSkmMHhmOwkvLyB5ID09IDEveCBtb2QgMl40Ci0gICAgeSA9ICh5KigyLSh4
JjB4ZmYpKnkpKSYweGZmOwkvLyB5ID09IDEveCBtb2QgMl44Ci0gICAgeSA9ICh5KigyLSgoKHgm
MHhmZmZmKSp5KSYweGZmZmYpKSkmMHhmZmZmOwkvLyB5ID09IDEveCBtb2QgMl4xNgotICAgIC8v
IGxhc3Qgc3RlcCAtIGNhbGN1bGF0ZSBpbnZlcnNlIG1vZCBEViBkaXJlY3RseTsKLSAgICAvLyBh
c3N1bWVzIDE2IDwgREIgPD0gMzIgYW5kIGFzc3VtZXMgYWJpbGl0eSB0byBoYW5kbGUgNDgtYml0
IGludHMKLSAgICB5ID0gKHkqKDIteCp5JXRoaXMuRFYpKSV0aGlzLkRWOwkJLy8geSA9PSAxL3gg
bW9kIDJeZGJpdHMKLSAgICAvLyB3ZSByZWFsbHkgd2FudCB0aGUgbmVnYXRpdmUgaW52ZXJzZSwg
YW5kIC1EViA8IHkgPCBEVgotICAgIHJldHVybiAoeT4wKT90aGlzLkRWLXk6LXk7Ci0gIH0KLSAg
Ly8gTW9udGdvbWVyeSByZWR1Y3Rpb24KLSAgZnVuY3Rpb24gTW9udGdvbWVyeShtKSB7Ci0gICAg
dGhpcy5tID0gbTsKLSAgICB0aGlzLm1wID0gbS5pbnZEaWdpdCgpOwotICAgIHRoaXMubXBsID0g
dGhpcy5tcCYweDdmZmY7Ci0gICAgdGhpcy5tcGggPSB0aGlzLm1wPj4xNTsKLSAgICB0aGlzLnVt
ID0gKDE8PChtLkRCLTE1KSktMTsKLSAgICB0aGlzLm10MiA9IDIqbS50OwotICB9Ci0gIC8vIHhS
IG1vZCBtCi0gIGZ1bmN0aW9uIG1vbnRDb252ZXJ0KHgpIHsKLSAgICB2YXIgciA9IG5iaSgpOwot
ICAgIHguYWJzKCkuZGxTaGlmdFRvKHRoaXMubS50LHIpOwotICAgIHIuZGl2UmVtVG8odGhpcy5t
LG51bGwscik7Ci0gICAgaWYoeC5zIDwgMCAmJiByLmNvbXBhcmVUbyhCaWdJbnRlZ2VyLlpFUk8p
ID4gMCkgdGhpcy5tLnN1YlRvKHIscik7Ci0gICAgcmV0dXJuIHI7Ci0gIH0KLSAgLy8geC9SIG1v
ZCBtCi0gIGZ1bmN0aW9uIG1vbnRSZXZlcnQoeCkgewotICAgIHZhciByID0gbmJpKCk7Ci0gICAg
eC5jb3B5VG8ocik7Ci0gICAgdGhpcy5yZWR1Y2Uocik7Ci0gICAgcmV0dXJuIHI7Ci0gIH0KLSAg
Ly8geCA9IHgvUiBtb2QgbSAoSEFDIDE0LjMyKQotICBmdW5jdGlvbiBtb250UmVkdWNlKHgpIHsK
LSAgICB3aGlsZSh4LnQgPD0gdGhpcy5tdDIpCS8vIHBhZCB4IHNvIGFtIGhhcyBlbm91Z2ggcm9v
bSBsYXRlcgotICAgICAgeFt4LnQrK10gPSAwOwotICAgIGZvcih2YXIgaSA9IDA7IGkgPCB0aGlz
Lm0udDsgKytpKSB7Ci0gICAgICAvLyBmYXN0ZXIgd2F5IG9mIGNhbGN1bGF0aW5nIHUwID0geFtp
XSptcCBtb2QgRFYKLSAgICAgIHZhciBqID0geFtpXSYweDdmZmY7Ci0gICAgICB2YXIgdTAgPSAo
aip0aGlzLm1wbCsoKChqKnRoaXMubXBoKyh4W2ldPj4xNSkqdGhpcy5tcGwpJnRoaXMudW0pPDwx
NSkpJnguRE07Ci0gICAgICAvLyB1c2UgYW0gdG8gY29tYmluZSB0aGUgbXVsdGlwbHktc2hpZnQt
YWRkIGludG8gb25lIGNhbGwKLSAgICAgIGogPSBpK3RoaXMubS50OwotICAgICAgeFtqXSArPSB0
aGlzLm0uYW0oMCx1MCx4LGksMCx0aGlzLm0udCk7Ci0gICAgICAvLyBwcm9wYWdhdGUgY2FycnkK
LSAgICAgIHdoaWxlKHhbal0gPj0geC5EVikgeyB4W2pdIC09IHguRFY7IHhbKytqXSsrOyB9Ci0g
ICAgfQotICAgIHguY2xhbXAoKTsKLSAgICB4LmRyU2hpZnRUbyh0aGlzLm0udCx4KTsKLSAgICBp
Zih4LmNvbXBhcmVUbyh0aGlzLm0pID49IDApIHguc3ViVG8odGhpcy5tLHgpOwotICB9Ci0gIC8v
IHIgPSAieF4yL1IgbW9kIG0iOyB4ICE9IHIKLSAgZnVuY3Rpb24gbW9udFNxclRvKHgscikgeyB4
LnNxdWFyZVRvKHIpOyB0aGlzLnJlZHVjZShyKTsgfQotICAvLyByID0gInh5L1IgbW9kIG0iOyB4
LHkgIT0gcgotICBmdW5jdGlvbiBtb250TXVsVG8oeCx5LHIpIHsgeC5tdWx0aXBseVRvKHkscik7
IHRoaXMucmVkdWNlKHIpOyB9Ci0gIE1vbnRnb21lcnkucHJvdG90eXBlLmNvbnZlcnQgPSBtb250
Q29udmVydDsKLSAgTW9udGdvbWVyeS5wcm90b3R5cGUucmV2ZXJ0ID0gbW9udFJldmVydDsKLSAg
TW9udGdvbWVyeS5wcm90b3R5cGUucmVkdWNlID0gbW9udFJlZHVjZTsKLSAgTW9udGdvbWVyeS5w
cm90b3R5cGUubXVsVG8gPSBtb250TXVsVG87Ci0gIE1vbnRnb21lcnkucHJvdG90eXBlLnNxclRv
ID0gbW9udFNxclRvOwotICAvLyAocHJvdGVjdGVkKSB0cnVlIGlmZiB0aGlzIGlzIGV2ZW4KLSAg
ZnVuY3Rpb24gYm5wSXNFdmVuKCkgeyByZXR1cm4gKCh0aGlzLnQ+MCk/KHRoaXNbMF0mMSk6dGhp
cy5zKSA9PSAwOyB9Ci0gIC8vIChwcm90ZWN0ZWQpIHRoaXNeZSwgZSA8IDJeMzIsIGRvaW5nIHNx
ciBhbmQgbXVsIHdpdGggInIiIChIQUMgMTQuNzkpCi0gIGZ1bmN0aW9uIGJucEV4cChlLHopIHsK
LSAgICBpZihlID4gMHhmZmZmZmZmZiB8fCBlIDwgMSkgcmV0dXJuIEJpZ0ludGVnZXIuT05FOwot
ICAgIHZhciByID0gbmJpKCksIHIyID0gbmJpKCksIGcgPSB6LmNvbnZlcnQodGhpcyksIGkgPSBu
Yml0cyhlKS0xOwotICAgIGcuY29weVRvKHIpOwotICAgIHdoaWxlKC0taSA+PSAwKSB7Ci0gICAg
ICB6LnNxclRvKHIscjIpOwotICAgICAgaWYoKGUmKDE8PGkpKSA+IDApIHoubXVsVG8ocjIsZyxy
KTsKLSAgICAgIGVsc2UgeyB2YXIgdCA9IHI7IHIgPSByMjsgcjIgPSB0OyB9Ci0gICAgfQotICAg
IHJldHVybiB6LnJldmVydChyKTsKLSAgfQotICAvLyAocHVibGljKSB0aGlzXmUgJSBtLCAwIDw9
IGUgPCAyXjMyCi0gIGZ1bmN0aW9uIGJuTW9kUG93SW50KGUsbSkgewotICAgIHZhciB6OwotICAg
IGlmKGUgPCAyNTYgfHwgbS5pc0V2ZW4oKSkgeiA9IG5ldyBDbGFzc2ljKG0pOyBlbHNlIHogPSBu
ZXcgTW9udGdvbWVyeShtKTsKLSAgICByZXR1cm4gdGhpcy5leHAoZSx6KTsKLSAgfQotICAvLyBw
cm90ZWN0ZWQKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuY29weVRvID0gYm5wQ29weVRvOwotICBC
aWdJbnRlZ2VyLnByb3RvdHlwZS5mcm9tSW50ID0gYm5wRnJvbUludDsKLSAgQmlnSW50ZWdlci5w
cm90b3R5cGUuZnJvbVN0cmluZyA9IGJucEZyb21TdHJpbmc7Ci0gIEJpZ0ludGVnZXIucHJvdG90
eXBlLmNsYW1wID0gYm5wQ2xhbXA7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmRsU2hpZnRUbyA9
IGJucERMU2hpZnRUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuZHJTaGlmdFRvID0gYm5wRFJT
aGlmdFRvOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5sU2hpZnRUbyA9IGJucExTaGlmdFRvOwot
ICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5yU2hpZnRUbyA9IGJucFJTaGlmdFRvOwotICBCaWdJbnRl
Z2VyLnByb3RvdHlwZS5zdWJUbyA9IGJucFN1YlRvOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5t
dWx0aXBseVRvID0gYm5wTXVsdGlwbHlUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuc3F1YXJl
VG8gPSBibnBTcXVhcmVUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuZGl2UmVtVG8gPSBibnBE
aXZSZW1UbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuaW52RGlnaXQgPSBibnBJbnZEaWdpdDsK
LSAgQmlnSW50ZWdlci5wcm90b3R5cGUuaXNFdmVuID0gYm5wSXNFdmVuOwotICBCaWdJbnRlZ2Vy
LnByb3RvdHlwZS5leHAgPSBibnBFeHA7Ci0gIC8vIHB1YmxpYwotICBCaWdJbnRlZ2VyLnByb3Rv
dHlwZS50b1N0cmluZyA9IGJuVG9TdHJpbmc7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLm5lZ2F0
ZSA9IGJuTmVnYXRlOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5hYnMgPSBibkFiczsKLSAgQmln
SW50ZWdlci5wcm90b3R5cGUuY29tcGFyZVRvID0gYm5Db21wYXJlVG87Ci0gIEJpZ0ludGVnZXIu
cHJvdG90eXBlLmJpdExlbmd0aCA9IGJuQml0TGVuZ3RoOwotICBCaWdJbnRlZ2VyLnByb3RvdHlw
ZS5tb2QgPSBibk1vZDsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUubW9kUG93SW50ID0gYm5Nb2RQ
b3dJbnQ7Ci0gIC8vICJjb25zdGFudHMiCi0gIEJpZ0ludGVnZXIuWkVSTyA9IG5idigwKTsKLSAg
QmlnSW50ZWdlci5PTkUgPSBuYnYoMSk7Ci0gIC8vIGpzYm4yIHN0dWZmCi0gIC8vIChwcm90ZWN0
ZWQpIGNvbnZlcnQgZnJvbSByYWRpeCBzdHJpbmcKLSAgZnVuY3Rpb24gYm5wRnJvbVJhZGl4KHMs
YikgewotICAgIHRoaXMuZnJvbUludCgwKTsKLSAgICBpZihiID09IG51bGwpIGIgPSAxMDsKLSAg
ICB2YXIgY3MgPSB0aGlzLmNodW5rU2l6ZShiKTsKLSAgICB2YXIgZCA9IE1hdGgucG93KGIsY3Mp
LCBtaSA9IGZhbHNlLCBqID0gMCwgdyA9IDA7Ci0gICAgZm9yKHZhciBpID0gMDsgaSA8IHMubGVu
Z3RoOyArK2kpIHsKLSAgICAgIHZhciB4ID0gaW50QXQocyxpKTsKLSAgICAgIGlmKHggPCAwKSB7
Ci0gICAgICAgIGlmKHMuY2hhckF0KGkpID09ICItIiAmJiB0aGlzLnNpZ251bSgpID09IDApIG1p
ID0gdHJ1ZTsKLSAgICAgICAgY29udGludWU7Ci0gICAgICB9Ci0gICAgICB3ID0gYip3K3g7Ci0g
ICAgICBpZigrK2ogPj0gY3MpIHsKLSAgICAgICAgdGhpcy5kTXVsdGlwbHkoZCk7Ci0gICAgICAg
IHRoaXMuZEFkZE9mZnNldCh3LDApOwotICAgICAgICBqID0gMDsKLSAgICAgICAgdyA9IDA7Ci0g
ICAgICB9Ci0gICAgfQotICAgIGlmKGogPiAwKSB7Ci0gICAgICB0aGlzLmRNdWx0aXBseShNYXRo
LnBvdyhiLGopKTsKLSAgICAgIHRoaXMuZEFkZE9mZnNldCh3LDApOwotICAgIH0KLSAgICBpZiht
aSkgQmlnSW50ZWdlci5aRVJPLnN1YlRvKHRoaXMsdGhpcyk7Ci0gIH0KLSAgLy8gKHByb3RlY3Rl
ZCkgcmV0dXJuIHggcy50LiByXnggPCBEVgotICBmdW5jdGlvbiBibnBDaHVua1NpemUocikgeyBy
ZXR1cm4gTWF0aC5mbG9vcihNYXRoLkxOMip0aGlzLkRCL01hdGgubG9nKHIpKTsgfQotICAvLyAo
cHVibGljKSAwIGlmIHRoaXMgPT0gMCwgMSBpZiB0aGlzID4gMAotICBmdW5jdGlvbiBiblNpZ051
bSgpIHsKLSAgICBpZih0aGlzLnMgPCAwKSByZXR1cm4gLTE7Ci0gICAgZWxzZSBpZih0aGlzLnQg
PD0gMCB8fCAodGhpcy50ID09IDEgJiYgdGhpc1swXSA8PSAwKSkgcmV0dXJuIDA7Ci0gICAgZWxz
ZSByZXR1cm4gMTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSB0aGlzICo9IG4sIHRoaXMgPj0gMCwg
MSA8IG4gPCBEVgotICBmdW5jdGlvbiBibnBETXVsdGlwbHkobikgewotICAgIHRoaXNbdGhpcy50
XSA9IHRoaXMuYW0oMCxuLTEsdGhpcywwLDAsdGhpcy50KTsKLSAgICArK3RoaXMudDsKLSAgICB0
aGlzLmNsYW1wKCk7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgdGhpcyArPSBuIDw8IHcgd29yZHMs
IHRoaXMgPj0gMAotICBmdW5jdGlvbiBibnBEQWRkT2Zmc2V0KG4sdykgewotICAgIGlmKG4gPT0g
MCkgcmV0dXJuOwotICAgIHdoaWxlKHRoaXMudCA8PSB3KSB0aGlzW3RoaXMudCsrXSA9IDA7Ci0g
ICAgdGhpc1t3XSArPSBuOwotICAgIHdoaWxlKHRoaXNbd10gPj0gdGhpcy5EVikgewotICAgICAg
dGhpc1t3XSAtPSB0aGlzLkRWOwotICAgICAgaWYoKyt3ID49IHRoaXMudCkgdGhpc1t0aGlzLnQr
K10gPSAwOwotICAgICAgKyt0aGlzW3ddOwotICAgIH0KLSAgfQotICAvLyAocHJvdGVjdGVkKSBj
b252ZXJ0IHRvIHJhZGl4IHN0cmluZwotICBmdW5jdGlvbiBibnBUb1JhZGl4KGIpIHsKLSAgICBp
ZihiID09IG51bGwpIGIgPSAxMDsKLSAgICBpZih0aGlzLnNpZ251bSgpID09IDAgfHwgYiA8IDIg
fHwgYiA+IDM2KSByZXR1cm4gIjAiOwotICAgIHZhciBjcyA9IHRoaXMuY2h1bmtTaXplKGIpOwot
ICAgIHZhciBhID0gTWF0aC5wb3coYixjcyk7Ci0gICAgdmFyIGQgPSBuYnYoYSksIHkgPSBuYmko
KSwgeiA9IG5iaSgpLCByID0gIiI7Ci0gICAgdGhpcy5kaXZSZW1UbyhkLHkseik7Ci0gICAgd2hp
bGUoeS5zaWdudW0oKSA+IDApIHsKLSAgICAgIHIgPSAoYSt6LmludFZhbHVlKCkpLnRvU3RyaW5n
KGIpLnN1YnN0cigxKSArIHI7Ci0gICAgICB5LmRpdlJlbVRvKGQseSx6KTsKLSAgICB9Ci0gICAg
cmV0dXJuIHouaW50VmFsdWUoKS50b1N0cmluZyhiKSArIHI7Ci0gIH0KLSAgLy8gKHB1YmxpYykg
cmV0dXJuIHZhbHVlIGFzIGludGVnZXIKLSAgZnVuY3Rpb24gYm5JbnRWYWx1ZSgpIHsKLSAgICBp
Zih0aGlzLnMgPCAwKSB7Ci0gICAgICBpZih0aGlzLnQgPT0gMSkgcmV0dXJuIHRoaXNbMF0tdGhp
cy5EVjsKLSAgICAgIGVsc2UgaWYodGhpcy50ID09IDApIHJldHVybiAtMTsKLSAgICB9Ci0gICAg
ZWxzZSBpZih0aGlzLnQgPT0gMSkgcmV0dXJuIHRoaXNbMF07Ci0gICAgZWxzZSBpZih0aGlzLnQg
PT0gMCkgcmV0dXJuIDA7Ci0gICAgLy8gYXNzdW1lcyAxNiA8IERCIDwgMzIKLSAgICByZXR1cm4g
KCh0aGlzWzFdJigoMTw8KDMyLXRoaXMuREIpKS0xKSk8PHRoaXMuREIpfHRoaXNbMF07Ci0gIH0K
LSAgLy8gKHByb3RlY3RlZCkgciA9IHRoaXMgKyBhCi0gIGZ1bmN0aW9uIGJucEFkZFRvKGEscikg
ewotICAgIHZhciBpID0gMCwgYyA9IDAsIG0gPSBNYXRoLm1pbihhLnQsdGhpcy50KTsKLSAgICB3
aGlsZShpIDwgbSkgewotICAgICAgYyArPSB0aGlzW2ldK2FbaV07Ci0gICAgICByW2krK10gPSBj
JnRoaXMuRE07Ci0gICAgICBjID4+PSB0aGlzLkRCOwotICAgIH0KLSAgICBpZihhLnQgPCB0aGlz
LnQpIHsKLSAgICAgIGMgKz0gYS5zOwotICAgICAgd2hpbGUoaSA8IHRoaXMudCkgewotICAgICAg
ICBjICs9IHRoaXNbaV07Ci0gICAgICAgIHJbaSsrXSA9IGMmdGhpcy5ETTsKLSAgICAgICAgYyA+
Pj0gdGhpcy5EQjsKLSAgICAgIH0KLSAgICAgIGMgKz0gdGhpcy5zOwotICAgIH0KLSAgICBlbHNl
IHsKLSAgICAgIGMgKz0gdGhpcy5zOwotICAgICAgd2hpbGUoaSA8IGEudCkgewotICAgICAgICBj
ICs9IGFbaV07Ci0gICAgICAgIHJbaSsrXSA9IGMmdGhpcy5ETTsKLSAgICAgICAgYyA+Pj0gdGhp
cy5EQjsKLSAgICAgIH0KLSAgICAgIGMgKz0gYS5zOwotICAgIH0KLSAgICByLnMgPSAoYzwwKT8t
MTowOwotICAgIGlmKGMgPiAwKSByW2krK10gPSBjOwotICAgIGVsc2UgaWYoYyA8IC0xKSByW2kr
K10gPSB0aGlzLkRWK2M7Ci0gICAgci50ID0gaTsKLSAgICByLmNsYW1wKCk7Ci0gIH0KLSAgQmln
SW50ZWdlci5wcm90b3R5cGUuZnJvbVJhZGl4ID0gYm5wRnJvbVJhZGl4OwotICBCaWdJbnRlZ2Vy
LnByb3RvdHlwZS5jaHVua1NpemUgPSBibnBDaHVua1NpemU7Ci0gIEJpZ0ludGVnZXIucHJvdG90
eXBlLnNpZ251bSA9IGJuU2lnTnVtOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5kTXVsdGlwbHkg
PSBibnBETXVsdGlwbHk7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmRBZGRPZmZzZXQgPSBibnBE
QWRkT2Zmc2V0OwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS50b1JhZGl4ID0gYm5wVG9SYWRpeDsK
LSAgQmlnSW50ZWdlci5wcm90b3R5cGUuaW50VmFsdWUgPSBibkludFZhbHVlOwotICBCaWdJbnRl
Z2VyLnByb3RvdHlwZS5hZGRUbyA9IGJucEFkZFRvOwotICAvLz09PT09PT0gZW5kIGpzYm4gPT09
PT09PQotICAvLyBFbXNjcmlwdGVuIHdyYXBwZXIKLSAgdmFyIFdyYXBwZXIgPSB7Ci0gICAgYWJz
OiBmdW5jdGlvbihsLCBoKSB7Ci0gICAgICB2YXIgeCA9IG5ldyBnb29nLm1hdGguTG9uZyhsLCBo
KTsKLSAgICAgIHZhciByZXQ7Ci0gICAgICBpZiAoeC5pc05lZ2F0aXZlKCkpIHsKLSAgICAgICAg
cmV0ID0geC5uZWdhdGUoKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldCA9IHg7Ci0gICAg
ICB9Ci0gICAgICBIRUFQMzJbdGVtcERvdWJsZVB0cj4+Ml0gPSByZXQubG93XzsKLSAgICAgIEhF
QVAzMlt0ZW1wRG91YmxlUHRyKzQ+PjJdID0gcmV0LmhpZ2hfOwotICAgIH0sCi0gICAgZW5zdXJl
VGVtcHM6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKFdyYXBwZXIuZW5zdXJlZFRlbXBzKSByZXR1
cm47Ci0gICAgICBXcmFwcGVyLmVuc3VyZWRUZW1wcyA9IHRydWU7Ci0gICAgICBXcmFwcGVyLnR3
bzMyID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIFdyYXBwZXIudHdvMzIuZnJvbVN0cmluZygn
NDI5NDk2NzI5NicsIDEwKTsKLSAgICAgIFdyYXBwZXIudHdvNjQgPSBuZXcgQmlnSW50ZWdlcigp
OwotICAgICAgV3JhcHBlci50d282NC5mcm9tU3RyaW5nKCcxODQ0Njc0NDA3MzcwOTU1MTYxNics
IDEwKTsKLSAgICAgIFdyYXBwZXIudGVtcDEgPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgV3Jh
cHBlci50ZW1wMiA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgfSwKLSAgICBsaDJiaWdudW06IGZ1
bmN0aW9uKGwsIGgpIHsKLSAgICAgIHZhciBhID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIGEu
ZnJvbVN0cmluZyhoLnRvU3RyaW5nKCksIDEwKTsKLSAgICAgIHZhciBiID0gbmV3IEJpZ0ludGVn
ZXIoKTsKLSAgICAgIGEubXVsdGlwbHlUbyhXcmFwcGVyLnR3bzMyLCBiKTsKLSAgICAgIHZhciBj
ID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIGMuZnJvbVN0cmluZyhsLnRvU3RyaW5nKCksIDEw
KTsKLSAgICAgIHZhciBkID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIGMuYWRkVG8oYiwgZCk7
Ci0gICAgICByZXR1cm4gZDsKLSAgICB9LAotICAgIHN0cmluZ2lmeTogZnVuY3Rpb24obCwgaCwg
dW5zaWduZWQpIHsKLSAgICAgIHZhciByZXQgPSBuZXcgZ29vZy5tYXRoLkxvbmcobCwgaCkudG9T
dHJpbmcoKTsKLSAgICAgIGlmICh1bnNpZ25lZCAmJiByZXRbMF0gPT0gJy0nKSB7Ci0gICAgICAg
IC8vIHVuc2lnbiBzbG93bHkgdXNpbmcganNibiBiaWdudW1zCi0gICAgICAgIFdyYXBwZXIuZW5z
dXJlVGVtcHMoKTsKLSAgICAgICAgdmFyIGJpZ251bSA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAg
ICAgIGJpZ251bS5mcm9tU3RyaW5nKHJldCwgMTApOwotICAgICAgICByZXQgPSBuZXcgQmlnSW50
ZWdlcigpOwotICAgICAgICBXcmFwcGVyLnR3bzY0LmFkZFRvKGJpZ251bSwgcmV0KTsKLSAgICAg
ICAgcmV0ID0gcmV0LnRvU3RyaW5nKDEwKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiByZXQ7Ci0g
ICAgfSwKLSAgICBmcm9tU3RyaW5nOiBmdW5jdGlvbihzdHIsIGJhc2UsIG1pbiwgbWF4LCB1bnNp
Z25lZCkgewotICAgICAgV3JhcHBlci5lbnN1cmVUZW1wcygpOwotICAgICAgdmFyIGJpZ251bSA9
IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBiaWdudW0uZnJvbVN0cmluZyhzdHIsIGJhc2UpOwot
ICAgICAgdmFyIGJpZ21pbiA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBiaWdtaW4uZnJvbVN0
cmluZyhtaW4sIDEwKTsKLSAgICAgIHZhciBiaWdtYXggPSBuZXcgQmlnSW50ZWdlcigpOwotICAg
ICAgYmlnbWF4LmZyb21TdHJpbmcobWF4LCAxMCk7Ci0gICAgICBpZiAodW5zaWduZWQgJiYgYmln
bnVtLmNvbXBhcmVUbyhCaWdJbnRlZ2VyLlpFUk8pIDwgMCkgewotICAgICAgICB2YXIgdGVtcCA9
IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICAgIGJpZ251bS5hZGRUbyhXcmFwcGVyLnR3bzY0LCB0
ZW1wKTsKLSAgICAgICAgYmlnbnVtID0gdGVtcDsKLSAgICAgIH0KLSAgICAgIHZhciBlcnJvciA9
IGZhbHNlOwotICAgICAgaWYgKGJpZ251bS5jb21wYXJlVG8oYmlnbWluKSA8IDApIHsKLSAgICAg
ICAgYmlnbnVtID0gYmlnbWluOwotICAgICAgICBlcnJvciA9IHRydWU7Ci0gICAgICB9IGVsc2Ug
aWYgKGJpZ251bS5jb21wYXJlVG8oYmlnbWF4KSA+IDApIHsKLSAgICAgICAgYmlnbnVtID0gYmln
bWF4OwotICAgICAgICBlcnJvciA9IHRydWU7Ci0gICAgICB9Ci0gICAgICB2YXIgcmV0ID0gZ29v
Zy5tYXRoLkxvbmcuZnJvbVN0cmluZyhiaWdudW0udG9TdHJpbmcoKSk7IC8vIG1pbi1tYXggY2hl
Y2tzIHNob3VsZCBoYXZlIGNsYW1wZWQgdGhpcyB0byBhIHJhbmdlIGdvb2cubWF0aC5Mb25nIGNh
biBoYW5kbGUgd2VsbAotICAgICAgSEVBUDMyW3RlbXBEb3VibGVQdHI+PjJdID0gcmV0Lmxvd187
Ci0gICAgICBIRUFQMzJbdGVtcERvdWJsZVB0cis0Pj4yXSA9IHJldC5oaWdoXzsKLSAgICAgIGlm
IChlcnJvcikgdGhyb3cgJ3JhbmdlIGVycm9yJzsKLSAgICB9Ci0gIH07Ci0gIHJldHVybiBXcmFw
cGVyOwotfSkoKTsKLS8vPT09PT09PSBlbmQgY2xvc3VyZSBpNjQgY29kZSA9PT09PT09Ci0vLyA9
PT0gQXV0by1nZW5lcmF0ZWQgcG9zdGFtYmxlIHNldHVwIGVudHJ5IHN0dWZmID09PQotZnVuY3Rp
b24gRXhpdFN0YXR1cyhzdGF0dXMpIHsKLSAgdGhpcy5uYW1lID0gIkV4aXRTdGF0dXMiOwotICB0
aGlzLm1lc3NhZ2UgPSAiUHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggZXhpdCgiICsgc3RhdHVzICsg
IikiOwotICB0aGlzLnN0YXR1cyA9IHN0YXR1czsKLX07Ci1FeGl0U3RhdHVzLnByb3RvdHlwZSA9
IG5ldyBFcnJvcigpOwotRXhpdFN0YXR1cy5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBFeGl0U3Rh
dHVzOwotdmFyIGluaXRpYWxTdGFja1RvcDsKLXZhciBwcmVsb2FkU3RhcnRUaW1lID0gbnVsbDsK
LU1vZHVsZVsnY2FsbE1haW4nXSA9IE1vZHVsZS5jYWxsTWFpbiA9IGZ1bmN0aW9uIGNhbGxNYWlu
KGFyZ3MpIHsKLSAgYXNzZXJ0KHJ1bkRlcGVuZGVuY2llcyA9PSAwLCAnY2Fubm90IGNhbGwgbWFp
biB3aGVuIGFzeW5jIGRlcGVuZGVuY2llcyByZW1haW4hIChsaXN0ZW4gb24gX19BVE1BSU5fXykn
KTsKLSAgYXNzZXJ0KF9fQVRQUkVSVU5fXy5sZW5ndGggPT0gMCwgJ2Nhbm5vdCBjYWxsIG1haW4g
d2hlbiBwcmVSdW4gZnVuY3Rpb25zIHJlbWFpbiB0byBiZSBjYWxsZWQnKTsKLSAgYXJncyA9IGFy
Z3MgfHwgW107Ci0gIGlmIChFTlZJUk9OTUVOVF9JU19XRUIgJiYgcHJlbG9hZFN0YXJ0VGltZSAh
PT0gbnVsbCkgewotICAgIC8vTW9kdWxlLnByaW50RXJyKCdwcmVsb2FkIHRpbWU6ICcgKyAoRGF0
ZS5ub3coKSAtIHByZWxvYWRTdGFydFRpbWUpICsgJyBtcycpOwotICB9Ci0gIGVuc3VyZUluaXRS
dW50aW1lKCk7Ci0gIHZhciBhcmdjID0gYXJncy5sZW5ndGgrMTsKLSAgZnVuY3Rpb24gcGFkKCkg
ewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNC0xOyBpKyspIHsKLSAgICAgIGFyZ3YucHVzaCgw
KTsKLSAgICB9Ci0gIH0KLSAgdmFyIGFyZ3YgPSBbYWxsb2NhdGUoaW50QXJyYXlGcm9tU3RyaW5n
KCIvYmluL3RoaXMucHJvZ3JhbSIpLCAnaTgnLCBBTExPQ19OT1JNQUwpIF07Ci0gIHBhZCgpOwot
ICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ2MtMTsgaSA9IGkgKyAxKSB7Ci0gICAgYXJndi5wdXNo
KGFsbG9jYXRlKGludEFycmF5RnJvbVN0cmluZyhhcmdzW2ldKSwgJ2k4JywgQUxMT0NfTk9STUFM
KSk7Ci0gICAgcGFkKCk7Ci0gIH0KLSAgYXJndi5wdXNoKDApOwotICBhcmd2ID0gYWxsb2NhdGUo
YXJndiwgJ2kzMicsIEFMTE9DX05PUk1BTCk7Ci0gIGluaXRpYWxTdGFja1RvcCA9IFNUQUNLVE9Q
OwotICB0cnkgewotICAgIHZhciByZXQgPSBNb2R1bGVbJ19tYWluJ10oYXJnYywgYXJndiwgMCk7
Ci0gICAgLy8gaWYgd2UncmUgbm90IHJ1bm5pbmcgYW4gZXZlbnRlZCBtYWluIGxvb3AsIGl0J3Mg
dGltZSB0byBleGl0Ci0gICAgaWYgKCFNb2R1bGVbJ25vRXhpdFJ1bnRpbWUnXSkgewotICAgICAg
ZXhpdChyZXQpOwotICAgIH0KLSAgfQotICBjYXRjaChlKSB7Ci0gICAgaWYgKGUgaW5zdGFuY2Vv
ZiBFeGl0U3RhdHVzKSB7Ci0gICAgICAvLyBleGl0KCkgdGhyb3dzIHRoaXMgb25jZSBpdCdzIGRv
bmUgdG8gbWFrZSBzdXJlIGV4ZWN1dGlvbgotICAgICAgLy8gaGFzIGJlZW4gc3RvcHBlZCBjb21w
bGV0ZWx5Ci0gICAgICByZXR1cm47Ci0gICAgfSBlbHNlIGlmIChlID09ICdTaW11bGF0ZUluZmlu
aXRlTG9vcCcpIHsKLSAgICAgIC8vIHJ1bm5pbmcgYW4gZXZlbnRlZCBtYWluIGxvb3AsIGRvbid0
IGltbWVkaWF0ZWx5IGV4aXQKLSAgICAgIE1vZHVsZVsnbm9FeGl0UnVudGltZSddID0gdHJ1ZTsK
LSAgICAgIHJldHVybjsKLSAgICB9IGVsc2UgewotICAgICAgdGhyb3cgZTsKLSAgICB9Ci0gIH0K
LX0KLWZ1bmN0aW9uIHJ1bihhcmdzKSB7Ci0gIGFyZ3MgPSBhcmdzIHx8IE1vZHVsZVsnYXJndW1l
bnRzJ107Ci0gIGlmIChwcmVsb2FkU3RhcnRUaW1lID09PSBudWxsKSBwcmVsb2FkU3RhcnRUaW1l
ID0gRGF0ZS5ub3coKTsKLSAgaWYgKHJ1bkRlcGVuZGVuY2llcyA+IDApIHsKLSAgICAvL01vZHVs
ZS5wcmludEVycigncnVuKCkgY2FsbGVkLCBidXQgZGVwZW5kZW5jaWVzIHJlbWFpbiwgc28gbm90
IHJ1bm5pbmcnKTsKLSAgICByZXR1cm47Ci0gIH0KLSAgcHJlUnVuKCk7Ci0gIGlmIChydW5EZXBl
bmRlbmNpZXMgPiAwKSB7Ci0gICAgLy8gYSBwcmVSdW4gYWRkZWQgYSBkZXBlbmRlbmN5LCBydW4g
d2lsbCBiZSBjYWxsZWQgbGF0ZXIKLSAgICByZXR1cm47Ci0gIH0KLSAgZnVuY3Rpb24gZG9SdW4o
KSB7Ci0gICAgZW5zdXJlSW5pdFJ1bnRpbWUoKTsKLSAgICBwcmVNYWluKCk7Ci0gICAgY2FsbGVk
UnVuID0gdHJ1ZTsKLSAgICBpZiAoTW9kdWxlWydfbWFpbiddICYmIHNob3VsZFJ1bk5vdykgewot
ICAgICAgTW9kdWxlWydjYWxsTWFpbiddKGFyZ3MpOwotICAgIH0KLSAgICBwb3N0UnVuKCk7Ci0g
IH0KLSAgaWYgKE1vZHVsZVsnc2V0U3RhdHVzJ10pIHsKLSAgICBNb2R1bGVbJ3NldFN0YXR1cydd
KCdSdW5uaW5nLi4uJyk7Ci0gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgIE1vZHVsZVsnc2V0U3RhdHVzJ10oJycpOwotICAg
ICAgfSwgMSk7Ci0gICAgICBpZiAoIUFCT1JUKSBkb1J1bigpOwotICAgIH0sIDEpOwotICB9IGVs
c2UgewotICAgIGRvUnVuKCk7Ci0gIH0KLX0KLU1vZHVsZVsncnVuJ10gPSBNb2R1bGUucnVuID0g
cnVuOwotZnVuY3Rpb24gZXhpdChzdGF0dXMpIHsKLSAgQUJPUlQgPSB0cnVlOwotICBFWElUU1RB
VFVTID0gc3RhdHVzOwotICBTVEFDS1RPUCA9IGluaXRpYWxTdGFja1RvcDsKLSAgLy8gZXhpdCB0
aGUgcnVudGltZQotICBleGl0UnVudGltZSgpOwotICAvLyB0aHJvdyBhbiBleGNlcHRpb24gdG8g
aGFsdCB0aGUgY3VycmVudCBleGVjdXRpb24KLSAgdGhyb3cgbmV3IEV4aXRTdGF0dXMoc3RhdHVz
KTsKLX0KLU1vZHVsZVsnZXhpdCddID0gTW9kdWxlLmV4aXQgPSBleGl0OwotZnVuY3Rpb24gYWJv
cnQodGV4dCkgewotICBpZiAodGV4dCkgewotICAgIE1vZHVsZS5wcmludCh0ZXh0KTsKLSAgICBN
b2R1bGUucHJpbnRFcnIodGV4dCk7Ci0gIH0KLSAgQUJPUlQgPSB0cnVlOwotICBFWElUU1RBVFVT
ID0gMTsKLSAgdGhyb3cgJ2Fib3J0KCkgYXQgJyArIChuZXcgRXJyb3IoKS5zdGFjayk7Ci19Ci1N
b2R1bGVbJ2Fib3J0J10gPSBNb2R1bGUuYWJvcnQgPSBhYm9ydDsKLS8vIHt7UFJFX1JVTl9BRERJ
VElPTlN9fQotaWYgKE1vZHVsZVsncHJlSW5pdCddKSB7Ci0gIGlmICh0eXBlb2YgTW9kdWxlWydw
cmVJbml0J10gPT0gJ2Z1bmN0aW9uJykgTW9kdWxlWydwcmVJbml0J10gPSBbTW9kdWxlWydwcmVJ
bml0J11dOwotICB3aGlsZSAoTW9kdWxlWydwcmVJbml0J10ubGVuZ3RoID4gMCkgewotICAgIE1v
ZHVsZVsncHJlSW5pdCddLnBvcCgpKCk7Ci0gIH0KLX0KLS8vIHNob3VsZFJ1bk5vdyByZWZlcnMg
dG8gY2FsbGluZyBtYWluKCksIG5vdCBydW4oKS4KLXZhciBzaG91bGRSdW5Ob3cgPSB0cnVlOwot
aWYgKE1vZHVsZVsnbm9Jbml0aWFsUnVuJ10pIHsKLSAgc2hvdWxkUnVuTm93ID0gZmFsc2U7Ci19
Ci1ydW4oKTsKLS8vIHt7UE9TVF9SVU5fQURESVRJT05TfX0KLS8vIHt7TU9EVUxFX0FERElUSU9O
U319CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5l
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5l
ci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwZmI2ZjBhODQy
YmRiMTA3OTJiOTU1ZjMxMmQ2ZGNkNzg1MTMyYTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdGVwYW5vdl9jb250
YWluZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdy
ZXNzL3N0ZXBhbm92X2NvbnRhaW5lcgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQot
UEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
Ci0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
dGVwYW5vdl9jb250YWluZXIuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RlcGFub3Zf
Y29udGFpbmVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViOTVmNzUyMTIx
MGM0YjY2YzcwZDcyZGUyZTI1ZDU2MTE2OTc4OTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdGVwYW5vdl9jb250
YWluZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N0ZXBhbm92X2NvbnRhaW5lci5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMv
ZGZnLWFkZC1ub3QtbnVtYmVyLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2RmZy1h
ZGQtbm90LW51bWJlci5qcwppbmRleCAxMmMxNGQwODdhMTk0ODQ4YzQ1ZjUxOTkzZmU5YjYwODAz
NGY2Yjc5Li5kNDM1YzYyNmNmMGJmNGM1ZjE2YmMyYzIxMzUwYWMyNjIxM2I0N2FhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZGZnLWFkZC1ub3QtbnVtYmVyLmpzCisr
KyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9kZmctYWRkLW5vdC1udW1iZXIuanMKQEAg
LTEsMyArMSw2IEBACisvLyBUaGlzIHRlc3Qgd29uJ3QgZ2V0IGludG8gdGhlIEZUTCBjdXJyZW50
bHksIHNpbmNlIHRoZSBmb28oKSBmdW5jdGlvbiBqdXN0IGV4aXRzIGEgbG90LgorLy9AIG5vRlRM
UnVuTGF5b3V0VGVzdAorCiBkZXNjcmlwdGlvbigKICJUZXN0cyB0aGF0IGFkZGluZyB0aGluZ3Mg
dGhhdCBhcmVuJ3QgbnVtYmVycyB1c2luZyArKyBkb2VzIG5vdCBjcmFzaCBvciBnZW5lcmF0ZSBi
b2d1cyBjb2RlLiIKICk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMv
bGFyZ2UtZXhwcmVzc2lvbnMuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvbGFyZ2Ut
ZXhwcmVzc2lvbnMuanMKaW5kZXggNTI0NzJiYzMxYWJlYjgyYWU3YjFkNjA3ZTQ3YjYyYWRjZTA4
ODc1MS4uNDVkYmNiN2JlNGExNmYyYjMyMWViOWVjZWYwNzYxZTM5YzkwOThmMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2xhcmdlLWV4cHJlc3Npb25zLmpzCisrKyBi
L0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9sYXJnZS1leHByZXNzaW9ucy5qcwpAQCAtMzAs
NSArMzAsNSBAQCBmdW5jdGlvbiByZXBlYXRlZFN0cmluZyh2YWx1ZSwgY291bnQpCiAKIHNob3Vs
ZEJlKCdldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwKSknLCAncmVw
ZWF0ZWRTdHJpbmcoImEiLCAxMDApJyk7CiBzaG91bGRCZSgnZXZhbChyZXBlYXRlZEV4cHJlc3Np
b24oImxldHRlckEiLCAiKyIsIDEwMDApKScsICdyZXBlYXRlZFN0cmluZygiYSIsIDEwMDApJyk7
Ci1zaG91bGRCZSgnZXZhbChyZXBlYXRlZEV4cHJlc3Npb24oImxldHRlckEiLCAiKyIsIDEwMDAw
KSknLCAncmVwZWF0ZWRTdHJpbmcoImEiLCAxMDAwMCknKTsKK3Nob3VsZFRocm93KCdldmFsKHJl
cGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwMDApKScpOwogc2hvdWxkVGhyb3co
J2V2YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDAwMDApKScpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222439</attachid>
            <date>2014-01-28 06:45:14 -0800</date>
            <delta_ts>2014-01-28 09:54:05 -0800</delta_ts>
            <desc>patch for EWS, integrated to the original patch with one more fix</desc>
            <filename>bug-127773-20140128154715.patch</filename>
            <type>text/plain</type>
            <size>1619537</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyOTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
YjYzYTI3ZmU4NTUwZjJjMDJhMGU4OTZjY2I5NWIyOGI5ODNiOGY0Li5mMmU4NWVmYjI0YmQwNjMy
NjE1MzAwYTBmZDA0YTEyZDAyNWIyMmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNC0wMS0yOCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQu
b3JnPgorCisgICAgICAgIEFkZCBuZXcgZmlsZXMgdG8gdGhlIEVGTCBhbmQgR1RLIGJ1aWxkIHN5
c3RlbXMgZm9yIHRoZSBqc0NTdGFjayBicmFuY2ggbWVyZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc3MworCisgICAgICAgIEZvciBFV1MgdGVz
dCBvbmx5ISBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9hdHRhY2htZW50LmNnaT9pZD0yMjI0MzQg
YW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL2F0dGFjaG1lbnQuY2dpP2lkPTIyMjQwNiAKKyAg
ICAgICAgaW4gb25lIHBhdGNoIHdpdGggb25lIG1vcmUgZml4IG1lbnRpb25lZCBpbiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NzYzI2MxNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAyMDE0LTAxLTI3ICBKb3NlcGggUGVjb3Jhcm8g
IDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgLVtKU0NvbnRleHQgZXZhbHV0ZVNjcmlw
dDpdIGNhbGxzIEpTRXZhbHV0ZVNjcmlwdCB3aXRoIHN0YXJ0aW5nTGluZU51bWJlciAwLCBsYXRl
ciBpbnRlcnByZXRlZCBhcyBhIG9uZUJhc2VkSW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGVkODY0YjczY2VmZjRiNDVjMDFm
ZmFjZWU2MjgxNmQzMGU2Y2E1MTUuLjBmYzQ0OTk2NTExYjE3NTU0NzA5ZWE2MGU3ZjdmZWM4YmFm
MjZkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMDEtMjggIE1hcmsgSGFobmVuYmVyZyAg
PG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBNZXJnZSB0aGUganNDU3RhY2sgYnJh
bmNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3
NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0
Zi9CYWdUb0hhc2hNYXAuaDoKKyAgICAgICAgKFdURjo6dG9IYXNoTWFwKToKKyAgICAgICAgKiB3
dGYvUGxhdGZvcm0uaDoKKyAgICAgICAgKiB3dGYvU3RhY2tCb3VuZHMuaDoKKyAgICAgICAgKFdU
Rjo6U3RhY2tCb3VuZHM6OnJlY3Vyc2lvbkxpbWl0KToKKwogMjAxNC0wMS0yNyAgSm9zZXBoIFBl
Y29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYkNvcmU6IEVuYWJsZSAt
V2ltcGxpY2l0LWZhbGx0aHJvdWdoIGFuZCBhZGQgRkFMTFRIUk9VR0ggYW5ub3RhdGlvbiB3aGVy
ZSBuZWVkZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0YWRiY2FmNWVjOTBlM2U2YzFmNTM0NGI4YTc1MWE3MDkx
YzBkNmU2Li4zY2ZjMmZlNjQxYjkyOTcyYjc5NWNlYTA5ODY3OTZlNmFmYjkyOWE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTQtMDEtMjggIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhu
ZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBNZXJnZSB0aGUganNDU3RhY2sgYnJhbmNoCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3NjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMgKE9PUFMhKS4KKworICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9Db250
ZW50U2VhcmNoVXRpbGl0aWVzLmg6CisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvaW5zcGVj
dG9yL1NjcmlwdEJyZWFrcG9pbnQuaDoKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9pbnNw
ZWN0b3IvU2NyaXB0RGVidWdMaXN0ZW5lci5oOgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJz
L3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRp
bmdIZWFkZXJzL3lhcnIvUmVndWxhckV4cHJlc3Npb24uaDoKKyAgICAgICAgKiBXZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cmVwb3J0RXhjZXB0aW9uKToKKwogMjAxNC0wMS0yOCAgTWFy
ayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcv
Yi8xMjc3Njc+IERpc2FibGUgc29tZSBkZXByZWNhdGlvbiB3YXJuaW5ncyB0byBmaXggdGhlIGJ1
aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGY0MmEzOWRhZmQ5M2Nl
NDBiMmRkN2FlNjhlZmYwNzU1ZmMxNDM4ZDguLmFlZGQ4MmVhMWJjMjEyMWNiYzQ2ZDBkM2I4NmE3
YjkwNTdhYWVmZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI1NCw2
ICsyNTQsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGludGVycHJldGVyL1N0
YWNrVmlzaXRvci5jcHAKICAgICBpbnRlcnByZXRlci9WTUluc3BlY3Rvci5jcHAKIAorICAgIGpp
dC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHAKICAgICBqaXQvQXNzZW1ibHlIZWxwZXJz
LmNwcAogICAgIGppdC9DbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmNwcAogICAgIGppdC9FeGVjdXRh
YmxlQWxsb2NhdG9yLmNwcApAQCAtMjc4LDYgKzI3OSw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9T
T1VSQ0VTCiAgICAgaml0L0pJVFN0dWJzLmNwcAogICAgIGppdC9KSVRUaHVua3MuY3BwCiAgICAg
aml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcAorICAgIGppdC9SZWdp
c3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwCiAgICAgaml0L1JlZ2lzdGVyU2V0
LmNwcAogICAgIGppdC9SZXBhdGNoLmNwcAogICAgIGppdC9UZW1wUmVnaXN0ZXJTZXQuY3BwCkBA
IC0zNDAsNiArMzQyLDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBydW50aW1l
L0R1bXBDb250ZXh0LmNwcAogICAgIHJ1bnRpbWUvRXJyb3IuY3BwCiAgICAgcnVudGltZS9FcnJv
ckNvbnN0cnVjdG9yLmNwcAorICAgIHJ1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmNwcAogICAg
IHJ1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKICAgICBydW50aW1lL0Vycm9yUHJvdG90eXBlLmNw
cAogICAgIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZDA2MGI2YThlYTM3Y2VlMjc5MTQ3ZjMwMzk2NTc3
MmQwYmQyZjY0Ny4uN2Q1ZGYzYzYxODg3OTE4NDFmOWY2YmQxMGE2ZTg4ZTc5Yjc2N2E2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTkxLDYgKzkxLDcg
QEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oIFwKKwlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmggXAog
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTUlQU0Fzc2VtYmxlci5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1JlcGF0Y2hCdWZmZXIuaCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9TSDRBc3NlbWJsZXIuaCBcCkBAIC02OTEsNiArNjkyLDgg
QEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL1ZNSW5zcGVjdG9yLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL1ZNSW5zcGVjdG9yLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZVByZWZpeC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWls
UmV0dXJuVGh1bmtzLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3MuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5
SGVscGVycy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmggXApAQCAtNzQ0
LDYgKzc0Nyw4IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXcml0ZUJhcnJpZXIuaCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oIFwKKwlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5jcHAg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3BwIFwKIAlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1JlZ2lzdGVyU2V0LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVwYXRjaC5jcHAgXApAQCAtOTA0LDYgKzkwOSw4IEBAIGphdmFzY3JpcHRjb3JlX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0
b3IuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuY3BwIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9ySW5zdGFuY2UuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JQcm90b3R5cGUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5vcmRlciBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5v
cmRlcgppbmRleCA1ZDM0MjE4ZDYxOTVhMGYxMTg0OTZlMzkwNmRmY2E2OTIzZjZmNDhkLi4yZjIy
NWI1MjhkYzlkMDljNGE3MjlhNWFkYjNiM2M2ZTgyZjdjZjU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCkBAIC00OTgxLDcgKzQ5ODEsNiBAQCBfbGxpbnRf
c2xvd19wYXRoX2hhbmRsZV93YXRjaGRvZ190aW1lcgogX2xsaW50X3Nsb3dfcGF0aF9kZWJ1Zwog
X2xsaW50X3Nsb3dfcGF0aF9wcm9maWxlX3dpbGxfY2FsbAogX2xsaW50X3Nsb3dfcGF0aF9wcm9m
aWxlX2RpZF9jYWxsCi1fbGxpbnRfdGhyb3dfZnJvbV9uYXRpdmVfY2FsbAogX2xsaW50X2JlZ2lu
CiBfbGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZQogX2xsaW50X2V2YWxfcHJvbG9ndWUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4
cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCmluZGV4IGNmNGMyZWMyNDNiNTg0OGRkMWJhMzA4
NjlmZTdkZjRlNzhhMjk3MzUuLjNjZDZlYTkwYTExYTdlYmZlM2E0ZWVkYWUzZDM0ODA3YzI3Y2Rj
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagpAQCAtNTg5LDYgKzU4
OSw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXER1bXBDb250ZXh0LmNw
cCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3IuY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckNvbnN0cnVjdG9yLmNwcCIg
Lz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JIYW5kbGluZ1Njb3Bl
LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JJbnN0YW5j
ZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9yUHJvdG90
eXBlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXhjZXB0aW9u
SGVscGVycy5jcHAiIC8+CkBAIC03OTEsNiArNzkyLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGFzc2VtYmxlclxNYWNyb0Fzc2VtYmxlclg4Ni5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cYXNzZW1ibGVyXE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJsZXJcTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCIg
Lz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFzc2VtYmxlclxNYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbC5oIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJsZXJc
UmVwYXRjaEJ1ZmZlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVy
XFg4NkFzc2VtYmxlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3Nc
U2NyaXB0RnVuY3Rpb25DYWxsLmgiIC8+CkBAIC0xMjA0LDYgKzEyMDYsNyBAQAogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxEdW1wQ29udGV4dC5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccnVudGltZVxFcnJvckNvbnN0cnVjdG9yLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxydW50aW1lXEVycm9ySGFuZGxpbmdTY29wZS5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckluc3RhbmNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxydW50aW1lXEVycm9yUHJvdG90eXBlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxydW50aW1lXEV4Y2VwdGlvbkhlbHBlcnMuaCIgLz4KQEAgLTE0MDYsMjIgKzE0
MDksNiBAQAogICAgICAgPEZpbGVUeXBlPkRvY3VtZW50PC9GaWxlVHlwZT4KICAgICA8L05vbmU+
CiAgIDwvSXRlbUdyb3VwPgotICA8SXRlbUdyb3VwPgotICAgIDxNQVNNIEluY2x1ZGU9Ii4uXGpp
dFxKSVRTdHVic01TVkM2NC5hc20iPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWly
b3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2
NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvTUFTTT4KLSAgPC9JdGVtR3JvdXA+CiAgIDxJbXBvcnQg
UHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+CiAgIDxJ
bXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CiAgICAgPEltcG9ydCBQcm9qZWN0
PSIkKFZDVGFyZ2V0c1BhdGgpXEJ1aWxkQ3VzdG9taXphdGlvbnNcbWFzbS50YXJnZXRzIiAvPgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4
IGU4MTljZWQ4ODJlYWZjODA2ZGM3Y2EzMmRkYTAwMDA1MjczYjNhMDguLjg3ZTEyYTQ3MTU4YmI2
MjI0ZDQ5ZmQ2MjI5NzhjNGE5YzQ0MzVhNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVy
cworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTUzNyw2ICs1MzcsOSBAQAogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckNvbnN0cnVjdG9yLmNwcCI+CiAgICAgICA8
RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JIYW5kbGluZ1Njb3BlLmNwcCI+CisgICAgICA8Rmls
dGVyPnJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHJ1bnRpbWVcRXJyb3JJbnN0YW5jZS5jcHAiPgogICAgICAgPEZpbHRlcj5ydW50
aW1lPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xNDQyLDYgKzE0NDUsOSBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYXNzZW1ibGVyXE1hY3JvQXNzZW1ibGVyWDg2XzY0Lmgi
PgogICAgICAgPEZpbHRlcj5hc3NlbWJsZXI8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGFzc2VtYmxlclxNYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbC5oIj4KKyAgICAgIDxGaWx0ZXI+YXNzZW1ibGVyPC9GaWx0ZXI+CisgICAgPC9DbElu
Y2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxhc3NlbWJsZXJcUmVwYXRjaEJ1ZmZl
ci5oIj4KICAgICAgIDxGaWx0ZXI+YXNzZW1ibGVyPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
CkBAIC0yMTI5LDYgKzIxMzUsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGlt
ZVxFcnJvckNvbnN0cnVjdG9yLmgiPgogICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEVycm9y
SGFuZGxpbmdTY29wZS5oIj4KKyAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgorICAgIDwv
Q2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxFcnJvckluc3Rh
bmNlLmgiPgogICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
CkBAIC0zMjk1LDkgKzMzMDQsNCBAQAogICAgIDxOb25lIEluY2x1ZGU9IkphdmFTY3JpcHRDb3Jl
UG9zdEJ1aWxkLmNtZCIgLz4KICAgICA8Tm9uZSBJbmNsdWRlPSJKYXZhU2NyaXB0Q29yZVByZUJ1
aWxkLmNtZCIgLz4KICAgPC9JdGVtR3JvdXA+Ci0gIDxJdGVtR3JvdXA+Ci0gICAgPE1BU00gSW5j
bHVkZT0iLi5caml0XEpJVFN0dWJzTVNWQzY0LmFzbSI+Ci0gICAgICA8RmlsdGVyPmppdDwvRmls
dGVyPgotICAgIDwvTUFTTT4KLSAgPC9JdGVtR3JvdXA+CiA8L1Byb2plY3Q+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDA3MDczZDc4ZjNmNTM5OTdkYTZjYjVhY2QyYzM4Y2Y5ZjA2
MGQ2MjguLjI3ZTg3Njc0MGE5NjRiMDI4OTg0ZWQ2NzgxNjE4MjBhNWRjZjc3YzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMTAsNiArMjEwLDcgQEAKIAkJMEYzOEIwMTkxN0NG
RTc1NTAwQjE0NEQzIC8qIERGR0NvbXBpbGF0aW9uTW9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM4QjAxNTE3Q0ZFNzU1MDBCMTQ0RDMgLyog
REZHQ29tcGlsYXRpb25Nb2RlLmNwcCAqLzsgfTsKIAkJMEYzOEIwMUExN0NGRTc1NTAwQjE0NEQz
IC8qIERGR0NvbXBpbGF0aW9uTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEYzOEIwMTYxN0NGRTc1NTAwQjE0NEQzIC8qIERGR0NvbXBpbGF0aW9u
TW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGM0FDNzUyMTgzRUExMDQwMDMyMDI5RiAvKiBTdGFja0FsaWdubWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzQUM3NTExODNFQTEwNDAwMzIw
MjlGIC8qIFN0YWNrQWxpZ25tZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMEYzQUM3NTQxODhFNUVDODAwMzIwMjlGIC8qIEV4aXRpbmdKSVRU
eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNB
Qzc1MzE4OEU1RUM4MDAzMjAyOUYgLyogRXhpdGluZ0pJVFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjNCM0ExQTE1M0U2OEYyMDAzRUQw
RkYgLyogREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzQjNBMTcxNTNFNjhFRjAwM0VEMEZGIC8qIERGR0Nv
bnN0YW50Rm9sZGluZ1BoYXNlLmNwcCAqLzsgfTsKIAkJMEYzQjNBMUIxNTNFNjhGNDAwM0VEMEZG
IC8qIERGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNCM0ExODE1M0U2OEVGMDAzRUQwRkYgLyogREZHQ29uc3Rh
bnRGb2xkaW5nUGhhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwRjNCM0EyNzE1NDRDOTk1MDAzRUQwRkYgLyogREZHQ0ZHU2ltcGxpZmljYXRp
b25QaGFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjNCM0EyNDE1NDRDOTkxMDAzRUQwRkYgLyogREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5j
cHAgKi87IH07CkBAIC0yMzYsNiArMjM3LDEwIEBACiAJCTBGNDY4MEQ1MTRCQkQyNEIwMEJGRTI3
MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjQ2ODBEMTE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENhbGxSZXR1
cm5WYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGNDg1MzIxMTg3NzUwNTYwMDgzQjY4NyAvKiBERkdBcml0aE1vZGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0ODUzMUYxODc3NTA1NjAw
ODNCNjg3IC8qIERGR0FyaXRoTW9kZS5jcHAgKi87IH07CiAJCTBGNDg1MzIyMTg3NzUwNTYwMDgz
QjY4NyAvKiBERkdBcml0aE1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGNDg1MzIwMTg3NzUwNTYwMDgzQjY4NyAvKiBERkdBcml0aE1vZGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjQ4NTMy
NzE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0ODUzMjMxODdERkRFQzAwODNC
Njg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcCAqLzsgfTsKKwkJMEY0ODUzMjgxODdERkRF
QzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ4NTMyNDE4N0RGREVDMDA4M0I2ODcgLyogRlRM
QXZhaWxhYmxlUmVjb3ZlcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQkwRjQ4NTMyOTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNv
ZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0
ODUzMjUxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmNwcCAqLzsgfTsKKwkJ
MEY0ODUzMkExODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ4NTMyNjE4N0RGREVDMDA4
M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNvZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjQ5M0FGQTE2RDBDQUQzMDA4NDUwOEIgLyogU291cmNl
UHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY0OTNBRjgxNkQwQ0FEMTAwODQ1MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCAqLzsgfTsK
IAkJMEY0Qjk0REMxN0I5RjA3NTAwREQwM0E0IC8qIFR5cGVkQXJyYXlJbmxpbmVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjRCOTREQjE3QjlGMDc1
MDBERDAzQTQgLyogVHlwZWRBcnJheUlubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjU1NDFCMTE2MTNDMUZCMDBDRTNFMjUgLyogU3Bl
Y2lhbFBvaW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY1NTQxQUYxNjEzQzFGQjAwQ0UzRTI1IC8qIFNwZWNpYWxQb2ludGVyLmNwcCAqLzsg
fTsKQEAgLTI0OCw2ICsyNTMsOCBAQAogCQkwRjU2QTFENTE1MDAxQ0Y0MDAyOTkyQjEgLyogRXhl
Y3V0aW9uQ291bnRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjU2QTFENDE1MDAxQ0YyMDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5jcHAg
Ki87IH07CiAJCTBGNTcyRDRGMTY4NzlGREQwMEU1N0ZCRCAvKiBUaHVua0dlbmVyYXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NzJENEQxNjg3
OUZEQjAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1QTUyRDAxN0FERDcxNzAwOEVDQjJEIC8qIENv
cHlUb2tlbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY1QTUyQ0YxN0FERDcxNzAwOEVDQjJEIC8qIENvcHlUb2tlbi5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNUE2MjgzMTg4Qzk4RDQwMDcyQzlE
RiAvKiBGVExWYWx1ZVJhbmdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGNUE2MjgxMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmNw
cCAqLzsgfTsKKwkJMEY1QTYyODQxODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFuZ2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUE2MjgyMTg4
Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1RUY5MUUxNjg3OEY3QTAwM0U1QzI1IC8qIEpJ
VFRodW5rcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjVFRjkxQjE2ODc4Rjc4MDAzRTVDMjUgLyogSklUVGh1bmtzLmNwcCAqLzsgfTsKIAkJMEY1
RUY5MUYxNjg3OEY3RDAwM0U1QzI1IC8qIEpJVFRodW5rcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1RUY5MUMxNjg3OEY3ODAwM0U1QzI1IC8qIEpJ
VFRodW5rcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGNUYwOENGMTQ2Qzc2MzMwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVGMDhDRTE0
NkM3NjJGMDAwNDcyQTkgLyogVW5jb25kaXRpb25hbEZpbmFsaXplci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNjksNiArMjc2LDE4IEBACiAJ
CTBGNjY2RUNEMTgzNkIzN0UwMEQwMTdGMSAvKiBERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9u
UGhhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
NjY2RUNCMTgzNkIzN0UwMEQwMTdGMSAvKiBERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhh
c2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkw
RjY2RTE2QjE0REYzRjE2MDBCN0IyRTQgLyogREZHQWRqYWNlbmN5TGlzdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2NkUxNjgxNERGM0YxMzAwQjdC
MkU0IC8qIERGR0FkamFjZW5jeUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwRjY2RTE2QzE0REYzRjE2MDBCN0IyRTQgLyogREZHRWRnZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2NkUxNjkx
NERGM0YxMzAwQjdCMkU0IC8qIERGR0VkZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQkwRjZCMUNCNTE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlND
YWxsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
NkIxQ0IzMTg1RkM5RTkwMDg0NUQ5NyAvKiBGVExKU0NhbGwuY3BwICovOyB9OworCQkwRjZCMUNC
NjE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNCNDE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlND
YWxsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MEY2QjFDQjkxODYxMjQ0QzAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tNb2RlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNCNzE4NjEyNDRDMDA4NDVE
OTcgLyogQXJpdHlDaGVja01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkwRjZCMUNCQTE4NjEyNDRDMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25Nb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjZCMUNCODE4NjEyNDRDMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2Rl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2
QjFDQkQxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVy
YXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjZCMUNCQjE4NjEyNDZBMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2Vu
ZXJhdG9yLmNwcCAqLzsgfTsKKwkJMEY2QjFDQkUxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVy
UHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQkMxODYxMjQ2QTAwODQ1RDk3IC8qIFJlZ2lzdGVy
UHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNkIxQ0MzMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExS
ZWdpc3RlckF0T2Zmc2V0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNkIxQ0JGMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0
LmNwcCAqLzsgfTsKKwkJMEY2QjFDQzQxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFJlZ2lzdGVyQXRP
ZmZzZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
NkIxQ0MwMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY2QjFDQzUxODYyQzQ3
ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQzExODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVud2lu
ZEluZm8uY3BwICovOyB9OworCQkwRjZCMUNDNjE4NjJDNDc4MDA4NDVEOTcgLyogRlRMVW53aW5k
SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2
QjFDQzIxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjZCMUNDOTE4NjQxREY4MDA4NDVE
OTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQzcxODY0MURGODAwODQ1RDk3IC8qIEFy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcCAqLzsgfTsKKwkJMEY2QjFDQ0ExODY0MURGODAw
ODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUNDODE4NjQxREY4MDA4NDVEOTcgLyog
QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjcwMjVBOTE3MTRCMEZBMDAzODJDMEUgLyogREZHT1NS
RXhpdENvbXBpbGVyQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGNzAyNUE3MTcxNEIwRjgwMDM4MkMwRSAvKiBERkdPU1JFeGl0Q29tcGls
ZXJDb21tb24uY3BwICovOyB9OwogCQkwRjcwMjVBQTE3MTRCMEZDMDAzODJDMEUgLyogREZHT1NS
RXhpdENvbXBpbGVyQ29tbW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjcwMjVBODE3MTRCMEY4MDAzODJDMEUgLyogREZHT1NSRXhpdENvbXBpbGVy
Q29tbW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEY3MTRDQTQxNkVBOTJGMDAwRjNFQkVCIC8qIERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhh
c2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3
MTRDQTExNkVBOTJFRDAwRjNFQkVCIC8qIERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3Bw
ICovOyB9OwpAQCAtMTM0Niw2ICsxMzY1LDggQEAKIAkJRkU1OTMyQTgxODNDNUEyNjAwQTFFQ0ND
IC8qIFZNRW50cnlTY29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkU1OTMyQTYxODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFQTA4NjIwMTgy
QjdBMDQwMEY2RDg1MSAvKiBCcmVha3BvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRUEwODYxRTE4MkI3QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2lu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZF
QTA4NjIxMTgyQjdBMDQwMEY2RDg1MSAvKiBEZWJ1Z2dlclByaW1pdGl2ZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFQTA4NjFGMTgyQjdBMDQwMEY2
RDg1MSAvKiBEZWJ1Z2dlclByaW1pdGl2ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQlGRUI1OEMxNDE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JI
YW5kbGluZ1Njb3BlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZFQjU4QzEyMTg3QjhCMTYwMDk4RUYwQiAvKiBFcnJvckhhbmRsaW5nU2NvcGUuY3Bw
ICovOyB9OworCQlGRUI1OEMxNTE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3Bl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUI1OEMx
MzE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkVEMjg3QjIxNUVDOUE1NzAwREE4
MTYxIC8qIExMSW50T3Bjb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRUQyODdCMTE1RUM5QTU3MDBEQTgxNjEgLyogTExJbnRPcGNvZGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUQ5NEYyRTE3
MUUzRTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEOTRGMkIxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9n
LmNwcCAqLzsgfTsKIAkJRkVEOTRGMkYxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNoZG9nLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQ5NEYyQzE3MUUz
RTIzMDBCRTc3QTQgLyogV2F0Y2hkb2cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMTYwNSw2ICsxNjI2LDcgQEAKIAkJMEYzOEIwMTUxN0NGRTc1
NTAwQjE0NEQzIC8qIERGR0NvbXBpbGF0aW9uTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBERkdDb21waWxhdGlvbk1vZGUuY3BwOyBwYXRoID0gZGZnL0RGR0Nv
bXBpbGF0aW9uTW9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMzhCMDE2
MTdDRkU3NTUwMEIxNDREMyAvKiBERkdDb21waWxhdGlvbk1vZGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gREZHQ29tcGlsYXRpb25Nb2RlLmg7IHBhdGggPSBkZmcvREZHQ29t
cGlsYXRpb25Nb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGM0FDNzUxMTgz
RUExMDQwMDMyMDI5RiAvKiBTdGFja0FsaWdubWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTdGFja0FsaWdubWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkwRjNBQzc1MzE4OEU1RUM4MDAzMjAyOUYgLyogRXhpdGluZ0pJVFR5cGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhpdGluZ0pJVFR5cGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEYzQjNBMTcxNTNFNjhFRjAwM0VEMEZGIC8qIERGR0NvbnN0YW50Rm9s
ZGluZ1BoYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0Nv
bnN0YW50Rm9sZGluZ1BoYXNlLmNwcDsgcGF0aCA9IGRmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFz
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGM0IzQTE4MTUzRTY4RUYwMDNF
RDBGRiAvKiBERkdDb25zdGFudEZvbGRpbmdQaGFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBERkdDb25zdGFudEZvbGRpbmdQaGFzZS5oOyBwYXRoID0gZGZnL0RGR0NvbnN0
YW50Rm9sZGluZ1BoYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGM0IzQTI0
MTU0NEM5OTEwMDNFRDBGRiAvKiBERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2Uu
Y3BwOyBwYXRoID0gZGZnL0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTYzMiw2ICsxNjU0LDEwIEBACiAJCTBGNDY4MEQxMTRCQkM1
RjgwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEhvc3RDYWxsUmV0dXJuVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY0ODUzMUYxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdBcml0aE1vZGUuY3BwOyBwYXRo
ID0gZGZnL0RGR0FyaXRoTW9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
NDg1MzIwMTg3NzUwNTYwMDgzQjY4NyAvKiBERkdBcml0aE1vZGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gREZHQXJpdGhNb2RlLmg7IHBhdGggPSBkZmcvREZHQXJpdGhNb2Rl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNDg1MzIzMTg3REZERUMwMDgzQjY4
NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBGVExBdmFpbGFibGVSZWNvdmVyeS5jcHA7IHBhdGggPSBmdGwvRlRMQXZhaWxh
YmxlUmVjb3ZlcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQ4NTMyNDE4
N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaDsgcGF0aCA9IGZ0bC9GVExB
dmFpbGFibGVSZWNvdmVyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQ4NTMy
NTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlPcGNvZGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRlRMUmVjb3ZlcnlPcGNvZGUuY3BwOyBwYXRoID0gZnRs
L0ZUTFJlY292ZXJ5T3Bjb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0
ODUzMjYxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZUTFJlY292ZXJ5T3Bjb2RlLmg7IHBhdGggPSBmdGwvRlRM
UmVjb3ZlcnlPcGNvZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0OTNBRjgx
NkQwQ0FEMTAwODQ1MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNvdXJjZVByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY0Qjk0REIxN0I5RjA3NTAwREQwM0E0IC8qIFR5cGVkQXJyYXlJbmxpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGVkQXJyYXlJbmxpbmVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTU0MUFGMTYxM0MxRkIwMENFM0UyNSAv
KiBTcGVjaWFsUG9pbnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTcGVjaWFsUG9pbnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjQ0
LDYgKzE2NzAsOCBAQAogCQkwRjU2QTFENDE1MDAxQ0YyMDAyOTkyQjEgLyogRXhlY3V0aW9uQ291
bnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeGVjdXRpb25D
b3VudGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NzJENEQxNjg3OUZE
QjAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFRodW5rR2VuZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
NUE1MkNGMTdBREQ3MTcwMDhFQ0IyRCAvKiBDb3B5VG9rZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ29weVRva2VuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGNUE2MjgxMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTFZhbHVlUmFuZ2UuY3BwOyBwYXRoID0gZnRs
L0ZUTFZhbHVlUmFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjVBNjI4
MjE4OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBGVExWYWx1ZVJhbmdlLmg7IHBhdGggPSBmdGwvRlRMVmFsdWVSYW5nZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVFRjkxQjE2ODc4Rjc4MDAzRTVDMjUg
LyogSklUVGh1bmtzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJ
VFRodW5rcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUVGOTFDMTY4NzhG
NzgwMDNFNUMyNSAvKiBKSVRUaHVua3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSklUVGh1bmtzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUYwOENFMTQ2
Qzc2MkYwMDA0NzJBOSAvKiBVbmNvbmRpdGlvbmFsRmluYWxpemVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFVuY29uZGl0aW9uYWxGaW5hbGl6ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NjUsNiArMTY5MywxOCBAQAogCQkwRjY2NkVDQjE4MzZCMzdF
MDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlvblBoYXNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFz
ZS5oOyBwYXRoID0gZGZnL0RGR1Jlc3VycmVjdGlvbkZvclZhbGlkYXRpb25QaGFzZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjY2RTE2ODE0REYzRjEzMDBCN0IyRTQgLyogREZH
QWRqYWNlbmN5TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdBZGph
Y2VuY3lMaXN0Lmg7IHBhdGggPSBkZmcvREZHQWRqYWNlbmN5TGlzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjY2RTE2OTE0REYzRjEzMDBCN0IyRTQgLyogREZHRWRnZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdFZGdlLmg7IHBhdGggPSBkZmcvREZH
RWRnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjZCMUNCMzE4NUZDOUU5MDA4
NDVEOTcgLyogRlRMSlNDYWxsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IEZUTEpTQ2FsbC5jcHA7IHBhdGggPSBmdGwvRlRMSlNDYWxsLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQjQxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExKU0NhbGwuaDsgcGF0aCA9IGZ0
bC9GVExKU0NhbGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQjcxODYx
MjQ0QzAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFyaXR5Q2hlY2tNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGNkIxQ0I4MTg2MTI0NEMwMDg0NUQ5NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2Rl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIxQ0JCMTg2MTI0NkEwMDg0NUQ5
NyAvKiBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2Vu
ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQkMxODYxMjQ2
QTAwODQ1RDk3IC8qIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJH
ZW5lcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2QjFDQkYxODYyQzQ3
ODAwODQ1RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gRlRMUmVnaXN0ZXJBdE9mZnNldC5jcHA7IHBhdGggPSBmdGwvRlRM
UmVnaXN0ZXJBdE9mZnNldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIx
Q0MwMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3RlckF0T2Zmc2V0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZUTFJlZ2lzdGVyQXRPZmZzZXQuaDsgcGF0aCA9IGZ0bC9G
VExSZWdpc3RlckF0T2Zmc2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNkIx
Q0MxMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExVbndpbmRJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTFVud2luZEluZm8uY3BwOyBwYXRoID0gZnRsL0ZUTFVu
d2luZEluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjZCMUNDMjE4NjJD
NDc4MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBGVExVbndpbmRJbmZvLmg7IHBhdGggPSBmdGwvRlRMVW53aW5kSW5mby5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjZCMUNDNzE4NjQxREY4MDA4NDVEOTcgLyogQXJp
dHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwRjZCMUNDODE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxS
ZXR1cm5UaHVua3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJpdHlDaGVj
a0ZhaWxSZXR1cm5UaHVua3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3MDI1
QTcxNzE0QjBGODAwMzgyQzBFIC8qIERGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdPU1JFeGl0Q29tcGlsZXJDb21tb24u
Y3BwOyBwYXRoID0gZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGNzAyNUE4MTcxNEIwRjgwMDM4MkMwRSAvKiBERkdPU1JFeGl0
Q29tcGlsZXJDb21tb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHT1NS
RXhpdENvbXBpbGVyQ29tbW9uLmg7IHBhdGggPSBkZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNzE0Q0ExMTZFQTkyRUQwMEYzRUJF
QiAvKiBERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwOyBwYXRo
ID0gZGZnL0RGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjExNiw2ICsyMTU2LDcgQEAKIAkJNjU2MEE0Q0YwNEIzQjNFNzAwOEFF
OTUyIC8qIENvcmVGb3VuZGF0aW9uLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ29yZUZv
dW5kYXRpb24uZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29y
ZUZvdW5kYXRpb24uZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQk2
NTYyMUU2QjA4OUU4NTk3MDA3NjBGMzUgLyogUHJvcGVydHlTbG90LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3BlcnR5U2xvdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJNjU2MjFFNkMw
ODlFODU5NzAwNzYwRjM1IC8qIFByb3BlcnR5U2xvdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9wZXJ0eVNsb3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OworCQk2NTg2MDE3NzE4NUE4RjVFMDAwMzBFRUUg
LyogTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNjU5ODdGMkMxNjdGRTg0QjAwM0MyRjhEIC8qIERGR09TUkV4aXRD
b21waWxhdGlvbkluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHT1NS
RXhpdENvbXBpbGF0aW9uSW5mby5oOyBwYXRoID0gZGZnL0RGR09TUkV4aXRDb21waWxhdGlvbklu
Zm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU5ODdGMkYxNjgyOEE3RTAwM0My
RjhEIC8qIFVudXNlZFBvaW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VW51c2VkUG9pbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NUMwMjg0RjE3
MTc5NUUyMDAzNTFFMzUgLyogQVJNdjdEaXNhc3NlbWJsZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQVJNdjdEaXNhc3NlbWJsZXIuY3BwOyBwYXRoID0gZGlzYXNz
ZW1ibGVyL0FSTXY3RGlzYXNzZW1ibGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTI3ODMsNiArMjgyNCw4IEBACiAJCUZFNTkzMkE2MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVu
dHJ5U2NvcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVk1FbnRyeVNjb3Bl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFQTA4NjFFMTgyQjdBMDQwMEY2RDg1
MSAvKiBCcmVha3BvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJyZWFr
cG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVBMDg2MUYxODJCN0EwNDAw
RjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEZWJ1Z2dlclByaW1pdGl2ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRkVCNThDMTIxODdCOEIxNjAwOThFRjBCIC8qIEVycm9ySGFuZGxpbmdTY29wZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFcnJvckhhbmRsaW5nU2NvcGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRUI1OEMxMzE4N0I4QjE2MDA5OEVGMEIg
LyogRXJyb3JIYW5kbGluZ1Njb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEVycm9ySGFuZGxpbmdTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRUQy
ODdCMTE1RUM5QTU3MDBEQTgxNjEgLyogTExJbnRPcGNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gTExJbnRPcGNvZGUuaDsgcGF0aCA9IGxsaW50L0xMSW50T3Bjb2RlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRDk0RjJCMTcxRTNFMjMwMEJFNzdBNCAv
KiBXYXRjaGRvZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXRj
aGRvZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFRDk0RjJDMTcxRTNFMjMw
MEJFNzdBNCAvKiBXYXRjaGRvZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
YXRjaGRvZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzAwMSw2ICszMDQ0LDgg
QEAKIAkJCQkwRkVBMEExODE3MDhCMDA3MDBCQjcyMkMgLyogRlRMQWJzdHJhY3RIZWFwLmggKi8s
CiAJCQkJMEZFQTBBMTkxNzA4QjAwNzAwQkI3MjJDIC8qIEZUTEFic3RyYWN0SGVhcFJlcG9zaXRv
cnkuY3BwICovLAogCQkJCTBGRUEwQTFBMTcwOEIwMDcwMEJCNzIyQyAvKiBGVExBYnN0cmFjdEhl
YXBSZXBvc2l0b3J5LmggKi8sCisJCQkJMEY0ODUzMjMxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2
YWlsYWJsZVJlY292ZXJ5LmNwcCAqLywKKwkJCQkwRjQ4NTMyNDE4N0RGREVDMDA4M0I2ODcgLyog
RlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCAqLywKIAkJCQkwRkVBMDlGRTE3MDUxM0RCMDBCQjcyMkMg
LyogRlRMQ2FwYWJpbGl0aWVzLmNwcCAqLywKIAkJCQkwRkVBMDlGRjE3MDUxM0RCMDBCQjcyMkMg
LyogRlRMQ2FwYWJpbGl0aWVzLmggKi8sCiAJCQkJMEZFQTBBMjUxNzA5NjIzQjAwQkI3MjJDIC8q
IEZUTENvbW1vblZhbHVlcy5jcHAgKi8sCkBAIC0zMDMxLDYgKzMwNzYsOCBAQAogCQkJCTBGRUEw
QTAzMTcwNTEzREIwMEJCNzIyQyAvKiBGVExKSVRDb2RlLmggKi8sCiAJCQkJQTc4QTk3N0QxNzk3
MzhENTAwOURGNzQ0IC8qIEZUTEpJVEZpbmFsaXplci5jcHAgKi8sCiAJCQkJQTc4QTk3N0UxNzk3
MzhENTAwOURGNzQ0IC8qIEZUTEpJVEZpbmFsaXplci5oICovLAorCQkJCTBGNkIxQ0IzMTg1RkM5
RTkwMDg0NUQ5NyAvKiBGVExKU0NhbGwuY3BwICovLAorCQkJCTBGNkIxQ0I0MTg1RkM5RTkwMDg0
NUQ5NyAvKiBGVExKU0NhbGwuaCAqLywKIAkJCQkwRjhGMkI5MzE3MkUwNDlFMDA3REJEQTUgLyog
RlRMTGluay5jcHAgKi8sCiAJCQkJMEY4RjJCOTQxNzJFMDQ5RTAwN0RCREE1IC8qIEZUTExpbmsu
aCAqLywKIAkJCQkwRkNFRkFERDE4MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uY3BwICov
LApAQCAtMzA0Nyw2ICszMDk0LDEwIEBACiAJCQkJMEYyMzVCQ0ExNzE3OEUxQzAwNjkwQzdGIC8q
IEZUTE9TUkV4aXRDb21waWxlci5oICovLAogCQkJCTBGRUEwQTI5MTcwOTYyOTYwMEJCNzIyQyAv
KiBGVExPdXRwdXQuY3BwICovLAogCQkJCTBGRUEwQTA2MTcwNTEzREIwMEJCNzIyQyAvKiBGVExP
dXRwdXQuaCAqLywKKwkJCQkwRjQ4NTMyNTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVjb3ZlcnlP
cGNvZGUuY3BwICovLAorCQkJCTBGNDg1MzI2MTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNvdmVy
eU9wY29kZS5oICovLAorCQkJCTBGNkIxQ0JGMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3Rl
ckF0T2Zmc2V0LmNwcCAqLywKKwkJCQkwRjZCMUNDMDE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVn
aXN0ZXJBdE9mZnNldC5oICovLAogCQkJCTBGQ0VGQUE5MTgwNEMxM0UwMDQ3MkNFNCAvKiBGVExT
YXZlUmVzdG9yZS5jcHAgKi8sCiAJCQkJMEZDRUZBQUExODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNh
dmVSZXN0b3JlLmggKi8sCiAJCQkJMEYyNUYxQUExODE2MzVGMzAwNTIyRjM5IC8qIEZUTFNsb3dQ
YXRoQ2FsbC5jcHAgKi8sCkBAIC0zMDYxLDkgKzMxMTIsMTMgQEAKIAkJCQkwRjIzNUJDQjE3MTc4
RTFDMDA2OTBDN0YgLyogRlRMVGh1bmtzLmNwcCAqLywKIAkJCQkwRjIzNUJDQzE3MTc4RTFDMDA2
OTBDN0YgLyogRlRMVGh1bmtzLmggKi8sCiAJCQkJMEZFQTBBMUIxNzA4QjAwNzAwQkI3MjJDIC8q
IEZUTFR5cGVkUG9pbnRlci5oICovLAorCQkJCTBGNkIxQ0MxMTg2MkM0NzgwMDg0NUQ5NyAvKiBG
VExVbndpbmRJbmZvLmNwcCAqLywKKwkJCQkwRjZCMUNDMjE4NjJDNDc4MDA4NDVEOTcgLyogRlRM
VW53aW5kSW5mby5oICovLAogCQkJCTBGMjM1QkNEMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExWYWx1
ZUZvcm1hdC5jcHAgKi8sCiAJCQkJMEYyMzVCQ0UxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTFZhbHVl
Rm9ybWF0LmggKi8sCiAJCQkJMEZEQjJDQzgxNzNEQTUxRTAwN0IzQzFCIC8qIEZUTFZhbHVlRnJv
bUJsb2NrLmggKi8sCisJCQkJMEY1QTYyODExODhDOThENDAwNzJDOURGIC8qIEZUTFZhbHVlUmFu
Z2UuY3BwICovLAorCQkJCTBGNUE2MjgyMTg4Qzk4RDQwMDcyQzlERiAvKiBGVExWYWx1ZVJhbmdl
LmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IGZ0bDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC0zMTUyLDYgKzMyMDcsOCBAQAogCQkxNDI5RDkyQzBFRDIyRDcwMDBCODk2MTkgLyogaml0
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkwRjZCMUND
NzE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwICovLAor
CQkJCTBGNkIxQ0M4MTg2NDFERjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5r
cy5oICovLAogCQkJCTBGMjRFNTNCMTdFQTlGNTkwMEFCQjIxNyAvKiBBc3NlbWJseUhlbHBlcnMu
Y3BwICovLAogCQkJCTBGMjRFNTNDMTdFQTlGNTkwMEFCQjIxNyAvKiBBc3NlbWJseUhlbHBlcnMu
aCAqLywKIAkJCQkwRjI0RTUzRDE3RUE5RjU5MDBBQkIyMTcgLyogQ0NhbGxIZWxwZXJzLmggKi8s
CkBAIC0zMjA1LDYgKzMyNjIsOCBAQAogCQkJCTBGQzcxMkUxMTdDRDg3OEYwMDhDQzkzQyAvKiBK
SVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oICovLAogCQkJCUE3NkY1NEEyMTNC
MjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLywKIAkJCQlBNzZDNTE3NDExODI3
NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VKSVQuaCAqLywKKwkJCQkwRjZCMUNCQjE4NjEyNDZB
MDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcCAqLywK
KwkJCQkwRjZCMUNCQzE4NjEyNDZBMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFw
cGVyR2VuZXJhdG9yLmggKi8sCiAJCQkJMEZDMzE0MTQxODE0NkQ3MDAwMDMzMjMyIC8qIFJlZ2lz
dGVyU2V0LmNwcCAqLywKIAkJCQkwRkMzMTQxMDE4MTQ1NTkxMDAwMzMyMzIgLyogUmVnaXN0ZXJT
ZXQuaCAqLywKIAkJCQkwRjI0RTU0OTE3RUUyNzQ5MDBBQkIyMTcgLyogUmVwYXRjaC5jcHAgKi8s
CkBAIC0zNTU0LDYgKzM2MTMsNyBAQAogCQkJCUE3NjE0MEM4MTgyOTgyQ0IwMDc1MDYyNCAvKiBB
cmd1bWVudHNJdGVyYXRvckNvbnN0cnVjdG9yLmggKi8sCiAJCQkJQTc2MTQwQzkxODI5ODJDQjAw
NzUwNjI0IC8qIEFyZ3VtZW50c0l0ZXJhdG9yUHJvdG90eXBlLmNwcCAqLywKIAkJCQlBNzYxNDBD
QTE4Mjk4MkNCMDA3NTA2MjQgLyogQXJndW1lbnRzSXRlcmF0b3JQcm90b3R5cGUuaCAqLywKKwkJ
CQkwRjZCMUNCNzE4NjEyNDRDMDA4NDVEOTcgLyogQXJpdHlDaGVja01vZGUuaCAqLywKIAkJCQlB
N0E4QUYyNTE3QURCNUYyMDA1QUIxNzQgLyogQXJyYXlCdWZmZXIuY3BwICovLAogCQkJCUE3QThB
RjI2MTdBREI1RjMwMDVBQjE3NCAvKiBBcnJheUJ1ZmZlci5oICovLAogCQkJCTBGRkM5OUQyMTg0
RUUzMTgwMDlDMTBBQiAvKiBBcnJheUJ1ZmZlck5ldXRlcmluZ1dhdGNocG9pbnQuY3BwICovLApA
QCAtMzYxOCw2ICszNjc4LDggQEAKIAkJCQlCQzMwNDYwNjBFMUY0OTdGMDAzMjMyQ0YgLyogRXJy
b3IuaCAqLywKIAkJCQlCQzAyRTkwNDBFMTgzOURCMDAwRjkyOTcgLyogRXJyb3JDb25zdHJ1Y3Rv
ci5jcHAgKi8sCiAJCQkJQkMwMkU5MDUwRTE4MzlEQjAwMEY5Mjk3IC8qIEVycm9yQ29uc3RydWN0
b3IuaCAqLywKKwkJCQlGRUI1OEMxMjE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Nj
b3BlLmNwcCAqLywKKwkJCQlGRUI1OEMxMzE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGlu
Z1Njb3BlLmggKi8sCiAJCQkJQkMwMkU5OEEwRTE4M0UzODAwMEY5Mjk3IC8qIEVycm9ySW5zdGFu
Y2UuY3BwICovLAogCQkJCUJDMDJFOThCMEUxODNFMzgwMDBGOTI5NyAvKiBFcnJvckluc3RhbmNl
LmggKi8sCiAJCQkJQkMwMkU5MDYwRTE4MzlEQjAwMEY5Mjk3IC8qIEVycm9yUHJvdG90eXBlLmNw
cCAqLywKQEAgLTM4NTEsNiArMzkxMyw3IEBACiAJCQkJRjY5MkE4N0MwMjU1NTk3RDAxRkY2MEY3
IC8qIFJlZ0V4cE9iamVjdC5oICovLAogCQkJCUJDRDIwMkJGMEUxNzA2QTcwMDJDN0U4MiAvKiBS
ZWdFeHBQcm90b3R5cGUuY3BwICovLAogCQkJCUJDRDIwMkMwMEUxNzA2QTcwMDJDN0U4MiAvKiBS
ZWdFeHBQcm90b3R5cGUuaCAqLywKKwkJCQkwRjZCMUNCODE4NjEyNDRDMDA4NDVEOTcgLyogUmVn
aXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmggKi8sCiAJCQkJMEZCN0YzOTExNUVEOEUzODAwRjE2N0Iy
IC8qIFJlamVjdC5oICovLAogCQkJCTBGNzcwMDkxMTQwMkZGMjgwMDc4RUIzOSAvKiBTYW1wbGlu
Z0NvdW50ZXIuY3BwICovLAogCQkJCTBGNzcwMDhFMTQwMkZERDYwMDc4RUIzOSAvKiBTYW1wbGlu
Z0NvdW50ZXIuaCAqLywKQEAgLTM5NjUsNiArNDAyOCw4IEBACiAJCTg2RUM5REIzMTMyOERGNDQw
MDJCMkFENyAvKiBkZmcgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCTJBQ0NGM0RDMTg1RkUyNkIwMDgzRTJBRCAvKiBERkdTdG9yZUJhcnJpZXJFbGlzaW9u
UGhhc2UuY3BwICovLAorCQkJCTJBQ0NGM0REMTg1RkUyNkIwMDgzRTJBRCAvKiBERkdTdG9yZUJh
cnJpZXJFbGlzaW9uUGhhc2UuaCAqLywKIAkJCQlBNzdBNDIzNjE3QTBCQkZEMDBBOERCODEgLyog
REZHQWJzdHJhY3RIZWFwLmNwcCAqLywKIAkJCQlBNzdBNDIzNzE3QTBCQkZEMDBBOERCODEgLyog
REZHQWJzdHJhY3RIZWFwLmggKi8sCiAJCQkJQTcwNEQ4RkUxN0EwQkFBODAwNkJBNTU0IC8qIERG
R0Fic3RyYWN0SW50ZXJwcmV0ZXIuaCAqLywKQEAgLTQxNTMsOCArNDIxOCw2IEBACiAJCQkJMEZD
MjBDQjgxODU1NkEzNTAwQzlFOTU0IC8qIERGR1NTQUxvd2VyaW5nUGhhc2UuaCAqLywKIAkJCQkw
RjlGQjRGMjE3RkNCOTE3MDBDQjY3RjggLyogREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAgKi8sCiAJ
CQkJMEY5RkI0RjMxN0ZDQjkxNzAwQ0I2N0Y4IC8qIERGR1N0YWNrTGF5b3V0UGhhc2UuaCAqLywK
LQkJCQkyQUNDRjNEQzE4NUZFMjZCMDA4M0UyQUQgLyogREZHU3RvcmVCYXJyaWVyRWxpc2lvblBo
YXNlLmNwcCAqLywKLQkJCQkyQUNDRjNERDE4NUZFMjZCMDA4M0UyQUQgLyogREZHU3RvcmVCYXJy
aWVyRWxpc2lvblBoYXNlLmggKi8sCiAJCQkJMEZDMjBDQjMxODUyRTJDNjAwQzlFOTU0IC8qIERG
R1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwICovLAogCQkJCTBGQzIwQ0I0MTg1MkUyQzYwMEM5
RTk1NCAvKiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmggKi8sCiAJCQkJMEY2Mzk0NzYxNURD
RTM0NzAwNkE1OTdDIC8qIERGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaCAqLywKQEAgLTQyNTAs
NiArNDMxMyw3IEBACiAJCTk2ODhDQjEyMEVEMTJCNEUwMDFENjQ5RiAvKiBhc3NlbWJsZXIgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTY1ODYwMTc3MTg1
QThGNUUwMDAzMEVFRSAvKiBNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oICovLAogCQkJ
CTg2MDE2MURGMEYzQTgzQzEwMEY4NDcxMCAvKiBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmggKi8s
CiAJCQkJODY0MDkyM0IxNTZFRUQzQjAwNTY2Q0IyIC8qIEFSTTY0QXNzZW1ibGVyLmggKi8sCiAJ
CQkJODZEM0IyQkYxMDE1NkJERTAwMjg2NUU3IC8qIEFSTUFzc2VtYmxlci5jcHAgKi8sCkBAIC00
MzIyLDYgKzQzODYsNyBAQAogCQkJCTk2OUEwNzkyMEVEMUQzQUUwMEYxRjY4MSAvKiBFdmFsQ29k
ZUNhY2hlLmggKi8sCiAJCQkJMEY1NkExRDQxNTAwMUNGMjAwMjk5MkIxIC8qIEV4ZWN1dGlvbkNv
dW50ZXIuY3BwICovLAogCQkJCTBGNTZBMUQxMTUwMDBGMzEwMDI5OTJCMSAvKiBFeGVjdXRpb25D
b3VudGVyLmggKi8sCisJCQkJMEYzQUM3NTMxODhFNUVDODAwMzIwMjlGIC8qIEV4aXRpbmdKSVRU
eXBlLmggKi8sCiAJCQkJMEZCMTA1ODIxNjc1NDgwQzAwRjhBQjZFIC8qIEV4aXRLaW5kLmNwcCAq
LywKIAkJCQkwRkIxMDU4MzE2NzU0ODBDMDBGOEFCNkUgLyogRXhpdEtpbmQuaCAqLywKIAkJCQkw
RjBCODNBQTE0QkNGNUI5MDA4ODVCNEYgLyogRXhwcmVzc2lvblJhbmdlSW5mby5oICovLApAQCAt
NDU0MSwxMyArNDYwNiwxNCBAQAogCQkJCTg2QUREMTQ1MEZEREVBOTgwMDA2RUVDMiAvKiBBUk12
N0Fzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDRUVFMTUxODdGM0JBRDAwRTU1Qzk5
IC8qIEluc3BlY3RvckFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUMwMjg1RDE3MTc5NjY4
MDAzNTFFMzUgLyogQVJNdjdET3Bjb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkyQTY4Mjk1QjE4
NzVGODA1MDBCNkMzRTIgLyogQ29weVdyaXRlQmFycmllci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MkE0RUM5MEMxODYwRDZDMjAwOTRGNzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5oIGluIEhlYWRl
cnMgKi8sCisgCQkJCTJBNjgyOTVCMTg3NUY4MDUwMEI2QzNFMiAvKiBDb3B5V3JpdGVCYXJyaWVy
LmggaW4gSGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICAyQTRFQzkwQzE4NjBENkMyMDA5NEY3
ODIgLyogV3JpdGVCYXJyaWVyQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTU5MzJBODE4
M0M1QTI2MDBBMUVDQ0MgLyogVk1FbnRyeVNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTMy
NDM5MzE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdlbmVyYXRvckluc3BlY3RvclN0cmluZ3MucHkg
aW4gSGVhZGVycyAqLywKLQkJCQlBNTMyNDM5MjE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdlbmVy
YXRvckluc3BlY3Rvci5weSBpbiBIZWFkZXJzICovLAorIAkJCQlBNTMyNDM5MjE4NTY5NzA5MDAy
RUQ2OTIgLyogQ29kZUdlbmVyYXRvckluc3BlY3Rvci5weSBpbiBIZWFkZXJzICovLAogCQkJCTBG
MjRFNTRGMTdFRTI3NDkwMEFCQjIxNyAvKiBUZW1wUmVnaXN0ZXJTZXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE1MEU0QjY0MTg4MDlERDUwMDY4QTQ2RCAvKiBKU0dsb2JhbE9iamVjdFJ1bnRpbWVB
Z2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRkVCNThDMTUxODdCOEIxNjAwOThFRjBCIC8qIEVy
cm9ySGFuZGxpbmdTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdCRkYzQzAxNzk4Njg5NDAw
MDJGNDYyIC8qIERGR0ZpbHRyYXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODQw
RTI3MTg3Qzk4MUUwMDg0M0IxMCAvKiBjc3NtaW4ucHkgaW4gSGVhZGVycyAqLywKIAkJCQlDMkZD
QUUxMTE3QTlDMjRFMDAzNEM3MzUgLyogQnl0ZWNvZGVCYXNpY0Jsb2NrLmggaW4gSGVhZGVycyAq
LywKQEAgLTQ1NTYsNyArNDYyMiw3IEBACiAJCQkJMEY4MzM1QjgxNjM5QzFFQTAwMTQ0M0I1IC8q
IEFycmF5QWxsb2NhdGlvblByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODQwRTI5MTg3
Q0E1RTYwMDg0M0IxMCAvKiBpbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2NyaXB0
cy5weSBpbiBIZWFkZXJzICovLAogCQkJCUE1ODQwRTJCMTg3Q0E3NUIwMDg0M0IxMCAvKiBqc21p
bi5weSBpbiBIZWFkZXJzICovLAotCQkJCUE1MzI0Mzk4MTg1NkE0ODkwMDJFRDY5MiAvKiBJbnNw
ZWN0b3JKUy5qc29uIGluIEhlYWRlcnMgKi8sCisgCQkJCUE1MzI0Mzk4MTg1NkE0ODkwMDJFRDY5
MiAvKiBJbnNwZWN0b3JKUy5qc29uIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4NDBFMkExODdDQTc1
OTAwODQzQjEwIC8qIHh4ZC5wbCBpbiBIZWFkZXJzICovLAogCQkJCUZFQTA4NjIwMTgyQjdBMDQw
MEY2RDg1MSAvKiBCcmVha3BvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0E4QUYzNTE3QURC
NUYzMDA1QUIxNzQgLyogQXJyYXlCdWZmZXIuaCBpbiBIZWFkZXJzICovLApAQCAtNDYyNCw2ICs0
NjkwLDcgQEAKIAkJCQlDMkVBQTNGQTE0OUE4MzVFMDBGQ0UxMTIgLyogQ29waWVkU3BhY2UuaCBp
biBIZWFkZXJzICovLAogCQkJCUMyQzhEMDJEMTRBM0M2RTAwMDU3OEU2NSAvKiBDb3BpZWRTcGFj
ZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNUE1MkQwMTdBREQ3MTcwMDhFQ0IyRCAv
KiBDb3B5VG9rZW4uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkIxQ0M2MTg2MkM0NzgwMDg0NUQ5
NyAvKiBGVExVbndpbmRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMjIzOUQxODE2MjYyQkRE
MDA1QUM1RkQgLyogQ29weVZpc2l0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyMjM5RDE5MTYy
NjJCREQwMDVBQzVGRCAvKiBDb3B5VmlzaXRvcklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUMyMThEMTQwMTY1NUNGRDUwMDYyQkI4MSAvKiBDb3B5V29ya0xpc3QuaCBpbiBIZWFkZXJzICov
LApAQCAtNDY2NSw3ICs0NzMyLDggQEAKIAkJCQkwRjgzNjRCNzE2NEIwQzExMDA1MzMyOUEgLyog
REZHQnJhbmNoRGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUEwMDlDMDE4MzFBMjJE
MDBDRjg3MTEgLyogTWFjcm9Bc3NlbWJsZXJBUk02NC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZF
QzlEQzUxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0J5dGVDb2RlUGFyc2VyLmggaW4gSGVhZGVycyAq
LywKLQkJCQlBNTkzQ0Y4NzE4NDAzOENBMDBCRkNFMjcgLyogSW5zcGVjdG9yQWdlbnRSZWdpc3Ry
eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0ODUzMjgxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2
YWlsYWJsZVJlY292ZXJ5LmggaW4gSGVhZGVycyAqLywKKyAgICAgICAgICAgICAgICBBNTkzQ0Y4
NzE4NDAzOENBMDBCRkNFMjcgLyogSW5zcGVjdG9yQWdlbnRSZWdpc3RyeS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEYyNTZDMzYxNjI3QjBBRDAwN0YyNzgzIC8qIERGR0NhbGxBcnJheUFsbG9jYXRv
clNsb3dQYXRoR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdCMjk0QjE0QzNDRDJG
MDA3QzNEQjEgLyogREZHQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZGQzk1
ODE0RUY5MEEyMDBDNzI1MzIgLyogREZHQ0ZBUGhhc2UuaCBpbiBIZWFkZXJzICovLApAQCAtNDY5
OSw2ICs0NzY3LDcgQEAKIAkJCQkwRkJDMEFFODE0OTZDN0M3MDBENEZCREQgLyogREZHRXhpdFBy
b2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3OEE5Nzc1MTc5NzM4QjgwMDlERjc0NCAvKiBE
RkdGYWlsZWRGaW5hbGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3OEE5Nzc3MTc5NzM4Qjgw
MDlERjc0NCAvKiBERkdGaW5hbGl6ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkIxQ0I2MTg1
RkM5RTkwMDg0NUQ5NyAvKiBGVExKU0NhbGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkJEQzE2
MTUxQzVENEYwMENEODkxMCAvKiBERkdGaXh1cFBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjlEMzM5NzE3RkZDNEU2MDA3M0MyQkMgLyogREZHRmx1c2hlZEF0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBN0Q4OUNGODE3QTBCOENDMDA3NzNBRDggLyogREZHRmx1c2hGb3JtYXQuaCBpbiBIZWFk
ZXJzICovLApAQCAtNDczNSw2ICs0ODA0LDcgQEAKIAkJCQkwRkQ4QTMyNjE3RDUxRjU3MDBDQTJD
NDAgLyogREZHT1NSRW50cnlwb2ludENyZWF0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQzA5NzZBMTQ2OEE2RjcwMENGMjQ0MiAvKiBERkdPU1JFeGl0LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkZDOTlEMTE4NEVDOEFEMDA5QzEwQUIgLyogQ29uc3RhbnRNb2RlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjZCMUNCQTE4NjEyNDRDMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRp
b25Nb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjIzNUJFQzE3MTc4RTczMDA2OTBDN0YgLyog
REZHT1NSRXhpdEJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QkExNUVEMTgyMzQwQjQwMEE4
MkU2OSAvKiBSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkZCOTIxQzE2RDAyRjExMDA1NUE1REIgLyogREZHT1NSRXhpdENvbXBpbGF0aW9uSW5mby5o
IGluIEhlYWRlcnMgKi8sCkBAIC00ODAzLDYgKzQ4NzMsNyBAQAogCQkJCTBGRUEwQTFGMTcwOEIw
MDcwMEJCNzIyQyAvKiBGVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNTk0NTU5MzE4MjQ3NDQ3MDBDQzM4NDMgLyogSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVBMEEwQTE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQ2Fw
YWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjQ4NTMyQTE4N0RGREVDMDA4M0I2ODcg
LyogRlRMUmVjb3ZlcnlPcGNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTIzMTcwOTYw
NjkwMEJCNzIyQyAvKiBGVExDb21tb25WYWx1ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEw
QTBDMTcwNTEzREIwMEJCNzIyQyAvKiBGVExDb21waWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjIzNUJENDE3MTc4RTFDMDA2OTBDN0YgLyogRlRMRXhpdEFyZ3VtZW50LmggaW4gSGVhZGVycyAq
LywKQEAgLTQ4MTksNiArNDg5MCw3IEBACiAJCQkJMEZFQTBBMjQxNzA5NjA2OTAwQkI3MjJDIC8q
IEZUTEludHJpbnNpY1JlcG9zaXRvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTBFMTcw
NTEzREIwMEJCNzIyQyAvKiBGVExKSVRDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzhBOTc4
MTE3OTczOEQ1MDA5REY3NDQgLyogRlRMSklURmluYWxpemVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjVBNjI4NDE4OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY4RjJCOTYxNzJFMDRBMzAwN0RCREE1IC8qIEZUTExpbmsuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGQ0VGQUUwMTgwNzM4QzAwMDQ3MkNFNCAvKiBGVExMb2NhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZFQTBBMTAxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTExvd2VyREZHVG9M
TFZNLmggaW4gSGVhZGVycyAqLywKQEAgLTQ5MDEsNiArNDk3Myw3IEBACiAJCQkJMEZDMjBDQjYx
ODUyRTJDNjAwQzlFOTU0IC8qIERGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGQjE0RTFGMTgxMjRBQ0UwMDlCNkI0RCAvKiBKSVRJbmxpbmVDYWNoZUdlbmVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZDQzg1QTEwRUU3OUE0NzAwMjg4NjgyIC8qIEpJ
VElubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkIxQ0JFMTg2MTI0NkEwMDg0NUQ5NyAv
KiBSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGMjRFNTREMTdFRTI3NDkwMEFCQjIxNyAvKiBKSVRPcGVyYXRpb25zLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNzkwREQ3MDE4MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJdGVyYXRvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEYyNEU1NEUxN0VFMjc0OTAwQUJCMjE3IC8qIEpJVE9wZXJhdGlv
bldyYXBwZXJzLmggaW4gSGVhZGVycyAqLywKQEAgLTQ5MTYsNiArNDk4OSw3IEBACiAJCQkJMEZD
NzEyRTMxN0NEODc5MzAwOENDOTNDIC8qIEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzZGNTRBMzEzQjI4QUFCMDBFRjJCQ0UgLyogSklU
V3JpdGVCYXJyaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQxNjBFMTZGNUNEMDBCMzQ0
NjAgLyogSlNBY3RpdmF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCMUNCOTE4NjEyNDRD
MDA4NDVEOTcgLyogQXJpdHlDaGVja01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0MDQ4MDEz
MTAyMUExRDkwMDhFN0YwMSAvKiBKU0FQSVZhbHVlV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQzJDRjM5QzIxNkUxNUE4MTAwREQ2OUJFIC8qIEpTQVBJV3JhcHBlck9iamVjdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTc2MTQwRDIxODI5ODJDQjAwNzUwNjI0IC8qIEpTQXJndW1lbnRzSXRl
cmF0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtNDk2OSw2ICs1MDQzLDggQEAKIAkJCQlCQzE4QzQy
MzBFMTZGNUNEMDBCMzQ0NjAgLyogSlNMb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMjVENzA5
QzE2REU5OUY0MDBGQ0E2QkMgLyogSlNNYW5hZ2VkVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE3MDA4NzQyMTdDQkU4RUIwMEMzRTY0MyAvKiBKU01hcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEYzQUM3NTQxODhFNUVDODAwMzIwMjlGIC8qIEV4aXRpbmdKSVRUeXBlLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjZCMUNDNDE4NjJDNDc4MDA4NDVEOTcgLyogRlRMUmVnaXN0ZXJBdE9mZnNldC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ4NzRBRTQxNUVCREU0QTAwMkUzNTg3IC8qIEpTTmFtZVNj
b3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQyNDBFMTZGNUNEMDBCMzQ0NjAgLyogSlNP
YmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDI1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBK
U09iamVjdFJlZi5oIGluIEhlYWRlcnMgKi8sCkBAIC01MjczLDYgKzUzNDksNyBAQAogCQkJCTk2
ODhDQjE2MEVEMTJCNEUwMDFENjQ5RiAvKiBYODZBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQ1MTUzOUI5MTJEQzk5NDUwMEVGN0FDNCAvKiBZYXJyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjY2NkVDRDE4MzZCMzdFMDBEMDE3RjEgLyogREZHUmVzdXJyZWN0aW9uRm9yVmFsaWRhdGlv
blBoYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCMUNDQTE4NjQxREY4MDA4NDVEOTcgLyog
QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0Qjg1
MTJEQkEzMzcwMEE5RkU3QiAvKiBZYXJySW50ZXJwcmV0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE1NUQ5M0E2MTg1MDEyQTgwMDQwMERFRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg2NzA0Qjg3MTJEQkEzMzcwMEE5RkU3QiAvKiBZYXJySklULmggaW4gSGVh
ZGVycyAqLywKQEAgLTU3MTYsNiArNTc5Myw3IEBACiAJCQkJMTQyOUQ4REQwRUQyMjA1QjAwQjg5
NjE5IC8qIENhbGxGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjBCODNCMDE0QkNGNzE2
MDA4ODVCNEYgLyogQ2FsbExpbmtJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1MTNFNUI3
MTg1QjhCRDMwMDdFOTVBRCAvKiBJbmplY3RlZFNjcmlwdC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkwRjVBNjI4MzE4OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRjkzMzI5RDE0Q0E3REMzMDA4NUYzQzYgLyogQ2FsbExpbmtTdGF0dXMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3M0Q3QUUxNjVBMTQyRDAwQUNBQjcxIC8qIENsb3N1cmVD
YWxsU3R1YlJvdXRpbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTY5QTA3OTYwRUQxRDNBRTAw
RjFGNjgxIC8qIENvZGVCbG9jay5jcHAgaW4gU291cmNlcyAqLywKQEAgLTU3NTQsNiArNTgzMiw3
IEBACiAJCQkJMEY2Mzk0ODQxNUU0ODExODAwNkE1OTdDIC8qIERGR0FycmF5TW9kZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBN0Q5QTI5NDE3QTBCQzc0MDBFRTI2MTggLyogREZHQXRUYWlsQWJz
dHJhY3RTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjcxNENBNDE2RUE5MkYwMDBGM0VC
RUIgLyogREZHQmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGRUI1OEMxNDE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGluZ1Njb3BlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE3RDg5Q0YyMTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdCYXNpY0Jsb2Nr
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3MEIwODMyMTdBMEI3OUIwMERBRjE0QiAvKiBERkdC
aW5hcnlTd2l0Y2guY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdEODlDRjMxN0EwQjhDQzAwNzcz
QUQ4IC8qIERGR0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtNTgzMSw5
ICs1OTEwLDExIEBACiAJCQkJODY4ODBGNEQxNDM1M0IyMTAwQjA4RDQyIC8qIERGR1NwZWN1bGF0
aXZlSklUNjQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdEODlDRkYxN0EwQjhDQzAwNzczQUQ4
IC8qIERGR1NTQUNvbnZlcnNpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjlGQjRG
NDE3RkNCOTE3MDBDQjY3RjggLyogREZHU3RhY2tMYXlvdXRQaGFzZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkwRjZCMUNCRDE4NjEyNDZBMDA4NDVEOTcgLyogUmVnaXN0ZXJQcmVzZXJ2YXRpb25X
cmFwcGVyR2VuZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzA5N0ExMTQ2QjI4Q0Ew
MENGMjQ0MiAvKiBERkdUaHVua3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEOEEzMjcxN0Q1
MUY1NzAwQ0EyQzQwIC8qIERGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZEOEEzMjkxN0Q1MUY1NzAwQ0EyQzQwIC8qIERGR1RvRlRMRGVmZXJyZWRD
b21waWxhdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNDg1MzI3MTg3REZE
RUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkQ4QTMyQjE3RDUxRjU3MDBDQTJDNDAgLyogREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjYzOTQ0MDE1Qzc1
RjFEMDA2QTU5N0MgLyogREZHVHlwZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkJFMEY3NjE2QzFEQjBGMDA4MkM1RTggLyogREZHVW5pZmljYXRpb25QaGFzZS5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTU4OTIsOSArNTk3MywxMSBAQAogCQkJCTBGQ0VGQUFCMTgw
NEMxM0UwMDQ3MkNFNCAvKiBGVExTYXZlUmVzdG9yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RjI1RjFCMTE4MTYzNUYzMDA1MjJGMzkgLyogRlRMU2xvd1BhdGhDYWxsLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGMjVGMUIzMTgxNjM1RjMwMDUyMkYzOSAvKiBGVExTbG93UGF0aENhbGxLZXku
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2QjFDQzUxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVu
d2luZEluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5RDMzOUExODAzQURCNzAwNzNDMkJD
IC8qIEZUTFN0YWNrTWFwcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVBMEExNjE3MDZCQjkw
MDBCQjcyMkMgLyogRlRMU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJN0MwMDhDRDIxODZG
OEE5MzAwOTU1QzI0IC8qIEpTUHJvbWlzZUZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKKyAJ
CQkJN0MwMDhDRDIxODZGOEE5MzAwOTU1QzI0IC8qIEpTUHJvbWlzZUZ1bmN0aW9ucy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkwRjZCMUNCNTE4NUZDOUU5MDA4NDVEOTcgLyogRlRMSlNDYWxsLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjM1QkUxMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExUaHVu
a3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU5M0NGN0MxODQwMzYwMzAwQkZDRTI3IC8qIElu
c3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjM1QkUz
MTcxNzhFMUMwMDY5MEM3RiAvKiBGVExWYWx1ZUZvcm1hdC5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTU5ODAsNiArNjA2Myw3IEBACiAJCQkJMTQyODA4NzUxMDdFQzEzRTAwMTNFN0IyIC8qIEpTTG9j
ay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMjVENzA5QjE2REU5OUY0MDBGQ0E2QkMgLyogSlNN
YW5hZ2VkVmFsdWUubW0gaW4gU291cmNlcyAqLywKIAkJCQlBNzAwODc0MTE3Q0JFOEVCMDBDM0U2
NDMgLyogSlNNYXAuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY0ODUzMjkxODdERkRFQzAwODNC
Njg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0ODc0QUUz
MTVFQkRFNEEwMDJFMzU4NyAvKiBKU05hbWVTY29wZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
NzI3MDA5MDBEQUM2QkJDMDBFNTQ4RDcgLyogSlNOb3RBbk9iamVjdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxNDdGMzlENDEwN0VDMzc2MDA0MjdBNDggLyogSlNPYmplY3QuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC02MDk2LDYgKzYxODAsNyBAQAogCQkJCTBGNjY2RUNDMTgzNkIzN0UwMEQwMTdG
MSAvKiBERkdSZXN1cnJlY3Rpb25Gb3JWYWxpZGF0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZCMTA1OEIxNjc1NDgzMTAwRjhBQjZFIC8qIFByb2ZpbGVyT1NSRXhpdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRkIxMDU4RDE2NzU0ODM3MDBGOEFCNkUgLyogUHJvZmlsZXJPU1JF
eGl0U2l0ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjZCMUNDMzE4NjJDNDc4MDA4NDVEOTcg
LyogRlRMUmVnaXN0ZXJBdE9mZnNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjEzOTEyQjE2
NzcxQzNBMDA5Q0NCMDcgLyogUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBN0ZCNjBBNDEwM0Y3REMyMDAxN0EyODYgLyogUHJvcGVydHlEZXNjcmlwdG9y
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDY5REU3MTA3RUM3RTcwMDY1MDQ0NiAvKiBQcm9w
ZXJ0eU5hbWVBcnJheS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTYxMjUsNiArNjIxMCw3IEBACiAJ
CQkJMEY4RjJCOUUxNzMwNkM4RDAwN0RCREE1IC8qIFNvdXJjZUNvZGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEY0OTNBRkExNkQwQ0FEMzAwODQ1MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUU0OURDMTZCMTJFRjI5M0UwMDE4NEExRiAvKiBTb3VyY2VQcm92
aWRlckNhY2hlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNkIxQ0M5MTg2NDFERjgwMDg0NUQ5
NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RjBDRDRDNDE1RjZCNkJCMDAzMkYxQzAgLyogU3BhcnNlQXJyYXlWYWx1ZU1hcC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRjU1NDFCMTE2MTNDMUZCMDBDRTNFMjUgLyogU3BlY2lhbFBvaW50ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEODJFODYxNDFGM0ZGMTAwMTc5Qzk0IC8qIFNwZWN1
bGF0ZWRUeXBlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9BUk02NEFzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9BUk02NEFzc2VtYmxlci5oCmluZGV4IGNmYmQ4Y2VjNTZmN2I0NGNjNTM0NzAw
N2Q3NmFhZjk3MjU5N2JkODYuLmUwOTk4ZDRiN2E3NDQ3YjIwZmY0Zjc3MmU5NzE1MmNhZWMwMGY4
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3Nl
bWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1i
bGVyLmgKQEAgLTQwLDE0ICs0MCwyNiBAQAogI2RlZmluZSBEQVRBU0laRSBEQVRBU0laRV9PRihk
YXRhc2l6ZSkKICNkZWZpbmUgTUVNT1BTSVpFIE1FTU9QU0laRV9PRihkYXRhc2l6ZSkKICNkZWZp
bmUgQ0hFQ0tfRlBfTUVNT1BfREFUQVNJWkUoKSBBU1NFUlQoZGF0YXNpemUgPT0gOCB8fCBkYXRh
c2l6ZSA9PSAxNiB8fCBkYXRhc2l6ZSA9PSAzMiB8fCBkYXRhc2l6ZSA9PSA2NCB8fCBkYXRhc2l6
ZSA9PSAxMjgpCisjZGVmaW5lIE1FTVBBSVJPUFNJWkVfSU5UKGRhdGFzaXplKSAoKGRhdGFzaXpl
ID09IDY0KSA/IE1lbVBhaXJPcF82NCA6IE1lbVBhaXJPcF8zMikKKyNkZWZpbmUgTUVNUEFJUk9Q
U0laRV9GUChkYXRhc2l6ZSkgKChkYXRhc2l6ZSA9PSAxMjgpID8gTWVtUGFpck9wX1YxMjggOiAo
ZGF0YXNpemUgPT0gNjQpID8gTWVtUGFpck9wX1Y2NCA6IE1lbVBhaXJPcF8zMikKIAogbmFtZXNw
YWNlIEpTQyB7CiAKK0FMV0FZU19JTkxJTkUgYm9vbCBpc0ludDcoaW50MzJfdCB2YWx1ZSkKK3sK
KyAgICByZXR1cm4gdmFsdWUgPT0gKCh2YWx1ZSA8PCAyNSkgPj4gMjUpOworfQorCiBBTFdBWVNf
SU5MSU5FIGJvb2wgaXNJbnQ5KGludDMyX3QgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHZhbHVlID09
ICgodmFsdWUgPDwgMjMpID4+IDIzKTsKIH0KIAorQUxXQVlTX0lOTElORSBib29sIGlzSW50MTEo
aW50MzJfdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gdmFsdWUgPT0gKCh2YWx1ZSA8PCAyMSkgPj4g
MjEpOworfQorCiBBTFdBWVNfSU5MSU5FIGJvb2wgaXNVSW50NShpbnQzMl90IHZhbHVlKQogewog
ICAgIHJldHVybiAhKHZhbHVlICYgfjB4MWYpOwpAQCAtMTE5LDYgKzEzMSwzNCBAQCBwcml2YXRl
OgogICAgIGludCBtX3ZhbHVlOwogfTsKIAorY2xhc3MgUGFpclBvc3RJbmRleCB7CitwdWJsaWM6
CisgICAgZXhwbGljaXQgUGFpclBvc3RJbmRleChpbnQgdmFsdWUpCisgICAgICAgIDogbV92YWx1
ZSh2YWx1ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChpc0ludDExKHZhbHVlKSk7CisgICAgfQor
CisgICAgb3BlcmF0b3IgaW50KCkgeyByZXR1cm4gbV92YWx1ZTsgfQorCitwcml2YXRlOgorICAg
IGludCBtX3ZhbHVlOworfTsKKworY2xhc3MgUGFpclByZUluZGV4IHsKK3B1YmxpYzoKKyAgICBl
eHBsaWNpdCBQYWlyUHJlSW5kZXgoaW50IHZhbHVlKQorICAgICAgICA6IG1fdmFsdWUodmFsdWUp
CisgICAgeworICAgICAgICBBU1NFUlQoaXNJbnQxMSh2YWx1ZSkpOworICAgIH0KKworICAgIG9w
ZXJhdG9yIGludCgpIHsgcmV0dXJuIG1fdmFsdWU7IH0KKworcHJpdmF0ZToKKyAgICBpbnQgbV92
YWx1ZTsKK307CisKIGNsYXNzIExvZ2ljYWxJbW1lZGlhdGUgewogcHVibGljOgogICAgIHN0YXRp
YyBMb2dpY2FsSW1tZWRpYXRlIGNyZWF0ZTMyKHVpbnQzMl90IHZhbHVlKQpAQCAtODIzLDYgKzg2
MywxNiBAQCBwcml2YXRlOgogICAgICAgICBNZW1PcF9MT0FEX3NpZ25lZDMyID0gMyAvLyBzaXpl
IG1heSBiZSAwIG9yIDEKICAgICB9OwogCisgICAgZW51bSBNZW1QYWlyT3BTaXplIHsKKyAgICAg
ICAgTWVtUGFpck9wXzMyID0gMCwKKyAgICAgICAgTWVtUGFpck9wX0xvYWRTaWduZWRfMzIgPSAx
LAorICAgICAgICBNZW1QYWlyT3BfNjQgPSAyLAorCisgICAgICAgIE1lbVBhaXJPcF9WMzIgPSBN
ZW1QYWlyT3BfMzIsCisgICAgICAgIE1lbVBhaXJPcF9WNjQgPSAxLAorICAgICAgICBNZW1QYWly
T3BfVjEyOCA9IDIKKyAgICB9OworCiAgICAgZW51bSBNb3ZlV2lkZU9wIHsKICAgICAgICAgTW92
ZVdpZGVPcF9OID0gMCwKICAgICAgICAgTW92ZVdpZGVPcF9aID0gMiwKQEAgLTgzNiw2ICs4ODYs
MTQgQEAgcHJpdmF0ZToKICAgICAgICAgTGRyTGl0ZXJhbE9wXzEyOEJJVCA9IDIKICAgICB9Owog
CisgICAgc3RhdGljIHVuc2lnbmVkIG1lbVBhaXJPZmZzZXRTaGlmdChib29sIFYsIE1lbVBhaXJP
cFNpemUgc2l6ZSkKKyAgICB7CisgICAgICAgIC8vIHJldHVybiB0aGUgbG9nMiBvZiB0aGUgc2l6
ZSBpbiBieXRlcywgZS5nLiA2NCBiaXQgc2l6ZSByZXR1cm5zIDMKKyAgICAgICAgaWYgKFYpCisg
ICAgICAgICAgICByZXR1cm4gc2l6ZSArIDI7CisgICAgICAgIHJldHVybiAoc2l6ZSA+PiAxKSAr
IDI7CisgICAgfQorCiBwdWJsaWM6CiAgICAgLy8gSW50ZWdlciBJbnN0cnVjdGlvbnM6CiAKQEAg
LTg3MSw4ICs5MjksOSBAQCBwdWJsaWM6CiAgICAgQUxXQVlTX0lOTElORSB2b2lkIGFkZChSZWdp
c3RlcklEIHJkLCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtLCBTaGlmdFR5cGUgc2hpZnQs
IGludCBhbW91bnQpCiAgICAgewogICAgICAgICBDSEVDS19EQVRBU0laRSgpOwotICAgICAgICBp
ZiAoaXNTcChybikpIHsKKyAgICAgICAgaWYgKGlzU3AocmQpIHx8IGlzU3Aocm4pKSB7CiAgICAg
ICAgICAgICBBU1NFUlQoc2hpZnQgPT0gTFNMKTsKKyAgICAgICAgICAgIEFTU0VSVCghaXNTcChy
bSkpOwogICAgICAgICAgICAgYWRkPGRhdGFzaXplLCBzZXRGbGFncz4ocmQsIHJuLCBybSwgVVhU
WCwgYW1vdW50KTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBpbnNuKGFkZFN1YnRyYWN0
U2hpZnRlZFJlZ2lzdGVyKERBVEFTSVpFLCBBZGRPcF9BREQsIHNldEZsYWdzLCBzaGlmdCwgcm0s
IGFtb3VudCwgcm4sIHJkKSk7CkBAIC0xMjE2LDYgKzEyNzUsMjAgQEAgcHVibGljOgogICAgIH0K
IAogICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgbGRw
KFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnQyLCBSZWdpc3RlcklEIHJuLCBQYWlyUG9zdElu
ZGV4IHNpbW0pCisgICAgeworICAgICAgICBDSEVDS19EQVRBU0laRSgpOworICAgICAgICBpbnNu
KGxvYWRTdG9yZVJlZ2lzdGVyUGFpclBvc3RJbmRleChNRU1QQUlST1BTSVpFX0lOVChkYXRhc2l6
ZSksIGZhbHNlLCBNZW1PcF9MT0FELCBzaW1tLCBybiwgcnQsIHJ0MikpOworICAgIH0KKworICAg
IHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgbGRwKFJlZ2lz
dGVySUQgcnQsIFJlZ2lzdGVySUQgcnQyLCBSZWdpc3RlcklEIHJuLCBQYWlyUHJlSW5kZXggc2lt
bSkKKyAgICB7CisgICAgICAgIENIRUNLX0RBVEFTSVpFKCk7CisgICAgICAgIGluc24obG9hZFN0
b3JlUmVnaXN0ZXJQYWlyUHJlSW5kZXgoTUVNUEFJUk9QU0laRV9JTlQoZGF0YXNpemUpLCBmYWxz
ZSwgTWVtT3BfTE9BRCwgc2ltbSwgcm4sIHJ0LCBydDIpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZTxpbnQgZGF0YXNpemU+CiAgICAgQUxXQVlTX0lOTElORSB2b2lkIGxkcihSZWdpc3RlcklEIHJ0
LCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtKQogICAgIHsKICAgICAgICAgbGRyPGRhdGFz
aXplPihydCwgcm4sIHJtLCBVWFRYLCAwKTsKQEAgLTE3NDgsNiArMTgyMSwyMCBAQCBwdWJsaWM6
CiAgICAgfQogCiAgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZU19JTkxJTkUg
dm9pZCBzdHAoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBydDIsIFJlZ2lzdGVySUQgcm4sIFBh
aXJQb3N0SW5kZXggc2ltbSkKKyAgICB7CisgICAgICAgIENIRUNLX0RBVEFTSVpFKCk7CisgICAg
ICAgIGluc24obG9hZFN0b3JlUmVnaXN0ZXJQYWlyUG9zdEluZGV4KE1FTVBBSVJPUFNJWkVfSU5U
KGRhdGFzaXplKSwgZmFsc2UsIE1lbU9wX1NUT1JFLCBzaW1tLCBybiwgcnQsIHJ0MikpOworICAg
IH0KKworICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQg
c3RwKFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnQyLCBSZWdpc3RlcklEIHJuLCBQYWlyUHJl
SW5kZXggc2ltbSkKKyAgICB7CisgICAgICAgIENIRUNLX0RBVEFTSVpFKCk7CisgICAgICAgIGlu
c24obG9hZFN0b3JlUmVnaXN0ZXJQYWlyUHJlSW5kZXgoTUVNUEFJUk9QU0laRV9JTlQoZGF0YXNp
emUpLCBmYWxzZSwgTWVtT3BfU1RPUkUsIHNpbW0sIHJuLCBydCwgcnQyKSk7CisgICAgfQorCisg
ICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzdHIoUmVn
aXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0ZXJJRCBybSkKICAgICB7CiAgICAgICAg
IHN0cjxkYXRhc2l6ZT4ocnQsIHJuLCBybSwgVVhUWCwgMCk7CkBAIC0xODc2LDggKzE5NjMsOSBA
QCBwdWJsaWM6CiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHN1YihSZWdpc3RlcklEIHJkLCBSZWdp
c3RlcklEIHJuLCBSZWdpc3RlcklEIHJtLCBTaGlmdFR5cGUgc2hpZnQsIGludCBhbW91bnQpCiAg
ICAgewogICAgICAgICBDSEVDS19EQVRBU0laRSgpOwotICAgICAgICBpZiAoaXNTcChybikpIHsK
KyAgICAgICAgaWYgKGlzU3AocmQpIHx8IGlzU3Aocm4pKSB7CiAgICAgICAgICAgICBBU1NFUlQo
c2hpZnQgPT0gTFNMKTsKKyAgICAgICAgICAgIEFTU0VSVCghaXNTcChybSkpOwogICAgICAgICAg
ICAgc3ViPGRhdGFzaXplLCBzZXRGbGFncz4ocmQsIHJuLCBybSwgVVhUWCwgYW1vdW50KTsKICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICBpbnNuKGFkZFN1YnRyYWN0U2hpZnRlZFJlZ2lzdGVy
KERBVEFTSVpFLCBBZGRPcF9TVUIsIHNldEZsYWdzLCBzaGlmdCwgcm0sIGFtb3VudCwgcm4sIHJk
KSk7CkBAIC0zMzYxLDYgKzM0NDksMjMgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICAvLyAnVicg
bWVhbnMgdmVjdG9yCisgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgaW50IGxvYWRTdG9yZVJlZ2lz
dGVyUGFpclBvc3RJbmRleChNZW1QYWlyT3BTaXplIHNpemUsIGJvb2wgViwgTWVtT3Agb3BjLCBp
bnQgaW1tZWRpYXRlLCBSZWdpc3RlcklEIHJuLCBGUFJlZ2lzdGVySUQgcnQsIEZQUmVnaXN0ZXJJ
RCBydDIpCisgICAgeworICAgICAgICBBU1NFUlQoc2l6ZSA8IDMpOworICAgICAgICBBU1NFUlQo
b3BjID09IChvcGMgJiAxKSk7IC8vIE9ubHkgbG9hZCBvciBzdG9yZSwgbG9hZCBzaWduZWQgNjQg
aXMgaGFuZGxlZCB2aWEgc2l6ZS4KKyAgICAgICAgQVNTRVJUKFYgfHwgKHNpemUgIT0gTWVtUGFp
ck9wX0xvYWRTaWduZWRfMzIpIHx8IChvcGMgPT0gTWVtT3BfTE9BRCkpOyAvLyBUaGVyZSBpc24n
dCBhbiBpbnRlZ2VyIHN0b3JlIHNpZ25lZC4KKyAgICAgICAgdW5zaWduZWQgaW1tZWRTaGlmdEFt
b3VudCA9IG1lbVBhaXJPZmZzZXRTaGlmdChWLCBzaXplKTsKKyAgICAgICAgaW50IGltbTcgPSBp
bW1lZGlhdGUgPj4gaW1tZWRTaGlmdEFtb3VudDsKKyAgICAgICAgQVNTRVJUKChpbW03IDw8IGlt
bWVkU2hpZnRBbW91bnQpID09IGltbWVkaWF0ZSAmJiBpc0ludDcoaW1tNykpOworICAgICAgICBy
ZXR1cm4gKDB4Mjg4MDAwMDAgfCBzaXplIDw8IDMwIHwgViA8PCAyNiB8IG9wYyA8PCAyMiB8IChp
bW03ICYgMHg3ZikgPDwgMTUgfCBydDIgPDwgMTAgfCB4T3JTcChybikgPDwgNSB8IHJ0KTsKKyAg
ICB9CisKKyAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBpbnQgbG9hZFN0b3JlUmVnaXN0ZXJQYWly
UG9zdEluZGV4KE1lbVBhaXJPcFNpemUgc2l6ZSwgYm9vbCBWLCBNZW1PcCBvcGMsIGludCBpbW1l
ZGlhdGUsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcnQyKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGxvYWRTdG9yZVJlZ2lzdGVyUGFpclBvc3RJbmRleChzaXplLCBW
LCBvcGMsIGltbWVkaWF0ZSwgcm4sIHhPclpyQXNGUFIocnQpLCB4T3JackFzRlBSKHJ0MikpOwor
ICAgIH0KKworICAgIC8vICdWJyBtZWFucyB2ZWN0b3IKICAgICBBTFdBWVNfSU5MSU5FIHN0YXRp
YyBpbnQgbG9hZFN0b3JlUmVnaXN0ZXJQcmVJbmRleChNZW1PcFNpemUgc2l6ZSwgYm9vbCBWLCBN
ZW1PcCBvcGMsIGludCBpbW05LCBSZWdpc3RlcklEIHJuLCBGUFJlZ2lzdGVySUQgcnQpCiAgICAg
ewogICAgICAgICBBU1NFUlQoIShzaXplICYmIFYgJiYgKG9wYyAmIDIpKSk7IC8vIE1heGltdW0g
dmVjdG9yIHNpemUgaXMgMTI4IGJpdHMuCkBAIC0zMzc1LDYgKzM0ODAsMjMgQEAgcHJpdmF0ZToK
ICAgICB9CiAKICAgICAvLyAnVicgbWVhbnMgdmVjdG9yCisgICAgQUxXQVlTX0lOTElORSBzdGF0
aWMgaW50IGxvYWRTdG9yZVJlZ2lzdGVyUGFpclByZUluZGV4KE1lbVBhaXJPcFNpemUgc2l6ZSwg
Ym9vbCBWLCBNZW1PcCBvcGMsIGludCBpbW1lZGlhdGUsIFJlZ2lzdGVySUQgcm4sIEZQUmVnaXN0
ZXJJRCBydCwgRlBSZWdpc3RlcklEIHJ0MikKKyAgICB7CisgICAgICAgIEFTU0VSVChzaXplIDwg
Myk7CisgICAgICAgIEFTU0VSVChvcGMgPT0gKG9wYyAmIDEpKTsgLy8gT25seSBsb2FkIG9yIHN0
b3JlLCBsb2FkIHNpZ25lZCA2NCBpcyBoYW5kbGVkIHZpYSBzaXplLgorICAgICAgICBBU1NFUlQo
ViB8fCAoc2l6ZSAhPSBNZW1QYWlyT3BfTG9hZFNpZ25lZF8zMikgfHwgKG9wYyA9PSBNZW1PcF9M
T0FEKSk7IC8vIFRoZXJlIGlzbid0IGFuIGludGVnZXIgc3RvcmUgc2lnbmVkLgorICAgICAgICB1
bnNpZ25lZCBpbW1lZFNoaWZ0QW1vdW50ID0gbWVtUGFpck9mZnNldFNoaWZ0KFYsIHNpemUpOwor
ICAgICAgICBpbnQgaW1tNyA9IGltbWVkaWF0ZSA+PiBpbW1lZFNoaWZ0QW1vdW50OworICAgICAg
ICBBU1NFUlQoKGltbTcgPDwgaW1tZWRTaGlmdEFtb3VudCkgPT0gaW1tZWRpYXRlICYmIGlzSW50
NyhpbW03KSk7CisgICAgICAgIHJldHVybiAoMHgyOTgwMDAwMCB8IHNpemUgPDwgMzAgfCBWIDw8
IDI2IHwgb3BjIDw8IDIyIHwgKGltbTcgJiAweDdmKSA8PCAxNSB8IHJ0MiA8PCAxMCB8IHhPclNw
KHJuKSA8PCA1IHwgcnQpOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGludCBs
b2FkU3RvcmVSZWdpc3RlclBhaXJQcmVJbmRleChNZW1QYWlyT3BTaXplIHNpemUsIGJvb2wgViwg
TWVtT3Agb3BjLCBpbnQgaW1tZWRpYXRlLCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJ0LCBS
ZWdpc3RlcklEIHJ0MikKKyAgICB7CisgICAgICAgIHJldHVybiBsb2FkU3RvcmVSZWdpc3RlclBh
aXJQcmVJbmRleChzaXplLCBWLCBvcGMsIGltbWVkaWF0ZSwgcm4sIHhPclpyQXNGUFIocnQpLCB4
T3JackFzRlBSKHJ0MikpOworICAgIH0KKworICAgIC8vICdWJyBtZWFucyB2ZWN0b3IKICAgICAv
LyAnUycgbWVhbnMgc2hpZnQgcm0KICAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyBpbnQgbG9hZFN0
b3JlUmVnaXN0ZXJSZWdpc3Rlck9mZnNldChNZW1PcFNpemUgc2l6ZSwgYm9vbCBWLCBNZW1PcCBv
cGMsIFJlZ2lzdGVySUQgcm0sIEV4dGVuZFR5cGUgb3B0aW9uLCBib29sIFMsIFJlZ2lzdGVySUQg
cm4sIEZQUmVnaXN0ZXJJRCBydCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKaW5kZXggNTI1N2YzMmE4M2I4NDYzN2NkNjgzZjBi
ODFjOWMwZmU1MGMyYmYyMS4uNTliZjI0Mjc1ODhmMTEwYTIxMmJmZDNiNjlmZDZmZTIyY2JhMzFj
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2Vt
Ymxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJs
ZXIuaApAQCAtNjU0LDYgKzY1NCw4IEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBlbnVtIHsKICAg
ICAgICAgT1BfQl9UMSAgICAgICAgID0gMHhEMDAwLAogICAgICAgICBPUF9CX1QyICAgICAgICAg
PSAweEUwMDAsCisgICAgICAgIE9QX1BPUF9UMiAgICAgICA9IDB4RThCRCwKKyAgICAgICAgT1Bf
UFVTSF9UMiAgICAgID0gMHhFOTJELAogICAgICAgICBPUF9BTkRfcmVnX1QyICAgPSAweEVBMDAs
CiAgICAgICAgIE9QX1RTVF9yZWdfVDIgICA9IDB4RUExMCwKICAgICAgICAgT1BfT1JSX3JlZ19U
MiAgID0gMHhFQTQwLApAQCAtODk0LDYgKzg5NiwxMSBAQCBwdWJsaWM6CiAgICAgLy8gTk9URTog
SW4gYW4gSVQgYmxvY2ssIGFkZCBkb2Vzbid0IG1vZGlmeSB0aGUgZmxhZ3MgcmVnaXN0ZXIuCiAg
ICAgQUxXQVlTX0lOTElORSB2b2lkIGFkZChSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJuLCBS
ZWdpc3RlcklEIHJtKQogICAgIHsKKyAgICAgICAgaWYgKHJkID09IEFSTVJlZ2lzdGVyczo6c3Ap
IHsKKyAgICAgICAgICAgIG1vdihyZCwgcm4pOworICAgICAgICAgICAgcm4gPSByZDsKKyAgICAg
ICAgfQorCiAgICAgICAgIGlmIChyZCA9PSBybikKICAgICAgICAgICAgIG1fZm9ybWF0dGVyLm9u
ZVdvcmRPcDhSZWdSZWcxNDMoT1BfQUREX3JlZ19UMiwgcm0sIHJkKTsKICAgICAgICAgZWxzZSBp
ZiAocmQgPT0gcm0pCkBAIC0xNDg4LDYgKzE0OTUsMjIgQEAgcHVibGljOgogICAgICAgICBtX2Zv
cm1hdHRlci50d29Xb3JkT3AxMlJlZzRGb3VyRm91cnMoT1BfUk9SX3JlZ19UMiwgcm4sIEZvdXJG
b3VycygweGYsIHJkLCAwLCBybSkpOwogICAgIH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBw
b3AodWludDMyX3QgcmVnaXN0ZXJMaXN0KQorICAgIHsKKyAgICAgICAgQVNTRVJUKFdURjo6Yml0
Q291bnQocmVnaXN0ZXJMaXN0KSA+IDEpOworICAgICAgICBBU1NFUlQoISgoMSA8PCBBUk1SZWdp
c3RlcnM6OnBjKSAmIHJlZ2lzdGVyTGlzdCkgfHwgISgoMSA8PCBBUk1SZWdpc3RlcnM6OmxyKSAm
IHJlZ2lzdGVyTGlzdCkpOworICAgICAgICBBU1NFUlQoISgoMSA8PCBBUk1SZWdpc3RlcnM6OnNw
KSAmIHJlZ2lzdGVyTGlzdCkpOworICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3JkT3AxNkltbTE2
KE9QX1BPUF9UMiwgcmVnaXN0ZXJMaXN0KTsKKyAgICB9CisKKyAgICBBTFdBWVNfSU5MSU5FIHZv
aWQgcHVzaCh1aW50MzJfdCByZWdpc3Rlckxpc3QpCisgICAgeworICAgICAgICBBU1NFUlQoV1RG
OjpiaXRDb3VudChyZWdpc3Rlckxpc3QpID4gMSk7CisgICAgICAgIEFTU0VSVCghKCgxIDw8IEFS
TVJlZ2lzdGVyczo6cGMpICYgcmVnaXN0ZXJMaXN0KSk7CisgICAgICAgIEFTU0VSVCghKCgxIDw8
IEFSTVJlZ2lzdGVyczo6c3ApICYgcmVnaXN0ZXJMaXN0KSk7CisgICAgICAgIG1fZm9ybWF0dGVy
LnR3b1dvcmRPcDE2SW1tMTYoT1BfUFVTSF9UMiwgcmVnaXN0ZXJMaXN0KTsKKyAgICB9CisKICNp
ZiBDUFUoQVBQTEVfQVJNVjdTKQogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZGl2KFJlZ2lzdGVy
SUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0pCiAgICAgewpAQCAtMjc5MSw2ICsy
ODE0LDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBtX2J1ZmZlci5wdXRTaG9ydChvcDIpOwog
ICAgICAgICB9CiAKKyAgICAgICAgQUxXQVlTX0lOTElORSB2b2lkIHR3b1dvcmRPcDE2SW1tMTYo
T3Bjb2RlSUQxIG9wMSwgdWludDE2X3QgaW1tKQorICAgICAgICB7CisgICAgICAgICAgICBtX2J1
ZmZlci5wdXRTaG9ydChvcDEpOworICAgICAgICAgICAgbV9idWZmZXIucHV0U2hvcnQoaW1tKTsK
KyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgQUxXQVlTX0lOTElORSB2b2lkIHR3b1dvcmRP
cDVpNkltbTRSZWc0RW5jb2RlZEltbShPcGNvZGVJRDEgb3AsIGludCBpbW00LCBSZWdpc3RlcklE
IHJkLCBBUk1UaHVtYkltbWVkaWF0ZSBpbW0pCiAgICAgICAgIHsKICAgICAgICAgICAgIEFSTVRo
dW1iSW1tZWRpYXRlIG5ld0ltbSA9IGltbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgKaW5kZXggMjg1MzcyMDFi
MzllYjIzMWY1MDQ4NzYzNzdiNjZkYjNhYzNlZTI4MC4uN2Q3ZWU3OTFhNmMzZTE4NWQ2MTkyYzZl
MTNjZTI2N2MzNmFkOTVjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgKQEAgLTE0MCw3ICsxNDAsNyBAQCBw
dWJsaWM6CiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBBZGRyZXNzKGJhc2UsIG9mZnNl
dCArIGFkZGl0aW9uYWxPZmZzZXQpOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIFJl
Z2lzdGVySUQgYmFzZTsKICAgICAgICAgaW50MzJfdCBvZmZzZXQ7CiAgICAgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuY3BwCmluZGV4IGE3ZjQ2OWRh
ODkyZmY0ZDMxZDQ2ZGE0NzUyYzliMWMyN2EwYWYzZjAuLmFmMTRlMzNlYWMwNTk3ZjJkNzhjNGIz
Y2QxNjM1NDExZGFiYTk2NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTGlua0J1ZmZlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9MaW5rQnVmZmVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTIgKzI4LDIxIEBACiAKICNpZiBFTkFC
TEUoQVNTRU1CTEVSKQogCisjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiSklUQ29k
ZS5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRlICJWTS5oIgogI2luY2x1ZGUgPHd0
Zi9Db21waWxhdGlvblRocmVhZC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIAorYm9vbCBzaG91bGRT
aG93RGlzYXNzZW1ibHlGb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2spCit7CisgICAgaWYgKEpJVENv
ZGU6OmlzT3B0aW1pemluZ0pJVChjb2RlQmxvY2stPmppdFR5cGUoKSkgJiYgT3B0aW9uczo6c2hv
d0RGR0Rpc2Fzc2VtYmx5KCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBPcHRp
b25zOjpzaG93RGlzYXNzZW1ibHkoKTsKK30KKwogTGlua0J1ZmZlcjo6Q29kZVJlZiBMaW5rQnVm
ZmVyOjpmaW5hbGl6ZUNvZGVXaXRob3V0RGlzYXNzZW1ibHkoKQogewogICAgIHBlcmZvcm1GaW5h
bGl6YXRpb24oKTsKQEAgLTQ3LDggKzU2LDYgQEAgTGlua0J1ZmZlcjo6Q29kZVJlZiBMaW5rQnVm
ZmVyOjpmaW5hbGl6ZUNvZGVXaXRob3V0RGlzYXNzZW1ibHkoKQogCiBMaW5rQnVmZmVyOjpDb2Rl
UmVmIExpbmtCdWZmZXI6OmZpbmFsaXplQ29kZVdpdGhEaXNhc3NlbWJseShjb25zdCBjaGFyKiBm
b3JtYXQsIC4uLikKIHsKLSAgICBBU1NFUlQoT3B0aW9uczo6c2hvd0Rpc2Fzc2VtYmx5KCkgfHwg
T3B0aW9uczo6c2hvd0RGR0Rpc2Fzc2VtYmx5KCkpOwotICAgIAogICAgIENvZGVSZWYgcmVzdWx0
ID0gZmluYWxpemVDb2RlV2l0aG91dERpc2Fzc2VtYmx5KCk7CiAKICNpZiBFTkFCTEUoRElTQVNT
RU1CTEVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5r
QnVmZmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaApp
bmRleCA4ZDRjZTUyMWYyODRlNWRlMzQ2OWNlZDg5NjRjOWVjYzA4ZWYzNTc2Li42YWJhMDc1ODJh
NGMyZjIzNGRmNzllMTNmMjRjNTNjYTcxN2ZjYTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDksIDIwMTAsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNDMsNiArNDMsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorY2xhc3MgQ29kZUJsb2Nr
OwogY2xhc3MgVk07CiAKIC8vIExpbmtCdWZmZXI6CkBAIC0xNjQsNiArMTY1LDExIEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICAvLyBUaGVzZSBtZXRob2RzIGFyZSB1c2VkIHRvIG9idGFpbiBoYW5k
bGVzIHRvIGFsbG93IHRoZSBjb2RlIHRvIGJlIHJlbGlua2VkIC8gcmVwYXRjaGVkIGxhdGVyLgor
ICAgIAorICAgIENvZGVMb2NhdGlvbkxhYmVsIGVudHJ5cG9pbnQoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIENvZGVMb2NhdGlvbkxhYmVsKGNvZGUoKSk7CisgICAgfQogCiAgICAgQ29kZUxvY2F0
aW9uQ2FsbCBsb2NhdGlvbk9mKENhbGwgY2FsbCkKICAgICB7CkBAIC0zMDMsNiArMzA5LDExIEBA
IHByaXZhdGU6CiAgICAgID8gKChsaW5rQnVmZmVyUmVmZXJlbmNlKS5maW5hbGl6ZUNvZGVXaXRo
RGlzYXNzZW1ibHkgZGF0YUxvZ0ZBcmd1bWVudHNGb3JIZWFkaW5nKSBcCiAgICAgIDogKGxpbmtC
dWZmZXJSZWZlcmVuY2UpLmZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJseSgpKQogCitib29s
IHNob3VsZFNob3dEaXNhc3NlbWJseUZvcihDb2RlQmxvY2sqIGNvZGVCbG9jayk7CisKKyNkZWZp
bmUgRklOQUxJWkVfQ09ERV9GT1IoY29kZUJsb2NrLCBsaW5rQnVmZmVyUmVmZXJlbmNlLCBkYXRh
TG9nRkFyZ3VtZW50c0ZvckhlYWRpbmcpICBcCisgICAgRklOQUxJWkVfQ09ERV9JRihzaG91bGRT
aG93RGlzYXNzZW1ibHlGb3IoY29kZUJsb2NrKSwgbGlua0J1ZmZlclJlZmVyZW5jZSwgZGF0YUxv
Z0ZBcmd1bWVudHNGb3JIZWFkaW5nKQorCiAvLyBVc2UgdGhpcyB0byBmaW5hbGl6ZSBjb2RlLCBs
aWtlIHNvOgogLy8KIC8vIENvZGVSZWYgY29kZSA9IEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwg
KCJteSBzdXBlciB0aGluZ3kgbnVtYmVyICVkIiwgbnVtYmVyKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgKaW5kZXggNGE0M2ViNjI1Y2Rj
MzhlMWUxN2NiYjY3NDcxY2M4OWJiMmQ2ODExMC4uNWVlNTI1NTc5YjdmMDA4NGM1YjUyNTJjYjAx
MzdkMzM4NGViZjc0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXIuaApAQCAtNTk1LDYgKzU5NSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHN0
b3JlMzIoVHJ1c3RlZEltbTMyKGltbSksIGFkZHJlc3MpOwogICAgIH0KIAorICAgIHZvaWQgc3Rv
cmVQdHIoVHJ1c3RlZEltbTMyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgewor
ICAgICAgICBzdG9yZTMyKGltbSwgYWRkcmVzcyk7CisgICAgfQorCiAgICAgdm9pZCBzdG9yZVB0
cihUcnVzdGVkSW1tUHRyIGltbSwgQmFzZUluZGV4IGFkZHJlc3MpCiAgICAgewogICAgICAgICBz
dG9yZTMyKFRydXN0ZWRJbW0zMihpbW0pLCBhZGRyZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKaW5kZXggMzBhYWVl
NjYxZjYxMDhmYzNjODg5NGFkZWVjODU3NTU1ZDQ4NTc3Yi4uNDI4NTdiNDQxZGFlN2M2OTg3MTBk
MzU4OTEyN2ZiYjUwNmI2YWNlMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKQEAgLTIwMSw3ICsyMDEsMTAgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBhZGQ2NChSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQog
ICAgIHsKLSAgICAgICAgbV9hc3NlbWJsZXIuYWRkPDY0PihkZXN0LCBkZXN0LCBzcmMpOworICAg
ICAgICBpZiAoc3JjID09IEFSTTY0UmVnaXN0ZXJzOjpzcCkKKyAgICAgICAgICAgIG1fYXNzZW1i
bGVyLmFkZDw2ND4oZGVzdCwgc3JjLCBkZXN0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
bV9hc3NlbWJsZXIuYWRkPDY0PihkZXN0LCBkZXN0LCBzcmMpOwogICAgIH0KIAogICAgIHZvaWQg
YWRkNjQoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQpAQCAtMTQzNyw2ICsxNDQw
LDE2IEBAIHB1YmxpYzoKICAgICAgICAgQ1JBU0goKTsKICAgICB9CiAKKyAgICB2b2lkIHBvcFBh
aXIoUmVnaXN0ZXJJRCBkZXN0MSwgUmVnaXN0ZXJJRCBkZXN0MikKKyAgICB7CisgICAgICAgIG1f
YXNzZW1ibGVyLmxkcDw2ND4oZGVzdDEsIGRlc3QyLCBBUk02NFJlZ2lzdGVyczo6c3AsIFBhaXJQ
b3N0SW5kZXgoMTYpKTsKKyAgICB9CisKKyAgICB2b2lkIHB1c2hQYWlyKFJlZ2lzdGVySUQgc3Jj
MSwgUmVnaXN0ZXJJRCBzcmMyKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3RwPDY0Pihz
cmMxLCBzcmMyLCBBUk02NFJlZ2lzdGVyczo6c3AsIFBhaXJQcmVJbmRleCgtMTYpKTsKKyAgICB9
CisKICAgICB2b2lkIHBvcFRvUmVzdG9yZShSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAg
ICBtX2Fzc2VtYmxlci5sZHI8NjQ+KGRlc3QsIEFSTTY0UmVnaXN0ZXJzOjpzcCwgUG9zdEluZGV4
KDE2KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk12Ny5oCmluZGV4IDFhOWUyMmJjODllYTMyN2EwNWY4Y2Q0ZTlkZDFmZWNjMGE2
MjJkMzQuLjllNjRkYmQ3MjM1YmZkNDAxZjhjOGZkNDNlYmQxOTc1NWVjYmUzY2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12
Ny5oCkBAIC0xNzAsNiArMTcwLDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZDMyKFRydXN0ZWRJ
bW0zMiBpbW0sIFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAg
ICBBUk1UaHVtYkltbWVkaWF0ZSBhcm1JbW0gPSBBUk1UaHVtYkltbWVkaWF0ZTo6bWFrZVVJbnQx
Mk9yRW5jb2RlZEltbShpbW0ubV92YWx1ZSk7CisKKyAgICAgICAgLy8gRm9yIGFkZHMgd2l0aCBz
dGFjayBwb2ludGVyIGRlc3RpbmF0aW9uLCBtb3ZpbmcgdGhlIHNyYyBmaXJzdCB0byBzcCBpcwor
ICAgICAgICAvLyBuZWVkZWQgdG8gYXZvaWQgdW5wcmVkaWN0YWJsZSBpbnN0cnVjdGlvbgorICAg
ICAgICBpZiAoZGVzdCA9PSBBUk1SZWdpc3RlcnM6OnNwICYmIHNyYyAhPSBkZXN0KSB7CisgICAg
ICAgICAgICBtb3ZlKHNyYywgQVJNUmVnaXN0ZXJzOjpzcCk7CisgICAgICAgICAgICBzcmMgPSBB
Uk1SZWdpc3RlcnM6OnNwOworICAgICAgICB9CisKICAgICAgICAgaWYgKGFybUltbS5pc1ZhbGlk
KCkpCiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGQoZGVzdCwgc3JjLCBhcm1JbW0pOwogICAg
ICAgICBlbHNlIHsKQEAgLTExNjAsNiArMTE2OCwxNiBAQCBwdWJsaWM6CiAgICAgICAgIHB1c2go
ZGF0YVRlbXBSZWdpc3Rlcik7CiAgICAgfQogCisgICAgdm9pZCBwb3BQYWlyKFJlZ2lzdGVySUQg
ZGVzdDEsIFJlZ2lzdGVySUQgZGVzdDIpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5wb3Ao
MSA8PCBkZXN0MSB8IDEgPDwgZGVzdDIpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHB1c2hQYWly
KFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyKQorICAgIHsKKyAgICAgICAgbV9hc3Nl
bWJsZXIucHVzaCgxIDw8IHNyYzEgfCAxIDw8IHNyYzIpOworICAgIH0KKyAgICAKICAgICAvLyBS
ZWdpc3RlciBtb3ZlIG9wZXJhdGlvbnM6CiAgICAgLy8KICAgICAvLyBNb3ZlIHZhbHVlcyBpbiBy
ZWdpc3RlcnMuCkBAIC0xMjgxLDExICsxMjk5LDE5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBt
X2Fzc2VtYmxlci50c3QocmVnLCByZWcpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIEFS
TVRodW1iSW1tZWRpYXRlIGFybUltbSA9IEFSTVRodW1iSW1tZWRpYXRlOjptYWtlRW5jb2RlZElt
bShpbW0pOwotICAgICAgICAgICAgaWYgKGFybUltbS5pc1ZhbGlkKCkpCi0gICAgICAgICAgICAg
ICAgbV9hc3NlbWJsZXIudHN0KHJlZywgYXJtSW1tKTsKLSAgICAgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgaWYgKGFybUltbS5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVn
ID09IEFSTVJlZ2lzdGVyczo6c3ApIHsKKyAgICAgICAgICAgICAgICAgICAgbW92ZShyZWcsIGFk
ZHJlc3NUZW1wUmVnaXN0ZXIpOworICAgICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci50c3Qo
YWRkcmVzc1RlbXBSZWdpc3RlciwgYXJtSW1tKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIudHN0KHJlZywgYXJtSW1tKTsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgbW92ZShtYXNrLCBkYXRhVGVtcFJlZ2lzdGVy
KTsKLSAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci50c3QocmVnLCBkYXRhVGVtcFJlZ2lzdGVy
KTsKKyAgICAgICAgICAgICAgICBpZiAocmVnID09IEFSTVJlZ2lzdGVyczo6c3ApIHsKKyAgICAg
ICAgICAgICAgICAgICAgbW92ZShyZWcsIGFkZHJlc3NUZW1wUmVnaXN0ZXIpOworICAgICAgICAg
ICAgICAgICAgICBtX2Fzc2VtYmxlci50c3QoYWRkcmVzc1RlbXBSZWdpc3RlciwgZGF0YVRlbXBS
ZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIG1f
YXNzZW1ibGVyLnRzdChyZWcsIGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgKaW5kZXggNWY4YmE4YTkyZDM3ODBjOTU3NDM1ODMw
MTdiOGNhMDJiNmIyOTk5Zi4uMjhmYzE5ZDIxMzdkYTAyZTM2Yzc0MTlkNmY4ZWIxNjAwNmU1ODRh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckNvZGVSZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQ29kZVJlZi5oCkBAIC0yNTQsNiArMjU0LDExIEBAIHB1YmxpYzoKICAgICB9CiAK
ICAgICB2b2lkKiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KKyAgICAKKyAgICB2
b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKKyAgICB7CisgICAgICAgIG91dC5wcmlu
dChSYXdQb2ludGVyKG1fdmFsdWUpKTsKKyAgICB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCogbV92
YWx1ZTsKQEAgLTMwOSw5ICszMTQsMTAgQEAgcHVibGljOgogICAgIHZvaWQqIGRhdGFMb2NhdGlv
bigpIGNvbnN0IHsgQVNTRVJUX1ZBTElEX0NPREVfUE9JTlRFUihtX3ZhbHVlKTsgcmV0dXJuIG1f
dmFsdWU7IH0KICNlbmRpZgogCi0gICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdAorICAgIHR5cGVk
ZWYgdm9pZCogKE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6KlVuc3BlY2lmaWVkQm9vbFR5cGUpOwor
ICAgIG9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5cGUqKCkgY29uc3QKICAgICB7Ci0gICAgICAg
IHJldHVybiAhbV92YWx1ZTsKKyAgICAgICAgcmV0dXJuICEhbV92YWx1ZSA/IHJlaW50ZXJwcmV0
X2Nhc3Q8VW5zcGVjaWZpZWRCb29sVHlwZSo+KDEpIDogMDsKICAgICB9CiAgICAgCiAgICAgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IE1hY3JvQXNzZW1ibGVyQ29kZVB0ciYgb3RoZXIpIGNvbnN0CkBA
IC00MzQsNyArNDQwLDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIEpTQzo6dHJ5VG9EaXNh
c3NlbWJsZShtX2NvZGVQdHIsIHNpemUoKSwgcHJlZml4LCBXVEY6OmRhdGFGaWxlKCkpOwogICAg
IH0KICAgICAKLSAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX2NvZGVQdHI7
IH0KKyAgICB0eXBlZGVmIHZvaWQqIChNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OipVbnNwZWNpZmll
ZEJvb2xUeXBlKTsKKyAgICBvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKigpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gISFtX2NvZGVQdHIgPyByZWludGVycHJldF9jYXN0PFVuc3Bl
Y2lmaWVkQm9vbFR5cGUqPigxKSA6IDA7CisgICAgfQogICAgIAogICAgIHZvaWQgZHVtcChQcmlu
dFN0cmVhbSYgb3V0KSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iZjNmZDdkMDBjOGViN2ZmZWUzNTczYWIwOWI2MTg0OGNkOTQ4ZGFiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbC5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBNYXhGcmFtZUV4dGVudEZvclNs
b3dQYXRoQ2FsbF9oCisjZGVmaW5lIE1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsX2gKKwor
I2luY2x1ZGUgIkpTU3RhY2suaCIKKyNpbmNsdWRlICJSZWdpc3Rlci5oIgorI2luY2x1ZGUgIlN0
YWNrQWxpZ25tZW50LmgiCisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKworbmFtZXNwYWNl
IEpTQyB7CisKKy8vIFRoZSBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCBpcyB0aGUgbWF4
IGFtb3VudCBvZiBzdGFjayBzcGFjZSAoaW4gYnl0ZXMpCisvLyB0aGF0IGNhbiBiZSB1c2VkIGZv
ciBvdXRnb2luZyBhcmdzIHdoZW4gY2FsbGluZyBhIHNsb3cgcGF0aCBDIGZ1bmN0aW9uCisvLyBm
cm9tIEpTIGNvZGUuCisKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorc3RhdGljIGNvbnN0IHNp
emVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDA7CisKKyNlbGlmIENQVShYODZf
NjQpICYmIE9TKFdJTkRPV1MpCisvLyA0IGFyZ3MgaW4gcmVnaXN0ZXJzLCBidXQgc3RhY2sgc3Bh
Y2UgbmVlZHMgdG8gYmUgYWxsb2NhdGVkIGZvciBhbGwgYXJncy4KK3N0YXRpYyBjb25zdCBzaXpl
X3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSA2NDsKKworI2VsaWYgQ1BVKFg4Nl82
NCkKKy8vIEFsbCBhcmdzIGluIHJlZ2lzdGVycy4KK3N0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJh
bWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSAwOworCisjZWxpZiBDUFUoWDg2KQorLy8gNyBhcmdz
IG9uIHN0YWNrICgyOCBieXRlcykuCitzdGF0aWMgY29uc3Qgc2l6ZV90IG1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsID0gNDA7CisKKyNlbGlmIENQVShBUk02NCkKKy8vIEFsbCBhcmdzIGlu
IHJlZ2lzdGVycy4KK3N0YXRpYyBjb25zdCBzaXplX3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0
aENhbGwgPSAwOworCisjZWxpZiBDUFUoQVJNKQorLy8gRmlyc3QgZm91ciBhcmdzIGluIHJlZ2lz
dGVycywgcmVtYWluaW5nIDQgYXJncyBvbiBzdGFjay4KK3N0YXRpYyBjb25zdCBzaXplX3QgbWF4
RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgPSAyNDsKKworI2VsaWYgQ1BVKFNINCkKKy8vIEZp
cnN0IGZvdXIgYXJncyBpbiByZWdpc3RlcnMsIHJlbWFpbmluZyA0IGFyZ3Mgb24gc3RhY2suCitz
dGF0aWMgY29uc3Qgc2l6ZV90IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID0gMjQ7CisK
KyNlbGlmIENQVShNSVBTKQorLy8gVGhvdWdoIGFyZ3MgYXJlIGluIHJlZ2lzdGVycywgdGhlcmUg
bmVlZCB0byBiZSBzcGFjZSBvbiB0aGUgc3RhY2sgZm9yIGFsbCBhcmdzLgorc3RhdGljIGNvbnN0
IHNpemVfdCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDQwOworCisjZWxzZQorI2Vy
cm9yICJVbnN1cHBvcnRlZCBDUFU6IG5lZWQgdmFsdWUgZm9yIG1heEZyYW1lRXh0ZW50Rm9yU2xv
d1BhdGhDYWxsIgorCisjZW5kaWYKKworQ09NUElMRV9BU1NFUlQoIShtYXhGcmFtZUV4dGVudEZv
clNsb3dQYXRoQ2FsbCAlIHNpemVvZihSZWdpc3RlcikpLCBleHRlbnRfbXVzdF9iZV9pbl9tdWx0
aXBsZXNfb2ZfcmVnaXN0ZXJzKTsKKy8vIE1ha2Ugc3VyZSB0aGF0IGNmciAtIG1heEZyYW1lRXh0
ZW50Rm9yU2xvd1BhdGhDYWxsIGJ5dGVzIHdpbGwgbWFrZSB0aGUgc3RhY2sgcG9pbnRlciBhbGln
bmVkCitDT01QSUxFX0FTU0VSVCgobWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwgJSAxNikg
PT0gMTYgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQyksIGV4dGVudF9tdXN0X2FsaWduX3N0YWNr
X2Zyb21fY2FsbGZyYW1lX3BvaW50ZXIpOworCitzdGF0aWMgY29uc3Qgc2l6ZV90IG1heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsSW5SZWdpc3RlcnMgPSBtYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbCAvIHNpemVvZihSZWdpc3Rlcik7CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5k
aWYgLy8gTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGxfaAorCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uY3BwCmluZGV4IGE0YmFhNjEwMDg1MjIz
NjZkOTRjYzgzNjk4NzFhNWZiOGM1YjI3NjYuLjZhNjAwNTc2YTAwMGFkYWM4YWYyMTRlOTg4MTM2
NDYxOWYyOWEwMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
YWxsTGlua0luZm8uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxs
TGlua0luZm8uY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zNywxNSArMzcsMTUgQEAgdm9pZCBDYWxsTGlua0luZm86OnVubGluayhW
TSYgdm0sIFJlcGF0Y2hCdWZmZXImIHJlcGF0Y2hCdWZmZXIpCiB7CiAgICAgQVNTRVJUKGlzTGlu
a2VkKCkpOwogICAgIAorICAgIGlmIChPcHRpb25zOjpzaG93RGlzYXNzZW1ibHkoKSkKKyAgICAg
ICAgZGF0YUxvZygiVW5saW5raW5nIGNhbGwgZnJvbSAiLCBjYWxsUmV0dXJuTG9jYXRpb24sICIg
dG8gIiwgcG9pbnRlckR1bXAocmVwYXRjaEJ1ZmZlci5jb2RlQmxvY2soKSksICJcbiIpOworCiAg
ICAgcmVwYXRjaEJ1ZmZlci5yZXZlcnRKdW1wUmVwbGFjZW1lbnRUb0JyYW5jaFB0cldpdGhQYXRj
aChSZXBhdGNoQnVmZmVyOjpzdGFydE9mQnJhbmNoUHRyV2l0aFBhdGNoT25SZWdpc3Rlcihob3RQ
YXRoQmVnaW4pLCBzdGF0aWNfY2FzdDxNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRD4oY2FsbGVl
R1BSKSwgMCk7Ci0gICAgaWYgKGlzREZHKSB7Ci0jaWYgRU5BQkxFKERGR19KSVQpCi0gICAgICAg
IHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxSZXR1cm5Mb2NhdGlvbiwgKGNhbGxUeXBlID09IENv
bnN0cnVjdCA/IHZtLmdldENUSVN0dWIobGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKSA6IHZt
LmdldENUSVN0dWIobGlua0NhbGxUaHVua0dlbmVyYXRvcikpLmNvZGUoKSk7Ci0jZWxzZQotICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotI2VuZGlmCi0gICAgfSBlbHNlCi0g
ICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxSZXR1cm5Mb2NhdGlvbiwgY2FsbFR5cGUg
PT0gQ29uc3RydWN0ID8gdm0uZ2V0Q1RJU3R1YihsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3Ip
LmNvZGUoKSA6IHZtLmdldENUSVN0dWIobGlua0NhbGxUaHVua0dlbmVyYXRvcikuY29kZSgpKTsK
KyAgICByZXBhdGNoQnVmZmVyLnJlbGluaygKKyAgICAgICAgY2FsbFJldHVybkxvY2F0aW9uLAor
ICAgICAgICB2bS5nZXRDVElTdHViKGxpbmtUaHVua0dlbmVyYXRvckZvcigKKyAgICAgICAgICAg
IGNhbGxUeXBlID09IENvbnN0cnVjdCA/IENvZGVGb3JDb25zdHJ1Y3QgOiBDb2RlRm9yQ2FsbCwK
KyAgICAgICAgICAgIGlzRlRMID8gTXVzdFByZXNlcnZlUmVnaXN0ZXJzIDogUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25Ob3RSZXF1aXJlZCkpLmNvZGUoKSk7CiAgICAgaGFzU2VlblNob3VsZFJlcGF0Y2gg
PSBmYWxzZTsKICAgICBjYWxsZWUuY2xlYXIoKTsKICAgICBzdHViLmNsZWFyKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgKaW5kZXggMDI0NDQ5N2Rm
NGMwNWQxMjczNzgxYzZmNGVlYmRjNjFmYWZmY2Q0MS4uZDQzNGU3MzVkOGVjMjNjYjAzOWIxMzAw
Yzk0MDE5NWMzNTE0YjFhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NhbGxMaW5rSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
YWxsTGlua0luZm8uaApAQCAtNTUsOCArNTUsOCBAQCBzdHJ1Y3QgQ2FsbExpbmtJbmZvIDogcHVi
bGljIEJhc2ljUmF3U2VudGluZWxOb2RlPENhbGxMaW5rSW5mbz4gewogICAgIH0KICAgICAgICAg
CiAgICAgQ2FsbExpbmtJbmZvKCkKLSAgICAgICAgOiBoYXNTZWVuU2hvdWxkUmVwYXRjaChmYWxz
ZSkKLSAgICAgICAgLCBpc0RGRyhmYWxzZSkKKyAgICAgICAgOiBpc0ZUTChmYWxzZSkKKyAgICAg
ICAgLCBoYXNTZWVuU2hvdWxkUmVwYXRjaChmYWxzZSkKICAgICAgICAgLCBoYXNTZWVuQ2xvc3Vy
ZShmYWxzZSkKICAgICAgICAgLCBjYWxsVHlwZShOb25lKQogICAgIHsKQEAgLTc5LDggKzc5LDgg
QEAgc3RydWN0IENhbGxMaW5rSW5mbyA6IHB1YmxpYyBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxDYWxs
TGlua0luZm8+IHsKICAgICBKSVRXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gY2FsbGVlOwogICAg
IFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBsYXN0U2VlbkNhbGxlZTsKICAgICBSZWZQdHI8Q2xv
c3VyZUNhbGxTdHViUm91dGluZT4gc3R1YjsKKyAgICBib29sIGlzRlRMIDogMTsKICAgICBib29s
IGhhc1NlZW5TaG91bGRSZXBhdGNoIDogMTsKLSAgICBib29sIGlzREZHIDogMTsKICAgICBib29s
IGhhc1NlZW5DbG9zdXJlIDogMTsKICAgICB1bnNpZ25lZCBjYWxsVHlwZSA6IDU7IC8vIENhbGxU
eXBlCiAgICAgdW5zaWduZWQgY2FsbGVlR1BSIDogODsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuY3BwCmluZGV4IGI2NGM5NjdlOTI5ZWU3MTQ4
ODUzMjg0N2Q5Yzc5YzhmMzExODVmZDIuLmE0MjZjODc0MDdmZjI3YjRjMzM3Mjg1ZTFkYjZlMGEx
NGY2MTRhNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxs
TGlua1N0YXR1cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxM
aW5rU3RhdHVzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIs
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsMTMgKzI2LDE3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiQ2FsbExpbmtTdGF0dXMuaCIKIAorI2luY2x1ZGUgIkNhbGxMaW5r
SW5mby5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIkRGR0pJVENvZGUuaCIK
ICNpbmNsdWRlICJMTEludENhbGxMaW5rSW5mby5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
ICNpbmNsdWRlIDx3dGYvQ29tbWFQcmludGVyLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCitzdGF0
aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisKIENhbGxMaW5rU3RhdHVzOjpDYWxsTGlu
a1N0YXR1cyhKU1ZhbHVlIHZhbHVlKQogICAgIDogbV9jYWxsVGFyZ2V0KHZhbHVlKQogICAgICwg
bV9leGVjdXRhYmxlKDApCkBAIC04MSwxMiArODUsMjQgQEAgSW50cmluc2ljIENhbGxMaW5rU3Rh
dHVzOjppbnRyaW5zaWNGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKSBjb25zdAogICAg
IHJldHVybiBtX2V4ZWN1dGFibGUtPmludHJpbnNpY0ZvcihraW5kKTsKIH0KIAotQ2FsbExpbmtT
dGF0dXMgQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGcm9tTExJbnQoQ29kZUJsb2NrKiBwcm9maWxl
ZEJsb2NrLCB1bnNpZ25lZCBieXRlY29kZUluZGV4KQorQ2FsbExpbmtTdGF0dXMgQ2FsbExpbmtT
dGF0dXM6OmNvbXB1dGVGcm9tTExJbnQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9ja2Vy
LCBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgpCiB7CiAg
ICAgVU5VU0VEX1BBUkFNKHByb2ZpbGVkQmxvY2spOwogICAgIFVOVVNFRF9QQVJBTShieXRlY29k
ZUluZGV4KTsKICNpZiBFTkFCTEUoTExJTlQpCisgICAgaWYgKHByb2ZpbGVkQmxvY2stPmhhc0V4
aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZEZ1
bmN0aW9uKSkpIHsKKyAgICAgICAgLy8gV2UgY291bGQgZm9yY2UgdGhpcyB0byBiZSBhIGNsb3N1
cmUgY2FsbCwgYnV0IGluc3RlYWQgd2UnbGwganVzdCBhc3N1bWUgdGhhdCBpdAorICAgICAgICAv
LyB0YWtlcyBzbG93IHBhdGguCisgICAgICAgIHJldHVybiB0YWtlc1Nsb3dQYXRoKCk7CisgICAg
fQorICAgIAorICAgIFZNJiB2bSA9ICpwcm9maWxlZEJsb2NrLT52bSgpOworICAgIAogICAgIElu
c3RydWN0aW9uKiBpbnN0cnVjdGlvbiA9IHByb2ZpbGVkQmxvY2stPmluc3RydWN0aW9ucygpLmJl
Z2luKCkgKyBieXRlY29kZUluZGV4OworICAgIE9wY29kZUlEIG9wID0gdm0uaW50ZXJwcmV0ZXIt
PmdldE9wY29kZUlEKGluc3RydWN0aW9uWzBdLnUub3Bjb2RlKTsKKyAgICBpZiAob3AgIT0gb3Bf
Y2FsbCAmJiBvcCAhPSBvcF9jb25zdHJ1Y3QpCisgICAgICAgIHJldHVybiBDYWxsTGlua1N0YXR1
cygpOworICAgIAogICAgIExMSW50Q2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm8gPSBpbnN0cnVj
dGlvbls1XS51LmNhbGxMaW5rSW5mbzsKICAgICAKICAgICByZXR1cm4gQ2FsbExpbmtTdGF0dXMo
Y2FsbExpbmtJbmZvLT5sYXN0U2VlbkNhbGxlZS5nZXQoKSk7CkBAIC0xMDIsMjcgKzExOCwxMTcg
QEAgQ2FsbExpbmtTdGF0dXMgQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGb3IoQ29kZUJsb2NrKiBw
cm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXQKICAgICBVTlVTRURfUEFSQU0ocHJvZmlsZWRCbG9j
ayk7CiAgICAgVU5VU0VEX1BBUkFNKGJ5dGVjb2RlSW5kZXgpOwogI2lmIEVOQUJMRShKSVQpCisg
ICAgaWYgKHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4
aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlKSkKKyAgICAgICAgfHwgcHJvZmlsZWRCbG9j
ay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRl
eCwgQmFkQ2FjaGVXYXRjaHBvaW50KSkKKyAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhp
dFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkRXhl
Y3V0YWJsZSkpKQorICAgICAgICByZXR1cm4gdGFrZXNTbG93UGF0aCgpOworICAgIAogICAgIGlm
ICghcHJvZmlsZWRCbG9jay0+aGFzQmFzZWxpbmVKSVRQcm9maWxpbmcoKSkKLSAgICAgICAgcmV0
dXJuIGNvbXB1dGVGcm9tTExJbnQocHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCk7CisgICAg
ICAgIHJldHVybiBjb21wdXRlRnJvbUxMSW50KGxvY2tlciwgcHJvZmlsZWRCbG9jaywgYnl0ZWNv
ZGVJbmRleCk7CiAgICAgCiAgICAgaWYgKHByb2ZpbGVkQmxvY2stPmNvdWxkVGFrZVNsb3dDYXNl
KGJ5dGVjb2RlSW5kZXgpKQotICAgICAgICByZXR1cm4gQ2FsbExpbmtTdGF0dXM6OnRha2VzU2xv
d1BhdGgoKTsKKyAgICAgICAgcmV0dXJuIHRha2VzU2xvd1BhdGgoKTsKICAgICAKICAgICBDYWxs
TGlua0luZm8mIGNhbGxMaW5rSW5mbyA9IHByb2ZpbGVkQmxvY2stPmdldENhbGxMaW5rSW5mbyhi
eXRlY29kZUluZGV4KTsKKyAgICAKKyAgICBDYWxsTGlua1N0YXR1cyByZXN1bHQgPSBjb21wdXRl
Rm9yKGxvY2tlciwgY2FsbExpbmtJbmZvKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0
dXJuIGNvbXB1dGVGcm9tTExJbnQobG9ja2VyLCBwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4
KTsKKyAgICAKKyAgICBpZiAocHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6
OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkRnVuY3Rpb24pKSkKKyAgICAgICAg
cmVzdWx0Lm1ha2VDbG9zdXJlQ2FsbCgpOworICAgIAorICAgIHJldHVybiByZXN1bHQ7CisjZWxz
ZQorICAgIHJldHVybiBDYWxsTGlua1N0YXR1cygpOworI2VuZGlmCit9CisKK0NhbGxMaW5rU3Rh
dHVzIENhbGxMaW5rU3RhdHVzOjpjb21wdXRlRm9yKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXIm
LCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbykKK3sKICAgICBpZiAoY2FsbExpbmtJbmZvLnN0
dWIpCiAgICAgICAgIHJldHVybiBDYWxsTGlua1N0YXR1cyhjYWxsTGlua0luZm8uc3R1Yi0+ZXhl
Y3V0YWJsZSgpLCBjYWxsTGlua0luZm8uc3R1Yi0+c3RydWN0dXJlKCkpOwogICAgIAogICAgIEpT
RnVuY3Rpb24qIHRhcmdldCA9IGNhbGxMaW5rSW5mby5sYXN0U2VlbkNhbGxlZS5nZXQoKTsKICAg
ICBpZiAoIXRhcmdldCkKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQocHJvZmlsZWRC
bG9jaywgYnl0ZWNvZGVJbmRleCk7CisgICAgICAgIHJldHVybiBDYWxsTGlua1N0YXR1cygpOwog
ICAgIAogICAgIGlmIChjYWxsTGlua0luZm8uaGFzU2VlbkNsb3N1cmUpCiAgICAgICAgIHJldHVy
biBDYWxsTGlua1N0YXR1cyh0YXJnZXQtPmV4ZWN1dGFibGUoKSwgdGFyZ2V0LT5zdHJ1Y3R1cmUo
KSk7CiAKICAgICByZXR1cm4gQ2FsbExpbmtTdGF0dXModGFyZ2V0KTsKLSNlbHNlCi0gICAgcmV0
dXJuIENhbGxMaW5rU3RhdHVzKCk7Ci0jZW5kaWYKK30KKwordm9pZCBDYWxsTGlua1N0YXR1czo6
Y29tcHV0ZURGR1N0YXR1c2VzKAorICAgIENvZGVCbG9jayogZGZnQ29kZUJsb2NrLCBDYWxsTGlu
a1N0YXR1czo6Q29udGV4dE1hcCYgbWFwKQoreworI2lmIEVOQUJMRShERkdfSklUKQorICAgIFJF
TEVBU0VfQVNTRVJUKGRmZ0NvZGVCbG9jay0+aml0VHlwZSgpID09IEpJVENvZGU6OkRGR0pJVCk7
CisgICAgQ29kZUJsb2NrKiBiYXNlbGluZUNvZGVCbG9jayA9IGRmZ0NvZGVCbG9jay0+YWx0ZXJu
YXRpdmUoKTsKKyAgICBERkc6OkpJVENvZGUqIGppdENvZGUgPSBkZmdDb2RlQmxvY2stPmppdENv
ZGUoKS0+ZGZnKCk7CisgICAgUkVMRUFTRV9BU1NFUlQoZGZnQ29kZUJsb2NrLT5udW1iZXJPZkNh
bGxMaW5rSW5mb3MoKSA8PSBqaXRDb2RlLT5zbG93UGF0aENhbGxzLnNpemUoKSk7CisgICAgCisg
ICAgZm9yIChzaXplX3QgaSA9IGRmZ0NvZGVCbG9jay0+bnVtYmVyT2ZDYWxsTGlua0luZm9zKCk7
IGktLTspIHsKKyAgICAgICAgQ2FsbExpbmtJbmZvJiBpbmZvID0gZGZnQ29kZUJsb2NrLT5jYWxs
TGlua0luZm8oaSk7CisgICAgICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiA9IGluZm8uY29kZU9y
aWdpbjsKKyAgICAgICAgCisgICAgICAgIGJvb2wgdGFrZVNsb3dQYXRoOworICAgICAgICBib29s
IGJhZEZ1bmN0aW9uOworICAgICAgICAKKyAgICAgICAgLy8gQ2hlY2sgaWYgd2UgaGFkIGFscmVh
ZHkgcHJldmlvdXNseSBtYWRlIGEgdGVycmlibGUgbWlzdGFrZSBpbiB0aGUgRlRMIGZvciB0aGlz
CisgICAgICAgIC8vIGNvZGUgb3JpZ2luLiBOb3RlIHRoYXQgdGhpcyBpcyBhcHByb3hpbWF0ZSBi
ZWNhdXNlIHdlIGNvdWxkIGhhdmUgYSBtb25vdmFyaWFudAorICAgICAgICAvLyBpbmxpbmUgaW4g
dGhlIEZUTCB0aGF0IGVuZGVkIHVwIGZhaWxpbmcuIFdlIHNob3VsZCBmaXggdGhhdCBhdCBzb21l
IHBvaW50IGJ5CisgICAgICAgIC8vIGhhdmluZyBkYXRhIHN0cnVjdHVyZXMgdG8gdHJhY2sgdGhl
IGNvbnRleHQgb2YgZnJlcXVlbnQgZXhpdHMuIFRoaXMgaXMgY3VycmVudGx5CisgICAgICAgIC8v
IGNoYWxsZW5naW5nIGJlY2F1c2UgaXQgd291bGQgcmVxdWlyZSBjcmVhdGluZyBhIENvZGVPcmln
aW4tYmFzZWQgZGF0YWJhc2UgaW4KKyAgICAgICAgLy8gYmFzZWxpbmUgQ29kZUJsb2NrcywgYnV0
IHRob3NlIENvZGVCbG9ja3MgZG9uJ3QgcmVhbGx5IGhhdmUgYSBwbGFjZSB0byBwdXQgdGhlCisg
ICAgICAgIC8vIElubGluZUNhbGxGcmFtZXMuCisgICAgICAgIENvZGVCbG9jayogY3VycmVudEJh
c2VsaW5lID0KKyAgICAgICAgICAgIGJhc2VsaW5lQ29kZUJsb2NrRm9yT3JpZ2luQW5kQmFzZWxp
bmVDb2RlQmxvY2soY29kZU9yaWdpbiwgYmFzZWxpbmVDb2RlQmxvY2spOworICAgICAgICB7Cisg
ICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihjdXJyZW50QmFzZWxpbmUtPm1f
bG9jayk7CisgICAgICAgICAgICB0YWtlU2xvd1BhdGggPQorICAgICAgICAgICAgICAgIGN1cnJl
bnRCYXNlbGluZS0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoY29k
ZU9yaWdpbi5ieXRlY29kZUluZGV4LCBCYWRDYWNoZSwgRXhpdEZyb21GVEwpKQorICAgICAgICAg
ICAgICAgIHx8IGN1cnJlbnRCYXNlbGluZS0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1
ZW50RXhpdFNpdGUoY29kZU9yaWdpbi5ieXRlY29kZUluZGV4LCBCYWRDYWNoZVdhdGNocG9pbnQs
IEV4aXRGcm9tRlRMKSkKKyAgICAgICAgICAgICAgICB8fCBjdXJyZW50QmFzZWxpbmUtPmhhc0V4
aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGNvZGVPcmlnaW4uYnl0ZWNvZGVJ
bmRleCwgQmFkRXhlY3V0YWJsZSwgRXhpdEZyb21GVEwpKTsKKyAgICAgICAgICAgIGJhZEZ1bmN0
aW9uID0KKyAgICAgICAgICAgICAgICBjdXJyZW50QmFzZWxpbmUtPmhhc0V4aXRTaXRlKGxvY2tl
ciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwgQmFkRnVu
Y3Rpb24sIEV4aXRGcm9tRlRMKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHsKKyAg
ICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGRmZ0NvZGVCbG9jay0+bV9sb2Nr
KTsKKyAgICAgICAgICAgIGlmICh0YWtlU2xvd1BhdGggfHwgaml0Q29kZS0+c2xvd1BhdGhDYWxs
c1tpXSA+PSBPcHRpb25zOjpjb3VsZFRha2VTbG93Q2FzZU1pbmltdW1Db3VudCgpKQorICAgICAg
ICAgICAgICAgIG1hcC5hZGQoaW5mby5jb2RlT3JpZ2luLCB0YWtlc1Nsb3dQYXRoKCkpOworICAg
ICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgQ2FsbExpbmtTdGF0dXMgc3RhdHVzID0g
Y29tcHV0ZUZvcihsb2NrZXIsIGluZm8pOworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMuaXNT
ZXQoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYmFkRnVuY3Rpb24pCisgICAgICAgICAg
ICAgICAgICAgICAgICBzdGF0dXMubWFrZUNsb3N1cmVDYWxsKCk7CisgICAgICAgICAgICAgICAg
ICAgIG1hcC5hZGQoaW5mby5jb2RlT3JpZ2luLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJ
VCkKKyAgICAKKyAgICBpZiAodmVyYm9zZSkgeworICAgICAgICBkYXRhTG9nKCJDb250ZXh0IG1h
cDpcbiIpOworICAgICAgICBDb250ZXh0TWFwOjppdGVyYXRvciBpdGVyID0gbWFwLmJlZ2luKCk7
CisgICAgICAgIENvbnRleHRNYXA6Oml0ZXJhdG9yIGVuZCA9IG1hcC5lbmQoKTsKKyAgICAgICAg
Zm9yICg7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKKyAgICAgICAgICAgIGRhdGFMb2coIiAgICAi
LCBpdGVyLT5rZXksICI6XG4iKTsKKyAgICAgICAgICAgIGRhdGFMb2coIiAgICAgICAgIiwgaXRl
ci0+dmFsdWUsICJcbiIpOworICAgICAgICB9CisgICAgfQorfQorCitDYWxsTGlua1N0YXR1cyBD
YWxsTGlua1N0YXR1czo6Y29tcHV0ZUZvcigKKyAgICBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ss
IENvZGVPcmlnaW4gY29kZU9yaWdpbiwgY29uc3QgQ2FsbExpbmtTdGF0dXM6OkNvbnRleHRNYXAm
IG1hcCkKK3sKKyAgICBDb250ZXh0TWFwOjpjb25zdF9pdGVyYXRvciBpdGVyID0gbWFwLmZpbmQo
Y29kZU9yaWdpbik7CisgICAgaWYgKGl0ZXIgIT0gbWFwLmVuZCgpKQorICAgICAgICByZXR1cm4g
aXRlci0+dmFsdWU7CisgICAgCisgICAgcmV0dXJuIGNvbXB1dGVGb3IocHJvZmlsZWRCbG9jaywg
Y29kZU9yaWdpbi5ieXRlY29kZUluZGV4KTsKIH0KIAogdm9pZCBDYWxsTGlua1N0YXR1czo6ZHVt
cChQcmludFN0cmVhbSYgb3V0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NhbGxMaW5rU3RhdHVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ2FsbExpbmtTdGF0dXMuaAppbmRleCA1MTk2NWZlNGE4Yjk5NzQxYTNiOTNmZTNiMTRm
NGMyZDdhYmY1ZDU2Li5mOWE5YTI2NDc3NmE1MzdkOTNlODVlYjM2MWVkMTU3Yzc2OGJjYzNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjYsNyArMjYsOSBAQAogI2lmbmRlZiBDYWxsTGlua1N0YXR1c19oCiAjZGVm
aW5lIENhbGxMaW5rU3RhdHVzX2gKIAorI2luY2x1ZGUgIkNvZGVPcmlnaW4uaCIKICNpbmNsdWRl
ICJDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmgiCisjaW5jbHVkZSAiQ29uY3VycmVudEpJVExvY2su
aCIKICNpbmNsdWRlICJJbnRyaW5zaWMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAKQEAg
LTM3LDYgKzM5LDcgQEAgY2xhc3MgRXhlY3V0YWJsZUJhc2U7CiBjbGFzcyBJbnRlcm5hbEZ1bmN0
aW9uOwogY2xhc3MgSlNGdW5jdGlvbjsKIGNsYXNzIFN0cnVjdHVyZTsKK3N0cnVjdCBDYWxsTGlu
a0luZm87CiAKIGNsYXNzIENhbGxMaW5rU3RhdHVzIHsKIHB1YmxpYzoKQEAgLTc0LDMxICs3Nywx
OSBAQCBwdWJsaWM6CiAgICAgCiAgICAgc3RhdGljIENhbGxMaW5rU3RhdHVzIGNvbXB1dGVGb3Io
Q29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCk7CiAgICAgCi0gICAgQ2FsbExpbmtT
dGF0dXMmIHNldEhhc0JhZEZ1bmN0aW9uRXhpdFNpdGUoYm9vbCBkaWRIYXZlRXhpdFNpdGUpCi0g
ICAgewotICAgICAgICBBU1NFUlQoIW1faXNQcm92ZWQpOwotICAgICAgICBpZiAoZGlkSGF2ZUV4
aXRTaXRlKSB7Ci0gICAgICAgICAgICAvLyBUdXJuIHRoaXMgaW50byBhIGNsb3N1cmUgY2FsbC4K
LSAgICAgICAgICAgIG1fY2FsbFRhcmdldCA9IEpTVmFsdWUoKTsKLSAgICAgICAgfQotICAgICAg
ICByZXR1cm4gKnRoaXM7Ci0gICAgfQorICAgIC8vIENvbXB1dGVzIHRoZSBzdGF0dXMgYXNzdW1p
bmcgdGhhdCB3ZSBuZXZlciB0b29rIHNsb3cgcGF0aCBhbmQgbmV2ZXIgcHJldmlvdXNseQorICAg
IC8vIGV4aXRlZC4KKyAgICBzdGF0aWMgQ2FsbExpbmtTdGF0dXMgY29tcHV0ZUZvcihjb25zdCBD
b25jdXJyZW50SklUTG9ja2VyJiwgQ2FsbExpbmtJbmZvJik7CiAgICAgCi0gICAgQ2FsbExpbmtT
dGF0dXMmIHNldEhhc0JhZENhY2hlRXhpdFNpdGUoYm9vbCBkaWRIYXZlRXhpdFNpdGUpCi0gICAg
ewotICAgICAgICBBU1NFUlQoIW1faXNQcm92ZWQpOwotICAgICAgICBpZiAoZGlkSGF2ZUV4aXRT
aXRlKQotICAgICAgICAgICAgKnRoaXMgPSB0YWtlc1Nsb3dQYXRoKCk7Ci0gICAgICAgIHJldHVy
biAqdGhpczsKLSAgICB9CisgICAgdHlwZWRlZiBIYXNoTWFwPENvZGVPcmlnaW4sIENhbGxMaW5r
U3RhdHVzLCBDb2RlT3JpZ2luQXBwcm94aW1hdGVIYXNoPiBDb250ZXh0TWFwOwogICAgIAotICAg
IENhbGxMaW5rU3RhdHVzJiBzZXRIYXNCYWRFeGVjdXRhYmxlRXhpdFNpdGUoYm9vbCBkaWRIYXZl
RXhpdFNpdGUpCi0gICAgewotICAgICAgICBBU1NFUlQoIW1faXNQcm92ZWQpOwotICAgICAgICBp
ZiAoZGlkSGF2ZUV4aXRTaXRlKQotICAgICAgICAgICAgKnRoaXMgPSB0YWtlc1Nsb3dQYXRoKCk7
Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9CisgICAgLy8gQ29tcHV0ZXMgYWxsIG9mIHRo
ZSBzdGF0dXNlcyBvZiB0aGUgREZHIGNvZGUgYmxvY2suIERvZXNuJ3QgaW5jbHVkZSBzdGF0dXNl
cyB0aGF0IGhhZAorICAgIC8vIG5vIGluZm9ybWF0aW9uLiBDdXJyZW50bHkgd2UgdXNlIHRoaXMg
d2hlbiBjb21waWxpbmcgRlRMIGNvZGUsIHRvIGVuYWJsZSBwb2x5dmFyaWFudAorICAgIC8vIGlu
bGluaW5nLgorICAgIHN0YXRpYyB2b2lkIGNvbXB1dGVERkdTdGF0dXNlcyhDb2RlQmxvY2sqIGRm
Z0NvZGVCbG9jaywgQ29udGV4dE1hcCYpOworICAgIAorICAgIC8vIEhlbHBlciB0aGF0IGZpcnN0
IGNvbnN1bHRzIHRoZSBDb250ZXh0TWFwIGFuZCB0aGVuIGRvZXMgY29tcHV0ZUZvcigpLgorICAg
IHN0YXRpYyBDYWxsTGlua1N0YXR1cyBjb21wdXRlRm9yKENvZGVCbG9jayosIENvZGVPcmlnaW4s
IGNvbnN0IENvbnRleHRNYXAmKTsKICAgICAKICAgICBib29sIGlzU2V0KCkgY29uc3QgeyByZXR1
cm4gbV9jYWxsVGFyZ2V0IHx8IG1fZXhlY3V0YWJsZSB8fCBtX2NvdWxkVGFrZVNsb3dQYXRoOyB9
CiAgICAgCkBAIC0xMTksNyArMTEwLDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIGR1bXAoUHJpbnRT
dHJlYW0mKSBjb25zdDsKICAgICAKIHByaXZhdGU6Ci0gICAgc3RhdGljIENhbGxMaW5rU3RhdHVz
IGNvbXB1dGVGcm9tTExJbnQoQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCk7Cisg
ICAgdm9pZCBtYWtlQ2xvc3VyZUNhbGwoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFtX2lzUHJv
dmVkKTsKKyAgICAgICAgLy8gVHVybiB0aGlzIGludG8gYSBjbG9zdXJlIGNhbGwuCisgICAgICAg
IG1fY2FsbFRhcmdldCA9IEpTVmFsdWUoKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIENhbGxM
aW5rU3RhdHVzIGNvbXB1dGVGcm9tTExJbnQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENv
ZGVCbG9jayosIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgpOwogICAgIAogICAgIEpTVmFsdWUgbV9j
YWxsVGFyZ2V0OwogICAgIEV4ZWN1dGFibGVCYXNlKiBtX2V4ZWN1dGFibGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IGRhODE0MzM2OTM5Yzhh
MzhmMmQ2NzM5ODViNjgyOWU2N2JmNjBjMTkuLjc4NjNhNjY4YWI3MzAwMzNkNmJiNjRmMGQ5YjAz
MGMyODVhNGRhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
b2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suY3BwCkBAIC0xMjksMTAgKzEyOSwxNSBAQCBDU3RyaW5nIENvZGVCbG9jazo6c291cmNlQ29k
ZU9uT25lTGluZSgpIGNvbnN0CiAKIHZvaWQgQ29kZUJsb2NrOjpkdW1wQXNzdW1pbmdKSVRUeXBl
KFByaW50U3RyZWFtJiBvdXQsIEpJVENvZGU6OkpJVFR5cGUgaml0VHlwZSkgY29uc3QKIHsKKyAg
ICBvdXQucHJpbnQoaW5mZXJyZWROYW1lKCksICIjIik7CiAgICAgaWYgKGhhc0hhc2goKSB8fCBp
c1NhZmVUb0NvbXB1dGVIYXNoKCkpCi0gICAgICAgIG91dC5wcmludChpbmZlcnJlZE5hbWUoKSwg
IiMiLCBoYXNoKCksICI6WyIsIFJhd1BvaW50ZXIodGhpcyksICItPiIsIFJhd1BvaW50ZXIob3du
ZXJFeGVjdXRhYmxlKCkpLCAiLCAiLCBqaXRUeXBlLCBjb2RlVHlwZSgpKTsKKyAgICAgICAgb3V0
LnByaW50KGhhc2goKSk7CiAgICAgZWxzZQotICAgICAgICBvdXQucHJpbnQoaW5mZXJyZWROYW1l
KCksICIjPG5vLWhhc2g+OlsiLCBSYXdQb2ludGVyKHRoaXMpLCAiLT4iLCBSYXdQb2ludGVyKG93
bmVyRXhlY3V0YWJsZSgpKSwgIiwgIiwgaml0VHlwZSwgY29kZVR5cGUoKSk7CisgICAgICAgIG91
dC5wcmludCgiPG5vLWhhc2g+Iik7CisgICAgb3V0LnByaW50KCI6WyIsIFJhd1BvaW50ZXIodGhp
cyksICItPiIpOworICAgIGlmICghIW1fYWx0ZXJuYXRpdmUpCisgICAgICAgIG91dC5wcmludChS
YXdQb2ludGVyKG1fYWx0ZXJuYXRpdmUuZ2V0KCkpLCAiLT4iKTsKKyAgICBvdXQucHJpbnQoUmF3
UG9pbnRlcihvd25lckV4ZWN1dGFibGUoKSksICIsICIsIGppdFR5cGUsIGNvZGVUeXBlKCkpOwog
CiAgICAgaWYgKGNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlKQogICAgICAgICBvdXQucHJpbnQo
c3BlY2lhbGl6YXRpb25LaW5kKCkpOwpAQCAtMTQzLDYgKzE0OCwxMCBAQCB2b2lkIENvZGVCbG9j
azo6ZHVtcEFzc3VtaW5nSklUVHlwZShQcmludFN0cmVhbSYgb3V0LCBKSVRDb2RlOjpKSVRUeXBl
IGppdFR5cGUpCiAgICAgICAgIG91dC5wcmludCgiIChOZXZlcklubGluZSkiKTsKICAgICBpZiAo
b3duZXJFeGVjdXRhYmxlKCktPmlzU3RyaWN0TW9kZSgpKQogICAgICAgICBvdXQucHJpbnQoIiAo
U3RyaWN0TW9kZSkiKTsKKyAgICBpZiAodGhpcy0+aml0VHlwZSgpID09IEpJVENvZGU6OkJhc2Vs
aW5lSklUICYmIG1fZGlkRmFpbEZUTENvbXBpbGF0aW9uKQorICAgICAgICBvdXQucHJpbnQoIiAo
RlRMRmFpbCkiKTsKKyAgICBpZiAodGhpcy0+aml0VHlwZSgpID09IEpJVENvZGU6OkJhc2VsaW5l
SklUICYmIG1faGFzQmVlbkNvbXBpbGVkV2l0aEZUTCkKKyAgICAgICAgb3V0LnByaW50KCIgKEhh
ZEZUTFJlcGxhY2VtZW50KSIpOwogICAgIG91dC5wcmludCgiXSIpOwogfQogCkBAIC01MjYsMTIg
KzUzNSw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0mIG91dCkK
ICAgICBvdXQucHJpbnRmKCJcbiIpOwogICAgIAogICAgIFN0dWJJbmZvTWFwIHN0dWJJbmZvczsK
LSNpZiBFTkFCTEUoSklUKQotICAgIHsKLSAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2Nr
ZXIobV9sb2NrKTsKLSAgICAgICAgZ2V0U3R1YkluZm9NYXAobG9ja2VyLCBzdHViSW5mb3MpOwot
ICAgIH0KLSNlbmRpZgorICAgIGdldFN0dWJJbmZvTWFwKHN0dWJJbmZvcyk7CiAgICAgCiAgICAg
Y29uc3QgSW5zdHJ1Y3Rpb24qIGJlZ2luID0gaW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKTsKICAgICBj
b25zdCBJbnN0cnVjdGlvbiogZW5kID0gaW5zdHJ1Y3Rpb25zKCkuZW5kKCk7CkBAIC0xNDY5LDYg
KzE0NzMsNyBAQCBDb2RlQmxvY2s6OkNvZGVCbG9jayhDb3B5UGFyc2VkQmxvY2tUYWcsIENvZGVC
bG9jayYgb3RoZXIpCiAgICAgLCBtX2lzQ29uc3RydWN0b3Iob3RoZXIubV9pc0NvbnN0cnVjdG9y
KQogICAgICwgbV9zaG91bGRBbHdheXNCZUlubGluZWQodHJ1ZSkKICAgICAsIG1fZGlkRmFpbEZU
TENvbXBpbGF0aW9uKGZhbHNlKQorICAgICwgbV9oYXNCZWVuQ29tcGlsZWRXaXRoRlRMKGZhbHNl
KQogICAgICwgbV91bmxpbmtlZENvZGUoKm90aGVyLm1fdm0sIG90aGVyLm1fb3duZXJFeGVjdXRh
YmxlLmdldCgpLCBvdGhlci5tX3VubGlua2VkQ29kZS5nZXQoKSkKICAgICAsIG1fc3RlcHBpbmdN
b2RlKFN0ZXBwaW5nTW9kZURpc2FibGVkKQogICAgICwgbV9udW1CcmVha3BvaW50cygwKQpAQCAt
MTUyNSw2ICsxNTMwLDcgQEAgQ29kZUJsb2NrOjpDb2RlQmxvY2soU2NyaXB0RXhlY3V0YWJsZSog
b3duZXJFeGVjdXRhYmxlLCBVbmxpbmtlZENvZGVCbG9jayogdW5saW4KICAgICAsIG1faXNDb25z
dHJ1Y3Rvcih1bmxpbmtlZENvZGVCbG9jay0+aXNDb25zdHJ1Y3RvcigpKQogICAgICwgbV9zaG91
bGRBbHdheXNCZUlubGluZWQodHJ1ZSkKICAgICAsIG1fZGlkRmFpbEZUTENvbXBpbGF0aW9uKGZh
bHNlKQorICAgICwgbV9oYXNCZWVuQ29tcGlsZWRXaXRoRlRMKGZhbHNlKQogICAgICwgbV91bmxp
bmtlZENvZGUobV9nbG9iYWxPYmplY3QtPnZtKCksIG93bmVyRXhlY3V0YWJsZSwgdW5saW5rZWRD
b2RlQmxvY2spCiAgICAgLCBtX3N0ZXBwaW5nTW9kZShTdGVwcGluZ01vZGVEaXNhYmxlZCkKICAg
ICAsIG1fbnVtQnJlYWtwb2ludHMoMCkKQEAgLTE4NTQsMjMgKzE4NjAsMTMgQEAgQ29kZUJsb2Nr
OjpDb2RlQmxvY2soU2NyaXB0RXhlY3V0YWJsZSogb3duZXJFeGVjdXRhYmxlLCBVbmxpbmtlZENv
ZGVCbG9jayogdW5saW4KIAogICAgIC8vIElmIHRoZSBjb25jdXJyZW50IHRocmVhZCB3aWxsIHdh
bnQgdGhlIGNvZGUgYmxvY2sncyBoYXNoLCB0aGVuIGNvbXB1dGUgaXQgaGVyZQogICAgIC8vIHN5
bmNocm9ub3VzbHkuCi0gICAgaWYgKE9wdGlvbnM6OnNob3dEaXNhc3NlbWJseSgpCi0gICAgICAg
IHx8IE9wdGlvbnM6OnNob3dERkdEaXNhc3NlbWJseSgpCi0gICAgICAgIHx8IE9wdGlvbnM6OmR1
bXBCeXRlY29kZUF0REZHVGltZSgpCi0gICAgICAgIHx8IE9wdGlvbnM6OmR1bXBHcmFwaEF0RWFj
aFBoYXNlKCkKLSAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uKCkKLSAgICAg
ICAgfHwgT3B0aW9uczo6bG9nQ29tcGlsYXRpb25DaGFuZ2VzKCkKLSAgICAgICAgfHwgT3B0aW9u
czo6dmFsaWRhdGVHcmFwaCgpCi0gICAgICAgIHx8IE9wdGlvbnM6OnZhbGlkYXRlR3JhcGhBdEVh
Y2hQaGFzZSgpCi0gICAgICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VPU1IoKQotICAgICAgICB8fCBP
cHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb25RdWV1ZSgpCi0gICAgICAgIHx8IE9wdGlvbnM6OnJl
cG9ydENvbXBpbGVUaW1lcygpCi0gICAgICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VDRkEoKSkKKyAg
ICBpZiAoT3B0aW9uczo6YWx3YXlzQ29tcHV0ZUhhc2goKSkKICAgICAgICAgaGFzaCgpOwogCiAg
ICAgaWYgKE9wdGlvbnM6OmR1bXBHZW5lcmF0ZWRCeXRlY29kZXMoKSkKICAgICAgICAgZHVtcEJ5
dGVjb2RlKCk7CiAKKyAgICAKICAgICBtX2hlYXAtPm1fY29kZUJsb2Nrcy5hZGQodGhpcyk7CiAg
ICAgbV9oZWFwLT5yZXBvcnRFeHRyYU1lbW9yeUNvc3Qoc2l6ZW9mKENvZGVCbG9jaykgKyBtX2lu
c3RydWN0aW9ucy5zaXplKCkgKiBzaXplb2YoSW5zdHJ1Y3Rpb24pKTsKIH0KQEAgLTIzMzQsMTYg
KzIzMzAsMjYgQEAgdm9pZCBDb2RlQmxvY2s6OmZpbmFsaXplVW5jb25kaXRpb25hbGx5KCkKICNl
bmRpZgogfQogCit2b2lkIENvZGVCbG9jazo6Z2V0U3R1YkluZm9NYXAoY29uc3QgQ29uY3VycmVu
dEpJVExvY2tlciYsIFN0dWJJbmZvTWFwJiByZXN1bHQpCit7CiAjaWYgRU5BQkxFKEpJVCkKLVN0
cnVjdHVyZVN0dWJJbmZvKiBDb2RlQmxvY2s6OmFkZFN0dWJJbmZvKCkKKyAgICB0b0hhc2hNYXAo
bV9zdHViSW5mb3MsIGdldFN0cnVjdHVyZVN0dWJJbmZvQ29kZU9yaWdpbiwgcmVzdWx0KTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7CisjZW5kaWYKK30KKwordm9pZCBDb2RlQmxv
Y2s6OmdldFN0dWJJbmZvTWFwKFN0dWJJbmZvTWFwJiByZXN1bHQpCiB7CiAgICAgQ29uY3VycmVu
dEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKLSAgICByZXR1cm4gbV9zdHViSW5mb3MuYWRkKCk7
CisgICAgZ2V0U3R1YkluZm9NYXAobG9ja2VyLCByZXN1bHQpOwogfQogCi12b2lkIENvZGVCbG9j
azo6Z2V0U3R1YkluZm9NYXAoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIFN0dWJJbmZvTWFw
JiByZXN1bHQpCisjaWYgRU5BQkxFKEpJVCkKK1N0cnVjdHVyZVN0dWJJbmZvKiBDb2RlQmxvY2s6
OmFkZFN0dWJJbmZvKCkKIHsKLSAgICB0b0hhc2hNYXAobV9zdHViSW5mb3MsIGdldFN0cnVjdHVy
ZVN0dWJJbmZvQ29kZU9yaWdpbiwgcmVzdWx0KTsKKyAgICBDb25jdXJyZW50SklUTG9ja2VyIGxv
Y2tlcihtX2xvY2spOworICAgIHJldHVybiBtX3N0dWJJbmZvcy5hZGQoKTsKIH0KIAogdm9pZCBD
b2RlQmxvY2s6OnJlc2V0U3R1YihTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8pCkBAIC0yODk5
LDYgKzI5MDUsMTEgQEAgdm9pZCBDb2RlQmxvY2s6OmNvdW50UmVvcHRpbWl6YXRpb24oKQogdW5z
aWduZWQgQ29kZUJsb2NrOjpudW1iZXJPZkRGR0NvbXBpbGVzKCkKIHsKICAgICBBU1NFUlQoSklU
Q29kZTo6aXNCYXNlbGluZUNvZGUoaml0VHlwZSgpKSk7CisgICAgaWYgKE9wdGlvbnM6OnRlc3RU
aGVGVEwoKSkgeworICAgICAgICBpZiAobV9kaWRGYWlsRlRMQ29tcGlsYXRpb24pCisgICAgICAg
ICAgICByZXR1cm4gMTAwMDAwMDsKKyAgICAgICAgcmV0dXJuIChtX2hhc0JlZW5Db21waWxlZFdp
dGhGVEwgPyAxIDogMCkgKyBtX3Jlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyOworICAgIH0KICAg
ICByZXR1cm4gKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChyZXBsYWNlbWVudCgpLT5qaXRUeXBl
KCkpID8gMSA6IDApICsgbV9yZW9wdGltaXphdGlvblJldHJ5Q291bnRlcjsKIH0KIApAQCAtMzAx
MCw3ICszMDIxLDcgQEAgaW50MzJfdCBDb2RlQmxvY2s6OmFkanVzdGVkQ291bnRlclZhbHVlKGlu
dDMyX3QgZGVzaXJlZFRocmVzaG9sZCkKIGJvb2wgQ29kZUJsb2NrOjpjaGVja0lmT3B0aW1pemF0
aW9uVGhyZXNob2xkUmVhY2hlZCgpCiB7CiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgaWYgKERG
Rzo6V29ya2xpc3QqIHdvcmtsaXN0ID0gbV92bS0+d29ya2xpc3QuZ2V0KCkpIHsKKyAgICBpZiAo
REZHOjpXb3JrbGlzdCogd29ya2xpc3QgPSBERkc6OmV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RP
ck51bGwoKSkgewogICAgICAgICBpZiAod29ya2xpc3QtPmNvbXBpbGF0aW9uU3RhdGUoREZHOjpD
b21waWxhdGlvbktleSh0aGlzLCBERkc6OkRGR01vZGUpKQogICAgICAgICAgICAgPT0gREZHOjpX
b3JrbGlzdDo6Q29tcGlsZWQpIHsKICAgICAgICAgICAgIG9wdGltaXplTmV4dEludm9jYXRpb24o
KTsKQEAgLTMzNDEsNiArMzM1MiwxMSBAQCB1bnNpZ25lZCBDb2RlQmxvY2s6OmZyYW1lUmVnaXN0
ZXJDb3VudCgpCiAgICAgfQogfQogCitpbnQgQ29kZUJsb2NrOjpzdGFja1BvaW50ZXJPZmZzZXQo
KQoreworICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChmcmFtZVJlZ2lzdGVyQ291
bnQoKSAtIDEpLm9mZnNldCgpOworfQorCiBzaXplX3QgQ29kZUJsb2NrOjpwcmVkaWN0ZWRNYWNo
aW5lQ29kZVNpemUoKQogewogICAgIC8vIFRoaXMgd2lsbCBiZSBjYWxsZWQgZnJvbSBDb2RlQmxv
Y2s6OkNvZGVCbG9jayBiZWZvcmUgZWl0aGVyIG1fdm0gb3IgdGhlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKaW5kZXggNjlmNDIxODRlZGExMGZjZGVmNGJkMzYx
MzZhYjM5ODk4NGMyZmRkYy4uY2JkYzM4MTdjOGVmYTRiMmRlMTgzNzQxZTlhZTJiYWQ4N2IzMzM4
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaApAQCAtMTc1
LDYgKzE3NSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGV4cHJlc3Npb25SYW5nZUZvckJ5dGVjb2Rl
T2Zmc2V0KHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0LCBpbnQmIGRpdm90LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50JiBzdGFydE9mZnNldCwgaW50JiBlbmRP
ZmZzZXQsIHVuc2lnbmVkJiBsaW5lLCB1bnNpZ25lZCYgY29sdW1uKTsKIAorICAgIHZvaWQgZ2V0
U3R1YkluZm9NYXAoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIFN0dWJJbmZvTWFwJiByZXN1
bHQpOworICAgIHZvaWQgZ2V0U3R1YkluZm9NYXAoU3R1YkluZm9NYXAmIHJlc3VsdCk7CisKICNp
ZiBFTkFCTEUoSklUKQogICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBhZGRTdHViSW5mbygpOwogICAg
IEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz46Oml0ZXJhdG9yIGJlZ2luKCkgeyByZXR1cm4gbV9zdHVi
SW5mb3MuYmVnaW4oKTsgfQpAQCAtMTgyLDggKzE4NSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
cmVzZXRTdHViKFN0cnVjdHVyZVN0dWJJbmZvJik7CiAgICAgCi0gICAgdm9pZCBnZXRTdHViSW5m
b01hcChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgU3R1YkluZm9NYXAmIHJlc3VsdCk7Ci0K
ICAgICBCeVZhbEluZm8mIGdldEJ5VmFsSW5mbyh1bnNpZ25lZCBieXRlY29kZUluZGV4KQogICAg
IHsKICAgICAgICAgcmV0dXJuICooYmluYXJ5U2VhcmNoPEJ5VmFsSW5mbywgdW5zaWduZWQ+KG1f
YnlWYWxJbmZvcywgbV9ieVZhbEluZm9zLnNpemUoKSwgYnl0ZWNvZGVJbmRleCwgZ2V0QnlWYWxJ
bmZvQnl0ZWNvZGVJbmRleCkpOwpAQCAtMjU2LDE3ICsyNTcsMTUgQEAgcHVibGljOgogICAgIC8v
IEV4YWN0bHkgZXF1aXZhbGVudCB0byBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLT5uZXdS
ZXBsYWNlbWVudENvZGVCbG9ja0Zvcihjb2RlQmxvY2stPnNwZWNpYWxpemF0aW9uS2luZCgpKQog
ICAgIFBhc3NSZWZQdHI8Q29kZUJsb2NrPiBuZXdSZXBsYWNlbWVudCgpOwogICAgIAotICAgIHZv
aWQgc2V0SklUQ29kZShQYXNzUmVmUHRyPEpJVENvZGU+IGNvZGUsIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBjb2RlV2l0aEFyaXR5Q2hlY2spCisgICAgdm9pZCBzZXRKSVRDb2RlKFBhc3NSZWZQdHI8
SklUQ29kZT4gY29kZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChtX2hlYXAtPmlzRGVmZXJyZWQo
KSk7CiAgICAgICAgIG1faGVhcC0+cmVwb3J0RXh0cmFNZW1vcnlDb3N0KGNvZGUtPnNpemUoKSk7
CiAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgICAgIFdU
Rjo6c3RvcmVTdG9yZUZlbmNlKCk7IC8vIFRoaXMgaXMgcHJvYmFibHkgbm90IG5lZWRlZCBiZWNh
dXNlIHRoZSBsb2NrIHdpbGwgYWxzbyBkbyBzb21ldGhpbmcgc2ltaWxhciwgYnV0IGl0J3MgZ29v
ZCB0byBiZSBwYXJhbm9pZC4KICAgICAgICAgbV9qaXRDb2RlID0gY29kZTsKLSAgICAgICAgbV9q
aXRDb2RlV2l0aEFyaXR5Q2hlY2sgPSBjb2RlV2l0aEFyaXR5Q2hlY2s7CiAgICAgfQogICAgIFBh
c3NSZWZQdHI8SklUQ29kZT4gaml0Q29kZSgpIHsgcmV0dXJuIG1faml0Q29kZTsgfQotICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciBqaXRDb2RlV2l0aEFyaXR5Q2hlY2soKSB7IHJldHVybiBtX2pp
dENvZGVXaXRoQXJpdHlDaGVjazsgfQogICAgIEpJVENvZGU6OkpJVFR5cGUgaml0VHlwZSgpIGNv
bnN0CiAgICAgewogICAgICAgICBKSVRDb2RlKiBqaXRDb2RlID0gbV9qaXRDb2RlLmdldCgpOwpA
QCAtNDg5LDggKzQ4OCw4IEBAIHB1YmxpYzoKICAgICBSYXJlQ2FzZVByb2ZpbGUqIHNwZWNpYWxG
YXN0Q2FzZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChpbnQgYnl0ZWNvZGVPZmZzZXQpCiAgICAg
ewogICAgICAgICByZXR1cm4gdHJ5QmluYXJ5U2VhcmNoPFJhcmVDYXNlUHJvZmlsZSwgaW50PigK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9z
cGVjaWFsRmFzdENhc2VQcm9maWxlcywgbV9zcGVjaWFsRmFzdENhc2VQcm9maWxlcy5zaXplKCks
IGJ5dGVjb2RlT2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBnZXRSYXJlQ2FzZVByb2ZpbGVCeXRlY29kZU9mZnNldCk7CisgICAgICAg
ICAgICBtX3NwZWNpYWxGYXN0Q2FzZVByb2ZpbGVzLCBtX3NwZWNpYWxGYXN0Q2FzZVByb2ZpbGVz
LnNpemUoKSwgYnl0ZWNvZGVPZmZzZXQsCisgICAgICAgICAgICBnZXRSYXJlQ2FzZVByb2ZpbGVC
eXRlY29kZU9mZnNldCk7CiAgICAgfQogCiAgICAgYm9vbCBsaWtlbHlUb1Rha2VTcGVjaWFsRmFz
dENhc2UoaW50IGJ5dGVjb2RlT2Zmc2V0KQpAQCAtNTc2LDExICs1NzUsMTUgQEAgcHVibGljOgog
ICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwogICAgICAgICByZXR1
cm4gbV9leGl0UHJvZmlsZS5hZGQobG9ja2VyLCBzaXRlKTsKICAgICB9Ci0gICAgICAgIAorICAg
ICAKKyAgICBib29sIGhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tl
ciwgY29uc3QgREZHOjpGcmVxdWVudEV4aXRTaXRlJiBzaXRlKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobG9ja2VyLCBzaXRlKTsKKyAgICB9
CiAgICAgYm9vbCBoYXNFeGl0U2l0ZShjb25zdCBERkc6OkZyZXF1ZW50RXhpdFNpdGUmIHNpdGUp
IGNvbnN0CiAgICAgewogICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2sp
OwotICAgICAgICByZXR1cm4gbV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShsb2NrZXIsIHNpdGUp
OworICAgICAgICByZXR1cm4gaGFzRXhpdFNpdGUobG9ja2VyLCBzaXRlKTsKICAgICB9CiAKICAg
ICBERkc6OkV4aXRQcm9maWxlJiBleGl0UHJvZmlsZSgpIHsgcmV0dXJuIG1fZXhpdFByb2ZpbGU7
IH0KQEAgLTY3OSw5ICs2ODIsMTkgQEAgcHVibGljOgogCiAgICAgQnl0ZWNvZGVMaXZlbmVzc0Fu
YWx5c2lzJiBsaXZlbmVzc0FuYWx5c2lzKCkKICAgICB7Ci0gICAgICAgIGlmICghbV9saXZlbmVz
c0FuYWx5c2lzKQotICAgICAgICAgICAgbV9saXZlbmVzc0FuYWx5c2lzID0gc3RkOjptYWtlX3Vu
aXF1ZTxCeXRlY29kZUxpdmVuZXNzQW5hbHlzaXM+KHRoaXMpOwotICAgICAgICByZXR1cm4gKm1f
bGl2ZW5lc3NBbmFseXNpczsKKyAgICAgICAgeworICAgICAgICAgICAgQ29uY3VycmVudEpJVExv
Y2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgICAgIGlmICghIW1fbGl2ZW5lc3NBbmFseXNp
cykKKyAgICAgICAgICAgICAgICByZXR1cm4gKm1fbGl2ZW5lc3NBbmFseXNpczsKKyAgICAgICAg
fQorICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Qnl0ZWNvZGVMaXZlbmVzc0FuYWx5c2lzPiBhbmFs
eXNpcyA9CisgICAgICAgICAgICBzdGQ6Om1ha2VfdW5pcXVlPEJ5dGVjb2RlTGl2ZW5lc3NBbmFs
eXNpcz4odGhpcyk7CisgICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIg
bG9ja2VyKG1fbG9jayk7CisgICAgICAgICAgICBpZiAoIW1fbGl2ZW5lc3NBbmFseXNpcykKKyAg
ICAgICAgICAgICAgICBtX2xpdmVuZXNzQW5hbHlzaXMgPSBzdGQ6Om1vdmUoYW5hbHlzaXMpOwor
ICAgICAgICAgICAgcmV0dXJuICptX2xpdmVuZXNzQW5hbHlzaXM7CisgICAgICAgIH0KICAgICB9
CiAgICAgCiAgICAgdm9pZCB2YWxpZGF0ZSgpOwpAQCAtODY2LDYgKzg3OSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHVwZGF0ZUFsbFByZWRpY3Rpb25zKCk7CiAKICAgICB1bnNpZ25lZCBmcmFtZVJl
Z2lzdGVyQ291bnQoKTsKKyAgICBpbnQgc3RhY2tQb2ludGVyT2Zmc2V0KCk7CiAKICAgICBib29s
IGhhc09wRGVidWdGb3JMaW5lQW5kQ29sdW1uKHVuc2lnbmVkIGxpbmUsIHVuc2lnbmVkIGNvbHVt
bik7CiAKQEAgLTg5MSw3ICs5MDUsNyBAQCBwdWJsaWM6CiAKICAgICBpbnQgbV9udW1DYWxsZWVS
ZWdpc3RlcnM7CiAgICAgaW50IG1fbnVtVmFyczsKLSAgICBib29sIG1faXNDb25zdHJ1Y3RvcjsK
KyAgICBib29sIG1faXNDb25zdHJ1Y3RvciA6IDE7CiAgICAgCiAgICAgLy8gVGhpcyBpcyBpbnRl
bnRpb25hbGx5IHB1YmxpYzsgaXQncyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgYW55b25lIGRvaW5n
IGFueQogICAgIC8vIG9mIHRoZSBmb2xsb3dpbmcgdG8gaG9sZCB0aGUgbG9jazoKQEAgLTkxMSwx
MCArOTI1LDExIEBAIHB1YmxpYzoKICAgICAvLyBjb25jdXJyZW50IGNvbXBpbGF0aW9uIHRocmVh
ZHMgZmluaXNoIHdoYXQgdGhleSdyZSBkb2luZy4KICAgICBtdXRhYmxlIENvbmN1cnJlbnRKSVRM
b2NrIG1fbG9jazsKICAgICAKLSAgICBib29sIG1fc2hvdWxkQWx3YXlzQmVJbmxpbmVkOwotICAg
IGJvb2wgbV9hbGxUcmFuc2l0aW9uc0hhdmVCZWVuTWFya2VkOyAvLyBJbml0aWFsaXplZCBhbmQg
dXNlZCBvbiBldmVyeSBHQy4KKyAgICBib29sIG1fc2hvdWxkQWx3YXlzQmVJbmxpbmVkOyAvLyBO
b3QgYSBiaXRmaWVsZCBiZWNhdXNlIHRoZSBKSVQgd2FudHMgdG8gc3RvcmUgdG8gaXQuCisgICAg
Ym9vbCBtX2FsbFRyYW5zaXRpb25zSGF2ZUJlZW5NYXJrZWQgOiAxOyAvLyBJbml0aWFsaXplZCBh
bmQgdXNlZCBvbiBldmVyeSBHQy4KICAgICAKLSAgICBib29sIG1fZGlkRmFpbEZUTENvbXBpbGF0
aW9uOworICAgIGJvb2wgbV9kaWRGYWlsRlRMQ29tcGlsYXRpb24gOiAxOworICAgIGJvb2wgbV9o
YXNCZWVuQ29tcGlsZWRXaXRoRlRMIDogMTsKIAogICAgIC8vIEludGVybmFsIG1ldGhvZHMgZm9y
IHVzZSBieSB2YWxpZGF0aW9uIGNvZGUuIEl0IHdvdWxkIGJlIHByaXZhdGUgaWYgaXQgd2Fzbid0
CiAgICAgLy8gZm9yIHRoZSBmYWN0IHRoYXQgd2UgdXNlIGl0IGZyb20gYW5vbnltb3VzIG5hbWVz
cGFjZXMuCkBAIC0xMDU0LDcgKzEwNjksNiBAQCBwcml2YXRlOgogICAgIFNlbnRpbmVsTGlua2Vk
TGlzdDxMTEludENhbGxMaW5rSW5mbywgQmFzaWNSYXdTZW50aW5lbE5vZGU8TExJbnRDYWxsTGlu
a0luZm8+PiBtX2luY29taW5nTExJbnRDYWxsczsKICNlbmRpZgogICAgIFJlZlB0cjxKSVRDb2Rl
PiBtX2ppdENvZGU7Ci0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIG1faml0Q29kZVdpdGhBcml0
eUNoZWNrOwogI2lmIEVOQUJMRShKSVQpCiAgICAgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiBtX3N0
dWJJbmZvczsKICAgICBWZWN0b3I8QnlWYWxJbmZvPiBtX2J5VmFsSW5mb3M7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5jcHAKaW5kZXggMzliODNmZWFkYzUy
NWRjNjFjOGVmYWJmNDAxNmYxZGMzYjgyZWQ3My4uNjhkYzZiMDUzMzU1OTBlYzRjODFjNDIzNDZi
Yjc0ZGJiZDhmYWM1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVPcmlnaW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
T3JpZ2luLmNwcApAQCAtNDUsNyArNDUsNjQgQEAgdW5zaWduZWQgQ29kZU9yaWdpbjo6aW5saW5l
RGVwdGgoKSBjb25zdAogewogICAgIHJldHVybiBpbmxpbmVEZXB0aEZvckNhbGxGcmFtZShpbmxp
bmVDYWxsRnJhbWUpOwogfQorCitib29sIENvZGVPcmlnaW46OmlzQXBwcm94aW1hdGVseUVxdWFs
VG8oY29uc3QgQ29kZU9yaWdpbiYgb3RoZXIpIGNvbnN0Cit7CisgICAgQ29kZU9yaWdpbiBhID0g
KnRoaXM7CisgICAgQ29kZU9yaWdpbiBiID0gb3RoZXI7CisKKyAgICBpZiAoIWEuaXNTZXQoKSkK
KyAgICAgICAgcmV0dXJuICFiLmlzU2V0KCk7CisgICAgaWYgKCFiLmlzU2V0KCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAoYS5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgp
KQorICAgICAgICByZXR1cm4gYi5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOworICAgIGlmIChi
LmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAK
KyAgICBmb3IgKDs7KSB7CisgICAgICAgIEFTU0VSVChhLmlzU2V0KCkpOworICAgICAgICBBU1NF
UlQoYi5pc1NldCgpKTsKKyAgICAgICAgCisgICAgICAgIGlmIChhLmJ5dGVjb2RlSW5kZXggIT0g
Yi5ieXRlY29kZUluZGV4KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAg
ICAgICAgaWYgKCghIWEuaW5saW5lQ2FsbEZyYW1lKSAhPSAoISFiLmlubGluZUNhbGxGcmFtZSkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICBpZiAoIWEuaW5s
aW5lQ2FsbEZyYW1lKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIAorICAgICAg
ICBpZiAoYS5pbmxpbmVDYWxsRnJhbWUtPmV4ZWN1dGFibGUgIT0gYi5pbmxpbmVDYWxsRnJhbWUt
PmV4ZWN1dGFibGUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAg
ICBhID0gYS5pbmxpbmVDYWxsRnJhbWUtPmNhbGxlcjsKKyAgICAgICAgYiA9IGIuaW5saW5lQ2Fs
bEZyYW1lLT5jYWxsZXI7CisgICAgfQorfQorCit1bnNpZ25lZCBDb2RlT3JpZ2luOjphcHByb3hp
bWF0ZUhhc2goKSBjb25zdAoreworICAgIGlmICghaXNTZXQoKSkKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgaWYgKGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpCisgICAgICAgIHJldHVybiAxOwog
ICAgIAorICAgIHVuc2lnbmVkIHJlc3VsdCA9IDI7CisgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2lu
ID0gKnRoaXM7CisgICAgZm9yICg7OykgeworICAgICAgICByZXN1bHQgKz0gY29kZU9yaWdpbi5i
eXRlY29kZUluZGV4OworICAgICAgICAKKyAgICAgICAgaWYgKCFjb2RlT3JpZ2luLmlubGluZUNh
bGxGcmFtZSkKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIAorICAgICAgICBy
ZXN1bHQgKz0gV1RGOjpQdHJIYXNoPEpTQ2VsbCo+OjpoYXNoKGNvZGVPcmlnaW4uaW5saW5lQ2Fs
bEZyYW1lLT5leGVjdXRhYmxlLmdldCgpKTsKKyAgICAgICAgCisgICAgICAgIGNvZGVPcmlnaW4g
PSBjb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZS0+Y2FsbGVyOworICAgIH0KK30KKwogVmVjdG9y
PENvZGVPcmlnaW4+IENvZGVPcmlnaW46OmlubGluZVN0YWNrKCkgY29uc3QKIHsKICAgICBWZWN0
b3I8Q29kZU9yaWdpbj4gcmVzdWx0KGlubGluZURlcHRoKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmlnaW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmgKaW5kZXggZWQ2NjBjMjQ3OTVkZTYxODI3MWJlOTk4
MDc5ZWFmYjJkMDRhOWJjMS4uYzUyNTE3OWI2N2FjYjM3NDIwMjc5M2Q1YmVhMmMwYjg5MDEzNTM4
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmlnaW4u
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5oCkBAIC02
Myw3ICs2Myw3IEBAIHN0cnVjdCBDb2RlT3JpZ2luIHsKICAgICAKICAgICBDb2RlT3JpZ2luKFdU
Rjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKICAgICAgICAgOiBieXRlY29kZUluZGV4KGlu
dmFsaWRCeXRlY29kZUluZGV4KQotICAgICAgICAsIGlubGluZUNhbGxGcmFtZShiaXR3aXNlX2Nh
c3Q8SW5saW5lQ2FsbEZyYW1lKj4oc3RhdGljX2Nhc3Q8dWludHB0cl90PigxKSkpCisgICAgICAg
ICwgaW5saW5lQ2FsbEZyYW1lKGRlbGV0ZWRNYXJrZXIoKSkKICAgICB7CiAgICAgfQogICAgIApA
QCAtOTcsMTUgKzk3LDI3IEBAIHN0cnVjdCBDb2RlT3JpZ2luIHsKICAgICBib29sIG9wZXJhdG9y
PT0oY29uc3QgQ29kZU9yaWdpbiYgb3RoZXIpIGNvbnN0OwogICAgIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBDb2RlT3JpZ2luJiBvdGhlcikgY29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7
IH0KICAgICAKKyAgICAvLyBUaGlzIGNoZWNrcyBpZiB0aGUgdHdvIGNvZGUgb3JpZ2lucyBjb3Jy
ZXNwb25kIHRvIHRoZSBzYW1lIHN0YWNrIHRyYWNlIHNuaXBwZXRzLAorICAgIC8vIGJ1dCBpZ25v
cmUgd2hldGhlciB0aGUgSW5saW5lQ2FsbEZyYW1lJ3MgYXJlIGlkZW50aWNhbC4KKyAgICBib29s
IGlzQXBwcm94aW1hdGVseUVxdWFsVG8oY29uc3QgQ29kZU9yaWdpbiYgb3RoZXIpIGNvbnN0Owor
ICAgIAorICAgIHVuc2lnbmVkIGFwcHJveGltYXRlSGFzaCgpIGNvbnN0OworICAgIAogICAgIC8v
IEdldCB0aGUgaW5saW5lIHN0YWNrLiBUaGlzIGlzIHNsb3csIGFuZCBpcyBpbnRlbmRlZCBmb3Ig
ZGVidWdnaW5nIG9ubHkuCiAgICAgVmVjdG9yPENvZGVPcmlnaW4+IGlubGluZVN0YWNrKCkgY29u
c3Q7CiAgICAgCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgdm9pZCBk
dW1wSW5Db250ZXh0KFByaW50U3RyZWFtJiwgRHVtcENvbnRleHQqKSBjb25zdDsKKworcHJpdmF0
ZToKKyAgICBzdGF0aWMgSW5saW5lQ2FsbEZyYW1lKiBkZWxldGVkTWFya2VyKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8SW5saW5lQ2FsbEZyYW1lKj4oc3RhdGljX2Nhc3Q8
dWludHB0cl90PigxKSk7CisgICAgfQogfTsKIAogc3RydWN0IElubGluZUNhbGxGcmFtZSB7Ci0g
ICAgVmVjdG9yPFZhbHVlUmVjb3Zlcnk+IGFyZ3VtZW50czsKKyAgICBWZWN0b3I8VmFsdWVSZWNv
dmVyeT4gYXJndW1lbnRzOyAvLyBJbmNsdWRlcyAndGhpcycuCiAgICAgV3JpdGVCYXJyaWVyPFNj
cmlwdEV4ZWN1dGFibGU+IGV4ZWN1dGFibGU7CiAgICAgVmFsdWVSZWNvdmVyeSBjYWxsZWVSZWNv
dmVyeTsKICAgICBDb2RlT3JpZ2luIGNhbGxlcjsKQEAgLTE4NSw2ICsxOTcsMTIgQEAgc3RydWN0
IENvZGVPcmlnaW5IYXNoIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9F
bXB0eU9yRGVsZXRlZCA9IHRydWU7CiB9OwogCitzdHJ1Y3QgQ29kZU9yaWdpbkFwcHJveGltYXRl
SGFzaCB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgQ29kZU9yaWdpbiYga2V5KSB7
IHJldHVybiBrZXkuYXBwcm94aW1hdGVIYXNoKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBlcXVhbChj
b25zdCBDb2RlT3JpZ2luJiBhLCBjb25zdCBDb2RlT3JpZ2luJiBiKSB7IHJldHVybiBhLmlzQXBw
cm94aW1hdGVseUVxdWFsVG8oYik7IH0KKyAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21w
YXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Cit9OworCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAog
bmFtZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvREZHRXhpdFByb2ZpbGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RG
R0V4aXRQcm9maWxlLmNwcAppbmRleCA1ZDA1YmJiMmYwNzk4MTY3M2M3NzRlMzVkZjBmM2Q0ZjBl
MTc1NTA3Li43M2JhODhjZDAzNDJhM2ZiYTMwMmMzMGQzNzYwMjNiN2NiZTQ5NzFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvREZHRXhpdFByb2ZpbGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5jcHAKQEAg
LTM3LDYgKzM3LDggQEAgRXhpdFByb2ZpbGU6On5FeGl0UHJvZmlsZSgpIHsgfQogCiBib29sIEV4
aXRQcm9maWxlOjphZGQoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIGNvbnN0IEZyZXF1ZW50
RXhpdFNpdGUmIHNpdGUpCiB7CisgICAgQVNTRVJUKHNpdGUuaml0VHlwZSgpICE9IEV4aXRGcm9t
QW55dGhpbmcpOworICAgIAogICAgIC8vIElmIHdlJ3ZlIG5ldmVyIHNlZW4gYW55IGZyZXF1ZW50
IGV4aXRzIHRoZW4gY3JlYXRlIHRoZSBsaXN0IGFuZCBwdXQgdGhpcyBzaXRlCiAgICAgLy8gaW50
byBpdC4KICAgICBpZiAoIW1fZnJlcXVlbnRFeGl0U2l0ZXMpIHsKQEAgLTc4LDcgKzgwLDcgQEAg
Ym9vbCBFeGl0UHJvZmlsZTo6aGFzRXhpdFNpdGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYs
IGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAg
IGZvciAodW5zaWduZWQgaSA9IG1fZnJlcXVlbnRFeGl0U2l0ZXMtPnNpemUoKTsgaS0tOykgewot
ICAgICAgICBpZiAobV9mcmVxdWVudEV4aXRTaXRlcy0+YXQoaSkgPT0gc2l0ZSkKKyAgICAgICAg
aWYgKHNpdGUuc3Vic3VtZXMobV9mcmVxdWVudEV4aXRTaXRlcy0+YXQoaSkpKQogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RGR0V4aXRQcm9maWxlLmgKaW5kZXggYWIxYTYwZDU4ZDFl
YjZjNmE2NWYyNGUwODU4M2U1OTViNjVjNDk5Zi4uMzRiOGE5Yjg4ZjYxZjA1OWJlZGJkYjMwMmZk
NTVjNmI3OGQwMjM3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0RGR0V4aXRQcm9maWxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RG
R0V4aXRQcm9maWxlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEx
LCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDcgQEAKIAog
I2luY2x1ZGUgIkNvbmN1cnJlbnRKSVRMb2NrLmgiCiAjaW5jbHVkZSAiRXhpdEtpbmQuaCIKKyNp
bmNsdWRlICJFeGl0aW5nSklUVHlwZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTM5LDE4ICs0
MCwyMiBAQCBwdWJsaWM6CiAgICAgRnJlcXVlbnRFeGl0U2l0ZSgpCiAgICAgICAgIDogbV9ieXRl
Y29kZU9mZnNldCgwKSAvLyAwID0gZW1wdHkgdmFsdWUKICAgICAgICAgLCBtX2tpbmQoRXhpdEtp
bmRVbnNldCkKKyAgICAgICAgLCBtX2ppdFR5cGUoRXhpdEZyb21Bbnl0aGluZykKICAgICB7CiAg
ICAgfQogICAgIAogICAgIEZyZXF1ZW50RXhpdFNpdGUoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFs
dWVUeXBlKQogICAgICAgICA6IG1fYnl0ZWNvZGVPZmZzZXQoMSkgLy8gMSA9IGRlbGV0ZWQgdmFs
dWUKICAgICAgICAgLCBtX2tpbmQoRXhpdEtpbmRVbnNldCkKKyAgICAgICAgLCBtX2ppdFR5cGUo
RXhpdEZyb21Bbnl0aGluZykKICAgICB7CiAgICAgfQogICAgIAotICAgIGV4cGxpY2l0IEZyZXF1
ZW50RXhpdFNpdGUodW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQsIEV4aXRLaW5kIGtpbmQpCisgICAg
ZXhwbGljaXQgRnJlcXVlbnRFeGl0U2l0ZSgKKyAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZz
ZXQsIEV4aXRLaW5kIGtpbmQsIEV4aXRpbmdKSVRUeXBlIGppdFR5cGUgPSBFeGl0RnJvbUFueXRo
aW5nKQogICAgICAgICA6IG1fYnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpCiAgICAgICAg
ICwgbV9raW5kKGtpbmQpCisgICAgICAgICwgbV9qaXRUeXBlKGppdFR5cGUpCiAgICAgewogICAg
ICAgICBpZiAobV9raW5kID09IEFyZ3VtZW50c0VzY2FwZWQpIHsKICAgICAgICAgICAgIC8vIENv
dW50IHRoaXMgb25lIGdsb2JhbGx5LiBJdCBkb2Vzbid0IG1hdHRlciB3aGVyZSBpbiB0aGUgY29k
ZSBibG9jayB0aGUgYXJndW1lbnRzIGV4Y2FwZWQ7CkBAIC02MSw5ICs2NiwxMCBAQCBwdWJsaWM6
CiAgICAgCiAgICAgLy8gVXNlIHRoaXMgY29uc3RydWN0b3IgaWYgeW91IHdpc2ggZm9yIHRoZSBl
eGl0IHNpdGUgdG8gYmUgY291bnRlZCBnbG9iYWxseSB3aXRoaW4gaXRzCiAgICAgLy8gY29kZSBi
bG9jay4KLSAgICBleHBsaWNpdCBGcmVxdWVudEV4aXRTaXRlKEV4aXRLaW5kIGtpbmQpCisgICAg
ZXhwbGljaXQgRnJlcXVlbnRFeGl0U2l0ZShFeGl0S2luZCBraW5kLCBFeGl0aW5nSklUVHlwZSBq
aXRUeXBlID0gRXhpdEZyb21Bbnl0aGluZykKICAgICAgICAgOiBtX2J5dGVjb2RlT2Zmc2V0KDAp
CiAgICAgICAgICwgbV9raW5kKGtpbmQpCisgICAgICAgICwgbV9qaXRUeXBlKGppdFR5cGUpCiAg
ICAgewogICAgIH0KICAgICAKQEAgLTc1LDE2ICs4MSwzNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IEZyZXF1ZW50RXhpdFNpdGUmIG90aGVyKSBjb25zdAogICAgIHsKICAg
ICAgICAgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXQgPT0gb3RoZXIubV9ieXRlY29kZU9mZnNldAot
ICAgICAgICAgICAgJiYgbV9raW5kID09IG90aGVyLm1fa2luZDsKKyAgICAgICAgICAgICYmIG1f
a2luZCA9PSBvdGhlci5tX2tpbmQKKyAgICAgICAgICAgICYmIG1faml0VHlwZSA9PSBvdGhlci5t
X2ppdFR5cGU7CisgICAgfQorICAgIAorICAgIGJvb2wgc3Vic3VtZXMoY29uc3QgRnJlcXVlbnRF
eGl0U2l0ZSYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICBpZiAobV9ieXRlY29kZU9mZnNl
dCAhPSBvdGhlci5tX2J5dGVjb2RlT2Zmc2V0KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBpZiAobV9raW5kICE9IG90aGVyLm1fa2luZCkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgaWYgKG1faml0VHlwZSA9PSBFeGl0RnJvbUFueXRoaW5nKQorICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBtX2ppdFR5cGUgPT0gb3RoZXIubV9q
aXRUeXBlOwogICAgIH0KICAgICAKICAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QKICAgICB7Ci0g
ICAgICAgIHJldHVybiBXVEY6OmludEhhc2gobV9ieXRlY29kZU9mZnNldCkgKyBtX2tpbmQ7Cisg
ICAgICAgIHJldHVybiBXVEY6OmludEhhc2gobV9ieXRlY29kZU9mZnNldCkgKyBtX2tpbmQgKyBt
X2ppdFR5cGUgKiA3OwogICAgIH0KICAgICAKICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNldCgp
IGNvbnN0IHsgcmV0dXJuIG1fYnl0ZWNvZGVPZmZzZXQ7IH0KICAgICBFeGl0S2luZCBraW5kKCkg
Y29uc3QgeyByZXR1cm4gbV9raW5kOyB9CisgICAgRXhpdGluZ0pJVFR5cGUgaml0VHlwZSgpIGNv
bnN0IHsgcmV0dXJuIG1faml0VHlwZTsgfQorICAgIAorICAgIEZyZXF1ZW50RXhpdFNpdGUgd2l0
aEpJVFR5cGUoRXhpdGluZ0pJVFR5cGUgaml0VHlwZSkgY29uc3QKKyAgICB7CisgICAgICAgIEZy
ZXF1ZW50RXhpdFNpdGUgcmVzdWx0ID0gKnRoaXM7CisgICAgICAgIHJlc3VsdC5tX2ppdFR5cGUg
PSBqaXRUeXBlOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KIAogICAgIGJvb2wgaXNI
YXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdAogICAgIHsKQEAgLTk0LDYgKzEyMCw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9ieXRlY29kZU9mZnNldDsKICAgICBFeGl0
S2luZCBtX2tpbmQ7CisgICAgRXhpdGluZ0pJVFR5cGUgbV9qaXRUeXBlOwogfTsKIAogc3RydWN0
IEZyZXF1ZW50RXhpdFNpdGVIYXNoIHsKQEAgLTE2Niw2ICsxOTMsMTAgQEAgcHVibGljOgogCiAg
ICAgYm9vbCBoYXNFeGl0U2l0ZShjb25zdCBGcmVxdWVudEV4aXRTaXRlJiBzaXRlKSBjb25zdAog
ICAgIHsKKyAgICAgICAgaWYgKHNpdGUuaml0VHlwZSgpID09IEV4aXRGcm9tQW55dGhpbmcpIHsK
KyAgICAgICAgICAgIHJldHVybiBoYXNFeGl0U2l0ZShzaXRlLndpdGhKSVRUeXBlKEV4aXRGcm9t
REZHKSkKKyAgICAgICAgICAgICAgICB8fCBoYXNFeGl0U2l0ZShzaXRlLndpdGhKSVRUeXBlKEV4
aXRGcm9tRlRMKSk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1fZnJlcXVlbnRFeGl0U2l0
ZXMuZmluZChzaXRlKSAhPSBtX2ZyZXF1ZW50RXhpdFNpdGVzLmVuZCgpOwogICAgIH0KICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgKaW5kZXggYTlmNmRmNmQ0
YzMxMTIxN2Q0MjRkNmIwNWU0ZjA3YTRmMzg3NWRlZS4uNmFjNzhhMjU0MzdiMDRhN2Q2NGU1MDFj
MjBjODVlNTUzNzQyNmI3OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0V4aXRLaW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRL
aW5kLmgKQEAgLTI4LDcgKzI4LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWVudW0gRXhpdEtp
bmQgeworZW51bSBFeGl0S2luZCA6IHVpbnQ4X3QgewogICAgIEV4aXRLaW5kVW5zZXQsCiAgICAg
QmFkVHlwZSwgLy8gV2UgZXhpdGVkIGJlY2F1c2UgYSB0eXBlIHByZWRpY3Rpb24gd2FzIHdyb25n
LgogICAgIEJhZEZ1bmN0aW9uLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSB3ZSBtYWRlIGFuIGluY29y
cmVjdCBhc3N1bXB0aW9uIGFib3V0IHdoYXQgZnVuY3Rpb24gd2Ugd291bGQgc2VlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRpbmdKSVRUeXBlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdGluZ0pJVFR5cGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mYmRjMjhlNDVkMTc2OTYxODJmOTQ0MDM4MDQ4NWJlNGU5Njc1N2M2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRpbmdKSVRUeXBlLmgKQEAg
LTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIEV4aXRpbmdKSVRUeXBlX2gKKyNkZWZpbmUgRXhpdGluZ0pJVFR5cGVfaAor
CisjaW5jbHVkZSAiSklUQ29kZS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworZW51bSBFeGl0aW5n
SklUVHlwZSA6IHVpbnQ4X3QgeworICAgIEV4aXRGcm9tQW55dGhpbmcsCisgICAgRXhpdEZyb21E
RkcsCisgICAgRXhpdEZyb21GVEwKK307CisKK2lubGluZSBFeGl0aW5nSklUVHlwZSBleGl0aW5n
SklUVHlwZUZvcihKSVRDb2RlOjpKSVRUeXBlIHR5cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7
CisgICAgY2FzZSBKSVRDb2RlOjpERkdKSVQ6CisgICAgICAgIHJldHVybiBFeGl0RnJvbURGRzsK
KyAgICBjYXNlIEpJVENvZGU6OkZUTEpJVDoKKyAgICAgICAgcmV0dXJuIEV4aXRGcm9tRlRMOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybiBFeGl0RnJvbUFueXRoaW5nOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2Ug
SlNDCisKKyNlbmRpZiAvLyBFeGl0aW5nSklUVHlwZV9oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAppbmRleCBmYmIzZGExYTUxNzFkYjJh
YTJmYzk4YjE2Mzc3OTYyNjYzYWZlMTQwLi5lZDg1ZDYyZDRmMmZjNTYwMGEzZDZlYzY3MDZhNWQx
MWIxMTI5YTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0
QnlJZFN0YXR1cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5
SWRTdGF0dXMuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw2ICszNCwxNCBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAorYm9vbCBHZXRCeUlkU3RhdHVzOjpoYXNFeGl0U2l0ZShjb25zdCBDb25jdXJyZW50SklU
TG9ja2VyJiBsb2NrZXIsIENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgdW5zaWduZWQgYnl0ZWNv
ZGVJbmRleCwgRXhpdGluZ0pJVFR5cGUgaml0VHlwZSkKK3sKKyAgICByZXR1cm4gcHJvZmlsZWRC
bG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJ
bmRleCwgQmFkQ2FjaGUsIGppdFR5cGUpKQorICAgICAgICB8fCBwcm9maWxlZEJsb2NrLT5oYXNF
eGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRD
YWNoZVdhdGNocG9pbnQsIGppdFR5cGUpKQorICAgICAgICB8fCBwcm9maWxlZEJsb2NrLT5oYXNF
eGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRX
ZWFrQ29uc3RhbnRDYWNoZSwgaml0VHlwZSkpCisgICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhh
c0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJh
ZFdlYWtDb25zdGFudENhY2hlV2F0Y2hwb2ludCwgaml0VHlwZSkpOworfQorCiBHZXRCeUlkU3Rh
dHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGcm9tTExJbnQoQ29kZUJsb2NrKiBwcm9maWxlZEJs
b2NrLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBTdHJpbmdJbXBsKiB1aWQpCiB7CiAgICAgVU5V
U0VEX1BBUkFNKHByb2ZpbGVkQmxvY2spOwpAQCAtMTIwLDEzICsxMjgsMjcgQEAgR2V0QnlJZFN0
YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywg
U3R1YkluZm9NYXAmIG0KIHsKICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihwcm9maWxl
ZEJsb2NrLT5tX2xvY2spOwogICAgIAotICAgIFVOVVNFRF9QQVJBTShwcm9maWxlZEJsb2NrKTsK
LSAgICBVTlVTRURfUEFSQU0oYnl0ZWNvZGVJbmRleCk7Ci0gICAgVU5VU0VEX1BBUkFNKHVpZCk7
CisgICAgR2V0QnlJZFN0YXR1cyByZXN1bHQgPSBjb21wdXRlRm9yU3R1YkluZm8oCisgICAgICAg
IGxvY2tlciwgcHJvZmlsZWRCbG9jaywgbWFwLmdldChDb2RlT3JpZ2luKGJ5dGVjb2RlSW5kZXgp
KSwgdWlkKTsKKyAgICAKKyAgICBpZiAoIXJlc3VsdC50YWtlc1Nsb3dQYXRoKCkKKyAgICAgICAg
JiYgKGhhc0V4aXRTaXRlKGxvY2tlciwgcHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCkKKyAg
ICAgICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmxpa2VseVRvVGFrZVNsb3dDYXNlKGJ5dGVjb2Rl
SW5kZXgpKSkKKyAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoVGFrZXNTbG93UGF0aCwgdHJ1
ZSk7CisKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQo
cHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCwgdWlkKTsKKyAgICAKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5m
bygKKyAgICBjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiBwcm9maWxlZEJs
b2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sCisgICAgU3RyaW5nSW1wbCogdWlkKQor
ewogI2lmIEVOQUJMRShKSVQpCi0gICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gbWFw
LmdldChDb2RlT3JpZ2luKGJ5dGVjb2RlSW5kZXgpKTsKICAgICBpZiAoIXN0dWJJbmZvIHx8ICFz
dHViSW5mby0+c2VlbikKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQocHJvZmlsZWRC
bG9jaywgYnl0ZWNvZGVJbmRleCwgdWlkKTsKKyAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMo
Tm9JbmZvcm1hdGlvbik7CiAgICAgCiAgICAgaWYgKHN0dWJJbmZvLT5yZXNldEJ5R0MpCiAgICAg
ICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIHRydWUpOwpAQCAtMTUyLDE2
ICsxNzQsMTIgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKENvZGVC
bG9jayogcHJvZmlsZWRCbG9jaywgU3R1YkluZm9NYXAmIG0KICAgICAgICAgICAgIHJldHVybiBH
ZXRCeUlkU3RhdHVzKE1ha2VzQ2FsbHMsIHRydWUpOwogICAgIH0KICAgICAKLSAgICAvLyBOZXh0
IGNoZWNrIGlmIGl0IHRha2VzIHNsb3cgY2FzZSwgaW4gd2hpY2ggY2FzZSB3ZSB3YW50IHRvIGJl
IGtpbmQgb2YgY2FyZWZ1bC4KLSAgICBpZiAocHJvZmlsZWRCbG9jay0+bGlrZWx5VG9UYWtlU2xv
d0Nhc2UoYnl0ZWNvZGVJbmRleCkpCi0gICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKFRha2Vz
U2xvd1BhdGgsIHRydWUpOwotICAgIAogICAgIC8vIEZpbmFsbHkgZmlndXJlIG91dCBpZiB3ZSBj
YW4gZGVyaXZlIGFuIGFjY2VzcyBzdHJhdGVneS4KICAgICBHZXRCeUlkU3RhdHVzIHJlc3VsdDsK
ICAgICByZXN1bHQubV93YXNTZWVuSW5KSVQgPSB0cnVlOyAvLyBUaGlzIGlzIGludGVyZXN0aW5n
IGZvciBieXRlY29kZSBkdW1waW5nIG9ubHkuCiAgICAgc3dpdGNoIChzdHViSW5mby0+YWNjZXNz
VHlwZSkgewogICAgIGNhc2UgYWNjZXNzX3Vuc2V0OgotICAgICAgICByZXR1cm4gY29tcHV0ZUZy
b21MTEludChwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4LCB1aWQpOworICAgICAgICByZXR1
cm4gR2V0QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9uKTsKICAgICAgICAgCiAgICAgY2FzZSBhY2Nl
c3NfZ2V0X2J5X2lkX3NlbGY6IHsKICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBzdHVi
SW5mby0+dS5nZXRCeUlkU2VsZi5iYXNlT2JqZWN0U3RydWN0dXJlLmdldCgpOwpAQCAtMjYyLDEx
ICsyODAsNDAgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKENvZGVC
bG9jayogcHJvZmlsZWRCbG9jaywgU3R1YkluZm9NYXAmIG0KICAgICAKICAgICByZXR1cm4gcmVz
dWx0OwogI2Vsc2UgLy8gRU5BQkxFKEpJVCkKLSAgICBVTlVTRURfUEFSQU0obWFwKTsKKyAgICBV
TlVTRURfUEFSQU0ocHJvZmlsZWRCbG9jayk7CisgICAgVU5VU0VEX1BBUkFNKHN0dWJJbmZvKTsK
KyAgICBVTlVTRURfUEFSQU0odWlkKTsKICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhOb0luZm9y
bWF0aW9uLCBmYWxzZSk7CiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIH0KIAorR2V0QnlJZFN0YXR1
cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKAorICAgIENvZGVCbG9jayogcHJvZmlsZWRCbG9j
aywgQ29kZUJsb2NrKiBkZmdCbG9jaywgU3R1YkluZm9NYXAmIGJhc2VsaW5lTWFwLAorICAgIFN0
dWJJbmZvTWFwJiBkZmdNYXAsIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgU3RyaW5nSW1wbCogdWlk
KQoreworICAgIGlmIChkZmdCbG9jaykgeworICAgICAgICBHZXRCeUlkU3RhdHVzIHJlc3VsdDsK
KyAgICAgICAgeworICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoZGZnQmxv
Y2stPm1fbG9jayk7CisgICAgICAgICAgICByZXN1bHQgPSBjb21wdXRlRm9yU3R1YkluZm8obG9j
a2VyLCBkZmdCbG9jaywgZGZnTWFwLmdldChjb2RlT3JpZ2luKSwgdWlkKTsKKyAgICAgICAgfQor
ICAgIAorICAgICAgICBpZiAocmVzdWx0LnRha2VzU2xvd1BhdGgoKSkKKyAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRM
b2NrZXIgbG9ja2VyKHByb2ZpbGVkQmxvY2stPm1fbG9jayk7CisgICAgICAgICAgICBpZiAoaGFz
RXhpdFNpdGUobG9ja2VyLCBwcm9maWxlZEJsb2NrLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgs
IEV4aXRGcm9tRlRMKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhUYWtl
c1Nsb3dQYXRoLCB0cnVlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHJlc3Vs
dC5pc1NldCgpKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICByZXR1
cm4gY29tcHV0ZUZvcihwcm9maWxlZEJsb2NrLCBiYXNlbGluZU1hcCwgY29kZU9yaWdpbi5ieXRl
Y29kZUluZGV4LCB1aWQpOworfQorCiBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1
dGVGb3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgU3RyaW5nSW1wbCogdWlkKQogewog
ICAgIC8vIEZvciBub3cgd2Ugb25seSBoYW5kbGUgdGhlIHN1cGVyIHNpbXBsZSBzZWxmIGFjY2Vz
cyBjYXNlLiBXZSBjb3VsZCBoYW5kbGUgdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0dldEJ5SWRTdGF0dXMuaAppbmRleCBhMWU4MDFjY2E4ODUwODg5MzdkMDYyNmViOWVh
MTZmNWNkMWM4MmM0Li5lMDIwOTk0MWUxYTBkNTdmYzViM2QwM2IxNjVmMzA2ZDczMTViMTE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI2LDYgKzI2LDkgQEAKICNpZm5kZWYgR2V0QnlJZFN0YXR1c19oCiAjZGVmaW5l
IEdldEJ5SWRTdGF0dXNfaAogCisjaW5jbHVkZSAiQ29kZU9yaWdpbi5oIgorI2luY2x1ZGUgIkNv
bmN1cnJlbnRKSVRMb2NrLmgiCisjaW5jbHVkZSAiRXhpdGluZ0pJVFR5cGUuaCIKICNpbmNsdWRl
ICJJbnRlbmRlZFN0cnVjdHVyZUNoYWluLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlPZmZzZXQuaCIK
ICNpbmNsdWRlICJTdHJ1Y3R1cmVTZXQuaCIKQEAgLTc0LDYgKzc3LDggQEAgcHVibGljOgogICAg
IHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2NrKiwgU3R1YkluZm9NYXAm
LCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBTdHJpbmdJbXBsKiB1aWQpOwogICAgIHN0YXRpYyBH
ZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoVk0mLCBTdHJ1Y3R1cmUqLCBTdHJpbmdJbXBsKiB1aWQp
OwogICAgIAorICAgIHN0YXRpYyBHZXRCeUlkU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2NrKiBi
YXNlbGluZUJsb2NrLCBDb2RlQmxvY2sqIGRmZ0Jsb2NrLCBTdHViSW5mb01hcCYgYmFzZWxpbmVN
YXAsIFN0dWJJbmZvTWFwJiBkZmdNYXAsIENvZGVPcmlnaW4sIFN0cmluZ0ltcGwqIHVpZCk7Cisg
ICAgCiAgICAgU3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9CiAgICAgCiAg
ICAgYm9vbCBpc1NldCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUgIT0gTm9JbmZvcm1hdGlvbjsg
fQpAQCAtOTAsNiArOTUsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCB3YXNTZWVuSW5KSVQoKSBjb25z
dCB7IHJldHVybiBtX3dhc1NlZW5JbkpJVDsgfQogICAgIAogcHJpdmF0ZToKKyAgICBzdGF0aWMg
Ym9vbCBoYXNFeGl0U2l0ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwg
dW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgRXhpdGluZ0pJVFR5cGUgPSBFeGl0RnJvbUFueXRoaW5n
KTsKKyAgICBzdGF0aWMgR2V0QnlJZFN0YXR1cyBjb21wdXRlRm9yU3R1YkluZm8oY29uc3QgQ29u
Y3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayosIFN0cnVjdHVyZVN0dWJJbmZvKiwgU3RyaW5n
SW1wbCogdWlkKTsKICAgICBzdGF0aWMgdm9pZCBjb21wdXRlRm9yQ2hhaW4oR2V0QnlJZFN0YXR1
cyYgcmVzdWx0LCBDb2RlQmxvY2sqLCBTdHJpbmdJbXBsKiB1aWQpOwogICAgIHN0YXRpYyBHZXRC
eUlkU3RhdHVzIGNvbXB1dGVGcm9tTExJbnQoQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJ
bmRleCwgU3RyaW5nSW1wbCogdWlkKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Qcm9maWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJvZmlsZWRDb2RlQmxvY2tKZXR0
aXNvbmluZ1dhdGNocG9pbnQuY3BwCmluZGV4IGVkZjhlMjI4ZDZkMWM5YWQ3MTU3YWJkNzJhODVk
YTllZGY3OWVjYTcuLjAyNmFhM2RhYjgzNzdmNzIyMzJjNzQxOTI3MzUzMjVhOTYzZWM5OWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9maWxlZENvZGVCbG9j
a0pldHRpc29uaW5nV2F0Y2hwb2ludC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50LmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDksNyAr
NDksOSBAQCB2b2lkIFByb2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50OjpmaXJl
SW50ZXJuYWwoKQogICAgIAogICAgIGlmIChzb3VyY2VCYXNlbGluZUNvZGVCbG9jaykgewogICAg
ICAgICBzb3VyY2VCYXNlbGluZUNvZGVCbG9jay0+YWRkRnJlcXVlbnRFeGl0U2l0ZSgKLSAgICAg
ICAgICAgIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShtX2NvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCwg
bV9leGl0S2luZCkpOworICAgICAgICAgICAgREZHOjpGcmVxdWVudEV4aXRTaXRlKAorICAgICAg
ICAgICAgICAgIG1fY29kZU9yaWdpbi5ieXRlY29kZUluZGV4LCBtX2V4aXRLaW5kLAorICAgICAg
ICAgICAgICAgIGV4aXRpbmdKSVRUeXBlRm9yKG1fY29kZUJsb2NrLT5qaXRUeXBlKCkpKSk7CiAg
ICAgfQogICAgIAogICAgIG1fY29kZUJsb2NrLT5qZXR0aXNvbihDb3VudFJlb3B0aW1pemF0aW9u
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3Rh
dHVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNw
cAppbmRleCAxN2NmNzA4OTczM2YwZjBhYWVkMWUwMzY0YzVmMzk4OWNiODcxNDA3Li4xMTYwMTMw
OTU3MGViMDBhYTI5MTdlODk4NmNlODVjMDViMjM4OGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw2ICsz
NSwxNCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorYm9vbCBQdXRCeUlkU3RhdHVzOjpoYXNFeGl0
U2l0ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIENvZGVCbG9jayogcHJvZmls
ZWRCbG9jaywgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgRXhpdGluZ0pJVFR5cGUgZXhpdFR5cGUp
Cit7CisgICAgcmV0dXJuIHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpG
cmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlLCBleGl0VHlwZSkpCisgICAg
ICAgIHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4
aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlV2F0Y2hwb2ludCwgZXhpdFR5cGUpKQorICAg
ICAgICB8fCBwcm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRF
eGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRXZWFrQ29uc3RhbnRDYWNoZSwgZXhpdFR5cGUpKQor
ICAgICAgICB8fCBwcm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVl
bnRFeGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRXZWFrQ29uc3RhbnRDYWNoZVdhdGNocG9pbnQs
IGV4aXRUeXBlKSk7Cit9CisKIFB1dEJ5SWRTdGF0dXMgUHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZy
b21MTEludChDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgs
IFN0cmluZ0ltcGwqIHVpZCkKIHsKICAgICBVTlVTRURfUEFSQU0ocHJvZmlsZWRCbG9jayk7CkBA
IC04OSwxMyArOTcsMjcgQEAgUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRlRm9y
KENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3R1YkluZm9NYXAmIG0KICAgICBVTlVTRURfUEFS
QU0oYnl0ZWNvZGVJbmRleCk7CiAgICAgVU5VU0VEX1BBUkFNKHVpZCk7CiAjaWYgRU5BQkxFKEpJ
VCkKLSAgICBpZiAocHJvZmlsZWRCbG9jay0+bGlrZWx5VG9UYWtlU2xvd0Nhc2UoYnl0ZWNvZGVJ
bmRleCkpCisgICAgaWYgKHByb2ZpbGVkQmxvY2stPmxpa2VseVRvVGFrZVNsb3dDYXNlKGJ5dGVj
b2RlSW5kZXgpCisgICAgICAgIHx8IGhhc0V4aXRTaXRlKGxvY2tlciwgcHJvZmlsZWRCbG9jaywg
Ynl0ZWNvZGVJbmRleCkpCiAgICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKFRha2VzU2xvd1Bh
dGgsIDAsIDAsIDAsIGludmFsaWRPZmZzZXQpOwogICAgIAogICAgIFN0cnVjdHVyZVN0dWJJbmZv
KiBzdHViSW5mbyA9IG1hcC5nZXQoQ29kZU9yaWdpbihieXRlY29kZUluZGV4KSk7Ci0gICAgaWYg
KCFzdHViSW5mbyB8fCAhc3R1YkluZm8tPnNlZW4pCisgICAgUHV0QnlJZFN0YXR1cyByZXN1bHQg
PSBjb21wdXRlRm9yU3R1YkluZm8obG9ja2VyLCBwcm9maWxlZEJsb2NrLCBzdHViSW5mbywgdWlk
KTsKKyAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQocHJv
ZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCwgdWlkKTsKICAgICAKKyAgICByZXR1cm4gcmVzdWx0
OworI2Vsc2UgLy8gRU5BQkxFKEpJVCkKKyAgICBVTlVTRURfUEFSQU0obWFwKTsKKyAgICByZXR1
cm4gUHV0QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9uLCAwLCAwLCAwLCBpbnZhbGlkT2Zmc2V0KTsK
KyNlbmRpZiAvLyBFTkFCTEUoSklUKQorfQorCitQdXRCeUlkU3RhdHVzIFB1dEJ5SWRTdGF0dXM6
OmNvbXB1dGVGb3JTdHViSW5mbyhjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2Nr
KiBwcm9maWxlZEJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIFN0cmluZ0ltcGwq
IHVpZCkKK3sKKyAgICBpZiAoIXN0dWJJbmZvIHx8ICFzdHViSW5mby0+c2VlbikKKyAgICAgICAg
cmV0dXJuIFB1dEJ5SWRTdGF0dXMoKTsKKyAgICAKICAgICBpZiAoc3R1YkluZm8tPnJlc2V0QnlH
QykKICAgICAgICAgcmV0dXJuIFB1dEJ5SWRTdGF0dXMoVGFrZXNTbG93UGF0aCwgMCwgMCwgMCwg
aW52YWxpZE9mZnNldCk7CiAKQEAgLTE0MiwxMCArMTY0LDI4IEBAIFB1dEJ5SWRTdGF0dXMgUHV0
QnlJZFN0YXR1czo6Y29tcHV0ZUZvcihDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0dWJJbmZv
TWFwJiBtCiAgICAgICAgIC8vIHdlIGNvdWxkIGRvIGFib3V0IGl0LgogICAgICAgICByZXR1cm4g
UHV0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoLCAwLCAwLCAwLCBpbnZhbGlkT2Zmc2V0KTsKICAg
ICB9Ci0jZWxzZSAvLyBFTkFCTEUoSklUKQotICAgIFVOVVNFRF9QQVJBTShtYXApOwotICAgIHJl
dHVybiBQdXRCeUlkU3RhdHVzKE5vSW5mb3JtYXRpb24sIDAsIDAsIDAsIGludmFsaWRPZmZzZXQp
OwotI2VuZGlmIC8vIEVOQUJMRShKSVQpCit9CisKK1B1dEJ5SWRTdGF0dXMgUHV0QnlJZFN0YXR1
czo6Y29tcHV0ZUZvcihDb2RlQmxvY2sqIGJhc2VsaW5lQmxvY2ssIENvZGVCbG9jayogZGZnQmxv
Y2ssIFN0dWJJbmZvTWFwJiBiYXNlbGluZU1hcCwgU3R1YkluZm9NYXAmIGRmZ01hcCwgQ29kZU9y
aWdpbiBjb2RlT3JpZ2luLCBTdHJpbmdJbXBsKiB1aWQpCit7CisgICAgaWYgKGRmZ0Jsb2NrKSB7
CisgICAgICAgIHsKKyAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGJhc2Vs
aW5lQmxvY2stPm1fbG9jayk7CisgICAgICAgICAgICBpZiAoaGFzRXhpdFNpdGUobG9ja2VyLCBi
YXNlbGluZUJsb2NrLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgsIEV4aXRGcm9tRlRMKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gUHV0QnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoKTsKKyAgICAg
ICAgfQorICAgICAgICAgICAgCisgICAgICAgIFB1dEJ5SWRTdGF0dXMgcmVzdWx0OworICAgICAg
ICB7CisgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihkZmdCbG9jay0+bV9s
b2NrKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mbyhsb2NrZXIsIGRm
Z0Jsb2NrLCBkZmdNYXAuZ2V0KGNvZGVPcmlnaW4pLCB1aWQpOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICBpZiAocmVzdWx0LmlzU2V0KCkpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgIH0KKyAgICAKKyAgICByZXR1cm4gY29tcHV0ZUZvcihiYXNlbGluZUJsb2NrLCBiYXNl
bGluZU1hcCwgY29kZU9yaWdpbi5ieXRlY29kZUluZGV4LCB1aWQpOwogfQogCiBQdXRCeUlkU3Rh
dHVzIFB1dEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgU3RyaW5nSW1wbCogdWlkLCBib29sIGlz
RGlyZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5
SWRTdGF0dXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVz
LmgKaW5kZXggYzBhMWJjMzVjYmYwMmM3YzU5ZGQwODViN2Y2ZDBjNWQ0M2QyNzcxZi4uMWZhNjli
NmYyNDc5MzlmNDY3ZTA2MDk0NWJhYmIzZWFiYTY4OWYzNiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZu
ZGVmIFB1dEJ5SWRTdGF0dXNfaAogI2RlZmluZSBQdXRCeUlkU3RhdHVzX2gKIAorI2luY2x1ZGUg
IkV4aXRpbmdKSVRUeXBlLmgiCiAjaW5jbHVkZSAiSW50ZW5kZWRTdHJ1Y3R1cmVDaGFpbi5oIgog
I2luY2x1ZGUgIlByb3BlcnR5T2Zmc2V0LmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlU3R1YkluZm8u
aCIKQEAgLTk0LDYgKzk1LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNv
bXB1dGVGb3IoQ29kZUJsb2NrKiwgU3R1YkluZm9NYXAmLCB1bnNpZ25lZCBieXRlY29kZUluZGV4
LCBTdHJpbmdJbXBsKiB1aWQpOwogICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVGb3Io
Vk0mLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFN0cmluZ0ltcGwqIHVpZCwgYm9vbCBp
c0RpcmVjdCk7CiAgICAgCisgICAgc3RhdGljIFB1dEJ5SWRTdGF0dXMgY29tcHV0ZUZvcihDb2Rl
QmxvY2sqIGJhc2VsaW5lQmxvY2ssIENvZGVCbG9jayogZGZnQmxvY2ssIFN0dWJJbmZvTWFwJiBi
YXNlbGluZU1hcCwgU3R1YkluZm9NYXAmIGRmZ01hcCwgQ29kZU9yaWdpbiwgU3RyaW5nSW1wbCog
dWlkKTsKKyAgICAKICAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0K
ICAgICAKICAgICBib29sIGlzU2V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZSAhPSBOb0luZm9y
bWF0aW9uOyB9CkBAIC0xMDgsNiArMTExLDggQEAgcHVibGljOgogICAgIFByb3BlcnR5T2Zmc2V0
IG9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0OyB9CiAgICAgCiBwcml2YXRlOgorICAg
IHN0YXRpYyBib29sIGhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2Rl
QmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4LCBFeGl0aW5nSklUVHlwZSA9IEV4aXRGcm9t
QW55dGhpbmcpOworICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVGb3JTdHViSW5mbyhj
b25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgU3RydWN0dXJlU3R1YkluZm8q
LCBTdHJpbmdJbXBsKiB1aWQpOwogICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1dGVGcm9t
TExJbnQoQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgU3RyaW5nSW1wbCogdWlk
KTsKICAgICAKICAgICBTdGF0ZSBtX3N0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVNldC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1N0cnVjdHVyZVNldC5oCmluZGV4IDRjZGNkMDFjYmUzZDk2ZjYzZDdiN2VkY2YyOTA5
M2QwOGY0YTY5NzYuLmY4OTY4NGY3MTFjMzg4OWQ1NjQyZmUyY2IwMDA3MzRkYzU3ZjAzYWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTZXQuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU2V0LmgKQEAgLTQ1
LDYgKzQ1LDcgQEAgcHVibGljOgogICAgIAogICAgIFN0cnVjdHVyZVNldChTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKICAgICB7CisgICAgICAgIEFTU0VSVChzdHJ1Y3R1cmUpOwogICAgICAgICBtX3N0
cnVjdHVyZXMuYXBwZW5kKHN0cnVjdHVyZSk7CiAgICAgfQogICAgIApAQCAtNTUsNiArNTYsNyBA
QCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBhZGQoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAg
eworICAgICAgICBBU1NFUlQoc3RydWN0dXJlKTsKICAgICAgICAgQVNTRVJUKCFjb250YWlucyhz
dHJ1Y3R1cmUpKTsKICAgICAgICAgbV9zdHJ1Y3R1cmVzLmFwcGVuZChzdHJ1Y3R1cmUpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVT
dHViSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJ
bmZvLmgKaW5kZXggNTQ2M2YzZTk1NmVjMGZkOTM1OTg1MDJhNGFiOTIxMjYwMmM0MDc5YS4uOTIx
N2NiODAwNGU4NjMxMDRjNmJjMWQ5NDIwZjc0MGEwYmQ4OWRiMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMiwgMjAxMywgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTIxNiw3ICsyMTYsNiBAQCBzdHJ1Y3QgU3RydWN0dXJlU3R1YkluZm8gewog
CiAgICAgc3RydWN0IHsKICAgICAgICAgaW50OF90IHJlZ2lzdGVyc0ZsdXNoZWQ7Ci0gICAgICAg
IGludDhfdCBjYWxsRnJhbWVSZWdpc3RlcjsKICAgICAgICAgaW50OF90IGJhc2VHUFI7CiAjaWYg
VVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAgaW50OF90IHZhbHVlVGFnR1BSOwpAQCAtMjkwLDcg
KzI4OSw3IEBAIGlubGluZSBDb2RlT3JpZ2luIGdldFN0cnVjdHVyZVN0dWJJbmZvQ29kZU9yaWdp
bihTdHJ1Y3R1cmVTdHViSW5mbyYgc3RydWN0dXJlU3R1CiAgICAgcmV0dXJuIHN0cnVjdHVyZVN0
dWJJbmZvLmNvZGVPcmlnaW47CiB9CiAKLXR5cGVkZWYgSGFzaE1hcDxDb2RlT3JpZ2luLCBTdHJ1
Y3R1cmVTdHViSW5mbyo+IFN0dWJJbmZvTWFwOwordHlwZWRlZiBIYXNoTWFwPENvZGVPcmlnaW4s
IFN0cnVjdHVyZVN0dWJJbmZvKiwgQ29kZU9yaWdpbkFwcHJveGltYXRlSGFzaD4gU3R1YkluZm9N
YXA7CiAKICNlbHNlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9WYWx1ZVJlY292ZXJ5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVS
ZWNvdmVyeS5oCmluZGV4IDNhZjJjMzQwOTYzMWVmODQwYWRkZGYzZDk4MjliMTBkMWZkMTViNzAu
LjQwMzEyNTI1ZGQyN2MzNmRlY2RlNzZjNTJiNzQ2YTgyMDIzNzAzZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaApAQCAtMjMwLDYgKzIzMCwy
NyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBWaXJ0dWFsUmVnaXN0ZXIobV9zb3VyY2Uudmly
dHVhbFJlZyk7CiAgICAgfQogICAgIAorICAgIFZhbHVlUmVjb3Zlcnkgd2l0aExvY2Fsc09mZnNl
dChpbnQgb2Zmc2V0KSBjb25zdAorICAgIHsKKyAgICAgICAgc3dpdGNoIChtX3RlY2huaXF1ZSkg
eworICAgICAgICBjYXNlIERpc3BsYWNlZEluSlNTdGFjazoKKyAgICAgICAgY2FzZSBJbnQzMkRp
c3BsYWNlZEluSlNTdGFjazoKKyAgICAgICAgY2FzZSBEb3VibGVEaXNwbGFjZWRJbkpTU3RhY2s6
CisgICAgICAgIGNhc2UgQ2VsbERpc3BsYWNlZEluSlNTdGFjazoKKyAgICAgICAgY2FzZSBCb29s
ZWFuRGlzcGxhY2VkSW5KU1N0YWNrOgorICAgICAgICBjYXNlIEludDUyRGlzcGxhY2VkSW5KU1N0
YWNrOgorICAgICAgICBjYXNlIFN0cmljdEludDUyRGlzcGxhY2VkSW5KU1N0YWNrOiB7CisgICAg
ICAgICAgICBWYWx1ZVJlY292ZXJ5IHJlc3VsdDsKKyAgICAgICAgICAgIHJlc3VsdC5tX3RlY2hu
aXF1ZSA9IG1fdGVjaG5pcXVlOworICAgICAgICAgICAgcmVzdWx0Lm1fc291cmNlLnZpcnR1YWxS
ZWcgPSBtX3NvdXJjZS52aXJ0dWFsUmVnICsgb2Zmc2V0OworICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgIH0KKyAgICB9CisgICAgCiAgICAgSlNWYWx1ZSBj
b25zdGFudCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV90ZWNobmlxdWUgPT0gQ29u
c3RhbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZpcnR1
YWxSZWdpc3Rlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZpcnR1YWxSZWdp
c3Rlci5oCmluZGV4IGM2M2FlZTg1ZmRmODAwMDNjOGQ5ZWI2ZGUzMGI3M2I0OGE2Y2ExODUuLjYx
YjA0YjViYzgxZjAxOTFjODQzMjBmYzRhMmQ5ZjVlOGY1NGVhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WaXJ0dWFsUmVnaXN0ZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmlydHVhbFJlZ2lzdGVyLmgKQEAgLTY1LDYgKzY1LDcg
QEAgcHVibGljOgogICAgIGludCB0b0FyZ3VtZW50KCkgY29uc3QgeyBBU1NFUlQoaXNBcmd1bWVu
dCgpKTsgcmV0dXJuIG9wZXJhbmRUb0FyZ3VtZW50KG1fdmlydHVhbFJlZ2lzdGVyKTsgfQogICAg
IGludCB0b0NvbnN0YW50SW5kZXgoKSBjb25zdCB7IEFTU0VSVChpc0NvbnN0YW50KCkpOyByZXR1
cm4gbV92aXJ0dWFsUmVnaXN0ZXIgLSBzX2ZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4OyB9CiAg
ICAgaW50IG9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlydHVhbFJlZ2lzdGVyOyB9CisgICAg
aW50IG9mZnNldEluQnl0ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZpcnR1YWxSZWdpc3RlciAqIHNp
emVvZihSZWdpc3Rlcik7IH0KIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBWaXJ0dWFsUmVn
aXN0ZXIgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1fdmlydHVhbFJlZ2lzdGVyID09IG90aGVyLm1f
dmlydHVhbFJlZ2lzdGVyOyB9CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFZpcnR1YWxSZWdp
c3RlciBvdGhlcikgY29uc3QgeyByZXR1cm4gbV92aXJ0dWFsUmVnaXN0ZXIgIT0gb3RoZXIubV92
aXJ0dWFsUmVnaXN0ZXI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCmluZGV4IDkwY2VlOGMyMzY1OGEyNGMyY2RjOGVmMWUw
NWMyZGViYmQ1NzU3ZjguLjU0MDczMGJhM2E2MmJmMjcxYWZmMWEyYWJmYTU1ODI0N2YwMjVkNGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxG
cmFtZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2Fs
bEZyYW1lLmNwcApAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNp
bmNsdWRlICJQYXJzZXIuaCIKICNpbmNsdWRlICJTdGFja1Zpc2l0b3IuaCIKLSNpbmNsdWRlICJW
TUVudHJ5U2NvcGUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQXJyYXlNb2RlLmNwcAppbmRleCBlZjliMWM0OTRhYmEzODA0NWM5ZDlkZWI1MGMw
OTI5NTdiMjM0ZTI1Li43MzY4ZWFlYjY5YWNlNGFmZWM2ZjQzNDRhN2ZhMTU4Y2VmNDJjMWVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwCkBAIC0xMzEsNyAr
MTMxLDEwIEBAIEFycmF5TW9kZSBBcnJheU1vZGU6OmZyb21PYnNlcnZlZChjb25zdCBDb25jdXJy
ZW50SklUTG9ja2VyJiBsb2NrZXIsIEFycmF5UHJvZmlsCiAgICAgfQogfQogCi1BcnJheU1vZGUg
QXJyYXlNb2RlOjpyZWZpbmUoU3BlY3VsYXRlZFR5cGUgYmFzZSwgU3BlY3VsYXRlZFR5cGUgaW5k
ZXgsIFNwZWN1bGF0ZWRUeXBlIHZhbHVlLCBOb2RlRmxhZ3MgZmxhZ3MpIGNvbnN0CitBcnJheU1v
ZGUgQXJyYXlNb2RlOjpyZWZpbmUoCisgICAgR3JhcGgmIGdyYXBoLCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sCisgICAgU3BlY3VsYXRlZFR5cGUgYmFzZSwgU3BlY3VsYXRlZFR5cGUgaW5kZXgsIFNw
ZWN1bGF0ZWRUeXBlIHZhbHVlLAorICAgIE5vZGVGbGFncyBmbGFncykgY29uc3QKIHsKICAgICBp
ZiAoIWJhc2UgfHwgIWluZGV4KSB7CiAgICAgICAgIC8vIEl0IGNhbiBiZSB0aGF0IHdlIGhhZCBh
IGxlZ2l0aW1hdGUgYXJyYXlNb2RlIGJ1dCBubyBpbmNvbWluZyBwcmVkaWN0aW9ucy4gVGhhdCds
bApAQCAtMTg2LDcgKzE4OSw3IEBAIEFycmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZShTcGVjdWxh
dGVkVHlwZSBiYXNlLCBTcGVjdWxhdGVkVHlwZSBpbmRleCwgU3BlY3VsYXRlCiAgICAgICAgICAg
ICByZXR1cm4gd2l0aENvbnZlcnNpb24oQXJyYXk6OlJhZ2VDb252ZXJ0KTsKICAgICAgICAgcmV0
dXJuICp0aGlzOwogICAgICAgICAKLSAgICBjYXNlIEFycmF5OjpTZWxlY3RVc2luZ1ByZWRpY3Rp
b25zOgorICAgIGNhc2UgQXJyYXk6OlNlbGVjdFVzaW5nUHJlZGljdGlvbnM6IHsKICAgICAgICAg
YmFzZSAmPSB+U3BlY090aGVyOwogICAgICAgICAKICAgICAgICAgaWYgKGlzU3RyaW5nU3BlY3Vs
YXRpb24oYmFzZSkpCkBAIC0xOTUsMzQgKzE5OCw0MSBAQCBBcnJheU1vZGUgQXJyYXlNb2RlOjpy
ZWZpbmUoU3BlY3VsYXRlZFR5cGUgYmFzZSwgU3BlY3VsYXRlZFR5cGUgaW5kZXgsIFNwZWN1bGF0
ZQogICAgICAgICBpZiAoaXNBcmd1bWVudHNTcGVjdWxhdGlvbihiYXNlKSkKICAgICAgICAgICAg
IHJldHVybiB3aXRoVHlwZShBcnJheTo6QXJndW1lbnRzKTsKICAgICAgICAgCisgICAgICAgIEFy
cmF5TW9kZSByZXN1bHQ7CisgICAgICAgIGlmIChncmFwaC5oYXNFeGl0U2l0ZShjb2RlT3JpZ2lu
LCBPdXRPZkJvdW5kcykpCisgICAgICAgICAgICByZXN1bHQgPSB3aXRoU3BlY3VsYXRpb24oQXJy
YXk6Ok91dE9mQm91bmRzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gKnRo
aXM7CisgICAgICAgIAogICAgICAgICBpZiAoaXNJbnQ4QXJyYXlTcGVjdWxhdGlvbihiYXNlKSkK
LSAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZShBcnJheTo6SW50OEFycmF5KTsKKyAgICAgICAg
ICAgIHJldHVybiByZXN1bHQud2l0aFR5cGUoQXJyYXk6OkludDhBcnJheSk7CiAgICAgICAgIAog
ICAgICAgICBpZiAoaXNJbnQxNkFycmF5U3BlY3VsYXRpb24oYmFzZSkpCi0gICAgICAgICAgICBy
ZXR1cm4gd2l0aFR5cGUoQXJyYXk6OkludDE2QXJyYXkpOworICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdC53aXRoVHlwZShBcnJheTo6SW50MTZBcnJheSk7CiAgICAgICAgIAogICAgICAgICBpZiAo
aXNJbnQzMkFycmF5U3BlY3VsYXRpb24oYmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5
cGUoQXJyYXk6OkludDMyQXJyYXkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlw
ZShBcnJheTo6SW50MzJBcnJheSk7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNVaW50OEFycmF5
U3BlY3VsYXRpb24oYmFzZSkpCi0gICAgICAgICAgICByZXR1cm4gd2l0aFR5cGUoQXJyYXk6OlVp
bnQ4QXJyYXkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC53aXRoVHlwZShBcnJheTo6VWlu
dDhBcnJheSk7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNVaW50OENsYW1wZWRBcnJheVNwZWN1
bGF0aW9uKGJhc2UpKQotICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpVaW50OENs
YW1wZWRBcnJheSk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpV
aW50OENsYW1wZWRBcnJheSk7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNVaW50MTZBcnJheVNw
ZWN1bGF0aW9uKGJhc2UpKQotICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpVaW50
MTZBcnJheSk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpVaW50
MTZBcnJheSk7CiAgICAgICAgIAogICAgICAgICBpZiAoaXNVaW50MzJBcnJheVNwZWN1bGF0aW9u
KGJhc2UpKQotICAgICAgICAgICAgcmV0dXJuIHdpdGhUeXBlKEFycmF5OjpVaW50MzJBcnJheSk7
CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LndpdGhUeXBlKEFycmF5OjpVaW50MzJBcnJheSk7
CiAgICAgICAgIAogICAgICAgICBpZiAoaXNGbG9hdDMyQXJyYXlTcGVjdWxhdGlvbihiYXNlKSkK
LSAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZShBcnJheTo6RmxvYXQzMkFycmF5KTsKKyAgICAg
ICAgICAgIHJldHVybiByZXN1bHQud2l0aFR5cGUoQXJyYXk6OkZsb2F0MzJBcnJheSk7CiAgICAg
ICAgIAogICAgICAgICBpZiAoaXNGbG9hdDY0QXJyYXlTcGVjdWxhdGlvbihiYXNlKSkKLSAgICAg
ICAgICAgIHJldHVybiB3aXRoVHlwZShBcnJheTo6RmxvYXQ2NEFycmF5KTsKKyAgICAgICAgICAg
IHJldHVybiByZXN1bHQud2l0aFR5cGUoQXJyYXk6OkZsb2F0NjRBcnJheSk7CiAKICAgICAgICAg
cmV0dXJuIEFycmF5TW9kZShBcnJheTo6R2VuZXJpYyk7CisgICAgfQogCiAgICAgZGVmYXVsdDoK
ICAgICAgICAgcmV0dXJuICp0aGlzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBcnJheU1vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlN
b2RlLmgKaW5kZXggY2JiODdiZDkzNTBlZmMzZGRlY2MxMDIzYTRjZjI1YzAzZmYyYTFmYi4uMmJh
NmIwNmNhOGQ4MmU3YTY1NzE3OTdkOTFlMTU3Y2M1YmI0OWQxYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0FycmF5TW9kZS5oCkBAIC0yMTEsNyArMjExLDcgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gQXJyYXlNb2RlKHR5cGUsIGFycmF5Q2xhc3MoKSwgc3BlY3VsYXRpb24oKSwg
Y29udmVyc2lvbik7CiAgICAgfQogICAgIAotICAgIEFycmF5TW9kZSByZWZpbmUoU3BlY3VsYXRl
ZFR5cGUgYmFzZSwgU3BlY3VsYXRlZFR5cGUgaW5kZXgsIFNwZWN1bGF0ZWRUeXBlIHZhbHVlID0g
U3BlY05vbmUsIE5vZGVGbGFncyA9IDApIGNvbnN0OworICAgIEFycmF5TW9kZSByZWZpbmUoR3Jh
cGgmLCBDb2RlT3JpZ2luLCBTcGVjdWxhdGVkVHlwZSBiYXNlLCBTcGVjdWxhdGVkVHlwZSBpbmRl
eCwgU3BlY3VsYXRlZFR5cGUgdmFsdWUgPSBTcGVjTm9uZSwgTm9kZUZsYWdzID0gMCkgY29uc3Q7
CiAgICAgCiAgICAgYm9vbCBhbHJlYWR5Q2hlY2tlZChHcmFwaCYsIE5vZGUqLCBBYnN0cmFjdFZh
bHVlJikgY29uc3Q7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCmluZGV4IGM1NzJlN2EzZTBmYjJiNzcxNjY1ZTNmOThlMmJjYWYxNTVi
OGNiNWIuLmEyYTQzMWU0MTQ0OTg2ZTRjMDNlNDBjOGZhZGI1YmQ2ZWNhYzg2NjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC00MCw2
ICs0MCw3IEBACiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIlByZWNpc2VKdW1w
VGFyZ2V0cy5oIgogI2luY2x1ZGUgIlB1dEJ5SWRTdGF0dXMuaCIKKyNpbmNsdWRlICJTdGFja0Fs
aWdubWVudC5oIgogI2luY2x1ZGUgIlN0cmluZ0NvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSA8d3Rm
L0NvbW1hUHJpbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC0xNjAsNyArMTYx
LDggQEAgcHJpdmF0ZToKICAgICBib29sIGhhbmRsZU1pbk1heChpbnQgcmVzdWx0T3BlcmFuZCwg
Tm9kZVR5cGUgb3AsIGludCByZWdpc3Rlck9mZnNldCwgaW50IGFyZ3VtZW50Q291bnRJbmNsdWRp
bmdUaGlzKTsKICAgICAKICAgICAvLyBIYW5kbGUgY2FsbHMuIFRoaXMgcmVzb2x2ZXMgaXNzdWVz
IHN1cnJvdW5kaW5nIGlubGluaW5nIGFuZCBpbnRyaW5zaWNzLgotICAgIHZvaWQgaGFuZGxlQ2Fs
bChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBOb2RlVHlwZSBvcCwgQ29kZVNwZWNp
YWxpemF0aW9uS2luZCk7CisgICAgdm9pZCBoYW5kbGVDYWxsKGludCByZXN1bHQsIE5vZGVUeXBl
IG9wLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLCB1bnNpZ25lZCBpbnN0cnVjdGlvblNpemUsIGlu
dCBjYWxsZWUsIGludCBhcmdDb3VudCwgaW50IHJlZ2lzdGVyT2Zmc2V0KTsKKyAgICB2b2lkIGhh
bmRsZUNhbGwoSW5zdHJ1Y3Rpb24qIHBjLCBOb2RlVHlwZSBvcCwgQ29kZVNwZWNpYWxpemF0aW9u
S2luZCBraW5kKTsKICAgICB2b2lkIGVtaXRGdW5jdGlvbkNoZWNrcyhjb25zdCBDYWxsTGlua1N0
YXR1cyYsIE5vZGUqIGNhbGxUYXJnZXQsIGludCByZWdpc3Rlck9mZnNldCwgQ29kZVNwZWNpYWxp
emF0aW9uS2luZCk7CiAgICAgdm9pZCBlbWl0QXJndW1lbnRQaGFudG9tcyhpbnQgcmVnaXN0ZXJP
ZmZzZXQsIGludCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgQ29kZVNwZWNpYWxpemF0aW9u
S2luZCk7CiAgICAgLy8gSGFuZGxlIGlubGluaW5nLiBSZXR1cm4gdHJ1ZSBpZiBpdCBzdWNjZWVk
ZWQsIGZhbHNlIGlmIHdlIG5lZWQgdG8gcGxhbnQgYSBjYWxsLgpAQCAtNzczLDIyICs3NzUsMjEg
QEAgcHJpdmF0ZToKICAgICAgICAgbV9udW1QYXNzZWRWYXJBcmdzKys7CiAgICAgfQogICAgIAot
ICAgIE5vZGUqIGFkZENhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgTm9kZVR5
cGUgb3ApCisgICAgTm9kZSogYWRkQ2FsbChpbnQgcmVzdWx0LCBOb2RlVHlwZSBvcCwgaW50IGNh
bGxlZSwgaW50IGFyZ0NvdW50LCBpbnQgcmVnaXN0ZXJPZmZzZXQpCiAgICAgewogICAgICAgICBT
cGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uID0gZ2V0UHJlZGljdGlvbigpOwogICAgICAgICAKLSAg
ICAgICAgYWRkVmFyQXJnQ2hpbGQoZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rp
b25bMl0udS5vcGVyYW5kKSkpOwotICAgICAgICBpbnQgYXJnQ291bnQgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bM10udS5vcGVyYW5kOwotICAgICAgICBpZiAoSlNTdGFjazo6VGhpc0FyZ3VtZW50ICsg
KHVuc2lnbmVkKWFyZ0NvdW50ID4gbV9wYXJhbWV0ZXJTbG90cykKLSAgICAgICAgICAgIG1fcGFy
YW1ldGVyU2xvdHMgPSBKU1N0YWNrOjpUaGlzQXJndW1lbnQgKyBhcmdDb3VudDsKKyAgICAgICAg
YWRkVmFyQXJnQ2hpbGQoZ2V0KFZpcnR1YWxSZWdpc3RlcihjYWxsZWUpKSk7CisgICAgICAgIHNp
emVfdCBwYXJhbWV0ZXJTbG90cyA9IEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSBKU1N0
YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSArIGFyZ0NvdW50OworICAgICAgICBpZiAocGFyYW1l
dGVyU2xvdHMgPiBtX3BhcmFtZXRlclNsb3RzKQorICAgICAgICAgICAgbV9wYXJhbWV0ZXJTbG90
cyA9IHBhcmFtZXRlclNsb3RzOwogCi0gICAgICAgIGludCByZWdpc3Rlck9mZnNldCA9IC1jdXJy
ZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kOwogICAgICAgICBpbnQgZHVtbXlUaGlzQXJndW1l
bnQgPSBvcCA9PSBDYWxsID8gMCA6IDE7CiAgICAgICAgIGZvciAoaW50IGkgPSAwICsgZHVtbXlU
aGlzQXJndW1lbnQ7IGkgPCBhcmdDb3VudDsgKytpKQogICAgICAgICAgICAgYWRkVmFyQXJnQ2hp
bGQoZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KGksIHJlZ2lzdGVyT2Zmc2V0KSkpOwog
CiAgICAgICAgIE5vZGUqIGNhbGwgPSBhZGRUb0dyYXBoKE5vZGU6OlZhckFyZywgb3AsIE9wSW5m
bygwKSwgT3BJbmZvKHByZWRpY3Rpb24pKTsKLSAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3Rlcihj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgY2FsbCk7CisgICAgICAgIHNldChWaXJ0
dWFsUmVnaXN0ZXIocmVzdWx0KSwgY2FsbCk7CiAgICAgICAgIHJldHVybiBjYWxsOwogICAgIH0K
ICAgICAKQEAgLTk5Myw5ICs5OTQsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBUaGUgbnVtYmVyIG9m
IGxvY2FscyAodmFycyArIHRlbXBvcmFyaWVzKSB1c2VkIGluIHRoZSBmdW5jdGlvbi4KICAgICB1
bnNpZ25lZCBtX251bUxvY2FsczsKICAgICAvLyBUaGUgbnVtYmVyIG9mIHNsb3RzIChpbiB1bml0
cyBvZiBzaXplb2YoUmVnaXN0ZXIpKSB0aGF0IHdlIG5lZWQgdG8KLSAgICAvLyBwcmVhbGxvY2F0
ZSBmb3IgY2FsbHMgZW1hbmF0aW5nIGZyb20gdGhpcyBmcmFtZS4gVGhpcyBpbmNsdWRlcyB0aGUK
LSAgICAvLyBzaXplIG9mIHRoZSBDYWxsRnJhbWUsIG9ubHkgaWYgdGhpcyBpcyBub3QgYSBsZWFm
IGZ1bmN0aW9uLiAgKEkuZS4KLSAgICAvLyB0aGlzIGlzIDAgaWYgYW5kIG9ubHkgaWYgdGhpcyBm
dW5jdGlvbiBpcyBhIGxlYWYuKQorICAgIC8vIHByZWFsbG9jYXRlIGZvciBhcmd1bWVudHMgdG8g
b3V0Z29pbmcgY2FsbHMgZnJvbSB0aGlzIGZyYW1lLiBUaGlzCisgICAgLy8gbnVtYmVyIGluY2x1
ZGVzIHRoZSBDYWxsRnJhbWUgc2xvdHMgdGhhdCB3ZSBpbml0aWFsaXplIGZvciB0aGUgY2FsbGVl
CisgICAgLy8gKGJ1dCBub3QgdGhlIGNhbGxlZS1pbml0aWFsaXplZCBDYWxsZXJGcmFtZSBhbmQg
UmV0dXJuUEMgc2xvdHMpLgorICAgIC8vIFRoaXMgbnVtYmVyIGlzIDAgaWYgYW5kIG9ubHkgaWYg
dGhpcyBmdW5jdGlvbiBpcyBhIGxlYWYuCiAgICAgdW5zaWduZWQgbV9wYXJhbWV0ZXJTbG90czsK
ICAgICAvLyBUaGUgbnVtYmVyIG9mIHZhciBhcmdzIHBhc3NlZCB0byB0aGUgbmV4dCB2YXIgYXJn
IG5vZGUuCiAgICAgdW5zaWduZWQgbV9udW1QYXNzZWRWYXJBcmdzOwpAQCAtMTEzNCw2ICsxMTM2
LDEwIEBAIHByaXZhdGU6CiAgICAgLy8gd29yay1hcm91bmQgZm9yIHRoZSBmYWN0IHRoYXQgSlNW
YWx1ZU1hcCBjYW4ndCBoYW5kbGUgImVtcHR5IiB2YWx1ZXMuCiAgICAgdW5zaWduZWQgbV9lbXB0
eUpTVmFsdWVJbmRleDsKICAgICAKKyAgICBDb2RlQmxvY2sqIG1fZGZnQ29kZUJsb2NrOworICAg
IENhbGxMaW5rU3RhdHVzOjpDb250ZXh0TWFwIG1fY2FsbENvbnRleHRNYXA7CisgICAgU3R1Yklu
Zm9NYXAgbV9kZmdTdHViSW5mb3M7CisgICAgCiAgICAgSW5zdHJ1Y3Rpb24qIG1fY3VycmVudElu
c3RydWN0aW9uOwogfTsKIApAQCAtMTE0NSw0MyArMTE1MSw0NSBAQCBwcml2YXRlOgogICAgIG1f
Y3VycmVudEluZGV4ICs9IE9QQ09ERV9MRU5HVEgobmFtZSk7IFwKICAgICByZXR1cm4gc2hvdWxk
Q29udGludWVQYXJzaW5nCiAKLQotdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbChJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBOb2RlVHlwZSBvcCwgQ29kZVNwZWNpYWxpemF0
aW9uS2luZCBraW5kKQordm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlQ2FsbChJbnN0cnVjdGlv
biogcGMsIE5vZGVUeXBlIG9wLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCiB7CiAgICAg
QVNTRVJUKE9QQ09ERV9MRU5HVEgob3BfY2FsbCkgPT0gT1BDT0RFX0xFTkdUSChvcF9jb25zdHJ1
Y3QpKTsKKyAgICBoYW5kbGVDYWxsKAorICAgICAgICBwY1sxXS51Lm9wZXJhbmQsIG9wLCBraW5k
LCBPUENPREVfTEVOR1RIKG9wX2NhbGwpLAorICAgICAgICBwY1syXS51Lm9wZXJhbmQsIHBjWzNd
LnUub3BlcmFuZCwgLXBjWzRdLnUub3BlcmFuZCk7Cit9CisKK3ZvaWQgQnl0ZUNvZGVQYXJzZXI6
OmhhbmRsZUNhbGwoCisgICAgaW50IHJlc3VsdCwgTm9kZVR5cGUgb3AsIENvZGVTcGVjaWFsaXph
dGlvbktpbmQga2luZCwgdW5zaWduZWQgaW5zdHJ1Y3Rpb25TaXplLAorICAgIGludCBjYWxsZWUs
IGludCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgaW50IHJlZ2lzdGVyT2Zmc2V0KQorewor
ICAgIEFTU0VSVChyZWdpc3Rlck9mZnNldCA8PSAwKTsKICAgICAKLSAgICBOb2RlKiBjYWxsVGFy
Z2V0ID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5k
KSk7CisgICAgTm9kZSogY2FsbFRhcmdldCA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY2FsbGVlKSk7
CiAgICAgCiAgICAgQ2FsbExpbmtTdGF0dXMgY2FsbExpbmtTdGF0dXM7CiAKLSAgICBpZiAobV9n
cmFwaC5pc0NvbnN0YW50KGNhbGxUYXJnZXQpKQotICAgICAgICBjYWxsTGlua1N0YXR1cyA9IENh
bGxMaW5rU3RhdHVzKG1fZ3JhcGgudmFsdWVPZkpTQ29uc3RhbnQoY2FsbFRhcmdldCkpLnNldElz
UHJvdmVkKHRydWUpOwotICAgIGVsc2UgewotICAgICAgICBjYWxsTGlua1N0YXR1cyA9IENhbGxM
aW5rU3RhdHVzOjpjb21wdXRlRm9yKG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywg
bV9jdXJyZW50SW5kZXgpOwotICAgICAgICBjYWxsTGlua1N0YXR1cy5zZXRIYXNCYWRGdW5jdGlv
bkV4aXRTaXRlKG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9j
dXJyZW50SW5kZXgsIEJhZEZ1bmN0aW9uKSk7Ci0gICAgICAgIGNhbGxMaW5rU3RhdHVzLnNldEhh
c0JhZENhY2hlRXhpdFNpdGUoCi0gICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQ
cm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZSkKLSAgICAgICAgICAg
IHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50
SW5kZXgsIEJhZENhY2hlV2F0Y2hwb2ludCkpOwotICAgICAgICBjYWxsTGlua1N0YXR1cy5zZXRI
YXNCYWRFeGVjdXRhYmxlRXhpdFNpdGUobV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5o
YXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkRXhlY3V0YWJsZSkpOworICAgIGlmIChtX2dy
YXBoLmlzQ29uc3RhbnQoY2FsbFRhcmdldCkpIHsKKyAgICAgICAgY2FsbExpbmtTdGF0dXMgPSBD
YWxsTGlua1N0YXR1cygKKyAgICAgICAgICAgIG1fZ3JhcGgudmFsdWVPZkpTQ29uc3RhbnQoY2Fs
bFRhcmdldCkpLnNldElzUHJvdmVkKHRydWUpOworICAgIH0gZWxzZSB7CisgICAgICAgIGNhbGxM
aW5rU3RhdHVzID0gQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGb3IoCisgICAgICAgICAgICBtX2lu
bGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2ssIGN1cnJlbnRDb2RlT3JpZ2luKCksIG1fY2Fs
bENvbnRleHRNYXApOwogICAgIH0KICAgICAKICAgICBpZiAoIWNhbGxMaW5rU3RhdHVzLmNhbk9w
dGltaXplKCkpIHsKICAgICAgICAgLy8gT2RkbHksIHRoaXMgY29uZmxhdGVzIGNhbGxzIHRoYXQg
aGF2ZW4ndCBleGVjdXRlZCB3aXRoIGNhbGxzIHRoYXQgYmVoYXZlZCBzdWZmaWNpZW50bHkgcG9s
eW1vcnBoaWNhbGx5CiAgICAgICAgIC8vIHRoYXQgd2UgY2Fubm90IG9wdGltaXplIHRoZW0uCiAg
ICAgICAgIAotICAgICAgICBhZGRDYWxsKGN1cnJlbnRJbnN0cnVjdGlvbiwgb3ApOworICAgICAg
ICBhZGRDYWxsKHJlc3VsdCwgb3AsIGNhbGxlZSwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMs
IHJlZ2lzdGVyT2Zmc2V0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBpbnQg
YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVy
YW5kOwotICAgIGludCByZWdpc3Rlck9mZnNldCA9IC1jdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5v
cGVyYW5kOwotCi0gICAgaW50IHJlc3VsdE9wZXJhbmQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0u
dS5vcGVyYW5kOwotICAgIHVuc2lnbmVkIG5leHRPZmZzZXQgPSBtX2N1cnJlbnRJbmRleCArIE9Q
Q09ERV9MRU5HVEgob3BfY2FsbCk7CisgICAgdW5zaWduZWQgbmV4dE9mZnNldCA9IG1fY3VycmVu
dEluZGV4ICsgaW5zdHJ1Y3Rpb25TaXplOwogICAgIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24g
PSBnZXRQcmVkaWN0aW9uKCk7CiAKICAgICBpZiAoSW50ZXJuYWxGdW5jdGlvbiogZnVuY3Rpb24g
PSBjYWxsTGlua1N0YXR1cy5pbnRlcm5hbEZ1bmN0aW9uKCkpIHsKLSAgICAgICAgaWYgKGhhbmRs
ZUNvbnN0YW50SW50ZXJuYWxGdW5jdGlvbihyZXN1bHRPcGVyYW5kLCBmdW5jdGlvbiwgcmVnaXN0
ZXJPZmZzZXQsIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCBwcmVkaWN0aW9uLCBraW5kKSkg
eworICAgICAgICBpZiAoaGFuZGxlQ29uc3RhbnRJbnRlcm5hbEZ1bmN0aW9uKHJlc3VsdCwgZnVu
Y3Rpb24sIHJlZ2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgcHJlZGlj
dGlvbiwga2luZCkpIHsKICAgICAgICAgICAgIC8vIFRoaXMgcGhhbnRvbWluZyBoYXMgdG8gYmUg
KmFmdGVyKiB0aGUgY29kZSBmb3IgdGhlIGludHJpbnNpYywgdG8gc2lnbmlmeSB0aGF0CiAgICAg
ICAgICAgICAvLyB0aGUgaW5wdXRzIG11c3QgYmUga2VwdCBhbGl2ZSB3aGF0ZXZlciBleGl0cyB0
aGUgaW50cmluc2ljIG1heSBkby4KICAgICAgICAgICAgIGFkZFRvR3JhcGgoUGhhbnRvbSwgY2Fs
bFRhcmdldCk7CkBAIC0xMTkwLDcgKzExOTgsNyBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpoYW5k
bGVDYWxsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIE5vZGVUeXBlIG9wLCBDbwog
ICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAvLyBDYW4gb25seSBoYW5kbGUgdGhpcyB1c2lu
ZyB0aGUgZ2VuZXJpYyBjYWxsIGhhbmRsZXIuCi0gICAgICAgIGFkZENhbGwoY3VycmVudEluc3Ry
dWN0aW9uLCBvcCk7CisgICAgICAgIGFkZENhbGwocmVzdWx0LCBvcCwgY2FsbGVlLCBhcmd1bWVu
dENvdW50SW5jbHVkaW5nVGhpcywgcmVnaXN0ZXJPZmZzZXQpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgICAgICAKQEAgLTExOTgsNyArMTIwNiw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6
OmhhbmRsZUNhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgTm9kZVR5cGUgb3As
IENvCiAgICAgaWYgKGludHJpbnNpYyAhPSBOb0ludHJpbnNpYykgewogICAgICAgICBlbWl0RnVu
Y3Rpb25DaGVja3MoY2FsbExpbmtTdGF0dXMsIGNhbGxUYXJnZXQsIHJlZ2lzdGVyT2Zmc2V0LCBr
aW5kKTsKICAgICAgICAgICAgIAotICAgICAgICBpZiAoaGFuZGxlSW50cmluc2ljKHJlc3VsdE9w
ZXJhbmQsIGludHJpbnNpYywgcmVnaXN0ZXJPZmZzZXQsIGFyZ3VtZW50Q291bnRJbmNsdWRpbmdU
aGlzLCBwcmVkaWN0aW9uKSkgeworICAgICAgICBpZiAoaGFuZGxlSW50cmluc2ljKHJlc3VsdCwg
aW50cmluc2ljLCByZWdpc3Rlck9mZnNldCwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIHBy
ZWRpY3Rpb24pKSB7CiAgICAgICAgICAgICAvLyBUaGlzIHBoYW50b21pbmcgaGFzIHRvIGJlICph
ZnRlciogdGhlIGNvZGUgZm9yIHRoZSBpbnRyaW5zaWMsIHRvIHNpZ25pZnkgdGhhdAogICAgICAg
ICAgICAgLy8gdGhlIGlucHV0cyBtdXN0IGJlIGtlcHQgYWxpdmUgd2hhdGV2ZXIgZXhpdHMgdGhl
IGludHJpbnNpYyBtYXkgZG8uCiAgICAgICAgICAgICBhZGRUb0dyYXBoKFBoYW50b20sIGNhbGxU
YXJnZXQpOwpAQCAtMTIwNywxMyArMTIxNSwxMyBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpoYW5k
bGVDYWxsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIE5vZGVUeXBlIG9wLCBDbwog
ICAgICAgICAgICAgICAgIG1fZ3JhcGguY29tcGlsYXRpb24oKS0+bm90aWNlSW5saW5lZENhbGwo
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoaGFuZGxl
SW5saW5pbmcoY2FsbFRhcmdldCwgcmVzdWx0T3BlcmFuZCwgY2FsbExpbmtTdGF0dXMsIHJlZ2lz
dGVyT2Zmc2V0LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgbmV4dE9mZnNldCwga2luZCkp
IHsKKyAgICB9IGVsc2UgaWYgKGhhbmRsZUlubGluaW5nKGNhbGxUYXJnZXQsIHJlc3VsdCwgY2Fs
bExpbmtTdGF0dXMsIHJlZ2lzdGVyT2Zmc2V0LCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywg
bmV4dE9mZnNldCwga2luZCkpIHsKICAgICAgICAgaWYgKG1fZ3JhcGguY29tcGlsYXRpb24oKSkK
ICAgICAgICAgICAgIG1fZ3JhcGguY29tcGlsYXRpb24oKS0+bm90aWNlSW5saW5lZENhbGwoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBhZGRDYWxsKGN1cnJlbnRJbnN0cnVj
dGlvbiwgb3ApOworICAgIGFkZENhbGwocmVzdWx0LCBvcCwgY2FsbGVlLCBhcmd1bWVudENvdW50
SW5jbHVkaW5nVGhpcywgcmVnaXN0ZXJPZmZzZXQpOwogfQogCiB2b2lkIEJ5dGVDb2RlUGFyc2Vy
OjplbWl0RnVuY3Rpb25DaGVja3MoY29uc3QgQ2FsbExpbmtTdGF0dXMmIGNhbGxMaW5rU3RhdHVz
LCBOb2RlKiBjYWxsVGFyZ2V0LCBpbnQgcmVnaXN0ZXJPZmZzZXQsIENvZGVTcGVjaWFsaXphdGlv
bktpbmQga2luZCkKQEAgLTEyNTAsMzAgKzEyNTgsMzIgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6
ZW1pdEFyZ3VtZW50UGhhbnRvbXMoaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJndW1lbnRDb3Vu
dEkKIAogYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW5saW5pbmcoTm9kZSogY2FsbFRhcmdl
dE5vZGUsIGludCByZXN1bHRPcGVyYW5kLCBjb25zdCBDYWxsTGlua1N0YXR1cyYgY2FsbExpbmtT
dGF0dXMsIGludCByZWdpc3Rlck9mZnNldCwgaW50IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlz
LCB1bnNpZ25lZCBuZXh0T2Zmc2V0LCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCiB7Cisg
ICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAorICAgIGlmICh2ZXJi
b3NlKQorICAgICAgICBkYXRhTG9nKCJDb25zaWRlcmluZyBpbmxpbmluZyAiLCBjYWxsTGlua1N0
YXR1cywgIiBpbnRvICIsIGN1cnJlbnRDb2RlT3JpZ2luKCksICJcbiIpOworICAgIAogICAgIC8v
IEZpcnN0LCB0aGUgcmVhbGx5IHNpbXBsZSBjaGVja3M6IGRvIHdlIGhhdmUgYW4gYWN0dWFsIEpT
IGZ1bmN0aW9uPwotICAgIGlmICghY2FsbExpbmtTdGF0dXMuZXhlY3V0YWJsZSgpKQorICAgIGlm
ICghY2FsbExpbmtTdGF0dXMuZXhlY3V0YWJsZSgpKSB7CisgICAgICAgIGlmICh2ZXJib3NlKQor
ICAgICAgICAgICAgZGF0YUxvZygiICAgIEZhaWxpbmcgYmVjYXVzZSB0aGVyZSBpcyBubyBleGVj
dXRhYmxlLlxuIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoY2FsbExpbmtTdGF0
dXMuZXhlY3V0YWJsZSgpLT5pc0hvc3RGdW5jdGlvbigpKQorICAgIH0KKyAgICBpZiAoY2FsbExp
bmtTdGF0dXMuZXhlY3V0YWJsZSgpLT5pc0hvc3RGdW5jdGlvbigpKSB7CisgICAgICAgIGlmICh2
ZXJib3NlKQorICAgICAgICAgICAgZGF0YUxvZygiICAgIEZhaWxpbmcgYmVjYXVzZSBpdCdzIGEg
aG9zdCBmdW5jdGlvbi5cbiIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIAog
ICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IGpzQ2FzdDxGdW5jdGlvbkV4ZWN1
dGFibGUqPihjYWxsTGlua1N0YXR1cy5leGVjdXRhYmxlKCkpOwogICAgIAogICAgIC8vIERvZXMg
dGhlIG51bWJlciBvZiBhcmd1bWVudHMgd2UncmUgcGFzc2luZyBtYXRjaCB0aGUgYXJpdHkgb2Yg
dGhlIHRhcmdldD8gV2UgY3VycmVudGx5CiAgICAgLy8gaW5saW5lIG9ubHkgaWYgdGhlIG51bWJl
ciBvZiBhcmd1bWVudHMgcGFzc2VkIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgbnVt
YmVyCiAgICAgLy8gYXJndW1lbnRzIGV4cGVjdGVkLgotICAgIGlmIChzdGF0aWNfY2FzdDxpbnQ+
KGV4ZWN1dGFibGUtPnBhcmFtZXRlckNvdW50KCkpICsgMSA+IGFyZ3VtZW50Q291bnRJbmNsdWRp
bmdUaGlzKQorICAgIGlmIChzdGF0aWNfY2FzdDxpbnQ+KGV4ZWN1dGFibGUtPnBhcmFtZXRlckNv
dW50KCkpICsgMSA+IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKSB7CisgICAgICAgIGlmICh2
ZXJib3NlKQorICAgICAgICAgICAgZGF0YUxvZygiICAgIEZhaWxpbmcgYmVjYXVzZSBvZiBhcml0
eSBtaXNtYXRjaC5cbiIpOwogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgLy8gSGF2
ZSB3ZSBleGNlZWRlZCBpbmxpbmUgc3RhY2sgZGVwdGgsIG9yIGFyZSB3ZSB0cnlpbmcgdG8gaW5s
aW5lIGEgcmVjdXJzaXZlIGNhbGw/Ci0gICAgLy8gSWYgZWl0aGVyIG9mIHRoZXNlIGFyZSBkZXRl
Y3RlZCwgdGhlbiBkb24ndCBpbmxpbmUuCi0gICAgdW5zaWduZWQgZGVwdGggPSAwOwotICAgIGZv
ciAoSW5saW5lU3RhY2tFbnRyeSogZW50cnkgPSBtX2lubGluZVN0YWNrVG9wOyBlbnRyeTsgZW50
cnkgPSBlbnRyeS0+bV9jYWxsZXIpIHsKLSAgICAgICAgKytkZXB0aDsKLSAgICAgICAgaWYgKGRl
cHRoID49IE9wdGlvbnM6Om1heGltdW1JbmxpbmluZ0RlcHRoKCkpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7IC8vIERlcHRoIGV4Y2VlZGVkLgotICAgICAgICAKLSAgICAgICAgaWYgKGVudHJ5
LT5leGVjdXRhYmxlKCkgPT0gZXhlY3V0YWJsZSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsg
Ly8gUmVjdXJzaW9uIGRldGVjdGVkLgogICAgIH0KICAgICAKICAgICAvLyBEbyB3ZSBoYXZlIGEg
Y29kZSBibG9jaywgYW5kIGRvZXMgdGhlIGNvZGUgYmxvY2sncyBzaXplIG1hdGNoIHRoZSBoZXVy
aXN0aWNzL3JlcXVpcmVtZW50cyBmb3IKQEAgLTEyODMsMTAgKzEyOTMsNTAgQEAgYm9vbCBCeXRl
Q29kZVBhcnNlcjo6aGFuZGxlSW5saW5pbmcoTm9kZSogY2FsbFRhcmdldE5vZGUsIGludCByZXN1
bHRPcGVyYW5kLCBjb24KICAgICAvLyBnbG9iYWwgZnVuY3Rpb24sIHdoZXJlIHdhdGNocG9pbnRp
bmcgZ2l2ZXMgdXMgc3RhdGljIGluZm9ybWF0aW9uLiBPdmVyYWxsLCBpdCdzIGEgcmFyZSBjYXNl
CiAgICAgLy8gYmVjYXVzZSB3ZSBleHBlY3QgdGhhdCBhbnkgaG90IGNhbGxlZXMgd291bGQgaGF2
ZSBhbHJlYWR5IGJlZW4gY29tcGlsZWQuCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBleGVj
dXRhYmxlLT5iYXNlbGluZUNvZGVCbG9ja0ZvcihraW5kKTsKLSAgICBpZiAoIWNvZGVCbG9jaykK
KyAgICBpZiAoIWNvZGVCbG9jaykgeworICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAg
IGRhdGFMb2coIiAgICBGYWlsaW5nIGJlY2F1c2Ugbm8gY29kZSBibG9jayBhdmFpbGFibGUuXG4i
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghY2FuSW5saW5lRnVuY3Rpb25Gb3Io
Y29kZUJsb2NrLCBraW5kLCBjYWxsTGlua1N0YXR1cy5pc0Nsb3N1cmVDYWxsKCkpKQorICAgIH0K
KyAgICBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsID0gaW5saW5lRnVuY3Rpb25Gb3JD
YXBhYmlsaXR5TGV2ZWwoCisgICAgICAgIGNvZGVCbG9jaywga2luZCwgY2FsbExpbmtTdGF0dXMu
aXNDbG9zdXJlQ2FsbCgpKTsKKyAgICBpZiAoIWNhbklubGluZShjYXBhYmlsaXR5TGV2ZWwpKSB7
CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgZGF0YUxvZygiICAgIEZhaWxpbmcg
YmVjYXVzZSB0aGUgZnVuY3Rpb24gaXMgbm90IGlubGluZWFibGUuXG4iKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICAvLyBGSVhNRTogdGhpcyBzaG91bGQgYmUgYmV0
dGVyIGF0IHByZWRpY3RpbmcgaG93IG11Y2ggYmxvYXQgd2Ugd2lsbCBpbnRyb2R1Y2UgYnkgaW5s
aW5pbmcKKyAgICAvLyB0aGlzIGZ1bmN0aW9uLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc2MjcKKyAgICAKKyAgICAvLyBIYXZlIHdlIGV4Y2VlZGVk
IGlubGluZSBzdGFjayBkZXB0aCwgb3IgYXJlIHdlIHRyeWluZyB0byBpbmxpbmUgYSByZWN1cnNp
dmUgY2FsbCB0bworICAgIC8vIHRvbyBtYW55IGxldmVscz8gSWYgZWl0aGVyIG9mIHRoZXNlIGFy
ZSBkZXRlY3RlZCwgdGhlbiBkb24ndCBpbmxpbmUuIFdlIGFkanVzdCBvdXIKKyAgICAvLyBoZXVy
aXN0aWNzIGlmIHdlIGFyZSBkZWFsaW5nIHdpdGggYSBmdW5jdGlvbiB0aGF0IGNhbm5vdCBvdGhl
cndpc2UgYmUgY29tcGlsZWQuCisgICAgCisgICAgdW5zaWduZWQgZGVwdGggPSAwOworICAgIHVu
c2lnbmVkIHJlY3Vyc2lvbiA9IDA7CisgICAgCisgICAgZm9yIChJbmxpbmVTdGFja0VudHJ5KiBl
bnRyeSA9IG1faW5saW5lU3RhY2tUb3A7IGVudHJ5OyBlbnRyeSA9IGVudHJ5LT5tX2NhbGxlcikg
eworICAgICAgICArK2RlcHRoOworICAgICAgICBpZiAoZGVwdGggPj0gT3B0aW9uczo6bWF4aW11
bUlubGluaW5nRGVwdGgoKSkgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAg
ICAgICAgZGF0YUxvZygiICAgIEZhaWxpbmcgYmVjYXVzZSBkZXB0aCBleGNlZWRlZC5cbiIpOwor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBp
ZiAoZW50cnktPmV4ZWN1dGFibGUoKSA9PSBleGVjdXRhYmxlKSB7CisgICAgICAgICAgICArK3Jl
Y3Vyc2lvbjsKKyAgICAgICAgICAgIGlmIChyZWN1cnNpb24gPj0gT3B0aW9uczo6bWF4aW11bUlu
bGluaW5nUmVjdXJzaW9uKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAg
ICAgICAgICAgICAgICAgZGF0YUxvZygiICAgIEZhaWxpbmcgYmVjYXVzZSByZWN1cnNpb24gZGV0
ZWN0ZWQuXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIGRhdGFM
b2coIiAgICBDb21taXR0aW5nIHRvIGlubGluaW5nLlxuIik7CiAgICAgCiAgICAgLy8gTm93IHdl
IGtub3cgd2l0aG91dCBhIGRvdWJ0IHRoYXQgd2UgYXJlIGNvbW1pdHRlZCB0byBpbmxpbmluZy4g
U28gYmVnaW4gdGhlIHByb2Nlc3MKICAgICAvLyBieSBjaGVja2luZyB0aGUgY2FsbGVlIChpZiBu
ZWNlc3NhcnkpIGFuZCBtYWtpbmcgc3VyZSB0aGF0IGFyZ3VtZW50cyBhbmQgdGhlIGNhbGxlZQpA
QCAtMTc3MywxMSArMTgyMyw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUdldEJ5SWQo
CiAgICAgaW50IGRlc3RpbmF0aW9uT3BlcmFuZCwgU3BlY3VsYXRlZFR5cGUgcHJlZGljdGlvbiwg
Tm9kZSogYmFzZSwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwKICAgICBjb25zdCBHZXRCeUlk
U3RhdHVzJiBnZXRCeUlkU3RhdHVzKQogewotICAgIGlmICghZ2V0QnlJZFN0YXR1cy5pc1NpbXBs
ZSgpCi0gICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNp
dGUobV9jdXJyZW50SW5kZXgsIEJhZENhY2hlKQotICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9w
LT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZVdhdGNo
cG9pbnQpCi0gICAgICAgIHx8IG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhp
dFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlKQotICAgICAgICB8fCBt
X2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4
LCBCYWRXZWFrQ29uc3RhbnRDYWNoZVdhdGNocG9pbnQpKSB7CisgICAgaWYgKCFnZXRCeUlkU3Rh
dHVzLmlzU2ltcGxlKCkpIHsKICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihkZXN0aW5hdGlv
bk9wZXJhbmQpLAogICAgICAgICAgICAgYWRkVG9HcmFwaCgKICAgICAgICAgICAgICAgICBnZXRC
eUlkU3RhdHVzLm1ha2VzQ2FsbHMoKSA/IEdldEJ5SWRGbHVzaCA6IEdldEJ5SWQsCkBAIC0yNDQ0
LDYgKzI0OTAsNyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxp
bWl0KQogICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQocHJvcGVydHkpOwogICAgICAgICAgICAg
YWRkVmFyQXJnQ2hpbGQodmFsdWUpOwogICAgICAgICAgICAgYWRkVmFyQXJnQ2hpbGQoMCk7IC8v
IExlYXZlIHJvb20gZm9yIHByb3BlcnR5IHN0b3JhZ2UuCisgICAgICAgICAgICBhZGRWYXJBcmdD
aGlsZCgwKTsgLy8gTGVhdmUgcm9vbSBmb3IgbGVuZ3RoLgogICAgICAgICAgICAgYWRkVG9HcmFw
aChOb2RlOjpWYXJBcmcsIG9wY29kZUlEID09IG9wX3B1dF9ieV92YWxfZGlyZWN0ID8gUHV0QnlW
YWxEaXJlY3QgOiBQdXRCeVZhbCwgT3BJbmZvKGFycmF5TW9kZS5hc1dvcmQoKSksIE9wSW5mbygw
KSk7CiAKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3B1dF9ieV92YWwpOwpAQCAtMjQ1OSw4
ICsyNTA2LDkgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1p
dCkKICAgICAgICAgICAgIAogICAgICAgICAgICAgU3RyaW5nSW1wbCogdWlkID0gbV9ncmFwaC5p
ZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdOwogICAgICAgICAgICAgR2V0QnlJZFN0YXR1
cyBnZXRCeUlkU3RhdHVzID0gR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvcigKLSAgICAgICAgICAg
ICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2ssIG1faW5saW5lU3RhY2tUb3At
Pm1fc3R1YkluZm9zLAotICAgICAgICAgICAgICAgIG1fY3VycmVudEluZGV4LCB1aWQpOworICAg
ICAgICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywgbV9kZmdDb2Rl
QmxvY2ssCisgICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9zdHViSW5mb3MsIG1f
ZGZnU3R1YkluZm9zLAorICAgICAgICAgICAgICAgIGN1cnJlbnRDb2RlT3JpZ2luKCksIHVpZCk7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGhhbmRsZUdldEJ5SWQoCiAgICAgICAgICAgICAg
ICAgY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcHJlZGljdGlvbiwgYmFzZSwgaWRl
bnRpZmllck51bWJlciwgZ2V0QnlJZFN0YXR1cyk7CkBAIC0yNDc5LDI2ICsyNTI3LDIwIEBAIGJv
b2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAg
ICBib29sIGRpcmVjdCA9IGN1cnJlbnRJbnN0cnVjdGlvbls4XS51Lm9wZXJhbmQ7CiAKICAgICAg
ICAgICAgIFB1dEJ5SWRTdGF0dXMgcHV0QnlJZFN0YXR1cyA9IFB1dEJ5SWRTdGF0dXM6OmNvbXB1
dGVGb3IoCi0gICAgICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2Nr
LCBtX2lubGluZVN0YWNrVG9wLT5tX3N0dWJJbmZvcywKLSAgICAgICAgICAgICAgICBtX2N1cnJl
bnRJbmRleCwgbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdKTsKKyAgICAg
ICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2ssIG1fZGZnQ29kZUJs
b2NrLAorICAgICAgICAgICAgICAgIG1faW5saW5lU3RhY2tUb3AtPm1fc3R1YkluZm9zLCBtX2Rm
Z1N0dWJJbmZvcywKKyAgICAgICAgICAgICAgICBjdXJyZW50Q29kZU9yaWdpbigpLCBtX2dyYXBo
LmlkZW50aWZpZXJzKClbaWRlbnRpZmllck51bWJlcl0pOwogICAgICAgICAgICAgYm9vbCBjYW5D
b3VudEFzSW5saW5lZCA9IHRydWU7CiAgICAgICAgICAgICBpZiAoIXB1dEJ5SWRTdGF0dXMuaXNT
ZXQoKSkgewogICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoRm9yY2VPU1JFeGl0KTsKICAgICAg
ICAgICAgICAgICBjYW5Db3VudEFzSW5saW5lZCA9IGZhbHNlOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgCi0gICAgICAgICAgICBib29sIGhhc0V4aXRTaXRlID0KLSAgICAgICAgICAgICAg
ICBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudElu
ZGV4LCBCYWRDYWNoZSkKLSAgICAgICAgICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4
aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZVdhdGNocG9pbnQp
Ci0gICAgICAgICAgICAgICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNF
eGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGUpCi0gICAgICAgICAg
ICAgICAgfHwgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1
cnJlbnRJbmRleCwgQmFkV2Vha0NvbnN0YW50Q2FjaGVXYXRjaHBvaW50KTsKLSAgICAgICAgICAg
IAotICAgICAgICAgICAgaWYgKCFoYXNFeGl0U2l0ZSAmJiBwdXRCeUlkU3RhdHVzLmlzU2ltcGxl
UmVwbGFjZSgpKSB7CisgICAgICAgICAgICBpZiAocHV0QnlJZFN0YXR1cy5pc1NpbXBsZVJlcGxh
Y2UoKSkgewogICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tTdHJ1Y3R1cmUsIE9wSW5m
byhtX2dyYXBoLmFkZFN0cnVjdHVyZVNldChwdXRCeUlkU3RhdHVzLm9sZFN0cnVjdHVyZSgpKSks
IGJhc2UpOwogICAgICAgICAgICAgICAgIGhhbmRsZVB1dEJ5T2Zmc2V0KGJhc2UsIGlkZW50aWZp
ZXJOdW1iZXIsIHB1dEJ5SWRTdGF0dXMub2Zmc2V0KCksIHZhbHVlKTsKICAgICAgICAgICAgIH0g
ZWxzZSBpZiAoCi0gICAgICAgICAgICAgICAgIWhhc0V4aXRTaXRlCi0gICAgICAgICAgICAgICAg
JiYgcHV0QnlJZFN0YXR1cy5pc1NpbXBsZVRyYW5zaXRpb24oKQorICAgICAgICAgICAgICAgIHB1
dEJ5SWRTdGF0dXMuaXNTaW1wbGVUcmFuc2l0aW9uKCkKICAgICAgICAgICAgICAgICAmJiAoIXB1
dEJ5SWRTdGF0dXMuc3RydWN0dXJlQ2hhaW4oKQogICAgICAgICAgICAgICAgICAgICB8fCBwdXRC
eUlkU3RhdHVzLnN0cnVjdHVyZUNoYWluKCktPmlzU3RpbGxWYWxpZCgpKSkgewogICAgICAgICAg
ICAgICAgIApAQCAtMjk3MywzMCArMzAxNSw0MSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJz
ZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfY29uc3Ry
dWN0KTsKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIG9wX2NhbGxfdmFyYXJnczogeworICAg
ICAgICAgICAgaW50IHJlc3VsdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7Cisg
ICAgICAgICAgICBpbnQgY2FsbGVlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsK
KyAgICAgICAgICAgIGludCB0aGlzUmVnID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFu
ZDsKKyAgICAgICAgICAgIGludCBhcmd1bWVudHMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5v
cGVyYW5kOworICAgICAgICAgICAgaW50IGZpcnN0RnJlZVJlZyA9IGN1cnJlbnRJbnN0cnVjdGlv
bls1XS51Lm9wZXJhbmQ7CisgICAgICAgICAgICAKICAgICAgICAgICAgIEFTU0VSVChpbmxpbmVD
YWxsRnJhbWUoKSk7Ci0gICAgICAgICAgICBBU1NFUlQoY3VycmVudEluc3RydWN0aW9uWzRdLnUu
b3BlcmFuZCA9PSBtX2lubGluZVN0YWNrVG9wLT5tX2NvZGVCbG9jay0+YXJndW1lbnRzUmVnaXN0
ZXIoKS5vZmZzZXQoKSk7CisgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGFyZ3VtZW50cywgYXJn
dW1lbnRzID09IG1faW5saW5lU3RhY2tUb3AtPm1fY29kZUJsb2NrLT5hcmd1bWVudHNSZWdpc3Rl
cigpLm9mZnNldCgpKTsKICAgICAgICAgICAgIEFTU0VSVCghbV9pbmxpbmVTdGFja1RvcC0+bV9j
b2RlQmxvY2stPnN5bWJvbFRhYmxlKCktPnNsb3dBcmd1bWVudHMoKSk7Ci0gICAgICAgICAgICAv
LyBJdCB3b3VsZCBiZSBjb29sIHRvIGZ1bm5lbCB0aGlzIGludG8gaGFuZGxlQ2FsbCgpIHNvIHRo
YXQgaXQgY2FuIGhhbmRsZQotICAgICAgICAgICAgLy8gaW5saW5pbmcuIEJ1dCBjdXJyZW50bHkg
dGhhdCB3b24ndCBiZSBwcm9maXRhYmxlIGFueXdheSwgc2luY2Ugbm9uZSBvZiB0aGUKLSAgICAg
ICAgICAgIC8vIHVzZXMgb2YgY2FsbF92YXJhcmdzIHdpbGwgYmUgaW5saW5lYWJsZS4gU28gd2Ug
c2V0IHRoaXMgdXAgbWFudWFsbHkgYW5kCi0gICAgICAgICAgICAvLyB3aXRob3V0IGlubGluZS9p
bnRyaW5zaWMgZGV0ZWN0aW9uLgotICAgICAgICAgICAgCi0gICAgICAgICAgICBTcGVjdWxhdGVk
VHlwZSBwcmVkaWN0aW9uID0gZ2V0UHJlZGljdGlvbigpOwotICAgICAgICAgICAgCisKICAgICAg
ICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tBcmd1bWVudHNOb3RDcmVhdGVkKTsKLSAgICAgICAgICAg
IAorCiAgICAgICAgICAgICB1bnNpZ25lZCBhcmdDb3VudCA9IGlubGluZUNhbGxGcmFtZSgpLT5h
cmd1bWVudHMuc2l6ZSgpOwotICAgICAgICAgICAgaWYgKEpTU3RhY2s6OlRoaXNBcmd1bWVudCAr
IGFyZ0NvdW50ID4gbV9wYXJhbWV0ZXJTbG90cykKLSAgICAgICAgICAgICAgICBtX3BhcmFtZXRl
clNsb3RzID0gSlNTdGFjazo6VGhpc0FyZ3VtZW50ICsgYXJnQ291bnQ7CiAgICAgICAgICAgICAK
LSAgICAgICAgICAgIGFkZFZhckFyZ0NoaWxkKGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudElu
c3RydWN0aW9uWzJdLnUub3BlcmFuZCkpKTsgLy8gY2FsbGVlCi0gICAgICAgICAgICBhZGRWYXJB
cmdDaGlsZChnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJh
bmQpKSk7IC8vIHRoaXMKKyAgICAgICAgICAgIC8vIExldCdzIGNvbXB1dGUgdGhlIHJlZ2lzdGVy
IG9mZnNldC4gV2Ugc3RhcnQgd2l0aCB0aGUgbGFzdCB1c2VkIHJlZ2lzdGVyLCBhbmQKKyAgICAg
ICAgICAgIC8vIHRoZW4gYWRqdXN0IGZvciB0aGUgdGhpbmdzIHdlIHdhbnQgaW4gdGhlIGNhbGwg
ZnJhbWUuCisgICAgICAgICAgICBpbnQgcmVnaXN0ZXJPZmZzZXQgPSBmaXJzdEZyZWVSZWcgKyAx
OworICAgICAgICAgICAgcmVnaXN0ZXJPZmZzZXQgLT0gYXJnQ291bnQ7IC8vIFdlIHdpbGwgYmUg
cGFzc2luZyBzb21lIGFyZ3VtZW50cy4KKyAgICAgICAgICAgIHJlZ2lzdGVyT2Zmc2V0IC09IEpT
U3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemU7IC8vIFdlIHdpbGwgcHJldGVuZCB0byBoYXZlIGEg
Y2FsbCBmcmFtZSBoZWFkZXIuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEdldCB0aGUg
YWxpZ25tZW50IHJpZ2h0LgorICAgICAgICAgICAgcmVnaXN0ZXJPZmZzZXQgPSAtV1RGOjpyb3Vu
ZFVwVG9NdWx0aXBsZU9mKAorICAgICAgICAgICAgICAgIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJz
KCksCisgICAgICAgICAgICAgICAgLXJlZ2lzdGVyT2Zmc2V0KTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgLy8gVGhlIGJ5dGVjb2RlIHdvdWxkbid0IGhhdmUgc2V0IHVwIHRoZSBhcmd1bWVu
dHMuIEJ1dCB3ZSdsbCBkbyBpdCBhbmQgbWFrZSBpdAorICAgICAgICAgICAgLy8gbG9vayBsaWtl
IHRoZSBieXRlY29kZSBoYWQgZG9uZSBpdC4KKyAgICAgICAgICAgIGludCBuZXh0UmVnaXN0ZXIg
PSByZWdpc3Rlck9mZnNldCArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemU7CisgICAgICAg
ICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKG5leHRSZWdpc3RlcisrKSwgZ2V0KFZpcnR1YWxSZWdp
c3Rlcih0aGlzUmVnKSksIEltbWVkaWF0ZVNldCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGFyZ3VtZW50ID0gMTsgYXJndW1lbnQgPCBhcmdDb3VudDsgKythcmd1bWVudCkKLSAgICAgICAg
ICAgICAgICBhZGRWYXJBcmdDaGlsZChnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoYXJn
dW1lbnQpKSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIo
Y3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksCi0gICAgICAgICAgICAgICAgYWRkVG9H
cmFwaChOb2RlOjpWYXJBcmcsIENhbGwsIE9wSW5mbygwKSwgT3BJbmZvKHByZWRpY3Rpb24pKSk7
CisgICAgICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihuZXh0UmVnaXN0ZXIrKyksIGdl
dCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudChhcmd1bWVudCkpLCBJbW1lZGlhdGVTZXQpOwog
ICAgICAgICAgICAgCisgICAgICAgICAgICBoYW5kbGVDYWxsKAorICAgICAgICAgICAgICAgIHJl
c3VsdCwgQ2FsbCwgQ29kZUZvckNhbGwsIE9QQ09ERV9MRU5HVEgob3BfY2FsbF92YXJhcmdzKSwK
KyAgICAgICAgICAgICAgICBjYWxsZWUsIGFyZ0NvdW50LCByZWdpc3Rlck9mZnNldCk7CiAgICAg
ICAgICAgICBORVhUX09QQ09ERShvcF9jYWxsX3ZhcmFyZ3MpOwogICAgICAgICB9CiAgICAgICAg
ICAgICAKQEAgLTM2NTQsNiArMzcwNywxNiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZSgp
CiAgICAgLy8gU2V0IGR1cmluZyBjb25zdHJ1Y3Rpb24uCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRJ
bmRleCk7CiAgICAgCisgICAgaWYgKGlzRlRMKG1fZ3JhcGgubV9wbGFuLm1vZGUpKSB7CisgICAg
ICAgIG1fZGZnQ29kZUJsb2NrID0gbV9ncmFwaC5tX3BsYW4ucHJvZmlsZWRERkdDb2RlQmxvY2su
Z2V0KCk7CisgICAgICAgIGlmIChtX2RmZ0NvZGVCbG9jaykgeworICAgICAgICAgICAgaWYgKE9w
dGlvbnM6OmVuYWJsZVBvbHl2YXJpYW50Q2FsbElubGluaW5nKCkpCisgICAgICAgICAgICAgICAg
Q2FsbExpbmtTdGF0dXM6OmNvbXB1dGVERkdTdGF0dXNlcyhtX2RmZ0NvZGVCbG9jaywgbV9jYWxs
Q29udGV4dE1hcCk7CisgICAgICAgICAgICBpZiAoT3B0aW9uczo6ZW5hYmxlUG9seXZhcmlhbnRC
eUlkSW5saW5pbmcoKSkKKyAgICAgICAgICAgICAgICBtX2RmZ0NvZGVCbG9jay0+Z2V0U3R1Yklu
Zm9NYXAobV9kZmdTdHViSW5mb3MpOworICAgICAgICB9CisgICAgfQorICAgIAogICAgIGlmICht
X2NvZGVCbG9jay0+Y2FwdHVyZUNvdW50KCkpIHsKICAgICAgICAgU3ltYm9sVGFibGUqIHN5bWJv
bFRhYmxlID0gbV9jb2RlQmxvY2stPnN5bWJvbFRhYmxlKCk7CiAgICAgICAgIENvbmN1cnJlbnRK
SVRMb2NrZXIgbG9ja2VyKHN5bWJvbFRhYmxlLT5tX2xvY2spOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ0ZHU2ltcGxpZmljYXRpb25QaGFzZS5jcHAKaW5kZXgg
NWRlMzZhMGRhMmNlNDliY2Y0ODczNzI4ODhiOTY5ZmJjODM4OTUyMi4uNjNmMWU5OGI3ZjNhYTcx
NDU1OWJiYmUwZWFlOTFkZTU0M2U1NWMyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwCkBAIC03OSw2ICs3OSw4
IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgLy8gc3Vib3B0aW1hbCwgYmVjYXVzZSBp
ZiBteSBzdWNjZXNzb3IgaGFzIG11bHRpcGxlIHByZWRlY2Vzc29ycyB0aGVuIHdlJ2xsCiAgICAg
ICAgICAgICAgICAgICAgIC8vIGJlIGtlZXBpbmcgYWxpdmUgdGhpbmdzIG9uIG90aGVyIHByZWRl
Y2Vzc29yIGVkZ2VzIHVubmVjZXNzYXJpbHkuCiAgICAgICAgICAgICAgICAgICAgIC8vIFdoYXQg
d2UgcmVhbGx5IG5lZWQgaXMgdGhlIG5vdGlvbiBvZiBlbmQtb2YtYmxvY2sgZ2hvc3RpZXMhCisg
ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBBbGxvdyBwdXR0aW5nIHBoYW50b21zIGFmdGVy
IHRlcm1pbmFscy4KKyAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNjc3OAogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NTRVBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ1NFUGhhc2UuY3BwCmluZGV4IGE0ZTE1OWU3M2IzMzhmYzBiMTlmZTk5YTZlODgwYzEy
ZDdiZmM3NjkuLmQzYmZjNTBiZGU4ZDZkNzg0NjhkZmQwN2RlMzZiOWVmYWE1ZGIxYjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwCkBAIC0yOCw2ICsyOCw4IEBA
CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkRGR0Fic3RyYWN0SGVhcC5oIgor
I2luY2x1ZGUgIkRGR0Nsb2JiZXJpemUuaCIKICNpbmNsdWRlICJERkdFZGdlVXNlc1N0cnVjdHVy
ZS5oIgogI2luY2x1ZGUgIkRGR0dyYXBoLmgiCiAjaW5jbHVkZSAiREZHUGhhc2UuaCIKQEAgLTEw
MDYsNiArMTAwOCwxOCBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0K
ICAgICAKKyAgICBib29sIGludmFsaWRhdGlvblBvaW50RWxpbWluYXRpb24oKQorICAgIHsKKyAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9pbmRleEluQmxvY2s7IGktLTspIHsKKyAgICAgICAg
ICAgIE5vZGUqIG5vZGUgPSBtX2N1cnJlbnRCbG9jay0+YXQoaSk7CisgICAgICAgICAgICBpZiAo
bm9kZS0+b3AoKSA9PSBJbnZhbGlkYXRpb25Qb2ludCkKKyAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgICAgIGlmICh3cml0ZXNPdmVybGFwKG1fZ3JhcGgsIG5vZGUsIFdhdGNo
cG9pbnRfZmlyZSkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKICAgICB2b2lkIGVsaW1pbmF0ZUlycmVsZXZhbnRQ
aGFudG9tQ2hpbGRyZW4oTm9kZSogbm9kZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChub2RlLT5v
cCgpID09IFBoYW50b20pOwpAQCAtMTM4NSw5ICsxMzk5LDEzIEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICBlbGltaW5hdGUocHV0QnlPZmZzZXRTdG9yZUVsaW1pbmF0aW9uKG1fZ3JhcGgubV9zdG9y
YWdlQWNjZXNzRGF0YVtub2RlLT5zdG9yYWdlQWNjZXNzRGF0YUluZGV4KCldLmlkZW50aWZpZXJO
dW1iZXIsIG5vZGUtPmNoaWxkMSgpLm5vZGUoKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAKKyAgICAgICAgY2FzZSBJbnZhbGlkYXRpb25Qb2ludDoKKyAgICAgICAgICAgIGlm
IChpbnZhbGlkYXRpb25Qb2ludEVsaW1pbmF0aW9uKCkpCisgICAgICAgICAgICAgICAgZWxpbWlu
YXRlKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAogICAgICAgICBjYXNlIFBo
YW50b206CiAgICAgICAgICAgICAvLyBGSVhNRTogd2Ugb3VnaHQgdG8gcmVtb3ZlIFBoYW50b20n
cyB0aGF0IGhhdmUgbm8gY2hpbGRyZW4uCi0gICAgICAgICAgICAKICAgICAgICAgICAgIGVsaW1p
bmF0ZUlycmVsZXZhbnRQaGFudG9tQ2hpbGRyZW4obm9kZSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
YXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRp
ZXMuY3BwCmluZGV4IGU2ZmNkOGMxMWM4YmIwMTU3NDRjNjk2ZTlmMjQzZWE4NTI0Y2Y1YmEuLmQx
YmViOTMxMjQ1OGI1MjliODg4YjFjMTllZmU1Y2NiYzZiMTRiZmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTE5OCw2ICsxOTgsOCBAQCBD
YXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxv
Y2sqIGNvZGVCbG9jaywgSW5zdHJ1YwogICAgIGNhc2Ugb3BfY2FsbF92YXJhcmdzOgogICAgICAg
ICBpZiAoY29kZUJsb2NrLT51c2VzQXJndW1lbnRzKCkgJiYgcGNbNF0udS5vcGVyYW5kID09IGNv
ZGVCbG9jay0+YXJndW1lbnRzUmVnaXN0ZXIoKS5vZmZzZXQoKSkKICAgICAgICAgICAgIHJldHVy
biBDYW5JbmxpbmU7CisgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaGFuZGxlIHRoaXMuCisg
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc2MjYK
ICAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CiAKICAgICBjYXNlIG9wX25ld19yZWdleHA6
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmgKaW5kZXggNWJk
ODBjNTE3Y2E0OGYwOTU3OTgyMzQwNDRhMTY4NTY1YTNkNTRlYy4uM2NiOTI0NzIyMDEyNThlZjk4
MWJjZWRmMzYyNzQxZGE2MmMwN2QwNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDYXBhYmlsaXRpZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NhcGFiaWxpdGllcy5oCkBAIC05NiwxOSArOTYsMjggQEAgaW5saW5lIENhcGFiaWxpdHlMZXZl
bCBmdW5jdGlvbkZvckNvbnN0cnVjdENhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVCbG9j
aykKICAgICByZXR1cm4gY2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jayk7CiB9CiAKLWlubGluZSBi
b29sIGNhbklubGluZUZ1bmN0aW9uRm9yQ2FsbChDb2RlQmxvY2sqIGNvZGVCbG9jaykKK2lubGlu
ZSBDYXBhYmlsaXR5TGV2ZWwgaW5saW5lRnVuY3Rpb25Gb3JDYWxsQ2FwYWJpbGl0eUxldmVsKENv
ZGVCbG9jayogY29kZUJsb2NrKQogewotICAgIHJldHVybiBtaWdodElubGluZUZ1bmN0aW9uRm9y
Q2FsbChjb2RlQmxvY2spICYmIGNhbklubGluZShjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKSk7
CisgICAgaWYgKCFtaWdodElubGluZUZ1bmN0aW9uRm9yQ2FsbChjb2RlQmxvY2spKQorICAgICAg
ICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKKyAgICAKKyAgICByZXR1cm4gY2FwYWJpbGl0eUxldmVs
KGNvZGVCbG9jayk7CiB9CiAKLWlubGluZSBib29sIGNhbklubGluZUZ1bmN0aW9uRm9yQ2xvc3Vy
ZUNhbGwoQ29kZUJsb2NrKiBjb2RlQmxvY2spCitpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGlubGlu
ZUZ1bmN0aW9uRm9yQ2xvc3VyZUNhbGxDYXBhYmlsaXR5TGV2ZWwoQ29kZUJsb2NrKiBjb2RlQmxv
Y2spCiB7Ci0gICAgcmV0dXJuIG1pZ2h0SW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbChjb2Rl
QmxvY2spICYmIGNhbklubGluZShjYXBhYmlsaXR5TGV2ZWwoY29kZUJsb2NrKSk7CisgICAgaWYg
KCFtaWdodElubGluZUZ1bmN0aW9uRm9yQ2xvc3VyZUNhbGwoY29kZUJsb2NrKSkKKyAgICAgICAg
cmV0dXJuIENhbm5vdENvbXBpbGU7CisgICAgCisgICAgcmV0dXJuIGNhcGFiaWxpdHlMZXZlbChj
b2RlQmxvY2spOwogfQogCi1pbmxpbmUgYm9vbCBjYW5JbmxpbmVGdW5jdGlvbkZvckNvbnN0cnVj
dChDb2RlQmxvY2sqIGNvZGVCbG9jaykKK2lubGluZSBDYXBhYmlsaXR5TGV2ZWwgaW5saW5lRnVu
Y3Rpb25Gb3JDb25zdHJ1Y3RDYXBhYmlsaXR5TGV2ZWwoQ29kZUJsb2NrKiBjb2RlQmxvY2spCiB7
Ci0gICAgcmV0dXJuIG1pZ2h0SW5saW5lRnVuY3Rpb25Gb3JDb25zdHJ1Y3QoY29kZUJsb2NrKSAm
JiBjYW5JbmxpbmUoY2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jaykpOworICAgIGlmICghbWlnaHRJ
bmxpbmVGdW5jdGlvbkZvckNvbnN0cnVjdChjb2RlQmxvY2spKQorICAgICAgICByZXR1cm4gQ2Fu
bm90Q29tcGlsZTsKKyAgICAKKyAgICByZXR1cm4gY2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jayk7
CiB9CiAKIGlubGluZSBib29sIG1pZ2h0SW5saW5lRnVuY3Rpb25Gb3IoQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKQEAgLTEyNCwxNiArMTMzLDE2IEBA
IGlubGluZSBib29sIG1pZ2h0SW5saW5lRnVuY3Rpb24oQ29kZUJsb2NrKiBjb2RlQmxvY2spCiAg
ICAgcmV0dXJuIG1pZ2h0SW5saW5lRnVuY3Rpb25Gb3IoY29kZUJsb2NrLCBjb2RlQmxvY2stPnNw
ZWNpYWxpemF0aW9uS2luZCgpKTsKIH0KIAotaW5saW5lIGJvb2wgY2FuSW5saW5lRnVuY3Rpb25G
b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgYm9v
bCBpc0Nsb3N1cmVDYWxsKQoraW5saW5lIENhcGFiaWxpdHlMZXZlbCBpbmxpbmVGdW5jdGlvbkZv
ckNhcGFiaWxpdHlMZXZlbChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZVNwZWNpYWxpemF0aW9u
S2luZCBraW5kLCBib29sIGlzQ2xvc3VyZUNhbGwpCiB7CiAgICAgaWYgKGlzQ2xvc3VyZUNhbGwp
IHsKICAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNhbGwpOwotICAgICAgICByZXR1cm4g
Y2FuSW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbChjb2RlQmxvY2spOworICAgICAgICByZXR1
cm4gaW5saW5lRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbENhcGFiaWxpdHlMZXZlbChjb2RlQmxvY2sp
OwogICAgIH0KICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkKLSAgICAgICAgcmV0dXJuIGNh
bklubGluZUZ1bmN0aW9uRm9yQ2FsbChjb2RlQmxvY2spOworICAgICAgICByZXR1cm4gaW5saW5l
RnVuY3Rpb25Gb3JDYWxsQ2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jayk7CiAgICAgQVNTRVJUKGtp
bmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgcmV0dXJuIGNhbklubGluZUZ1bmN0aW9uRm9y
Q29uc3RydWN0KGNvZGVCbG9jayk7CisgICAgcmV0dXJuIGlubGluZUZ1bmN0aW9uRm9yQ29uc3Ry
dWN0Q2FwYWJpbGl0eUxldmVsKGNvZGVCbG9jayk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlND
OjpERkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5oCmluZGV4IDdiNGIxZGI1ZjA4
ZTdjNDljNGY2N2NlMmY0N2IzNTM3ZGY0ZTEyZWIuLmU5ZWFjYmQ1YzRiOWEyZDM3NDFkN2U5ODhh
NDNiOTRiZDBlMmY2ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q29tbW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uaApAQCAt
ODcsMTUgKzg3LDYgQEAgaW5saW5lIGJvb2wgdmFsaWRhdGlvbkVuYWJsZWQoKQogI2VuZGlmCiB9
CiAKLWlubGluZSBib29sIGVuYWJsZUNvbmN1cnJlbnRKSVQoKQotewotI2lmIEVOQUJMRShDT05D
VVJSRU5UX0pJVCkKLSAgICByZXR1cm4gT3B0aW9uczo6ZW5hYmxlQ29uY3VycmVudEpJVCgpICYm
IE9wdGlvbnM6Om51bWJlck9mQ29tcGlsZXJUaHJlYWRzKCk7Ci0jZWxzZQotICAgIHJldHVybiBm
YWxzZTsKLSNlbmRpZgotfQotCiBpbmxpbmUgYm9vbCBlbmFibGVJbnQ1MigpCiB7CiAjaWYgVVNF
KEpTVkFMVUU2NCkKQEAgLTIzNSw3ICsyMjYsMTMgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBERkcgewogCiAvLyBQdXQgdGhpbmdzIGhlcmUgdGhhdCBtdXN0IGJlIGRlZmluZWQgZXZlbiBp
ZiBFTkFCTEUoREZHX0pJVCkgaXMgZmFsc2UuCiAKLWVudW0gQ2FwYWJpbGl0eUxldmVsIHsgQ2Fu
bm90Q29tcGlsZSwgQ2FuSW5saW5lLCBDYW5Db21waWxlLCBDYW5Db21waWxlQW5kSW5saW5lLCBD
YXBhYmlsaXR5TGV2ZWxOb3RTZXQgfTsKK2VudW0gQ2FwYWJpbGl0eUxldmVsIHsKKyAgICBDYW5u
b3RDb21waWxlLAorICAgIENhbklubGluZSwKKyAgICBDYW5Db21waWxlLAorICAgIENhbkNvbXBp
bGVBbmRJbmxpbmUsCisgICAgQ2FwYWJpbGl0eUxldmVsTm90U2V0Cit9OwogCiBpbmxpbmUgYm9v
bCBjYW5Db21waWxlKENhcGFiaWxpdHlMZXZlbCBsZXZlbCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tcGlsYXRpb25Nb2RlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbXBpbGF0aW9uTW9kZS5oCmluZGV4IDEwMzVmNjBiYzlkOWZiYjAy
MmEwNTIzN2U4N2U2OGU5Y2I4NGRhNDUuLjJkNmU0OWFkNTgzZTIxYmUwOGE3YzZhNzUwNWFmNmFj
MWU2NmI4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tcGls
YXRpb25Nb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21waWxhdGlv
bk1vZGUuaApAQCAtMzcsNiArMzcsMTcgQEAgZW51bSBDb21waWxhdGlvbk1vZGUgewogICAgIEZU
TEZvck9TUkVudHJ5TW9kZQogfTsKIAoraW5saW5lIGJvb2wgaXNGVEwoQ29tcGlsYXRpb25Nb2Rl
IG1vZGUpCit7CisgICAgc3dpdGNoIChtb2RlKSB7CisgICAgY2FzZSBGVExNb2RlOgorICAgIGNh
c2UgRlRMRm9yT1NSRW50cnlNb2RlOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0
OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCiB9IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6REZHCiAKIG5hbWVzcGFjZSBXVEYgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEcml2ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2
ZXIuY3BwCmluZGV4IGE4MWY3ZjJmOTZlOTljODA4ZGQ1NmI1NWY4NzRjMTk3NmE0YzZkMTMuLjVk
MjdjMTAxYjkzZTZkZTE1MjFkYWMxNjI5YTNjYjFlZjY1ZTYzOTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RyaXZlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1LDkgKzU1
LDkgQEAgdW5zaWduZWQgZ2V0TnVtQ29tcGlsYXRpb25zKCkKIAogI2lmIEVOQUJMRShERkdfSklU
KQogc3RhdGljIENvbXBpbGF0aW9uUmVzdWx0IGNvbXBpbGVJbXBsKAotICAgIFZNJiB2bSwgQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIENvbXBpbGF0aW9uTW9kZSBtb2RlLCB1bnNpZ25lZCBvc3JFbnRy
eUJ5dGVjb2RlSW5kZXgsCi0gICAgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mIG11c3RIYW5kbGVW
YWx1ZXMsCi0gICAgUGFzc1JlZlB0cjxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IGNhbGxi
YWNrLCBXb3JrbGlzdCogd29ya2xpc3QpCisgICAgVk0mIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9j
aywgQ29kZUJsb2NrKiBwcm9maWxlZERGR0NvZGVCbG9jaywgQ29tcGlsYXRpb25Nb2RlIG1vZGUs
CisgICAgdW5zaWduZWQgb3NyRW50cnlCeXRlY29kZUluZGV4LCBjb25zdCBPcGVyYW5kczxKU1Zh
bHVlPiYgbXVzdEhhbmRsZVZhbHVlcywKKyAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRp
b25DYWxsYmFjaz4gY2FsbGJhY2spCiB7CiAgICAgU2FtcGxpbmdSZWdpb24gc2FtcGxpbmdSZWdp
b24oIkRGRyBDb21waWxhdGlvbiAoRHJpdmVyKSIpOwogICAgIApAQCAtNjYsNiArNjYsNyBAQCBz
dGF0aWMgQ29tcGlsYXRpb25SZXN1bHQgY29tcGlsZUltcGwoCiAgICAgQVNTRVJUKGNvZGVCbG9j
ayk7CiAgICAgQVNTRVJUKGNvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKSk7CiAgICAgQVNTRVJUKGNv
ZGVCbG9jay0+YWx0ZXJuYXRpdmUoKS0+aml0VHlwZSgpID09IEpJVENvZGU6OkJhc2VsaW5lSklU
KTsKKyAgICBBU1NFUlQoIXByb2ZpbGVkREZHQ29kZUJsb2NrIHx8IHByb2ZpbGVkREZHQ29kZUJs
b2NrLT5qaXRUeXBlKCkgPT0gSklUQ29kZTo6REZHSklUKTsKICAgICAKICAgICBpZiAoIU9wdGlv
bnM6OnVzZURGR0pJVCgpIHx8ICFNYWNyb0Fzc2VtYmxlcjo6c3VwcG9ydHNGbG9hdGluZ1BvaW50
KCkpCiAgICAgICAgIHJldHVybiBDb21waWxhdGlvbkZhaWxlZDsKQEAgLTgwLDE2ICs4MSwzMSBA
QCBzdGF0aWMgQ29tcGlsYXRpb25SZXN1bHQgY29tcGlsZUltcGwoCiAgICAgLy8gbWFrZSBzdXJl
IHRoYXQgYWxsIEpJVCBjb2RlIGdlbmVyYXRpb24gZG9lcyBmaW5hbGl6YXRpb24gb24gdGhlIG1h
aW4gdGhyZWFkLgogICAgIHZtLmdldENUSVN0dWIob3NyRXhpdEdlbmVyYXRpb25UaHVua0dlbmVy
YXRvcik7CiAgICAgdm0uZ2V0Q1RJU3R1Yih0aHJvd0V4Y2VwdGlvbkZyb21DYWxsU2xvd1BhdGhH
ZW5lcmF0b3IpOwotICAgIHZtLmdldENUSVN0dWIobGlua0NhbGxUaHVua0dlbmVyYXRvcik7Ci0g
ICAgdm0uZ2V0Q1RJU3R1YihsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IpOwotICAgIHZtLmdl
dENUSVN0dWIobGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IpOwotICAgIHZtLmdldENUSVN0
dWIodmlydHVhbENhbGxUaHVua0dlbmVyYXRvcik7Ci0gICAgdm0uZ2V0Q1RJU3R1Yih2aXJ0dWFs
Q29uc3RydWN0VGh1bmtHZW5lcmF0b3IpOworICAgIGlmIChtb2RlID09IERGR01vZGUpIHsKKyAg
ICAgICAgdm0uZ2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKTsKKyAgICAgICAgdm0u
Z2V0Q1RJU3R1YihsaW5rQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IpOworICAgICAgICB2bS5nZXRD
VElTdHViKGxpbmtDbG9zdXJlQ2FsbFRodW5rR2VuZXJhdG9yKTsKKyAgICAgICAgdm0uZ2V0Q1RJ
U3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKTsKKyAgICAgICAgdm0uZ2V0Q1RJU3R1Yih2
aXJ0dWFsQ29uc3RydWN0VGh1bmtHZW5lcmF0b3IpOworICAgIH0gZWxzZSB7CisgICAgICAgIHZt
LmdldENUSVN0dWIobGlua0NhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKTsKKyAg
ICAgICAgdm0uZ2V0Q1RJU3R1YihsaW5rQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3NUaHVua0dl
bmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0dWIobGlua0Nsb3N1cmVDYWxsVGhhdFByZXNl
cnZlc1JlZ3NUaHVua0dlbmVyYXRvcik7CisgICAgICAgIHZtLmdldENUSVN0dWIodmlydHVhbENh
bGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKTsKKyAgICAgICAgdm0uZ2V0Q1RJU3R1
Yih2aXJ0dWFsQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcik7CisgICAg
fQogICAgIAogICAgIFJlZlB0cjxQbGFuPiBwbGFuID0gYWRvcHRSZWYoCi0gICAgICAgIG5ldyBQ
bGFuKGNvZGVCbG9jaywgbW9kZSwgb3NyRW50cnlCeXRlY29kZUluZGV4LCBtdXN0SGFuZGxlVmFs
dWVzKSk7CisgICAgICAgIG5ldyBQbGFuKGNvZGVCbG9jaywgcHJvZmlsZWRERkdDb2RlQmxvY2ss
IG1vZGUsIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwgbXVzdEhhbmRsZVZhbHVlcykpOwogICAgIAot
ICAgIGlmICh3b3JrbGlzdCkgeworICAgIGJvb2wgZW5hYmxlQ29uY3VycmVudEpJVDsKKyNpZiBF
TkFCTEUoQ09OQ1VSUkVOVF9KSVQpCisgICAgZW5hYmxlQ29uY3VycmVudEpJVCA9IE9wdGlvbnM6
OmVuYWJsZUNvbmN1cnJlbnRKSVQoKTsKKyNlbHNlIC8vIEVOQUJMRShDT05DVVJSRU5UX0pJVCkK
KyAgICBlbmFibGVDb25jdXJyZW50SklUID0gZmFsc2U7CisjZW5kaWYgLy8gRU5BQkxFKENPTkNV
UlJFTlRfSklUKQorICAgIGlmIChlbmFibGVDb25jdXJyZW50SklUKSB7CisgICAgICAgIFdvcmts
aXN0KiB3b3JrbGlzdCA9IGVuc3VyZUdsb2JhbFdvcmtsaXN0Rm9yKG1vZGUpOwogICAgICAgICBw
bGFuLT5jYWxsYmFjayA9IGNhbGxiYWNrOwogICAgICAgICBpZiAobG9nQ29tcGlsYXRpb25DaGFu
Z2VzKCkpCiAgICAgICAgICAgICBkYXRhTG9nKCJEZWZlcnJpbmcgREZHIGNvbXBpbGF0aW9uIG9m
ICIsICpjb2RlQmxvY2ssICIgd2l0aCBxdWV1ZSBsZW5ndGggIiwgd29ya2xpc3QtPnF1ZXVlTGVu
Z3RoKCksICIuXG4iKTsKQEAgLTEwMiwyMSArMTE4LDIyIEBAIHN0YXRpYyBDb21waWxhdGlvblJl
c3VsdCBjb21waWxlSW1wbCgKIH0KICNlbHNlIC8vIEVOQUJMRShERkdfSklUKQogc3RhdGljIENv
bXBpbGF0aW9uUmVzdWx0IGNvbXBpbGVJbXBsKAotICAgIFZNJiwgQ29kZUJsb2NrKiwgQ29tcGls
YXRpb25Nb2RlLCB1bnNpZ25lZCwgY29uc3QgT3BlcmFuZHM8SlNWYWx1ZT4mLAotICAgIFBhc3NS
ZWZQdHI8RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiwgV29ya2xpc3QqKQorICAgIFZNJiwg
Q29kZUJsb2NrKiwgQ29kZUJsb2NrKiwgQ29tcGlsYXRpb25Nb2RlLCB1bnNpZ25lZCwgY29uc3Qg
T3BlcmFuZHM8SlNWYWx1ZT4mLAorICAgIFBhc3NSZWZQdHI8RGVmZXJyZWRDb21waWxhdGlvbkNh
bGxiYWNrPikKIHsKICAgICByZXR1cm4gQ29tcGlsYXRpb25GYWlsZWQ7CiB9CiAjZW5kaWYgLy8g
RU5BQkxFKERGR19KSVQpCiAKIENvbXBpbGF0aW9uUmVzdWx0IGNvbXBpbGUoCi0gICAgVk0mIHZt
LCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29tcGlsYXRpb25Nb2RlIG1vZGUsIHVuc2lnbmVkIG9z
ckVudHJ5Qnl0ZWNvZGVJbmRleCwKLSAgICBjb25zdCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhh
bmRsZVZhbHVlcywKLSAgICBQYXNzUmVmUHRyPERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4g
cGFzc2VkQ2FsbGJhY2ssIFdvcmtsaXN0KiB3b3JrbGlzdCkKKyAgICBWTSYgdm0sIENvZGVCbG9j
ayogY29kZUJsb2NrLCBDb2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLCBDb21waWxhdGlv
bk1vZGUgbW9kZSwKKyAgICB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIGNvbnN0IE9w
ZXJhbmRzPEpTVmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzLAorICAgIFBhc3NSZWZQdHI8RGVmZXJy
ZWRDb21waWxhdGlvbkNhbGxiYWNrPiBwYXNzZWRDYWxsYmFjaykKIHsKICAgICBSZWZQdHI8RGVm
ZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjYWxsYmFjayA9IHBhc3NlZENhbGxiYWNrOwogICAg
IENvbXBpbGF0aW9uUmVzdWx0IHJlc3VsdCA9IGNvbXBpbGVJbXBsKAotICAgICAgICB2bSwgY29k
ZUJsb2NrLCBtb2RlLCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIG11c3RIYW5kbGVWYWx1ZXMsIGNh
bGxiYWNrLCB3b3JrbGlzdCk7CisgICAgICAgIHZtLCBjb2RlQmxvY2ssIHByb2ZpbGVkREZHQ29k
ZUJsb2NrLCBtb2RlLCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIG11c3RIYW5kbGVWYWx1ZXMsCisg
ICAgICAgIGNhbGxiYWNrKTsKICAgICBpZiAocmVzdWx0ICE9IENvbXBpbGF0aW9uRGVmZXJyZWQp
CiAgICAgICAgIGNhbGxiYWNrLT5jb21waWxhdGlvbkRpZENvbXBsZXRlKGNvZGVCbG9jaywgcmVz
dWx0KTsKICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEcml2ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRHJpdmVy
LmgKaW5kZXggOWQ0MzYzOGRmNzAwY2JlODM4YWU1NmJhNGVkMzc1Y2Q1YzVlNDExMC4uYzk2Yjhk
YzY2NTc5MDk2NjEzMTExZmYxN2YyOThjYTc3Yzg3NDJkYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0RyaXZlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MCwxNiArNDAsMTQgQEAgY2xhc3MgVk07CiAK
IG5hbWVzcGFjZSBERkcgewogCi1jbGFzcyBXb3JrbGlzdDsKLQogSlNfRVhQT1JUX1BSSVZBVEUg
dW5zaWduZWQgZ2V0TnVtQ29tcGlsYXRpb25zKCk7CiAKIC8vIElmIHRoZSB3b3JrbGlzdCBpcyBu
b24tbnVsbCwgd2UgZG8gYSBjb25jdXJyZW50IGNvbXBpbGUuIE90aGVyd2lzZSB3ZSBkbyBhIHN5
bmNocm9ub3VzCiAvLyBjb21waWxlLiBFdmVuIGlmIHdlIGRvIGEgc3luY2hyb25vdXMgY29tcGls
ZSwgd2UgY2FsbCB0aGUgY2FsbGJhY2sgd2l0aCB0aGUgcmVzdWx0LgogQ29tcGlsYXRpb25SZXN1
bHQgY29tcGlsZSgKLSAgICBWTSYsIENvZGVCbG9jayosIENvbXBpbGF0aW9uTW9kZSwgdW5zaWdu
ZWQgb3NyRW50cnlCeXRlY29kZUluZGV4LAotICAgIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBt
dXN0SGFuZGxlVmFsdWVzLAotICAgIFBhc3NSZWZQdHI8RGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrPiwgV29ya2xpc3QqKTsKKyAgICBWTSYsIENvZGVCbG9jayosIENvZGVCbG9jayogcHJvZmls
ZWRERkdDb2RlQmxvY2ssIENvbXBpbGF0aW9uTW9kZSwKKyAgICB1bnNpZ25lZCBvc3JFbnRyeUJ5
dGVjb2RlSW5kZXgsIGNvbnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzLAor
ICAgIFBhc3NSZWZQdHI8RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPik7CiAKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpERkcKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdGYWlsZWRGaW5hbGl6ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
YWlsZWRGaW5hbGl6ZXIuY3BwCmluZGV4IGZiMDBlMjAyMWQzYWVhY2NjMTVkNjY5ODMwOTQyYzE1
YTEwMzViNDAuLjgwYTRjNjQ3MjE4NmVlYzUxZWMxYjg2YzNkZjdjMTA2MDg3MTEwYTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5jcHAKQEAg
LTM5LDYgKzM5LDExIEBAIEZhaWxlZEZpbmFsaXplcjo6fkZhaWxlZEZpbmFsaXplcigpCiB7CiB9
CiAKK3NpemVfdCBGYWlsZWRGaW5hbGl6ZXI6OmNvZGVTaXplKCkKK3sKKyAgICByZXR1cm4gMDsK
K30KKwogYm9vbCBGYWlsZWRGaW5hbGl6ZXI6OmZpbmFsaXplKCkKIHsKICAgICByZXR1cm4gZmFs
c2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZhaWxlZEZpbmFs
aXplci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGYWlsZWRGaW5hbGl6ZXIuaApp
bmRleCA2ZGY1YTMwYWRlMzQ5YjE3ZjVmMzFjZWEwZTE5MWRlZmE5ZWNhYWIyLi40NjQ4NmU3ZWQ3
YTEyZGEwN2UxN2U1ZTFjZGQxZTk4MWM5YzFlYTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVyLmgKQEAgLTM5LDYgKzM5LDcgQEAgcHVibGljOgog
ICAgIEZhaWxlZEZpbmFsaXplcihQbGFuJik7CiAgICAgdmlydHVhbCB+RmFpbGVkRmluYWxpemVy
KCk7CiAgICAgCisgICAgdmlydHVhbCBzaXplX3QgY29kZVNpemUoKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIGJvb2wgZmluYWxpemUoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZmluYWxp
emVGdW5jdGlvbigpIG92ZXJyaWRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRmluYWxpemVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Zp
bmFsaXplci5oCmluZGV4IDc4MmM3NDRiMWY2YzliYjcxY2U4ZTljOWI0ZjE1MDZjM2ExMjRkNWQu
LjgyYmMwN2RmNWI0OTE5MjVlZTdkNzg1N2RlNDRlZTQwNmY2YmUyNTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmluYWxpemVyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaW5hbGl6ZXIuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAg
ICAgRmluYWxpemVyKFBsYW4mKTsKICAgICB2aXJ0dWFsIH5GaW5hbGl6ZXIoKTsKICAgICAKKyAg
ICB2aXJ0dWFsIHNpemVfdCBjb2RlU2l6ZSgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZmluYWxp
emUoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGZpbmFsaXplRnVuY3Rpb24oKSA9IDA7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IDE4NWYwMzU5
MTIxMjk0ZTBiZTVjOGViNDg3Mzg5NjQwMGVmYzg1MTIuLjBlYzEzMTk3MTQ4YTY0YWRiNzEyNTcx
MDFhNzM3MzNhNGFkOTZjNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcApAQCAtMTAwLDEyICsxMDAsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBC
aXRSU2hpZnQ6CiAgICAgICAgIGNhc2UgQml0TFNoaWZ0OgogICAgICAgICBjYXNlIEJpdFVSU2hp
ZnQ6IHsKLSAgICAgICAgICAgIGZpeEJpbmFyeUludEVkZ2VzKCk7CisgICAgICAgICAgICBmaXhJ
bnRFZGdlKG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGZpeEludEVkZ2Uobm9kZS0+Y2hp
bGQyKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIEFy
aXRoSU11bDogewotICAgICAgICAgICAgZml4QmluYXJ5SW50RWRnZXMoKTsKKyAgICAgICAgICAg
IGZpeEludEVkZ2Uobm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZml4SW50RWRnZShub2Rl
LT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBub2RlLT5zZXRPcChBcml0aE11bCk7CiAgICAgICAg
ICAgICBub2RlLT5zZXRBcml0aE1vZGUoQXJpdGg6OlVuY2hlY2tlZCk7CiAgICAgICAgICAgICBu
b2RlLT5jaGlsZDEoKS5zZXRVc2VLaW5kKEludDMyVXNlKTsKQEAgLTQ1MCw2ICs0NTIsNyBAQCBw
cml2YXRlOgogICAgICAgICBjYXNlIEdldEJ5VmFsOiB7CiAgICAgICAgICAgICBub2RlLT5zZXRB
cnJheU1vZGUoCiAgICAgICAgICAgICAgICAgbm9kZS0+YXJyYXlNb2RlKCkucmVmaW5lKAorICAg
ICAgICAgICAgICAgICAgICBtX2dyYXBoLCBub2RlLT5jb2RlT3JpZ2luLAogICAgICAgICAgICAg
ICAgICAgICBub2RlLT5jaGlsZDEoKS0+cHJlZGljdGlvbigpLAogICAgICAgICAgICAgICAgICAg
ICBub2RlLT5jaGlsZDIoKS0+cHJlZGljdGlvbigpLAogICAgICAgICAgICAgICAgICAgICBTcGVj
Tm9uZSwgbm9kZS0+ZmxhZ3MoKSkpOwpAQCAtNTA3LDYgKzUxMCw3IEBAIHByaXZhdGU6CiAKICAg
ICAgICAgICAgIG5vZGUtPnNldEFycmF5TW9kZSgKICAgICAgICAgICAgICAgICBub2RlLT5hcnJh
eU1vZGUoKS5yZWZpbmUoCisgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUtPmNvZGVP
cmlnaW4sCiAgICAgICAgICAgICAgICAgICAgIGNoaWxkMS0+cHJlZGljdGlvbigpLAogICAgICAg
ICAgICAgICAgICAgICBjaGlsZDItPnByZWRpY3Rpb24oKSwKICAgICAgICAgICAgICAgICAgICAg
Y2hpbGQzLT5wcmVkaWN0aW9uKCkpKTsKQEAgLTU5Miw2ICs1OTYsNyBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgLy8gdGhhdCB3b3VsZCBicmVhayB0aGluZ3MuCiAgICAgICAgICAgICBub2RlLT5z
ZXRBcnJheU1vZGUoCiAgICAgICAgICAgICAgICAgbm9kZS0+YXJyYXlNb2RlKCkucmVmaW5lKAor
ICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLCBub2RlLT5jb2RlT3JpZ2luLAogICAgICAgICAg
ICAgICAgICAgICBub2RlLT5jaGlsZDEoKS0+cHJlZGljdGlvbigpICYgU3BlY0NlbGwsCiAgICAg
ICAgICAgICAgICAgICAgIFNwZWNJbnQzMiwKICAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hp
bGQyKCktPnByZWRpY3Rpb24oKSkpOwpAQCAtOTQ2LDcgKzk1MSw2IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAgICAgT3BJbmZvKG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPmNvZGVPcmln
aW4pKSk7CiAgICAgICAgICAgICBOb2RlKiBiYXJyaWVyTm9kZSA9IG1fZ3JhcGguYWRkTm9kZShT
cGVjTm9uZSwgQ29uZGl0aW9uYWxTdG9yZUJhcnJpZXIsIG1fY3VycmVudE5vZGUtPmNvZGVPcmln
aW4sIAogICAgICAgICAgICAgICAgIEVkZ2UoZ2xvYmFsT2JqZWN0Tm9kZSwgS25vd25DZWxsVXNl
KSwgRWRnZShub2RlLT5jaGlsZDEoKS5ub2RlKCksIFVudHlwZWRVc2UpKTsKLSAgICAgICAgICAg
IGZpeHVwTm9kZShiYXJyaWVyTm9kZSk7CiAgICAgICAgICAgICBtX2luc2VydGlvblNldC5pbnNl
cnQobV9pbmRleEluQmxvY2ssIGJhcnJpZXJOb2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CkBAIC05NTQsNyArOTU4LDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBUZWFyT2Zm
QWN0aXZhdGlvbjogewogICAgICAgICAgICAgTm9kZSogYmFycmllck5vZGUgPSBtX2dyYXBoLmFk
ZE5vZGUoU3BlY05vbmUsIFN0b3JlQmFycmllcldpdGhOdWxsQ2hlY2ssIG1fY3VycmVudE5vZGUt
PmNvZGVPcmlnaW4sIAogICAgICAgICAgICAgICAgIEVkZ2Uobm9kZS0+Y2hpbGQxKCkubm9kZSgp
LCBVbnR5cGVkVXNlKSk7Ci0gICAgICAgICAgICBmaXh1cE5vZGUoYmFycmllck5vZGUpOwogICAg
ICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0KG1faW5kZXhJbkJsb2NrLCBiYXJyaWVyTm9k
ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTAzNCw2ICsxMDM3LDI0IEBA
IHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICBpZiAoIW5vZGUtPmNvbnRhaW5zTW92SGludCgp
KQogICAgICAgICAgICAgREZHX05PREVfRE9fVE9fQ0hJTERSRU4obV9ncmFwaCwgbm9kZSwgb2Jz
ZXJ2ZVVudHlwZWRFZGdlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChub2RlLT5pc1Rlcm1pbmFs
KCkpIHsKKyAgICAgICAgICAgIC8vIFRlcm1pbmFsIG5vZGVzIGRvbid0IG5lZWQgcG9zdC1waGFu
dG9tcywgYW5kIGluc2VydGluZyB0aGVtIHdvdWxkIHZpb2xhdGUKKyAgICAgICAgICAgIC8vIHRo
ZSBjdXJyZW50IHJlcXVpcmVtZW50IHRoYXQgYSB0ZXJtaW5hbCBpcyB0aGUgbGFzdCB0aGluZyBp
biBhIGJsb2NrLiBXZQorICAgICAgICAgICAgLy8gc2hvdWxkIGV2ZW50dWFsbHkgY2hhbmdlIHRo
YXQgcmVxdWlyZW1lbnQgYnV0IGV2ZW4gaWYgd2UgZGlkLCB0aGlzIHdvdWxkCisgICAgICAgICAg
ICAvLyBzdGlsbCBiZSBhIHZhbGlkIG9wdGltaXphdGlvbi4gQWxsIHRlcm1pbmFscyBhY2NlcHQg
anVzdCBvbmUgaW5wdXQsIGFuZAorICAgICAgICAgICAgLy8gaWYgdGhhdCBpbnB1dCBpcyBhIGNv
bnZlcnNpb24gbm9kZSB0aGVuIG5vIGZ1cnRoZXIgc3BlY3VsYXRpb25zIHdpbGwgYmUKKyAgICAg
ICAgICAgIC8vIHBlcmZvcm1lZC4KKyAgICAgICAgICAgIC8vIEZJWE1FOiBHZXQgcmlkIG9mIHRo
aXMgYnkgYWxsb3dpbmcgUGhhbnRvbXMgYWZ0ZXIgdGVybWluYWxzLgorICAgICAgICAgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjc3OAorICAgICAgICAg
ICAgbV9yZXF1aXJlZFBoYW50b21zLnJlc2l6ZSgwKTsKKyAgICAgICAgLy8gU2luY2UgU3RvcmVC
YXJyaWVycyBhcmUgcmVjdXJzaXZlbHkgZml4ZWQgdXAgc28gdGhhdCB0aGVpciBjaGlsZHJlbiBs
b29rIAorICAgICAgICAvLyBpZGVudGljYWwgdG8gdGhhdCBvZiB0aGUgbm9kZSB0aGV5J3JlIGJh
cnJpZXItaW5nLCB3ZSBuZWVkIHRvIGF2b2lkIGFkZGluZworICAgICAgICAvLyBhbnkgUGhhbnRv
bXMgd2hlbiBwcm9jZXNzaW5nIHRoZW0gYmVjYXVzZSB0aGlzIHdvdWxkIGludmFsaWRhdGUgdGhl
IAorICAgICAgICAvLyBJbnNlcnRpb25TZXQncyBpbnZhcmlhbnQgb2YgaW5zZXJ0aW5nIHRoaW5n
cyBpbiBhIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZworICAgICAgICAvLyBvcmRlci4gVGhpcyBz
aG91bGQgYmUgb2theSBhbnl3YXlzIGJlY2F1c2UgU3RvcmVCYXJyaWVycyBjYW4ndCBleGl0LiAK
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBhZGRQaGFudG9tc0lmTmVjZXNzYXJ5KCk7CiAg
ICAgfQogICAgIAogICAgIHZvaWQgb2JzZXJ2ZVVudHlwZWRFZGdlKE5vZGUqLCBFZGdlJiBlZGdl
KQpAQCAtMTMxOSw2ICsxMzQwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgfQorICAgICAgICAgICAgYWRkUGhhbnRvbXNJZk5lY2Vzc2FyeSgpOwogICAgICAgICB9CiAg
ICAgICAgIG1faW5zZXJ0aW9uU2V0LmV4ZWN1dGUoYmxvY2spOwogICAgIH0KQEAgLTEzMzQsOCAr
MTM1NiwxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgIT0gU2V0TG9j
YWwpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAKLSAgICAgICAgICAg
IGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSkKKyAgICAgICAgICAg
IGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSkgewogICAgICAgICAg
ICAgICAgIGZpeEVkZ2U8VW50eXBlZFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAg
ICAgIGFkZFBoYW50b21zSWZOZWNlc3NhcnkoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgICAgICBtX2luc2VydGlvblNldC5leGVjdXRlKGJsb2NrKTsKICAgICB9CkBAIC0xNTA5LDYg
KzE1MzMsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIC8vIEludDhUb0RvdWJsZSB3aWxs
IGNvbnZlcnQgaW50NTIncyB0aGF0IGZpdCBpbiBhbiBpbnQzMiBpbnRvIGEgZG91YmxlCiAgICAg
ICAgICAgICAgICAgLy8gcmF0aGVyIHRoYW4gdHJ5aW5nIHRvIGNyZWF0ZSBhIGJveGVkIGludDMy
IGxpa2UgSW50NTJUb1ZhbHVlIGRvZXMuCiAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgbV9yZXF1aXJlZFBoYW50b21zLmFwcGVuZChlZGdlLm5vZGUoKSk7CiAgICAgICAgICAgICAg
ICAgTm9kZSogcmVzdWx0ID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKICAgICAgICAgICAg
ICAgICAgICAgbV9pbmRleEluQmxvY2ssIFNwZWNJbnQ1MkFzRG91YmxlLCBJbnQ1MlRvRG91Ymxl
LAogICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luLCBFZGdlKGVk
Z2Uubm9kZSgpLCBOdW1iZXJVc2UpKTsKQEAgLTE1NjIsNiArMTU4Nyw3IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAvLwogICAgICAgICAgICAgLy8gQnV0IHRoZSBzb2x1dGlvbiB3ZSB1c2UgaGFu
ZGxlcyB0aGUgYWJvdmUgZ3JhY2VmdWxseS4KICAgICAgICAgICAgIAorICAgICAgICAgICAgbV9y
ZXF1aXJlZFBoYW50b21zLmFwcGVuZChlZGdlLm5vZGUoKSk7CiAgICAgICAgICAgICBOb2RlKiBy
ZXN1bHQgPSBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKAogICAgICAgICAgICAgICAgIG1faW5k
ZXhJbkJsb2NrLCBTcGVjSW50NTIsIEludDUyVG9WYWx1ZSwKICAgICAgICAgICAgICAgICBtX2N1
cnJlbnROb2RlLT5jb2RlT3JpZ2luLCBFZGdlKGVkZ2Uubm9kZSgpLCBVbnR5cGVkVXNlKSk7CkBA
IC0xNTgzLDE2ICsxNjA5LDE1IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBiYXJyaWVyTm9kZSA9
IG1fZ3JhcGguYWRkTm9kZShTcGVjTm9uZSwgQ29uZGl0aW9uYWxTdG9yZUJhcnJpZXIsIG1fY3Vy
cmVudE5vZGUtPmNvZGVPcmlnaW4sIAogICAgICAgICAgICAgICAgIEVkZ2UoY2hpbGQxLm5vZGUo
KSwgY2hpbGQxLnVzZUtpbmQoKSksIEVkZ2UoY2hpbGQyLm5vZGUoKSwgY2hpbGQyLnVzZUtpbmQo
KSkpOwogICAgICAgICB9Ci0gICAgICAgIGZpeHVwTm9kZShiYXJyaWVyTm9kZSk7CiAgICAgICAg
IG1faW5zZXJ0aW9uU2V0Lmluc2VydChpbmRleEluQmxvY2ssIGJhcnJpZXJOb2RlKTsKICAgICB9
CiAKLSAgICBib29sIGZpeEludEVkZ2UoRWRnZSYgZWRnZSkKKyAgICB2b2lkIGZpeEludEVkZ2Uo
RWRnZSYgZWRnZSkKICAgICB7CiAgICAgICAgIE5vZGUqIG5vZGUgPSBlZGdlLm5vZGUoKTsKICAg
ICAgICAgaWYgKG5vZGUtPnNob3VsZFNwZWN1bGF0ZUludDMyKCkpIHsKICAgICAgICAgICAgIGZp
eEVkZ2U8SW50MzJVc2U+KGVkZ2UpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBVc2VLaW5kIHVzZUtp
bmQ7CkBAIC0xNjEwLDI0ICsxNjM1LDEzIEBAIHByaXZhdGU6CiAgICAgICAgIG9ic2VydmVVc2VL
aW5kT25Ob2RlKG5vZGUsIHVzZUtpbmQpOwogICAgICAgICAKICAgICAgICAgZWRnZSA9IEVkZ2Uo
bmV3Tm9kZSwgS25vd25JbnQzMlVzZSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAg
ICAKLSAgICB2b2lkIGZpeEJpbmFyeUludEVkZ2VzKCkKLSAgICB7Ci0gICAgICAgIEFkamFjZW5j
eUxpc3QgY2hpbGRyZW4gPSBtX2N1cnJlbnROb2RlLT5jaGlsZHJlbjsKLSAgICAgICAgCi0gICAg
ICAgIC8vIENhbGwgZml4SW50RWRnZSgpIG9uIGJvdGggZWRnZXMuCi0gICAgICAgIGJvb2wgbmVl
ZFBoYW50b20gPQotICAgICAgICAgICAgZml4SW50RWRnZShtX2N1cnJlbnROb2RlLT5jaGlsZDEo
KSkgfCBmaXhJbnRFZGdlKG1fY3VycmVudE5vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgCi0gICAg
ICAgIGlmICghbmVlZFBoYW50b20pCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1faW5z
ZXJ0aW9uU2V0Lmluc2VydE5vZGUobV9pbmRleEluQmxvY2sgKyAxLCBTcGVjTm9uZSwgUGhhbnRv
bSwgbV9jdXJyZW50Tm9kZS0+Y29kZU9yaWdpbiwgY2hpbGRyZW4pOworICAgICAgICBtX3JlcXVp
cmVkUGhhbnRvbXMuYXBwZW5kKG5vZGUpOwogICAgIH0KICAgICAKICAgICB2b2lkIGluamVjdElu
dDMyVG9Eb3VibGVOb2RlKEVkZ2UmIGVkZ2UsIFVzZUtpbmQgdXNlS2luZCA9IE51bWJlclVzZSkK
ICAgICB7CisgICAgICAgIG1fcmVxdWlyZWRQaGFudG9tcy5hcHBlbmQoZWRnZS5ub2RlKCkpOwor
ICAgICAgICAKICAgICAgICAgTm9kZSogcmVzdWx0ID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9k
ZSgKICAgICAgICAgICAgIG1faW5kZXhJbkJsb2NrLCBTcGVjSW50NTJBc0RvdWJsZSwgSW50MzJU
b0RvdWJsZSwKICAgICAgICAgICAgIG1fY3VycmVudE5vZGUtPmNvZGVPcmlnaW4sIEVkZ2UoZWRn
ZS5ub2RlKCksIE51bWJlclVzZSkpOwpAQCAtMTcyMiw3ICsxNzM2LDggQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgIGFycmF5TW9kZSA9
IGFycmF5TW9kZS5yZWZpbmUobm9kZS0+Y2hpbGQxKCktPnByZWRpY3Rpb24oKSwgbm9kZS0+cHJl
ZGljdGlvbigpKTsKKyAgICAgICAgYXJyYXlNb2RlID0gYXJyYXlNb2RlLnJlZmluZSgKKyAgICAg
ICAgICAgIG1fZ3JhcGgsIG5vZGUtPmNvZGVPcmlnaW4sIG5vZGUtPmNoaWxkMSgpLT5wcmVkaWN0
aW9uKCksIG5vZGUtPnByZWRpY3Rpb24oKSk7CiAgICAgICAgICAgICAKICAgICAgICAgaWYgKGFy
cmF5TW9kZS50eXBlKCkgPT0gQXJyYXk6OkdlbmVyaWMpIHsKICAgICAgICAgICAgIC8vIENoZWNr
IGlmIHRoZSBpbnB1dCBpcyBzb21ldGhpbmcgdGhhdCB3ZSBjYW4ndCBnZXQgYXJyYXkgbGVuZ3Ro
IGZvciwgYnV0IGZvciB3aGljaCB3ZQpAQCAtMTgxMywxMiArMTgyOCwyNyBAQCBwcml2YXRlOgog
ICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CisgICAgCisgICAgdm9pZCBhZGRQaGFudG9tc0lmTmVjZXNzYXJ5
KCkKKyAgICB7CisgICAgICAgIGlmIChtX3JlcXVpcmVkUGhhbnRvbXMuaXNFbXB0eSgpKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9y
ZXF1aXJlZFBoYW50b21zLnNpemUoKTsgaS0tOykgeworICAgICAgICAgICAgbV9pbnNlcnRpb25T
ZXQuaW5zZXJ0Tm9kZSgKKyAgICAgICAgICAgICAgICBtX2luZGV4SW5CbG9jayArIDEsIFNwZWNO
b25lLCBQaGFudG9tLCBtX2N1cnJlbnROb2RlLT5jb2RlT3JpZ2luLAorICAgICAgICAgICAgICAg
IEVkZ2UobV9yZXF1aXJlZFBoYW50b21zW2ldLCBVbnR5cGVkVXNlKSk7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIG1fcmVxdWlyZWRQaGFudG9tcy5yZXNpemUoMCk7CisgICAgfQogCiAg
ICAgQmFzaWNCbG9jayogbV9ibG9jazsKICAgICB1bnNpZ25lZCBtX2luZGV4SW5CbG9jazsKICAg
ICBOb2RlKiBtX2N1cnJlbnROb2RlOwogICAgIEluc2VydGlvblNldCBtX2luc2VydGlvblNldDsK
ICAgICBib29sIG1fcHJvZml0YWJpbGl0eUNoYW5nZWQ7CisgICAgVmVjdG9yPE5vZGUqLCAzPiBt
X3JlcXVpcmVkUGhhbnRvbXM7CiB9OwogICAgIAogYm9vbCBwZXJmb3JtRml4dXAoR3JhcGgmIGdy
YXBoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAppbmRleCA4MjU2MDA3ZTlj
NDAxNDIzNzhkMmZiMjZkNGU5OWZhYzI2NDhlMGJjLi4xMzVjYTg1ZmM5MTc3MDFlMzU1MjQ1Yzli
MDEwMGMyMGZlZWI5YTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0dyYXBoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcApA
QCAtMzYsOCArMzYsMTAgQEAKICNpbmNsdWRlICJGdW5jdGlvbkV4ZWN1dGFibGVEdW1wLmgiCiAj
aW5jbHVkZSAiSklULmgiCiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCisjaW5jbHVkZSAiTWF4
RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIKICNpbmNsdWRlICJPcGVyYW5kc0lubGluZXMu
aCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIK
ICNpbmNsdWRlIDx3dGYvQ29tbWFQcmludGVyLmg+CiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+
CiAKQEAgLTY3OCwxMCArNjgwLDEwIEBAIEZ1bGxCeXRlY29kZUxpdmVuZXNzJiBHcmFwaDo6bGl2
ZW5lc3NGb3IoSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUpCiBib29sIEdyYXBoOjpp
c0xpdmVJbkJ5dGVjb2RlKFZpcnR1YWxSZWdpc3RlciBvcGVyYW5kLCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4pCiB7CiAgICAgZm9yICg7OykgeworICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgcmVnID0g
VmlydHVhbFJlZ2lzdGVyKAorICAgICAgICAgICAgb3BlcmFuZC5vZmZzZXQoKSAtIGNvZGVPcmln
aW4uc3RhY2tPZmZzZXQoKSk7CisgICAgICAgIAogICAgICAgICBpZiAob3BlcmFuZC5vZmZzZXQo
KSA8IGNvZGVPcmlnaW4uc3RhY2tPZmZzZXQoKSArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNp
emUpIHsKLSAgICAgICAgICAgIFZpcnR1YWxSZWdpc3RlciByZWcgPSBWaXJ0dWFsUmVnaXN0ZXIo
Ci0gICAgICAgICAgICAgICAgb3BlcmFuZC5vZmZzZXQoKSAtIGNvZGVPcmlnaW4uc3RhY2tPZmZz
ZXQoKSk7Ci0gICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChyZWcuaXNBcmd1bWVudCgpKSB7
CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQocmVnLm9mZnNldCgpIDwgSlNTdGFjazo6
Q2FsbEZyYW1lSGVhZGVyU2l6ZSk7CiAgICAgICAgICAgICAgICAgCkBAIC03MDAsMTAgKzcwMiwx
OCBAQCBib29sIEdyYXBoOjppc0xpdmVJbkJ5dGVjb2RlKFZpcnR1YWxSZWdpc3RlciBvcGVyYW5k
LCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4pCiAgICAgICAgICAgICAgICAgcmVnLm9mZnNldCgpLCBj
b2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBp
ZiAoIWNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lKQorICAgICAgICBJbmxpbmVDYWxsRnJhbWUq
IGlubGluZUNhbGxGcmFtZSA9IGNvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lOworICAgICAgICBp
ZiAoIWlubGluZUNhbGxGcmFtZSkKICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIC8vIEFy
Z3VtZW50cyBhcmUgYWx3YXlzIGxpdmUuIFRoaXMgd291bGQgYmUgcmVkdW5kYW50IGlmIGl0IHdh
c24ndCBmb3Igb3VyCisgICAgICAgIC8vIG9wX2NhbGxfdmFyYXJncyBpbmxpbmluZy4KKyAgICAg
ICAgaWYgKHJlZy5pc0FyZ3VtZW50KCkKKyAgICAgICAgICAgICYmIHJlZy50b0FyZ3VtZW50KCkK
KyAgICAgICAgICAgICYmIHN0YXRpY19jYXN0PHNpemVfdD4ocmVnLnRvQXJndW1lbnQoKSkgPCBp
bmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgCi0gICAgICAgIGNvZGVPcmlnaW4gPSBjb2RlT3JpZ2luLmlubGluZUNhbGxG
cmFtZS0+Y2FsbGVyOworICAgICAgICBjb2RlT3JpZ2luID0gaW5saW5lQ2FsbEZyYW1lLT5jYWxs
ZXI7CiAgICAgfQogICAgIAogICAgIHJldHVybiB0cnVlOwpAQCAtNzExLDcgKzcyMSwxMyBAQCBi
b29sIEdyYXBoOjppc0xpdmVJbkJ5dGVjb2RlKFZpcnR1YWxSZWdpc3RlciBvcGVyYW5kLCBDb2Rl
T3JpZ2luIGNvZGVPcmlnaW4pCiAKIHVuc2lnbmVkIEdyYXBoOjpmcmFtZVJlZ2lzdGVyQ291bnQo
KQogewotICAgIHJldHVybiBtX25leHRNYWNoaW5lTG9jYWwgKyBtX3BhcmFtZXRlclNsb3RzOwor
ICAgIHVuc2lnbmVkIHJlc3VsdCA9IG1fbmV4dE1hY2hpbmVMb2NhbCArIHN0ZDo6bWF4KG1fcGFy
YW1ldGVyU2xvdHMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihtYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbEluUmVnaXN0ZXJzKSk7CisgICAgcmV0dXJuIHJvdW5kTG9jYWxSZWdpc3RlckNvdW50
Rm9yRnJhbWVQb2ludGVyT2Zmc2V0KHJlc3VsdCk7Cit9CisKK3Vuc2lnbmVkIEdyYXBoOjpzdGFj
a1BvaW50ZXJPZmZzZXQoKQoreworICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChm
cmFtZVJlZ2lzdGVyQ291bnQoKSAtIDEpLm9mZnNldCgpOwogfQogCiB1bnNpZ25lZCBHcmFwaDo6
cmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0dyYXBoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dy
YXBoLmgKaW5kZXggN2E1MTcwMDQ4NzFiNzc1ODc3MDk2OTJmMDQ3MmUzMmI5ZDlkMDFhMC4uMjkx
OWFmNDg3NjJiZjI1MzliMDhmMjBkZWRhNjVhZTU1NjNiNmU0ZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHR3JhcGguaApAQCAtNzkzLDYgKzc5Myw3IEBAIHB1YmxpYzoKICAgICBib29sIGlz
TGl2ZUluQnl0ZWNvZGUoVmlydHVhbFJlZ2lzdGVyLCBDb2RlT3JpZ2luKTsKICAgICAKICAgICB1
bnNpZ25lZCBmcmFtZVJlZ2lzdGVyQ291bnQoKTsKKyAgICB1bnNpZ25lZCBzdGFja1BvaW50ZXJP
ZmZzZXQoKTsKICAgICB1bnNpZ25lZCByZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0KCk7CiAg
ICAgdW5zaWduZWQgcmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhlY3V0aW9uQW5kRXhpdCgpOwog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAKaW5kZXggYzUzNjUz
ZjhmYWI1MzQ1OTc3MTJiMDAwY2QwMmQxNGE1MzNiMTAzMC4uMDYyNzVkM2E0YTE4ZmEzZDU3MWI5
NDMyNjJiODY5Y2MwODAxN2M4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdKSVRDb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENv
ZGUuY3BwCkBAIC0xNTYsNiArMTU2LDcgQEAgdm9pZCBKSVRDb2RlOjpzZXRPcHRpbWl6YXRpb25U
aHJlc2hvbGRCYXNlZE9uQ29tcGlsYXRpb25SZXN1bHQoCiAgICAgc3dpdGNoIChyZXN1bHQpIHsK
ICAgICBjYXNlIENvbXBpbGF0aW9uU3VjY2Vzc2Z1bDoKICAgICAgICAgb3B0aW1pemVOZXh0SW52
b2NhdGlvbihjb2RlQmxvY2spOworICAgICAgICBjb2RlQmxvY2stPmJhc2VsaW5lVmVyc2lvbigp
LT5tX2hhc0JlZW5Db21waWxlZFdpdGhGVEwgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAg
Y2FzZSBDb21waWxhdGlvbkZhaWxlZDoKICAgICAgICAgZG9udE9wdGltaXplQW55dGltZVNvb24o
Y29kZUJsb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklU
Q29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgKaW5kZXggMGU3
NzFlMDQ2NWI3M2Y1OGJmZmFmM2Y0OTU1ZjBjOTA5MzYyMzQ3OS4uMDJkNDc4ZWIyYjM2YTllZTE0
Y2Q3MGY2YmIyYzIwZDg1MTAyMjUzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdKSVRDb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRD
b2RlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTExOSw2ICsxMTksNyBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPERGRzo6T1NSRW50cnlE
YXRhPiBvc3JFbnRyeTsKICAgICBTZWdtZW50ZWRWZWN0b3I8REZHOjpPU1JFeGl0LCA4PiBvc3JF
eGl0OwogICAgIFZlY3RvcjxERkc6OlNwZWN1bGF0aW9uUmVjb3Zlcnk+IHNwZWN1bGF0aW9uUmVj
b3Zlcnk7CisgICAgVmVjdG9yPHVuc2lnbmVkPiBzbG93UGF0aENhbGxzOwogICAgIERGRzo6VmFy
aWFibGVFdmVudFN0cmVhbSB2YXJpYWJsZUV2ZW50U3RyZWFtOwogICAgIERGRzo6TWluaWZpZWRH
cmFwaCBtaW5pZmllZERGRzsKICNpZiBFTkFCTEUoRlRMX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKaW5kZXggMjkzNGQyYmE5YjA3MmYzOWI3N2U3
MTRlZTFjNjg3YTlkMWUxYTBkNi4uYTljMGYwZjIxZTI0YWExNDRjZWY0MjQyYWUxMzUxZmRlODRk
NDQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAK
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQXJp
dHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNs
dWRlICJERkdGYWlsZWRGaW5hbGl6ZXIuaCIKICNpbmNsdWRlICJERkdJbmxpbmVDYWNoZVdyYXBw
ZXJJbmxpbmVzLmgiCkBAIC00MCw2ICs0MSw3IEBACiAjaW5jbHVkZSAiREZHU3BlY3VsYXRpdmVK
SVQuaCIKICNpbmNsdWRlICJERkdUaHVua3MuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5l
cy5oIgorI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVk
ZSAiVk0uaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKQEAgLTkyLDE1ICs5NCwxNCBAQCB2
b2lkIEpJVENvbXBpbGVyOjpsaW5rT1NSRXhpdHMoKQogdm9pZCBKSVRDb21waWxlcjo6Y29tcGls
ZUVudHJ5KCkKIHsKICAgICAvLyBUaGlzIGNvZGUgY3VycmVudGx5IG1hdGNoZXMgdGhlIG9sZCBK
SVQuIEluIHRoZSBmdW5jdGlvbiBoZWFkZXIgd2UgbmVlZCB0bwotICAgIC8vIHBvcCB0aGUgcmV0
dXJuIGFkZHJlc3MgKHNpbmNlIHdlIGRvIG5vdCBhbGxvdyBhbnkgcmVjdXJzaW9uIG9uIHRoZSBt
YWNoaW5lCi0gICAgLy8gc3RhY2spLCBhbmQgcGVyZm9ybSBhIGZhc3Qgc3RhY2sgY2hlY2suCisg
ICAgLy8gc2F2ZSByZXR1cm4gYWRkcmVzcyBhbmQgY2FsbCBmcmFtZSB2aWEgdGhlIHByb2xvZ3Vl
IGFuZCBwZXJmb3JtIGEgZmFzdCBzdGFjayBjaGVjay4KICAgICAvLyBGSVhNRTogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MjkyCiAgICAgLy8gV2UnbGwgbmVlZCB0
byBjb252ZXJ0IHRoZSByZW1haW5pbmcgY3RpXyBzdHlsZSBjYWxscyAoc3BlY2lmaWNhbGx5IHRo
ZSBzdGFjawogICAgIC8vIGNoZWNrKSB3aGljaCB3aWxsIGJlIGRlcGVuZGVudCBvbiBzdGFjayBs
YXlvdXQuIChXZSdkIG5lZWQgdG8gYWNjb3VudCBmb3IgdGhpcyBpbgogICAgIC8vIGJvdGggbm9y
bWFsIHJldHVybiBjb2RlIGFuZCB3aGVuIGp1bXBpbmcgdG8gYW4gZXhjZXB0aW9uIGhhbmRsZXIp
LgotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChHUFJJbmZvOjpyZWdUMik7Ci0g
ICAgZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoR1BSSW5mbzo6cmVnVDIpOworICAg
IGVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1l
SGVhZGVyKG1fY29kZUJsb2NrLCBKU1N0YWNrOjpDb2RlQmxvY2spOworICAgIGppdEFzc2VydFRh
Z3NJblBsYWNlKCk7CiB9CiAKIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGVCb2R5KCkKQEAgLTEy
MSwyMiArMTIyLDI1IEBAIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGVFeGNlcHRpb25IYW5kbGVy
cygpCiAKICAgICBpZiAoIW1fZXhjZXB0aW9uQ2hlY2tzV2l0aENhbGxGcmFtZVJvbGxiYWNrLmVt
cHR5KCkpIHsKICAgICAgICAgbV9leGNlcHRpb25DaGVja3NXaXRoQ2FsbEZyYW1lUm9sbGJhY2su
bGluayh0aGlzKTsKLSAgICAgICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRl
clB0cihHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICBlbWl0R2V0Q2FsbGVyRnJhbWVG
cm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgICAgIGRv
TG9va3VwID0ganVtcCgpOwogICAgIH0KIAogICAgIGlmICghbV9leGNlcHRpb25DaGVja3MuZW1w
dHkoKSkKICAgICAgICAgbV9leGNlcHRpb25DaGVja3MubGluayh0aGlzKTsKIAotICAgIC8vIGxv
b2t1cEV4Y2VwdGlvbkhhbmRsZXIgaXMgcGFzc2VkIG9uZSBhcmd1bWVudCwgdGhlIGV4ZWMgKHRo
ZSBDYWxsRnJhbWUqKS4KLSAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOworICAgIC8vIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIgaXMgcGFz
c2VkIHR3byBhcmd1bWVudHMsIHRoZSBWTSBhbmQgdGhlIGV4ZWMgKHRoZSBDYWxsRnJhbWUqKS4K
KyAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjEpOwogCiAgICAgaWYgKGRvTG9va3VwLmlzU2V0KCkpCiAgICAgICAgIGRvTG9va3VwLmxpbmso
dGhpcyk7CiAKKyAgICBtb3ZlKFRydXN0ZWRJbW1QdHIodm0oKSksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CisKICNpZiBDUFUoWDg2KQogICAgIC8vIEZJWE1FOiBzaG91bGQgdXNlIHRoZSBjYWxs
IGFic3RyYWN0aW9uLCBidXQgdGhpcyBpcyBjdXJyZW50bHkgaW4gdGhlIFNwZWN1bGF0aXZlSklU
IGxheWVyIQogICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICBwb2tlKEdQUklu
Zm86OmFyZ3VtZW50R1BSMSwgMSk7CiAjZW5kaWYKICAgICBtX2NhbGxzLmFwcGVuZChDYWxsTGlu
a1JlY29yZChjYWxsKCksIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIpKTsKICAgICBqdW1wVG9FeGNl
cHRpb25IYW5kbGVyKCk7CkBAIC0yMjgsMTMgKzIzMiwxNiBAQCB2b2lkIEpJVENvbXBpbGVyOjps
aW5rKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpCiAgICAgICAgIGluZm8ucGF0Y2guZGVsdGFDYWxs
VG9TbG93Q2FzZSA9IGRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cihjYWxsUmV0dXJuTG9jYXRpb24s
IGxpbmtCdWZmZXIubG9jYXRpb25PZihtX2luc1tpXS5tX3Nsb3dQYXRoR2VuZXJhdG9yLT5sYWJl
bCgpKSk7CiAgICAgfQogICAgIAorICAgIFJFTEVBU0VfQVNTRVJUKCFtX2dyYXBoLm1fcGxhbi53
aWxsVHJ5VG9UaWVyVXAgfHwgbV9qaXRDb2RlLT5zbG93UGF0aENhbGxzLnNpemUoKSA+PSBtX2pz
Q2FsbHMuc2l6ZSgpKTsKICAgICBtX2NvZGVCbG9jay0+c2V0TnVtYmVyT2ZDYWxsTGlua0luZm9z
KG1fanNDYWxscy5zaXplKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2pzQ2Fs
bHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgQ2FsbExpbmtJbmZvJiBpbmZvID0gbV9jb2RlQmxv
Y2stPmNhbGxMaW5rSW5mbyhpKTsKICAgICAgICAgaW5mby5jYWxsVHlwZSA9IG1fanNDYWxsc1tp
XS5tX2NhbGxUeXBlOwotICAgICAgICBpbmZvLmlzREZHID0gdHJ1ZTsKICAgICAgICAgaW5mby5j
b2RlT3JpZ2luID0gbV9qc0NhbGxzW2ldLm1fY29kZU9yaWdpbjsKLSAgICAgICAgbGlua0J1ZmZl
ci5saW5rKG1fanNDYWxsc1tpXS5tX3Nsb3dDYWxsLCBGdW5jdGlvblB0cigobV92bS0+Z2V0Q1RJ
U3R1YihpbmZvLmNhbGxUeXBlID09IENhbGxMaW5rSW5mbzo6Q29uc3RydWN0ID8gbGlua0NvbnN0
cnVjdFRodW5rR2VuZXJhdG9yIDogbGlua0NhbGxUaHVua0dlbmVyYXRvcikpLmNvZGUoKS5leGVj
dXRhYmxlQWRkcmVzcygpKSk7CisgICAgICAgIFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvciA9IGxp
bmtUaHVua0dlbmVyYXRvckZvcigKKyAgICAgICAgICAgIGluZm8uY2FsbFR5cGUgPT0gQ2FsbExp
bmtJbmZvOjpDb25zdHJ1Y3QgPyBDb2RlRm9yQ29uc3RydWN0IDogQ29kZUZvckNhbGwsCisgICAg
ICAgICAgICBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKKyAgICAgICAgbGlua0J1
ZmZlci5saW5rKG1fanNDYWxsc1tpXS5tX3Nsb3dDYWxsLCBGdW5jdGlvblB0cihtX3ZtLT5nZXRD
VElTdHViKGdlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKICAgICAgICAg
aW5mby5jYWxsUmV0dXJuTG9jYXRpb24gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2ZOZWFyQ2FsbCht
X2pzQ2FsbHNbaV0ubV9zbG93Q2FsbCk7CiAgICAgICAgIGluZm8uaG90UGF0aEJlZ2luID0gbGlu
a0J1ZmZlci5sb2NhdGlvbk9mKG1fanNDYWxsc1tpXS5tX3RhcmdldFRvQ2hlY2spOwogICAgICAg
ICBpbmZvLmhvdFBhdGhPdGhlciA9IGxpbmtCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsKG1fanND
YWxsc1tpXS5tX2Zhc3RDYWxsKTsKQEAgLTI3OCw2ICsyODUsOCBAQCB2b2lkIEpJVENvbXBpbGVy
Ojpjb21waWxlKCkKICAgICBzZXRTdGFydE9mQ29kZSgpOwogICAgIGNvbXBpbGVFbnRyeSgpOwog
ICAgIG1fc3BlY3VsYXRpdmUgPSBhZG9wdFB0cihuZXcgU3BlY3VsYXRpdmVKSVQoKnRoaXMpKTsK
KyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKG1fZ3JhcGguc3RhY2tQb2ludGVyT2Zmc2V0KCkgKiBz
aXplb2YoUmVnaXN0ZXIpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogICAgIGNvbXBp
bGVCb2R5KCk7CiAgICAgc2V0RW5kT2ZNYWluUGF0aCgpOwogCkBAIC0zMjUsMTEgKzMzNCwxMiBA
QCB2b2lkIEpJVENvbXBpbGVyOjpjb21waWxlRnVuY3Rpb24oKQogICAgIC8vIHNvIGVudGVyIGFm
dGVyIHRoaXMuCiAgICAgTGFiZWwgZnJvbUFyaXR5Q2hlY2sodGhpcyk7CiAgICAgLy8gUGxhbnQg
YSBjaGVjayB0aGF0IHN1ZmZpY2llbnQgc3BhY2UgaXMgYXZhaWxhYmxlIGluIHRoZSBKU1N0YWNr
LgotICAgIGFkZFB0cihUcnVzdGVkSW1tMzIodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwobV9ncmFw
aC5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCkpLm9mZnNldCgpICog
c2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjpy
ZWdUMSk7Ci0gICAgSnVtcCBzdGFja0NoZWNrID0gYnJhbmNoUHRyKEFib3ZlLCBBYnNvbHV0ZUFk
ZHJlc3MobV92bS0+YWRkcmVzc09mSlNTdGFja0xpbWl0KCkpLCBHUFJJbmZvOjpyZWdUMSk7Ci0g
ICAgLy8gUmV0dXJuIGhlcmUgYWZ0ZXIgc3RhY2sgY2hlY2suCi0gICAgTGFiZWwgZnJvbVN0YWNr
Q2hlY2sgPSBsYWJlbCgpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIodmlydHVhbFJlZ2lzdGVy
Rm9yTG9jYWwobV9ncmFwaC5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0
KCkgLSAxKS5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLCBHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3RlciwgR1BSSW5mbzo6cmVnVDEpOworICAgIEp1bXAgc3RhY2tPdmVyZmxvdyA9IGJyYW5j
aFB0cihBYm92ZSwgQWJzb2x1dGVBZGRyZXNzKG1fdm0tPmFkZHJlc3NPZkpTU3RhY2tMaW1pdCgp
KSwgR1BSSW5mbzo6cmVnVDEpOwogCisgICAgLy8gTW92ZSB0aGUgc3RhY2sgcG9pbnRlciBkb3du
IHRvIGFjY29tbW9kYXRlIGxvY2FscworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIobV9ncmFwaC5z
dGFja1BvaW50ZXJPZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLCBHUFJJbmZvOjpjYWxsRnJh
bWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVy
QWxpZ25tZW50KCk7CiAKICAgICAvLyA9PT0gRnVuY3Rpb24gYm9keSBjb2RlIGdlbmVyYXRpb24g
PT09CiAgICAgbV9zcGVjdWxhdGl2ZSA9IGFkb3B0UHRyKG5ldyBTcGVjdWxhdGl2ZUpJVCgqdGhp
cykpOwpAQCAtMzM4LDE3ICszNDgsMTkgQEAgdm9pZCBKSVRDb21waWxlcjo6Y29tcGlsZUZ1bmN0
aW9uKCkKIAogICAgIC8vID09PSBGdW5jdGlvbiBmb290ZXIgY29kZSBnZW5lcmF0aW9uID09PQog
ICAgIC8vCi0gICAgLy8gR2VuZXJhdGUgY29kZSB0byBwZXJmb3JtIHRoZSBzbG93IHN0YWNrIGNo
ZWNrIChpZiB0aGUgZmFzdCBvbmUgaW4KKyAgICAvLyBHZW5lcmF0ZSBjb2RlIHRvIHBlcmZvcm0g
dGhlIHN0YWNrIG92ZXJmbG93IGhhbmRsaW5nIChpZiB0aGUgc3RhY2sgY2hlY2sgaW4KICAgICAv
LyB0aGUgZnVuY3Rpb24gaGVhZGVyIGZhaWxzKSwgYW5kIGdlbmVyYXRlIHRoZSBlbnRyeSBwb2lu
dCB3aXRoIGFyaXR5IGNoZWNrLgogICAgIC8vCi0gICAgLy8gR2VuZXJhdGUgdGhlIHN0YWNrIGNo
ZWNrOyBpZiB0aGUgZmFzdCBjaGVjayBpbiB0aGUgZnVuY3Rpb24gaGVhZCBmYWlscywKLSAgICAv
LyB3ZSBuZWVkIHRvIGNhbGwgb3V0IHRvIGEgaGVscGVyIGZ1bmN0aW9uIHRvIGNoZWNrIHdoZXRo
ZXIgbW9yZSBzcGFjZSBpcyBhdmFpbGFibGUuCi0gICAgLy8gRklYTUU6IGNoYW5nZSB0aGlzIGZy
b20gYSBjdGkgY2FsbCB0byBhIERGRyBzdHlsZSBvcGVyYXRpb24gKG5vcm1hbCBDIGNhbGxpbmcg
Y29udmVudGlvbnMpLgotICAgIHN0YWNrQ2hlY2subGluayh0aGlzKTsKKyAgICAvLyBHZW5lcmF0
ZSB0aGUgc3RhY2sgb3ZlcmZsb3cgaGFuZGxpbmc7IGlmIHRoZSBzdGFjayBjaGVjayBpbiB0aGUg
ZnVuY3Rpb24gaGVhZCBmYWlscywKKyAgICAvLyB3ZSBuZWVkIHRvIGNhbGwgb3V0IHRvIGEgaGVs
cGVyIGZ1bmN0aW9uIHRvIHRocm93IHRoZSBTdGFja092ZXJmbG93RXJyb3IuCisgICAgc3RhY2tP
dmVyZmxvdy5saW5rKHRoaXMpOwogCiAgICAgZW1pdFN0b3JlQ29kZU9yaWdpbihDb2RlT3JpZ2lu
KDApKTsKLSAgICBtX3NwZWN1bGF0aXZlLT5jYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxi
YWNrT25FeGNlcHRpb24ob3BlcmF0aW9uU3RhY2tDaGVjaywgbV9jb2RlQmxvY2spOwotICAgIGp1
bXAoZnJvbVN0YWNrQ2hlY2spOworCisgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsKQorICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1tYXhGcmFtZUV4dGVudEZvclNsb3dQ
YXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKworICAgIG1fc3BlY3VsYXRpdmUtPmNh
bGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb25UaHJv
d1N0YWNrT3ZlcmZsb3dFcnJvciwgbV9jb2RlQmxvY2spOwogICAgIAogICAgIC8vIFRoZSBmYXN0
IGVudHJ5IHBvaW50IGludG8gYSBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB0aGUgY29ycmVjdCBu
dW1iZXIgb2YgYXJndW1lbnRzCiAgICAgLy8gaGF2ZSBiZWVuIHBhc3NlZCB0byB0aGUgY2FsbCAo
d2Ugb25seSB1c2UgdGhlIGZhc3QgZW50cnkgcG9pbnQgd2hlcmUgd2UgY2FuIHN0YXRpY2FsbHkK
QEAgLTM2MSw5ICszNzMsMTUgQEAgdm9pZCBKSVRDb21waWxlcjo6Y29tcGlsZUZ1bmN0aW9uKCkK
ICAgICBsb2FkMzIoQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKChWaXJ0dWFsUmVnaXN0ZXIp
SlNTdGFjazo6QXJndW1lbnRDb3VudCksIEdQUkluZm86OnJlZ1QxKTsKICAgICBicmFuY2gzMihB
Ym92ZU9yRXF1YWwsIEdQUkluZm86OnJlZ1QxLCBUcnVzdGVkSW1tMzIobV9jb2RlQmxvY2stPm51
bVBhcmFtZXRlcnMoKSkpLmxpbmtUbyhmcm9tQXJpdHlDaGVjaywgdGhpcyk7CiAgICAgZW1pdFN0
b3JlQ29kZU9yaWdpbihDb2RlT3JpZ2luKDApKTsKKyAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwpCisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLW1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgIG1fc3BlY3VsYXRp
dmUtPmNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihtX2NvZGVC
bG9jay0+bV9pc0NvbnN0cnVjdG9yID8gb3BlcmF0aW9uQ29uc3RydWN0QXJpdHlDaGVjayA6IG9w
ZXJhdGlvbkNhbGxBcml0eUNoZWNrLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgaWYgKG1heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKG1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgIGJy
YW5jaFRlc3QzMihaZXJvLCBHUFJJbmZvOjpyZWdUMCkubGlua1RvKGZyb21Bcml0eUNoZWNrLCB0
aGlzKTsKICAgICBlbWl0U3RvcmVDb2RlT3JpZ2luKENvZGVPcmlnaW4oMCkpOworICAgIG1vdmUo
VHJ1c3RlZEltbVB0cihtX3ZtLT5hcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy0+cmV0dXJuUENz
Rm9yKCptX3ZtLCBtX2NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSksIEdQUkluZm86OnJlZ1Q1
KTsKKyAgICBsb2FkUHRyKEJhc2VJbmRleChHUFJJbmZvOjpyZWdUNSwgR1BSSW5mbzo6cmVnVDAs
IHRpbWVzUHRyKCkpLCBHUFJJbmZvOjpyZWdUNSk7CiAgICAgbV9jYWxsQXJpdHlGaXh1cCA9IGNh
bGwoKTsKICAgICBqdW1wKGZyb21Bcml0eUNoZWNrKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAppbmRleCA4MDJlNDdhZDg3MWI4NjViYTJlMmQxOGVh
MDFlMDllOGU0ZmVjNmFhLi44MmVhYzBmZDBmNDFjMDU0YzljODY5ODI4NzY4OWYyNTdkYjc0ZDZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oCkBAIC0yMjEs
NiArMjIxLDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1faW5zLmFwcGVuZChyZWNvcmQp
OwogICAgIH0KKyAgICAKKyAgICB1bnNpZ25lZCBjdXJyZW50SlNDYWxsSW5kZXgoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG1fanNDYWxscy5zaXplKCk7CisgICAgfQogCiAgICAgdm9p
ZCBhZGRKU0NhbGwoQ2FsbCBmYXN0Q2FsbCwgQ2FsbCBzbG93Q2FsbCwgRGF0YUxhYmVsUHRyIHRh
cmdldFRvQ2hlY2ssIENhbGxMaW5rSW5mbzo6Q2FsbFR5cGUgY2FsbFR5cGUsIEdQUlJlZyBjYWxs
ZWUsIENvZGVPcmlnaW4gY29kZU9yaWdpbikKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVEZpbmFsaXplci5jcHAKaW5kZXggYjdlYTU5NGM2N2RiZjNkZWFmNDdmODk2
NzI2MmU2ZDQwZGY0ZGU4ZS4uNzk5ZThjYTVkYmEzMTczYWU4MzJkYjc4ZWYxNTc5ZTdjMDc3YTY1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmNwcApA
QCAtNDYsMTAgKzQ2LDE2IEBAIEpJVEZpbmFsaXplcjo6fkpJVEZpbmFsaXplcigpCiB7CiB9CiAK
K3NpemVfdCBKSVRGaW5hbGl6ZXI6OmNvZGVTaXplKCkKK3sKKyAgICByZXR1cm4gbV9saW5rQnVm
ZmVyLT5zaXplKCk7Cit9CisKIGJvb2wgSklURmluYWxpemVyOjpmaW5hbGl6ZSgpCiB7Ci0gICAg
bV9qaXRDb2RlLT5pbml0aWFsaXplQ29kZVJlZihtX2xpbmtCdWZmZXItPmZpbmFsaXplQ29kZVdp
dGhvdXREaXNhc3NlbWJseSgpKTsKLSAgICBtX3BsYW4uY29kZUJsb2NrLT5zZXRKSVRDb2RlKG1f
aml0Q29kZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKCkpOworICAgIG1faml0Q29kZS0+aW5pdGlh
bGl6ZUNvZGVSZWYoCisgICAgICAgIG1fbGlua0J1ZmZlci0+ZmluYWxpemVDb2RlV2l0aG91dERp
c2Fzc2VtYmx5KCksIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpKTsKKyAgICBtX3BsYW4uY29kZUJs
b2NrLT5zZXRKSVRDb2RlKG1faml0Q29kZSk7CiAgICAgCiAgICAgZmluYWxpemVDb21tb24oKTsK
ICAgICAKQEAgLTU5LDggKzY1LDkgQEAgYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplKCkKIGJv
b2wgSklURmluYWxpemVyOjpmaW5hbGl6ZUZ1bmN0aW9uKCkKIHsKICAgICBSRUxFQVNFX0FTU0VS
VCghbV93aXRoQXJpdHlDaGVjay5pc0VtcHR5VmFsdWUoKSk7Ci0gICAgbV9qaXRDb2RlLT5pbml0
aWFsaXplQ29kZVJlZihtX2xpbmtCdWZmZXItPmZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJs
eSgpKTsKLSAgICBtX3BsYW4uY29kZUJsb2NrLT5zZXRKSVRDb2RlKG1faml0Q29kZSwgbV93aXRo
QXJpdHlDaGVjayk7CisgICAgbV9qaXRDb2RlLT5pbml0aWFsaXplQ29kZVJlZigKKyAgICAgICAg
bV9saW5rQnVmZmVyLT5maW5hbGl6ZUNvZGVXaXRob3V0RGlzYXNzZW1ibHkoKSwgbV93aXRoQXJp
dHlDaGVjayk7CisgICAgbV9wbGFuLmNvZGVCbG9jay0+c2V0SklUQ29kZShtX2ppdENvZGUpOwog
ICAgIAogICAgIGZpbmFsaXplQ29tbW9uKCk7CiAgICAgCkBAIC03NSw2ICs4Miw5IEBAIHZvaWQg
SklURmluYWxpemVyOjpmaW5hbGl6ZUNvbW1vbigpCiAgICAgCiAgICAgaWYgKG1fcGxhbi5jb21w
aWxhdGlvbikKICAgICAgICAgbV9wbGFuLnZtLm1fcGVyQnl0ZWNvZGVQcm9maWxlci0+YWRkQ29t
cGlsYXRpb24obV9wbGFuLmNvbXBpbGF0aW9uKTsKKyAgICAKKyAgICBpZiAoIW1fcGxhbi53aWxs
VHJ5VG9UaWVyVXApCisgICAgICAgIG1fcGxhbi5jb2RlQmxvY2stPmJhc2VsaW5lVmVyc2lvbigp
LT5tX2RpZEZhaWxGVExDb21waWxhdGlvbiA9IHRydWU7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpERkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmlu
YWxpemVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5oCmlu
ZGV4IDVjN2M4MmI2NjViYTU0MDY5NmQxYjRkMDU5ZTdmYzY5ZmIwOTRiNjAuLjU0MmFmNTdhYTNh
NzQ2NDkzYTBkZWJiNmQ1NGJiYTYwYzNkMTQ2NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdKSVRGaW5hbGl6ZXIuaApAQCAtNDIsNiArNDIsNyBAQCBwdWJsaWM6CiAgICAgSklU
RmluYWxpemVyKFBsYW4mLCBQYXNzUmVmUHRyPEpJVENvZGU+LCBQYXNzT3duUHRyPExpbmtCdWZm
ZXI+LCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgd2l0aEFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyOjpFbXB0eVZhbHVlKSk7CiAgICAgdmlydHVh
bCB+SklURmluYWxpemVyKCk7CiAgICAgCisgICAgdmlydHVhbCBzaXplX3QgY29kZVNpemUoKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZmluYWxpemUoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgZmluYWxpemVGdW5jdGlvbigpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZS5oCmluZGV4IDU1YTllZGU4ZGI4YjhjMzBhNjdiZWRjOWJhNGU1MTQ1NGEwYmI4
NGIuLjc1YWY2NmNlNzRiZjVhNTQ2ZDUzNjRkZjBhNDFjMzBmMTg3NDExM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMTk4LDYgKzEx
OTgsMTEgQEAgc3RydWN0IE5vZGUgewogICAgICAgICAgICAgcmV0dXJuIHNob3VsZEdlbmVyYXRl
KCk7CiAgICAgICAgIH0KICAgICB9CisgICAgCisgICAgYm9vbCBpc1NlbWFudGljYWxseVNraXBw
YWJsZSgpCisgICAgeworICAgICAgICByZXR1cm4gb3AoKSA9PSBDb3VudEV4ZWN1dGlvbjsKKyAg
ICB9CiAKICAgICB1bnNpZ25lZCByZWZDb3VudCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCmluZGV4IDM5NmNhNjExOTIxZGMxNjg1ZGMwNGJhM2Rl
NjA5N2I4NjRkMmI3NmYuLjYxZTllYzc0MjlmYjcxOWUyYTQ2MTg5ZDk5OTI5MjcwOTZkZjc0MmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAKQEAgLTQ5LDYg
KzQ5LDkgQEAgdm9pZCBkdW1wTm9kZUZsYWdzKFByaW50U3RyZWFtJiBhY3R1YWxPdXQsIE5vZGVG
bGFncyBmbGFncykKICAgICAgICAgY2FzZSBOb2RlUmVzdWx0SW50MzI6CiAgICAgICAgICAgICBv
dXQucHJpbnQoY29tbWEsICJJbnQzMiIpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgTm9kZVJlc3VsdEludDUyOgorICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiSW50NTIi
KTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE5vZGVSZXN1bHRCb29sZWFuOgog
ICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiQm9vbGVhbiIpOwogICAgICAgICAgICAgYnJl
YWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2YWlsYWJp
bGl0eUFuYWx5c2lzUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JB
dmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmNwcAppbmRleCBhNjQ5NjM1ODFhNDczN2M0ZThhMjkw
ODM4YTYyOGQyYTVjOTMzMTBmLi5mY2IyYzk0ODVjMTJmZmI5NjhmNjcwNDU0OTcyMzljN2YwODNi
Y2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkF2YWlsYWJp
bGl0eUFuYWx5c2lzUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5jcHAKQEAgLTYxLDE1ICs2MSwxMyBAQCBwdWJs
aWM6CiAgICAgICAgICAgICAgICAgQXZhaWxhYmlsaXR5Ojp1bmF2YWlsYWJsZSgpLndpdGhGbHVz
aCgKICAgICAgICAgICAgICAgICAgICAgRmx1c2hlZEF0KEZsdXNoZWRKU1ZhbHVlLCB2aXJ0dWFs
UmVnaXN0ZXJGb3JBcmd1bWVudChhcmd1bWVudCkpKTsKICAgICAgICAgfQotICAgICAgICBmb3Ig
KHVuc2lnbmVkIGxvY2FsID0gcm9vdC0+c3NhLT5hdmFpbGFiaWxpdHlBdEhlYWQubnVtYmVyT2ZM
b2NhbHMoKTsgbG9jYWwtLTspCi0gICAgICAgICAgICByb290LT5zc2EtPmF2YWlsYWJpbGl0eUF0
SGVhZC5sb2NhbChsb2NhbCkgPSBBdmFpbGFiaWxpdHk6OnVuYXZhaWxhYmxlKCk7Ci0gICAgICAg
IAorCiAgICAgICAgIGlmIChtX2dyYXBoLm1fcGxhbi5tb2RlID09IEZUTEZvck9TUkVudHJ5TW9k
ZSkgewotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBsb2NhbCA9IG1fZ3JhcGgubV9wcm9maWxl
ZEJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVyczsgbG9jYWwtLTspIHsKLSAgICAgICAgICAgICAg
ICByb290LT5zc2EtPmF2YWlsYWJpbGl0eUF0SGVhZC5sb2NhbChsb2NhbCkgPQotICAgICAgICAg
ICAgICAgICAgICBBdmFpbGFiaWxpdHk6OnVuYXZhaWxhYmxlKCkud2l0aEZsdXNoKAotICAgICAg
ICAgICAgICAgICAgICAgICAgRmx1c2hlZEF0KEZsdXNoZWRKU1ZhbHVlLCB2aXJ0dWFsUmVnaXN0
ZXJGb3JMb2NhbChsb2NhbCkpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAodW5z
aWduZWQgbG9jYWwgPSBtX2dyYXBoLm1fcHJvZmlsZWRCbG9jay0+bV9udW1DYWxsZWVSZWdpc3Rl
cnM7IGxvY2FsLS07KQorICAgICAgICAgICAgICAgIHJvb3QtPnNzYS0+YXZhaWxhYmlsaXR5QXRI
ZWFkLmxvY2FsKGxvY2FsKSA9IEF2YWlsYWJpbGl0eTo6dW5hdmFpbGFibGUoKTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgbG9jYWwgPSByb290LT5zc2EtPmF2
YWlsYWJpbGl0eUF0SGVhZC5udW1iZXJPZkxvY2FscygpOyBsb2NhbC0tOykKKyAgICAgICAgICAg
ICAgICByb290LT5zc2EtPmF2YWlsYWJpbGl0eUF0SGVhZC5sb2NhbChsb2NhbCkgPSBBdmFpbGFi
aWxpdHk6OnVuYXZhaWxhYmxlKCk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIFRo
aXMgY291bGQgYmUgbWFkZSBtb3JlIGVmZmljaWVudCBieSBwcm9jZXNzaW5nIGJsb2NrcyBpbiBy
ZXZlcnNlIHBvc3RvcmRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT1NSRW50cnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5j
cHAKaW5kZXggYzEyODgxODc0MGM1MGJmOGVjZmFkZTFlNDhlNmQ3ZTI2MDcwMzhmNS4uZmVhY2Fl
OTdiODIxZDA4Mjc1NjQ3MzM5NjhhOGZhMzY2MWNhYzM0NiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAKQEAgLTQ0LDcgKzQ0LDEwIEBAIHZvaWQqIHByZXBhcmVP
U1JFbnRyeShFeGVjU3RhdGUqIGV4ZWMsIENvZGVCbG9jayogY29kZUJsb2NrLCB1bnNpZ25lZCBi
eXRlY29kZUluCiAgICAgQVNTRVJUKGNvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKSk7CiAgICAgQVNT
RVJUKGNvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKS0+aml0VHlwZSgpID09IEpJVENvZGU6OkJhc2Vs
aW5lSklUKTsKICAgICBBU1NFUlQoIWNvZGVCbG9jay0+aml0Q29kZU1hcCgpKTsKLSAgICAKKwor
ICAgIGlmICghT3B0aW9uczo6ZW5hYmxlT1NSRW50cnlUb0RGRygpKQorICAgICAgICByZXR1cm4g
MDsKKwogICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpIHsKICAgICAgICAgZGF0YUxvZygK
ICAgICAgICAgICAgICJERkcgT1NSIGluICIsICpjb2RlQmxvY2stPmFsdGVybmF0aXZlKCksICIg
LT4gIiwgKmNvZGVCbG9jaywKQEAgLTUyLDggKzU1LDggQEAgdm9pZCogcHJlcGFyZU9TUkVudHJ5
KEV4ZWNTdGF0ZSogZXhlYywgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2Rl
SW4KICAgICB9CiAgICAgCiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7Ci0gICAgCi0gICAgdm0t
PmludGVycHJldGVyLT5zdGFjaygpLnNhbml0aXplU3RhY2soKTsKKworICAgIHNhbml0aXplU3Rh
Y2tGb3JWTSh2bSk7CiAgICAgCiAgICAgaWYgKGNvZGVCbG9jay0+aml0VHlwZSgpICE9IEpJVENv
ZGU6OkRGR0pJVCkgewogICAgICAgICBSRUxFQVNFX0FTU0VSVChjb2RlQmxvY2stPmppdFR5cGUo
KSA9PSBKSVRDb2RlOjpGVExKSVQpOwpAQCAtMTg1LDcgKzE4OCw3IEBAIHZvaWQqIHByZXBhcmVP
U1JFbnRyeShFeGVjU3RhdGUqIGV4ZWMsIENvZGVCbG9jayogY29kZUJsb2NrLCB1bnNpZ25lZCBi
eXRlY29kZUluCiAgICAgLy8gICAgd291bGQgaGF2ZSBvdGhlcndpc2UganVzdCBrZXB0IHJ1bm5p
bmcgYWxiZWl0IGxlc3MgcXVpY2tseS4KICAgICAKICAgICB1bnNpZ25lZCBmcmFtZVNpemUgPSBq
aXRDb2RlLT5jb21tb24ucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhlY3V0aW9uQW5kRXhpdCgp
OwotICAgIGlmICghdm0tPmludGVycHJldGVyLT5zdGFjaygpLmdyb3coJmV4ZWMtPnJlZ2lzdGVy
cygpW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGZyYW1lU2l6ZSkub2Zmc2V0KCldKSkgeworICAg
IGlmICghdm0tPmludGVycHJldGVyLT5zdGFjaygpLmVuc3VyZUNhcGFjaXR5Rm9yKCZleGVjLT5y
ZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChmcmFtZVNpemUgLSAxKS5vZmZzZXQo
KV0pKSB7CiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCiAgICAgICAgICAgICBk
YXRhTG9nRigiICAgIE9TUiBmYWlsZWQgYmVjYXVzZSBzdGFjayBncm93dGggZmFpbGVkLlxuIik7
CiAgICAgICAgIHJldHVybiAwOwpAQCAtMjEzLDEyICsyMTYsMTQgQEAgdm9pZCogcHJlcGFyZU9T
UkVudHJ5KEV4ZWNTdGF0ZSogZXhlYywgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIHVuc2lnbmVkIGJ5
dGVjb2RlSW4KICAgICAKICAgICAvLyA1KSBDbGVhciB0aG9zZSBwYXJ0cyBvZiB0aGUgY2FsbCBm
cmFtZSB0aGF0IHRoZSBERkcgYWluJ3QgdXNpbmcuIFRoaXMgaGVscHMgR0Mgb24gc29tZQogICAg
IC8vICAgIHByb2dyYW1zIGJ5IGVsaW1pbmF0aW5nIHNvbWUgc3RhbGUgcG9pbnRlciBwYXRob2xv
Z2llcy4KLSAgICAKKworI2lmIDAgLy8gRklYTUU6IENTdGFjayAtIFRoaXMgbmVlZHMgdG8gYmUg
dmVyaWZpZWQgYmVmb3JlIGJlaW5nIGVuYWJsZWQKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBmcmFt
ZVNpemU7IGktLTspIHsKICAgICAgICAgaWYgKGVudHJ5LT5tX21hY2hpbmVTdGFja1VzZWQuZ2V0
KGkpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIHJlZ2lzdGVyc1t2aXJ0dWFsUmVn
aXN0ZXJGb3JMb2NhbChpKS5vZmZzZXQoKV0gPSBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsK
ICAgICB9CisjZW5kaWYKICAgICAKICAgICAvLyA2KSBGaXggdGhlIGNhbGwgZnJhbWUuCiAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5cG9pbnRD
cmVhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnlw
b2ludENyZWF0aW9uUGhhc2UuY3BwCmluZGV4IDRmODJkMTVmYWNhZWMzOTNhNzMwMTVlMGY4ZjE2
MWZkOGQzZDZhNjMuLjI2NjE1MTA1MjZlN2RmYzE1ZTA3MmNlZDZlMWU4Njg3NzNjMGQxZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnlwb2ludENyZWF0
aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnlw
b2ludENyZWF0aW9uUGhhc2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC02Myw3ICs2MywxMCBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICBCYXNpY0Jsb2NrKiBibG9jayA9IG1fZ3JhcGguYmxvY2soYmxvY2tJbmRleCk7CiAgICAgICAg
ICAgICBpZiAoIWJsb2NrKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAg
dW5zaWduZWQgbm9kZUluZGV4ID0gMDsKICAgICAgICAgICAgIE5vZGUqIGZpcnN0Tm9kZSA9IGJs
b2NrLT5hdCgwKTsKKyAgICAgICAgICAgIHdoaWxlIChmaXJzdE5vZGUtPmlzU2VtYW50aWNhbGx5
U2tpcHBhYmxlKCkpCisgICAgICAgICAgICAgICAgZmlyc3ROb2RlID0gYmxvY2stPmF0KCsrbm9k
ZUluZGV4KTsKICAgICAgICAgICAgIGlmIChmaXJzdE5vZGUtPm9wKCkgPT0gTG9vcEhpbnQKICAg
ICAgICAgICAgICAgICAmJiBmaXJzdE5vZGUtPmNvZGVPcmlnaW4gPT0gQ29kZU9yaWdpbihieXRl
Y29kZUluZGV4KSkgewogICAgICAgICAgICAgICAgIHRhcmdldCA9IGJsb2NrOwpAQCAtODMsMTcg
Kzg2LDYgQEAgcHVibGljOgogICAgICAgICBCYXNpY0Jsb2NrKiBuZXdSb290ID0gaW5zZXJ0aW9u
U2V0Lmluc2VydCgwKTsKICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luID0gdGFyZ2V0LT5h
dCgwKS0+Y29kZU9yaWdpbjsKICAgICAgICAgCi0gICAgICAgIGZvciAoaW50IGFyZ3VtZW50ID0g
MDsgYXJndW1lbnQgPCBiYXNlbGluZS0+bnVtUGFyYW1ldGVycygpOyArK2FyZ3VtZW50KSB7Ci0g
ICAgICAgICAgICBOb2RlKiBvbGROb2RlID0gdGFyZ2V0LT52YXJpYWJsZXNBdEhlYWQuYXJndW1l
bnQoYXJndW1lbnQpOwotICAgICAgICAgICAgaWYgKCFvbGROb2RlKSB7Ci0gICAgICAgICAgICAg
ICAgLy8gSnVzdCBmb3Igc2FuaXR5LCBhbHdheXMgaGF2ZSBhIFNldEFyZ3VtZW50IGV2ZW4gaWYg
aXQncyBub3QgbmVlZGVkLgotICAgICAgICAgICAgICAgIG9sZE5vZGUgPSBtX2dyYXBoLm1fYXJn
dW1lbnRzW2FyZ3VtZW50XTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIE5vZGUqIG5vZGUg
PSBuZXdSb290LT5hcHBlbmROb2RlKAotICAgICAgICAgICAgICAgIG1fZ3JhcGgsIFNwZWNOb25l
LCBTZXRBcmd1bWVudCwgY29kZU9yaWdpbiwKLSAgICAgICAgICAgICAgICBPcEluZm8ob2xkTm9k
ZS0+dmFyaWFibGVBY2Nlc3NEYXRhKCkpKTsKLSAgICAgICAgICAgIG1fZ3JhcGgubV9hcmd1bWVu
dHNbYXJndW1lbnRdID0gbm9kZTsKLSAgICAgICAgfQogICAgICAgICBWZWN0b3I8Tm9kZSo+IGxv
Y2FscyhiYXNlbGluZS0+bV9udW1DYWxsZWVSZWdpc3RlcnMpOwogICAgICAgICBmb3IgKGludCBs
b2NhbCA9IDA7IGxvY2FsIDwgYmFzZWxpbmUtPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzOyArK2xvY2Fs
KSB7CiAgICAgICAgICAgICBOb2RlKiBwcmV2aW91c0hlYWQgPSB0YXJnZXQtPnZhcmlhYmxlc0F0
SGVhZC5sb2NhbChsb2NhbCk7CkBAIC0xMDgsNiArMTAwLDE5IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgICAgICBtX2dyYXBoLCBTcGVjTm9uZSwgTW92SGludCwgY29kZU9yaWdpbiwgT3BJbmZvKHZh
cmlhYmxlLT5sb2NhbCgpLm9mZnNldCgpKSwKICAgICAgICAgICAgICAgICBFZGdlKGxvY2Fsc1ts
b2NhbF0pKTsKICAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGFyZ3VtZW50ID0gMDsgYXJn
dW1lbnQgPCBiYXNlbGluZS0+bnVtUGFyYW1ldGVycygpOyArK2FyZ3VtZW50KSB7CisgICAgICAg
ICAgICBOb2RlKiBvbGROb2RlID0gdGFyZ2V0LT52YXJpYWJsZXNBdEhlYWQuYXJndW1lbnQoYXJn
dW1lbnQpOworICAgICAgICAgICAgaWYgKCFvbGROb2RlKSB7CisgICAgICAgICAgICAgICAgLy8g
SnVzdCBmb3Igc2FuaXR5LCBhbHdheXMgaGF2ZSBhIFNldEFyZ3VtZW50IGV2ZW4gaWYgaXQncyBu
b3QgbmVlZGVkLgorICAgICAgICAgICAgICAgIG9sZE5vZGUgPSBtX2dyYXBoLm1fYXJndW1lbnRz
W2FyZ3VtZW50XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBuZXdS
b290LT5hcHBlbmROb2RlKAorICAgICAgICAgICAgICAgIG1fZ3JhcGgsIFNwZWNOb25lLCBTZXRB
cmd1bWVudCwgY29kZU9yaWdpbiwKKyAgICAgICAgICAgICAgICBPcEluZm8ob2xkTm9kZS0+dmFy
aWFibGVBY2Nlc3NEYXRhKCkpKTsKKyAgICAgICAgICAgIG1fZ3JhcGgubV9hcmd1bWVudHNbYXJn
dW1lbnRdID0gbm9kZTsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgZm9yIChpbnQgbG9j
YWwgPSAwOyBsb2NhbCA8IGJhc2VsaW5lLT5tX251bUNhbGxlZVJlZ2lzdGVyczsgKytsb2NhbCkg
ewogICAgICAgICAgICAgTm9kZSogcHJldmlvdXNIZWFkID0gdGFyZ2V0LT52YXJpYWJsZXNBdEhl
YWQubG9jYWwobG9jYWwpOwogICAgICAgICAgICAgaWYgKCFwcmV2aW91c0hlYWQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5oCmluZGV4IGQ0MGVmZTRlMGZjZDQ3NjFlNGRmYjg5
MmNhOWEwNTUzYjhkMmNmMDIuLmFmMmVkYzlhMjM5OGI4ZTY2ZTMwNWRiNDAwYmM3MTk2NjFhMTI5
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5oCkBAIC0xMDUsNiArMTA1
LDExIEBAIHN0cnVjdCBPU1JFeGl0IDogcHVibGljIE9TUkV4aXRCYXNlIHsKICAgICB1bnNpZ25l
ZCBtX3N0cmVhbUluZGV4OwogICAgIAogICAgIFJlZlB0cjxWYWx1ZVJlY292ZXJ5T3ZlcnJpZGU+
IG1fdmFsdWVSZWNvdmVyeU92ZXJyaWRlOworICAgIAorICAgIGJvb2wgY29uc2lkZXJBZGRpbmdB
c0ZyZXF1ZW50RXhpdFNpdGUoQ29kZUJsb2NrKiBwcm9maWxlZENvZGVCbG9jaykKKyAgICB7Cisg
ICAgICAgIHJldHVybiBPU1JFeGl0QmFzZTo6Y29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNp
dGUocHJvZmlsZWRDb2RlQmxvY2ssIEV4aXRGcm9tREZHKTsKKyAgICB9CiB9OwogCiBzdHJ1Y3Qg
U3BlY3VsYXRpb25GYWlsdXJlRGVidWdJbmZvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT1NSRXhpdEJhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPU1JFeGl0QmFzZS5jcHAKaW5kZXggZWJmZDI3ZjJlMjg5YjUyMDMwYTVlZGJjMGViZmVh
MGNlY2ExN2M3OS4uYzVmMDAxZDdlNDI2ZjgzMWI4NjE5MGIzYjA3YmJkMDNiZjAzZTAzNCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5jcHAKQEAgLTM1LDcg
KzM1LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCi1ib29sIE9TUkV4
aXRCYXNlOjpjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZVNsb3coQ29kZUJsb2NrKiBw
cm9maWxlZENvZGVCbG9jaykKK2Jvb2wgT1NSRXhpdEJhc2U6OmNvbnNpZGVyQWRkaW5nQXNGcmVx
dWVudEV4aXRTaXRlU2xvdyhDb2RlQmxvY2sqIHByb2ZpbGVkQ29kZUJsb2NrLCBFeGl0aW5nSklU
VHlwZSBqaXRUeXBlKQogewogICAgIENvZGVCbG9jayogc291cmNlUHJvZmlsZWRDb2RlQmxvY2sg
PQogICAgICAgICBiYXNlbGluZUNvZGVCbG9ja0Zvck9yaWdpbkFuZEJhc2VsaW5lQ29kZUJsb2Nr
KApAQCAtNDMsNyArNDMsNyBAQCBib29sIE9TUkV4aXRCYXNlOjpjb25zaWRlckFkZGluZ0FzRnJl
cXVlbnRFeGl0U2l0ZVNsb3coQ29kZUJsb2NrKiBwcm9maWxlZENvZGVCbAogICAgIGlmICghc291
cmNlUHJvZmlsZWRDb2RlQmxvY2spCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4g
c291cmNlUHJvZmlsZWRDb2RlQmxvY2stPmFkZEZyZXF1ZW50RXhpdFNpdGUoCi0gICAgICAgICAg
ICBGcmVxdWVudEV4aXRTaXRlKG1fY29kZU9yaWdpbkZvckV4aXRQcm9maWxlLmJ5dGVjb2RlSW5k
ZXgsIG1fa2luZCkpOworICAgICAgICBGcmVxdWVudEV4aXRTaXRlKG1fY29kZU9yaWdpbkZvckV4
aXRQcm9maWxlLmJ5dGVjb2RlSW5kZXgsIG1fa2luZCwgaml0VHlwZSkpOwogfQogCiB9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6REZHCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09TUkV4aXRCYXNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRC
YXNlLmgKaW5kZXggZWUxZDY5ZGU3ZTE4YTQwMzBhNTYxYmM5MWMyMjM1ZDA2YzU2OGQyNy4uYzAy
MTQ2NWE3NTk1YmUzYzBkOTRjZTI1YmM1NTM3OWIxMWI5MTBiMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0QmFzZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT1NSRXhpdEJhc2UuaApAQCAtNTgsMTUgKzU4LDE2IEBAIHN0cnVjdCBP
U1JFeGl0QmFzZSB7CiAgICAgQ29kZU9yaWdpbiBtX2NvZGVPcmlnaW47CiAgICAgQ29kZU9yaWdp
biBtX2NvZGVPcmlnaW5Gb3JFeGl0UHJvZmlsZTsKIAotICAgIGJvb2wgY29uc2lkZXJBZGRpbmdB
c0ZyZXF1ZW50RXhpdFNpdGUoQ29kZUJsb2NrKiBwcm9maWxlZENvZGVCbG9jaykKK3Byb3RlY3Rl
ZDoKKyAgICBib29sIGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlKENvZGVCbG9jayog
cHJvZmlsZWRDb2RlQmxvY2ssIEV4aXRpbmdKSVRUeXBlIGppdFR5cGUpCiAgICAgewogICAgICAg
ICBpZiAoIW1fY291bnQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJldHVy
biBjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZVNsb3cocHJvZmlsZWRDb2RlQmxvY2sp
OworICAgICAgICByZXR1cm4gY29uc2lkZXJBZGRpbmdBc0ZyZXF1ZW50RXhpdFNpdGVTbG93KHBy
b2ZpbGVkQ29kZUJsb2NrLCBqaXRUeXBlKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBj
b25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZVNsb3coQ29kZUJsb2NrKiBwcm9maWxlZENv
ZGVCbG9jayk7CisgICAgYm9vbCBjb25zaWRlckFkZGluZ0FzRnJlcXVlbnRFeGl0U2l0ZVNsb3co
Q29kZUJsb2NrKiBwcm9maWxlZENvZGVCbG9jaywgRXhpdGluZ0pJVFR5cGUgaml0VHlwZSk7CiB9
OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAKaW5kZXggZjhjOWZiMDY3YjFkN2I2MzMxM2Fk
NjAzM2Q0Mjk2YTQ2ZTY2NzUzNy4uMDNmMGQ4NTExYzY4MmU3YzA5MWIxOTA1Njg1NGM2ZTFmOTdl
NjhiMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29t
cGlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBp
bGVyLmNwcApAQCAtOTYsNyArOTYsNyBAQCB2b2lkIGNvbXBpbGVPU1JFeGl0KEV4ZWNTdGF0ZSog
ZXhlYykKICAgICAgICAgCiAgICAgICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0
LCBjb2RlQmxvY2spOwogICAgICAgICBleGl0Lm1fY29kZSA9IEZJTkFMSVpFX0NPREVfSUYoCi0g
ICAgICAgICAgICBzaG91bGRTaG93RGlzYXNzZW1ibHkoKSwKKyAgICAgICAgICAgIHNob3VsZFNo
b3dEaXNhc3NlbWJseSgpIHx8IE9wdGlvbnM6OnZlcmJvc2VPU1IoKSwKICAgICAgICAgICAgIHBh
dGNoQnVmZmVyLAogICAgICAgICAgICAgKCJERkcgT1NSIGV4aXQgIyV1ICglcywgJXMpIGZyb20g
JXMsIHdpdGggb3BlcmFuZHMgPSAlcyIsCiAgICAgICAgICAgICAgICAgZXhpdEluZGV4LCB0b0NT
dHJpbmcoZXhpdC5tX2NvZGVPcmlnaW4pLmRhdGEoKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAKaW5kZXggOTQwMmQxMTVl
ODdmYWUxYWJlN2MyOWIzMjMwYjllYThmOTA1MTQxNi4uYTE3Yzk3NzhkY2RlMzhkZWUxYTU3ZmQy
NTY4OGQ1YTg2OGEwMmM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAKQEAgLTQ2LDYgKzQ2LDEyIEBAIHZvaWQgT1NS
RXhpdENvbXBpbGVyOjpjb21waWxlRXhpdChjb25zdCBPU1JFeGl0JiBleGl0LCBjb25zdCBPcGVy
YW5kczxWYWx1ZVJlY292CiAgICAgICAgIG1faml0LmRlYnVnQ2FsbChkZWJ1Z09wZXJhdGlvblBy
aW50U3BlY3VsYXRpb25GYWlsdXJlLCBkZWJ1Z0luZm8pOwogICAgIH0KICAgICAKKyAgICAvLyBO
ZWVkIHRvIGVuc3VyZSB0aGF0IHRoZSBzdGFjayBwb2ludGVyIGFjY291bnRzIGZvciB0aGUgd29y
c3QtY2FzZSBzdGFjayB1c2FnZSBhdCBleGl0LgorICAgIG1faml0LmFkZFB0cigKKyAgICAgICAg
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoCisgICAgICAgICAgICAtbV9qaXQuY29kZUJsb2Nr
KCktPmppdENvZGUoKS0+ZGZnQ29tbW9uKCktPnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4aXQg
KiBzaXplb2YoUmVnaXN0ZXIpKSwKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpmcmFtZVBvaW50ZXJS
ZWdpc3RlciwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgCiAgICAg
Ly8gMikgUGVyZm9ybSBzcGVjdWxhdGlvbiByZWNvdmVyeS4gVGhpcyBvbmx5IGNvbWVzIGludG8g
cGxheSB3aGVuIGFuIG9wZXJhdGlvbgogICAgIC8vICAgIHN0YXJ0cyBtdXRhdGluZyBzdGF0ZSBi
ZWZvcmUgdmVyaWZ5aW5nIHRoZSBzcGVjdWxhdGlvbiBpdCBoYXMgYWxyZWFkeSBtYWRlLgogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGls
ZXI2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0
LmNwcAppbmRleCAyMTlhNWU2OGFmZGNiMGM4MTk4YWMxYjE1NWM3NzFhZTU5ZDJmZTY1Li5hNTNi
NGNlOTExYmJlMjEyZGViZWRlYmI0NDVkMDVlNDkyOWMxMmE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcApAQCAtNDAsNiArNDAs
OCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIHZvaWQgT1NSRXhpdENvbXBp
bGVyOjpjb21waWxlRXhpdChjb25zdCBPU1JFeGl0JiBleGl0LCBjb25zdCBPcGVyYW5kczxWYWx1
ZVJlY292ZXJ5PiYgb3BlcmFuZHMsIFNwZWN1bGF0aW9uUmVjb3ZlcnkqIHJlY292ZXJ5KQogewor
ICAgIG1faml0LmppdEFzc2VydFRhZ3NJblBsYWNlKCk7CisKICAgICAvLyAxKSBQcm8tZm9ybWEg
c3R1ZmYuCiAgICAgaWYgKE9wdGlvbnM6OnByaW50RWFjaE9TUkV4aXQoKSkgewogICAgICAgICBT
cGVjdWxhdGlvbkZhaWx1cmVEZWJ1Z0luZm8qIGRlYnVnSW5mbyA9IG5ldyBTcGVjdWxhdGlvbkZh
aWx1cmVEZWJ1Z0luZm87CkBAIC00OCw2ICs1MCwxMiBAQCB2b2lkIE9TUkV4aXRDb21waWxlcjo6
Y29tcGlsZUV4aXQoY29uc3QgT1NSRXhpdCYgZXhpdCwgY29uc3QgT3BlcmFuZHM8VmFsdWVSZWNv
dgogICAgICAgICBtX2ppdC5kZWJ1Z0NhbGwoZGVidWdPcGVyYXRpb25QcmludFNwZWN1bGF0aW9u
RmFpbHVyZSwgZGVidWdJbmZvKTsKICAgICB9CiAgICAgCisgICAgLy8gTmVlZCB0byBlbnN1cmUg
dGhhdCB0aGUgc3RhY2sgcG9pbnRlciBhY2NvdW50cyBmb3IgdGhlIHdvcnN0LWNhc2Ugc3RhY2sg
dXNhZ2UgYXQgZXhpdC4KKyAgICBtX2ppdC5hZGRQdHIoCisgICAgICAgIENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbTMyKAorICAgICAgICAgICAgLW1faml0LmNvZGVCbG9jaygpLT5qaXRDb2RlKCkt
PmRmZ0NvbW1vbigpLT5yZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0ICogc2l6ZW9mKFJlZ2lz
dGVyKSksCisgICAgICAgIENDYWxsSGVscGVyczo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIENDYWxs
SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIAogICAgIC8vIDIpIFBlcmZvcm0g
c3BlY3VsYXRpb24gcmVjb3ZlcnkuIFRoaXMgb25seSBjb21lcyBpbnRvIHBsYXkgd2hlbiBhbiBv
cGVyYXRpb24KICAgICAvLyAgICBzdGFydHMgbXV0YXRpbmcgc3RhdGUgYmVmb3JlIHZlcmlmeWlu
ZyB0aGUgc3BlY3VsYXRpb24gaXQgaGFzIGFscmVhZHkgbWFkZS4KICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcApp
bmRleCA5Zjg0YTI5NjgwODAzYWQzMWEyYjJlNTIxMTZmM2JkZjJkYjkyNWRjLi43ZjFkOGM0YzY4
YzM3MjYzNzBjYWNkMzJmMjAwNzZiZDIzY2M0NTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCkBAIC0zMCw2ICsz
MCw3IEBACiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKICNpbmNsdWRlICJERkdPcGVyYXRpb25z
LmgiCisjaW5jbHVkZSAiSklULmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNp
bmNsdWRlICJPcGVyYXRpb25zLmgiCiAKQEAgLTE3Myw3ICsxNzQsMTEgQEAgdm9pZCBhZGp1c3RB
bmRKdW1wVG9UYXJnZXQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IE9TUkV4aXRCYXNlJiBleGl0
KQogICAgIEFTU0VSVChtYXBwaW5nLT5tX2J5dGVjb2RlSW5kZXggPT0gZXhpdC5tX2NvZGVPcmln
aW4uYnl0ZWNvZGVJbmRleCk7CiAgICAgCiAgICAgdm9pZCoganVtcFRhcmdldCA9IGJhc2VsaW5l
Q29kZUJsb2NrLT5qaXRDb2RlKCktPmV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQobWFwcGluZy0+
bV9tYWNoaW5lQ29kZU9mZnNldCk7CisKKyAgICBqaXQuYWRkUHRyKEFzc2VtYmx5SGVscGVyczo6
VHJ1c3RlZEltbTMyKEpJVDo6c3RhY2tQb2ludGVyT2Zmc2V0Rm9yKGJhc2VsaW5lQ29kZUJsb2Nr
KSAqIHNpemVvZihSZWdpc3RlcikpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQXNzZW1i
bHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgCisgICAgaml0LmppdEFzc2Vy
dFRhZ3NJblBsYWNlKCk7CisKICAgICBqaXQubW92ZShBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJ
bW1QdHIoanVtcFRhcmdldCksIEdQUkluZm86OnJlZ1QyKTsKICAgICBqaXQuanVtcChHUFJJbmZv
OjpyZWdUMik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cAppbmRleCBiMzFiNmZjZGM0MjIyOGY3Mjk3MDA5YTdlMjczMTAwYmY1NTM4YzYxLi4yZmYwYzM0
MTQ2ZTJjMGJhMmZmNzZjNGQzZjdjNDZiYTNlMjU1MTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTExNDAsNyArMTE0MCw3IEBAIHZvaWQgSklU
X09QRVJBVElPTiB0cmlnZ2VyVGllclVwTm93KEV4ZWNTdGF0ZSogZXhlYykKICAgICB9CiAgICAg
CiAgICAgV29ya2xpc3Q6OlN0YXRlIHdvcmtsaXN0U3RhdGU7Ci0gICAgaWYgKFdvcmtsaXN0KiB3
b3JrbGlzdCA9IHZtLT53b3JrbGlzdC5nZXQoKSkgeworICAgIGlmIChXb3JrbGlzdCogd29ya2xp
c3QgPSBleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxsKCkpIHsKICAgICAgICAgd29ya2xp
c3RTdGF0ZSA9IHdvcmtsaXN0LT5jb21wbGV0ZUFsbFJlYWR5UGxhbnNGb3JWTSgKICAgICAgICAg
ICAgICp2bSwgQ29tcGlsYXRpb25LZXkoY29kZUJsb2NrLT5iYXNlbGluZVZlcnNpb24oKSwgRlRM
TW9kZSkpOwogICAgIH0gZWxzZQpAQCAtMTE2OSw4ICsxMTY5LDggQEAgdm9pZCBKSVRfT1BFUkFU
SU9OIHRyaWdnZXJUaWVyVXBOb3coRXhlY1N0YXRlKiBleGVjKQogCiAgICAgLy8gV2UgbmVlZCB0
byBjb21waWxlIHRoZSBjb2RlLgogICAgIGNvbXBpbGUoCi0gICAgICAgICp2bSwgY29kZUJsb2Nr
LT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBGVExNb2RlLCBVSU5UX01BWCwgT3BlcmFuZHM8SlNW
YWx1ZT4oKSwKLSAgICAgICAgVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNyZWF0
ZShjb2RlQmxvY2spLCB2bS0+ZW5zdXJlV29ya2xpc3QoKSk7CisgICAgICAgICp2bSwgY29kZUJs
b2NrLT5uZXdSZXBsYWNlbWVudCgpLmdldCgpLCBjb2RlQmxvY2ssIEZUTE1vZGUsIFVJTlRfTUFY
LAorICAgICAgICBPcGVyYW5kczxKU1ZhbHVlPigpLCBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25D
YWxsYmFjazo6Y3JlYXRlKGNvZGVCbG9jaykpOwogfQogCiBjaGFyKiBKSVRfT1BFUkFUSU9OIHRy
aWdnZXJPU1JFbnRyeU5vdygKQEAgLTEyMDIsOCArMTIwMiwxMCBAQCBjaGFyKiBKSVRfT1BFUkFU
SU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIAor
ICAgIFdvcmtsaXN0KiB3b3JrbGlzdCA9IGV4aXN0aW5nR2xvYmFsRlRMV29ya2xpc3RPck51bGwo
KTsKKwogICAgIFdvcmtsaXN0OjpTdGF0ZSB3b3JrbGlzdFN0YXRlOwotICAgIGlmIChXb3JrbGlz
dCogd29ya2xpc3QgPSB2bS0+d29ya2xpc3QuZ2V0KCkpIHsKKyAgICBpZiAod29ya2xpc3QpIHsK
ICAgICAgICAgd29ya2xpc3RTdGF0ZSA9IHdvcmtsaXN0LT5jb21wbGV0ZUFsbFJlYWR5UGxhbnNG
b3JWTSgKICAgICAgICAgICAgICp2bSwgQ29tcGlsYXRpb25LZXkoY29kZUJsb2NrLT5iYXNlbGlu
ZVZlcnNpb24oKSwgRlRMRm9yT1NSRW50cnlNb2RlKSk7CiAgICAgfSBlbHNlCkBAIC0xMjUyLDEw
ICsxMjU0LDkgQEAgY2hhciogSklUX09QRVJBVElPTiB0cmlnZ2VyT1NSRW50cnlOb3coCiAgICAg
T3BlcmFuZHM8SlNWYWx1ZT4gbXVzdEhhbmRsZVZhbHVlczsKICAgICBqaXRDb2RlLT5yZWNvbnN0
cnVjdCgKICAgICAgICAgZXhlYywgY29kZUJsb2NrLCBDb2RlT3JpZ2luKGJ5dGVjb2RlSW5kZXgp
LCBzdHJlYW1JbmRleCwgbXVzdEhhbmRsZVZhbHVlcyk7Ci0gICAgQ29tcGlsYXRpb25SZXN1bHQg
Zm9yRW50cnlSZXN1bHQgPSBERkc6OmNvbXBpbGUoCi0gICAgICAgICp2bSwgY29kZUJsb2NrLT5u
ZXdSZXBsYWNlbWVudCgpLmdldCgpLCBGVExGb3JPU1JFbnRyeU1vZGUsIGJ5dGVjb2RlSW5kZXgs
Ci0gICAgICAgIG11c3RIYW5kbGVWYWx1ZXMsIFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBp
bGF0aW9uQ2FsbGJhY2s6OmNyZWF0ZShjb2RlQmxvY2spLAotICAgICAgICB2bS0+ZW5zdXJlV29y
a2xpc3QoKSk7CisgICAgQ29tcGlsYXRpb25SZXN1bHQgZm9yRW50cnlSZXN1bHQgPSBjb21waWxl
KAorICAgICAgICAqdm0sIGNvZGVCbG9jay0+bmV3UmVwbGFjZW1lbnQoKS5nZXQoKSwgY29kZUJs
b2NrLCBGVExGb3JPU1JFbnRyeU1vZGUsIGJ5dGVjb2RlSW5kZXgsCisgICAgICAgIG11c3RIYW5k
bGVWYWx1ZXMsIFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNy
ZWF0ZShjb2RlQmxvY2spKTsKICAgICAKICAgICAvLyBCdXQgd2UgYWxzbyB3YW50IHRvIHRyaWdn
ZXIgYSByZXBsYWNlbWVudCBjb21waWxlLiBPZiBjb3Vyc2UsIHdlIGRvbid0IHdhbnQgdG8KICAg
ICAvLyB0cmlnZ2VyIGl0IGlmIHdlIGRvbid0IG5lZWQgdG8uIE5vdGUgdGhhdCB0aGlzIGlzIGtp
bmQgb2Ygd2VpcmQgYmVjYXVzZSB3ZSBtaWdodApAQCAtMTI2OCwxMSArMTI2OSwxMSBAQCBjaGFy
KiBKSVRfT1BFUkFUSU9OIHRyaWdnZXJPU1JFbnRyeU5vdygKICAgICBDb21waWxhdGlvbktleSBr
ZXlGb3JSZXBsYWNlbWVudChjb2RlQmxvY2stPmJhc2VsaW5lVmVyc2lvbigpLCBGVExNb2RlKTsK
ICAgICBpZiAoY29kZUJsb2NrLT5jb2RlVHlwZSgpICE9IEdsb2JhbENvZGUKICAgICAgICAgJiYg
IWNvZGVCbG9jay0+aGFzT3B0aW1pemVkUmVwbGFjZW1lbnQoKQotICAgICAgICAmJiAoIXZtLT53
b3JrbGlzdC5nZXQoKQotICAgICAgICAgICAgfHwgdm0tPndvcmtsaXN0LT5jb21waWxhdGlvblN0
YXRlKGtleUZvclJlcGxhY2VtZW50KSA9PSBXb3JrbGlzdDo6Tm90S25vd24pKSB7CisgICAgICAg
ICYmICghd29ya2xpc3QKKyAgICAgICAgICAgIHx8IHdvcmtsaXN0LT5jb21waWxhdGlvblN0YXRl
KGtleUZvclJlcGxhY2VtZW50KSA9PSBXb3JrbGlzdDo6Tm90S25vd24pKSB7CiAgICAgICAgIGNv
bXBpbGUoCi0gICAgICAgICAgICAqdm0sIGNvZGVCbG9jay0+bmV3UmVwbGFjZW1lbnQoKS5nZXQo
KSwgRlRMTW9kZSwgVUlOVF9NQVgsIE9wZXJhbmRzPEpTVmFsdWU+KCksCi0gICAgICAgICAgICBU
b0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjazo6Y3JlYXRlKGNvZGVCbG9jayksIHZtLT5l
bnN1cmVXb3JrbGlzdCgpKTsKKyAgICAgICAgICAgICp2bSwgY29kZUJsb2NrLT5uZXdSZXBsYWNl
bWVudCgpLmdldCgpLCBjb2RlQmxvY2ssIEZUTE1vZGUsIFVJTlRfTUFYLAorICAgICAgICAgICAg
T3BlcmFuZHM8SlNWYWx1ZT4oKSwgVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s6OmNy
ZWF0ZShjb2RlQmxvY2spKTsKICAgICB9CiAgICAgCiAgICAgaWYgKGZvckVudHJ5UmVzdWx0ICE9
IENvbXBpbGF0aW9uU3VjY2Vzc2Z1bCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3Bw
CmluZGV4IDhjMzcwODM4MzBmODBjNTY4OGJkNWY1MjczY2QyZWRjNjNjOWM1NWMuLjI4NjNhMDhk
MDI3YzRjNGMyOTU0NjI1YTgwOTIyZmU1YjdmMzAxMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQbGFuLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtOTAsMTcgKzkwLDM3IEBAIHN0YXRpYyB2b2lkIGR1bXBBbmRWZXJpZnlH
cmFwaChHcmFwaCYgZ3JhcGgsIGNvbnN0IGNoYXIqIHRleHQpCiAgICAgICAgIHZhbGlkYXRlKGdy
YXBoLCBtb2RlRm9yRmluYWxWYWxpZGF0ZSk7CiB9CiAKK3N0YXRpYyBQcm9maWxlcjo6Q29tcGls
YXRpb25LaW5kIHByb2ZpbGVyQ29tcGlsYXRpb25LaW5kRm9yTW9kZShDb21waWxhdGlvbk1vZGUg
bW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIEludmFsaWRDb21waWxhdGlv
bk1vZGU6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJl
dHVybiBQcm9maWxlcjo6REZHOworICAgIGNhc2UgREZHTW9kZToKKyAgICAgICAgcmV0dXJuIFBy
b2ZpbGVyOjpERkc7CisgICAgY2FzZSBGVExNb2RlOgorICAgICAgICByZXR1cm4gUHJvZmlsZXI6
OkZUTDsKKyAgICBjYXNlIEZUTEZvck9TUkVudHJ5TW9kZToKKyAgICAgICAgcmV0dXJuIFByb2Zp
bGVyOjpGVExGb3JPU1JFbnRyeTsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gUHJvZmlsZXI6OkRGRzsKK30KKwogUGxhbjo6UGxhbigKLSAgICBQ
YXNzUmVmUHRyPENvZGVCbG9jaz4gcGFzc2VkQ29kZUJsb2NrLCBDb21waWxhdGlvbk1vZGUgbW9k
ZSwKLSAgICB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIGNvbnN0IE9wZXJhbmRzPEpT
VmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzKQorICAgIFBhc3NSZWZQdHI8Q29kZUJsb2NrPiBwYXNz
ZWRDb2RlQmxvY2ssIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2RlQmxvY2ssCisgICAgQ29tcGls
YXRpb25Nb2RlIG1vZGUsIHVuc2lnbmVkIG9zckVudHJ5Qnl0ZWNvZGVJbmRleCwKKyAgICBjb25z
dCBPcGVyYW5kczxKU1ZhbHVlPiYgbXVzdEhhbmRsZVZhbHVlcykKICAgICA6IHZtKCpwYXNzZWRD
b2RlQmxvY2stPnZtKCkpCiAgICAgLCBjb2RlQmxvY2socGFzc2VkQ29kZUJsb2NrKQorICAgICwg
cHJvZmlsZWRERkdDb2RlQmxvY2socHJvZmlsZWRERkdDb2RlQmxvY2spCiAgICAgLCBtb2RlKG1v
ZGUpCiAgICAgLCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgob3NyRW50cnlCeXRlY29kZUluZGV4KQog
ICAgICwgbXVzdEhhbmRsZVZhbHVlcyhtdXN0SGFuZGxlVmFsdWVzKQotICAgICwgY29tcGlsYXRp
b24oY29kZUJsb2NrLT52bSgpLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXIgPyBhZG9wdFJlZihuZXcg
UHJvZmlsZXI6OkNvbXBpbGF0aW9uKGNvZGVCbG9jay0+dm0oKS0+bV9wZXJCeXRlY29kZVByb2Zp
bGVyLT5lbnN1cmVCeXRlY29kZXNGb3IoY29kZUJsb2NrLmdldCgpKSwgUHJvZmlsZXI6OkRGRykp
IDogMCkKKyAgICAsIGNvbXBpbGF0aW9uKGNvZGVCbG9jay0+dm0oKS0+bV9wZXJCeXRlY29kZVBy
b2ZpbGVyID8gYWRvcHRSZWYobmV3IFByb2ZpbGVyOjpDb21waWxhdGlvbihjb2RlQmxvY2stPnZt
KCktPm1fcGVyQnl0ZWNvZGVQcm9maWxlci0+ZW5zdXJlQnl0ZWNvZGVzRm9yKGNvZGVCbG9jay5n
ZXQoKSksIHByb2ZpbGVyQ29tcGlsYXRpb25LaW5kRm9yTW9kZShtb2RlKSkpIDogMCkKICAgICAs
IGlkZW50aWZpZXJzKGNvZGVCbG9jay5nZXQoKSkKICAgICAsIHdlYWtSZWZlcmVuY2VzKGNvZGVC
bG9jay5nZXQoKSkKKyAgICAsIHdpbGxUcnlUb1RpZXJVcChmYWxzZSkKICAgICAsIGlzQ29tcGls
ZWQoZmFsc2UpCiB7CiB9CkBAIC0xMDksMTAgKzEyOSwxNiBAQCBQbGFuOjp+UGxhbigpCiB7CiB9
CiAKK2Jvb2wgUGxhbjo6cmVwb3J0Q29tcGlsZVRpbWVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
T3B0aW9uczo6cmVwb3J0Q29tcGlsZVRpbWVzKCkKKyAgICAgICAgfHwgKE9wdGlvbnM6OnJlcG9y
dEZUTENvbXBpbGVUaW1lcygpICYmIGlzRlRMKG1vZGUpKTsKK30KKwogdm9pZCBQbGFuOjpjb21w
aWxlSW5UaHJlYWQoTG9uZ0xpdmVkU3RhdGUmIGxvbmdMaXZlZFN0YXRlKQogewogICAgIGRvdWJs
ZSBiZWZvcmUgPSAwOwotICAgIGlmIChPcHRpb25zOjpyZXBvcnRDb21waWxlVGltZXMoKSkKKyAg
ICBpZiAocmVwb3J0Q29tcGlsZVRpbWVzKCkpCiAgICAgICAgIGJlZm9yZSA9IGN1cnJlbnRUaW1l
TVMoKTsKICAgICAKICAgICBTYW1wbGluZ1JlZ2lvbiBzYW1wbGluZ1JlZ2lvbigiREZHIENvbXBp
bGF0aW9uIChQbGFuKSIpOwpAQCAtMTI1LDcgKzE1MSw3IEBAIHZvaWQgUGxhbjo6Y29tcGlsZUlu
VGhyZWFkKExvbmdMaXZlZFN0YXRlJiBsb25nTGl2ZWRTdGF0ZSkKIAogICAgIFJFTEVBU0VfQVNT
RVJUKGZpbmFsaXplcik7CiAgICAgCi0gICAgaWYgKE9wdGlvbnM6OnJlcG9ydENvbXBpbGVUaW1l
cygpKSB7CisgICAgaWYgKHJlcG9ydENvbXBpbGVUaW1lcygpKSB7CiAgICAgICAgIGNvbnN0IGNo
YXIqIHBhdGhOYW1lOwogICAgICAgICBzd2l0Y2ggKHBhdGgpIHsKICAgICAgICAgY2FzZSBGYWls
UGF0aDoKQEAgLTE0Myw3ICsxNjksNyBAQCB2b2lkIFBsYW46OmNvbXBpbGVJblRocmVhZChMb25n
TGl2ZWRTdGF0ZSYgbG9uZ0xpdmVkU3RhdGUpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICBkb3VibGUgbm93ID0gY3VycmVudFRpbWVNUygpOwotICAgICAgICBkYXRhTG9n
KCJPcHRpbWl6ZWQgIiwgKmNvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKSwgIiB1c2luZyAiLCBtb2Rl
LCAiIHdpdGggIiwgcGF0aE5hbWUsICIgaW4gIiwgbm93IC0gYmVmb3JlLCAiIG1zIik7CisgICAg
ICAgIGRhdGFMb2coIk9wdGltaXplZCAiLCAqY29kZUJsb2NrLCAiIHVzaW5nICIsIG1vZGUsICIg
d2l0aCAiLCBwYXRoTmFtZSwgIiBpbnRvICIsIGZpbmFsaXplci0+Y29kZVNpemUoKSwgIiBieXRl
cyBpbiAiLCBub3cgLSBiZWZvcmUsICIgbXMiKTsKICAgICAgICAgaWYgKHBhdGggPT0gRlRMUGF0
aCkKICAgICAgICAgICAgIGRhdGFMb2coIiAoREZHOiAiLCBiZWZvcmVGVEwgLSBiZWZvcmUsICIs
IExMVk06ICIsIG5vdyAtIGJlZm9yZUZUTCwgIikiKTsKICAgICAgICAgZGF0YUxvZygiLlxuIik7
CkBAIC0yOTIsNyArMzE4LDcgQEAgUGxhbjo6Q29tcGlsYXRpb25QYXRoIFBsYW46OmNvbXBpbGVJ
blRocmVhZEltcGwoTG9uZ0xpdmVkU3RhdGUmIGxvbmdMaXZlZFN0YXRlKQogICAgICAgICBGVEw6
OlN0YXRlIHN0YXRlKGRmZyk7CiAgICAgICAgIEZUTDo6bG93ZXJERkdUb0xMVk0oc3RhdGUpOwog
ICAgICAgICAKLSAgICAgICAgaWYgKE9wdGlvbnM6OnJlcG9ydENvbXBpbGVUaW1lcygpKQorICAg
ICAgICBpZiAocmVwb3J0Q29tcGlsZVRpbWVzKCkpCiAgICAgICAgICAgICBiZWZvcmVGVEwgPSBj
dXJyZW50VGltZU1TKCk7CiAgICAgICAgIAogICAgICAgICBpZiAoT3B0aW9uczo6bGx2bUFsd2F5
c0ZhaWxzQmVmb3JlQ29tcGlsZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1BsYW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5oCmlu
ZGV4IGE2MDI2OTc5ODgzZTMyNzE5M2E3ODY2NDE5OTMyZGY3MDEyYzc2ZWIuLjFmNmJjZTBjNDE3
YjE1MzI4Nzk4NDkzNWZkYmY5NThjODc5YjRhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUGxhbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UGxhbi5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC01NSw3ICs1NSw4IEBAIGNsYXNzIExvbmdMaXZlZFN0YXRlOwogCiBzdHJ1Y3QgUGxh
biA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQbGFuPiB7CiAgICAgUGxhbigKLSAgICAg
ICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+LCBDb21waWxhdGlvbk1vZGUsIHVuc2lnbmVkIG9zckVu
dHJ5Qnl0ZWNvZGVJbmRleCwKKyAgICAgICAgUGFzc1JlZlB0cjxDb2RlQmxvY2s+IGNvZGVCbG9j
a1RvQ29tcGlsZSwgQ29kZUJsb2NrKiBwcm9maWxlZERGR0NvZGVCbG9jaywKKyAgICAgICAgQ29t
cGlsYXRpb25Nb2RlLCB1bnNpZ25lZCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsCiAgICAgICAgIGNv
bnN0IE9wZXJhbmRzPEpTVmFsdWU+JiBtdXN0SGFuZGxlVmFsdWVzKTsKICAgICB+UGxhbigpOwog
ICAgIApAQCAtNzAsNiArNzEsNyBAQCBzdHJ1Y3QgUGxhbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxQbGFuPiB7CiAgICAgCiAgICAgVk0mIHZtOwogICAgIFJlZlB0cjxDb2RlQmxvY2s+
IGNvZGVCbG9jazsKKyAgICBSZWZQdHI8Q29kZUJsb2NrPiBwcm9maWxlZERGR0NvZGVCbG9jazsK
ICAgICBDb21waWxhdGlvbk1vZGUgbW9kZTsKICAgICBjb25zdCB1bnNpZ25lZCBvc3JFbnRyeUJ5
dGVjb2RlSW5kZXg7CiAgICAgT3BlcmFuZHM8SlNWYWx1ZT4gbXVzdEhhbmRsZVZhbHVlczsKQEAg
LTg0LDYgKzg2LDggQEAgc3RydWN0IFBsYW4gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
UGxhbj4gewogICAgIERlc2lyZWRXZWFrUmVmZXJlbmNlcyB3ZWFrUmVmZXJlbmNlczsKICAgICBE
ZXNpcmVkV3JpdGVCYXJyaWVycyB3cml0ZUJhcnJpZXJzOwogICAgIERlc2lyZWRUcmFuc2l0aW9u
cyB0cmFuc2l0aW9uczsKKyAgICAKKyAgICBib29sIHdpbGxUcnlUb1RpZXJVcDsKIAogICAgIGRv
dWJsZSBiZWZvcmVGVEw7CiAgICAgCkBAIC05Miw2ICs5Niw4IEBAIHN0cnVjdCBQbGFuIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBsYW4+IHsKICAgICBSZWZQdHI8RGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrPiBjYWxsYmFjazsKIAogcHJpdmF0ZToKKyAgICBib29sIHJlcG9ydENv
bXBpbGVUaW1lcygpIGNvbnN0OworICAgIAogICAgIGVudW0gQ29tcGlsYXRpb25QYXRoIHsgRmFp
bFBhdGgsIERGR1BhdGgsIEZUTFBhdGggfTsKICAgICBDb21waWxhdGlvblBhdGggY29tcGlsZUlu
VGhyZWFkSW1wbChMb25nTGl2ZWRTdGF0ZSYpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU1NBTG93ZXJpbmdQaGFzZS5jcHAKaW5kZXggNTFkNWZkMGU0OTdkNjU1
MjExNzZmMzFlOTljNTQxYWVmNWRkMjAzZS4uMGY0NjE1NTkyZGRhM2ZiNGNjYmUzNmU1MDdlZTM2
YTEzYmVmZWYwOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FM
b3dlcmluZ1BoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxv
d2VyaW5nUGhhc2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMs
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC03MywyMiArNzMsMzMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgUHV0QnlWYWw6Ci0gICAgICAgIGNhc2Ug
UHV0QnlWYWxEaXJlY3Q6Ci0gICAgICAgICAgICBsb3dlckJvdW5kc0NoZWNrKAotICAgICAgICAg
ICAgICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAwKSwKLSAgICAgICAgICAgICAgICBt
X2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSksCi0gICAgICAgICAgICAgICAgbV9ncmFwaC52
YXJBcmdDaGlsZChtX25vZGUsIDMpKTsKKyAgICAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDogewor
ICAgICAgICAgICAgRWRnZSBiYXNlID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDApOwor
ICAgICAgICAgICAgRWRnZSBpbmRleCA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxKTsK
KyAgICAgICAgICAgIEVkZ2Ugc3RvcmFnZSA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAz
KTsKKyAgICAgICAgICAgIGlmIChsb3dlckJvdW5kc0NoZWNrKGJhc2UsIGluZGV4LCBzdG9yYWdl
KSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYg
KG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZWRBcnJheVR5cGUoKSAhPSBOb3RUeXBlZEFycmF5ICYm
IG1fbm9kZS0+YXJyYXlNb2RlKCkuaXNPdXRPZkJvdW5kcygpKSB7CisgICAgICAgICAgICAgICAg
Tm9kZSogbGVuZ3RoID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKKyAgICAgICAgICAgICAg
ICAgICAgbV9ub2RlSW5kZXgsIFNwZWNJbnQzMiwgR2V0QXJyYXlMZW5ndGgsIG1fbm9kZS0+Y29k
ZU9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgT3BJbmZvKG1fbm9kZS0+YXJyYXlNb2RlKCku
YXNXb3JkKCkpLCBiYXNlLCBzdG9yYWdlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgNCkgPSBFZGdlKGxlbmd0aCwgS25vd25J
bnQzMlVzZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICB2b2lkIGxvd2Vy
Qm91bmRzQ2hlY2soRWRnZSBiYXNlLCBFZGdlIGluZGV4LCBFZGdlIHN0b3JhZ2UpCisgICAgYm9v
bCBsb3dlckJvdW5kc0NoZWNrKEVkZ2UgYmFzZSwgRWRnZSBpbmRleCwgRWRnZSBzdG9yYWdlKQog
ICAgIHsKICAgICAgICAgaWYgKCFtX25vZGUtPmFycmF5TW9kZSgpLnBlcm1pdHNCb3VuZHNDaGVj
a0xvd2VyaW5nKCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIAogICAgICAgICBpZiAoIW1fbm9kZS0+YXJyYXlNb2RlKCkubGVuZ3RoTmVl
ZHNTdG9yYWdlKCkpCiAgICAgICAgICAgICBzdG9yYWdlID0gRWRnZSgpOwpAQCAtOTksNiArMTEw
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKICAgICAg
ICAgICAgIG1fbm9kZUluZGV4LCBTcGVjSW50MzIsIENoZWNrSW5Cb3VuZHMsIG1fbm9kZS0+Y29k
ZU9yaWdpbiwKICAgICAgICAgICAgIGluZGV4LCBFZGdlKGxlbmd0aCwgS25vd25JbnQzMlVzZSkp
OworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCiAgICAgSW5zZXJ0aW9uU2V0IG1f
aW5zZXJ0aW9uU2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcAppbmRleCA3ZDIyMjIwYmQ4YmRjYTNhZjFiODVlZmY4MzcxODJhNDUxOTE5ODNm
Li4yOTkzZDk3NjE4YjYxNWQzMzJhNmZmNGFiMmVhZGYwMjEyZTU3ZWQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMTM0Niw2ICsx
MzQ2LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUN1cnJlbnRCbG9jaygpCiAgICAg
bV9zdHJlYW0tPmFwcGVuZEFuZExvZyhWYXJpYWJsZUV2ZW50OjpyZXNldCgpKTsKICAgICAKICAg
ICBtX2ppdC5qaXRBc3NlcnRIYXNWYWxpZENhbGxGcmFtZSgpOworICAgIG1faml0LmppdEFzc2Vy
dFRhZ3NJblBsYWNlKCk7CisgICAgbV9qaXQuaml0QXNzZXJ0QXJndW1lbnRDb3VudFNhbmUoKTsK
IAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9ibG9jay0+dmFyaWFibGVzQXRIZWFkLm51
bWJlck9mQXJndW1lbnRzKCk7ICsraSkgewogICAgICAgICBtX3N0cmVhbS0+YXBwZW5kQW5kTG9n
KApAQCAtMTUzMiwxMCArMTUzNCw0MCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0FyZ3Vt
ZW50VHlwZXMoKQogICAgIG1faXNDaGVja2luZ0FyZ3VtZW50VHlwZXMgPSBmYWxzZTsKIH0KIAor
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6cHJlcGFyZUpJVENvZGVGb3JUaWVyVXAoKQoreworICAgIHVu
c2lnbmVkIG51bWJlck9mQ2FsbHMgPSAwOworICAgIAorICAgIGZvciAoQmxvY2tJbmRleCBibG9j
a0luZGV4ID0gbV9qaXQuZ3JhcGgoKS5udW1CbG9ja3MoKTsgYmxvY2tJbmRleC0tOykgeworICAg
ICAgICBCYXNpY0Jsb2NrKiBibG9jayA9IG1faml0LmdyYXBoKCkuYmxvY2soYmxvY2tJbmRleCk7
CisgICAgICAgIGlmICghYmxvY2spCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgCisg
ICAgICAgIGZvciAodW5zaWduZWQgbm9kZUluZGV4ID0gYmxvY2stPnNpemUoKTsgbm9kZUluZGV4
LS07KSB7CisgICAgICAgICAgICBOb2RlKiBub2RlID0gYmxvY2stPmF0KG5vZGVJbmRleCk7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgeworICAgICAgICAg
ICAgY2FzZSBDYWxsOgorICAgICAgICAgICAgY2FzZSBDb25zdHJ1Y3Q6CisgICAgICAgICAgICAg
ICAgbnVtYmVyT2ZDYWxscysrOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBtX2ppdC5qaXRDb2RlKCktPnNs
b3dQYXRoQ2FsbHMuZmlsbCgwLCBudW1iZXJPZkNhbGxzKTsKK30KKwogYm9vbCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZSgpCiB7CiAgICAgY2hlY2tBcmd1bWVudFR5cGVzKCk7Ci0KKyAgICAKKyAg
ICBpZiAobV9qaXQuZ3JhcGgoKS5tX3BsYW4ud2lsbFRyeVRvVGllclVwKQorICAgICAgICBwcmVw
YXJlSklUQ29kZUZvclRpZXJVcCgpOworICAgIAogICAgIEFTU0VSVCghbV9jdXJyZW50Tm9kZSk7
CiAgICAgZm9yIChCbG9ja0luZGV4IGJsb2NrSW5kZXggPSAwOyBibG9ja0luZGV4IDwgbV9qaXQu
Z3JhcGgoKS5udW1CbG9ja3MoKTsgKytibG9ja0luZGV4KSB7CiAgICAgICAgIG1faml0LnNldEZv
ckJsb2NrSW5kZXgoYmxvY2tJbmRleCk7CkBAIC0yMzkwLDYgKzI0MjIsMTAgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9ySW50VHlwZWRBcnJheShHUFJSZWcgYmFzZSwg
R1BSUmVnIHByb3BlcnQKICAgICBBU1NFUlQodmFsdWVHUFIgIT0gYmFzZSk7CiAgICAgQVNTRVJU
KHZhbHVlR1BSICE9IHN0b3JhZ2VSZWcpOwogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG91dE9m
Qm91bmRzID0ganVtcEZvclR5cGVkQXJyYXlPdXRPZkJvdW5kcyhub2RlLCBiYXNlLCBwcm9wZXJ0
eSk7CisgICAgaWYgKG5vZGUtPmFycmF5TW9kZSgpLmlzSW5Cb3VuZHMoKSAmJiBvdXRPZkJvdW5k
cy5pc1NldCgpKSB7CisgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFs
dWVTb3VyY2UoKSwgMCwgb3V0T2ZCb3VuZHMpOworICAgICAgICBvdXRPZkJvdW5kcyA9IE1hY3Jv
QXNzZW1ibGVyOjpKdW1wKCk7CisgICAgfQogCiAgICAgc3dpdGNoIChlbGVtZW50U2l6ZSh0eXBl
KSkgewogICAgIGNhc2UgMToKQEAgLTI0NjUsNiArMjUwMSwxMCBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkoR1BSUmVnIGJhc2UsIEdQUlJl
ZyBwcm9wZQogICAgIEFTU0VSVF9VTlVTRUQoYmFzZVVzZSwgbm9kZS0+YXJyYXlNb2RlKCkuYWxy
ZWFkeUNoZWNrZWQobV9qaXQuZ3JhcGgoKSwgbm9kZSwgbV9zdGF0ZS5mb3JOb2RlKGJhc2VVc2Up
KSk7CiAgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBqdW1wRm9y
VHlwZWRBcnJheU91dE9mQm91bmRzKG5vZGUsIGJhc2UsIHByb3BlcnR5KTsKKyAgICBpZiAobm9k
ZS0+YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygpICYmIG91dE9mQm91bmRzLmlzU2V0KCkpIHsKKyAg
ICAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVNvdXJjZSgpLCAwLCBv
dXRPZkJvdW5kcyk7CisgICAgICAgIG91dE9mQm91bmRzID0gTWFjcm9Bc3NlbWJsZXI6Okp1bXAo
KTsKKyAgICB9CiAgICAgCiAgICAgc3dpdGNoIChlbGVtZW50U2l6ZSh0eXBlKSkgewogICAgIGNh
c2UgNDogewpAQCAtMzQyOSw2ICszNDY5LDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVBcml0aE1vZChOb2RlKiBub2RlKQogICAgICAgICBHUFJSZWcgcXVvdGllbnRUaGVuUmVtYWlu
ZGVyR1BSID0gcXVvdGllbnRUaGVuUmVtYWluZGVyLmdwcigpOwogICAgICAgICBHUFJSZWcgbXVs
dGlwbHlBbnN3ZXJHUFIgPSBtdWx0aXBseUFuc3dlci5ncHIoKTsKIAorICAgICAgICBKSVRDb21w
aWxlcjo6SnVtcExpc3QgZG9uZTsKKyAgICAgICAgCisgICAgICAgIGlmIChzaG91bGRDaGVja092
ZXJmbG93KG5vZGUtPmFyaXRoTW9kZSgpKSkKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
T3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsIG1faml0LmJyYW5jaFRlc3QzMihKSVRDb21waWxl
cjo6WmVybywgZGl2aXNvckdQUikpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEpJVENv
bXBpbGVyOjpKdW1wIGRlbm9taW5hdG9yTm90WmVybyA9IG1faml0LmJyYW5jaFRlc3QzMihKSVRD
b21waWxlcjo6Tm9uWmVybywgZGl2aXNvckdQUik7CisgICAgICAgICAgICBtX2ppdC5tb3ZlKGRp
dmlzb3JHUFIsIHF1b3RpZW50VGhlblJlbWFpbmRlckdQUik7CisgICAgICAgICAgICBkb25lLmFw
cGVuZChtX2ppdC5qdW1wKCkpOworICAgICAgICAgICAgZGVub21pbmF0b3JOb3RaZXJvLmxpbmso
Jm1faml0KTsKKyAgICAgICAgfQorCiAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLnNkaXYocXVv
dGllbnRUaGVuUmVtYWluZGVyR1BSLCBkaXZpZGVuZEdQUiwgZGl2aXNvckdQUik7CiAgICAgICAg
IC8vIEZJWE1FOiBJdCBzZWVtcyBsaWtlIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSB3ZSBkb24ndCBu
ZWVkIHRoaXM/IFdoYXQgaWYgd2UgaGF2ZQogICAgICAgICAvLyBhcml0aE1vZGUoKSA9PSBBcml0
aDo6VW5jaGVja2VkPwpAQCAtMzQ0NSw2ICszNDk2LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUFyaXRoTW9kKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBudW1lcmF0b3JQb3NpdGl2
ZS5saW5rKCZtX2ppdCk7CiAgICAgICAgIH0KIAorICAgICAgICBkb25lLmxpbmsoJm1faml0KTsK
KyAgICAgICAgCiAgICAgICAgIGludDMyUmVzdWx0KHF1b3RpZW50VGhlblJlbWFpbmRlckdQUiwg
bm9kZSk7CiAjZWxpZiBDUFUoQVJNNjQpCiAgICAgICAgIEdQUlRlbXBvcmFyeSB0ZW1wKHRoaXMp
OwpAQCAtMzQ1NSw2ICszNTA4LDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0
aE1vZChOb2RlKiBub2RlKQogICAgICAgICBHUFJSZWcgcXVvdGllbnRUaGVuUmVtYWluZGVyR1BS
ID0gcXVvdGllbnRUaGVuUmVtYWluZGVyLmdwcigpOwogICAgICAgICBHUFJSZWcgbXVsdGlwbHlB
bnN3ZXJHUFIgPSBtdWx0aXBseUFuc3dlci5ncHIoKTsKIAorICAgICAgICBKSVRDb21waWxlcjo6
SnVtcExpc3QgZG9uZTsKKyAgICAKKyAgICAgICAgaWYgKHNob3VsZENoZWNrT3ZlcmZsb3cobm9k
ZS0+YXJpdGhNb2RlKCkpKQorICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdmVyZmxvdywg
SlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDMyKEpJVENvbXBpbGVyOjpaZXJvLCBk
aXZpc29yR1BSKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1
bXAgZGVub21pbmF0b3JOb3RaZXJvID0gbV9qaXQuYnJhbmNoVGVzdDMyKEpJVENvbXBpbGVyOjpO
b25aZXJvLCBkaXZpc29yR1BSKTsKKyAgICAgICAgICAgIG1faml0Lm1vdmUoZGl2aXNvckdQUiwg
cXVvdGllbnRUaGVuUmVtYWluZGVyR1BSKTsKKyAgICAgICAgICAgIGRvbmUuYXBwZW5kKG1faml0
Lmp1bXAoKSk7CisgICAgICAgICAgICBkZW5vbWluYXRvck5vdFplcm8ubGluaygmbV9qaXQpOwor
ICAgICAgICB9CisKICAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuc2RpdjwzMj4ocXVvdGllbnRU
aGVuUmVtYWluZGVyR1BSLCBkaXZpZGVuZEdQUiwgZGl2aXNvckdQUik7CiAgICAgICAgIC8vIEZJ
WE1FOiBJdCBzZWVtcyBsaWtlIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSB3ZSBkb24ndCBuZWVkIHRo
aXM/IFdoYXQgaWYgd2UgaGF2ZQogICAgICAgICAvLyBhcml0aE1vZGUoKSA9PSBBcml0aDo6VW5j
aGVja2VkPwpAQCAtMzQ3MSw2ICszNTM1LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUFyaXRoTW9kKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBudW1lcmF0b3JQb3NpdGl2ZS5saW5r
KCZtX2ppdCk7CiAgICAgICAgIH0KIAorICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKKwogICAg
ICAgICBpbnQzMlJlc3VsdChxdW90aWVudFRoZW5SZW1haW5kZXJHUFIsIG5vZGUpOwogI2Vsc2Ug
Ly8gbm90IGFyY2hpdGVjdHVyZSB0aGF0IGNhbiBkbyBpbnRlZ2VyIGRpdmlzaW9uCiAgICAgICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggMzUzNGM3YjE1MmVlYzdmNWJjZjVhOWYxM2Vi
OGMxODYxYWYxMjUwOS4uOGY1NmE1MTc4NmQyYzNiZmYxZjNiOTVlYmFhMWE1YWZkMjg2MTAxNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAt
MTE5LDYgKzExOSw5IEBAIHB1YmxpYzoKICAgICB+U3BlY3VsYXRpdmVKSVQoKTsKIAogICAgIGJv
b2wgY29tcGlsZSgpOworICAgIAorICAgIHZvaWQgcHJlcGFyZUpJVENvZGVGb3JUaWVyVXAoKTsK
KyAgICAKICAgICB2b2lkIGNyZWF0ZU9TUkVudHJpZXMoKTsKICAgICB2b2lkIGxpbmtPU1JFbnRy
aWVzKExpbmtCdWZmZXImKTsKIApAQCAtNzQyLDQ0ICs3NDUsNDUgQEAgcHVibGljOgogICAgIAog
ICAgIHB0cmRpZmZfdCBjYWxsZWVGcmFtZU9mZnNldChpbnQgbnVtQXJncykKICAgICB7Ci0gICAg
ICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChtX2ppdC5ncmFwaCgpLm1fbmV4dE1h
Y2hpbmVMb2NhbCArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgKyBudW1BcmdzKS5vZmZz
ZXQoKSAqIHNpemVvZihSZWdpc3Rlcik7CisgICAgICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0ZXJG
b3JMb2NhbChtX2ppdC5ncmFwaCgpLm1fbmV4dE1hY2hpbmVMb2NhbCAtIDEgKyBKU1N0YWNrOjpD
YWxsRnJhbWVIZWFkZXJTaXplICsgbnVtQXJncykub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIp
OwogICAgIH0KICAgICAKICAgICAvLyBBY2Nlc3MgdG8gb3VyIGZpeGVkIGNhbGxlZSBDYWxsRnJh
bWUuCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlRnJhbWVTbG90KGludCBudW1B
cmdzLCBpbnQgc2xvdCkKKyAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVNs
b3QoaW50IHNsb3QpCiAgICAgewotICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGNhbGxlZUZyYW1lT2Zmc2V0KG51bUFyZ3Mp
ICsgc2l6ZW9mKFJlZ2lzdGVyKSAqIHNsb3QpOworICAgICAgICBBU1NFUlQoc2xvdCA+PSBKU1N0
YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSk7CisgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNpemVvZihS
ZWdpc3RlcikgKiAoc2xvdCAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKSk7CiAgICAg
fQogCiAgICAgLy8gQWNjZXNzIHRvIG91ciBmaXhlZCBjYWxsZWUgQ2FsbEZyYW1lLgotICAgIE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUFyZ3VtZW50U2xvdChpbnQgbnVtQXJncywgaW50
IGFyZ3VtZW50KQorICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUFyZ3VtZW50U2xv
dChpbnQgYXJndW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVTbG90KG51
bUFyZ3MsIHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KGFyZ3VtZW50KS5vZmZzZXQoKSk7Cisg
ICAgICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3QodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQo
YXJndW1lbnQpLm9mZnNldCgpKTsKICAgICB9CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyBjYWxsZWVGcmFtZVRhZ1Nsb3QoaW50IG51bUFyZ3MsIGludCBzbG90KQorICAgIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUZyYW1lVGFnU2xvdChpbnQgc2xvdCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBjYWxsZWVGcmFtZVNsb3QobnVtQXJncywgc2xvdCkud2l0aE9mZnNldChPQkpF
Q1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykpOworICAgICAg
ICByZXR1cm4gY2FsbGVlRnJhbWVTbG90KHNsb3QpLndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9G
KEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKTsKICAgICB9CiAKLSAgICBNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVBheWxvYWRTbG90KGludCBudW1BcmdzLCBp
bnQgc2xvdCkKKyAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBjYWxsZWVGcmFtZVBheWxvYWRT
bG90KGludCBzbG90KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxlZUZyYW1lU2xvdChudW1B
cmdzLCBzbG90KS53aXRoT2Zmc2V0KE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlw
dG9yLCBhc0JpdHMucGF5bG9hZCkpOworICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVTbG90KHNs
b3QpLndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFz
Qml0cy5wYXlsb2FkKSk7CiAgICAgfQogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2Fs
bGVlQXJndW1lbnRUYWdTbG90KGludCBudW1BcmdzLCBpbnQgYXJndW1lbnQpCisgICAgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlQXJndW1lbnRUYWdTbG90KGludCBhcmd1bWVudCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBjYWxsZWVBcmd1bWVudFNsb3QobnVtQXJncywgYXJndW1lbnQp
LndpdGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0
cy50YWcpKTsKKyAgICAgICAgcmV0dXJuIGNhbGxlZUFyZ3VtZW50U2xvdChhcmd1bWVudCkud2l0
aE9mZnNldChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRh
ZykpOwogICAgIH0KIAotICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzIGNhbGxlZUFyZ3VtZW50
UGF5bG9hZFNsb3QoaW50IG51bUFyZ3MsIGludCBhcmd1bWVudCkKKyAgICBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyBjYWxsZWVBcmd1bWVudFBheWxvYWRTbG90KGludCBhcmd1bWVudCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBjYWxsZWVBcmd1bWVudFNsb3QobnVtQXJncywgYXJndW1lbnQpLndp
dGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5w
YXlsb2FkKSk7CisgICAgICAgIHJldHVybiBjYWxsZWVBcmd1bWVudFNsb3QoYXJndW1lbnQpLndp
dGhPZmZzZXQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5w
YXlsb2FkKSk7CiAgICAgfQogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MgY2FsbGVlRnJh
bWVDYWxsZXJGcmFtZShpbnQgbnVtQXJncykKKyAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyBj
YWxsZWVGcmFtZUNhbGxlckZyYW1lKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsZWVGcmFt
ZVNsb3QobnVtQXJncywgMCkud2l0aE9mZnNldChDYWxsRnJhbWU6OmNhbGxlckZyYW1lT2Zmc2V0
KCkpOworICAgICAgICByZXR1cm4gY2FsbGVlRnJhbWVTbG90KDApLndpdGhPZmZzZXQoQ2FsbEZy
YW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKTsKICAgICB9CiAKICAgICB2b2lkIGVtaXRDYWxsKE5v
ZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwCmluZGV4IDk2NWFhZjgxYTkzNWZhYmIyODQxOGIxY2UyMWI2MmM0Y2E2MmVj
MWMuLjFlOGZhY2E5NDRhNmEyN2E2MTQ4YmQ4NWIzOWIxZGQ3YWQ4ZjhkNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApA
QCAtMTcyLDcgKzE3Miw3IEBAIGJvb2wgU3BlY3VsYXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKEVkZ2Ug
ZWRnZSwgR1BSUmVnJiB0YWdHUFIsIEdQUlJlZyYgcGF5bG9hZEdQUiwKIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZVRh
Z0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgcmVzdWx0VGFnR1BSLCBH
UFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgSklUQ29t
cGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9kZSBzcGlsbE1vZGUp
CiB7CiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1faml0LmNvZGVCbG9j
aygpLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzKCksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyLAorICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVy
cygpLAogICAgICAgICBKU1ZhbHVlUmVncyhiYXNlVGFnR1BST3JOb25lLCBiYXNlUGF5bG9hZEdQ
UiksCiAgICAgICAgIEpTVmFsdWVSZWdzKHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUiks
IHNwaWxsTW9kZSAhPSBOZWVkVG9TcGlsbCk7CiAgICAgCkBAIC0yMDQsNyArMjA0LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQ
UlJlZyBiYXNlVGFnR1BST3JOb24KIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZFB1dEJ5SWQo
Q29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZVBheWxvYWRHUFIsIEdQUlJlZyB2YWx1
ZVRhZ0dQUiwgR1BSUmVnIHZhbHVlUGF5bG9hZEdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVuc2ln
bmVkIGlkZW50aWZpZXJOdW1iZXIsIFB1dEtpbmQgcHV0S2luZCwgSklUQ29tcGlsZXI6Okp1bXAg
c2xvd1BhdGhUYXJnZXQpCiB7CiAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAg
IG1faml0LmNvZGVCbG9jaygpLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzKCksIEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyLAorICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgY29kZU9yaWdp
biwgdXNlZFJlZ2lzdGVycygpLAogICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkoYmFz
ZVBheWxvYWRHUFIpLCBKU1ZhbHVlUmVncyh2YWx1ZVRhZ0dQUiwgdmFsdWVQYXlsb2FkR1BSKSwK
ICAgICAgICAgc2NyYXRjaEdQUiwgZmFsc2UsIG1faml0LmVjbWFNb2RlRm9yKGNvZGVPcmlnaW4p
LCBwdXRLaW5kKTsKICAgICAKQEAgLTYzMSwxMCArNjMxLDkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6ZW1pdENhbGwoTm9kZSogbm9kZSkKICAgICAKICAgICBpbnQgbnVtQXJncyA9IG51bVBhc3Nl
ZEFyZ3MgKyBkdW1teVRoaXNBcmd1bWVudDsKIAotICAgIG1faml0LnN0b3JlMzIoTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW0zMihudW1BcmdzKSwgY2FsbGVlRnJhbWVQYXlsb2FkU2xvdChudW1B
cmdzLCBKU1N0YWNrOjpBcmd1bWVudENvdW50KSk7Ci0gICAgbV9qaXQuc3RvcmVQdHIoR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGNhbGxlZUZyYW1lQ2FsbGVyRnJhbWUobnVtQXJncykpOwot
ICAgIG1faml0LnN0b3JlMzIoY2FsbGVlUGF5bG9hZEdQUiwgY2FsbGVlRnJhbWVQYXlsb2FkU2xv
dChudW1BcmdzLCBKU1N0YWNrOjpDYWxsZWUpKTsKLSAgICBtX2ppdC5zdG9yZTMyKGNhbGxlZVRh
Z0dQUiwgY2FsbGVlRnJhbWVUYWdTbG90KG51bUFyZ3MsIEpTU3RhY2s6OkNhbGxlZSkpOworICAg
IG1faml0LnN0b3JlMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihudW1BcmdzKSwgY2Fs
bGVlRnJhbWVQYXlsb2FkU2xvdChKU1N0YWNrOjpBcmd1bWVudENvdW50KSk7CisgICAgbV9qaXQu
c3RvcmUzMihjYWxsZWVQYXlsb2FkR1BSLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KEpTU3RhY2s6
OkNhbGxlZSkpOworICAgIG1faml0LnN0b3JlMzIoY2FsbGVlVGFnR1BSLCBjYWxsZWVGcmFtZVRh
Z1Nsb3QoSlNTdGFjazo6Q2FsbGVlKSk7CiAKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVBh
c3NlZEFyZ3M7IGkrKykgewogICAgICAgICBFZGdlIGFyZ0VkZ2UgPSBtX2ppdC5ncmFwaCgpLm1f
dmFyQXJnQ2hpbGRyZW5bbm9kZS0+Zmlyc3RDaGlsZCgpICsgMSArIGldOwpAQCAtNjQzLDggKzY0
Miw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUpCiAgICAgICAg
IEdQUlJlZyBhcmdQYXlsb2FkR1BSID0gYXJnLnBheWxvYWRHUFIoKTsKICAgICAgICAgdXNlKGFy
Z0VkZ2UpOwogCi0gICAgICAgIG1faml0LnN0b3JlMzIoYXJnVGFnR1BSLCBjYWxsZWVBcmd1bWVu
dFRhZ1Nsb3QobnVtQXJncywgaSArIGR1bW15VGhpc0FyZ3VtZW50KSk7Ci0gICAgICAgIG1faml0
LnN0b3JlMzIoYXJnUGF5bG9hZEdQUiwgY2FsbGVlQXJndW1lbnRQYXlsb2FkU2xvdChudW1Bcmdz
LCBpICsgZHVtbXlUaGlzQXJndW1lbnQpKTsKKyAgICAgICAgbV9qaXQuc3RvcmUzMihhcmdUYWdH
UFIsIGNhbGxlZUFyZ3VtZW50VGFnU2xvdChpICsgZHVtbXlUaGlzQXJndW1lbnQpKTsKKyAgICAg
ICAgbV9qaXQuc3RvcmUzMihhcmdQYXlsb2FkR1BSLCBjYWxsZWVBcmd1bWVudFBheWxvYWRTbG90
KGkgKyBkdW1teVRoaXNBcmd1bWVudCkpOwogICAgIH0KIAogICAgIGZsdXNoUmVnaXN0ZXJzKCk7
CkBAIC02NTksMTMgKzY1OCwxMSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbChOb2Rl
KiBub2RlKQogCiAgICAgbV9qaXQuZW1pdFN0b3JlQ29kZU9yaWdpbihub2RlLT5jb2RlT3JpZ2lu
KTsKICAgICAKLSAgICBtX2ppdC5hZGRQdHIoVHJ1c3RlZEltbTMyKGNhbGxlZUZyYW1lT2Zmc2V0
KG51bUFyZ3MpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwotICAgIAogICAgIHNsb3dQ
YXRoLmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIGNhbGxl
ZVRhZ0dQUiwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7CiAgICAgc2xvd1BhdGgu
YXBwZW5kKG1faml0LmJyYW5jaFB0cldpdGhQYXRjaChNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWws
IGNhbGxlZVBheWxvYWRHUFIsIHRhcmdldFRvQ2hlY2spKTsKICAgICBtX2ppdC5sb2FkUHRyKE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKGNhbGxlZVBheWxvYWRHUFIsIE9CSkVDVF9PRkZTRVRPRihK
U0Z1bmN0aW9uLCBtX3Njb3BlKSksIHJlc3VsdFBheWxvYWRHUFIpOwotICAgIG1faml0LnN0b3Jl
UHRyKHJlc3VsdFBheWxvYWRHUFIsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3Rlcikp
ICogSlNTdGFjazo6U2NvcGVDaGFpbiArIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNj
cmlwdG9yLCBhc0JpdHMucGF5bG9hZCkpKTsKLSAgICBtX2ppdC5zdG9yZTMyKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNp
emVvZihSZWdpc3RlcikpICogSlNTdGFjazo6U2NvcGVDaGFpbiArIE9CSkVDVF9PRkZTRVRPRihF
bmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSkpOworICAgIG1faml0LnN0b3JlUHRy
KHJlc3VsdFBheWxvYWRHUFIsIGNhbGxlZUZyYW1lUGF5bG9hZFNsb3QoSlNTdGFjazo6U2NvcGVD
aGFpbikpOworICAgIG1faml0LnN0b3JlUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIo
SlNWYWx1ZTo6Q2VsbFRhZyksIGNhbGxlZUZyYW1lVGFnU2xvdChKU1N0YWNrOjpTY29wZUNoYWlu
KSk7CiAKICAgICBKSVRDb21waWxlcjo6Q2FsbCBmYXN0Q2FsbCA9IG1faml0Lm5lYXJDYWxsKCk7
CiAKQEAgLTMwNDcsMTIgKzMwNDQsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5v
ZGUqIG5vZGUpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICAvLyBHcmFiIHRo
ZSByZXR1cm4gYWRkcmVzcy4KLSAgICAgICAgbV9qaXQuZW1pdEdldFJldHVyblBDRnJvbUNhbGxG
cmFtZUhlYWRlclB0cihHUFJJbmZvOjpyZWdUMik7Ci0gICAgICAgIC8vIFJlc3RvcmUgb3VyIGNh
bGxlcidzICJyIi4KLSAgICAgICAgbV9qaXQuZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFt
ZUhlYWRlclB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAgICAgIC8vIFJldHVy
bi4KLSAgICAgICAgbV9qaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5m
bzo6cmVnVDIpOworICAgICAgICBtX2ppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAg
ICBtX2ppdC5yZXQoKTsKICAgICAgICAgCiAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXgg
MGFhNjRhNjA5MzBkYjEwMzRjYjgyZmExMDdhNTM0YWM2YTYzMTRhYy4uZWU0ZjlhZGZlYzNmODhk
NTE2MWRjMTg0MjVhNzgyNzQzMTAwMTBhZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0xOTAsOCArMTkwLDggQEAgR1BSUmVn
IFNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShFZGdlIGVkZ2UpCiB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIs
IEdQUlJlZyByZXN1bHRHUFIsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIEpJVENvbXBpbGVy
OjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01vZGUgc3BpbGxNb2RlKQogewog
ICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwg
Y29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwK
LSAgICAgICAgSlNWYWx1ZVJlZ3MoYmFzZUdQUiksIEpTVmFsdWVSZWdzKHJlc3VsdEdQUiksIHNw
aWxsTW9kZSAhPSBOZWVkVG9TcGlsbCk7CisgICAgICAgIG1faml0LmNvZGVCbG9jaygpLCBjb2Rl
T3JpZ2luLCB1c2VkUmVnaXN0ZXJzKCksIEpTVmFsdWVSZWdzKGJhc2VHUFIpLAorICAgICAgICBK
U1ZhbHVlUmVncyhyZXN1bHRHUFIpLCBzcGlsbE1vZGUgIT0gTmVlZFRvU3BpbGwpOwogICAgIGdl
bi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKICAgICAKICAgICBKSVRDb21waWxlcjo6SnVtcExp
c3Qgc2xvd0Nhc2VzOwpAQCAtMjEwLDkgKzIxMCw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNh
Y2hlZEdldEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgR1BSUmVn
CiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdp
biwgR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyB2YWx1ZUdQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIHVu
c2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFB1dEtpbmQgcHV0S2luZCwgSklUQ29tcGlsZXI6Okp1
bXAgc2xvd1BhdGhUYXJnZXQpCiB7CiAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAg
ICAgIG1faml0LmNvZGVCbG9jaygpLCBjb2RlT3JpZ2luLCB1c2VkUmVnaXN0ZXJzKCksIEdQUklu
Zm86OmNhbGxGcmFtZVJlZ2lzdGVyLAotICAgICAgICBKU1ZhbHVlUmVncyhiYXNlR1BSKSwgSlNW
YWx1ZVJlZ3ModmFsdWVHUFIpLCBzY3JhdGNoR1BSLCBmYWxzZSwKLSAgICAgICAgbV9qaXQuZWNt
YU1vZGVGb3IoY29kZU9yaWdpbiksIHB1dEtpbmQpOworICAgICAgICBtX2ppdC5jb2RlQmxvY2so
KSwgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycygpLCBKU1ZhbHVlUmVncyhiYXNlR1BSKSwKKyAg
ICAgICAgSlNWYWx1ZVJlZ3ModmFsdWVHUFIpLCBzY3JhdGNoR1BSLCBmYWxzZSwgbV9qaXQuZWNt
YU1vZGVGb3IoY29kZU9yaWdpbiksIHB1dEtpbmQpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRo
KG1faml0KTsKICAgICAKICAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwpAQCAt
NjYzLDkgKzY2Miw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUp
CiAgICAgCiAgICAgaW50IG51bUFyZ3MgPSBudW1QYXNzZWRBcmdzICsgZHVtbXlUaGlzQXJndW1l
bnQ7CiAgICAgCi0gICAgbV9qaXQuc3RvcmUzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
KG51bUFyZ3MpLCBjYWxsZWVGcmFtZVBheWxvYWRTbG90KG51bUFyZ3MsIEpTU3RhY2s6OkFyZ3Vt
ZW50Q291bnQpKTsKLSAgICBtX2ppdC5zdG9yZTY0KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
LCBjYWxsZWVGcmFtZUNhbGxlckZyYW1lKG51bUFyZ3MpKTsKLSAgICBtX2ppdC5zdG9yZTY0KGNh
bGxlZUdQUiwgY2FsbGVlRnJhbWVTbG90KG51bUFyZ3MsIEpTU3RhY2s6OkNhbGxlZSkpOworICAg
IG1faml0LnN0b3JlMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihudW1BcmdzKSwgY2Fs
bGVlRnJhbWVQYXlsb2FkU2xvdChKU1N0YWNrOjpBcmd1bWVudENvdW50KSk7CisgICAgbV9qaXQu
c3RvcmU2NChjYWxsZWVHUFIsIGNhbGxlZUZyYW1lU2xvdChKU1N0YWNrOjpDYWxsZWUpKTsKICAg
ICAKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVBhc3NlZEFyZ3M7IGkrKykgewogICAgICAg
ICBFZGdlIGFyZ0VkZ2UgPSBtX2ppdC5ncmFwaCgpLm1fdmFyQXJnQ2hpbGRyZW5bbm9kZS0+Zmly
c3RDaGlsZCgpICsgMSArIGldOwpAQCAtNjczLDcgKzY3MSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmVtaXRDYWxsKE5vZGUqIG5vZGUpCiAgICAgICAgIEdQUlJlZyBhcmdHUFIgPSBhcmcuZ3By
KCk7CiAgICAgICAgIHVzZShhcmdFZGdlKTsKICAgICAgICAgCi0gICAgICAgIG1faml0LnN0b3Jl
NjQoYXJnR1BSLCBjYWxsZWVBcmd1bWVudFNsb3QobnVtQXJncywgaSArIGR1bW15VGhpc0FyZ3Vt
ZW50KSk7CisgICAgICAgIG1faml0LnN0b3JlNjQoYXJnR1BSLCBjYWxsZWVBcmd1bWVudFNsb3Qo
aSArIGR1bW15VGhpc0FyZ3VtZW50KSk7CiAgICAgfQogCiAgICAgZmx1c2hSZWdpc3RlcnMoKTsK
QEAgLTY4MiwyMyArNjgwLDI4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUq
IG5vZGUpCiAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKIAogICAgIEpJVENv
bXBpbGVyOjpEYXRhTGFiZWxQdHIgdGFyZ2V0VG9DaGVjazsKLSAgICBKSVRDb21waWxlcjo6SnVt
cExpc3Qgc2xvd1BhdGg7CisgICAgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGg7CiAKICAgICBt
X2ppdC5lbWl0U3RvcmVDb2RlT3JpZ2luKG5vZGUtPmNvZGVPcmlnaW4pOwogICAgIAotICAgIG1f
aml0LmFkZFB0cihUcnVzdGVkSW1tMzIoY2FsbGVlRnJhbWVPZmZzZXQobnVtQXJncykpLCBHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAgCi0gICAgc2xvd1BhdGguYXBwZW5kKG1faml0
LmJyYW5jaFB0cldpdGhQYXRjaChNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIGNhbGxlZUdQUiwg
dGFyZ2V0VG9DaGVjaywgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoMCkpKTsKKyAgICBz
bG93UGF0aCA9IG1faml0LmJyYW5jaFB0cldpdGhQYXRjaChNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1
YWwsIGNhbGxlZUdQUiwgdGFyZ2V0VG9DaGVjaywgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1Q
dHIoMCkpOwogCiAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhjYWxs
ZWVHUFIsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlKSksIHJlc3VsdEdQUik7
Ci0gICAgbV9qaXQuc3RvcmU2NChyZXN1bHRHUFIsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihS
ZWdpc3RlcikpICogSlNTdGFjazo6U2NvcGVDaGFpbikpOworICAgIG1faml0LnN0b3JlNjQocmVz
dWx0R1BSLCBjYWxsZWVGcmFtZVNsb3QoSlNTdGFjazo6U2NvcGVDaGFpbikpOwogCiAgICAgSklU
Q29tcGlsZXI6OkNhbGwgZmFzdENhbGwgPSBtX2ppdC5uZWFyQ2FsbCgpOwotICAgIAorCiAgICAg
SklUQ29tcGlsZXI6Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAoKTsKICAgICAKICAgICBzbG93UGF0
aC5saW5rKCZtX2ppdCk7CiAgICAgCisgICAgaWYgKG1faml0LmdyYXBoKCkubV9wbGFuLndpbGxU
cnlUb1RpZXJVcCkgeworICAgICAgICBtX2ppdC5hZGQzMigKKyAgICAgICAgICAgIFRydXN0ZWRJ
bW0zMigxKSwKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBYnNvbHV0ZUFkZHJlc3MoCisg
ICAgICAgICAgICAgICAgbV9qaXQuaml0Q29kZSgpLT5zbG93UGF0aENhbGxzLmJlZ2luKCkgKyBt
X2ppdC5jdXJyZW50SlNDYWxsSW5kZXgoKSkpOworICAgIH0KKyAgICAKICAgICBtX2ppdC5tb3Zl
KGNhbGxlZUdQUiwgR1BSSW5mbzo6cmVnVDApOyAvLyBDYWxsZWUgbmVlZHMgdG8gYmUgaW4gcmVn
VDAKICAgICBKSVRDb21waWxlcjo6Q2FsbCBzbG93Q2FsbCA9IG1faml0Lm5lYXJDYWxsKCk7CiAg
ICAgCkBAIC0zMjAwLDcgKzMyMDMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5v
ZGUqIG5vZGUpCiAgICAgICAgICAgICAKICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9y
KAogICAgICAgICAgICAgICAgIHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgICAgICAgICAgc2xv
d1BhdGgsIHRoaXMsIG9wZXJhdGlvbkFycmF5UHVzaCwgTm9SZXN1bHQsIHN0b3JhZ2VMZW5ndGhH
UFIsCisgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLCB0aGlzLCBvcGVyYXRpb25BcnJheVB1
c2gsIHN0b3JhZ2VMZW5ndGhHUFIsCiAgICAgICAgICAgICAgICAgICAgIHZhbHVlR1BSLCBiYXNl
R1BSKSk7CiAgICAgICAgIAogICAgICAgICAgICAganNWYWx1ZVJlc3VsdChzdG9yYWdlTGVuZ3Ro
R1BSLCBub2RlKTsKQEAgLTMyMjQsNyArMzIyNyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIAogICAgICAgICAgICAgYWRkU2xvd1BhdGhH
ZW5lcmF0b3IoCiAgICAgICAgICAgICAgICAgc2xvd1BhdGhDYWxsKAotICAgICAgICAgICAgICAg
ICAgICBzbG93UGF0aCwgdGhpcywgb3BlcmF0aW9uQXJyYXlQdXNoRG91YmxlLCBOb1Jlc3VsdCwg
c3RvcmFnZUxlbmd0aEdQUiwKKyAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGgsIHRoaXMsIG9w
ZXJhdGlvbkFycmF5UHVzaERvdWJsZSwgc3RvcmFnZUxlbmd0aEdQUiwKICAgICAgICAgICAgICAg
ICAgICAgdmFsdWVGUFIsIGJhc2VHUFIpKTsKICAgICAgICAgCiAgICAgICAgICAgICBqc1ZhbHVl
UmVzdWx0KHN0b3JhZ2VMZW5ndGhHUFIsIG5vZGUpOwpAQCAtMzM4OCwxMiArMzM5MSw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgSlNWYWx1ZU9w
ZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgbV9qaXQubW92ZShvcDEu
Z3ByKCksIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKIAotICAgICAgICAvLyBHcmFiIHRoZSBy
ZXR1cm4gYWRkcmVzcy4KLSAgICAgICAgbV9qaXQuZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFt
ZUhlYWRlclB0cihHUFJJbmZvOjpyZWdUMSk7Ci0gICAgICAgIC8vIFJlc3RvcmUgb3VyIGNhbGxl
cidzICJyIi4KLSAgICAgICAgbV9qaXQuZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhl
YWRlclB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0gICAgICAgIC8vIFJldHVybi4K
LSAgICAgICAgbV9qaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6
cmVnVDEpOworICAgICAgICBtX2ppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICBt
X2ppdC5yZXQoKTsKICAgICAgICAgCiAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGllclVwQ2hlY2tJbmplY3Rpb25Q
aGFzZS5jcHAKaW5kZXggZDUxYTFmMGQ4MjczNDRiNDExYzE0ZDUxZGU5YmRmNzVhY2YxYTk2YS4u
YmVmMGRhOTE0Mzc4ZjQ5NTdiMjk2YmU1ZmUwMzkzMWMzZDI0MzcxMCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhh
c2UuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC00OSwyNyArNDksNTkgQEAgcHVibGljOgogICAgICAgICAKICAgICAgICAgaWYgKCFP
cHRpb25zOjp1c2VFeHBlcmltZW50YWxGVEwoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LQorICAgICAgICAKKyAgICAgICAgaWYgKG1fZ3JhcGgubV9wcm9maWxlZEJsb2NrLT5tX2RpZEZh
aWxGVExDb21waWxhdGlvbikKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAKICNp
ZiBFTkFCTEUoRlRMX0pJVCkKICAgICAgICAgRlRMOjpDYXBhYmlsaXR5TGV2ZWwgbGV2ZWwgPSBG
VEw6OmNhbkNvbXBpbGUobV9ncmFwaCk7CiAgICAgICAgIGlmIChsZXZlbCA9PSBGVEw6OkNhbm5v
dENvbXBpbGUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAorICAgICAgICBp
ZiAoIU9wdGlvbnM6OmVuYWJsZU9TUkVudHJ5VG9GVEwoKSkKKyAgICAgICAgICAgIGxldmVsID0g
RlRMOjpDYW5Db21waWxlOworICAgICAgICAKICAgICAgICAgSW5zZXJ0aW9uU2V0IGluc2VydGlv
blNldChtX2dyYXBoKTsKICAgICAgICAgZm9yIChCbG9ja0luZGV4IGJsb2NrSW5kZXggPSBtX2dy
YXBoLm51bUJsb2NrcygpOyBibG9ja0luZGV4LS07KSB7CiAgICAgICAgICAgICBCYXNpY0Jsb2Nr
KiBibG9jayA9IG1fZ3JhcGguYmxvY2soYmxvY2tJbmRleCk7CiAgICAgICAgICAgICBpZiAoIWJs
b2NrKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgCi0gICAgICAgICAg
ICBpZiAoYmxvY2stPmF0KDApLT5vcCgpID09IExvb3BIaW50KSB7Ci0gICAgICAgICAgICAgICAg
Q29kZU9yaWdpbiBjb2RlT3JpZ2luID0gYmxvY2stPmF0KDApLT5jb2RlT3JpZ2luOwotICAgICAg
ICAgICAgICAgIE5vZGVUeXBlIG5vZGVUeXBlOwotICAgICAgICAgICAgICAgIGlmIChsZXZlbCA9
PSBGVEw6OkNhbkNvbXBpbGVBbmRPU1JFbnRlciAmJiAhY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJh
bWUpIHsKLSAgICAgICAgICAgICAgICAgICAgbm9kZVR5cGUgPSBDaGVja1RpZXJVcEFuZE9TUkVu
dGVyOwotICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChibG9jay0+Ynl0ZWNvZGVC
ZWdpbiA9PSBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpOwotICAgICAgICAgICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAgICAgICAgICBub2RlVHlwZSA9IENoZWNrVGllclVwSW5Mb29wOwotICAg
ICAgICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnROb2RlKDEsIFNwZWNOb25lLCBub2RlVHlw
ZSwgY29kZU9yaWdpbik7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIG5vZGVJbmRleCA9IDA7
IG5vZGVJbmRleCA8IGJsb2NrLT5zaXplKCk7ICsrbm9kZUluZGV4KSB7CisgICAgICAgICAgICAg
ICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChub2RlSW5kZXgpOworICAgICAgICAgICAgICAgIGlm
IChub2RlLT5vcCgpICE9IExvb3BIaW50KQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBXZSBvbmx5IHB1dCBPU1IgY2hl
Y2tzIGZvciB0aGUgZmlyc3QgTG9vcEhpbnQgaW4gdGhlIGJsb2NrLiBOb3RlIHRoYXQKKyAgICAg
ICAgICAgICAgICAvLyBtb3JlIHRoYW4gb25lIExvb3BIaW50IGNvdWxkIGhhcHBlbiBpbiBjYXNl
cyB3aGVyZSB3ZSBkaWQgYSBsb3Qgb2YgQ0ZHCisgICAgICAgICAgICAgICAgLy8gc2ltcGxpZmlj
YXRpb24gaW4gdGhlIGJ5dGVjb2RlIHBhcnNlciwgYnV0IGl0IHNob3VsZCBiZSB2ZXJ5IHJhcmUu
CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2lu
ID0gbm9kZS0+Y29kZU9yaWdpbjsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBp
ZiAobGV2ZWwgIT0gRlRMOjpDYW5Db21waWxlQW5kT1NSRW50ZXIgfHwgY29kZU9yaWdpbi5pbmxp
bmVDYWxsRnJhbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydE5v
ZGUoCisgICAgICAgICAgICAgICAgICAgICAgICBub2RlSW5kZXggKyAxLCBTcGVjTm9uZSwgQ2hl
Y2tUaWVyVXBJbkxvb3AsIGNvZGVPcmlnaW4pOworICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYm9v
bCBpc0F0VG9wID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHN1Yk5vZGVJ
bmRleCA9IG5vZGVJbmRleDsgc3ViTm9kZUluZGV4LS07KSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICghYmxvY2stPmF0KHN1Yk5vZGVJbmRleCktPmlzU2VtYW50aWNhbGx5U2tpcHBhYmxlKCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzQXRUb3AgPSBmYWxzZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICghaXNBdFRvcCkgewor
ICAgICAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG5vZGVJbmRleCArIDEsIFNwZWNOb25lLCBDaGVja1RpZXJVcEluTG9vcCwg
Y29kZU9yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChibG9j
ay0+Ynl0ZWNvZGVCZWdpbiA9PSBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgpOworICAgICAgICAg
ICAgICAgIGluc2VydGlvblNldC5pbnNlcnROb2RlKAorICAgICAgICAgICAgICAgICAgICBub2Rl
SW5kZXggKyAxLCBTcGVjTm9uZSwgQ2hlY2tUaWVyVXBBbmRPU1JFbnRlciwgY29kZU9yaWdpbik7
CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIGlmIChibG9jay0+bGFzdCgpLT5vcCgpID09IFJldHVybikgewpAQCAtODAsNiAr
MTEyLDcgQEAgcHVibGljOgogICAgICAgICAgICAgaW5zZXJ0aW9uU2V0LmV4ZWN1dGUoYmxvY2sp
OwogICAgICAgICB9CiAgICAgICAgIAorICAgICAgICBtX2dyYXBoLm1fcGxhbi53aWxsVHJ5VG9U
aWVyVXAgPSB0cnVlOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlIC8vIEVOQUJMRShGVExf
SklUKQogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWxpZGF0ZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1ZhbGlkYXRlLmNwcAppbmRleCAwOWJlYTQwNmZmZmI3ZGRhZTRmMGVl
NGIxMDc2NzcyZGNjYTliYWY1Li4wNDA4NjVmYTIzZDM0ODdkOTE5MmUwYzRmMGNlYTIxNWIzMmEx
ZjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbGlkYXRlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbGlkYXRlLmNwcApAQCAtMTgy
LDYgKzE4MiwxOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgICAgICBWX0VRVUFMKChub2RlKSwgbm9kZS0+cmVmQ291bnQoKSwgMSk7CiAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwIDsgaSA8IGJs
b2NrLT5zaXplKCkgLSAxOyArK2kpIHsKKyAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0gYmxv
Y2stPmF0KGkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKChub2RlKSwgIW5vZGUtPmlzVGVy
bWluYWwoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgYmxvY2stPnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAg
Tm9kZSogbm9kZSA9IGJsb2NrLT5hdChpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBpZiAobm9kZS0+aGFzU3RydWN0dXJlKCkpCisgICAgICAgICAgICAgICAgICAgIFZBTElE
QVRFKChub2RlKSwgISFub2RlLT5zdHJ1Y3R1cmUoKSk7CisgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICAgICAgCiAgICAgICAgIHN3aXRjaCAobV9ncmFwaC5tX2Zvcm0pIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKaW5kZXggM2RmMTlhYzExMTAzZmExNGRm
NTdkOGMwOWRlODZhZDlmYTQwNDZjYi4uYTM2ZWIzODM2Yzk0OGE0MmYxNjNhODg3NjgyMjhmZDIy
NGZlMjU2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlz
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKQEAg
LTI2MSwyMyArMjYxLDUyIEBAIHZvaWQgV29ya2xpc3Q6OnRocmVhZEZ1bmN0aW9uKHZvaWQqIGFy
Z3VtZW50KQogICAgIHN0YXRpY19jYXN0PFdvcmtsaXN0Kj4oYXJndW1lbnQpLT5ydW5UaHJlYWQo
KTsKIH0KIAotc3RhdGljIFdvcmtsaXN0KiB0aGVHbG9iYWxXb3JrbGlzdDsKK3N0YXRpYyBXb3Jr
bGlzdCogdGhlR2xvYmFsREZHV29ya2xpc3Q7CiAKLVdvcmtsaXN0KiBnbG9iYWxXb3JrbGlzdCgp
CitXb3JrbGlzdCogZW5zdXJlR2xvYmFsREZHV29ya2xpc3QoKQogewogICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZzsKICAgICBzdGQ6OmNh
bGxfb25jZShpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZywgW10gewotICAgICAgICB1
bnNpZ25lZCBudW1iZXJPZlRocmVhZHM7CisgICAgICAgIHRoZUdsb2JhbERGR1dvcmtsaXN0ID0g
V29ya2xpc3Q6OmNyZWF0ZShPcHRpb25zOjpudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcygpKS5s
ZWFrUmVmKCk7CisgICAgfSk7CisgICAgcmV0dXJuIHRoZUdsb2JhbERGR1dvcmtsaXN0OworfQog
Ci0gICAgICAgIGlmIChPcHRpb25zOjp1c2VFeHBlcmltZW50YWxGVEwoKSkKLSAgICAgICAgICAg
IG51bWJlck9mVGhyZWFkcyA9IDE7IC8vIFdlIGRvbid0IHlldCB1c2UgTExWTSBpbiBhIHRocmVh
ZC1zYWZlIHdheS4KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbnVtYmVyT2ZUaHJlYWRzID0g
T3B0aW9uczo6bnVtYmVyT2ZDb21waWxlclRocmVhZHMoKTsKK1dvcmtsaXN0KiBleGlzdGluZ0ds
b2JhbERGR1dvcmtsaXN0T3JOdWxsKCkKK3sKKyAgICByZXR1cm4gdGhlR2xvYmFsREZHV29ya2xp
c3Q7Cit9CiAKLSAgICAgICAgdGhlR2xvYmFsV29ya2xpc3QgPSBXb3JrbGlzdDo6Y3JlYXRlKG51
bWJlck9mVGhyZWFkcykubGVha1JlZigpOworc3RhdGljIFdvcmtsaXN0KiB0aGVHbG9iYWxGVExX
b3JrbGlzdDsKKworV29ya2xpc3QqIGVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0KCkKK3sKKyAgICBz
dGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWc7Cisg
ICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWcsIFtdIHsK
KyAgICAgICAgdGhlR2xvYmFsRlRMV29ya2xpc3QgPSBXb3JrbGlzdDo6Y3JlYXRlKE9wdGlvbnM6
Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKICAgICB9KTsKKyAgICBy
ZXR1cm4gdGhlR2xvYmFsRlRMV29ya2xpc3Q7Cit9CiAKLSAgICByZXR1cm4gdGhlR2xvYmFsV29y
a2xpc3Q7CitXb3JrbGlzdCogZXhpc3RpbmdHbG9iYWxGVExXb3JrbGlzdE9yTnVsbCgpCit7Cisg
ICAgcmV0dXJuIHRoZUdsb2JhbEZUTFdvcmtsaXN0OworfQorCitXb3JrbGlzdCogZW5zdXJlR2xv
YmFsV29ya2xpc3RGb3IoQ29tcGlsYXRpb25Nb2RlIG1vZGUpCit7CisgICAgc3dpdGNoIChtb2Rl
KSB7CisgICAgY2FzZSBJbnZhbGlkQ29tcGlsYXRpb25Nb2RlOgorICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNlIERGR01vZGU6
CisgICAgICAgIHJldHVybiBlbnN1cmVHbG9iYWxERkdXb3JrbGlzdCgpOworICAgIGNhc2UgRlRM
TW9kZToKKyAgICBjYXNlIEZUTEZvck9TUkVudHJ5TW9kZToKKyAgICAgICAgcmV0dXJuIGVuc3Vy
ZUdsb2JhbEZUTFdvcmtsaXN0KCk7CisgICAgfQorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAppbmRleCBkMzQxOWYwYTkxYWY5NzFh
MWUyMjFkOWNhOWI0NzljOGQzY2QxNzY4Li4yNWEzMTY4ZTA5Y2UyZmQ4ODlkMWY2MDlkZDY2ODI5
NDYyMDljYmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmts
aXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCkBAIC05
NSwxMCArOTUsMTUgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX251bWJlck9mQWN0aXZlVGhy
ZWFkczsKIH07CiAKLS8vIEZvciBub3cgd2UgdXNlIGEgc2luZ2xlIGdsb2JhbCB3b3JrbGlzdC4g
SXQncyBub3QgY2xlYXIgdGhhdCB0aGlzCi0vLyBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8sIGJ1
dCBpdCBpcyB3aGF0IHdlIGRvLCBmb3Igbm93LiBUaGlzIGZ1bmN0aW9uCi0vLyB3aWxsIGxhemls
eSBjcmVhdGUgb25lIHdoZW4gaXQncyBuZWVkZWQuCi1Xb3JrbGlzdCogZ2xvYmFsV29ya2xpc3Qo
KTsKKy8vIEZvciBERkdNb2RlIGNvbXBpbGF0aW9ucy4KK1dvcmtsaXN0KiBlbnN1cmVHbG9iYWxE
RkdXb3JrbGlzdCgpOworV29ya2xpc3QqIGV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RPck51bGwo
KTsKKworLy8gRm9yIEZUTE1vZGUgYW5kIEZUTEZvck9TUkVudHJ5TW9kZSBjb21waWxhdGlvbnMu
CitXb3JrbGlzdCogZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QoKTsKK1dvcmtsaXN0KiBleGlzdGlu
Z0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxsKCk7CisKK1dvcmtsaXN0KiBlbnN1cmVHbG9iYWxXb3Jr
bGlzdEZvcihDb21waWxhdGlvbk1vZGUpOwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0
RE9wY29kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0FSTTY0L0E2
NERPcGNvZGUuY3BwCmluZGV4IDBlYTgxN2E0NjFhZDUyYWRhMGYyNzJhZjc0MzVjMjVhMWE5MTU4
YzMuLjQxNWRiZGI4ZTAyZGVkNGUzMThjODI3MTVkZjY1NDJmNWIxMzQyYWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9BUk02NC9BNjRET3Bjb2Rl
LmNwcApAQCAtNjIsNiArNjIsOCBAQCBzdHJ1Y3QgT3Bjb2RlR3JvdXBJbml0aWFsaXplciB7CiB7
IGdyb3VwSW5kZXgsIGdyb3VwQ2xhc3M6Om1hc2ssIGdyb3VwQ2xhc3M6OnBhdHRlcm4sIGdyb3Vw
Q2xhc3M6OmZvcm1hdCB9CiAKIHN0YXRpYyBPcGNvZGVHcm91cEluaXRpYWxpemVyIG9wY29kZUdy
b3VwTGlzdFtdID0geworICAgIE9QQ09ERV9HUk9VUF9FTlRSWSgweDA4LCBBNjRET3Bjb2RlTG9h
ZFN0b3JlUmVnaXN0ZXJQYWlyKSwKKyAgICBPUENPREVfR1JPVVBfRU5UUlkoMHgwOSwgQTY0RE9w
Y29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpciksCiAgICAgT1BDT0RFX0dST1VQX0VOVFJZKDB4MGEs
IEE2NERPcGNvZGVMb2dpY2FsU2hpZnRlZFJlZ2lzdGVyKSwKICAgICBPUENPREVfR1JPVVBfRU5U
UlkoMHgwYiwgQTY0RE9wY29kZUFkZFN1YnRyYWN0RXh0ZW5kZWRSZWdpc3RlciksCiAgICAgT1BD
T0RFX0dST1VQX0VOVFJZKDB4MGIsIEE2NERPcGNvZGVBZGRTdWJ0cmFjdFNoaWZ0ZWRSZWdpc3Rl
ciksCkBAIC0xNzIsNiArMTc0LDExIEBAIGNvbnN0IGNoYXIqIEE2NERPcGNvZGU6OmZvcm1hdCgp
CiAKIHZvaWQgQTY0RE9wY29kZTo6YXBwZW5kUmVnaXN0ZXJOYW1lKHVuc2lnbmVkIHJlZ2lzdGVy
TnVtYmVyLCBib29sIGlzNjRCaXQpCiB7CisgICAgaWYgKHJlZ2lzdGVyTnVtYmVyID09IDI5KSB7
CisgICAgICAgIGJ1ZmZlclByaW50ZihpczY0Qml0ID8gImZwIiA6ICJ3ZnAiKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKwogICAgIGlmIChyZWdpc3Rlck51bWJlciA9PSAzMCkgewogICAgICAg
ICBidWZmZXJQcmludGYoaXM2NEJpdCA/ICJsciIgOiAid2xyIik7CiAgICAgICAgIHJldHVybjsK
QEAgLTkzOSw2ICs5NDYsNjMgQEAgY29uc3QgY2hhciogQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lz
dGVyT2Zmc2V0Ojpmb3JtYXQoKQogICAgIHJldHVybiBtX2Zvcm1hdEJ1ZmZlcjsKIH0KIAorY29u
c3QgY2hhciogQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVyUGFpcjo6b3BOYW1lKCkKK3sKKyAg
ICBpZiAoIXZCaXQoKSAmJiBsQml0KCkgJiYgc2l6ZSgpID09IDB4MSkKKyAgICAgICAgcmV0dXJu
ICJsZHBzdyI7CisgICAgaWYgKGxCaXQoKSkKKyAgICAgICAgcmV0dXJuICJsZHAiOworICAgIHJl
dHVybiAic3RwIjsKK30KKworY29uc3QgY2hhciogQTY0RE9wY29kZUxvYWRTdG9yZVJlZ2lzdGVy
UGFpcjo6Zm9ybWF0KCkKK3sKKyAgICBjb25zdCBjaGFyKiB0aGlzT3BOYW1lID0gb3BOYW1lKCk7
CisgICAgCisgICAgaWYgKHNpemUoKSA9PSAweDMpCisgICAgICAgIHJldHVybiBBNjRET3Bjb2Rl
Ojpmb3JtYXQoKTsKKworICAgIGlmICgob2Zmc2V0TW9kZSgpIDwgMHgxKSB8fCAob2Zmc2V0TW9k
ZSgpID4gMHgzKSkKKyAgICAgICAgcmV0dXJuIEE2NERPcGNvZGU6OmZvcm1hdCgpOworCisgICAg
aWYgKChvZmZzZXRNb2RlKCkgPT0gMHgxKSAmJiAhdkJpdCgpICYmICFsQml0KCkpCisgICAgICAg
IHJldHVybiBBNjRET3Bjb2RlOjpmb3JtYXQoKTsKKworICAgIGFwcGVuZEluc3RydWN0aW9uTmFt
ZSh0aGlzT3BOYW1lKTsKKyAgICB1bnNpZ25lZCBvZmZzZXRTaGlmdDsKKyAgICBpZiAodkJpdCgp
KSB7CisgICAgICAgIGFwcGVuZEZQUmVnaXN0ZXJOYW1lKHJ0KCksIHNpemUoKSk7CisgICAgICAg
IGFwcGVuZFNlcGFyYXRvcigpOworICAgICAgICBhcHBlbmRGUFJlZ2lzdGVyTmFtZShydDIoKSwg
c2l6ZSgpKTsKKyAgICAgICAgb2Zmc2V0U2hpZnQgPSBzaXplKCkgKyAyOworICAgIH0gZWxzZSB7
CisgICAgICAgIGFwcGVuZFJlZ2lzdGVyTmFtZShydCgpLCBpczY0Qml0KCkpOworICAgICAgICBh
cHBlbmRTZXBhcmF0b3IoKTsKKyAgICAgICAgYXBwZW5kUmVnaXN0ZXJOYW1lKHJ0MigpLCBpczY0
Qml0KCkpOworICAgICAgICBvZmZzZXRTaGlmdCA9IChzaXplKCkgPj4gMSkgKyAyOworICAgIH0K
KworICAgIGFwcGVuZFNlcGFyYXRvcigpOworICAgIGFwcGVuZENoYXJhY3RlcignWycpOworICAg
IGFwcGVuZFNQT3JSZWdpc3Rlck5hbWUocm4oKSk7CisKKyAgICBpbnQgb2Zmc2V0ID0gaW1tZWRp
YXRlNygpIDw8IG9mZnNldFNoaWZ0OworCisgICAgaWYgKG9mZnNldE1vZGUoKSA9PSAxKSB7Cisg
ICAgICAgIGFwcGVuZENoYXJhY3RlcignXScpOworICAgICAgICBhcHBlbmRTZXBhcmF0b3IoKTsK
KyAgICAgICAgYXBwZW5kU2lnbmVkSW1tZWRpYXRlKG9mZnNldCk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgYXBwZW5kU2VwYXJhdG9yKCk7CisgICAgICAgIGFwcGVuZFNpZ25lZEltbWVkaWF0ZShv
ZmZzZXQpOworICAgICAgICBhcHBlbmRDaGFyYWN0ZXIoJ10nKTsKKyAgICAgICAgaWYgKG9mZnNl
dE1vZGUoKSA9PSAweDMpCisgICAgICAgICAgICBhcHBlbmRDaGFyYWN0ZXIoJyEnKTsKKyAgICB9
CisKKyAgICByZXR1cm4gbV9mb3JtYXRCdWZmZXI7Cit9CisKIGNvbnN0IGNoYXIqIEE2NERPcGNv
ZGVMb2FkU3RvcmVVbnNpZ25lZEltbWVkaWF0ZTo6Zm9ybWF0KCkKIHsKICAgICBjb25zdCBjaGFy
KiB0aGlzT3BOYW1lID0gb3BOYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGlzYXNzZW1ibGVyL0FSTTY0L0E2NERPcGNvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kaXNhc3NlbWJsZXIvQVJNNjQvQTY0RE9wY29kZS5oCmluZGV4IGVkMThkMzBkZmRjZmM5OWM5
OGY1NzI4M2NmODZjNzYzYzczYmM2ZTcuLjFjNmFjNDMxOTA2Njk0YTc1NWJhZTBiY2FhYTJlNWVh
NmIxYzk2NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIv
QVJNNjQvQTY0RE9wY29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJs
ZXIvQVJNNjQvQTY0RE9wY29kZS5oCkBAIC01NjUsNiArNTY1LDIyIEBAIHB1YmxpYzoKICAgICBp
bnQgc0JpdCgpIHsgcmV0dXJuIChtX29wY29kZSA+PiAxMikgJiAweDE7IH0KIH07CiAKK2NsYXNz
IEE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXIgOiBwdWJsaWMgQTY0RE9wY29kZUxvYWRT
dG9yZSB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAweDNhMDAw
MDAwOworICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwYXR0ZXJuID0gMHgyODAwMDAwMDsKKwor
ICAgIERFRklORV9TVEFUSUNfRk9STUFUKEE2NERPcGNvZGVMb2FkU3RvcmVSZWdpc3RlclBhaXIs
IHRoaXNPYmopOworCisgICAgY29uc3QgY2hhciogZm9ybWF0KCk7CisgICAgY29uc3QgY2hhciog
b3BOYW1lKCk7CisKKyAgICB1bnNpZ25lZCBydDIoKSB7IHJldHVybiAobV9vcGNvZGUgPj4gMTAp
ICYgMHgxZjsgfQorICAgIGludCBpbW1lZGlhdGU3KCkgeyByZXR1cm4gKHN0YXRpY19jYXN0PGlu
dD4oKG1fb3Bjb2RlID4+IDE1KSAmIDB4N2YpIDw8IDI1KSA+PiAyNTsgfQorICAgIHVuc2lnbmVk
IG9mZnNldE1vZGUoKSB7IHJldHVybiAobV9vcGNvZGUgPj4gMjMpICYgMHg3OyB9CisgICAgaW50
IGxCaXQoKSB7IHJldHVybiAobV9vcGNvZGUgPj4gMjIpICYgMHgxOyB9Cit9OworCiBjbGFzcyBB
NjRET3Bjb2RlTG9hZFN0b3JlVW5zaWduZWRJbW1lZGlhdGUgOiBwdWJsaWMgQTY0RE9wY29kZUxv
YWRTdG9yZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IG1hc2sgPSAweDNi
MDAwMDAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYmJyZXZp
YXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFiYnJldmlhdGlvbnMuaApp
bmRleCAwMmUwYzA0YzMwMjkxNWJhZTRiMzQ4NjA5NTg0ZjcyM2Q4NDQwNjU0Li4wZjlmYTRjMzAx
YzE5MTA5YTc2N2RiYjQ2ODc0NjM3ZGUxOWVmM2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTEFiYnJldmlhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEFiYnJldmlhdGlvbnMuaApAQCAtNTgsNiArNTgsNyBAQCBzdGF0aWMgaW5saW5l
IExUeXBlIGZsb2F0VHlwZShMQ29udGV4dCBjb250ZXh0KSB7IHJldHVybiBsbHZtLT5GbG9hdFR5
cGVJbkNvbnRleAogc3RhdGljIGlubGluZSBMVHlwZSBkb3VibGVUeXBlKExDb250ZXh0IGNvbnRl
eHQpIHsgcmV0dXJuIGxsdm0tPkRvdWJsZVR5cGVJbkNvbnRleHQoY29udGV4dCk7IH0KIAogc3Rh
dGljIGlubGluZSBMVHlwZSBwb2ludGVyVHlwZShMVHlwZSB0eXBlKSB7IHJldHVybiBsbHZtLT5Q
b2ludGVyVHlwZSh0eXBlLCAwKTsgfQorc3RhdGljIGlubGluZSBMVHlwZSBhcnJheVR5cGUoTFR5
cGUgdHlwZSwgdW5zaWduZWQgY291bnQpIHsgcmV0dXJuIGxsdm0tPkFycmF5VHlwZSh0eXBlLCBj
b3VudCk7IH0KIHN0YXRpYyBpbmxpbmUgTFR5cGUgdmVjdG9yVHlwZShMVHlwZSB0eXBlLCB1bnNp
Z25lZCBjb3VudCkgeyByZXR1cm4gbGx2bS0+VmVjdG9yVHlwZSh0eXBlLCBjb3VudCk7IH0KIAog
ZW51bSBQYWNraW5nTW9kZSB7IE5vdFBhY2tlZCwgUGFja2VkIH07CkBAIC0xMzIsNiArMTMzLDcg
QEAgc3RhdGljIGlubGluZSB2b2lkIHNldE1ldGFkYXRhKExWYWx1ZSBpbnN0cnVjdGlvbiwgdW5z
aWduZWQga2luZCwgTFZhbHVlIG1ldGFkYXQKIHN0YXRpYyBpbmxpbmUgTFZhbHVlIGFkZEZ1bmN0
aW9uKExNb2R1bGUgbW9kdWxlLCBjb25zdCBjaGFyKiBuYW1lLCBMVHlwZSB0eXBlKSB7IHJldHVy
biBsbHZtLT5BZGRGdW5jdGlvbihtb2R1bGUsIG5hbWUsIHR5cGUpOyB9CiBzdGF0aWMgaW5saW5l
IHZvaWQgc2V0TGlua2FnZShMVmFsdWUgZ2xvYmFsLCBMTGlua2FnZSBsaW5rYWdlKSB7IGxsdm0t
PlNldExpbmthZ2UoZ2xvYmFsLCBsaW5rYWdlKTsgfQogc3RhdGljIGlubGluZSB2b2lkIHNldEZ1
bmN0aW9uQ2FsbGluZ0NvbnYoTFZhbHVlIGZ1bmN0aW9uLCBMQ2FsbENvbnYgY29udmVudGlvbikg
eyBsbHZtLT5TZXRGdW5jdGlvbkNhbGxDb252KGZ1bmN0aW9uLCBjb252ZW50aW9uKTsgfQorc3Rh
dGljIGlubGluZSB2b2lkIGFkZFRhcmdldERlcGVuZGVudEZ1bmN0aW9uQXR0cihMVmFsdWUgZnVu
Y3Rpb24sIGNvbnN0IGNoYXIqIGtleSwgY29uc3QgY2hhciogdmFsdWUpIHsgbGx2bS0+QWRkVGFy
Z2V0RGVwZW5kZW50RnVuY3Rpb25BdHRyKGZ1bmN0aW9uLCBrZXksIHZhbHVlKTsgfQogCiBzdGF0
aWMgaW5saW5lIExWYWx1ZSBhZGRFeHRlcm5GdW5jdGlvbihMTW9kdWxlIG1vZHVsZSwgY29uc3Qg
Y2hhciogbmFtZSwgTFR5cGUgdHlwZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQWJzdHJhY3RIZWFwLmNwcAppbmRleCBlYWRkNWFmOTdlZWQ0M2U5ZDE3NDllYTNlYTdmYTdh
NzcyNzU5YWU0Li5iZTk5YzUwMTUwNjkyZjE0ODhiNjZlYWRhZTE5MDUyMjcyYmU2NzRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXAuY3BwCkBAIC01Myw5
ICs1MywxMCBAQCB2b2lkIEFic3RyYWN0SGVhcDo6ZGVjb3JhdGVJbnN0cnVjdGlvbihMVmFsdWUg
aW5zdHJ1Y3Rpb24sIGNvbnN0IEFic3RyYWN0SGVhcFJlcAogICAgIHNldE1ldGFkYXRhKGluc3Ry
dWN0aW9uLCByZXBvc2l0b3J5Lm1fdGJhYUtpbmQsIHRiYWFNZXRhZGF0YShyZXBvc2l0b3J5KSk7
CiB9CiAKLUluZGV4ZWRBYnN0cmFjdEhlYXA6OkluZGV4ZWRBYnN0cmFjdEhlYXAoTENvbnRleHQg
Y29udGV4dCwgQWJzdHJhY3RIZWFwKiBwYXJlbnQsIGNvbnN0IGNoYXIqIGhlYXBOYW1lLCBzaXpl
X3QgZWxlbWVudFNpemUpCitJbmRleGVkQWJzdHJhY3RIZWFwOjpJbmRleGVkQWJzdHJhY3RIZWFw
KExDb250ZXh0IGNvbnRleHQsIEFic3RyYWN0SGVhcCogcGFyZW50LCBjb25zdCBjaGFyKiBoZWFw
TmFtZSwgcHRyZGlmZl90IG9mZnNldCwgc2l6ZV90IGVsZW1lbnRTaXplKQogICAgIDogbV9oZWFw
Rm9yQW55SW5kZXgocGFyZW50LCBoZWFwTmFtZSkKICAgICAsIG1faGVhcE5hbWVMZW5ndGgoc3Ry
bGVuKGhlYXBOYW1lKSkKKyAgICAsIG1fb2Zmc2V0KG9mZnNldCkKICAgICAsIG1fZWxlbWVudFNp
emUoZWxlbWVudFNpemUpCiAgICAgLCBtX3NjYWxlVGVybSgwKQogICAgICwgbV9jYW5TaGlmdChm
YWxzZSkKQEAgLTkzLDcgKzk0LDcgQEAgVHlwZWRQb2ludGVyIEluZGV4ZWRBYnN0cmFjdEhlYXA6
OmJhc2VJbmRleChPdXRwdXQmIG91dCwgTFZhbHVlIGJhc2UsIExWYWx1ZSBpbmQKICAgICB9IGVs
c2UKICAgICAgICAgcmVzdWx0ID0gb3V0LmFkZChiYXNlLCBvdXQubXVsKGluZGV4LCBtX3NjYWxl
VGVybSkpOwogICAgIAotICAgIHJldHVybiBUeXBlZFBvaW50ZXIoYXRBbnlJbmRleCgpLCBvdXQu
YWRkUHRyKHJlc3VsdCwgb2Zmc2V0KSk7CisgICAgcmV0dXJuIFR5cGVkUG9pbnRlcihhdEFueUlu
ZGV4KCksIG91dC5hZGRQdHIocmVzdWx0LCBtX29mZnNldCArIG9mZnNldCkpOwogfQogCiBjb25z
dCBBYnN0cmFjdEZpZWxkJiBJbmRleGVkQWJzdHJhY3RIZWFwOjphdFNsb3cocHRyZGlmZl90IGlu
ZGV4KQpAQCAtMTY4LDcgKzE2OSw3IEBAIHZvaWQgSW5kZXhlZEFic3RyYWN0SGVhcDo6aW5pdGlh
bGl6ZShBYnN0cmFjdEZpZWxkJiBmaWVsZCwgcHRyZGlmZl90IHNpZ25lZEluZGV4CiAgICAgICAg
ICAgICBhY2N1bXVsYXRvciA+Pj0gNDsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgZmll
bGQuaW5pdGlhbGl6ZSgmbV9oZWFwRm9yQW55SW5kZXgsIGNoYXJhY3RlcnMsIHNpZ25lZEluZGV4
ICogbV9lbGVtZW50U2l6ZSk7CisgICAgICAgIGZpZWxkLmluaXRpYWxpemUoJm1faGVhcEZvckFu
eUluZGV4LCBjaGFyYWN0ZXJzLCBtX29mZnNldCArIHNpZ25lZEluZGV4ICogbV9lbGVtZW50U2l6
ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCkBAIC0xNzcsNyArMTc4LDcgQEAgdm9p
ZCBJbmRleGVkQWJzdHJhY3RIZWFwOjppbml0aWFsaXplKEFic3RyYWN0RmllbGQmIGZpZWxkLCBw
dHJkaWZmX3Qgc2lnbmVkSW5kZXgKIAogTnVtYmVyZWRBYnN0cmFjdEhlYXA6Ok51bWJlcmVkQWJz
dHJhY3RIZWFwKAogICAgIExDb250ZXh0IGNvbnRleHQsIEFic3RyYWN0SGVhcCogaGVhcCwgY29u
c3QgY2hhciogaGVhcE5hbWUpCi0gICAgOiBtX2luZGV4ZWRIZWFwKGNvbnRleHQsIGhlYXAsIGhl
YXBOYW1lLCAxKQorICAgIDogbV9pbmRleGVkSGVhcChjb250ZXh0LCBoZWFwLCBoZWFwTmFtZSwg
MCwgMSkKIHsKIH0KIApAQCAtMTg3LDcgKzE4OCw3IEBAIE51bWJlcmVkQWJzdHJhY3RIZWFwOjp+
TnVtYmVyZWRBYnN0cmFjdEhlYXAoKQogCiBBYnNvbHV0ZUFic3RyYWN0SGVhcDo6QWJzb2x1dGVB
YnN0cmFjdEhlYXAoCiAgICAgTENvbnRleHQgY29udGV4dCwgQWJzdHJhY3RIZWFwKiBoZWFwLCBj
b25zdCBjaGFyKiBoZWFwTmFtZSkKLSAgICA6IG1faW5kZXhlZEhlYXAoY29udGV4dCwgaGVhcCwg
aGVhcE5hbWUsIDEpCisgICAgOiBtX2luZGV4ZWRIZWFwKGNvbnRleHQsIGhlYXAsIGhlYXBOYW1l
LCAwLCAxKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEFic3RyYWN0SGVhcC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhl
YXAuaAppbmRleCBlOTJhMmZjMmMwMWMzMDk1ODMwNzBkOTYxYjFhNzA5MTQxMWNhYzZkLi4yZjBj
YWE3MjcxMGEyM2JkMTExYzEyOTAxMWQyOTY0NTI3NjdlMDU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwLmgKQEAgLTEzOSw3ICsxMzksNyBAQCBwcml2YXRl
OgogCiBjbGFzcyBJbmRleGVkQWJzdHJhY3RIZWFwIHsKIHB1YmxpYzoKLSAgICBJbmRleGVkQWJz
dHJhY3RIZWFwKExDb250ZXh0LCBBYnN0cmFjdEhlYXAqIHBhcmVudCwgY29uc3QgY2hhciogaGVh
cE5hbWUsIHNpemVfdCBlbGVtZW50U2l6ZSk7CisgICAgSW5kZXhlZEFic3RyYWN0SGVhcChMQ29u
dGV4dCwgQWJzdHJhY3RIZWFwKiBwYXJlbnQsIGNvbnN0IGNoYXIqIGhlYXBOYW1lLCBwdHJkaWZm
X3Qgb2Zmc2V0LCBzaXplX3QgZWxlbWVudFNpemUpOwogICAgIH5JbmRleGVkQWJzdHJhY3RIZWFw
KCk7CiAgICAgCiAgICAgY29uc3QgQWJzdHJhY3RIZWFwJiBhdEFueUluZGV4KCkgY29uc3QgeyBy
ZXR1cm4gbV9oZWFwRm9yQW55SW5kZXg7IH0KQEAgLTE2OCw2ICsxNjgsNyBAQCBwcml2YXRlOgog
CiAgICAgQWJzdHJhY3RIZWFwIG1faGVhcEZvckFueUluZGV4OwogICAgIHNpemVfdCBtX2hlYXBO
YW1lTGVuZ3RoOworICAgIHB0cmRpZmZfdCBtX29mZnNldDsKICAgICBzaXplX3QgbV9lbGVtZW50
U2l6ZTsKICAgICBMVmFsdWUgbV9zY2FsZVRlcm07CiAgICAgYm9vbCBtX2NhblNoaWZ0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0
b3J5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5jcHAKaW5kZXggZDdmODNjOTYwMWM4ZGVjYjNjNGZkOTYwZjllOTNmZWUyNGY5NzJlZi4u
ZTZiMGUxNjFmMmM5YWJhZGRiNDZlYzYxZjZiYjgwMTE3ZjgyNGYxOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3Bw
CkBAIC00Nyw3ICs0Nyw3IEBAIEFic3RyYWN0SGVhcFJlcG9zaXRvcnk6OkFic3RyYWN0SGVhcFJl
cG9zaXRvcnkoTENvbnRleHQgY29udGV4dCkKICAgICAKICAgICAsIEpTQ2VsbF9mcmVlTGlzdE5l
eHQoSlNDZWxsX3N0cnVjdHVyZSkKICAgICAKLSNkZWZpbmUgSU5ERVhFRF9BQlNUUkFDVF9IRUFQ
X0lOSVRJQUxJWkFUSU9OKG5hbWUsIHNpemUpICwgbmFtZShjb250ZXh0LCAmcm9vdCwgI25hbWUs
IHNpemUpCisjZGVmaW5lIElOREVYRURfQUJTVFJBQ1RfSEVBUF9JTklUSUFMSVpBVElPTihuYW1l
LCBvZmZzZXQsIHNpemUpICwgbmFtZShjb250ZXh0LCAmcm9vdCwgI25hbWUsIG9mZnNldCwgc2l6
ZSkKICAgICBGT1JfRUFDSF9JTkRFWEVEX0FCU1RSQUNUX0hFQVAoSU5ERVhFRF9BQlNUUkFDVF9I
RUFQX0lOSVRJQUxJWkFUSU9OKQogI3VuZGVmIElOREVYRURfQUJTVFJBQ1RfSEVBUF9JTklUSUFM
SVpBVElPTgogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExB
YnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFi
c3RyYWN0SGVhcFJlcG9zaXRvcnkuaAppbmRleCBmODExYzhiZTVkMWE3NTY0MjkyMzAzNjQwNTcx
ZjEyNTk1YWE0MDc2Li5kZDk0NjZkOTJmZjIzYTA4YTU4YzFlMmIzNGNhYWUxMjQxZDM4YjQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9z
aXRvcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJl
cG9zaXRvcnkuaApAQCAtNDgsMTEgKzQ4LDE1IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
RlRMIHsKICAgICBtYWNybyhKU0FycmF5QnVmZmVyVmlld19tb2RlLCBKU0FycmF5QnVmZmVyVmll
dzo6b2Zmc2V0T2ZNb2RlKCkpIFwKICAgICBtYWNybyhKU0FycmF5QnVmZmVyVmlld192ZWN0b3Is
IEpTQXJyYXlCdWZmZXJWaWV3OjpvZmZzZXRPZlZlY3RvcigpKSBcCiAgICAgbWFjcm8oSlNDZWxs
X3N0cnVjdHVyZSwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSkgXAorICAgIG1hY3JvKEpTRnVu
Y3Rpb25fZXhlY3V0YWJsZSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpIFwKKyAg
ICBtYWNybyhKU0Z1bmN0aW9uX3Njb3BlLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZlNjb3BlQ2hhaW4o
KSkgXAogICAgIG1hY3JvKEpTT2JqZWN0X2J1dHRlcmZseSwgSlNPYmplY3Q6OmJ1dHRlcmZseU9m
ZnNldCgpKSBcCiAgICAgbWFjcm8oSlNTY29wZV9uZXh0LCBKU1Njb3BlOjpvZmZzZXRPZk5leHQo
KSkgXAorICAgIG1hY3JvKEpTU3RyaW5nX2ZsYWdzLCBKU1N0cmluZzo6b2Zmc2V0T2ZGbGFncygp
KSBcCiAgICAgbWFjcm8oSlNTdHJpbmdfbGVuZ3RoLCBKU1N0cmluZzo6b2Zmc2V0T2ZMZW5ndGgo
KSkgXAogICAgIG1hY3JvKEpTU3RyaW5nX3ZhbHVlLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgp
KSBcCiAgICAgbWFjcm8oSlNWYXJpYWJsZU9iamVjdF9yZWdpc3RlcnMsIEpTVmFyaWFibGVPYmpl
Y3Q6Om9mZnNldE9mUmVnaXN0ZXJzKCkpIFwKKyAgICBtYWNybyhKU1dyYXBwZXJPYmplY3RfaW50
ZXJuYWxWYWx1ZSwgSlNXcmFwcGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlT2Zmc2V0KCkpIFwKICAg
ICBtYWNybyhNYXJrZWRBbGxvY2F0b3JfZnJlZUxpc3RIZWFkLCBNYXJrZWRBbGxvY2F0b3I6Om9m
ZnNldE9mRnJlZUxpc3RIZWFkKCkpIFwKICAgICBtYWNybyhNYXJrZWRCbG9ja19tYXJrQml0cywg
TWFya2VkQmxvY2s6Om9mZnNldE9mTWFya3MoKSkgXAogICAgIG1hY3JvKFN0cmluZ0ltcGxfZGF0
YSwgU3RyaW5nSW1wbDo6ZGF0YU9mZnNldCgpKSBcCkBAIC02NCwxNCArNjgsMTUgQEAgbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKFN0cnVjdHVyZV90eXBlSW5mb1R5
cGUsIFN0cnVjdHVyZTo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpCiAKICNkZWZpbmUgRk9SX0VBQ0hf
SU5ERVhFRF9BQlNUUkFDVF9IRUFQKG1hY3JvKSBcCi0gICAgbWFjcm8oY2hhcmFjdGVyczgsIHNp
emVvZihMQ2hhcikpIFwKLSAgICBtYWNybyhjaGFyYWN0ZXJzMTYsIHNpemVvZihVQ2hhcikpIFwK
LSAgICBtYWNybyhpbmRleGVkSW50MzJQcm9wZXJ0aWVzLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUp
KSBcCi0gICAgbWFjcm8oaW5kZXhlZERvdWJsZVByb3BlcnRpZXMsIHNpemVvZihkb3VibGUpKSBc
Ci0gICAgbWFjcm8oaW5kZXhlZENvbnRpZ3VvdXNQcm9wZXJ0aWVzLCBzaXplb2YoRW5jb2RlZEpT
VmFsdWUpKSBcCi0gICAgbWFjcm8oaW5kZXhlZEFycmF5U3RvcmFnZVByb3BlcnRpZXMsIHNpemVv
ZihFbmNvZGVkSlNWYWx1ZSkpIFwKLSAgICBtYWNybyhzaW5nbGVDaGFyYWN0ZXJTdHJpbmdzLCBz
aXplb2YoSlNTdHJpbmcqKSkgXAotICAgIG1hY3JvKHZhcmlhYmxlcywgc2l6ZW9mKFJlZ2lzdGVy
KSkKKyAgICBtYWNybyhKU1JvcGVTdHJpbmdfZmliZXJzLCBKU1JvcGVTdHJpbmc6Om9mZnNldE9m
RmliZXJzKCksIHNpemVvZihXcml0ZUJhcnJpZXI8SlNTdHJpbmc+KSkgXAorICAgIG1hY3JvKGNo
YXJhY3RlcnM4LCAwLCBzaXplb2YoTENoYXIpKSBcCisgICAgbWFjcm8oY2hhcmFjdGVyczE2LCAw
LCBzaXplb2YoVUNoYXIpKSBcCisgICAgbWFjcm8oaW5kZXhlZEludDMyUHJvcGVydGllcywgMCwg
c2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXAorICAgIG1hY3JvKGluZGV4ZWREb3VibGVQcm9wZXJ0
aWVzLCAwLCBzaXplb2YoZG91YmxlKSkgXAorICAgIG1hY3JvKGluZGV4ZWRDb250aWd1b3VzUHJv
cGVydGllcywgMCwgc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXAorICAgIG1hY3JvKGluZGV4ZWRB
cnJheVN0b3JhZ2VQcm9wZXJ0aWVzLCAwLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSBcCisgICAg
bWFjcm8oc2luZ2xlQ2hhcmFjdGVyU3RyaW5ncywgMCwgc2l6ZW9mKEpTU3RyaW5nKikpIFwKKyAg
ICBtYWNybyh2YXJpYWJsZXMsIDAsIHNpemVvZihSZWdpc3RlcikpCiAgICAgCiAjZGVmaW5lIEZP
Ul9FQUNIX05VTUJFUkVEX0FCU1RSQUNUX0hFQVAobWFjcm8pIFwKICAgICBtYWNybyhwcm9wZXJ0
aWVzKQpAQCAtOTcsNyArMTAyLDcgQEAgcHVibGljOgogICAgIAogICAgIEFic3RyYWN0RmllbGQm
IEpTQ2VsbF9mcmVlTGlzdE5leHQ7CiAgICAgCi0jZGVmaW5lIElOREVYRURfQUJTVFJBQ1RfSEVB
UF9ERUNMQVJBVElPTihuYW1lLCBzaXplKSBJbmRleGVkQWJzdHJhY3RIZWFwIG5hbWU7CisjZGVm
aW5lIElOREVYRURfQUJTVFJBQ1RfSEVBUF9ERUNMQVJBVElPTihuYW1lLCBvZmZzZXQsIHNpemUp
IEluZGV4ZWRBYnN0cmFjdEhlYXAgbmFtZTsKICAgICBGT1JfRUFDSF9JTkRFWEVEX0FCU1RSQUNU
X0hFQVAoSU5ERVhFRF9BQlNUUkFDVF9IRUFQX0RFQ0xBUkFUSU9OKQogI3VuZGVmIElOREVYRURf
QUJTVFJBQ1RfSEVBUF9ERUNMQVJBVElPTgogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzAwZmE0ZDkw
OTViODMxNWJhMjdjMWNjOTEzNTdhYzIyMDU5NTU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHAKQEAgLTAsMCArMSw0
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCIKKworI2lm
IEVOQUJMRShGVExfSklUKQorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK3Zv
aWQgQXZhaWxhYmxlUmVjb3Zlcnk6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAg
ICBvdXQucHJpbnQobm9kZSgpLCAiID0+ICIsIG9wY29kZSgpLCAiLCAiLCBSYXdQb2ludGVyKG1f
bGVmdCksICIsICIsIFJhd1BvaW50ZXIobV9yaWdodCksICIsICIsIG1fZm9ybWF0KTsKK30KKwor
fSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQXZhaWxhYmxlUmVjb3Zl
cnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mY2FmNGEyMmQyODA5YTZmYmQzNTBjZWRmMTg4MjM5MzkyMDcwMWU4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBdmFpbGFibGVSZWNv
dmVyeS5oCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBGVExBdmFpbGFibGVSZWNvdmVyeV9oCisjZGVmaW5lIEZU
TEF2YWlsYWJsZVJlY292ZXJ5X2gKKworI2lmIEVOQUJMRShGVExfSklUKQorCisjaW5jbHVkZSAi
REZHTm9kZS5oIgorI2luY2x1ZGUgIkZUTEFiYnJldmlhdGVkVHlwZXMuaCIKKyNpbmNsdWRlICJG
VExSZWNvdmVyeU9wY29kZS5oIgorI2luY2x1ZGUgIkZUTFZhbHVlRm9ybWF0LmgiCisKK25hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKworY2xhc3MgQXZhaWxhYmxlUmVjb3Zlcnkgewor
cHVibGljOgorICAgIEF2YWlsYWJsZVJlY292ZXJ5KCkKKyAgICAgICAgOiBtX25vZGUoMCkKKyAg
ICAgICAgLCBtX2Zvcm1hdChJbnZhbGlkVmFsdWVGb3JtYXQpCisgICAgICAgICwgbV9vcGNvZGUo
QWRkUmVjb3ZlcnkpCisgICAgICAgICwgbV9sZWZ0KDApCisgICAgICAgICwgbV9yaWdodCgwKQor
ICAgIHsKKyAgICB9CisgICAgCisgICAgQXZhaWxhYmxlUmVjb3ZlcnkoREZHOjpOb2RlKiBub2Rl
LCBSZWNvdmVyeU9wY29kZSBvcGNvZGUsIExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQsIFZhbHVl
Rm9ybWF0IGZvcm1hdCkKKyAgICAgICAgOiBtX25vZGUobm9kZSkKKyAgICAgICAgLCBtX2Zvcm1h
dChmb3JtYXQpCisgICAgICAgICwgbV9vcGNvZGUob3Bjb2RlKQorICAgICAgICAsIG1fbGVmdChs
ZWZ0KQorICAgICAgICAsIG1fcmlnaHQocmlnaHQpCisgICAgeworICAgIH0KKyAgICAKKyAgICBE
Rkc6Ok5vZGUqIG5vZGUoKSBjb25zdCB7IHJldHVybiBtX25vZGU7IH0KKyAgICBWYWx1ZUZvcm1h
dCBmb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX2Zvcm1hdDsgfQorICAgIFJlY292ZXJ5T3Bjb2Rl
IG9wY29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3Bjb2RlOyB9CisgICAgTFZhbHVlIGxlZnQoKSBj
b25zdCB7IHJldHVybiBtX2xlZnQ7IH0KKyAgICBMVmFsdWUgcmlnaHQoKSBjb25zdCB7IHJldHVy
biBtX3JpZ2h0OyB9CisgICAgCisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7Cisg
ICAgCitwcml2YXRlOgorICAgIERGRzo6Tm9kZSogbV9ub2RlOworICAgIFZhbHVlRm9ybWF0IG1f
Zm9ybWF0OworICAgIFJlY292ZXJ5T3Bjb2RlIG1fb3Bjb2RlOworICAgIExWYWx1ZSBtX2xlZnQ7
CisgICAgTFZhbHVlIG1fcmlnaHQ7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisK
KyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKworI2VuZGlmIC8vIEZUTEF2YWlsYWJsZVJlY292
ZXJ5X2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmls
aXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3Bw
CmluZGV4IDg2YTI4Y2Y4YWVmNDBkMmY3YWRiNTM1ZjQ3MjRkMmYzMzBiZjhhMDYuLmQxNmIxN2Jk
NjYxMjc5ZDBjYWQzMDAyMjMzZTllMzAxMTAwOTNlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKQEAgLTMyLDYgKzMyLDExIEBAIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKIAogdXNpbmcgbmFtZXNwYWNlIERGRzsKIAorc3RhdGlj
IGJvb2wgdmVyYm9zZUNhcGFiaWxpdGllcygpCit7CisgICAgcmV0dXJuIHZlcmJvc2VDb21waWxh
dGlvbkVuYWJsZWQoKSB8fCBPcHRpb25zOjp2ZXJib3NlRlRMRmFpbHVyZSgpOworfQorCiBpbmxp
bmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKIHsKICAgICAvLyBOT1RF
OiBJZiB3ZSBldmVyIGhhdmUgcGhhbnRvbSBhcmd1bWVudHMsIHdlIGNhbiBjb21waWxlIHRoZW0g
YnV0IHdlIGNhbm5vdApAQCAtNzcsNiArODIsOSBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNh
bkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIEFyaXRoTWluOgogICAgIGNhc2UgQXJpdGhN
YXg6CiAgICAgY2FzZSBBcml0aEFiczoKKyAgICBjYXNlIEFyaXRoU2luOgorICAgIGNhc2UgQXJp
dGhDb3M6CisgICAgY2FzZSBBcml0aFNxcnQ6CiAgICAgY2FzZSBBcml0aE5lZ2F0ZToKICAgICBj
YXNlIFVJbnQzMlRvTnVtYmVyOgogICAgIGNhc2UgSW50MzJUb0RvdWJsZToKQEAgLTg4LDggKzk2
LDYgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAg
Y2FzZSBVcHNpbG9uOgogICAgIGNhc2UgRXh0cmFjdE9TUkVudHJ5TG9jYWw6CiAgICAgY2FzZSBM
b29wSGludDoKLSAgICBjYXNlIENhbGw6Ci0gICAgY2FzZSBDb25zdHJ1Y3Q6CiAgICAgY2FzZSBH
ZXRNeVNjb3BlOgogICAgIGNhc2UgU2tpcFNjb3BlOgogICAgIGNhc2UgR2V0Q2xvc3VyZVJlZ2lz
dGVyczoKQEAgLTEwOCwxNSArMTE0LDI3IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29t
cGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgU3RvcmVCYXJyaWVyOgogICAgIGNhc2UgQ29uZGl0
aW9uYWxTdG9yZUJhcnJpZXI6CiAgICAgY2FzZSBTdG9yZUJhcnJpZXJXaXRoTnVsbENoZWNrOgor
ICAgIGNhc2UgQ2FsbDoKKyAgICBjYXNlIENvbnN0cnVjdDoKICAgICBjYXNlIFZhbHVlVG9JbnQz
MjoKICAgICBjYXNlIEJyYW5jaDoKICAgICBjYXNlIExvZ2ljYWxOb3Q6CiAgICAgY2FzZSBDaGVj
a0luQm91bmRzOgogICAgIGNhc2UgQ29uc3RhbnRTdG9yYWdlUG9pbnRlcjoKICAgICBjYXNlIENo
ZWNrOgorICAgIGNhc2UgQ291bnRFeGVjdXRpb246CisgICAgY2FzZSBDaGVja0V4ZWN1dGFibGU6
CisgICAgY2FzZSBHZXRTY29wZToKKyAgICBjYXNlIEFsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2lu
dDoKKyAgICBjYXNlIENoZWNrQXJndW1lbnRzTm90Q3JlYXRlZDoKKyAgICBjYXNlIEdldENhbGxl
ZToKKyAgICBjYXNlIFRvU3RyaW5nOgorICAgIGNhc2UgTWFrZVJvcGU6CisgICAgY2FzZSBOZXdB
cnJheVdpdGhTaXplOgogICAgICAgICAvLyBUaGVzZSBhcmUgT0suCiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgR2V0QnlJZDoKKyAgICBjYXNlIFB1dEJ5SWREaXJlY3Q6CiAgICAgY2FzZSBQdXRC
eUlkOgogICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IENlbGxVc2UpCiAg
ICAgICAgICAgICBicmVhazsKQEAgLTIzNyw4ICsyNTUsMTcgQEAgaW5saW5lIENhcGFiaWxpdHlM
ZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShH
cmFwaCYgZ3JhcGgpCiB7CiAgICAgaWYgKGdyYXBoLm1fY29kZUJsb2NrLT5jb2RlVHlwZSgpICE9
IEZ1bmN0aW9uQ29kZSkgewotICAgICAgICBpZiAodmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgp
KQotICAgICAgICAgICAgZGF0YUxvZygiRlRMIHJlamVjdGluZyBjb2RlIGJsb2NrIHRoYXQgZG9l
c24ndCBiZWxvbmcgdG8gYSBmdW5jdGlvbi5cbiIpOworICAgICAgICBpZiAodmVyYm9zZUNhcGFi
aWxpdGllcygpKQorICAgICAgICAgICAgZGF0YUxvZygiRlRMIHJlamVjdGluZyAiLCAqZ3JhcGgu
bV9jb2RlQmxvY2ssICIgYmVjYXVzZSBpdCBkb2Vzbid0IGJlbG9uZyB0byBhIGZ1bmN0aW9uLlxu
Iik7CisgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOworICAgIH0KKyAgICAKKyAgICBpZiAo
Z3JhcGgubV9jb2RlQmxvY2stPm5lZWRzQWN0aXZhdGlvbigpKSB7CisgICAgICAgIC8vIE5lZWQg
dGhpcyBiZWNhdXNlIGFsdGhvdWdoIHdlIGFsc28gZG9uJ3Qgc3VwcG9ydAorICAgICAgICAvLyBD
cmVhdGVBY3RpdmF0aW9uL1RlYXJPZmZBY3RpdmF0aW9uLCB3ZSBtaWdodCBub3Qgc2VlIHRob3Nl
IG5vZGVzIGluIGNhc2Ugb2YKKyAgICAgICAgLy8gT1NSIGVudHJ5LgorICAgICAgICBpZiAodmVy
Ym9zZUNhcGFiaWxpdGllcygpKQorICAgICAgICAgICAgZGF0YUxvZygiRlRMIHJlamVjdGluZyAi
LCAqZ3JhcGgubV9jb2RlQmxvY2ssICIgYmVjYXVzZSBpdCB1c2VzIGFjdGl2YXRpb25zLlxuIik7
CiAgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOwogICAgIH0KICAgICAKQEAgLTI3NCwxMyAr
MzAxLDE2IEBAIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKEdyYXBoJiBncmFwaCkKICAgICAg
ICAgICAgICAgICBjYXNlIE9iamVjdFVzZToKICAgICAgICAgICAgICAgICBjYXNlIE9iamVjdE9y
T3RoZXJVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBTdHJpbmdVc2U6CisgICAgICAgICAgICAg
ICAgY2FzZSBLbm93blN0cmluZ1VzZToKKyAgICAgICAgICAgICAgICBjYXNlIFN0cmluZ09iamVj
dFVzZToKKyAgICAgICAgICAgICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAg
ICAgICAgICAgICAgIGNhc2UgRmluYWxPYmplY3RVc2U6CiAgICAgICAgICAgICAgICAgICAgIC8v
IFRoZXNlIGFyZSBPSy4KICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgLy8gRG9uJ3Qga25vdyBob3cgdG8gaGFu
ZGxlIGFueXRoaW5nIGVsc2UuCi0gICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlQ29tcGls
YXRpb25FbmFibGVkKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkZUTCBy
ZWplY3Rpbmcgbm9kZSBiZWNhdXNlIG9mIGJhZCB1c2Uga2luZDogIiwgZWRnZS51c2VLaW5kKCks
ICIgaW4gbm9kZTpcbiIpOworICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZUNhcGFiaWxp
dGllcygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJGVEwgcmVqZWN0aW5n
IG5vZGUgaW4gIiwgKmdyYXBoLm1fY29kZUJsb2NrLCAiIGJlY2F1c2Ugb2YgYmFkIHVzZSBraW5k
OiAiLCBlZGdlLnVzZUtpbmQoKSwgIiBpbiBub2RlOlxuIik7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBncmFwaC5kdW1wKFdURjo6ZGF0YUZpbGUoKSwgIiAgICAiLCBub2RlKTsKICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsK
QEAgLTI4OSw4ICszMTksOCBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShHcmFwaCYgZ3Jh
cGgpCiAgICAgICAgICAgICAKICAgICAgICAgICAgIHN3aXRjaCAoY2FuQ29tcGlsZShub2RlKSkg
ewogICAgICAgICAgICAgY2FzZSBDYW5ub3RDb21waWxlOiAKLSAgICAgICAgICAgICAgICBpZiAo
dmVyYm9zZUNvbXBpbGF0aW9uRW5hYmxlZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRhdGFM
b2coIkZUTCByZWplY3Rpbmcgbm9kZTpcbiIpOworICAgICAgICAgICAgICAgIGlmICh2ZXJib3Nl
Q2FwYWJpbGl0aWVzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiRlRMIHJlamVj
dGluZyBub2RlIGluICIsICpncmFwaC5tX2NvZGVCbG9jaywgIjpcbiIpOwogICAgICAgICAgICAg
ICAgICAgICBncmFwaC5kdW1wKFdURjo6ZGF0YUZpbGUoKSwgIiAgICAiLCBub2RlKTsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5jcHAKaW5kZXggNjUzYmI3
ZGRkY2UyNDgyNzFlOGU2YzYxMDRmYTE5ZjdkYmFjNjFhYS4uY2NhOTBkM2E2M2E2Mjg3Zjc0OTUz
MGMzM2ExMDJlZDY4ZTdkYTE3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDb21tb25WYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
Q29tbW9uVmFsdWVzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEz
LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNjEsNiArNjEsOCBAQCBDb21tb25WYWx1ZXM6OkNvbW1vblZhbHVl
cyhMQ29udGV4dCBjb250ZXh0KQogICAgICwgaW50UHRyRWlnaHQoY29uc3RJbnQoaW50UHRyLCA4
LCBTaWduRXh0ZW5kKSkKICAgICAsIGludFB0clB0cihjb25zdEludChpbnRQdHIsIHNpemVvZih2
b2lkKiksIFNpZ25FeHRlbmQpKQogICAgICwgZG91YmxlWmVybyhjb25zdFJlYWwoZG91YmxlVHlw
ZSwgMCkpCisgICAgLCByYW5nZUtpbmQobWRLaW5kSUQoY29udGV4dCwgInJhbmdlIikpCisgICAg
LCBub25OZWdhdGl2ZUludDMyKGNvbnN0SW50KGludDMyLCAwLCBTaWduRXh0ZW5kKSwgY29uc3RJ
bnQoaW50MzIsIDFsbCA8PCAzMSwgU2lnbkV4dGVuZCkpCiAgICAgLCBtX2NvbnRleHQoY29udGV4
dCkKICAgICAsIG1fbW9kdWxlKDApCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENvbW1vblZhbHVlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExD
b21tb25WYWx1ZXMuaAppbmRleCA4NDgwOTAyMTBjZGQ3MDRiZjA1NjAzYTU4MWUyZmIxZGM4MWEy
MDUxLi45ZjMzMWNmYmQwN2U1MTVkNmEzODkzMjM2NjI4NDFlYjMyNmQwMTM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbW1vblZhbHVlcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tbW9uVmFsdWVzLmgKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDYgKzMxLDcgQEAKICNp
ZiBFTkFCTEUoRlRMX0pJVCkKIAogI2luY2x1ZGUgIkZUTEFiYnJldmlhdGlvbnMuaCIKKyNpbmNs
dWRlICJGVExWYWx1ZVJhbmdlLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsK
IApAQCAtNzQsNiArNzUsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IExWYWx1ZSBpbnRQdHJQdHI7
CiAgICAgY29uc3QgTFZhbHVlIGRvdWJsZVplcm87CiAgICAgCisgICAgY29uc3QgdW5zaWduZWQg
cmFuZ2VLaW5kOworICAgIAorICAgIGNvbnN0IFZhbHVlUmFuZ2Ugbm9uTmVnYXRpdmVJbnQzMjsK
KyAgICAKICAgICBMQ29udGV4dCBjb25zdCBtX2NvbnRleHQ7CiAgICAgTE1vZHVsZSBtX21vZHVs
ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAppbmRleCA2YzAx
ZjRmYTUyZjFmOWU5ZDg1NWIxODdjNzkxZWE0ZmM4ZTIxMDA4Li5lMjNjNzQ1NzUzZWEyM2UxNWQz
M2JmNzVlOGM2MGE3Y2EyYjg0ZThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTENvbXBpbGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29t
cGlsZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJGVExJbmxpbmVDYWNoZVNpemUuaCIK
ICNpbmNsdWRlICJGVExKSVRDb2RlLmgiCiAjaW5jbHVkZSAiRlRMVGh1bmtzLmgiCisjaW5jbHVk
ZSAiRlRMVW53aW5kSW5mby5oIgogI2luY2x1ZGUgIkpJVFN0dWJzLmgiCiAjaW5jbHVkZSAiTExW
TUFQSS5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKQEAgLTQ5LDcgKzUwLDYgQEAgdXNpbmcg
bmFtZXNwYWNlIERGRzsKIHN0YXRpYyB1aW50OF90KiBtbUFsbG9jYXRlQ29kZVNlY3Rpb24oCiAg
ICAgdm9pZCogb3BhcXVlU3RhdGUsIHVpbnRwdHJfdCBzaXplLCB1bnNpZ25lZCBhbGlnbm1lbnQs
IHVuc2lnbmVkLCBjb25zdCBjaGFyKiBzZWN0aW9uTmFtZSkKIHsKLSAgICAKICAgICBTdGF0ZSYg
c3RhdGUgPSAqc3RhdGljX2Nhc3Q8U3RhdGUqPihvcGFxdWVTdGF0ZSk7CiAgICAgCiAgICAgUkVM
RUFTRV9BU1NFUlQoYWxpZ25tZW50IDw9IGppdEFsbG9jYXRpb25HcmFudWxlKTsKQEAgLTU4LDYg
KzU4LDExIEBAIHN0YXRpYyB1aW50OF90KiBtbUFsbG9jYXRlQ29kZVNlY3Rpb24oCiAgICAgICAg
IHN0YXRlLmdyYXBoLm1fdm0uZXhlY3V0YWJsZUFsbG9jYXRvci5hbGxvY2F0ZSgKICAgICAgICAg
ICAgIHN0YXRlLmdyYXBoLm1fdm0sIHNpemUsIHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRD
b21waWxhdGlvbk11c3RTdWNjZWVkKTsKICAgICAKKyAgICBpZiAoIXN0cmNtcChzZWN0aW9uTmFt
ZSwgIl9fY29tcGFjdF91bndpbmQiKSkgeworICAgICAgICBzdGF0ZS5jb21wYWN0VW53aW5kID0g
cmVzdWx0LT5zdGFydCgpOworICAgICAgICBzdGF0ZS5jb21wYWN0VW53aW5kU2l6ZSA9IHJlc3Vs
dC0+c2l6ZUluQnl0ZXMoKTsKKyAgICB9CisgICAgCiAgICAgc3RhdGUuaml0Q29kZS0+YWRkSGFu
ZGxlKHJlc3VsdCk7CiAgICAgc3RhdGUuY29kZVNlY3Rpb25OYW1lcy5hcHBlbmQoc2VjdGlvbk5h
bWUpOwogICAgIApAQCAtMTQ5LDggKzE1NCw2MyBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJh
c2VkT25TdGFja01hcHMoCiAgICAgU3RhdGUmIHN0YXRlLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywg
SklUQ29kZSogaml0Q29kZSwgR2VuZXJhdGVkRnVuY3Rpb24gZ2VuZXJhdGVkRnVuY3Rpb24sCiAg
ICAgU3RhY2tNYXBzOjpSZWNvcmRNYXAmIHJlY29yZE1hcCkKIHsKLSAgICBWTSYgdm0gPSBzdGF0
ZS5ncmFwaC5tX3ZtOworICAgIEdyYXBoJiBncmFwaCA9IHN0YXRlLmdyYXBoOworICAgIFZNJiB2
bSA9IGdyYXBoLm1fdm07CiAgICAgU3RhY2tNYXBzIHN0YWNrbWFwcyA9IGppdENvZGUtPnN0YWNr
bWFwczsKKyAgICAKKyAgICBTdGFja01hcHM6OlJlY29yZE1hcDo6aXRlcmF0b3IgaXRlciA9IHJl
Y29yZE1hcC5maW5kKHN0YXRlLmNhcHR1cmVkU3RhY2ttYXBJRCk7CisgICAgUkVMRUFTRV9BU1NF
UlQoaXRlciAhPSByZWNvcmRNYXAuZW5kKCkpOworICAgIFJFTEVBU0VfQVNTRVJUKGl0ZXItPnZh
bHVlLmxvY2F0aW9ucy5zaXplKCkgPT0gMSk7CisgICAgTG9jYXRpb24gY2FwdHVyZWRMb2NhdGlv
biA9CisgICAgICAgIExvY2F0aW9uOjpmb3JTdGFja21hcHMoJmppdENvZGUtPnN0YWNrbWFwcywg
aXRlci0+dmFsdWUubG9jYXRpb25zWzBdKTsKKyAgICBSRUxFQVNFX0FTU0VSVChjYXB0dXJlZExv
Y2F0aW9uLmtpbmQoKSA9PSBMb2NhdGlvbjo6UmVnaXN0ZXIpOworICAgIFJFTEVBU0VfQVNTRVJU
KGNhcHR1cmVkTG9jYXRpb24uZ3ByKCkgPT0gR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwor
ICAgIFJFTEVBU0VfQVNTRVJUKCEoY2FwdHVyZWRMb2NhdGlvbi5hZGRlbmQoKSAlIHNpemVvZihS
ZWdpc3RlcikpKTsKKyAgICBpbnQzMl90IGxvY2Fsc09mZnNldCA9IGNhcHR1cmVkTG9jYXRpb24u
YWRkZW5kKCkgLyBzaXplb2YoUmVnaXN0ZXIpICsgZ3JhcGgubV9uZXh0TWFjaGluZUxvY2FsOwor
ICAgIAorICAgIGZvciAodW5zaWduZWQgaSA9IGdyYXBoLm1faW5saW5lVmFyaWFibGVEYXRhLnNp
emUoKTsgaS0tOykgeworICAgICAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA9
IGdyYXBoLm1faW5saW5lVmFyaWFibGVEYXRhW2ldLmlubGluZUNhbGxGcmFtZTsKKyAgICAgICAg
CisgICAgICAgIGlmIChpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50c1JlZ2lzdGVyLmlzVmFsaWQo
KSkgeworICAgICAgICAgICAgaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNSZWdpc3RlciA9IFZp
cnR1YWxSZWdpc3RlcigKKyAgICAgICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50
c1JlZ2lzdGVyLm9mZnNldCgpICsgbG9jYWxzT2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgZm9yICh1bnNpZ25lZCBhcmd1bWVudCA9IGlubGluZUNhbGxGcmFtZS0+YXJndW1l
bnRzLnNpemUoKTsgYXJndW1lbnQtLSA+IDE7KSB7CisgICAgICAgICAgICBpbmxpbmVDYWxsRnJh
bWUtPmFyZ3VtZW50c1thcmd1bWVudF0gPQorICAgICAgICAgICAgICAgIGlubGluZUNhbGxGcmFt
ZS0+YXJndW1lbnRzW2FyZ3VtZW50XS53aXRoTG9jYWxzT2Zmc2V0KGxvY2Fsc09mZnNldCk7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3Vy
ZUNhbGwpIHsKKyAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlUmVjb3ZlcnkgPQor
ICAgICAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlUmVjb3Zlcnkud2l0aExvY2Fs
c09mZnNldChsb2NhbHNPZmZzZXQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGlmIChj
b2RlQmxvY2stPnVzZXNBcmd1bWVudHMoKSkgeworICAgICAgICBjb2RlQmxvY2stPnNldEFyZ3Vt
ZW50c1JlZ2lzdGVyKAorICAgICAgICAgICAgVmlydHVhbFJlZ2lzdGVyKGNvZGVCbG9jay0+YXJn
dW1lbnRzUmVnaXN0ZXIoKS5vZmZzZXQoKSArIGxvY2Fsc09mZnNldCkpOworICAgIH0KKworICAg
IHsKKyAgICAgICAgQ0NhbGxIZWxwZXJzIGNoZWNrSklUKCZ2bSwgY29kZUJsb2NrKTsKKyAgICAg
ICAgCisgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgaXQncyBwZXJmZWN0bHkgZmFpciB0byBqdXN0
IGJsb3cgYXdheSBhbGwgc3RhdGUgYW5kIHJlc3RvcmUgdGhlCisgICAgICAgIC8vIEpTIEpJVCB2
aWV3IG9mIHRoZSB1bml2ZXJzZS4KKyAgICAgICAgY2hlY2tKSVQubW92ZShNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbTY0KFRhZ1R5cGVOdW1iZXIpLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVn
aXN0ZXIpOworICAgICAgICBjaGVja0pJVC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
NjQoVGFnTWFzayksIEdQUkluZm86OnRhZ01hc2tSZWdpc3Rlcik7CisgICAgICAgIAorICAgICAg
ICBjaGVja0pJVC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZ2bSksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CisgICAgICAgIGNoZWNrSklULm1vdmUoR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGwgPSBjaGVja0pJVC5jYWxsKCk7CisgICAgICAgIGNoZWNrSklULmp1bXBU
b0V4Y2VwdGlvbkhhbmRsZXIoKTsKKyAgICAgICAgCisgICAgICAgIE93blB0cjxMaW5rQnVmZmVy
PiBsaW5rQnVmZmVyID0gYWRvcHRQdHIobmV3IExpbmtCdWZmZXIoCisgICAgICAgICAgICB2bSwg
JmNoZWNrSklULCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpKTsKKyAgICAg
ICAgbGlua0J1ZmZlci0+bGluayhjYWxsLCBGdW5jdGlvblB0cihsb29rdXBFeGNlcHRpb25IYW5k
bGVyKSk7CisgICAgICAgIAorICAgICAgICBzdGF0ZS5maW5hbGl6ZXItPmhhbmRsZUV4Y2VwdGlv
bnNMaW5rQnVmZmVyID0gbGlua0J1ZmZlci5yZWxlYXNlKCk7CisgICAgfQogCiAgICAgRXhpdFRo
dW5rR2VuZXJhdG9yIGV4aXRUaHVua0dlbmVyYXRvcihzdGF0ZSk7CiAgICAgZXhpdFRodW5rR2Vu
ZXJhdG9yLmVtaXRUaHVua3MoKTsKQEAgLTE2NiwxNiArMjI2LDMwIEBAIHN0YXRpYyB2b2lkIGZp
eEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYg
KE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvbigpKQogICAgICAgICAgICAgICAgIGRhdGFMb2co
IkhhbmRsaW5nIE9TUiBzdGFja21hcCAjIiwgZXhpdC5tX3N0YWNrbWFwSUQsICIgZm9yICIsIGV4
aXQubV9jb2RlT3JpZ2luLCAiXG4iKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgU3RhY2tN
YXBzOjpSZWNvcmRNYXA6Oml0ZXJhdG9yIGl0ZXIgPSByZWNvcmRNYXAuZmluZChleGl0Lm1fc3Rh
Y2ttYXBJRCk7CisKKyAgICAgICAgICAgIGl0ZXIgPSByZWNvcmRNYXAuZmluZChleGl0Lm1fc3Rh
Y2ttYXBJRCk7CiAgICAgICAgICAgICBpZiAoaXRlciA9PSByZWNvcmRNYXAuZW5kKCkpIHsKICAg
ICAgICAgICAgICAgICAvLyBJdCB3YXMgb3B0aW1pemVkIG91dC4KICAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgaW5mby5t
X3RodW5rQWRkcmVzcyA9IGxpbmtCdWZmZXItPmxvY2F0aW9uT2YoaW5mby5tX3RodW5rTGFiZWwp
OwotICAgICAgICAgICAgCiAgICAgICAgICAgICBleGl0Lm1fcGF0Y2hhYmxlQ29kZU9mZnNldCA9
IGxpbmtCdWZmZXItPm9mZnNldE9mKGluZm8ubV90aHVua0p1bXApOworICAgICAgICAgICAgCisg
ICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSBleGl0Lm1fdmFsdWVzLnNpemUoKTsgai0tOykg
eworICAgICAgICAgICAgICAgIEV4aXRWYWx1ZSB2YWx1ZSA9IGV4aXQubV92YWx1ZXNbal07Cisg
ICAgICAgICAgICAgICAgaWYgKCF2YWx1ZS5pc0luSlNTdGFja1NvbWVob3coKSkKKyAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZS52aXJ0dWFs
UmVnaXN0ZXIoKS5pc0xvY2FsKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgICAgIGV4aXQubV92YWx1ZXNbal0gPSB2YWx1ZS53aXRoVmlydHVhbFJlZ2lzdGVy
KAorICAgICAgICAgICAgICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIodmFsdWUudmlydHVhbFJlZ2lz
dGVyKCkub2Zmc2V0KCkgKyBsb2NhbHNPZmZzZXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvbigpKSB7Cisg
ICAgICAgICAgICAgICAgRHVtcENvbnRleHQgY29udGV4dDsKKyAgICAgICAgICAgICAgICBkYXRh
TG9nKCIgICAgRXhpdCB2YWx1ZXM6ICIsIGluQ29udGV4dChleGl0Lm1fdmFsdWVzLCAmY29udGV4
dCksICJcbiIpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBz
dGF0ZS5maW5hbGl6ZXItPmV4aXRUaHVua3NMaW5rQnVmZmVyID0gbGlua0J1ZmZlci5yZWxlYXNl
KCk7CkBAIC0xODQsMTMgKzI1OCwxNSBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25T
dGFja01hcHMoCiAgICAgaWYgKCFzdGF0ZS5nZXRCeUlkcy5pc0VtcHR5KCkgfHwgIXN0YXRlLnB1
dEJ5SWRzLmlzRW1wdHkoKSkgewogICAgICAgICBDQ2FsbEhlbHBlcnMgc2xvd1BhdGhKSVQoJnZt
LCBjb2RlQmxvY2spOwogICAgICAgICAKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBl
eGNlcHRpb25UYXJnZXQ7CisgICAgICAgIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdGF0
ZS5nZXRCeUlkcy5zaXplKCk7IGktLTspIHsKICAgICAgICAgICAgIEdldEJ5SWREZXNjcmlwdG9y
JiBnZXRCeUlkID0gc3RhdGUuZ2V0QnlJZHNbaV07CiAgICAgICAgICAgICAKICAgICAgICAgICAg
IGlmIChPcHRpb25zOjp2ZXJib3NlQ29tcGlsYXRpb24oKSkKICAgICAgICAgICAgICAgICBkYXRh
TG9nKCJIYW5kbGluZyBHZXRCeUlkIHN0YWNrbWFwICMiLCBnZXRCeUlkLnN0YWNrbWFwSUQoKSwg
IlxuIik7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwOjpp
dGVyYXRvciBpdGVyID0gcmVjb3JkTWFwLmZpbmQoZ2V0QnlJZC5zdGFja21hcElEKCkpOworICAg
ICAgICAgICAgaXRlciA9IHJlY29yZE1hcC5maW5kKGdldEJ5SWQuc3RhY2ttYXBJRCgpKTsKICAg
ICAgICAgICAgIGlmIChpdGVyID09IHJlY29yZE1hcC5lbmQoKSkgewogICAgICAgICAgICAgICAg
IC8vIEl0IHdhcyBvcHRpbWl6ZWQgb3V0LgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAt
MjAyLDE4ICsyNzgsMTcgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBz
KAogICAgICAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0Ojph
bGxSZWdpc3RlcnMoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgR1BSUmVnIHJlc3VsdCA9
IHJlY29yZC5sb2NhdGlvbnNbMF0uZGlyZWN0R1BSKCk7Ci0gICAgICAgICAgICBHUFJSZWcgY2Fs
bEZyYW1lUmVnaXN0ZXIgPSByZWNvcmQubG9jYXRpb25zWzFdLmRpcmVjdEdQUigpOwotICAgICAg
ICAgICAgR1BSUmVnIGJhc2UgPSByZWNvcmQubG9jYXRpb25zWzJdLmRpcmVjdEdQUigpOworICAg
ICAgICAgICAgR1BSUmVnIGJhc2UgPSByZWNvcmQubG9jYXRpb25zWzFdLmRpcmVjdEdQUigpOwog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAg
ICAgICAgICAgICBjb2RlQmxvY2ssIGdldEJ5SWQuY29kZU9yaWdpbigpLCB1c2VkUmVnaXN0ZXJz
LCBjYWxsRnJhbWVSZWdpc3RlciwKLSAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhiYXNlKSwg
SlNWYWx1ZVJlZ3MocmVzdWx0KSwgZmFsc2UpOworICAgICAgICAgICAgICAgIGNvZGVCbG9jaywg
Z2V0QnlJZC5jb2RlT3JpZ2luKCksIHVzZWRSZWdpc3RlcnMsIEpTVmFsdWVSZWdzKGJhc2UpLAor
ICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHJlc3VsdCksIGZhbHNlKTsKICAgICAgICAgICAg
IAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGJlZ2luID0gc2xvd1BhdGhKSVQu
bGFiZWwoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbCA9IGNhbGxPcGVyYXRpb24oCi0gICAgICAgICAgICAgICAgc3RhdGUsIHVzZWRSZWdpc3Rl
cnMsIHNsb3dQYXRoSklULCBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemUsIHJlc3VsdCwKLSAgICAg
ICAgICAgICAgICBjYWxsRnJhbWVSZWdpc3RlciwgZ2VuLnN0dWJJbmZvKCksIGJhc2UsIGdldEJ5
SWQudWlkKCkpOworICAgICAgICAgICAgICAgIHN0YXRlLCB1c2VkUmVnaXN0ZXJzLCBzbG93UGF0
aEpJVCwgZ2V0QnlJZC5jb2RlT3JpZ2luKCksICZleGNlcHRpb25UYXJnZXQsCisgICAgICAgICAg
ICAgICAgb3BlcmF0aW9uR2V0QnlJZE9wdGltaXplLCByZXN1bHQsIGdlbi5zdHViSW5mbygpLCBi
YXNlLCBnZXRCeUlkLnVpZCgpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgZ2VuLnJlcG9y
dFNsb3dQYXRoQ2FsbChiZWdpbiwgY2FsbCk7CiAgICAgICAgICAgICAKQEAgLTIyNyw3ICszMDIs
NyBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgICAg
ICBpZiAoT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uKCkpCiAgICAgICAgICAgICAgICAgZGF0
YUxvZygiSGFuZGxpbmcgUHV0QnlJZCBzdGFja21hcCAjIiwgcHV0QnlJZC5zdGFja21hcElEKCks
ICJcbiIpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBTdGFja01hcHM6OlJlY29yZE1hcDo6
aXRlcmF0b3IgaXRlciA9IHJlY29yZE1hcC5maW5kKHB1dEJ5SWQuc3RhY2ttYXBJRCgpKTsKKyAg
ICAgICAgICAgIGl0ZXIgPSByZWNvcmRNYXAuZmluZChwdXRCeUlkLnN0YWNrbWFwSUQoKSk7CiAg
ICAgICAgICAgICBpZiAoaXRlciA9PSByZWNvcmRNYXAuZW5kKCkpIHsKICAgICAgICAgICAgICAg
ICAvLyBJdCB3YXMgb3B0aW1pemVkIG91dC4KICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAg
LTIzOCwyMCArMzEzLDE5IEBAIHN0YXRpYyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFw
cygKICAgICAgICAgICAgIC8vIEZJWE1FOiBMTFZNIHNob3VsZCB0ZWxsIHVzIHdoaWNoIHJlZ2lz
dGVycyBhcmUgbGl2ZS4KICAgICAgICAgICAgIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMgPSBS
ZWdpc3RlclNldDo6YWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIEdQ
UlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IHJlY29yZC5sb2NhdGlvbnNbMF0uZGlyZWN0R1BSKCk7
Ci0gICAgICAgICAgICBHUFJSZWcgYmFzZSA9IHJlY29yZC5sb2NhdGlvbnNbMV0uZGlyZWN0R1BS
KCk7Ci0gICAgICAgICAgICBHUFJSZWcgdmFsdWUgPSByZWNvcmQubG9jYXRpb25zWzJdLmRpcmVj
dEdQUigpOworICAgICAgICAgICAgR1BSUmVnIGJhc2UgPSByZWNvcmQubG9jYXRpb25zWzBdLmRp
cmVjdEdQUigpOworICAgICAgICAgICAgR1BSUmVnIHZhbHVlID0gcmVjb3JkLmxvY2F0aW9uc1sx
XS5kaXJlY3RHUFIoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgSklUUHV0QnlJZEdlbmVy
YXRvciBnZW4oCi0gICAgICAgICAgICAgICAgY29kZUJsb2NrLCBwdXRCeUlkLmNvZGVPcmlnaW4o
KSwgdXNlZFJlZ2lzdGVycywgY2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgSlNW
YWx1ZVJlZ3MoYmFzZSksIEpTVmFsdWVSZWdzKHZhbHVlKSwgTWFjcm9Bc3NlbWJsZXI6OnNjcmF0
Y2hSZWdpc3RlciwKLSAgICAgICAgICAgICAgICBmYWxzZSwgcHV0QnlJZC5lY21hTW9kZSgpLCBw
dXRCeUlkLnB1dEtpbmQoKSk7CisgICAgICAgICAgICAgICAgY29kZUJsb2NrLCBwdXRCeUlkLmNv
ZGVPcmlnaW4oKSwgdXNlZFJlZ2lzdGVycywgSlNWYWx1ZVJlZ3MoYmFzZSksCisgICAgICAgICAg
ICAgICAgSlNWYWx1ZVJlZ3ModmFsdWUpLCBNYWNyb0Fzc2VtYmxlcjo6c2NyYXRjaFJlZ2lzdGVy
LCBmYWxzZSwgcHV0QnlJZC5lY21hTW9kZSgpLAorICAgICAgICAgICAgICAgIHB1dEJ5SWQucHV0
S2luZCgpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVs
IGJlZ2luID0gc2xvd1BhdGhKSVQubGFiZWwoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24oCi0gICAgICAgICAgICAg
ICAgc3RhdGUsIHVzZWRSZWdpc3RlcnMsIHNsb3dQYXRoSklULCBnZW4uc2xvd1BhdGhGdW5jdGlv
bigpLCBjYWxsRnJhbWVSZWdpc3RlciwKLSAgICAgICAgICAgICAgICBnZW4uc3R1YkluZm8oKSwg
dmFsdWUsIGJhc2UsIHB1dEJ5SWQudWlkKCkpOworICAgICAgICAgICAgICAgIHN0YXRlLCB1c2Vk
UmVnaXN0ZXJzLCBzbG93UGF0aEpJVCwgcHV0QnlJZC5jb2RlT3JpZ2luKCksICZleGNlcHRpb25U
YXJnZXQsCisgICAgICAgICAgICAgICAgZ2VuLnNsb3dQYXRoRnVuY3Rpb24oKSwgZ2VuLnN0dWJJ
bmZvKCksIHZhbHVlLCBiYXNlLCBwdXRCeUlkLnVpZCgpKTsKICAgICAgICAgICAgIAogICAgICAg
ICAgICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChiZWdpbiwgY2FsbCk7CiAgICAgICAgICAgICAK
QEAgLTI1OSw4ICszMzMsMTMgQEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tN
YXBzKAogICAgICAgICAgICAgcHV0QnlJZC5tX2dlbmVyYXRvciA9IGdlbjsKICAgICAgICAgfQog
ICAgICAgICAKKyAgICAgICAgZXhjZXB0aW9uVGFyZ2V0LmxpbmsoJnNsb3dQYXRoSklUKTsKKyAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZXhjZXB0aW9uSnVtcCA9IHNsb3dQYXRoSklULmp1
bXAoKTsKKyAgICAgICAgCiAgICAgICAgIHN0YXRlLmZpbmFsaXplci0+c2lkZUNvZGVMaW5rQnVm
ZmVyID0gYWRvcHRQdHIoCiAgICAgICAgICAgICBuZXcgTGlua0J1ZmZlcih2bSwgJnNsb3dQYXRo
SklULCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpKTsKKyAgICAgICAgc3Rh
dGUuZmluYWxpemVyLT5zaWRlQ29kZUxpbmtCdWZmZXItPmxpbmsoCisgICAgICAgICAgICBleGNl
cHRpb25KdW1wLCBzdGF0ZS5maW5hbGl6ZXItPmhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyLT5l
bnRyeXBvaW50KCkpOwogICAgICAgICAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhdGUu
Z2V0QnlJZHMuc2l6ZSgpOyBpLS07KSB7CiAgICAgICAgICAgICBnZW5lcmF0ZUlDRmFzdFBhdGgo
CkBAIC0yNzQsMjggKzM1Myw4MSBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFj
a01hcHMoCiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNo
QnVmZmVyKGNvZGVCbG9jayk7Ci0gICAgCi0gICAgZm9yICh1bnNpZ25lZCBleGl0SW5kZXggPSBq
aXRDb2RlLT5vc3JFeGl0LnNpemUoKTsgZXhpdEluZGV4LS07KSB7Ci0gICAgICAgIE9TUkV4aXRD
b21waWxhdGlvbkluZm8mIGluZm8gPSBzdGF0ZS5maW5hbGl6ZXItPm9zckV4aXRbZXhpdEluZGV4
XTsKLSAgICAgICAgT1NSRXhpdCYgZXhpdCA9IGppdENvZGUtPm9zckV4aXRbZXhpdEluZGV4XTsK
LSAgICAgICAgU3RhY2tNYXBzOjpSZWNvcmRNYXA6Oml0ZXJhdG9yIGl0ZXIgPSByZWNvcmRNYXAu
ZmluZChleGl0Lm1fc3RhY2ttYXBJRCk7CisgICAgLy8gSGFuZGxpbmcgSlMgY2FsbHMgaXMgd2Vp
cmQ6IHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgd2Ugc29ydCB0aGVtIGJ5IHRoZSBQQyBpbiBMTFZN
CisgICAgLy8gZ2VuZXJhdGVkIGNvZGUuIFRoYXQgaW1wbGllcyBmaXJzdCBwcnVuaW5nIHRoZSBv
bmVzIHRoYXQgTExWTSBkaWRuJ3QgZ2VuZXJhdGUuCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHN0YXRlLmpzQ2FsbHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgSlNDYWxsJiBjYWxsID0g
c3RhdGUuanNDYWxsc1tpXTsKKyAgICAgICAgCisgICAgICAgIFN0YWNrTWFwczo6UmVjb3JkTWFw
OjppdGVyYXRvciBpdGVyID0gcmVjb3JkTWFwLmZpbmQoY2FsbC5zdGFja21hcElEKCkpOwogICAg
ICAgICBpZiAoaXRlciA9PSByZWNvcmRNYXAuZW5kKCkpIHsKLSAgICAgICAgICAgIC8vIFRoaXMg
Y291bGQgaGFwcGVuIGlmIExMVk0gb3B0aW1pemVzIG91dCBhbiBPU1IgZXhpdC4KKyAgICAgICAg
ICAgIC8vIEl0IHdhcyBvcHRpbWl6ZWQgb3V0LiBQcnVuZSBpdC4KKyAgICAgICAgICAgIGNhbGwg
PSBzdGF0ZS5qc0NhbGxzLmxhc3QoKTsKKyAgICAgICAgICAgIHN0YXRlLmpzQ2FsbHMucmVtb3Zl
TGFzdCgpOworICAgICAgICAgICAgaS0tOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KICAgICAgICAgCisgICAgICAgIGNhbGwubV9pbnN0cnVjdGlvbk9mZnNldCA9IGl0ZXItPnZh
bHVlLmluc3RydWN0aW9uT2Zmc2V0OworICAgIH0KKyAgICAKKyAgICBzdGQ6OnNvcnQoc3RhdGUu
anNDYWxscy5iZWdpbigpLCBzdGF0ZS5qc0NhbGxzLmVuZCgpKTsKKyAgICAKKyAgICBjb2RlQmxv
Y2stPnNldE51bWJlck9mQ2FsbExpbmtJbmZvcyhzdGF0ZS5qc0NhbGxzLnNpemUoKSk7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gc3RhdGUuanNDYWxscy5zaXplKCk7IGktLTspIHsKKyAgICAgICAg
SlNDYWxsJiBjYWxsID0gc3RhdGUuanNDYWxsc1tpXTsKKworICAgICAgICBDQ2FsbEhlbHBlcnMg
ZmFzdFBhdGhKSVQoJnZtLCBjb2RlQmxvY2spOworICAgICAgICBjYWxsLmVtaXQoZmFzdFBhdGhK
SVQpOworICAgICAgICAKKyAgICAgICAgY2hhciogc3RhcnRPZklDID0gYml0d2lzZV9jYXN0PGNo
YXIqPihnZW5lcmF0ZWRGdW5jdGlvbikgKyBjYWxsLm1faW5zdHJ1Y3Rpb25PZmZzZXQ7CisgICAg
ICAgIAorICAgICAgICBMaW5rQnVmZmVyIGxpbmtCdWZmZXIodm0sICZmYXN0UGF0aEpJVCwgc3Rh
cnRPZklDLCBzaXplT2ZDYWxsKCkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChsaW5rQnVmZmVy
LmlzVmFsaWQoKSk7CisgICAgICAgIAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QXNzZW1ibGVy
VHlwZV9UOjpmaWxsTm9wcygKKyAgICAgICAgICAgIHN0YXJ0T2ZJQyArIGxpbmtCdWZmZXIuc2l6
ZSgpLCBzaXplT2ZDYWxsKCkgLSBsaW5rQnVmZmVyLnNpemUoKSk7CisgICAgICAgIAorICAgICAg
ICBDYWxsTGlua0luZm8mIGluZm8gPSBjb2RlQmxvY2stPmNhbGxMaW5rSW5mbyhpKTsKKyAgICAg
ICAgY2FsbC5saW5rKHZtLCBsaW5rQnVmZmVyLCBpbmZvKTsKKyAgICB9CisgICAgCisgICAgUmVw
YXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKGNvZGVCbG9jayk7CisgICAgCisgICAgaXRlciA9IHJl
Y29yZE1hcC5maW5kKHN0YXRlLmhhbmRsZUV4Y2VwdGlvblN0YWNrbWFwSUQpOworICAgIC8vIEl0
J3Mgc29ydCBvZiByZW1vdGVseSBwb3NzaWJsZSB0aGF0IHdlIHdvbid0IGhhdmUgYW4gaW4tYmFu
ZCBleGNlcHRpb24gaGFuZGxpbmcKKyAgICAvLyBwYXRoLCBmb3Igc29tZSBraW5kcyBvZiBmdW5j
dGlvbnMuCisgICAgaWYgKGl0ZXIgIT0gcmVjb3JkTWFwLmVuZCgpKSB7CiAgICAgICAgIFN0YWNr
TWFwczo6UmVjb3JkJiByZWNvcmQgPSBpdGVyLT52YWx1ZTsKICAgICAgICAgCiAgICAgICAgIENv
ZGVMb2NhdGlvbkxhYmVsIHNvdXJjZSA9IENvZGVMb2NhdGlvbkxhYmVsKAogICAgICAgICAgICAg
Yml0d2lzZV9jYXN0PGNoYXIqPihnZW5lcmF0ZWRGdW5jdGlvbikgKyByZWNvcmQuaW5zdHJ1Y3Rp
b25PZmZzZXQpOworCisgICAgICAgIHJlcGF0Y2hCdWZmZXIucmVwbGFjZVdpdGhKdW1wKHNvdXJj
ZSwgc3RhdGUuZmluYWxpemVyLT5oYW5kbGVFeGNlcHRpb25zTGlua0J1ZmZlci0+ZW50cnlwb2lu
dCgpKTsKKyAgICB9CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBleGl0SW5kZXggPSAwOyBleGl0
SW5kZXggPCBqaXRDb2RlLT5vc3JFeGl0LnNpemUoKTsgKytleGl0SW5kZXgpIHsKKyAgICAgICAg
T1NSRXhpdENvbXBpbGF0aW9uSW5mbyYgaW5mbyA9IHN0YXRlLmZpbmFsaXplci0+b3NyRXhpdFtl
eGl0SW5kZXhdOworICAgICAgICBPU1JFeGl0JiBleGl0ID0gaml0Q29kZS0+b3NyRXhpdFtleGl0
SW5kZXhdOworICAgICAgICBpdGVyID0gcmVjb3JkTWFwLmZpbmQoZXhpdC5tX3N0YWNrbWFwSUQp
OwogICAgICAgICAKLSAgICAgICAgaWYgKGluZm8ubV9pc0ludmFsaWRhdGlvblBvaW50KSB7Ci0g
ICAgICAgICAgICBqaXRDb2RlLT5jb21tb24uanVtcFJlcGxhY2VtZW50cy5hcHBlbmQoSnVtcFJl
cGxhY2VtZW50KHNvdXJjZSwgaW5mby5tX3RodW5rQWRkcmVzcykpOwotICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIFZlY3Rvcjxjb25zdCB2b2lkKj4gY29kZUFkZHJlc3NlczsKKyAgICAg
ICAgCisgICAgICAgIGlmIChpdGVyICE9IHJlY29yZE1hcC5lbmQoKSkgeworICAgICAgICAgICAg
U3RhY2tNYXBzOjpSZWNvcmQmIHJlY29yZCA9IGl0ZXItPnZhbHVlOworICAgICAgICAgICAgCisg
ICAgICAgICAgICBDb2RlTG9jYXRpb25MYWJlbCBzb3VyY2UgPSBDb2RlTG9jYXRpb25MYWJlbCgK
KyAgICAgICAgICAgICAgICBiaXR3aXNlX2Nhc3Q8Y2hhcio+KGdlbmVyYXRlZEZ1bmN0aW9uKSAr
IHJlY29yZC5pbnN0cnVjdGlvbk9mZnNldCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNv
ZGVBZGRyZXNzZXMuYXBwZW5kKGJpdHdpc2VfY2FzdDxjaGFyKj4oZ2VuZXJhdGVkRnVuY3Rpb24p
ICsgcmVjb3JkLmluc3RydWN0aW9uT2Zmc2V0ICsgTWFjcm9Bc3NlbWJsZXI6Om1heEp1bXBSZXBs
YWNlbWVudFNpemUoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpbmZvLm1faXNJ
bnZhbGlkYXRpb25Qb2ludCkKKyAgICAgICAgICAgICAgICBqaXRDb2RlLT5jb21tb24uanVtcFJl
cGxhY2VtZW50cy5hcHBlbmQoSnVtcFJlcGxhY2VtZW50KHNvdXJjZSwgaW5mby5tX3RodW5rQWRk
cmVzcykpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlcGF0Y2hCdWZmZXIu
cmVwbGFjZVdpdGhKdW1wKHNvdXJjZSwgaW5mby5tX3RodW5rQWRkcmVzcyk7CiAgICAgICAgIH0K
ICAgICAgICAgCi0gICAgICAgIHJlcGF0Y2hCdWZmZXIucmVwbGFjZVdpdGhKdW1wKHNvdXJjZSwg
aW5mby5tX3RodW5rQWRkcmVzcyk7CisgICAgICAgIGlmIChncmFwaC5jb21waWxhdGlvbigpKQor
ICAgICAgICAgICAgZ3JhcGguY29tcGlsYXRpb24oKS0+YWRkT1NSRXhpdFNpdGUoY29kZUFkZHJl
c3Nlcyk7CiAgICAgfQogfQogCkBAIC0zNzMsNyArNTA1LDcgQEAgdm9pZCBjb21waWxlKFN0YXRl
JiBzdGF0ZSkKICAgICAgICAgICAgIEV4ZWN1dGFibGVNZW1vcnlIYW5kbGUqIGhhbmRsZSA9IHN0
YXRlLmppdENvZGUtPmhhbmRsZXMoKVtpXS5nZXQoKTsKICAgICAgICAgICAgIGRhdGFMb2coCiAg
ICAgICAgICAgICAgICAgIkdlbmVyYXRlZCBMTFZNIGNvZGUgZm9yICIsCi0gICAgICAgICAgICAg
ICAgQ29kZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENvZGU6
OkRGR0pJVCksCisgICAgICAgICAgICAgICAgQ29kZUJsb2NrV2l0aEpJVFR5cGUoc3RhdGUuZ3Jh
cGgubV9jb2RlQmxvY2ssIEpJVENvZGU6OkZUTEpJVCksCiAgICAgICAgICAgICAgICAgIiAjIiwg
aSwgIiwgIiwgc3RhdGUuY29kZVNlY3Rpb25OYW1lc1tpXSwgIjpcbiIpOwogICAgICAgICAgICAg
ZGlzYXNzZW1ibGUoCiAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKGhhbmRs
ZS0+c3RhcnQoKSksIGhhbmRsZS0+c2l6ZUluQnl0ZXMoKSwKQEAgLTM4NCwxNyArNTE2LDIyIEBA
IHZvaWQgY29tcGlsZShTdGF0ZSYgc3RhdGUpCiAgICAgICAgICAgICBjb25zdCBSZWZDb3VudGVk
QXJyYXk8TFNlY3Rpb25Xb3JkPiYgc2VjdGlvbiA9IHN0YXRlLmppdENvZGUtPmRhdGFTZWN0aW9u
cygpW2ldOwogICAgICAgICAgICAgZGF0YUxvZygKICAgICAgICAgICAgICAgICAiR2VuZXJhdGVk
IExMVk0gZGF0YSBzZWN0aW9uIGZvciAiLAotICAgICAgICAgICAgICAgIENvZGVCbG9ja1dpdGhK
SVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpERkdKSVQpLAorICAgICAg
ICAgICAgICAgIENvZGVCbG9ja1dpdGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBK
SVRDb2RlOjpGVExKSVQpLAogICAgICAgICAgICAgICAgICIgIyIsIGksICIsICIsIHN0YXRlLmRh
dGFTZWN0aW9uTmFtZXNbaV0sICI6XG4iKTsKICAgICAgICAgICAgIGR1bXBEYXRhU2VjdGlvbihz
ZWN0aW9uLCAiICAgICIpOwogICAgICAgICB9CiAgICAgfQogICAgIAorICAgIHN0YXRlLmppdENv
ZGUtPnVud2luZEluZm8ucGFyc2UoCisgICAgICAgIHN0YXRlLmNvbXBhY3RVbndpbmQsIHN0YXRl
LmNvbXBhY3RVbndpbmRTaXplLCBzdGF0ZS5nZW5lcmF0ZWRGdW5jdGlvbik7CisgICAgaWYgKERG
Rzo6c2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkpCisgICAgICAgIGRhdGFMb2coIlVud2luZCBpbmZv
IGZvciAiLCBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklU
Q29kZTo6RlRMSklUKSwgIjpcbiAgICAiLCBzdGF0ZS5qaXRDb2RlLT51bndpbmRJbmZvLCAiXG4i
KTsKKyAgICAKICAgICBpZiAoc3RhdGUuc3RhY2ttYXBzU2VjdGlvbi5zaXplKCkpIHsKICAgICAg
ICAgaWYgKHNob3VsZFNob3dEaXNhc3NlbWJseSgpKSB7CiAgICAgICAgICAgICBkYXRhTG9nKAog
ICAgICAgICAgICAgICAgICJHZW5lcmF0ZWQgTExWTSBzdGFja21hcHMgc2VjdGlvbiBmb3IgIiwK
LSAgICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2NvZGVC
bG9jaywgSklUQ29kZTo6REZHSklUKSwgIjpcbiIpOworICAgICAgICAgICAgICAgIENvZGVCbG9j
a1dpdGhKSVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpGVExKSVQpLCAi
OlxuIik7CiAgICAgICAgICAgICBkYXRhTG9nKCIgICAgUmF3IGRhdGE6XG4iKTsKICAgICAgICAg
ICAgIGR1bXBEYXRhU2VjdGlvbihzdGF0ZS5zdGFja21hcHNTZWN0aW9uLCAiICAgICIpOwogICAg
ICAgICB9CkBAIC00MjEsOCArNTU4LDkgQEAgdm9pZCBjb21waWxlKFN0YXRlJiBzdGF0ZSkKICAg
ICAgICAgICAgICAgICBFeGVjdXRhYmxlTWVtb3J5SGFuZGxlKiBoYW5kbGUgPSBzdGF0ZS5qaXRD
b2RlLT5oYW5kbGVzKClbaV0uZ2V0KCk7CiAgICAgICAgICAgICAgICAgZGF0YUxvZygKICAgICAg
ICAgICAgICAgICAgICAgIkdlbmVyYXRlZCBMTFZNIGNvZGUgYWZ0ZXIgc3RhY2ttYXAtYmFzZWQg
Zml4LXVwIGZvciAiLAotICAgICAgICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShz
dGF0ZS5ncmFwaC5tX2NvZGVCbG9jaywgSklUQ29kZTo6REZHSklUKSwKLSAgICAgICAgICAgICAg
ICAgICAgIiAjIiwgaSwgIiwgIiwgc3RhdGUuY29kZVNlY3Rpb25OYW1lc1tpXSwgIjpcbiIpOwor
ICAgICAgICAgICAgICAgICAgICBDb2RlQmxvY2tXaXRoSklUVHlwZShzdGF0ZS5ncmFwaC5tX2Nv
ZGVCbG9jaywgSklUQ29kZTo6RlRMSklUKSwKKyAgICAgICAgICAgICAgICAgICAgIiBpbiAiLCBz
dGF0ZS5ncmFwaC5tX3BsYW4ubW9kZSwgIiAjIiwgaSwgIiwgIiwKKyAgICAgICAgICAgICAgICAg
ICAgc3RhdGUuY29kZVNlY3Rpb25OYW1lc1tpXSwgIjpcbiIpOwogICAgICAgICAgICAgICAgIGRp
c2Fzc2VtYmxlKAogICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoaGFu
ZGxlLT5zdGFydCgpKSwgaGFuZGxlLT5zaXplSW5CeXRlcygpLAogICAgICAgICAgICAgICAgICAg
ICAiICAgICIsIFdURjo6ZGF0YUZpbGUoKSwgTExWTVN1YnNldCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5jcHAKaW5kZXggYTk4N2M2MGNlNDdjZDllMTI5OWIwNTY2
NGMzMmUyNWRiY2VjNjAwYy4uNzIxZjY0MzkzNWM2YmExMDdkYjcyMGI5ZDQxOTY5ZWVlMjZhNWQz
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVlLmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTksNiAr
NTksOSBAQCB2b2lkIEV4aXRWYWx1ZTo6ZHVtcEluQ29udGV4dChQcmludFN0cmVhbSYgb3V0LCBE
dW1wQ29udGV4dCogY29udGV4dCkgY29uc3QKICAgICBjYXNlIEV4aXRWYWx1ZUluSlNTdGFja0Fz
RG91YmxlOgogICAgICAgICBvdXQucHJpbnQoIkluSlNTdGFja0FzRG91YmxlOnIiLCB2aXJ0dWFs
UmVnaXN0ZXIoKSk7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEV4aXRWYWx1ZVJlY292ZXJ5
OgorICAgICAgICBvdXQucHJpbnQoIlJlY292ZXJ5KCIsIHJlY292ZXJ5T3Bjb2RlKCksICIsIGFy
ZyIsIGxlZnRSZWNvdmVyeUFyZ3VtZW50KCksICIsIGFyZyIsIHJpZ2h0UmVjb3ZlcnlBcmd1bWVu
dCgpLCAiLCAiLCByZWNvdmVyeUZvcm1hdCgpLCAiKSIpOworICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExFeGl0VmFsdWUuaAppbmRleCA3YWFhZWRkOGQxZjk5YmEwNWNlY2I2OWUz
Mzc0YTkzZTEzMTg4ZWRmLi44MjNmOGE0MjQyYzI2NmY0MDY0YjAyOTI2ZmRkYTgwMWRhMmJlNWMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4aXRWYWx1ZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZhbHVlLmgKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDYgKzMxLDcg
QEAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAogI2luY2x1ZGUgIkZUTEV4aXRBcmd1bWVudC5oIgor
I2luY2x1ZGUgIkZUTFJlY292ZXJ5T3Bjb2RlLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgog
I2luY2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgogI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5o
PgpAQCAtNTEsNyArNTIsOCBAQCBlbnVtIEV4aXRWYWx1ZUtpbmQgewogICAgIEV4aXRWYWx1ZUlu
SlNTdGFjaywKICAgICBFeGl0VmFsdWVJbkpTU3RhY2tBc0ludDMyLAogICAgIEV4aXRWYWx1ZUlu
SlNTdGFja0FzSW50NTIsCi0gICAgRXhpdFZhbHVlSW5KU1N0YWNrQXNEb3VibGUKKyAgICBFeGl0
VmFsdWVJbkpTU3RhY2tBc0RvdWJsZSwKKyAgICBFeGl0VmFsdWVSZWNvdmVyeQogfTsKIAogY2xh
c3MgRXhpdFZhbHVlIHsKQEAgLTExOCw2ICsxMjAsMTcgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgIH0KICAgICAKKyAgICBzdGF0aWMgRXhpdFZhbHVlIHJlY292ZXJ5KFJl
Y292ZXJ5T3Bjb2RlIG9wY29kZSwgdW5zaWduZWQgbGVmdEFyZ3VtZW50LCB1bnNpZ25lZCByaWdo
dEFyZ3VtZW50LCBWYWx1ZUZvcm1hdCBmb3JtYXQpCisgICAgeworICAgICAgICBFeGl0VmFsdWUg
cmVzdWx0OworICAgICAgICByZXN1bHQubV9raW5kID0gRXhpdFZhbHVlUmVjb3Zlcnk7CisgICAg
ICAgIHJlc3VsdC51LnJlY292ZXJ5Lm9wY29kZSA9IG9wY29kZTsKKyAgICAgICAgcmVzdWx0LnUu
cmVjb3ZlcnkubGVmdEFyZ3VtZW50ID0gbGVmdEFyZ3VtZW50OworICAgICAgICByZXN1bHQudS5y
ZWNvdmVyeS5yaWdodEFyZ3VtZW50ID0gcmlnaHRBcmd1bWVudDsKKyAgICAgICAgcmVzdWx0LnUu
cmVjb3ZlcnkuZm9ybWF0ID0gZm9ybWF0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0K
KyAgICAKICAgICBFeGl0VmFsdWVLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0K
ICAgICAKICAgICBib29sIGlzRGVhZCgpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBFeGl0VmFs
dWVEZWFkOyB9CkBAIC0xMzUsNiArMTQ4LDcgQEAgcHVibGljOgogICAgIH0KICAgICBib29sIGlz
Q29uc3RhbnQoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gRXhpdFZhbHVlQ29uc3RhbnQ7IH0K
ICAgICBib29sIGlzQXJndW1lbnQoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gRXhpdFZhbHVl
QXJndW1lbnQ7IH0KKyAgICBib29sIGlzUmVjb3ZlcnkoKSBjb25zdCB7IHJldHVybiBraW5kKCkg
PT0gRXhpdFZhbHVlUmVjb3Zlcnk7IH0KICAgICAKICAgICBFeGl0QXJndW1lbnQgZXhpdEFyZ3Vt
ZW50KCkgY29uc3QKICAgICB7CkBAIC0xNDIsNiArMTU2LDMwIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIEV4aXRBcmd1bWVudCh1LmFyZ3VtZW50KTsKICAgICB9CiAgICAgCisgICAgdW5zaWdu
ZWQgbGVmdFJlY292ZXJ5QXJndW1lbnQoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlz
UmVjb3ZlcnkoKSk7CisgICAgICAgIHJldHVybiB1LnJlY292ZXJ5LmxlZnRBcmd1bWVudDsKKyAg
ICB9CisgICAgCisgICAgdW5zaWduZWQgcmlnaHRSZWNvdmVyeUFyZ3VtZW50KCkgY29uc3QKKyAg
ICB7CisgICAgICAgIEFTU0VSVChpc1JlY292ZXJ5KCkpOworICAgICAgICByZXR1cm4gdS5yZWNv
dmVyeS5yaWdodEFyZ3VtZW50OworICAgIH0KKyAgICAKKyAgICBWYWx1ZUZvcm1hdCByZWNvdmVy
eUZvcm1hdCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNSZWNvdmVyeSgpKTsKKyAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFZhbHVlRm9ybWF0Pih1LnJlY292ZXJ5LmZvcm1hdCk7
CisgICAgfQorICAgIAorICAgIFJlY292ZXJ5T3Bjb2RlIHJlY292ZXJ5T3Bjb2RlKCkgY29uc3QK
KyAgICB7CisgICAgICAgIEFTU0VSVChpc1JlY292ZXJ5KCkpOworICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8UmVjb3ZlcnlPcGNvZGU+KHUucmVjb3Zlcnkub3Bjb2RlKTsKKyAgICB9CisgICAg
CiAgICAgSlNWYWx1ZSBjb25zdGFudCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXND
b25zdGFudCgpKTsKQEAgLTE1Myw2ICsxOTEsMTUgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQo
aXNJbkpTU3RhY2tTb21laG93KCkpOwogICAgICAgICByZXR1cm4gVmlydHVhbFJlZ2lzdGVyKHUu
dmlydHVhbFJlZ2lzdGVyKTsKICAgICB9CisgICAgCisgICAgRXhpdFZhbHVlIHdpdGhWaXJ0dWFs
UmVnaXN0ZXIoVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlcikKKyAgICB7CisgICAgICAg
IEFTU0VSVChpc0luSlNTdGFja1NvbWVob3coKSk7CisgICAgICAgIEV4aXRWYWx1ZSByZXN1bHQ7
CisgICAgICAgIHJlc3VsdC5tX2tpbmQgPSBtX2tpbmQ7CisgICAgICAgIHJlc3VsdC51LnZpcnR1
YWxSZWdpc3RlciA9IHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQoKTsKKyAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICB9CiAKICAgICAvLyBJZiBpdCdzIGluIHRoZSBKU1N0YWNrIHNvbWVob3csIHRo
aXMgd2lsbCB0ZWxsIHlvdSB3aGF0IGZvcm1hdCBpdCdzIGluLCBpbiBhIG1hbm5lcgogICAgIC8v
IHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIGV4aXRBcmd1bWVudCgpLmZvcm1hdCgpLiBJZiBpdCdz
IGEgY29uc3RhbnQgb3IgaXQncyBkZWFkLCBpdApAQCAtMTgxLDYgKzIyOCw5IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEV4aXRWYWx1ZUluSlNTdGFja0FzRG91YmxlOgog
ICAgICAgICAgICAgcmV0dXJuIFZhbHVlRm9ybWF0RG91YmxlOworICAgICAgICAgICAgCisgICAg
ICAgIGNhc2UgRXhpdFZhbHVlUmVjb3Zlcnk6CisgICAgICAgICAgICByZXR1cm4gcmVjb3ZlcnlG
b3JtYXQoKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTE5Niw2ICsyNDYsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgRXhpdEFy
Z3VtZW50UmVwcmVzZW50YXRpb24gYXJndW1lbnQ7CiAgICAgICAgIEVuY29kZWRKU1ZhbHVlIGNv
bnN0YW50OwogICAgICAgICBpbnQgdmlydHVhbFJlZ2lzdGVyOworICAgICAgICBzdHJ1Y3Qgewor
ICAgICAgICAgICAgdWludDE2X3QgbGVmdEFyZ3VtZW50OworICAgICAgICAgICAgdWludDE2X3Qg
cmlnaHRBcmd1bWVudDsKKyAgICAgICAgICAgIHVpbnQxNl90IG9wY29kZTsKKyAgICAgICAgICAg
IHVpbnQxNl90IGZvcm1hdDsKKyAgICAgICAgfSByZWNvdmVyeTsKICAgICB9IHU7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAKaW5k
ZXggODJkNGJlNTZhN2IzN2FjOGE1YWIwNGY0NmM2YjFiYzUzMjBjMTMwNy4uYWI4MjU2MTI3Nzkz
NGIyMWZlMDdkNWYyMzRkZTM2MjNjNThkMTFiNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmNwcApAQCAtNDcsNiArNDcsMTEgQEAgc2l6ZV90
IHNpemVPZlB1dEJ5SWQoKQogICAgIHJldHVybiAzMjsKIH0KIAorc2l6ZV90IHNpemVPZkNhbGwo
KQoreworICAgIHJldHVybiA0MzsKK30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCiAj
ZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExJbmxpbmVDYWNoZVNpemUuaAppbmRleCBhYWMwZjNlOTM3YjBhZTZlZDEyODIyOWQyNGI5N2Rk
MDNkODFmZTAxLi43YzdjMTg5NzI1ZTRjYWM3NGM3MWM2YzhiNDI3OWUyYjAzZTc1Mjg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmgKQEAgLTMy
LDYgKzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogCiBzaXplX3Qgc2l6
ZU9mR2V0QnlJZCgpOwogc2l6ZV90IHNpemVPZlB1dEJ5SWQoKTsKK3NpemVfdCBzaXplT2ZDYWxs
KCk7CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaAppbmRleCA3ZjU2MGRkOTVhNWZi
ZWFjYjJiNjU1ZmJmNzE1ZWRjZGM4ZjJhYWU0Li5jNTBkOTRiNzEyYTRjYmY3NGI5Nzk1NGEwOTEz
OTYwNzE2NTEwYmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElu
dHJpbnNpY1JlcG9zaXRvcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElu
dHJpbnNpY1JlcG9zaXRvcnkuaApAQCAtNDAsMTcgKzQwLDI1IEBAIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgRlRMIHsKICAgICBtYWNybyhhZGRXaXRoT3ZlcmZsb3czMiwgImxsdm0uc2FkZC53
aXRoLm92ZXJmbG93LmkzMiIsIGZ1bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50
MzIsIGJvb2xlYW4pLCBpbnQzMiwgaW50MzIpKSBcCiAgICAgbWFjcm8oYWRkV2l0aE92ZXJmbG93
NjQsICJsbHZtLnNhZGQud2l0aC5vdmVyZmxvdy5pNjQiLCBmdW5jdGlvblR5cGUoc3RydWN0VHlw
ZShtX2NvbnRleHQsIGludDY0LCBib29sZWFuKSwgaW50NjQsIGludDY0KSkgXAogICAgIG1hY3Jv
KGRvdWJsZUFicywgImxsdm0uZmFicy5mNjQiLCBmdW5jdGlvblR5cGUoZG91YmxlVHlwZSwgZG91
YmxlVHlwZSkpIFwKKyAgICBtYWNybyhkb3VibGVTaW4sICJsbHZtLnNpbi5mNjQiLCBmdW5jdGlv
blR5cGUoZG91YmxlVHlwZSwgZG91YmxlVHlwZSkpIFwKKyAgICBtYWNybyhkb3VibGVDb3MsICJs
bHZtLmNvcy5mNjQiLCBmdW5jdGlvblR5cGUoZG91YmxlVHlwZSwgZG91YmxlVHlwZSkpIFwKKyAg
ICBtYWNybyhkb3VibGVTcXJ0LCAibGx2bS5zcXJ0LmY2NCIsIGZ1bmN0aW9uVHlwZShkb3VibGVU
eXBlLCBkb3VibGVUeXBlKSkgXAorICAgIG1hY3JvKGZyYW1lQWRkcmVzcywgImxsdm0uZnJhbWVh
ZGRyZXNzIiwgZnVuY3Rpb25UeXBlKHBvaW50ZXJUeXBlKGludDgpLCBpbnQzMikpIFwKICAgICBt
YWNybyhtdWxXaXRoT3ZlcmZsb3czMiwgImxsdm0uc211bC53aXRoLm92ZXJmbG93LmkzMiIsIGZ1
bmN0aW9uVHlwZShzdHJ1Y3RUeXBlKG1fY29udGV4dCwgaW50MzIsIGJvb2xlYW4pLCBpbnQzMiwg
aW50MzIpKSBcCiAgICAgbWFjcm8obXVsV2l0aE92ZXJmbG93NjQsICJsbHZtLnNtdWwud2l0aC5v
dmVyZmxvdy5pNjQiLCBmdW5jdGlvblR5cGUoc3RydWN0VHlwZShtX2NvbnRleHQsIGludDY0LCBi
b29sZWFuKSwgaW50NjQsIGludDY0KSkgXAotICAgIG1hY3JvKHBhdGNocG9pbnRJbnQ2NCwgImxs
dm0uZXhwZXJpbWVudGFsLnBhdGNocG9pbnQuaTY0IiwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnQz
MiwgaW50MzIsIHJlZjgsIGludDMyLCBWYXJpYWRpYykpIFwKLSAgICBtYWNybyhwYXRjaHBvaW50
Vm9pZCwgImxsdm0uZXhwZXJpbWVudGFsLnBhdGNocG9pbnQudm9pZCIsIGZ1bmN0aW9uVHlwZSh2
b2lkVHlwZSwgaW50MzIsIGludDMyLCByZWY4LCBpbnQzMiwgVmFyaWFkaWMpKSBcCi0gICAgbWFj
cm8oc3RhY2ttYXAsICJsbHZtLmV4cGVyaW1lbnRhbC5zdGFja21hcCIsIGZ1bmN0aW9uVHlwZSh2
b2lkVHlwZSwgaW50MzIsIGludDMyLCBWYXJpYWRpYykpIFwKKyAgICBtYWNybyhwYXRjaHBvaW50
SW50NjQsICJsbHZtLmV4cGVyaW1lbnRhbC5wYXRjaHBvaW50Lmk2NCIsIGZ1bmN0aW9uVHlwZShp
bnQ2NCwgaW50NjQsIGludDMyLCByZWY4LCBpbnQzMiwgVmFyaWFkaWMpKSBcCisgICAgbWFjcm8o
cGF0Y2hwb2ludFZvaWQsICJsbHZtLmV4cGVyaW1lbnRhbC5wYXRjaHBvaW50LnZvaWQiLCBmdW5j
dGlvblR5cGUodm9pZFR5cGUsIGludDY0LCBpbnQzMiwgcmVmOCwgaW50MzIsIFZhcmlhZGljKSkg
XAorICAgIG1hY3JvKHN0YWNrbWFwLCAibGx2bS5leHBlcmltZW50YWwuc3RhY2ttYXAiLCBmdW5j
dGlvblR5cGUodm9pZFR5cGUsIGludDY0LCBpbnQzMiwgVmFyaWFkaWMpKSBcCiAgICAgbWFjcm8o
c3ViV2l0aE92ZXJmbG93MzIsICJsbHZtLnNzdWIud2l0aC5vdmVyZmxvdy5pMzIiLCBmdW5jdGlv
blR5cGUoc3RydWN0VHlwZShtX2NvbnRleHQsIGludDMyLCBib29sZWFuKSwgaW50MzIsIGludDMy
KSkgXAogICAgIG1hY3JvKHN1YldpdGhPdmVyZmxvdzY0LCAibGx2bS5zc3ViLndpdGgub3ZlcmZs
b3cuaTY0IiwgZnVuY3Rpb25UeXBlKHN0cnVjdFR5cGUobV9jb250ZXh0LCBpbnQ2NCwgYm9vbGVh
biksIGludDY0LCBpbnQ2NCkpIFwKICAgICBtYWNybyh0cmFwLCAibGx2bS50cmFwIiwgZnVuY3Rp
b25UeXBlKHZvaWRUeXBlKSkgXAogICAgIG1hY3JvKHg4NlNTRTJDdnRUU0QyU0ksICJsbHZtLng4
Ni5zc2UyLmN2dHRzZDJzaSIsIGZ1bmN0aW9uVHlwZShpbnQzMiwgdmVjdG9yVHlwZShkb3VibGVU
eXBlLCAyKSkpCiAKICNkZWZpbmUgRk9SX0VBQ0hfRlVOQ1RJT05fVFlQRShtYWNybykgXAorICAg
IG1hY3JvKENfSklUT3BlcmF0aW9uX0VDLCBmdW5jdGlvblR5cGUoaW50UHRyLCBpbnRQdHIsIGlu
dFB0cikpIFwKKyAgICBtYWNybyhDX0pJVE9wZXJhdGlvbl9FSiwgZnVuY3Rpb25UeXBlKGludFB0
ciwgaW50UHRyLCBpbnQ2NCkpIFwKKyAgICBtYWNybyhDX0pJVE9wZXJhdGlvbl9FSnNzSnNzLCBm
dW5jdGlvblR5cGUoaW50UHRyLCBpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAorICAgIG1hY3Jv
KENfSklUT3BlcmF0aW9uX0VKc3NKc3NKc3MsIGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwg
aW50UHRyLCBpbnRQdHIsIGludFB0cikpIFwKICAgICBtYWNybyhDX0pJVE9wZXJhdGlvbl9FU3Qs
IGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAogICAgIG1hY3JvKElfSklU
T3BlcmF0aW9uX0VKc3MsIGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAog
ICAgIG1hY3JvKEpfSklUT3BlcmF0aW9uX0UsIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyKSkg
XApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29kZS5jcHAKaW5kZXggY2RjN2RlMGMz
NWYzNDk0ZWE1ZWFmOWU0Y2U4ZGFkYjJhM2RmMGMwYy4uZWRiYmIzMTVhMmEwN2VhOWRkNzU4NWU0
ZTRjOWQyY2Y1ZGZkZmE1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExKSVRDb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUu
Y3BwCkBAIC01NCwyNyArNTQsMzUgQEAgdm9pZCBKSVRDb2RlOjphZGREYXRhU2VjdGlvbihSZWZD
b3VudGVkQXJyYXk8TFNlY3Rpb25Xb3JkPiBkYXRhU2VjdGlvbikKICAgICBtX2RhdGFTZWN0aW9u
cy5hcHBlbmQoZGF0YVNlY3Rpb24pOwogfQogCi12b2lkIEpJVENvZGU6OmluaXRpYWxpemVDb2Rl
KENvZGVSZWYgZW50cnlwb2ludCkKK3ZvaWQgSklUQ29kZTo6aW5pdGlhbGl6ZUFyaXR5Q2hlY2tF
bnRyeXBvaW50KENvZGVSZWYgZW50cnlwb2ludCkKIHsKLSAgICBtX2VudHJ5cG9pbnQgPSBlbnRy
eXBvaW50OworICAgIG1fYXJpdHlDaGVja0VudHJ5cG9pbnQgPSBlbnRyeXBvaW50OwogfQogCi1K
SVRDb2RlOjpDb2RlUHRyIEpJVENvZGU6OmFkZHJlc3NGb3JDYWxsKCkKK3ZvaWQgSklUQ29kZTo6
aW5pdGlhbGl6ZUFkZHJlc3NGb3JDYWxsKENvZGVQdHIgYWRkcmVzcykKIHsKLSAgICBSRUxFQVNF
X0FTU0VSVChtX2VudHJ5cG9pbnQpOwotICAgIHJldHVybiBtX2VudHJ5cG9pbnQuY29kZSgpOwor
ICAgIG1fYWRkcmVzc0ZvckNhbGwgPSBhZGRyZXNzOworfQorCitKSVRDb2RlOjpDb2RlUHRyIEpJ
VENvZGU6OmFkZHJlc3NGb3JDYWxsKFZNJiwgRXhlY3V0YWJsZUJhc2UqLCBBcml0eUNoZWNrTW9k
ZSBhcml0eUNoZWNrLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUpCit7CisgICAgc3dpdGNoIChh
cml0eUNoZWNrKSB7CisgICAgY2FzZSBBcml0eUNoZWNrTm90UmVxdWlyZWQ6CisgICAgICAgIHJl
dHVybiBtX2FkZHJlc3NGb3JDYWxsOworICAgIGNhc2UgTXVzdENoZWNrQXJpdHk6CisgICAgICAg
IHJldHVybiBtX2FyaXR5Q2hlY2tFbnRyeXBvaW50LmNvZGUoKTsKKyAgICB9CisgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQ29kZVB0cigpOwogfQogCiB2b2lk
KiBKSVRDb2RlOjpleGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpCiB7Ci0g
ICAgUkVMRUFTRV9BU1NFUlQobV9lbnRyeXBvaW50KTsKLSAgICByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxjaGFyKj4obV9lbnRyeXBvaW50LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSArIG9m
ZnNldDsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9hZGRyZXNzRm9yQ2Fs
bC5leGVjdXRhYmxlQWRkcmVzcygpKSArIG9mZnNldDsKIH0KIAogdm9pZCogSklUQ29kZTo6ZGF0
YUFkZHJlc3NBdE9mZnNldChzaXplX3QpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9lbnRyeXBv
aW50KTsKLQogICAgIC8vIFdlIGNhbid0IHBhdGNoIEZUTCBjb2RlLCB5ZXQuIEV2ZW4gaWYgd2Ug
ZGlkLCBpdCdzIG5vdCBjbGVhciB0aGF0IHdlIHdvdWxkIGRvIHNvCiAgICAgLy8gdGhyb3VnaCB0
aGlzIEFQSS4KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtODMsOCArOTEs
NiBAQCB2b2lkKiBKSVRDb2RlOjpkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCkKIAogdW5zaWdu
ZWQgSklUQ29kZTo6b2Zmc2V0T2Yodm9pZCopCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9lbnRy
eXBvaW50KTsKLQogICAgIC8vIFdlIGN1cnJlbnRseSBkb24ndCBoYXZlIHZpc2liaWxpdHkgaW50
byB0aGUgRlRMIGNvZGUuCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICBy
ZXR1cm4gMDsKQEAgLTkyLDggKzk4LDYgQEAgdW5zaWduZWQgSklUQ29kZTo6b2Zmc2V0T2Yodm9p
ZCopCiAKIHNpemVfdCBKSVRDb2RlOjpzaXplKCkKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2Vu
dHJ5cG9pbnQpOwotCiAgICAgLy8gV2UgZG9uJ3Qga25vdyB0aGUgc2l6ZSBvZiBGVEwgY29kZSwg
eWV0LiBNYWtlIGEgd2lsZCBndWVzcy4gVGhpcyBpcyBtb3N0bHkgdXNlZCBmb3IKICAgICAvLyBH
QyBsb2FkIGVzdGltYXRlcy4KICAgICByZXR1cm4gMTAwMDsKQEAgLTEwMSw4ICsxMDUsNiBAQCBz
aXplX3QgSklUQ29kZTo6c2l6ZSgpCiAKIGJvb2wgSklUQ29kZTo6Y29udGFpbnModm9pZCopCiB7
Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9lbnRyeXBvaW50KTsKLQogICAgIC8vIFdlIGhhdmUgbm8g
aWRlYSB3aGF0IGFkZHJlc3NlcyB0aGUgRlRMIGNvZGUgY29udGFpbnMsIHlldC4KICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29kZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgKaW5kZXggM2U3MjEzOTgzYjg1NTQzM2MwMjk4MmEzYzBj
NWJjMDYzYjM1MDIyMS4uNzEzMDQwMGI2NTU1Mjc1MzA1MWI4ZjZkMTRhMGViN2FhZDE0OWViNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgKQEAgLTMzLDYgKzMzLDcgQEAK
ICNpbmNsdWRlICJERkdDb21tb25EYXRhLmgiCiAjaW5jbHVkZSAiRlRMT1NSRXhpdC5oIgogI2lu
Y2x1ZGUgIkZUTFN0YWNrTWFwcy5oIgorI2luY2x1ZGUgIkZUTFVud2luZEluZm8uaCIKICNpbmNs
dWRlICJKSVRDb2RlLmgiCiAjaW5jbHVkZSAiTExWTUFQSS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkQXJyYXkuaD4KQEAgLTQ2LDE3ICs0NywxOCBAQCBwdWJsaWM6CiAgICAgSklUQ29kZSgp
OwogICAgIH5KSVRDb2RlKCk7CiAgICAgCi0gICAgQ29kZVB0ciBhZGRyZXNzRm9yQ2FsbCgpOwot
ICAgIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCk7Ci0gICAg
dm9pZCogZGF0YUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KTsKLSAgICB1bnNpZ25lZCBv
ZmZzZXRPZih2b2lkKiBwb2ludGVySW50b0NvZGUpOwotICAgIHNpemVfdCBzaXplKCk7Ci0gICAg
Ym9vbCBjb250YWlucyh2b2lkKik7CisgICAgQ29kZVB0ciBhZGRyZXNzRm9yQ2FsbChWTSYsIEV4
ZWN1dGFibGVCYXNlKiwgQXJpdHlDaGVja01vZGUsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSkg
b3ZlcnJpZGU7CisgICAgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zm
c2V0KSBvdmVycmlkZTsKKyAgICB2b2lkKiBkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZz
ZXQpIG92ZXJyaWRlOworICAgIHVuc2lnbmVkIG9mZnNldE9mKHZvaWQqIHBvaW50ZXJJbnRvQ29k
ZSkgb3ZlcnJpZGU7CisgICAgc2l6ZV90IHNpemUoKSBvdmVycmlkZTsKKyAgICBib29sIGNvbnRh
aW5zKHZvaWQqKSBvdmVycmlkZTsKICAgICAKICAgICB2b2lkIGluaXRpYWxpemVFeGl0VGh1bmtz
KENvZGVSZWYpOwogICAgIHZvaWQgYWRkSGFuZGxlKFBhc3NSZWZQdHI8RXhlY3V0YWJsZU1lbW9y
eUhhbmRsZT4pOwogICAgIHZvaWQgYWRkRGF0YVNlY3Rpb24oUmVmQ291bnRlZEFycmF5PExTZWN0
aW9uV29yZD4pOwotICAgIHZvaWQgaW5pdGlhbGl6ZUNvZGUoQ29kZVJlZiBlbnRyeXBvaW50KTsK
KyAgICB2b2lkIGluaXRpYWxpemVBcml0eUNoZWNrRW50cnlwb2ludChDb2RlUmVmKTsKKyAgICB2
b2lkIGluaXRpYWxpemVBZGRyZXNzRm9yQ2FsbChDb2RlUHRyKTsKICAgICAKICAgICBjb25zdCBW
ZWN0b3I8UmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+PiYgaGFuZGxlcygpIGNvbnN0IHsg
cmV0dXJuIG1faGFuZGxlczsgfQogICAgIGNvbnN0IFZlY3RvcjxSZWZDb3VudGVkQXJyYXk8TFNl
Y3Rpb25Xb3JkPj4mIGRhdGFTZWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YVNlY3Rpb25z
OyB9CkBAIC02OSwxMSArNzEsMTMgQEAgcHVibGljOgogICAgIERGRzo6Q29tbW9uRGF0YSBjb21t
b247CiAgICAgU2VnbWVudGVkVmVjdG9yPE9TUkV4aXQsIDg+IG9zckV4aXQ7CiAgICAgU3RhY2tN
YXBzIHN0YWNrbWFwczsKKyAgICBVbndpbmRJbmZvIHVud2luZEluZm87CiAgICAgCiBwcml2YXRl
OgogICAgIFZlY3RvcjxSZWZDb3VudGVkQXJyYXk8TFNlY3Rpb25Xb3JkPj4gbV9kYXRhU2VjdGlv
bnM7CiAgICAgVmVjdG9yPFJlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPj4gbV9oYW5kbGVz
OwotICAgIENvZGVSZWYgbV9lbnRyeXBvaW50OworICAgIENvZGVQdHIgbV9hZGRyZXNzRm9yQ2Fs
bDsKKyAgICBDb2RlUmVmIG1fYXJpdHlDaGVja0VudHJ5cG9pbnQ7CiAgICAgQ29kZVJlZiBtX2V4
aXRUaHVua3M7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEpJVEZpbmFsaXplci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFs
aXplci5jcHAKaW5kZXggYThhOTliNjNhMzY0M2Q2MDE3NzZhNjg3NmE1ZTBmZTIzOTlkYTNmNC4u
NTBkNWVlMjgzYWMzNWVmYWMzMGZiMDgwOTI5ZDljZTFiNjllODYyNiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDUsNiArNDUsMjIgQEAgSklU
RmluYWxpemVyOjp+SklURmluYWxpemVyKCkKIHsKIH0KIAorc2l6ZV90IEpJVEZpbmFsaXplcjo6
Y29kZVNpemUoKQoreworICAgIHNpemVfdCByZXN1bHQgPSAwOworICAgIAorICAgIHJlc3VsdCAr
PSBleGl0VGh1bmtzTGlua0J1ZmZlci0+c2l6ZSgpOworICAgIHJlc3VsdCArPSBlbnRyeXBvaW50
TGlua0J1ZmZlci0+c2l6ZSgpOworICAgIGlmIChzaWRlQ29kZUxpbmtCdWZmZXIpCisgICAgICAg
IHJlc3VsdCArPSBzaWRlQ29kZUxpbmtCdWZmZXItPnNpemUoKTsKKyAgICByZXN1bHQgKz0gaGFu
ZGxlRXhjZXB0aW9uc0xpbmtCdWZmZXItPnNpemUoKTsKKyAgICAKKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSBqaXRDb2RlLT5oYW5kbGVzKCkuc2l6ZSgpOyBpLS07KQorICAgICAgICByZXN1bHQgKz0g
aml0Q29kZS0+aGFuZGxlcygpW2ldLT5zaXplSW5CeXRlcygpOworICAgIAorICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKIGJvb2wgSklURmluYWxpemVyOjpmaW5hbGl6ZSgpCiB7CiAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTczLDkgKzg5LDcgQEAgYm9vbCBKSVRGaW5hbGl6
ZXI6OmZpbmFsaXplRnVuY3Rpb24oKQogICAgICAgICAgICAgZXhpdFRodW5rc0xpbmtCdWZmZXIt
PmxpbmsoCiAgICAgICAgICAgICAgICAgaW5mby5tX3RodW5rSnVtcCwKICAgICAgICAgICAgICAg
ICBDb2RlTG9jYXRpb25MYWJlbCgKLSAgICAgICAgICAgICAgICAgICAgbV9wbGFuLnZtLmZ0bFRo
dW5rcy0+Z2V0T1NSRXhpdEdlbmVyYXRpb25UaHVuaygKLSAgICAgICAgICAgICAgICAgICAgICAg
IG1fcGxhbi52bSwgTG9jYXRpb246OmZvclN0YWNrbWFwcygKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmaml0Q29kZS0+c3RhY2ttYXBzLCBpdGVyLT52YWx1ZS5sb2NhdGlvbnNbMF0pKS5j
b2RlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9wbGFuLnZtLmdldENUSVN0dWIob3NyRXhp
dEdlbmVyYXRpb25UaHVua0dlbmVyYXRvcikuY29kZSgpKSk7CiAgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIGppdENvZGUtPmluaXRpYWxpemVFeGl0VGh1bmtzKApAQCAtMTAyLDE1ICsxMTYs
MjYgQEAgYm9vbCBKSVRGaW5hbGl6ZXI6OmZpbmFsaXplRnVuY3Rpb24oKQogICAgICAgICAgICAg
LmV4ZWN1dGFibGVNZW1vcnkoKSk7CiAgICAgfQogICAgIAorICAgIGlmIChoYW5kbGVFeGNlcHRp
b25zTGlua0J1ZmZlcikgeworICAgICAgICBqaXRDb2RlLT5hZGRIYW5kbGUoRklOQUxJWkVfREZH
X0NPREUoCisgICAgICAgICAgICAqaGFuZGxlRXhjZXB0aW9uc0xpbmtCdWZmZXIsCisgICAgICAg
ICAgICAoIkZUTCBleGNlcHRpb24gaGFuZGxlciBmb3IgJXMiLAorICAgICAgICAgICAgICAgIHRv
Q1N0cmluZyhDb2RlQmxvY2tXaXRoSklUVHlwZShtX3BsYW4uY29kZUJsb2NrLmdldCgpLCBKSVRD
b2RlOjpGVExKSVQpKS5kYXRhKCkpKQorICAgICAgICAgICAgLmV4ZWN1dGFibGVNZW1vcnkoKSk7
CisgICAgfQorICAgIAogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciB3aXRoQXJpdHlDaGVjazsK
ICAgICBpZiAoYXJpdHlDaGVjay5pc1NldCgpKQogICAgICAgICB3aXRoQXJpdHlDaGVjayA9IGVu
dHJ5cG9pbnRMaW5rQnVmZmVyLT5sb2NhdGlvbk9mKGFyaXR5Q2hlY2spOwotICAgIGppdENvZGUt
PmluaXRpYWxpemVDb2RlKAorICAgIGppdENvZGUtPmluaXRpYWxpemVBcml0eUNoZWNrRW50cnlw
b2ludCgKICAgICAgICAgRklOQUxJWkVfREZHX0NPREUoCiAgICAgICAgICAgICAqZW50cnlwb2lu
dExpbmtCdWZmZXIsCiAgICAgICAgICAgICAoIkZUTCBlbnRyeXBvaW50IHRodW5rIGZvciAlcyB3
aXRoIExMVk0gZ2VuZXJhdGVkIGNvZGUgYXQgJXAiLCB0b0NTdHJpbmcoQ29kZUJsb2NrV2l0aEpJ
VFR5cGUobV9wbGFuLmNvZGVCbG9jay5nZXQoKSwgSklUQ29kZTo6RlRMSklUKSkuZGF0YSgpLCBm
dW5jdGlvbikpKTsKICAgICAKLSAgICBtX3BsYW4uY29kZUJsb2NrLT5zZXRKSVRDb2RlKGppdENv
ZGUsIHdpdGhBcml0eUNoZWNrKTsKKyAgICBtX3BsYW4uY29kZUJsb2NrLT5zZXRKSVRDb2RlKGpp
dENvZGUpOworICAgIAorICAgIGlmIChtX3BsYW4uY29tcGlsYXRpb24pCisgICAgICAgIG1fcGxh
bi52bS5tX3BlckJ5dGVjb2RlUHJvZmlsZXItPmFkZENvbXBpbGF0aW9uKG1fcGxhbi5jb21waWxh
dGlvbik7CiAgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExKSVRGaW5hbGl6ZXIuaAppbmRleCBhN2VjZDk0ODYwNTJhZGUwMGYwNDA1ZDkwZDMw
MjMyMDVjNTRiYzM4Li5iYTQ0NTFlZDkwNzc1Yzc1ZDQ1ZDhjODE1NmQxZGFhZWZhYjMwMjQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmgKQEAgLTQ2LDEy
ICs0NiwxNCBAQCBwdWJsaWM6CiAgICAgSklURmluYWxpemVyKERGRzo6UGxhbiYpOwogICAgIHZp
cnR1YWwgfkpJVEZpbmFsaXplcigpOwogICAgIAotICAgIGJvb2wgZmluYWxpemUoKTsKLSAgICBi
b29sIGZpbmFsaXplRnVuY3Rpb24oKTsKKyAgICBzaXplX3QgY29kZVNpemUoKSBvdmVycmlkZTsK
KyAgICBib29sIGZpbmFsaXplKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBmaW5hbGl6ZUZ1bmN0aW9u
KCkgb3ZlcnJpZGU7CiAKICAgICBPd25QdHI8TGlua0J1ZmZlcj4gZXhpdFRodW5rc0xpbmtCdWZm
ZXI7CiAgICAgT3duUHRyPExpbmtCdWZmZXI+IGVudHJ5cG9pbnRMaW5rQnVmZmVyOwogICAgIE93
blB0cjxMaW5rQnVmZmVyPiBzaWRlQ29kZUxpbmtCdWZmZXI7CisgICAgT3duUHRyPExpbmtCdWZm
ZXI+IGhhbmRsZUV4Y2VwdGlvbnNMaW5rQnVmZmVyOwogICAgIFZlY3RvcjxTbG93UGF0aENhbGw+
IHNsb3dQYXRoQ2FsbHM7IC8vIENhbGxzIGluc2lkZSB0aGUgc2lkZSBjb2RlLgogICAgIFZlY3Rv
cjxPU1JFeGl0Q29tcGlsYXRpb25JbmZvPiBvc3JFeGl0OwogICAgIE1hY3JvQXNzZW1ibGVyOjpM
YWJlbCBhcml0eUNoZWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExKU0NhbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKU0NhbGwuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjllYTBiM2U2NmQ4ZmQwM2FjYTQzNzM1NDNkOThjMDYzMzQyZjdlZWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpTQ2FsbC5jcHAKQEAg
LTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRlRMSlNDYWxsLmgiCisKKyNpZiBF
TkFCTEUoRlRMX0pJVCkKKworI2luY2x1ZGUgIkRGR05vZGUuaCIKKworbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBGVEwgeworCitKU0NhbGw6OkpTQ2FsbCh1bnNpZ25lZCBzdGFja21hcElELCBE
Rkc6Ok5vZGUqIG5vZGUpCisgICAgOiBtX3N0YWNrbWFwSUQoc3RhY2ttYXBJRCkKKyAgICAsIG1f
bm9kZShub2RlKQorICAgICwgbV9pbnN0cnVjdGlvbk9mZnNldCgwKQoreworfQorCit2b2lkIEpT
Q2FsbDo6ZW1pdChDQ2FsbEhlbHBlcnMmIGppdCkKK3sKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAg
c2xvd1BhdGggPSBqaXQuYnJhbmNoUHRyV2l0aFBhdGNoKAorICAgICAgICBDQ2FsbEhlbHBlcnM6
Ok5vdEVxdWFsLCBHUFJJbmZvOjpyZWdUMCwgbV90YXJnZXRUb0NoZWNrLAorICAgICAgICBDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoMCkpOworICAgIAorICAgIGppdC5sb2FkUHRyKAorICAg
ICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIEpTRnVuY3Rpb246Om9m
ZnNldE9mU2NvcGVDaGFpbigpKSwKKyAgICAgICAgR1BSSW5mbzo6cmVnVDEpOworICAgIGppdC5z
dG9yZTY0KAorICAgICAgICBHUFJJbmZvOjpyZWdUMSwKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKAorICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwK
KyAgICAgICAgICAgIHNpemVvZihSZWdpc3RlcikgKiAoSlNTdGFjazo6U2NvcGVDaGFpbiAtIEpT
U3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplKSkpOworICAgIAorICAgIG1fZmFzdENhbGwgPSBq
aXQubmVhckNhbGwoKTsKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7
CisgICAgCisgICAgc2xvd1BhdGgubGluaygmaml0KTsKKyAgICBtX3Nsb3dDYWxsID0gaml0Lm5l
YXJDYWxsKCk7CisgICAgCisgICAgZG9uZS5saW5rKCZqaXQpOworfQorCit2b2lkIEpTQ2FsbDo6
bGluayhWTSYgdm0sIExpbmtCdWZmZXImIGxpbmtCdWZmZXIsIENhbGxMaW5rSW5mbyYgY2FsbElu
Zm8pCit7CisgICAgVGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9yID0gbGlua1RodW5rR2VuZXJhdG9y
Rm9yKAorICAgICAgICBtX25vZGUtPm9wKCkgPT0gREZHOjpDb25zdHJ1Y3QgPyBDb2RlRm9yQ29u
c3RydWN0IDogQ29kZUZvckNhbGwsCisgICAgICAgIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7Cisg
ICAgCisgICAgbGlua0J1ZmZlci5saW5rKAorICAgICAgICBtX3Nsb3dDYWxsLCBGdW5jdGlvblB0
cih2bS5nZXRDVElTdHViKGdlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsK
KyAgICAKKyAgICBjYWxsSW5mby5pc0ZUTCA9IHRydWU7CisgICAgY2FsbEluZm8uY2FsbFR5cGUg
PSBtX25vZGUtPm9wKCkgPT0gREZHOjpDb25zdHJ1Y3QgPyBDYWxsTGlua0luZm86OkNvbnN0cnVj
dCA6IENhbGxMaW5rSW5mbzo6Q2FsbDsKKyAgICBjYWxsSW5mby5jb2RlT3JpZ2luID0gbV9ub2Rl
LT5jb2RlT3JpZ2luOworICAgIGNhbGxJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiA9IGxpbmtCdWZm
ZXIubG9jYXRpb25PZk5lYXJDYWxsKG1fc2xvd0NhbGwpOworICAgIGNhbGxJbmZvLmhvdFBhdGhC
ZWdpbiA9IGxpbmtCdWZmZXIubG9jYXRpb25PZihtX3RhcmdldFRvQ2hlY2spOworICAgIGNhbGxJ
bmZvLmhvdFBhdGhPdGhlciA9IGxpbmtCdWZmZXIubG9jYXRpb25PZk5lYXJDYWxsKG1fZmFzdENh
bGwpOworICAgIGNhbGxJbmZvLmNhbGxlZUdQUiA9IEdQUkluZm86OnJlZ1QwOworfQorCit9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKU0NhbGwuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTExN2Y4YjI2MWUwNmE3
Nzc1NzNlYjE1MjM1MzE1NWJmMzhhMWI2OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEZUTEpTQ2FsbF9oCisj
ZGVmaW5lIEZUTEpTQ2FsbF9oCisKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKworI2luY2x1ZGUgIkND
YWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkNhbGxMaW5rSW5mby5oIgorI2luY2x1ZGUgIkNvZGVP
cmlnaW4uaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitu
YW1lc3BhY2UgREZHIHsKK3N0cnVjdCBOb2RlOworfQorCituYW1lc3BhY2UgRlRMIHsKKworY2xh
c3MgSlNDYWxsIHsKK3B1YmxpYzoKKyAgICBKU0NhbGwodW5zaWduZWQgc3RhY2ttYXBJRCwgREZH
OjpOb2RlKik7CisgICAgCisgICAgdm9pZCBlbWl0KENDYWxsSGVscGVycyYpOworICAgIHZvaWQg
bGluayhWTSYsIExpbmtCdWZmZXImLCBDYWxsTGlua0luZm8mKTsKKyAgICAKKyAgICB1bnNpZ25l
ZCBzdGFja21hcElEKCkgY29uc3QgeyByZXR1cm4gbV9zdGFja21hcElEOyB9CisgICAgCisgICAg
Ym9vbCBvcGVyYXRvcjwoY29uc3QgSlNDYWxsJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiBtX2luc3RydWN0aW9uT2Zmc2V0IDwgb3RoZXIubV9pbnN0cnVjdGlvbk9mZnNldDsK
KyAgICB9CisgICAgCitwcml2YXRlOgorICAgIHVuc2lnbmVkIG1fc3RhY2ttYXBJRDsKKyAgICBE
Rkc6Ok5vZGUqIG1fbm9kZTsKKyAgICBDQ2FsbEhlbHBlcnM6OkRhdGFMYWJlbFB0ciBtX3Rhcmdl
dFRvQ2hlY2s7CisgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIG1fZmFzdENhbGw7CisgICAgQ0NhbGxI
ZWxwZXJzOjpDYWxsIG1fc2xvd0NhbGw7CisKK3B1YmxpYzoKKyAgICB1aW50MzJfdCBtX2luc3Ry
dWN0aW9uT2Zmc2V0OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYg
Ly8gRU5BQkxFKEZUTF9KSVQpCisKKyNlbmRpZiAvLyBGVExKU0NhbGxfaAorCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMaW5rLmNwcAppbmRleCA4NTA1MGQxNTExNTBhOTY4ODg4MWIzMjlmYWZl
MDA2ODBiNmY0NzVkLi44ODAzOTFhYTE0ZDc2MTU3MGFlYTVkMjEyODg3NzExNTY3YjUwMjg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lm
IEVOQUJMRShGVExfSklUKQogCisjaW5jbHVkZSAiQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3Mu
aCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJDYWxsRnJhbWVJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCIKQEAgLTM3LDEyMSArMzgsMTUw
IEBACiAjaW5jbHVkZSAiSklUU3R1YnMuaCIKICNpbmNsdWRlICJMTFZNQVBJLmgiCiAjaW5jbHVk
ZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIlByb2ZpbGVyQ29tcGlsYXRpb24uaCIKICNpbmNs
dWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwg
ewogCiB1c2luZyBuYW1lc3BhY2UgREZHOwogCi1zdGF0aWMgdm9pZCBjb21waWxlRW50cnkoQ0Nh
bGxIZWxwZXJzJiBqaXQpCi17Ci0gICAgaml0LnByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2Fs
bChHUFJJbmZvOjpyZWdUMik7Ci0gICAgaml0LmVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVh
ZGVyKEdQUkluZm86OnJlZ1QyKTsKLSAgICBqaXQuZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1l
SGVhZGVyKGppdC5jb2RlQmxvY2soKSwgSlNTdGFjazo6Q29kZUJsb2NrKTsKLX0KLQogdm9pZCBs
aW5rKFN0YXRlJiBzdGF0ZSkKIHsKLSAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IHN0YXRlLmdy
YXBoLm1fY29kZUJsb2NrOworICAgIEdyYXBoJiBncmFwaCA9IHN0YXRlLmdyYXBoOworICAgIENv
ZGVCbG9jayogY29kZUJsb2NrID0gZ3JhcGgubV9jb2RlQmxvY2s7CisgICAgVk0mIHZtID0gZ3Jh
cGgubV92bTsKICAgICAKICAgICAvLyBMTFZNIHdpbGwgY3JlYXRlIGl0cyBvd24ganVtcCB0YWJs
ZXMgYXMgbmVlZGVkLgogICAgIGNvZGVCbG9jay0+Y2xlYXJTd2l0Y2hKdW1wVGFibGVzKCk7CiAg
ICAgCi0gICAgc3RhdGUuaml0Q29kZS0+Y29tbW9uLmZyYW1lUmVnaXN0ZXJDb3VudCA9IHN0YXRl
LmdyYXBoLmZyYW1lUmVnaXN0ZXJDb3VudCgpOwotICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5y
ZXF1aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGl0ID0gc3RhdGUuZ3JhcGgucmVxdWlyZWRSZWdpc3Rl
ckNvdW50Rm9yRXhpdCgpOworICAgIC8vIEZJWE1FOiBOZWVkIHRvIGtub3cgdGhlIHJlYWwgZnJh
bWUgcmVnaXN0ZXIgY291bnQuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyNTcyNworICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5mcmFtZVJlZ2lzdGVy
Q291bnQgPSAxMDAwOworICAgIAorICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5yZXF1aXJlZFJl
Z2lzdGVyQ291bnRGb3JFeGl0ID0gZ3JhcGgucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCgp
OwogICAgIAotICAgIGlmICghc3RhdGUuZ3JhcGgubV9pbmxpbmVDYWxsRnJhbWVzLT5pc0VtcHR5
KCkpCi0gICAgICAgIHN0YXRlLmppdENvZGUtPmNvbW1vbi5pbmxpbmVDYWxsRnJhbWVzID0gc3Rk
Ojptb3ZlKHN0YXRlLmdyYXBoLm1faW5saW5lQ2FsbEZyYW1lcyk7CisgICAgaWYgKCFncmFwaC5t
X2lubGluZUNhbGxGcmFtZXMtPmlzRW1wdHkoKSkKKyAgICAgICAgc3RhdGUuaml0Q29kZS0+Y29t
bW9uLmlubGluZUNhbGxGcmFtZXMgPSBzdGQ6Om1vdmUoZ3JhcGgubV9pbmxpbmVDYWxsRnJhbWVz
KTsKICAgICAKICAgICAvLyBDcmVhdGUgdGhlIGVudHJ5cG9pbnQuIE5vdGUgdGhhdCB3ZSB1c2Ug
dGhpcyBlbnRyeXBvaW50IHRvdGFsbHkgZGlmZmVyZW50bHkKICAgICAvLyBkZXBlbmRpbmcgb24g
d2hldGhlciB3ZSdyZSBkb2luZyBPU1IgZW50cnkgb3Igbm90LgotICAgIC8vIEZJWE1FOiBFeGNl
cHQgZm9yIE9TUiBlbnRyeSwgdGhpcyBpcyBhIHRvdGFsIGtsdWRnZSAtIExMVk0gc2hvdWxkIGp1
c3QgdXNlIG91cgotICAgIC8vIGNhbGxpbmcgY29udmVudGlvbi4KLSAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIxCi0gICAgQ0NhbGxIZWxwZXJzIGpp
dCgmc3RhdGUuZ3JhcGgubV92bSwgY29kZUJsb2NrKTsKKyAgICBDQ2FsbEhlbHBlcnMgaml0KCZ2
bSwgY29kZUJsb2NrKTsKICAgICAKICAgICBPd25QdHI8TGlua0J1ZmZlcj4gbGlua0J1ZmZlcjsK
ICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGFyaXR5Q2hlY2s7Ci0gICAgc3dpdGNoIChzdGF0ZS5n
cmFwaC5tX3BsYW4ubW9kZSkgewotICAgIGNhc2UgRlRMTW9kZTogewotICAgICAgICBjb21waWxl
RW50cnkoaml0KTsKKworICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyBmcmFtZSA9IENDYWxsSGVs
cGVyczo6QWRkcmVzcygKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rl
ciwgLXN0YXRpY19jYXN0PGludDMyX3Q+KHNpemVvZih2b2lkKikpKTsKICAgICAKLSAgICAgICAg
Ly8gVGhpcyBwYXJ0IGlzIG9ubHkgbmVjZXNzYXJ5IGZvciBmdW5jdGlvbnMuIFdlIGN1cnJlbnRs
eSBvbmx5IGNvbXBpbGUgZnVuY3Rpb25zLgorICAgIGlmIChQcm9maWxlcjo6Q29tcGlsYXRpb24q
IGNvbXBpbGF0aW9uID0gZ3JhcGguY29tcGlsYXRpb24oKSkgeworICAgICAgICBjb21waWxhdGlv
bi0+YWRkRGVzY3JpcHRpb24oCisgICAgICAgICAgICBQcm9maWxlcjo6T3JpZ2luU3RhY2soKSwK
KyAgICAgICAgICAgIHRvQ1N0cmluZygiR2VuZXJhdGVkIEZUTCBKSVQgY29kZSBmb3IgIiwgQ29k
ZUJsb2NrV2l0aEpJVFR5cGUoY29kZUJsb2NrLCBKSVRDb2RlOjpGVExKSVQpLCAiLCBpbnN0cnVj
dGlvbiBjb3VudCA9ICIsIGdyYXBoLm1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbkNvdW50KCksICI6
XG4iKSk7CiAgICAgICAgIAotICAgICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGZyb21Bcml0eUNo
ZWNrID0gaml0LmxhYmVsKCk7CisgICAgICAgIGdyYXBoLm1fZG9taW5hdG9ycy5jb21wdXRlSWZO
ZWNlc3NhcnkoZ3JhcGgpOworICAgICAgICBncmFwaC5tX25hdHVyYWxMb29wcy5jb21wdXRlSWZO
ZWNlc3NhcnkoZ3JhcGgpOwogICAgICAgICAKLSAgICAgICAgLy8gUGxhbnQgYSBjaGVjayB0aGF0
IHN1ZmZpY2llbnQgc3BhY2UgaXMgYXZhaWxhYmxlIGluIHRoZSBKU1N0YWNrLgotICAgICAgICAv
LyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MjkxCi0g
ICAgICAgIGppdC5hZGRQdHIoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
Mih2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChzdGF0ZS5qaXRDb2RlLT5jb21tb24ucmVxdWlyZWRS
ZWdpc3RlckNvdW50Rm9yRXhpdCkub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpKSwKLSAgICAg
ICAgICAgIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMSk7Ci0gICAg
ICAgIENDYWxsSGVscGVyczo6SnVtcCBzdGFja0NoZWNrID0gaml0LmJyYW5jaFB0cigKLSAgICAg
ICAgICAgIENDYWxsSGVscGVyczo6QWJvdmUsCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFi
c29sdXRlQWRkcmVzcyhzdGF0ZS5ncmFwaC5tX3ZtLmFkZHJlc3NPZkpTU3RhY2tMaW1pdCgpKSwK
LSAgICAgICAgICAgIEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJl
bCBmcm9tU3RhY2tDaGVjayA9IGppdC5sYWJlbCgpOworICAgICAgICBjb25zdCBjaGFyKiBwcmVm
aXggPSAiICAgICI7CiAgICAgICAgIAotICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHNFeGVjU3Rh
dGUoKTsKLSAgICAgICAgaml0Lm1vdmUoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc3RhdGUuZ2VuZXJhdGVkRnVuY3Rpb24p
KSwKLSAgICAgICAgICAgIEdQUkluZm86Om5vbkFyZ0dQUjApOwotICAgICAgICBqaXQuY2FsbChH
UFJJbmZvOjpub25BcmdHUFIwKTsKLSAgICAgICAgaml0LmVtaXRHZXRSZXR1cm5QQ0Zyb21DYWxs
RnJhbWVIZWFkZXJQdHIoR1BSSW5mbzo6cmVnVDEpOwotICAgICAgICBqaXQuZW1pdEdldENhbGxl
ckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7
Ci0gICAgICAgIGppdC5yZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihHUFJJbmZvOjpy
ZWdUMSk7Ci0gICAgICAgIGppdC5yZXQoKTsKKyAgICAgICAgRHVtcENvbnRleHQgZHVtcENvbnRl
eHQ7CisgICAgICAgIFN0cmluZ1ByaW50U3RyZWFtIG91dDsKKyAgICAgICAgTm9kZSogbGFzdE5v
ZGUgPSAwOworICAgICAgICBmb3IgKHNpemVfdCBibG9ja0luZGV4ID0gMDsgYmxvY2tJbmRleCA8
IGdyYXBoLm51bUJsb2NrcygpOyArK2Jsb2NrSW5kZXgpIHsKKyAgICAgICAgICAgIEJhc2ljQmxv
Y2sqIGJsb2NrID0gZ3JhcGguYmxvY2soYmxvY2tJbmRleCk7CisgICAgICAgICAgICBpZiAoIWJs
b2NrKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBncmFwaC5kdW1wQmxvY2tIZWFkZXIob3V0LCBwcmVmaXgsIGJsb2NrLCBHcmFwaDo6RHVtcExp
dmVQaGlzT25seSwgJmR1bXBDb250ZXh0KTsKKyAgICAgICAgICAgIGNvbXBpbGF0aW9uLT5hZGRE
ZXNjcmlwdGlvbihQcm9maWxlcjo6T3JpZ2luU3RhY2soKSwgb3V0LnRvQ1N0cmluZygpKTsKKyAg
ICAgICAgICAgIG91dC5yZXNldCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKHNp
emVfdCBub2RlSW5kZXggPSAwOyBub2RlSW5kZXggPCBibG9jay0+c2l6ZSgpOyArK25vZGVJbmRl
eCkgeworICAgICAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBibG9jay0+YXQobm9kZUluZGV4KTsK
KyAgICAgICAgICAgICAgICBpZiAoIW5vZGUtPndpbGxIYXZlQ29kZUdlbk9yT1NSKCkgJiYgIU9w
dGlvbnM6OnNob3dBbGxERkdOb2RlcygpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBQcm9maWxlcjo6T3JpZ2luU3RhY2sg
c3RhY2s7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKG5vZGUtPmNvZGVP
cmlnaW4uaXNTZXQoKSkgeworICAgICAgICAgICAgICAgICAgICBzdGFjayA9IFByb2ZpbGVyOjpP
cmlnaW5TdGFjaygKKyAgICAgICAgICAgICAgICAgICAgICAgICp2bS5tX3BlckJ5dGVjb2RlUHJv
ZmlsZXIsIGNvZGVCbG9jaywgbm9kZS0+Y29kZU9yaWdpbik7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChncmFwaC5kdW1wQ29kZU9yaWdp
bihvdXQsIHByZWZpeCwgbGFzdE5vZGUsIG5vZGUsICZkdW1wQ29udGV4dCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgY29tcGlsYXRpb24tPmFkZERlc2NyaXB0aW9uKHN0YWNrLCBvdXQudG9DU3Ry
aW5nKCkpOworICAgICAgICAgICAgICAgICAgICBvdXQucmVzZXQoKTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZ3JhcGguZHVtcChvdXQsIHBy
ZWZpeCwgbm9kZSwgJmR1bXBDb250ZXh0KTsKKyAgICAgICAgICAgICAgICBjb21waWxhdGlvbi0+
YWRkRGVzY3JpcHRpb24oc3RhY2ssIG91dC50b0NTdHJpbmcoKSk7CisgICAgICAgICAgICAgICAg
b3V0LnJlc2V0KCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKG5vZGUt
PmNvZGVPcmlnaW4uaXNTZXQoKSkKKyAgICAgICAgICAgICAgICAgICAgbGFzdE5vZGUgPSBub2Rl
OworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBzdGFja0NoZWNr
LmxpbmsoJmppdCk7Ci0gICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0
cihjb2RlQmxvY2spLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgICAgICBqaXQubW92ZShH
UFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAg
ICAgaml0LnN0b3JlMzIoCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihD
YWxsRnJhbWU6OkxvY2F0aW9uOjplbmNvZGVBc0J5dGVjb2RlT2Zmc2V0KDApKSwKLSAgICAgICAg
ICAgIENDYWxsSGVscGVyczo6dGFnRm9yKHN0YXRpY19jYXN0PFZpcnR1YWxSZWdpc3Rlcj4oSlNT
dGFjazo6QXJndW1lbnRDb3VudCkpKTsKLSAgICAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCAmc3RhdGUuZ3JhcGgubV92bS50b3BDYWxsRnJhbWUpOwotICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkNhbGwgY2FsbFN0YWNrQ2hlY2sgPSBqaXQuY2FsbCgpOwotI2lmICFB
U1NFUlRfRElTQUJMRUQKLSAgICAgICAgLy8gRklYTUU6IG5lZWQgdG8gbWFrZSB0aGlzIGNhbGwg
cmVnaXN0ZXIgd2l0aCBleGNlcHRpb24gaGFuZGxpbmcgc29tZWhvdy4gVGhpcyBpcwotICAgICAg
ICAvLyBwYXJ0IG9mIGEgYmlnZ2VyIHByb2JsZW06IEZUTCBzaG91bGQgYmUgYWJsZSB0byBoYW5k
bGUgZXhjZXB0aW9ucy4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMzYyMgotICAgICAgICAvLyBVbnRpbCB0aGVuLCB1c2UgYSBKSVQgQVNTRVJU
LgotICAgICAgICBqaXQubG9hZDY0KHN0YXRlLmdyYXBoLm1fdm0uYWRkcmVzc09mRXhjZXB0aW9u
KCksIEdQUkluZm86OnJlZ1QwKTsKLSAgICAgICAgaml0LmppdEFzc2VydElzTnVsbChHUFJJbmZv
OjpyZWdUMCk7Ci0jZW5kaWYKLSAgICAgICAgaml0Lmp1bXAoZnJvbVN0YWNrQ2hlY2spOworICAg
ICAgICBkdW1wQ29udGV4dC5kdW1wKG91dCwgcHJlZml4KTsKKyAgICAgICAgY29tcGlsYXRpb24t
PmFkZERlc2NyaXB0aW9uKFByb2ZpbGVyOjpPcmlnaW5TdGFjaygpLCBvdXQudG9DU3RyaW5nKCkp
OworICAgICAgICBvdXQucmVzZXQoKTsKICAgICAgICAgCi0gICAgICAgIGFyaXR5Q2hlY2sgPSBq
aXQubGFiZWwoKTsKLSAgICAgICAgY29tcGlsZUVudHJ5KGppdCk7CisgICAgICAgIG91dC5wcmlu
dCgiICAgIERpc2Fzc2VtYmx5OlxuIik7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBzdGF0ZS5qaXRDb2RlLT5oYW5kbGVzKCkuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlm
IChzdGF0ZS5jb2RlU2VjdGlvbk5hbWVzW2ldICE9ICJfX3RleHQiKQorICAgICAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgRXhlY3V0YWJsZU1lbW9y
eUhhbmRsZSogaGFuZGxlID0gc3RhdGUuaml0Q29kZS0+aGFuZGxlcygpW2ldLmdldCgpOworICAg
ICAgICAgICAgICAgIGRpc2Fzc2VtYmxlKAorICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIoaGFuZGxlLT5zdGFydCgpKSwgaGFuZGxlLT5zaXplSW5CeXRlcygpLAorICAg
ICAgICAgICAgICAgICAgICAiICAgICAgIiwgb3V0LCBMTFZNU3Vic2V0KTsKKyAgICAgICAgfQor
ICAgICAgICBjb21waWxhdGlvbi0+YWRkRGVzY3JpcHRpb24oUHJvZmlsZXI6Ok9yaWdpblN0YWNr
KCksIG91dC50b0NTdHJpbmcoKSk7CisgICAgICAgIG91dC5yZXNldCgpOworICAgICAgICAKKyAg
ICAgICAgc3RhdGUuaml0Q29kZS0+Y29tbW9uLmNvbXBpbGF0aW9uID0gY29tcGlsYXRpb247Cisg
ICAgfQorICAgIAorICAgIHN3aXRjaCAoZ3JhcGgubV9wbGFuLm1vZGUpIHsKKyAgICBjYXNlIEZU
TE1vZGU6IHsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBtYWluUGF0aEp1bXBzOwor
ICAgIAogICAgICAgICBqaXQubG9hZDMyKAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpwYXls
b2FkRm9yKHN0YXRpY19jYXN0PFZpcnR1YWxSZWdpc3Rlcj4oSlNTdGFjazo6QXJndW1lbnRDb3Vu
dCkpLAorICAgICAgICAgICAgZnJhbWUud2l0aE9mZnNldChzaXplb2YoUmVnaXN0ZXIpICogSlNT
dGFjazo6QXJndW1lbnRDb3VudCksCiAgICAgICAgICAgICBHUFJJbmZvOjpyZWdUMSk7Ci0gICAg
ICAgIGppdC5icmFuY2gzMigKKyAgICAgICAgbWFpblBhdGhKdW1wcy5hcHBlbmQoaml0LmJyYW5j
aDMyKAogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBYm92ZU9yRXF1YWwsIEdQUkluZm86OnJl
Z1QxLAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoY29kZUJsb2NrLT5u
dW1QYXJhbWV0ZXJzKCkpKQotICAgICAgICAgICAgLmxpbmtUbyhmcm9tQXJpdHlDaGVjaywgJmpp
dCk7CisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihjb2RlQmxvY2stPm51
bVBhcmFtZXRlcnMoKSkpKTsKKyAgICAgICAgaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAg
ICAgICAgIGppdC5tb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApOwogICAgICAgICBqaXQuc3RvcmUzMigKICAgICAgICAgICAgIENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbTMyKENhbGxGcmFtZTo6TG9jYXRpb246OmVuY29kZUFzQnl0ZWNvZGVPZmZz
ZXQoMCkpLAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjp0YWdGb3Ioc3RhdGljX2Nhc3Q8Vmly
dHVhbFJlZ2lzdGVyPihKU1N0YWNrOjpBcmd1bWVudENvdW50KSkpOwotICAgICAgICBqaXQuc3Rv
cmVQdHIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsICZzdGF0ZS5ncmFwaC5tX3ZtLnRvcENh
bGxGcmFtZSk7CisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OnRhZ0ZvcihKU1N0YWNrOjpBcmd1
bWVudENvdW50KSk7CisgICAgICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdp
c3RlciwgJnZtLnRvcENhbGxGcmFtZSk7CiAgICAgICAgIENDYWxsSGVscGVyczo6Q2FsbCBjYWxs
QXJpdHlDaGVjayA9IGppdC5jYWxsKCk7CiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgICAgICAv
LyBGSVhNRTogbmVlZCB0byBtYWtlIHRoaXMgY2FsbCByZWdpc3RlciB3aXRoIGV4Y2VwdGlvbiBo
YW5kbGluZyBzb21laG93LiBUaGlzIGlzCiAgICAgICAgIC8vIHBhcnQgb2YgYSBiaWdnZXIgcHJv
YmxlbTogRlRMIHNob3VsZCBiZSBhYmxlIHRvIGhhbmRsZSBleGNlcHRpb25zLgogICAgICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIyCiAgICAgICAg
IC8vIFVudGlsIHRoZW4sIHVzZSBhIEpJVCBBU1NFUlQuCi0gICAgICAgIGppdC5sb2FkNjQoc3Rh
dGUuZ3JhcGgubV92bS5hZGRyZXNzT2ZFeGNlcHRpb24oKSwgR1BSSW5mbzo6cmVnVDEpOworICAg
ICAgICBqaXQubG9hZDY0KHZtLmFkZHJlc3NPZkV4Y2VwdGlvbigpLCBHUFJJbmZvOjpyZWdUMSk7
CiAgICAgICAgIGppdC5qaXRBc3NlcnRJc051bGwoR1BSSW5mbzo6cmVnVDEpOwogI2VuZGlmCi0g
ICAgICAgIGlmIChHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiAhPSBHUFJJbmZvOjpyZWdUMCkKLSAg
ICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZWdU
MCk7Ci0gICAgICAgIGppdC5icmFuY2hUZXN0MzIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBHUFJJbmZv
OjpyZWdUMCkubGlua1RvKGZyb21Bcml0eUNoZWNrLCAmaml0KTsKKyAgICAgICAgaml0Lm1vdmUo
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgaml0LmVt
aXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisgICAgICAgIG1haW5QYXRoSnVtcHMuYXBwZW5kKGppdC5i
cmFuY2hUZXN0MzIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBHUFJJbmZvOjpyZWdUMCkpOworICAgICAg
ICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKKyAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tUHRyKHZtLmFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLT5yZXR1cm5Q
Q3NGb3Iodm0sIGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSksIEdQUkluZm86OnJlZ1Q1KTsK
KyAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgoR1BSSW5mbzo6cmVn
VDUsIEdQUkluZm86OnJlZ1QwLCBDQ2FsbEhlbHBlcnM6OnRpbWVzUHRyKCkpLCBHUFJJbmZvOjpy
ZWdUNSk7CiAgICAgICAgIENDYWxsSGVscGVyczo6Q2FsbCBjYWxsQXJpdHlGaXh1cCA9IGppdC5j
YWxsKCk7Ci0gICAgICAgIGppdC5qdW1wKGZyb21Bcml0eUNoZWNrKTsKLSAgICAgICAgCi0gICAg
ICAgIGxpbmtCdWZmZXIgPSBhZG9wdFB0cihuZXcgTGlua0J1ZmZlcihzdGF0ZS5ncmFwaC5tX3Zt
LCAmaml0LCBjb2RlQmxvY2ssIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQpKTsKLSAgICAgICAg
bGlua0J1ZmZlci0+bGluayhjYWxsU3RhY2tDaGVjaywgb3BlcmF0aW9uU3RhY2tDaGVjayk7Cisg
ICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOworICAgICAgICBtYWluUGF0aEp1bXBz
LmFwcGVuZChqaXQuanVtcCgpKTsKKworICAgICAgICBsaW5rQnVmZmVyID0gYWRvcHRQdHIobmV3
IExpbmtCdWZmZXIodm0sICZqaXQsIGNvZGVCbG9jaywgSklUQ29tcGlsYXRpb25NdXN0U3VjY2Vl
ZCkpOwogICAgICAgICBsaW5rQnVmZmVyLT5saW5rKGNhbGxBcml0eUNoZWNrLCBjb2RlQmxvY2st
Pm1faXNDb25zdHJ1Y3RvciA/IG9wZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2sgOiBvcGVyYXRp
b25DYWxsQXJpdHlDaGVjayk7Ci0gICAgICAgIGxpbmtCdWZmZXItPmxpbmsoY2FsbEFyaXR5Rml4
dXAsIEZ1bmN0aW9uUHRyKChzdGF0ZS5ncmFwaC5tX3ZtLmdldENUSVN0dWIoYXJpdHlGaXh1cCkp
LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSk7CisgICAgICAgIGxpbmtCdWZmZXItPmxpbmso
Y2FsbEFyaXR5Rml4dXAsIEZ1bmN0aW9uUHRyKCh2bS5nZXRDVElTdHViKGFyaXR5Rml4dXApKS5j
b2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOworICAgICAgICBsaW5rQnVmZmVyLT5saW5rKG1h
aW5QYXRoSnVtcHMsIENvZGVMb2NhdGlvbkxhYmVsKGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGUu
Z2VuZXJhdGVkRnVuY3Rpb24pKSk7CisKKyAgICAgICAgc3RhdGUuaml0Q29kZS0+aW5pdGlhbGl6
ZUFkZHJlc3NGb3JDYWxsKE1hY3JvQXNzZW1ibGVyQ29kZVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+
KHN0YXRlLmdlbmVyYXRlZEZ1bmN0aW9uKSkpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAg
ICAgIApAQCAtMTYwLDE4ICsxOTAsMTQgQEAgdm9pZCBsaW5rKFN0YXRlJiBzdGF0ZSkKICAgICAg
ICAgLy8gdmFsdWVzIGludG8gdGhlIHNjcmF0Y2ggYnVmZmVyLiBFdmVyeXRoaW5nIHNob3VsZCBi
ZSBnb29kIHRvIGdvIC0gYXQgdGhpcwogICAgICAgICAvLyBwb2ludCB3ZSd2ZSBldmVuIGRvbmUg
dGhlIHN0YWNrIGNoZWNrLiBCYXNpY2FsbHkgd2UganVzdCBoYXZlIHRvIG1ha2UgdGhlCiAgICAg
ICAgIC8vIGNhbGwgdG8gdGhlIExMVk0tZ2VuZXJhdGVkIGNvZGUuCi0gICAgICAgIGppdC5zZXR1
cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOwotICAgICAgICBqaXQubW92ZSgKLSAgICAgICAgICAgIEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihyZWludGVycHJldF9jYXN0PHZvaWQqPihzdGF0ZS5n
ZW5lcmF0ZWRGdW5jdGlvbikpLAotICAgICAgICAgICAgR1BSSW5mbzo6bm9uQXJnR1BSMCk7Ci0g
ICAgICAgIGppdC5jYWxsKEdQUkluZm86Om5vbkFyZ0dQUjApOwotICAgICAgICBqaXQuZW1pdEdl
dFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjpyZWdUMSk7Ci0gICAgICAg
IGppdC5lbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyKTsKLSAgICAgICAgaml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3Jl
UmV0dXJuKEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAgaml0LnJldCgpOworICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkxhYmVsIHN0YXJ0ID0gaml0LmxhYmVsKCk7CisgICAgICAgIGppdC5lbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOworICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbWFpblBhdGhKdW1w
ID0gaml0Lmp1bXAoKTsKICAgICAgICAgCi0gICAgICAgIGxpbmtCdWZmZXIgPSBhZG9wdFB0cihu
ZXcgTGlua0J1ZmZlcigKLSAgICAgICAgICAgIHN0YXRlLmdyYXBoLm1fdm0sICZqaXQsIGNvZGVC
bG9jaywgSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCkpOworICAgICAgICBsaW5rQnVmZmVyID0g
YWRvcHRQdHIobmV3IExpbmtCdWZmZXIodm0sICZqaXQsIGNvZGVCbG9jaywgSklUQ29tcGlsYXRp
b25NdXN0U3VjY2VlZCkpOworICAgICAgICBsaW5rQnVmZmVyLT5saW5rKG1haW5QYXRoSnVtcCwg
Q29kZUxvY2F0aW9uTGFiZWwoYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0ZS5nZW5lcmF0ZWRGdW5j
dGlvbikpKTsKKworICAgICAgICBzdGF0ZS5qaXRDb2RlLT5pbml0aWFsaXplQWRkcmVzc0ZvckNh
bGwobGlua0J1ZmZlci0+bG9jYXRpb25PZihzdGFydCkpOwogICAgICAgICBicmVhazsKICAgICB9
CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvTExWTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9M
TFZNLmNwcAppbmRleCBiZTJhNDBjN2RkYzg3OWE4MDg1ZDBiMzhiMWZkOThkMzZmN2YxMWQzLi5j
NTc5NjlkN2E3MmNlNjA0YmQ3ZTNkM2E0OTUzNzU4MTMwYjFmOTY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNiArMzIsNyBAQAog
I2luY2x1ZGUgIkRGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgiCiAjaW5jbHVkZSAiREZH
SW5QbGFjZUFic3RyYWN0U3RhdGUuaCIKICNpbmNsdWRlICJGVExBYnN0cmFjdEhlYXBSZXBvc2l0
b3J5LmgiCisjaW5jbHVkZSAiRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCIKICNpbmNsdWRlICJGVExG
b3JPU1JFbnRyeUpJVENvZGUuaCIKICNpbmNsdWRlICJGVExGb3JtYXR0ZWRWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkZUTElubGluZUNhY2hlU2l6ZS5oIgpAQCAtNTEsNiArNTIsMTAgQEAgdXNpbmcgbmFt
ZXNwYWNlIERGRzsKIAogc3RhdGljIHN0ZDo6YXRvbWljPGludD4gY29tcGlsZUNvdW50ZXI7CiAK
Ky8vIEZJWE1FOiBHZXQgcmlkIG9mIHRoaXMgYW5kIGludHJvZHVjZSBhIHJlYWwgc3RhY2sgY2hl
Y2suCisvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NjUwCitz
dGF0aWMgdWludHB0cl90IHN0YWNrTGltaXQ7CisKIC8vIFVzaW5nIHRoaXMgaW5zdGVhZCBvZiB0
eXBlQ2hlY2soKSBoZWxwcyB0byByZWR1Y2UgdGhlIGxvYWQgb24gTExWTSwgYnkgY3JlYXRpbmcK
IC8vIHNpZ25pZmljYW50bHkgbGVzcyBkZWFkIGNvZGUuCiAjZGVmaW5lIEZUTF9UWVBFX0NIRUNL
KGxvd1ZhbHVlLCBoaWdoVmFsdWUsIHR5cGVzUGFzc2VkVGhyb3VnaCwgZmFpbENvbmRpdGlvbikg
ZG8geyBcCkBAIC05MiwxOSArOTcsMjAgQEAgcHVibGljOgogICAgICAgICAgICAgbGx2bS0+TW9k
dWxlQ3JlYXRlV2l0aE5hbWVJbkNvbnRleHQobmFtZS5kYXRhKCksIG1fZnRsU3RhdGUuY29udGV4
dCk7CiAgICAgICAgIAogICAgICAgICBtX2Z0bFN0YXRlLmZ1bmN0aW9uID0gYWRkRnVuY3Rpb24o
Ci0gICAgICAgICAgICBtX2Z0bFN0YXRlLm1vZHVsZSwgbmFtZS5kYXRhKCksIGZ1bmN0aW9uVHlw
ZShtX291dC5pbnQ2NCwgbV9vdXQuaW50UHRyKSk7CisgICAgICAgICAgICBtX2Z0bFN0YXRlLm1v
ZHVsZSwgbmFtZS5kYXRhKCksIGZ1bmN0aW9uVHlwZShtX291dC5pbnQ2NCkpOwogICAgICAgICBz
ZXRGdW5jdGlvbkNhbGxpbmdDb252KG1fZnRsU3RhdGUuZnVuY3Rpb24sIExMVk1DQ2FsbENvbnYp
OworICAgICAgICBpZiAoaXNYODYoKSAmJiBPcHRpb25zOjpsbHZtRGlzYWxsb3dBVlgoKSkgewor
ICAgICAgICAgICAgLy8gQVZYIG1ha2VzIFY4L3JheXRyYWNlIDgwJSBzbG93ZXIuIEl0IG1ha2Vz
IEtyYWtlbi9hdWRpby1vc2NpbGxhdG9yIDQuNXgKKyAgICAgICAgICAgIC8vIHNsb3dlci4gSXQg
c2hvdWxkIGJlIGRpc2FibGVkLgorICAgICAgICAgICAgYWRkVGFyZ2V0RGVwZW5kZW50RnVuY3Rp
b25BdHRyKG1fZnRsU3RhdGUuZnVuY3Rpb24sICJ0YXJnZXQtZmVhdHVyZXMiLCAiLWF2eCIpOwor
ICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBtX291dC5pbml0aWFsaXplKG1fZnRsU3RhdGUu
bW9kdWxlLCBtX2Z0bFN0YXRlLmZ1bmN0aW9uLCBtX2hlYXBzKTsKICAgICAgICAgCi0gICAgICAg
IG1fcHJvbG9ndWUgPSBhcHBlbmRCYXNpY0Jsb2NrKG1fZnRsU3RhdGUuY29udGV4dCwgbV9mdGxT
dGF0ZS5mdW5jdGlvbik7Ci0gICAgICAgIG1fb3V0LmFwcGVuZFRvKG1fcHJvbG9ndWUpOwotICAg
ICAgICBjcmVhdGVQaGlWYXJpYWJsZXMoKTsKLSAgICAgICAgCi0gICAgICAgIG1fY2FsbEZyYW1l
ID0gbV9vdXQucGFyYW0oMCk7Ci0gICAgICAgIG1fdGFnVHlwZU51bWJlciA9IG1fb3V0LmNvbnN0
SW50NjQoVGFnVHlwZU51bWJlcik7Ci0gICAgICAgIG1fdGFnTWFzayA9IG1fb3V0LmNvbnN0SW50
NjQoVGFnTWFzayk7Ci0gICAgICAgIAorICAgICAgICBtX3Byb2xvZ3VlID0gRlRMX05FV19CTE9D
SyhtX291dCwgKCJQcm9sb2d1ZSIpKTsKKyAgICAgICAgTEJhc2ljQmxvY2sgc3RhY2tPdmVyZmxv
dyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiU3RhY2sgb3ZlcmZsb3ciKSk7CisgICAgICAgIG1f
aGFuZGxlRXhjZXB0aW9ucyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiSGFuZGxlIEV4Y2VwdGlv
bnMiKSk7CisKICAgICAgICAgZm9yIChCbG9ja0luZGV4IGJsb2NrSW5kZXggPSAwOyBibG9ja0lu
ZGV4IDwgbV9ncmFwaC5udW1CbG9ja3MoKTsgKytibG9ja0luZGV4KSB7CiAgICAgICAgICAgICBt
X2hpZ2hCbG9jayA9IG1fZ3JhcGguYmxvY2soYmxvY2tJbmRleCk7CiAgICAgICAgICAgICBpZiAo
IW1faGlnaEJsb2NrKQpAQCAtMTEyLDggKzExOCw0MiBAQCBwdWJsaWM6CiAgICAgICAgICAgICBt
X2Jsb2Nrcy5hZGQobV9oaWdoQmxvY2ssIEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQmxvY2sgIiwg
Km1faGlnaEJsb2NrKSkpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBtX291dC5hcHBl
bmRUbyhtX3Byb2xvZ3VlKTsKLSAgICAgICAgbV9vdXQuanVtcChsb3dCbG9jayhtX2dyYXBoLmJs
b2NrKDApKSk7CisgICAgICAgIG1fb3V0LmFwcGVuZFRvKG1fcHJvbG9ndWUsIHN0YWNrT3ZlcmZs
b3cpOworICAgICAgICBjcmVhdGVQaGlWYXJpYWJsZXMoKTsKKyAgICAgICAgTFZhbHVlIGNhcHR1
cmVkQWxsb2NhID0gbV9vdXQuYWxsb2NhKGFycmF5VHlwZShtX291dC5pbnQ2NCwgbV9ncmFwaC5t
X25leHRNYWNoaW5lTG9jYWwpKTsKKyAgICAgICAgbV9jYXB0dXJlZCA9IG1fb3V0LmFkZCgKKyAg
ICAgICAgICAgIG1fb3V0LnB0clRvSW50KGNhcHR1cmVkQWxsb2NhLCBtX291dC5pbnRQdHIpLAor
ICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIobV9ncmFwaC5tX25leHRNYWNoaW5lTG9jYWwg
KiBzaXplb2YoUmVnaXN0ZXIpKSk7OworICAgICAgICAKKyAgICAgICAgLy8gV2Ugc2hvdWxkIG5v
dCBjcmVhdGUgYW55IGFsbG9jYSdzIGFmdGVyIHRoaXMgcG9pbnQsIHNpbmNlIHRoZXkgd2lsbCBj
ZWFzZSB0bworICAgICAgICAvLyBiZSBtZW0ycmVnIGNhbmRpZGF0ZXMuCisgICAgICAgIAorICAg
ICAgICBtX2Z0bFN0YXRlLmNhcHR1cmVkU3RhY2ttYXBJRCA9IG1fc3RhY2ttYXBJRHMrKzsKKyAg
ICAgICAgbV9vdXQuY2FsbCgKKyAgICAgICAgICAgIG1fb3V0LnN0YWNrbWFwSW50cmluc2ljKCks
IG1fb3V0LmNvbnN0SW50NjQobV9mdGxTdGF0ZS5jYXB0dXJlZFN0YWNrbWFwSUQpLAorICAgICAg
ICAgICAgbV9vdXQuaW50MzJaZXJvLCBjYXB0dXJlZEFsbG9jYSk7CisgICAgICAgIAorICAgICAg
ICBtX2NhbGxGcmFtZSA9IG1fb3V0LnB0clRvSW50KAorICAgICAgICAgICAgbV9vdXQuY2FsbCht
X291dC5mcmFtZUFkZHJlc3NJbnRyaW5zaWMoKSwgbV9vdXQuaW50MzJaZXJvKSwgbV9vdXQuaW50
UHRyKTsKKyAgICAgICAgbV90YWdUeXBlTnVtYmVyID0gbV9vdXQuY29uc3RJbnQ2NChUYWdUeXBl
TnVtYmVyKTsKKyAgICAgICAgbV90YWdNYXNrID0gbV9vdXQuY29uc3RJbnQ2NChUYWdNYXNrKTsK
KyAgICAgICAgCisgICAgICAgIG1fb3V0LnN0b3JlUHRyKG1fb3V0LmNvbnN0SW50UHRyKGNvZGVC
bG9jaygpKSwgYWRkcmVzc0ZvcihKU1N0YWNrOjpDb2RlQmxvY2spKTsKKyAgICAgICAgbV9vdXQu
YnJhbmNoKAorICAgICAgICAgICAgbV9vdXQuYmVsb3cobV9jYWxsRnJhbWUsIG1fb3V0LmxvYWRQ
dHIobV9vdXQuYWJzb2x1dGUoJnN0YWNrTGltaXQpKSksCisgICAgICAgICAgICBzdGFja092ZXJm
bG93LCBsb3dCbG9jayhtX2dyYXBoLmJsb2NrKDApKSk7CisgICAgICAgIAorICAgICAgICBtX291
dC5hcHBlbmRUbyhzdGFja092ZXJmbG93LCBtX2hhbmRsZUV4Y2VwdGlvbnMpOworICAgICAgICAv
LyBGSVhNRTogRG8gYSByZWFsIHN0YWNrIGNoZWNrIGFuZCB0aHJvdyB0aGUgZXhjZXB0aW9uIGFw
cHJvcHJpYXRlbHkuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjU2NTAKKyAgICAgICAgbV9vdXQuY3Jhc2goKTsKKyAgICAgICAgCisgICAgICAg
IG1fb3V0LmFwcGVuZFRvKG1faGFuZGxlRXhjZXB0aW9ucywgbG93QmxvY2sobV9ncmFwaC5ibG9j
aygwKSkpOworICAgICAgICBtX2Z0bFN0YXRlLmhhbmRsZUV4Y2VwdGlvblN0YWNrbWFwSUQgPSBt
X3N0YWNrbWFwSURzKys7CisgICAgICAgIG1fb3V0LmNhbGwoCisgICAgICAgICAgICBtX291dC5z
dGFja21hcEludHJpbnNpYygpLCBtX291dC5jb25zdEludDY0KG1fZnRsU3RhdGUuaGFuZGxlRXhj
ZXB0aW9uU3RhY2ttYXBJRCksCisgICAgICAgICAgICBtX291dC5jb25zdEludDMyKE1hY3JvQXNz
ZW1ibGVyOjptYXhKdW1wUmVwbGFjZW1lbnRTaXplKCkpKTsKKyAgICAgICAgbV9vdXQudW5yZWFj
aGFibGUoKTsKICAgICAgICAgCiAgICAgICAgIFZlY3RvcjxCYXNpY0Jsb2NrKj4gZGVwdGhGaXJz
dDsKICAgICAgICAgbV9ncmFwaC5nZXRCbG9ja3NJbkRlcHRoRmlyc3RPcmRlcihkZXB0aEZpcnN0
KTsKQEAgLTIyNiw2ICsyNjYsOCBAQCBwcml2YXRlOgogICAgICAgICBpZiAodmVyYm9zZUNvbXBp
bGF0aW9uRW5hYmxlZCgpKQogICAgICAgICAgICAgZGF0YUxvZygiTG93ZXJpbmcgIiwgbV9ub2Rl
LCAiXG4iKTsKICAgICAgICAgCisgICAgICAgIG1fYXZhaWxhYmxlUmVjb3Zlcmllcy5yZXNpemUo
MCk7CisgICAgICAgIAogICAgICAgICBib29sIHNob3VsZEV4ZWN1dGVFZmZlY3RzID0gbV9pbnRl
cnByZXRlci5zdGFydEV4ZWN1dGluZyhtX25vZGUpOwogICAgICAgICAKICAgICAgICAgc3dpdGNo
IChtX25vZGUtPm9wKCkpIHsKQEAgLTI2NSwxOSArMzA3LDE3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICBjb21waWxlVmFsdWVBZGQoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEFyaXRoQWRkOgotICAgICAgICAgICAgY29tcGlsZUFkZFN1YigpOwotICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgQXJpdGhTdWI6Ci0gICAgICAgICAgICBjb21waWxlQWRkU3ViKCk7
CisgICAgICAgICAgICBjb21waWxlQXJpdGhBZGRPclN1YigpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQXJpdGhNdWw6CiAgICAgICAgICAgICBjb21waWxlQXJpdGhNdWwoKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRoRGl2OgotICAgICAgICAgICAg
Y29tcGlsZUFyaXRoRGl2TW9kKCk7CisgICAgICAgICAgICBjb21waWxlQXJpdGhEaXYoKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRoTW9kOgotICAgICAgICAgICAgY29t
cGlsZUFyaXRoRGl2TW9kKCk7CisgICAgICAgICAgICBjb21waWxlQXJpdGhNb2QoKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRoTWluOgogICAgICAgICBjYXNlIEFyaXRo
TWF4OgpAQCAtMjg2LDYgKzMyNiwxNSBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEFyaXRoQWJz
OgogICAgICAgICAgICAgY29tcGlsZUFyaXRoQWJzKCk7CiAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBBcml0aFNpbjoKKyAgICAgICAgICAgIGNvbXBpbGVBcml0aFNpbigpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQXJpdGhDb3M6CisgICAgICAgICAgICBjb21w
aWxlQXJpdGhDb3MoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFyaXRoU3Fy
dDoKKyAgICAgICAgICAgIGNvbXBpbGVBcml0aFNxcnQoKTsKKyAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIEFyaXRoTmVnYXRlOgogICAgICAgICAgICAgY29tcGlsZUFyaXRoTmVnYXRl
KCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTMyMiw2ICszNzEsOSBAQCBwcml2YXRlOgogICAg
ICAgICBjYXNlIENoZWNrRnVuY3Rpb246CiAgICAgICAgICAgICBjb21waWxlQ2hlY2tGdW5jdGlv
bigpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ2hlY2tFeGVjdXRhYmxlOgor
ICAgICAgICAgICAgY29tcGlsZUNoZWNrRXhlY3V0YWJsZSgpOworICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVyZToKICAgICAgICAgICAgIGNvbXBpbGVB
cnJheWlmeVRvU3RydWN0dXJlKCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTMzNCw2ICszODYs
NyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEdldEJ5SWQ6CiAgICAgICAgICAgICBjb21waWxl
R2V0QnlJZCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUHV0QnlJZERpcmVj
dDoKICAgICAgICAgY2FzZSBQdXRCeUlkOgogICAgICAgICAgICAgY29tcGlsZVB1dEJ5SWQoKTsK
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzcyLDkgKzQyNSwxOCBAQCBwcml2YXRlOgogICAgICAg
ICBjYXNlIE5ld0FycmF5QnVmZmVyOgogICAgICAgICAgICAgY29tcGlsZU5ld0FycmF5QnVmZmVy
KCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOZXdBcnJheVdpdGhTaXplOgor
ICAgICAgICAgICAgY29tcGlsZU5ld0FycmF5V2l0aFNpemUoKTsKKyAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAgICAgICAgICAgY29t
cGlsZUFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBUb1N0cmluZzoKKyAgICAgICAgICAgIGNvbXBpbGVUb1N0cmluZygpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWFrZVJvcGU6CisgICAgICAgICAgICBjb21waWxl
TWFrZVJvcGUoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFN0cmluZ0NoYXJB
dDoKICAgICAgICAgICAgIGNvbXBpbGVTdHJpbmdDaGFyQXQoKTsKICAgICAgICAgICAgIGJyZWFr
OwpAQCAtMzk2LDYgKzQ1OCwxMiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIE5vdGlmeVdyaXRl
OgogICAgICAgICAgICAgY29tcGlsZU5vdGlmeVdyaXRlKCk7CiAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBHZXRDYWxsZWU6CisgICAgICAgICAgICBjb21waWxlR2V0Q2FsbGVlKCk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHZXRTY29wZToKKyAgICAgICAgICAg
IGNvbXBpbGVHZXRTY29wZSgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR2V0
TXlTY29wZToKICAgICAgICAgICAgIGNvbXBpbGVHZXRNeVNjb3BlKCk7CiAgICAgICAgICAgICBi
cmVhazsKQEAgLTQ2Niw2ICs1MzQsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBJbnQ1MlRv
VmFsdWU6CiAgICAgICAgICAgICBjb21waWxlSW50NTJUb1ZhbHVlKCk7CiAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBDaGVja0FyZ3VtZW50c05vdENyZWF0ZWQ6CisgICAgICAgICAg
ICBjb21waWxlQ2hlY2tBcmd1bWVudHNOb3RDcmVhdGVkKCk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBDb3VudEV4ZWN1dGlvbjoKKyAgICAgICAgICAgIGNvbXBpbGVDb3VudEV4
ZWN1dGlvbigpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3RvcmVCYXJyaWVy
OgogICAgICAgICAgICAgY29tcGlsZVN0b3JlQmFycmllcigpOwogICAgICAgICAgICAgYnJlYWs7
CkBAIC00ODIsNiArNTU2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBWYXJpYWJsZVdhdGNo
cG9pbnQ6CiAgICAgICAgIGNhc2UgRnVuY3Rpb25SZWVudHJ5V2F0Y2hwb2ludDoKICAgICAgICAg
Y2FzZSBUeXBlZEFycmF5V2F0Y2hwb2ludDoKKyAgICAgICAgY2FzZSBBbGxvY2F0aW9uUHJvZmls
ZVdhdGNocG9pbnQ6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC04MTUsMjQgKzg5MCw1MyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKSwgbG93
SlNWYWx1ZShtX25vZGUtPmNoaWxkMigpKSkpOwogICAgIH0KICAgICAKLSAgICB2b2lkIGNvbXBp
bGVBZGRTdWIoKQorICAgIHZvaWQgY29tcGlsZUFyaXRoQWRkT3JTdWIoKQogICAgIHsKICAgICAg
ICAgYm9vbCBpc1N1YiA9ICBtX25vZGUtPm9wKCkgPT0gQXJpdGhTdWI7CiAgICAgICAgIHN3aXRj
aCAobV9ub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsKICAgICAgICAgY2FzZSBJbnQzMlVzZTogewog
ICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgICAgIExWYWx1ZSByaWdodCA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAg
ICAgICAgICAgTFZhbHVlIHJlc3VsdCA9IGlzU3ViID8gbV9vdXQuc3ViKGxlZnQsIHJpZ2h0KSA6
IG1fb3V0LmFkZChsZWZ0LCByaWdodCk7CiAKICAgICAgICAgICAgIGlmICghc2hvdWxkQ2hlY2tP
dmVyZmxvdyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgewotICAgICAgICAgICAgICAgIHNldEludDMy
KHJlc3VsdCk7CisgICAgICAgICAgICAgICAgc2V0SW50MzIoaXNTdWIgPyBtX291dC5zdWIobGVm
dCwgcmlnaHQpIDogbV9vdXQuYWRkKGxlZnQsIHJpZ2h0KSk7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIExWYWx1ZSBvdmVyZmxvdyA9IGlzU3Vi
ID8gbV9vdXQuc3ViV2l0aE92ZXJmbG93MzIobGVmdCwgcmlnaHQpIDogbV9vdXQuYWRkV2l0aE92
ZXJmbG93MzIobGVmdCwgcmlnaHQpOworICAgICAgICAgICAgTFZhbHVlIHJlc3VsdDsKKyAgICAg
ICAgICAgIGlmICghaXNTdWIpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC5hZGRX
aXRoT3ZlcmZsb3czMihsZWZ0LCByaWdodCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgaWYgKGRvZXNLaWxsKG1fbm9kZS0+Y2hpbGQyKCkpKSB7CisgICAgICAgICAgICAgICAg
ICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9ub2Rl
LT5jaGlsZDIoKSwgU3ViUmVjb3ZlcnksCisgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5l
eHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgbGVmdCwgVmFsdWVGb3JtYXRJbnQzMik7CisgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChkb2VzS2lsbChtX25vZGUtPmNoaWxkMSgpKSkgeworICAgICAg
ICAgICAgICAgICAgICBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG1fbm9kZS0+Y2hpbGQxKCksIFN1YlJlY292ZXJ5LAorICAgICAgICAgICAgICAgICAgICAg
ICAgbV9vdXQuZXh0cmFjdFZhbHVlKHJlc3VsdCwgMCksIHJpZ2h0LCBWYWx1ZUZvcm1hdEludDMy
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgIHJlc3VsdCA9IG1fb3V0LnN1YldpdGhPdmVyZmxvdzMyKGxlZnQsIHJpZ2h0KTsKKyAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZG9lc0tpbGwobV9ub2RlLT5jaGlsZDIo
KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzdWx0ID0gbGVmdCAtIHJpZ2h0CisgICAg
ICAgICAgICAgICAgICAgIC8vIHJlc3VsdCAtIGxlZnQgPSAtcmlnaHQKKyAgICAgICAgICAgICAg
ICAgICAgLy8gcmlnaHQgPSBsZWZ0IC0gcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIGFkZEF2
YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5jaGlsZDIo
KSwgU3ViUmVjb3ZlcnksCisgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0LCBtX291dC5leHRy
YWN0VmFsdWUocmVzdWx0LCAwKSwgVmFsdWVGb3JtYXRJbnQzMik7CisgICAgICAgICAgICAgICAg
fSBlbHNlIGlmIChkb2VzS2lsbChtX25vZGUtPmNoaWxkMSgpKSkgeworICAgICAgICAgICAgICAg
ICAgICAvLyByZXN1bHQgPSBsZWZ0IC0gcmlnaHQKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVz
dWx0ICsgcmlnaHQgPSBsZWZ0CisgICAgICAgICAgICAgICAgICAgIGFkZEF2YWlsYWJsZVJlY292
ZXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9ub2RlLT5jaGlsZDEoKSwgQWRkUmVjb3Zl
cnksCisgICAgICAgICAgICAgICAgICAgICAgICBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAw
KSwgcmlnaHQsIFZhbHVlRm9ybWF0SW50MzIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KIAotICAgICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93LCBub1ZhbHVlKCksIDAsIG1f
b3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvdywgMSkpOwotICAgICAgICAgICAgc2V0SW50MzIocmVz
dWx0KTsKKyAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291
dC5leHRyYWN0VmFsdWUocmVzdWx0LCAxKSk7CisgICAgICAgICAgICBzZXRJbnQzMihtX291dC5l
eHRyYWN0VmFsdWUocmVzdWx0LCAwKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICAgICAgCkBAIC04NDgsMTEgKzk1Miw0MSBAQCBwcml2YXRlOgogICAgICAgICAgICAg
CiAgICAgICAgICAgICBMVmFsdWUgbGVmdCA9IGxvd0ludDUyKG1fbm9kZS0+Y2hpbGQxKCkpOwog
ICAgICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SW50NTIobV9ub2RlLT5jaGlsZDIoKSk7Ci0g
ICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gaXNTdWIgPyBtX291dC5zdWIobGVmdCwgcmlnaHQp
IDogbV9vdXQuYWRkKGxlZnQsIHJpZ2h0KTsKIAotICAgICAgICAgICAgTFZhbHVlIG92ZXJmbG93
ID0gaXNTdWIgPyBtX291dC5zdWJXaXRoT3ZlcmZsb3c2NChsZWZ0LCByaWdodCkgOiBtX291dC5h
ZGRXaXRoT3ZlcmZsb3c2NChsZWZ0LCByaWdodCk7Ci0gICAgICAgICAgICBzcGVjdWxhdGUoSW50
NTJPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3csIDEp
KTsKLSAgICAgICAgICAgIHNldEludDUyKHJlc3VsdCk7CisgICAgICAgICAgICBMVmFsdWUgcmVz
dWx0OworICAgICAgICAgICAgaWYgKCFpc1N1YikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9
IG1fb3V0LmFkZFdpdGhPdmVyZmxvdzY0KGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICBpZiAoZG9lc0tpbGwobV9ub2RlLT5jaGlsZDIoKSkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgICAg
ICAgICBtX25vZGUtPmNoaWxkMigpLCBTdWJSZWNvdmVyeSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApLCBsZWZ0LCBWYWx1ZUZvcm1hdEludDUy
KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRvZXNLaWxsKG1fbm9kZS0+Y2hpbGQxKCkp
KSB7CisgICAgICAgICAgICAgICAgICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KAorICAgICAgICAg
ICAgICAgICAgICAgICAgbV9ub2RlLT5jaGlsZDEoKSwgU3ViUmVjb3ZlcnksCisgICAgICAgICAg
ICAgICAgICAgICAgICBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSwgcmlnaHQsIFZhbHVl
Rm9ybWF0SW50NTIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQuc3ViV2l0aE92ZXJmbG93NjQobGVmdCwgcmln
aHQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChkb2VzS2lsbChtX25v
ZGUtPmNoaWxkMigpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyByZXN1bHQgPSBsZWZ0IC0g
cmlnaHQKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzdWx0IC0gbGVmdCA9IC1yaWdodAorICAg
ICAgICAgICAgICAgICAgICAvLyByaWdodCA9IGxlZnQgLSByZXN1bHQKKyAgICAgICAgICAgICAg
ICAgICAgYWRkQXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgICAgICAgICBtX25v
ZGUtPmNoaWxkMigpLCBTdWJSZWNvdmVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQs
IG1fb3V0LmV4dHJhY3RWYWx1ZShyZXN1bHQsIDApLCBWYWx1ZUZvcm1hdEludDUyKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKGRvZXNLaWxsKG1fbm9kZS0+Y2hpbGQxKCkpKSB7CisgICAg
ICAgICAgICAgICAgICAgIC8vIHJlc3VsdCA9IGxlZnQgLSByaWdodAorICAgICAgICAgICAgICAg
ICAgICAvLyByZXN1bHQgKyByaWdodCA9IGxlZnQKKyAgICAgICAgICAgICAgICAgICAgYWRkQXZh
aWxhYmxlUmVjb3ZlcnkoCisgICAgICAgICAgICAgICAgICAgICAgICBtX25vZGUtPmNoaWxkMSgp
LCBBZGRSZWNvdmVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LmV4dHJhY3RWYWx1
ZShyZXN1bHQsIDApLCByaWdodCwgVmFsdWVGb3JtYXRJbnQ1Mik7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzcGVjdWxhdGUoSW50NTJPdmVyZmxvdywg
bm9WYWx1ZSgpLCAwLCBtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAxKSk7CisgICAgICAgICAg
ICBzZXRJbnQ1MihtX291dC5leHRyYWN0VmFsdWUocmVzdWx0LCAwKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC04NzYsMTEgKzEwMTAsMTUgQEAgcHJp
dmF0ZToKICAgICAgICAgY2FzZSBJbnQzMlVzZTogewogICAgICAgICAgICAgTFZhbHVlIGxlZnQg
PSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIExWYWx1ZSByaWdodCA9
IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAgICAgTFZhbHVlIHJlc3VsdCA9
IG1fb3V0Lm11bChsZWZ0LCByaWdodCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1
ZSByZXN1bHQ7CiAKLSAgICAgICAgICAgIGlmIChzaG91bGRDaGVja092ZXJmbG93KG1fbm9kZS0+
YXJpdGhNb2RlKCkpKSB7CisgICAgICAgICAgICBpZiAoIXNob3VsZENoZWNrT3ZlcmZsb3cobV9u
b2RlLT5hcml0aE1vZGUoKSkpCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQubXVsKGxl
ZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIExWYWx1ZSBv
dmVyZmxvd1Jlc3VsdCA9IG1fb3V0Lm11bFdpdGhPdmVyZmxvdzMyKGxlZnQsIHJpZ2h0KTsKICAg
ICAgICAgICAgICAgICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgbV9vdXQuZXh0
cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAxKSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0g
bV9vdXQuZXh0cmFjdFZhbHVlKG92ZXJmbG93UmVzdWx0LCAwKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9k
ZS0+YXJpdGhNb2RlKCkpKSB7CkBAIC05MDQsMTEgKzEwNDIsMTAgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIEludDUyS2luZCBraW5kOwogICAgICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dXaGlj
aGV2ZXJJbnQ1MihtX25vZGUtPmNoaWxkMSgpLCBraW5kKTsKICAgICAgICAgICAgIExWYWx1ZSBy
aWdodCA9IGxvd0ludDUyKG1fbm9kZS0+Y2hpbGQyKCksIG9wcG9zaXRlKGtpbmQpKTsKLSAgICAg
ICAgICAgIExWYWx1ZSByZXN1bHQgPSBtX291dC5tdWwobGVmdCwgcmlnaHQpOwotCiAKICAgICAg
ICAgICAgIExWYWx1ZSBvdmVyZmxvd1Jlc3VsdCA9IG1fb3V0Lm11bFdpdGhPdmVyZmxvdzY0KGxl
ZnQsIHJpZ2h0KTsKICAgICAgICAgICAgIHNwZWN1bGF0ZShJbnQ1Mk92ZXJmbG93LCBub1ZhbHVl
KCksIDAsIG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMSkpOworICAgICAgICAg
ICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LmV4dHJhY3RWYWx1ZShvdmVyZmxvd1Jlc3VsdCwgMCk7
CiAKICAgICAgICAgICAgIGlmIChzaG91bGRDaGVja05lZ2F0aXZlWmVybyhtX25vZGUtPmFyaXRo
TW9kZSgpKSkgewogICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dDYXNlID0gRlRMX05F
V19CTE9DSyhtX291dCwgKCJBcml0aE11bCBzbG93IGNhc2UiKSk7CkBAIC05MzksMTYgKzEwNzYs
MTYgQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgIH0KIAotICAgIHZvaWQgY29tcGlsZUFyaXRo
RGl2TW9kKCkKKyAgICB2b2lkIGNvbXBpbGVBcml0aERpdigpCiAgICAgewogICAgICAgICBzd2l0
Y2ggKG1fbm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CiAgICAgICAgIGNhc2UgSW50MzJVc2U6IHsK
ICAgICAgICAgICAgIExWYWx1ZSBudW1lcmF0b3IgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxkMSgp
KTsKICAgICAgICAgICAgIExWYWx1ZSBkZW5vbWluYXRvciA9IGxvd0ludDMyKG1fbm9kZS0+Y2hp
bGQyKCkpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBMQmFzaWNCbG9jayB1bnNhZmVEZW5v
bWluYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXZNb2QgdW5zYWZlIGRlbm9t
aW5hdG9yIikpOwotICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05F
V19CTE9DSyhtX291dCwgKCJBcml0aERpdk1vZCBjb250aW51YXRpb24iKSk7Ci0gICAgICAgICAg
ICBMQmFzaWNCbG9jayBkb25lID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdk1vZCBk
b25lIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgdW5zYWZlRGVub21pbmF0b3IgPSBGVExf
TkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2IHVuc2FmZSBkZW5vbWluYXRvciIpKTsKKyAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgi
QXJpdGhEaXYgY29udGludWF0aW9uIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgZG9uZSA9
IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXYgZG9uZSIpKTsKICAgICAgICAgICAgIAog
ICAgICAgICAgICAgVmVjdG9yPFZhbHVlRnJvbUJsb2NrLCAzPiByZXN1bHRzOwogICAgICAgICAg
ICAgCkBAIC05OTEsOCArMTEyOCw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBtX291dC5hcHBl
bmRUbyhjb250aW51YXRpb24sIGRvbmUpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAo
c2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKLSAgICAgICAg
ICAgICAgICBMQmFzaWNCbG9jayB6ZXJvTnVtZXJhdG9yID0gRlRMX05FV19CTE9DSyhtX291dCwg
KCJBcml0aERpdk1vZCB6ZXJvIG51bWVyYXRvciIpKTsKLSAgICAgICAgICAgICAgICBMQmFzaWNC
bG9jayBudW1lcmF0b3JDb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRo
RGl2TW9kIG51bWVyYXRvciBjb250aW51YXRpb24iKSk7CisgICAgICAgICAgICAgICAgTEJhc2lj
QmxvY2sgemVyb051bWVyYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXYgemVy
byBudW1lcmF0b3IiKSk7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbnVtZXJhdG9yQ29u
dGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdiBudW1lcmF0b3IgY29u
dGludWF0aW9uIikpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIG1fb3V0LmJy
YW5jaChtX291dC5pc1plcm8zMihudW1lcmF0b3IpLCB6ZXJvTnVtZXJhdG9yLCBudW1lcmF0b3JD
b250aW51YXRpb24pOwogICAgICAgICAgICAgICAgIApAQCAtMTAwNiwxNyArMTE0MywxNSBAQCBw
cml2YXRlOgogICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG51bWVyYXRvckNvbnRpbnVh
dGlvbiwgaW5uZXJMYXN0TmV4dCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIExWYWx1ZSBkaXZNb2RSZXN1bHQgPSBtX25vZGUtPm9wKCkgPT0gQXJpdGhEaXYKLSAg
ICAgICAgICAgICAgICA/IG1fb3V0LmRpdihudW1lcmF0b3IsIGRlbm9taW5hdG9yKQotICAgICAg
ICAgICAgICAgIDogbV9vdXQucmVtKG51bWVyYXRvciwgZGVub21pbmF0b3IpOworICAgICAgICAg
ICAgTFZhbHVlIHJlc3VsdCA9IG1fb3V0LmRpdihudW1lcmF0b3IsIGRlbm9taW5hdG9yKTsKICAg
ICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrT3ZlcmZsb3cobV9ub2RlLT5h
cml0aE1vZGUoKSkpIHsKICAgICAgICAgICAgICAgICBzcGVjdWxhdGUoCiAgICAgICAgICAgICAg
ICAgICAgIE92ZXJmbG93LCBub1ZhbHVlKCksIDAsCi0gICAgICAgICAgICAgICAgICAgIG1fb3V0
Lm5vdEVxdWFsKG1fb3V0Lm11bChkaXZNb2RSZXN1bHQsIGRlbm9taW5hdG9yKSwgbnVtZXJhdG9y
KSk7CisgICAgICAgICAgICAgICAgICAgIG1fb3V0Lm5vdEVxdWFsKG1fb3V0Lm11bChyZXN1bHQs
IGRlbm9taW5hdG9yKSwgbnVtZXJhdG9yKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAK
LSAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihkaXZNb2RSZXN1bHQpKTsK
KyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihyZXN1bHQpKTsKICAgICAg
ICAgICAgIG1fb3V0Lmp1bXAoZG9uZSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKGRvbmUsIGxhc3ROZXh0KTsKQEAgLTEwMjYsOSArMTE2MSw4IEBAIHByaXZhdGU6
CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNlIE51bWJlclVzZTogewotICAg
ICAgICAgICAgTFZhbHVlIEMxID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAgICAg
ICAgICAgTFZhbHVlIEMyID0gbG93RG91YmxlKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICAg
ICAgc2V0RG91YmxlKG1fbm9kZS0+b3AoKSA9PSBBcml0aERpdiA/IG1fb3V0LmRvdWJsZURpdihD
MSwgQzIpIDogbV9vdXQuZG91YmxlUmVtKEMxLCBDMikpOworICAgICAgICAgICAgc2V0RG91Ymxl
KG1fb3V0LmRvdWJsZURpdigKKyAgICAgICAgICAgICAgICBsb3dEb3VibGUobV9ub2RlLT5jaGls
ZDEoKSksIGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMigpKSkpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtMTAzOCw2ICsxMTcyLDk5IEBAIHByaXZhdGU6
CiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgdm9pZCBjb21waWxlQXJpdGhNb2QoKQorICAg
IHsKKyAgICAgICAgc3dpdGNoIChtX25vZGUtPmJpbmFyeVVzZUtpbmQoKSkgeworICAgICAgICBj
YXNlIEludDMyVXNlOiB7CisgICAgICAgICAgICBMVmFsdWUgbnVtZXJhdG9yID0gbG93SW50MzIo
bV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBMVmFsdWUgZGVub21pbmF0b3IgPSBsb3dJ
bnQzMihtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTEJhc2lj
QmxvY2sgdW5zYWZlRGVub21pbmF0b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9k
IHVuc2FmZSBkZW5vbWluYXRvciIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVh
dGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgY29udGludWF0aW9uIikpOwor
ICAgICAgICAgICAgTEJhc2ljQmxvY2sgZG9uZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJp
dGhNb2QgZG9uZSIpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVmVjdG9yPFZhbHVlRnJv
bUJsb2NrLCAzPiByZXN1bHRzOworICAgICAgICAgICAgCisgICAgICAgICAgICBMVmFsdWUgYWRq
dXN0ZWREZW5vbWluYXRvciA9IG1fb3V0LmFkZChkZW5vbWluYXRvciwgbV9vdXQuaW50MzJPbmUp
OworICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQuYWJvdmUoYWRq
dXN0ZWREZW5vbWluYXRvciwgbV9vdXQuaW50MzJPbmUpLCBjb250aW51YXRpb24sIHVuc2FmZURl
bm9taW5hdG9yKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5l
eHQgPSBtX291dC5hcHBlbmRUbyh1bnNhZmVEZW5vbWluYXRvciwgY29udGludWF0aW9uKTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVlIG5lZzJUb1RoZTMxID0gbV9vdXQuY29uc3RJ
bnQzMigtMjE0NzQ4MzY0Ny0xKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gRklYTUU6
IC0yXjMxIC8gLTEgd2lsbCBhY3R1YWxseSB5aWVsZCBuZWdhdGl2ZSB6ZXJvLCBzbyB3ZSBjb3Vs
ZCBoYXZlIGEKKyAgICAgICAgICAgIC8vIHNlcGFyYXRlIGNhc2UgZm9yIHRoYXQuIEJ1dCBpdCBw
cm9iYWJseSBkb2Vzbid0IG1hdHRlciBzbyBtdWNoLgorICAgICAgICAgICAgaWYgKHNob3VsZENo
ZWNrT3ZlcmZsb3cobV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKKyAgICAgICAgICAgICAgICBMVmFs
dWUgY29uZCA9IG1fb3V0LmJpdE9yKG1fb3V0LmlzWmVybzMyKGRlbm9taW5hdG9yKSwgbV9vdXQu
ZXF1YWwobnVtZXJhdG9yLCBuZWcyVG9UaGUzMSkpOworICAgICAgICAgICAgICAgIHNwZWN1bGF0
ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBjb25kKTsKKyAgICAgICAgICAgICAgICBtX291dC5q
dW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IC8vIFRoaXMgaXMgdGhlIGNhc2Ugd2hlcmUgd2UgY29udmVydCB0aGUgcmVzdWx0IHRvIGFuIGlu
dCBhZnRlciB3ZSdyZSBkb25lLiBTbywKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZGVub21p
bmF0b3IgaXMgemVybywgdGhlbiB0aGUgcmVzdWx0IHNob3VsZCBiZSByZXN1bHQgc2hvdWxkIGJl
IHplcm8uCisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGRlbm9taW5hdG9yIGlzIG5vdCB6ZXJv
IChpLmUuIGl0J3MgLTEgYmVjYXVzZSB3ZSdyZSBndWFyZGVkIGJ5IHRoZQorICAgICAgICAgICAg
ICAgIC8vIGNoZWNrIGFib3ZlKSBhbmQgdGhlIG51bWVyYXRvciBpcyAtMl4zMSB0aGVuIHRoZSBy
ZXN1bHQgc2hvdWxkIGJlIC0yXjMxLgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IExCYXNpY0Jsb2NrIG1vZEJ5WmVybyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2Qg
bW9kdWxvIGJ5IHplcm8iKSk7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbm90TW9kQnla
ZXJvID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCBub3QgbW9kdWxvIGJ5IHplcm8i
KSk7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbmVnMlRvVGhlMzFCeU5lZzEgPSBGVExf
TkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIC0yXjMxLy0xIikpOworICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc1plcm8zMihkZW5vbWluYXRv
ciksIG1vZEJ5WmVybywgbm90TW9kQnlaZXJvKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICBtX291dC5hcHBlbmRUbyhtb2RCeVplcm8sIG5vdE1vZEJ5WmVybyk7CisgICAgICAg
ICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKG1fb3V0LmludDMyWmVybykpOwor
ICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoZG9uZSk7CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obm90TW9kQnlaZXJvLCBuZWcyVG9UaGUzMUJ5TmVn
MSk7CisgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0LmVxdWFsKG51bWVyYXRvciwg
bmVnMlRvVGhlMzEpLCBuZWcyVG9UaGUzMUJ5TmVnMSwgY29udGludWF0aW9uKTsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhuZWcyVG9UaGUzMUJ5TmVn
MSwgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5h
bmNob3IobV9vdXQuaW50MzJaZXJvKSk7CisgICAgICAgICAgICAgICAgbV9vdXQuanVtcChkb25l
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5k
VG8oY29udGludWF0aW9uLCBkb25lKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTFZhbHVl
IHJlbWFpbmRlciA9IG1fb3V0LnJlbShudW1lcmF0b3IsIGRlbm9taW5hdG9yKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJp
dGhNb2RlKCkpKSB7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbmVnYXRpdmVOdW1lcmF0
b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIG5lZ2F0aXZlIG51bWVyYXRvciIp
KTsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBudW1lcmF0b3JDb250aW51YXRpb24gPSBG
VExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIG51bWVyYXRvciBjb250aW51YXRpb24iKSk7
CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAg
ICAgICAgICAgICAgICBtX291dC5sZXNzVGhhbihudW1lcmF0b3IsIG1fb3V0LmludDMyWmVybyks
CisgICAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlTnVtZXJhdG9yLCBudW1lcmF0b3JDb250aW51
YXRpb24pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGlu
bmVyTGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhuZWdhdGl2ZU51bWVyYXRvciwgbnVtZXJhdG9y
Q29udGludWF0aW9uKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzcGVjdWxh
dGUoTmVnYXRpdmVaZXJvLCBub1ZhbHVlKCksIDAsIG1fb3V0LmlzWmVybzMyKHJlbWFpbmRlcikp
OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAobnVtZXJhdG9y
Q29udGludWF0aW9uKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5h
cHBlbmRUbyhudW1lcmF0b3JDb250aW51YXRpb24sIGlubmVyTGFzdE5leHQpOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNo
b3IocmVtYWluZGVyKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKGRvbmUpOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhkb25lLCBsYXN0TmV4dCk7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIHNldEludDMyKG1fb3V0LnBoaShtX291dC5pbnQzMiwgcmVzdWx0
cykpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAg
ICBjYXNlIE51bWJlclVzZTogeworICAgICAgICAgICAgc2V0RG91YmxlKAorICAgICAgICAgICAg
ICAgIG1fb3V0LmRvdWJsZVJlbShsb3dEb3VibGUobV9ub2RlLT5jaGlsZDEoKSksIGxvd0RvdWJs
ZShtX25vZGUtPmNoaWxkMigpKSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgICAgIAorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCiAg
ICAgdm9pZCBjb21waWxlQXJpdGhNaW5Pck1heCgpCiAgICAgewogICAgICAgICBzd2l0Y2ggKG1f
bm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CkBAIC0xMTE0LDYgKzEzNDEsMTIgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQorCisgICAgdm9pZCBjb21waWxl
QXJpdGhTaW4oKSB7IHNldERvdWJsZShtX291dC5kb3VibGVTaW4obG93RG91YmxlKG1fbm9kZS0+
Y2hpbGQxKCkpKSk7IH0KKworICAgIHZvaWQgY29tcGlsZUFyaXRoQ29zKCkgeyBzZXREb3VibGUo
bV9vdXQuZG91YmxlQ29zKGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKSkpOyB9CisKKyAgICB2
b2lkIGNvbXBpbGVBcml0aFNxcnQoKSB7IHNldERvdWJsZShtX291dC5kb3VibGVTcXJ0KGxvd0Rv
dWJsZShtX25vZGUtPmNoaWxkMSgpKSkpOyB9CiAgICAgCiAgICAgdm9pZCBjb21waWxlQXJpdGhO
ZWdhdGUoKQogICAgIHsKQEAgLTExMjEsMTYgKzEzNTQsMTggQEAgcHJpdmF0ZToKICAgICAgICAg
Y2FzZSBJbnQzMlVzZTogewogICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93SW50MzIobV9u
b2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIExWYWx1ZSByZXN1bHQg
PSBtX291dC5uZWcodmFsdWUpOwotICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrT3ZlcmZsb3co
bV9ub2RlLT5hcml0aE1vZGUoKSkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXNob3VsZENoZWNr
TmVnYXRpdmVaZXJvKG1fbm9kZS0+YXJpdGhNb2RlKCkpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IC8vIFdlIGRvbid0IGhhdmUgYSBuZWdhdGUtd2l0aC1vdmVyZmxvdyBpbnRyaW5zaWMuIEhvcGVm
dWxseSB0aGlzCi0gICAgICAgICAgICAgICAgICAgIC8vIGRvZXMgdGhlIHRyaWNrLCB0aG91Z2gu
Ci0gICAgICAgICAgICAgICAgICAgIExWYWx1ZSBvdmVyZmxvd1Jlc3VsdCA9IG1fb3V0LnN1Yldp
dGhPdmVyZmxvdzMyKG1fb3V0LmludDMyWmVybywgdmFsdWUpOwotICAgICAgICAgICAgICAgICAg
ICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgbV9vdXQuZXh0cmFjdFZhbHVlKG92
ZXJmbG93UmVzdWx0LCAxKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAg
ICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAwLCBtX291dC50ZXN0SXNaZXJv
MzIodmFsdWUsIG1fb3V0LmNvbnN0SW50MzIoMHg3ZmZmZmZmZikpKTsKLQorICAgICAgICAgICAg
TFZhbHVlIHJlc3VsdDsKKyAgICAgICAgICAgIGlmICghc2hvdWxkQ2hlY2tPdmVyZmxvdyhtX25v
ZGUtPmFyaXRoTW9kZSgpKSkKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX291dC5uZWcodmFs
dWUpOworICAgICAgICAgICAgZWxzZSBpZiAoIXNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG1fbm9k
ZS0+YXJpdGhNb2RlKCkpKSB7CisgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGF2ZSBhIG5l
Z2F0ZS13aXRoLW92ZXJmbG93IGludHJpbnNpYy4gSG9wZWZ1bGx5IHRoaXMKKyAgICAgICAgICAg
ICAgICAvLyBkb2VzIHRoZSB0cmljaywgdGhvdWdoLgorICAgICAgICAgICAgICAgIExWYWx1ZSBv
dmVyZmxvd1Jlc3VsdCA9IG1fb3V0LnN1YldpdGhPdmVyZmxvdzMyKG1fb3V0LmludDMyWmVybywg
dmFsdWUpOworICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShPdmVyZmxvdywgbm9WYWx1ZSgpLCAw
LCBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDEpKTsKKyAgICAgICAgICAgICAg
ICByZXN1bHQgPSBtX291dC5leHRyYWN0VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDApOworICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzcGVjdWxhdGUoT3ZlcmZsb3csIG5vVmFs
dWUoKSwgMCwgbV9vdXQudGVzdElzWmVybzMyKHZhbHVlLCBtX291dC5jb25zdEludDMyKDB4N2Zm
ZmZmZmYpKSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9vdXQubmVnKHZhbHVlKTsKICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgc2V0SW50MzIocmVzdWx0KTsKQEAgLTExNTEsNyAr
MTM4Niw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBMVmFsdWUgdmFsdWUgPSBsb3dJbnQ1Miht
X25vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIExWYWx1ZSBvdmVyZmxvd1Jlc3VsdCA9IG1f
b3V0LnN1YldpdGhPdmVyZmxvdzY0KG1fb3V0LmludDY0WmVybywgdmFsdWUpOwogICAgICAgICAg
ICAgc3BlY3VsYXRlKEludDUyT3ZlcmZsb3csIG5vVmFsdWUoKSwgMCwgbV9vdXQuZXh0cmFjdFZh
bHVlKG92ZXJmbG93UmVzdWx0LCAxKSk7Ci0gICAgICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9v
dXQubmVnKHZhbHVlKTsKKyAgICAgICAgICAgIExWYWx1ZSByZXN1bHQgPSBtX291dC5leHRyYWN0
VmFsdWUob3ZlcmZsb3dSZXN1bHQsIDApOwogICAgICAgICAgICAgc3BlY3VsYXRlKE5lZ2F0aXZl
WmVybywgbm9WYWx1ZSgpLCAwLCBtX291dC5pc1plcm82NChyZXN1bHQpKTsKICAgICAgICAgICAg
IHNldEludDUyKHJlc3VsdCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTEyNzUsNiArMTUxMCwx
NyBAQCBwcml2YXRlOgogICAgICAgICAgICAgbV9vdXQubm90RXF1YWwoY2VsbCwgd2Vha1BvaW50
ZXIobV9ub2RlLT5mdW5jdGlvbigpKSkpOwogICAgIH0KICAgICAKKyAgICB2b2lkIGNvbXBpbGVD
aGVja0V4ZWN1dGFibGUoKQorICAgIHsKKyAgICAgICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxsKG1f
bm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAKKyAgICAgICAgc3BlY3VsYXRlKAorICAgICAgICAg
ICAgQmFkRXhlY3V0YWJsZSwganNWYWx1ZVZhbHVlKGNlbGwpLCBtX25vZGUtPmNoaWxkMSgpLm5v
ZGUoKSwKKyAgICAgICAgICAgIG1fb3V0Lm5vdEVxdWFsKAorICAgICAgICAgICAgICAgIG1fb3V0
LmxvYWRQdHIoY2VsbCwgbV9oZWFwcy5KU0Z1bmN0aW9uX2V4ZWN1dGFibGUpLAorICAgICAgICAg
ICAgICAgIHdlYWtQb2ludGVyKG1fbm9kZS0+ZXhlY3V0YWJsZSgpKSkpOworICAgIH0KKyAgICAK
ICAgICB2b2lkIGNvbXBpbGVBcnJheWlmeVRvU3RydWN0dXJlKCkKICAgICB7CiAgICAgICAgIExW
YWx1ZSBjZWxsID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKQEAgLTEzNzAsOCArMTYxNiw4
IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICBMVmFsdWUgY2FsbCA9IG1fb3V0LmNhbGwo
CiAgICAgICAgICAgICBtX291dC5wYXRjaHBvaW50SW50NjRJbnRyaW5zaWMoKSwKLSAgICAgICAg
ICAgIG1fb3V0LmNvbnN0SW50MzIoc3RhY2ttYXBJRCksIG1fb3V0LmNvbnN0SW50MzIoc2l6ZU9m
R2V0QnlJZCgpKSwKLSAgICAgICAgICAgIGNvbnN0TnVsbChtX291dC5yZWY4KSwgbV9vdXQuY29u
c3RJbnQzMigyKSwgbV9jYWxsRnJhbWUsIGJhc2UpOworICAgICAgICAgICAgbV9vdXQuY29uc3RJ
bnQ2NChzdGFja21hcElEKSwgbV9vdXQuY29uc3RJbnQzMihzaXplT2ZHZXRCeUlkKCkpLAorICAg
ICAgICAgICAgY29uc3ROdWxsKG1fb3V0LnJlZjgpLCBtX291dC5jb25zdEludDMyKDEpLCBiYXNl
KTsKICAgICAgICAgc2V0SW5zdHJ1Y3Rpb25DYWxsaW5nQ29udmVudGlvbihjYWxsLCBMTFZNQW55
UmVnQ2FsbENvbnYpOwogICAgICAgICBzZXRKU1ZhbHVlKGNhbGwpOwogICAgICAgICAKQEAgLTEz
OTUsOCArMTY0MSw4IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICBMVmFsdWUgY2FsbCA9
IG1fb3V0LmNhbGwoCiAgICAgICAgICAgICBtX291dC5wYXRjaHBvaW50Vm9pZEludHJpbnNpYygp
LAotICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihzdGFja21hcElEKSwgbV9vdXQuY29uc3RJ
bnQzMihzaXplT2ZQdXRCeUlkKCkpLAotICAgICAgICAgICAgY29uc3ROdWxsKG1fb3V0LnJlZjgp
LCBtX291dC5jb25zdEludDMyKDMpLCBtX2NhbGxGcmFtZSwgYmFzZSwgdmFsdWUpOworICAgICAg
ICAgICAgbV9vdXQuY29uc3RJbnQ2NChzdGFja21hcElEKSwgbV9vdXQuY29uc3RJbnQzMihzaXpl
T2ZQdXRCeUlkKCkpLAorICAgICAgICAgICAgY29uc3ROdWxsKG1fb3V0LnJlZjgpLCBtX291dC5j
b25zdEludDMyKDIpLCBiYXNlLCB2YWx1ZSk7CiAgICAgICAgIHNldEluc3RydWN0aW9uQ2FsbGlu
Z0NvbnZlbnRpb24oY2FsbCwgTExWTUFueVJlZ0NhbGxDb252KTsKICAgICAgICAgCiAgICAgICAg
IG1fZnRsU3RhdGUucHV0QnlJZHMuYXBwZW5kKFB1dEJ5SWREZXNjcmlwdG9yKApAQCAtMTQ2Mywy
MCArMTcwOSwyMCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjoKICAgICAg
ICAgY2FzZSBBcnJheTo6RG91YmxlOgogICAgICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOiB7
Ci0gICAgICAgICAgICBzZXRJbnQzMihtX291dC5sb2FkMzIobG93U3RvcmFnZShtX25vZGUtPmNo
aWxkMigpKSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKSk7CisgICAgICAgICAgICBz
ZXRJbnQzMihtX291dC5sb2FkMzJOb25OZWdhdGl2ZShsb3dTdG9yYWdlKG1fbm9kZS0+Y2hpbGQy
KCkpLCBtX2hlYXBzLkJ1dHRlcmZseV9wdWJsaWNMZW5ndGgpKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXJyYXk6OlN0cmluZzog
ewogICAgICAgICAgICAgTFZhbHVlIHN0cmluZyA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7
Ci0gICAgICAgICAgICBzZXRJbnQzMihtX291dC5sb2FkMzIoc3RyaW5nLCBtX2hlYXBzLkpTU3Ry
aW5nX2xlbmd0aCkpOworICAgICAgICAgICAgc2V0SW50MzIobV9vdXQubG9hZDMyTm9uTmVnYXRp
dmUoc3RyaW5nLCBtX2hlYXBzLkpTU3RyaW5nX2xlbmd0aCkpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
IGlmIChpc1R5cGVkVmlldyhtX25vZGUtPmFycmF5TW9kZSgpLnR5cGVkQXJyYXlUeXBlKCkpKSB7
CiAgICAgICAgICAgICAgICAgc2V0SW50MzIoCi0gICAgICAgICAgICAgICAgICAgIG1fb3V0Lmxv
YWQzMihsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpLCBtX2hlYXBzLkpTQXJyYXlCdWZmZXJWaWV3
X2xlbmd0aCkpOworICAgICAgICAgICAgICAgICAgICBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShs
b3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpLCBtX2hlYXBzLkpTQXJyYXlCdWZmZXJWaWV3X2xlbmd0
aCkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IApAQCAtMTUxOCw3ICsxNzY0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgIG1fb3V0LmFib3ZlT3JFcXVhbCgKLSAg
ICAgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMihzdG9yYWdlLCBtX2hlYXBzLkJ1
dHRlcmZseV9wdWJsaWNMZW5ndGgpKSwKKyAgICAgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0
LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0
aCkpLAogICAgICAgICAgICAgICAgIHNsb3dDYXNlLCBmYXN0Q2FzZSk7CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oZmFzdENh
c2UsIHNsb3dDYXNlKTsKQEAgLTE1NjUsNyArMTgxMSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgICAgICBtX291dC5hYm92
ZU9yRXF1YWwoCi0gICAgICAgICAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2FkMzIoc3RvcmFn
ZSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKSksCisgICAgICAgICAgICAgICAgICAg
IGluZGV4LCBtX291dC5sb2FkMzJOb25OZWdhdGl2ZShzdG9yYWdlLCBtX2hlYXBzLkJ1dHRlcmZs
eV9wdWJsaWNMZW5ndGgpKSwKICAgICAgICAgICAgICAgICBzbG93Q2FzZSwgaW5Cb3VuZHMpOwog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFw
cGVuZFRvKGluQm91bmRzLCBib3hQYXRoKTsKQEAgLTE2ODcsNiArMTkzMyw3IEBAIHByaXZhdGU6
CiAgICAgICAgIEVkZ2UgY2hpbGQyID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDEpOwog
ICAgICAgICBFZGdlIGNoaWxkMyA9IG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAyKTsKICAg
ICAgICAgRWRnZSBjaGlsZDQgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMyk7CisgICAg
ICAgIEVkZ2UgY2hpbGQ1ID0gbV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDQpOwogICAgICAg
ICAKICAgICAgICAgc3dpdGNoIChtX25vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgewogICAgICAg
ICBjYXNlIEFycmF5OjpHZW5lcmljOiB7CkBAIC0xODAxLDYgKzIwNDgsOSBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0Lnplcm9FeHQoaW5kZXgsIG1fb3V0Lmlu
dFB0ciksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnRQdHIobG9n
RWxlbWVudFNpemUodHlwZSkpKSkpOwogICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IExUeXBlIHJlZlR5cGU7CisgICAgICAgICAgICAgICAgTFZhbHVlIHZhbHVlVG9TdG9yZTsKKyAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAoaXNJbnQodHlwZSkpIHsKICAgICAg
ICAgICAgICAgICAgICAgTFZhbHVlIGludFZhbHVlOwogICAgICAgICAgICAgICAgICAgICBzd2l0
Y2ggKGNoaWxkMy51c2VLaW5kKCkpIHsKQEAgLTE4NzYsMzQgKzIxMjYsNTMgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZWxlbWVu
dFNpemUodHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAg
ICAgICAgICAgICAgbV9vdXQuc3RvcmU4KG1fb3V0LmludENhc3QoaW50VmFsdWUsIG1fb3V0Lmlu
dDgpLCBwb2ludGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlVG9TdG9yZSA9IG1f
b3V0LmludENhc3QoaW50VmFsdWUsIG1fb3V0LmludDgpOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmVmVHlwZSA9IG1fb3V0LnJlZjg7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgotICAgICAgICAgICAgICAgICAgICAgICAgbV9v
dXQuc3RvcmUxNihtX291dC5pbnRDYXN0KGludFZhbHVlLCBtX291dC5pbnQxNiksIHBvaW50ZXIp
OworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVUb1N0b3JlID0gbV9vdXQuaW50Q2FzdChp
bnRWYWx1ZSwgbV9vdXQuaW50MTYpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVmVHlwZSA9
IG1fb3V0LnJlZjE2OwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAgICAgICAgIGNhc2UgNDoKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlMzIo
aW50VmFsdWUsIHBvaW50ZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVUb1N0b3Jl
ID0gaW50VmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICByZWZUeXBlID0gbV9vdXQucmVm
MzI7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgLyog
IWlzSW50KHR5cGUpICovIHsKKyAgICAgICAgICAgICAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93
RG91YmxlKGNoaWxkMyk7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAg
ICAgICAgICAgICAgICAgICBjYXNlIFR5cGVGbG9hdDMyOgorICAgICAgICAgICAgICAgICAgICAg
ICAgdmFsdWVUb1N0b3JlID0gbV9vdXQuZnBDYXN0KHZhbHVlLCBtX291dC5mbG9hdFR5cGUpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgcmVmVHlwZSA9IG1fb3V0LnJlZkZsb2F0OworICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVHlwZUZs
b2F0NjQ6CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVRvU3RvcmUgPSB2YWx1ZTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJlZlR5cGUgPSBtX291dC5yZWZEb3VibGU7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAg
ICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgQVNTRVJUKGlzRmxvYXQodHlwZSkpOwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0RvdWJsZShjaGlsZDMpOwotICAgICAgICAgICAg
ICAgIHN3aXRjaCAodHlwZSkgewotICAgICAgICAgICAgICAgIGNhc2UgVHlwZUZsb2F0MzI6Ci0g
ICAgICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlRmxvYXQobV9vdXQuZnBDYXN0KHZhbHVlLCBt
X291dC5mbG9hdFR5cGUpLCBwb2ludGVyKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgY2FzZSBUeXBlRmxvYXQ2NDoKLSAgICAgICAgICAgICAgICAgICAgbV9v
dXQuc3RvcmVEb3VibGUodmFsdWUsIHBvaW50ZXIpOwotICAgICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIGlmIChtX25vZGUtPmFycmF5
TW9kZSgpLmlzSW5Cb3VuZHMoKSkKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuc3RvcmUodmFs
dWVUb1N0b3JlLCBwb2ludGVyLCByZWZUeXBlKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgaXNJbkJvdW5kcyA9IEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiUHV0QnlWYWwgdHlwZWQgYXJyYXkgaW4gYm91bmRzIGNhc2UiKSk7CisgICAgICAg
ICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9v
dXQsICgiUHV0QnlWYWwgdHlwZWQgYXJyYXkgY29udGludWF0aW9uIikpOworICAgICAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAg
ICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFsKGluZGV4LCBsb3dJbnQzMihjaGlsZDUpKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVhdGlvbiwgaXNJbkJvdW5kcyk7CisgICAg
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4
dCA9IG1fb3V0LmFwcGVuZFRvKGlzSW5Cb3VuZHMsIGNvbnRpbnVhdGlvbik7CisgICAgICAgICAg
ICAgICAgICAgIG1fb3V0LnN0b3JlKHZhbHVlVG9TdG9yZSwgcG9pbnRlciwgcmVmVHlwZSk7Cisg
ICAgICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlv
biwgbGFzdE5leHQpOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTIwNjAs
NiArMjMyOSwxMDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKG1f
bm9kZS0+bnVtQ29uc3RhbnRzKCkpKSk7CiAgICAgfQogICAgIAorICAgIHZvaWQgY29tcGlsZU5l
d0FycmF5V2l0aFNpemUoKQorICAgIHsKKyAgICAgICAgTFZhbHVlIHB1YmxpY0xlbmd0aCA9IGxv
d0ludDMyKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAKKyAgICAgICAgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fbm9kZS0+Y29kZU9y
aWdpbik7CisgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5hcnJh
eVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oCisgICAgICAgICAgICBt
X25vZGUtPmluZGV4aW5nVHlwZSgpKTsKKyAgICAgICAgCisgICAgICAgIGlmICghZ2xvYmFsT2Jq
ZWN0LT5pc0hhdmluZ0FCYWRUaW1lKCkgJiYgIWhhc0FycmF5U3RvcmFnZShtX25vZGUtPmluZGV4
aW5nVHlwZSgpKSkgeworICAgICAgICAgICAgQVNTRVJUKAorICAgICAgICAgICAgICAgIGhhc1Vu
ZGVjaWRlZChzdHJ1Y3R1cmUtPmluZGV4aW5nVHlwZSgpKQorICAgICAgICAgICAgICAgIHx8IGhh
c0ludDMyKHN0cnVjdHVyZS0+aW5kZXhpbmdUeXBlKCkpCisgICAgICAgICAgICAgICAgfHwgaGFz
RG91YmxlKHN0cnVjdHVyZS0+aW5kZXhpbmdUeXBlKCkpCisgICAgICAgICAgICAgICAgfHwgaGFz
Q29udGlndW91cyhzdHJ1Y3R1cmUtPmluZGV4aW5nVHlwZSgpKSk7CisKKyAgICAgICAgICAgIExC
YXNpY0Jsb2NrIGZhc3RDYXNlID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJOZXdBcnJheVdpdGhT
aXplIGZhc3QgY2FzZSIpKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhcmdlQ2FzZSA9IEZU
TF9ORVdfQkxPQ0sobV9vdXQsICgiTmV3QXJyYXlXaXRoU2l6ZSBsYXJnZSBjYXNlIikpOworICAg
ICAgICAgICAgTEJhc2ljQmxvY2sgZmFpbENhc2UgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk5l
d0FycmF5V2l0aFNpemUgZmFpbCBjYXNlIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgc2xv
d0Nhc2UgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk5ld0FycmF5V2l0aFNpemUgc2xvdyBjYXNl
IikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9D
SyhtX291dCwgKCJOZXdBcnJheVdpdGhTaXplIGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgICAgIG1fb3V0LmFib3Zl
T3JFcXVhbChwdWJsaWNMZW5ndGgsIG1fb3V0LmNvbnN0SW50MzIoTUlOX1NQQVJTRV9BUlJBWV9J
TkRFWCkpLAorICAgICAgICAgICAgICAgIGxhcmdlQ2FzZSwgZmFzdENhc2UpOworCisgICAgICAg
ICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGZhc3RDYXNlLCBsYXJn
ZUNhc2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBXZSBkb24ndCByb3VuZCB1cCB0
byBCQVNFX1ZFQ1RPUl9MRU4gZm9yIG5ldyBBcnJheShibGFoKS4KKyAgICAgICAgICAgIExWYWx1
ZSB2ZWN0b3JMZW5ndGggPSBwdWJsaWNMZW5ndGg7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IExWYWx1ZSBwYXlsb2FkU2l6ZSA9CisgICAgICAgICAgICAgICAgbV9vdXQuc2hsKG1fb3V0Lnpl
cm9FeHQodmVjdG9yTGVuZ3RoLCBtX291dC5pbnRQdHIpLCBtX291dC5jb25zdEludFB0cigzKSk7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBidXR0ZXJmbHlTaXplID0gbV9vdXQu
YWRkKAorICAgICAgICAgICAgICAgIHBheWxvYWRTaXplLCBtX291dC5jb25zdEludFB0cihzaXpl
b2YoSW5kZXhpbmdIZWFkZXIpKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBl
bmRPZlN0b3JhZ2UgPSBhbGxvY2F0ZUJhc2ljU3RvcmFnZUFuZEdldEVuZChidXR0ZXJmbHlTaXpl
LCBmYWlsQ2FzZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBidXR0ZXJmbHkg
PSBtX291dC5zdWIoZW5kT2ZTdG9yYWdlLCBwYXlsb2FkU2l6ZSk7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIExWYWx1ZSBvYmplY3QgPSBhbGxvY2F0ZU9iamVjdDxKU0FycmF5PigKKyAgICAg
ICAgICAgICAgICBtX291dC5jb25zdEludFB0cihzdHJ1Y3R1cmUpLCBidXR0ZXJmbHksIGZhaWxD
YXNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuc3RvcmUzMihwdWJsaWNMZW5n
dGgsIGJ1dHRlcmZseSwgbV9oZWFwcy5CdXR0ZXJmbHlfcHVibGljTGVuZ3RoKTsKKyAgICAgICAg
ICAgIG1fb3V0LnN0b3JlMzIodmVjdG9yTGVuZ3RoLCBidXR0ZXJmbHksIG1faGVhcHMuQnV0dGVy
Zmx5X3ZlY3Rvckxlbmd0aCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChoYXNEb3Vi
bGUobV9ub2RlLT5pbmRleGluZ1R5cGUoKSkpIHsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9j
ayBpbml0TG9vcCA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiTmV3QXJyYXlXaXRoU2l6ZSBkb3Vi
bGUgaW5pdCBsb29wIikpOworICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIGluaXREb25lID0g
RlRMX05FV19CTE9DSyhtX291dCwgKCJOZXdBcnJheVdpdGhTaXplIGRvdWJsZSBpbml0IGRvbmUi
KSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgb3Jp
Z2luYWxJbmRleCA9IG1fb3V0LmFuY2hvcih2ZWN0b3JMZW5ndGgpOworICAgICAgICAgICAgICAg
IFZhbHVlRnJvbUJsb2NrIG9yaWdpbmFsUG9pbnRlciA9IG1fb3V0LmFuY2hvcihidXR0ZXJmbHkp
OworICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5ub3RaZXJvMzIodmVjdG9yTGVu
Z3RoKSwgaW5pdExvb3AsIGluaXREb25lKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBMQmFzaWNCbG9jayBpbml0TGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhpbml0TG9vcCwg
aW5pdERvbmUpOworICAgICAgICAgICAgICAgIExWYWx1ZSBpbmRleCA9IG1fb3V0LnBoaShtX291
dC5pbnQzMiwgb3JpZ2luYWxJbmRleCk7CisgICAgICAgICAgICAgICAgTFZhbHVlIHBvaW50ZXIg
PSBtX291dC5waGkobV9vdXQuaW50UHRyLCBvcmlnaW5hbFBvaW50ZXIpOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlNjQoCisgICAgICAgICAgICAgICAgICAg
IG1fb3V0LmNvbnN0SW50NjQoYml0d2lzZV9jYXN0PGludDY0X3Q+KFFOYU4pKSwKKyAgICAgICAg
ICAgICAgICAgICAgVHlwZWRQb2ludGVyKG1faGVhcHMuaW5kZXhlZERvdWJsZVByb3BlcnRpZXMu
YXRBbnlJbmRleCgpLCBwb2ludGVyKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgTFZhbHVlIG5leHRJbmRleCA9IG1fb3V0LnN1YihpbmRleCwgbV9vdXQuaW50MzJPbmUpOwor
ICAgICAgICAgICAgICAgIGFkZEluY29taW5nKGluZGV4LCBtX291dC5hbmNob3IobmV4dEluZGV4
KSk7CisgICAgICAgICAgICAgICAgYWRkSW5jb21pbmcocG9pbnRlciwgbV9vdXQuYW5jaG9yKG1f
b3V0LmFkZChwb2ludGVyLCBtX291dC5pbnRQdHJFaWdodCkpKTsKKyAgICAgICAgICAgICAgICBt
X291dC5icmFuY2gobV9vdXQubm90WmVybzMyKG5leHRJbmRleCksIGluaXRMb29wLCBpbml0RG9u
ZSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oaW5p
dERvbmUsIGluaXRMYXN0TmV4dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1bHQgPSBtX291dC5hbmNob3Iob2JqZWN0KTsK
KyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgbV9vdXQuYXBwZW5kVG8obGFyZ2VDYXNlLCBmYWlsQ2FzZSk7CisgICAgICAgICAg
ICBWYWx1ZUZyb21CbG9jayBsYXJnZVN0cnVjdHVyZSA9IG1fb3V0LmFuY2hvcihtX291dC5jb25z
dEludFB0cigKKyAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9y
SW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhBcnJheVN0b3JhZ2UpKSk7Cisg
ICAgICAgICAgICBtX291dC5qdW1wKHNsb3dDYXNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgbV9vdXQuYXBwZW5kVG8oZmFpbENhc2UsIHNsb3dDYXNlKTsKKyAgICAgICAgICAgIFZhbHVl
RnJvbUJsb2NrIGZhaWxTdHJ1Y3R1cmUgPSBtX291dC5hbmNob3IobV9vdXQuY29uc3RJbnRQdHIo
c3RydWN0dXJlKSk7CisgICAgICAgICAgICBtX291dC5qdW1wKHNsb3dDYXNlKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2xvd0Nhc2UsIGNvbnRpbnVhdGlvbik7
CisgICAgICAgICAgICBMVmFsdWUgc3RydWN0dXJlVmFsdWUgPSBtX291dC5waGkoCisgICAgICAg
ICAgICAgICAgbV9vdXQuaW50UHRyLCBsYXJnZVN0cnVjdHVyZSwgZmFpbFN0cnVjdHVyZSk7Cisg
ICAgICAgICAgICBWYWx1ZUZyb21CbG9jayBzbG93UmVzdWx0ID0gbV9vdXQuYW5jaG9yKHZtQ2Fs
bCgKKyAgICAgICAgICAgICAgICBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uTmV3QXJyYXlXaXRo
U2l6ZSksCisgICAgICAgICAgICAgICAgbV9jYWxsRnJhbWUsIHN0cnVjdHVyZVZhbHVlLCBwdWJs
aWNMZW5ndGgpKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4
dCk7CisgICAgICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LnBoaShtX291dC5pbnRQdHIsIGZhc3RS
ZXN1bHQsIHNsb3dSZXN1bHQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgTFZhbHVlIHN0cnVjdHVyZVZhbHVlID0gbV9vdXQuc2VsZWN0KAorICAg
ICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFsKHB1YmxpY0xlbmd0aCwgbV9vdXQuY29uc3RJbnQz
MihNSU5fU1BBUlNFX0FSUkFZX0lOREVYKSksCisgICAgICAgICAgICBtX291dC5jb25zdEludFB0
cigKKyAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhp
bmdUeXBlRHVyaW5nQWxsb2NhdGlvbihBcnJheVdpdGhBcnJheVN0b3JhZ2UpKSwKKyAgICAgICAg
ICAgIG1fb3V0LmNvbnN0SW50UHRyKHN0cnVjdHVyZSkpOworICAgICAgICBzZXRKU1ZhbHVlKHZt
Q2FsbChtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZSksIG1fY2FsbEZy
YW1lLCBzdHJ1Y3R1cmVWYWx1ZSwgcHVibGljTGVuZ3RoKSk7CisgICAgfQorICAgIAogICAgIHZv
aWQgY29tcGlsZUFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKCkKICAgICB7CiAgICAgICAgIFN0cnVj
dHVyZVRyYW5zaXRpb25EYXRhJiBkYXRhID0gbV9ub2RlLT5zdHJ1Y3R1cmVUcmFuc2l0aW9uRGF0
YSgpOwpAQCAtMjEwMiw2ICsyNDc0LDE2MCBAQCBwcml2YXRlOgogICAgICAgICBzZXRTdG9yYWdl
KHJlc3VsdCk7CiAgICAgfQogICAgIAorICAgIHZvaWQgY29tcGlsZVRvU3RyaW5nKCkKKyAgICB7
CisgICAgICAgIHN3aXRjaCAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkpIHsKKyAgICAgICAg
Y2FzZSBTdHJpbmdPYmplY3RVc2U6IHsKKyAgICAgICAgICAgIExWYWx1ZSBjZWxsID0gbG93Q2Vs
bChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdEZv
ckNlbGwobV9ub2RlLT5jaGlsZDEoKSwgY2VsbCk7CisgICAgICAgICAgICBtX2ludGVycHJldGVy
LmZpbHRlcihtX25vZGUtPmNoaWxkMSgpLCBTcGVjU3RyaW5nT2JqZWN0KTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5sb2FkUHRyKGNlbGwsIG1faGVhcHMuSlNX
cmFwcGVyT2JqZWN0X2ludGVybmFsVmFsdWUpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgICAgICAgICAgCisgICAgICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6
IHsKKyAgICAgICAgICAgIExWYWx1ZSBjZWxsID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsK
KyAgICAgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmUgPSBtX291dC5sb2FkUHRyKGNlbGwsIG1faGVh
cHMuSlNDZWxsX3N0cnVjdHVyZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExCYXNpY0Js
b2NrIG5vdFN0cmluZyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiVG9TdHJpbmcgU3RyaW5nT3JT
dHJpbmdPYmplY3Qgbm90IHN0cmluZyBjYXNlIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sg
Y29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJUb1N0cmluZyBTdHJpbmdPclN0
cmluZ09iamVjdCBjb250aW51YXRpb24iKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFZh
bHVlRnJvbUJsb2NrIHNpbXBsZVJlc3VsdCA9IG1fb3V0LmFuY2hvcihjZWxsKTsKKyAgICAgICAg
ICAgIG1fb3V0LmJyYW5jaCgKKyAgICAgICAgICAgICAgICBtX291dC5lcXVhbChzdHJ1Y3R1cmUs
IG1fb3V0LmNvbnN0SW50UHRyKHZtKCkuc3RyaW5nU3RydWN0dXJlLmdldCgpKSksCisgICAgICAg
ICAgICAgICAgY29udGludWF0aW9uLCBub3RTdHJpbmcpOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKG5vdFN0cmluZywgY29u
dGludWF0aW9uKTsKKyAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdEZvclN0cnVjdHVy
ZShtX25vZGUtPmNoaWxkMSgpLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgVmFsdWVGcm9tQmxv
Y2sgdW5ib3hlZFJlc3VsdCA9IG1fb3V0LmFuY2hvcigKKyAgICAgICAgICAgICAgICBtX291dC5s
b2FkUHRyKGNlbGwsIG1faGVhcHMuSlNXcmFwcGVyT2JqZWN0X2ludGVybmFsVmFsdWUpKTsKKyAg
ICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgICAg
ICBzZXRKU1ZhbHVlKG1fb3V0LnBoaShtX291dC5pbnQ2NCwgc2ltcGxlUmVzdWx0LCB1bmJveGVk
UmVzdWx0KSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1faW50ZXJwcmV0ZXIuZmlsdGVy
KG1fbm9kZS0+Y2hpbGQxKCksIFNwZWNTdHJpbmcgfCBTcGVjU3RyaW5nT2JqZWN0KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGNhc2UgQ2Vs
bFVzZToKKyAgICAgICAgY2FzZSBVbnR5cGVkVXNlOiB7CisgICAgICAgICAgICBMVmFsdWUgdmFs
dWU7CisgICAgICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gQ2VsbFVz
ZSkKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdmFsdWUgPSBsb3dKU1ZhbHVlKG1fbm9k
ZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMQmFzaWNCbG9jayBpc0Nl
bGwgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIlRvU3RyaW5nIENlbGxVc2UvVW50eXBlZFVzZSBp
cyBjZWxsIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgbm90U3RyaW5nID0gRlRMX05FV19C
TE9DSyhtX291dCwgKCJUb1N0cmluZyBDZWxsVXNlL1VudHlwZWRVc2Ugbm90IHN0cmluZyIpKTsK
KyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9v
dXQsICgiVG9TdHJpbmcgQ2VsbFVzZS9VbnR5cGVkVXNlIGNvbnRpbnVhdGlvbiIpKTsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgTFZhbHVlIGlzQ2VsbFByZWRpY2F0ZTsKKyAgICAgICAgICAg
IGlmIChtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBDZWxsVXNlKQorICAgICAgICAgICAg
ICAgIGlzQ2VsbFByZWRpY2F0ZSA9IG1fb3V0LmJvb2xlYW5UcnVlOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIGlzQ2VsbFByZWRpY2F0ZSA9IHRoaXMtPmlzQ2VsbCh2YWx1ZSk7
CisgICAgICAgICAgICBtX291dC5icmFuY2goaXNDZWxsUHJlZGljYXRlLCBpc0NlbGwsIG5vdFN0
cmluZyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0g
bV9vdXQuYXBwZW5kVG8oaXNDZWxsLCBub3RTdHJpbmcpOworICAgICAgICAgICAgVmFsdWVGcm9t
QmxvY2sgc2ltcGxlUmVzdWx0ID0gbV9vdXQuYW5jaG9yKHZhbHVlKTsKKyAgICAgICAgICAgIExW
YWx1ZSBpc1N0cmluZ1ByZWRpY2F0ZTsKKyAgICAgICAgICAgIGlmIChtX25vZGUtPmNoaWxkMSgp
LT5wcmVkaWN0aW9uKCkgJiBTcGVjU3RyaW5nKSB7CisgICAgICAgICAgICAgICAgaXNTdHJpbmdQ
cmVkaWNhdGUgPSBtX291dC5lcXVhbCgKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQubG9hZFB0
cih2YWx1ZSwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlKSwKKyAgICAgICAgICAgICAgICAgICAg
bV9vdXQuY29uc3RJbnRQdHIodm0oKS5zdHJpbmdTdHJ1Y3R1cmUuZ2V0KCkpKTsKKyAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIGlzU3RyaW5nUHJlZGljYXRlID0gbV9vdXQuYm9v
bGVhbkZhbHNlOworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlzU3RyaW5nUHJlZGljYXRlLCBj
b250aW51YXRpb24sIG5vdFN0cmluZyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKG5vdFN0cmluZywgY29udGludWF0aW9uKTsKKyAgICAgICAgICAgIExWYWx1ZSBv
cGVyYXRpb247CisgICAgICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0g
Q2VsbFVzZSkKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBtX291dC5vcGVyYXRpb24ob3Bl
cmF0aW9uVG9TdHJpbmdPbkNlbGwpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IG9wZXJhdGlvbiA9IG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25Ub1N0cmluZyk7CisgICAgICAg
ICAgICBWYWx1ZUZyb21CbG9jayBjb252ZXJ0ZWRSZXN1bHQgPSBtX291dC5hbmNob3Iodm1DYWxs
KG9wZXJhdGlvbiwgbV9jYWxsRnJhbWUsIHZhbHVlKSk7CisgICAgICAgICAgICBtX291dC5qdW1w
KGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRv
KGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5w
aGkobV9vdXQuaW50NjQsIHNpbXBsZVJlc3VsdCwgY29udmVydGVkUmVzdWx0KSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHZvaWQgY29tcGlsZU1ha2VSb3BlKCkK
KyAgICB7CisgICAgICAgIExWYWx1ZSBraWRzWzNdOworICAgICAgICB1bnNpZ25lZCBudW1LaWRz
OworICAgICAgICBraWRzWzBdID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAg
a2lkc1sxXSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDIoKSk7CisgICAgICAgIGlmIChtX25vZGUt
PmNoaWxkMygpKSB7CisgICAgICAgICAgICBraWRzWzJdID0gbG93Q2VsbChtX25vZGUtPmNoaWxk
MygpKTsKKyAgICAgICAgICAgIG51bUtpZHMgPSAzOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAga2lkc1syXSA9IDA7CisgICAgICAgICAgICBudW1LaWRzID0gMjsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgTEJhc2ljQmxvY2sgc2xvd1BhdGggPSBGVExfTkVXX0JMT0NLKG1f
b3V0LCAoIk1ha2VSb3BlIHNsb3cgcGF0aCIpKTsKKyAgICAgICAgTEJhc2ljQmxvY2sgY29udGlu
dWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJNYWtlUm9wZSBjb250aW51YXRpb24iKSk7
CisgICAgICAgIAorICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0Lmluc2VydE5l
d0Jsb2Nrc0JlZm9yZShzbG93UGF0aCk7CisgICAgICAgIAorICAgICAgICBNYXJrZWRBbGxvY2F0
b3ImIGFsbG9jYXRvciA9CisgICAgICAgICAgICB2bSgpLmhlYXAuYWxsb2NhdG9yRm9yT2JqZWN0
V2l0aEltbW9ydGFsU3RydWN0dXJlRGVzdHJ1Y3RvcihzaXplb2YoSlNSb3BlU3RyaW5nKSk7Cisg
ICAgICAgIAorICAgICAgICBMVmFsdWUgcmVzdWx0ID0gYWxsb2NhdGVDZWxsKAorICAgICAgICAg
ICAgbV9vdXQuY29uc3RJbnRQdHIoJmFsbG9jYXRvciksCisgICAgICAgICAgICBtX291dC5jb25z
dEludFB0cih2bSgpLnN0cmluZ1N0cnVjdHVyZS5nZXQoKSksCisgICAgICAgICAgICBzbG93UGF0
aCk7CisgICAgICAgIAorICAgICAgICBtX291dC5zdG9yZVB0cihtX291dC5pbnRQdHJaZXJvLCBy
ZXN1bHQsIG1faGVhcHMuSlNTdHJpbmdfdmFsdWUpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbnVtS2lkczsgKytpKQorICAgICAgICAgICAgbV9vdXQuc3RvcmVQdHIoa2lkc1tp
XSwgcmVzdWx0LCBtX2hlYXBzLkpTUm9wZVN0cmluZ19maWJlcnNbaV0pOworICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSBudW1LaWRzOyBpIDwgSlNSb3BlU3RyaW5nOjpzX21heEludGVybmFsUm9w
ZUxlbmd0aDsgKytpKQorICAgICAgICAgICAgbV9vdXQuc3RvcmVQdHIobV9vdXQuaW50UHRyWmVy
bywgcmVzdWx0LCBtX2hlYXBzLkpTUm9wZVN0cmluZ19maWJlcnNbaV0pOworICAgICAgICBMVmFs
dWUgZmxhZ3MgPSBtX291dC5sb2FkMzIoa2lkc1swXSwgbV9oZWFwcy5KU1N0cmluZ19mbGFncyk7
CisgICAgICAgIExWYWx1ZSBsZW5ndGggPSBtX291dC5sb2FkMzIoa2lkc1swXSwgbV9oZWFwcy5K
U1N0cmluZ19sZW5ndGgpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgbnVtS2lk
czsgKytpKSB7CisgICAgICAgICAgICBmbGFncyA9IG1fb3V0LmJpdEFuZChmbGFncywgbV9vdXQu
bG9hZDMyKGtpZHNbaV0sIG1faGVhcHMuSlNTdHJpbmdfZmxhZ3MpKTsKKyAgICAgICAgICAgIGxl
bmd0aCA9IG1fb3V0LmFkZChsZW5ndGgsIG1fb3V0LmxvYWQzMihraWRzW2ldLCBtX2hlYXBzLkpT
U3RyaW5nX2xlbmd0aCkpOworICAgICAgICB9CisgICAgICAgIG1fb3V0LnN0b3JlMzIoCisgICAg
ICAgICAgICBtX291dC5iaXRBbmQobV9vdXQuY29uc3RJbnQzMihKU1N0cmluZzo6SXM4Qml0KSwg
ZmxhZ3MpLAorICAgICAgICAgICAgcmVzdWx0LCBtX2hlYXBzLkpTU3RyaW5nX2ZsYWdzKTsKKyAg
ICAgICAgbV9vdXQuc3RvcmUzMihsZW5ndGgsIHJlc3VsdCwgbV9oZWFwcy5KU1N0cmluZ19sZW5n
dGgpOworICAgICAgICAKKyAgICAgICAgVmFsdWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0
LmFuY2hvcihyZXN1bHQpOworICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAg
ICAgIAorICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93UGF0aCwgY29udGludWF0aW9uKTsKKyAg
ICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jlc3VsdDsKKyAgICAgICAgc3dpdGNoIChudW1LaWRz
KSB7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHNsb3dSZXN1bHQgPSBtX291dC5hbmNo
b3Iodm1DYWxsKAorICAgICAgICAgICAgICAgIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25NYWtl
Um9wZTIpLCBtX2NhbGxGcmFtZSwga2lkc1swXSwga2lkc1sxXSkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHNsb3dSZXN1bHQgPSBtX291dC5hbmNo
b3Iodm1DYWxsKAorICAgICAgICAgICAgICAgIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25NYWtl
Um9wZTMpLCBtX2NhbGxGcmFtZSwga2lkc1swXSwga2lkc1sxXSwga2lkc1syXSkpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
bV9vdXQuanVtcChjb250aW51YXRpb24pOworICAgICAgICAKKyAgICAgICAgbV9vdXQuYXBwZW5k
VG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhp
KG1fb3V0LmludDY0LCBmYXN0UmVzdWx0LCBzbG93UmVzdWx0KSk7CisgICAgfQorICAgIAogICAg
IHZvaWQgY29tcGlsZVN0cmluZ0NoYXJBdCgpCiAgICAgewogICAgICAgICBMVmFsdWUgYmFzZSA9
IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CkBAIC0yMTE0LDcgKzI2NDAsNyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgCiAgICAgICAgIG1fb3V0LmJyYW5jaCgKICAgICAgICAgICAgIG1fb3V0
LmFib3ZlT3JFcXVhbCgKLSAgICAgICAgICAgICAgICBpbmRleCwgbV9vdXQubG9hZDMyKGJhc2Us
IG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSksCisgICAgICAgICAgICAgICAgaW5kZXgsIG1fb3V0
LmxvYWQzMk5vbk5lZ2F0aXZlKGJhc2UsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSksCiAgICAg
ICAgICAgICBzbG93UGF0aCwgZmFzdFBhdGgpOwogICAgICAgICAgICAgCiAgICAgICAgIExCYXNp
Y0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oZmFzdFBhdGgsIHNsb3dQYXRoKTsKQEAg
LTIyMTAsNyArMjczNiw4IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICBzcGVjdWxhdGUo
CiAgICAgICAgICAgICBVbmNvdW50YWJsZSwgbm9WYWx1ZSgpLCAwLAotICAgICAgICAgICAgbV9v
dXQuYWJvdmVPckVxdWFsKGluZGV4LCBtX291dC5sb2FkMzIoYmFzZSwgbV9oZWFwcy5KU1N0cmlu
Z19sZW5ndGgpKSk7CisgICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwoCisgICAgICAgICAg
ICAgICAgaW5kZXgsIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKGJhc2UsIG1faGVhcHMuSlNTdHJp
bmdfbGVuZ3RoKSkpOwogICAgICAgICAKICAgICAgICAgTFZhbHVlIHN0cmluZ0ltcGwgPSBtX291
dC5sb2FkUHRyKGJhc2UsIG1faGVhcHMuSlNTdHJpbmdfdmFsdWUpOwogICAgICAgICAKQEAgLTIz
NDUsNiArMjg3MiwxNiBAQCBwcml2YXRlOgogICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51
YXRpb24sIGxhc3ROZXh0KTsKICAgICB9CiAgICAgCisgICAgdm9pZCBjb21waWxlR2V0Q2FsbGVl
KCkKKyAgICB7CisgICAgICAgIHNldEpTVmFsdWUobV9vdXQubG9hZFB0cihhZGRyZXNzRm9yKEpT
U3RhY2s6OkNhbGxlZSkpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBjb21waWxlR2V0U2NvcGUo
KQorICAgIHsKKyAgICAgICAgc2V0SlNWYWx1ZShtX291dC5sb2FkUHRyKGxvd0NlbGwobV9ub2Rl
LT5jaGlsZDEoKSksIG1faGVhcHMuSlNGdW5jdGlvbl9zY29wZSkpOworICAgIH0KKyAgICAKICAg
ICB2b2lkIGNvbXBpbGVHZXRNeVNjb3BlKCkKICAgICB7CiAgICAgICAgIHNldEpTVmFsdWUobV9v
dXQubG9hZFB0cihhZGRyZXNzRm9yKApAQCAtMjQ4OCwzNSArMzAyNSwzNyBAQCBwcml2YXRlOgog
ICAgIAogICAgIHZvaWQgY29tcGlsZUNhbGxPckNvbnN0cnVjdCgpCiAgICAgewotICAgICAgICAv
LyBGSVhNRTogVGhpcyBpcyB1bmFjY2VwdGFibHkgc2xvdy4KLSAgICAgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzYyMQorICAgICAgICBpbnQgZHVtbXlU
aGlzQXJndW1lbnQgPSBtX25vZGUtPm9wKCkgPT0gQ2FsbCA/IDAgOiAxOworICAgICAgICBpbnQg
bnVtUGFzc2VkQXJncyA9IG1fbm9kZS0+bnVtQ2hpbGRyZW4oKSAtIDE7CisgICAgICAgIGludCBu
dW1BcmdzID0gbnVtUGFzc2VkQXJncyArIGR1bW15VGhpc0FyZ3VtZW50OwogICAgICAgICAKLSAg
ICAgICAgSl9KSVRPcGVyYXRpb25fRSBmdW5jdGlvbiA9Ci0gICAgICAgICAgICBtX25vZGUtPm9w
KCkgPT0gQ2FsbCA/IG9wZXJhdGlvbkZUTENhbGwgOiBvcGVyYXRpb25GVExDb25zdHJ1Y3Q7Cisg
ICAgICAgIExWYWx1ZSBjYWxsZWUgPSBsb3dKU1ZhbHVlKG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9u
b2RlLCAwKSk7CiAgICAgICAgIAotICAgICAgICBpbnQgZHVtbXlUaGlzQXJndW1lbnQgPSBtX25v
ZGUtPm9wKCkgPT0gQ2FsbCA/IDAgOiAxOworICAgICAgICB1bnNpZ25lZCBzdGFja21hcElEID0g
bV9zdGFja21hcElEcysrOwogICAgICAgICAKLSAgICAgICAgaW50IG51bVBhc3NlZEFyZ3MgPSBt
X25vZGUtPm51bUNoaWxkcmVuKCkgLSAxOworICAgICAgICBWZWN0b3I8TFZhbHVlPiBhcmd1bWVu
dHM7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9vdXQuY29uc3RJbnQ2NChzdGFja21hcElE
KSk7CisgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobV9vdXQuY29uc3RJbnQzMihzaXplT2ZDYWxs
KCkpKTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChjb25zdE51bGwobV9vdXQucmVmOCkpOwor
ICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1fb3V0LmNvbnN0SW50MzIoMSArIEpTU3RhY2s6OkNh
bGxGcmFtZUhlYWRlclNpemUgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSArIG51bUFy
Z3MpKTsKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChjYWxsZWUpOyAvLyBjYWxsZWUgLT4gJXJh
eAorICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGdldFVuZGVmKG1fb3V0LmludDY0KSk7IC8vIGNv
ZGUgYmxvY2sKKyAgICAgICAgYXJndW1lbnRzLmFwcGVuZChnZXRVbmRlZihtX291dC5pbnQ2NCkp
OyAvLyBzY29wZSBjaGFpbgorICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGNhbGxlZSk7IC8vIGNh
bGxlZSAtPiBzdGFjaworICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1fb3V0LmNvbnN0SW50NjQo
bnVtQXJncykpOyAvLyBhcmd1bWVudCBjb3VudCBhbmQgemVyb3MgZm9yIHRoZSB0YWcKKyAgICAg
ICAgaWYgKGR1bW15VGhpc0FyZ3VtZW50KQorICAgICAgICAgICAgYXJndW1lbnRzLmFwcGVuZChn
ZXRVbmRlZihtX291dC5pbnQ2NCkpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVBh
c3NlZEFyZ3M7ICsraSkKKyAgICAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQobG93SlNWYWx1ZSht
X2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSArIGkpKSk7CiAgICAgICAgIAotICAgICAgICBM
VmFsdWUgY2FsbGVlRnJhbWUgPSBtX291dC5hZGQoCi0gICAgICAgICAgICBtX2NhbGxGcmFtZSwK
LSAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKHNpemVvZihSZWdpc3RlcikgKiB2aXJ0dWFs
UmVnaXN0ZXJGb3JMb2NhbChtX2dyYXBoLmZyYW1lUmVnaXN0ZXJDb3VudCgpKS5vZmZzZXQoKSkp
OworICAgICAgICBjYWxsUHJlZmxpZ2h0KCk7CiAgICAgICAgIAotICAgICAgICBtX291dC5zdG9y
ZTMyKAotICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihudW1QYXNzZWRBcmdzICsgZHVtbXlU
aGlzQXJndW1lbnQpLAotICAgICAgICAgICAgcGF5bG9hZEZvcihjYWxsZWVGcmFtZSwgSlNTdGFj
azo6QXJndW1lbnRDb3VudCkpOwotICAgICAgICBtX291dC5zdG9yZTY0KG1fY2FsbEZyYW1lLCBj
YWxsZWVGcmFtZSwgbV9oZWFwcy5DYWxsRnJhbWVfY2FsbGVyRnJhbWUpOwotICAgICAgICBtX291
dC5zdG9yZTY0KAotICAgICAgICAgICAgbG93SlNWYWx1ZShtX2dyYXBoLnZhckFyZ0NoaWxkKG1f
bm9kZSwgMCkpLAotICAgICAgICAgICAgYWRkcmVzc0ZvcihjYWxsZWVGcmFtZSwgSlNTdGFjazo6
Q2FsbGVlKSk7CisgICAgICAgIExWYWx1ZSBjYWxsID0gbV9vdXQuY2FsbChtX291dC5wYXRjaHBv
aW50SW50NjRJbnRyaW5zaWMoKSwgYXJndW1lbnRzKTsKKyAgICAgICAgc2V0SW5zdHJ1Y3Rpb25D
YWxsaW5nQ29udmVudGlvbihjYWxsLCBMTFZNV2ViS2l0SlNDYWxsQ29udik7CiAgICAgICAgIAot
ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVBhc3NlZEFyZ3M7ICsraSkgewotICAgICAg
ICAgICAgbV9vdXQuc3RvcmU2NCgKLSAgICAgICAgICAgICAgICBsb3dKU1ZhbHVlKG1fZ3JhcGgu
dmFyQXJnQ2hpbGQobV9ub2RlLCAxICsgaSkpLAotICAgICAgICAgICAgICAgIGFkZHJlc3NGb3Io
Y2FsbGVlRnJhbWUsIHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KGkgKyBkdW1teVRoaXNBcmd1
bWVudCkub2Zmc2V0KCkpKTsKLSAgICAgICAgfQorICAgICAgICBtX2Z0bFN0YXRlLmpzQ2FsbHMu
YXBwZW5kKEpTQ2FsbChzdGFja21hcElELCBtX25vZGUpKTsKICAgICAgICAgCi0gICAgICAgIHNl
dEpTVmFsdWUodm1DYWxsKG1fb3V0Lm9wZXJhdGlvbihmdW5jdGlvbiksIGNhbGxlZUZyYW1lKSk7
CisgICAgICAgIHNldEpTVmFsdWUoY2FsbCk7CiAgICAgfQogICAgIAogICAgIHZvaWQgY29tcGls
ZUp1bXAoKQpAQCAtMjYyNyw3ICszMTY2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgIG1fb3V0Lm5vdEVxdWFsKAot
ICAgICAgICAgICAgICAgICAgICBtX291dC5sb2FkMzIoc3RyaW5nVmFsdWUsIG1faGVhcHMuSlNT
dHJpbmdfbGVuZ3RoKSwKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQubG9hZDMyTm9uTmVnYXRp
dmUoc3RyaW5nVmFsdWUsIG1faGVhcHMuSlNTdHJpbmdfbGVuZ3RoKSwKICAgICAgICAgICAgICAg
ICAgICAgbV9vdXQuaW50MzJPbmUpLAogICAgICAgICAgICAgICAgIGxvd0Jsb2NrKGRhdGEtPmZh
bGxUaHJvdWdoKSwgbGVuZ3RoSXMxKTsKICAgICAgICAgICAgIApAQCAtMjcwOCw2ICszMjQ3LDIy
IEBAIHByaXZhdGU6CiAgICAgICAgIGluZm8ubV9pc0ludmFsaWRhdGlvblBvaW50ID0gdHJ1ZTsK
ICAgICB9CiAgICAgCisgICAgdm9pZCBjb21waWxlQ2hlY2tBcmd1bWVudHNOb3RDcmVhdGVkKCkK
KyAgICB7CisgICAgICAgIEFTU0VSVCghaXNFbXB0eVNwZWN1bGF0aW9uKAorICAgICAgICAgICAg
bV9zdGF0ZS52YXJpYWJsZXMoKS5vcGVyYW5kKAorICAgICAgICAgICAgICAgIG1fZ3JhcGguYXJn
dW1lbnRzUmVnaXN0ZXJGb3IobV9ub2RlLT5jb2RlT3JpZ2luKSkubV90eXBlKSk7CisgICAgICAg
IAorICAgICAgICBWaXJ0dWFsUmVnaXN0ZXIgcmVnID0gbV9ncmFwaC5tYWNoaW5lQXJndW1lbnRz
UmVnaXN0ZXJGb3IobV9ub2RlLT5jb2RlT3JpZ2luKTsKKyAgICAgICAgc3BlY3VsYXRlKEFyZ3Vt
ZW50c0VzY2FwZWQsIG5vVmFsdWUoKSwgMCwgbV9vdXQubm90WmVybzY0KG1fb3V0LmxvYWQ2NChh
ZGRyZXNzRm9yKHJlZykpKSk7CisgICAgfQorICAgIAorICAgIHZvaWQgY29tcGlsZUNvdW50RXhl
Y3V0aW9uKCkKKyAgICB7CisgICAgICAgIFR5cGVkUG9pbnRlciBjb3VudGVyID0gbV9vdXQuYWJz
b2x1dGUobV9ub2RlLT5leGVjdXRpb25Db3VudGVyKCktPmFkZHJlc3MoKSk7CisgICAgICAgIG1f
b3V0LnN0b3JlNjQobV9vdXQuYWRkKG1fb3V0LmxvYWQ2NChjb3VudGVyKSwgbV9vdXQuY29uc3RJ
bnQ2NCgxKSksIGNvdW50ZXIpOworICAgIH0KKyAgICAKICAgICBUeXBlZFBvaW50ZXIgYmFzZUlu
ZGV4KEluZGV4ZWRBYnN0cmFjdEhlYXAmIGhlYXAsIExWYWx1ZSBzdG9yYWdlLCBMVmFsdWUgaW5k
ZXgsIEVkZ2UgZWRnZSkKICAgICB7CiAgICAgICAgIHJldHVybiBtX291dC5iYXNlSW5kZXgoCkBA
IC0yOTI0LDcgKzM0NzksNyBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgaWYgKEpTQXJyYXlC
dWZmZXJWaWV3KiB2aWV3ID0gbV9ncmFwaC50cnlHZXRGb2xkYWJsZVZpZXcoYmFzZUVkZ2Uubm9k
ZSgpLCBhcnJheU1vZGUpKQogICAgICAgICAgICAgcmV0dXJuIG1fb3V0LmNvbnN0SW50MzIodmll
dy0+bGVuZ3RoKCkpOwotICAgICAgICByZXR1cm4gbV9vdXQubG9hZDMyKGJhc2UsIG1faGVhcHMu
SlNBcnJheUJ1ZmZlclZpZXdfbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIG1fb3V0LmxvYWQzMk5v
bk5lZ2F0aXZlKGJhc2UsIG1faGVhcHMuSlNBcnJheUJ1ZmZlclZpZXdfbGVuZ3RoKTsKICAgICB9
CiAgICAgCiAgICAgTFZhbHVlIHR5cGVkQXJyYXlMZW5ndGgoRWRnZSBiYXNlRWRnZSwgQXJyYXlN
b2RlIGFycmF5TW9kZSkKQEAgLTI5NDgsNyArMzUwMyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAgICAgICAgIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbikpOwogICAgICAgICBjYXNlIFN0cmlu
Z1VzZTogewogICAgICAgICAgICAgTFZhbHVlIHN0cmluZ1ZhbHVlID0gbG93U3RyaW5nKG1fbm9k
ZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgTFZhbHVlIGxlbmd0aCA9IG1fb3V0LmxvYWQzMihz
dHJpbmdWYWx1ZSwgbV9oZWFwcy5KU1N0cmluZ19sZW5ndGgpOworICAgICAgICAgICAgTFZhbHVl
IGxlbmd0aCA9IG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0cmluZ1ZhbHVlLCBtX2hlYXBzLkpT
U3RyaW5nX2xlbmd0aCk7CiAgICAgICAgICAgICByZXR1cm4gbV9vdXQubm90RXF1YWwobGVuZ3Ro
LCBtX291dC5pbnQzMlplcm8pOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgVW50eXBlZFVzZTog
ewpAQCAtMzA4Miw3ICszNjM3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgTEJhc2ljQmxvY2sgY29u
dGludWF0aW9uKQogICAgIHsKICAgICAgICAgTFZhbHVlIGlzTm90SW5Cb3VuZHMgPSBtX291dC5h
Ym92ZU9yRXF1YWwoCi0gICAgICAgICAgICBpbmRleCwgbV9vdXQubG9hZDMyKHN0b3JhZ2UsIG1f
aGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0aCkpOworICAgICAgICAgICAgaW5kZXgsIG1fb3V0
LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3B1YmxpY0xlbmd0
aCkpOwogICAgICAgICBpZiAoIW1fbm9kZS0+YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygpKSB7CiAg
ICAgICAgICAgICBMQmFzaWNCbG9jayBub3RJbkJvdW5kc0Nhc2UgPQogICAgICAgICAgICAgICAg
IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiUHV0QnlWYWwgbm90IGluIGJvdW5kcyIpKTsKQEAgLTMw
OTQsNyArMzY0OSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4
dCA9IG1fb3V0LmFwcGVuZFRvKG5vdEluQm91bmRzQ2FzZSwgcGVyZm9ybVN0b3JlKTsKICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgIExWYWx1ZSBpc091dE9mQm91bmRzID0gbV9vdXQuYWJv
dmVPckVxdWFsKAotICAgICAgICAgICAgICAgIGluZGV4LCBtX291dC5sb2FkMzIoc3RvcmFnZSwg
bV9oZWFwcy5CdXR0ZXJmbHlfdmVjdG9yTGVuZ3RoKSk7CisgICAgICAgICAgICAgICAgaW5kZXgs
IG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHN0b3JhZ2UsIG1faGVhcHMuQnV0dGVyZmx5X3ZlY3Rv
ckxlbmd0aCkpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFtX25vZGUtPmFy
cmF5TW9kZSgpLmlzT3V0T2ZCb3VuZHMoKSkKICAgICAgICAgICAgICAgICBzcGVjdWxhdGUoT3V0
T2ZCb3VuZHMsIG5vVmFsdWUoKSwgMCwgaXNPdXRPZkJvdW5kcyk7CkBAIC0zNzE4LDYgKzQyNzMs
NyBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgS25vd25JbnQz
MlVzZToKICAgICAgICAgY2FzZSBLbm93bk51bWJlclVzZToKKyAgICAgICAgY2FzZSBLbm93blN0
cmluZ1VzZToKICAgICAgICAgICAgIEFTU0VSVCghbV9pbnRlcnByZXRlci5uZWVkc1R5cGVDaGVj
ayhlZGdlKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBJbnQzMlVzZToKQEAg
LTM3NDEsNiArNDI5NywxMiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFN0cmluZ1VzZToKICAg
ICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhlZGdlKTsKICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIFN0cmluZ09iamVjdFVzZToKKyAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZ09i
amVjdChlZGdlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFN0cmluZ09yU3Ry
aW5nT2JqZWN0VXNlOgorICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nT3JTdHJpbmdPYmplY3Qo
ZWRnZSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBSZWFsTnVtYmVyVXNlOgog
ICAgICAgICAgICAgc3BlY3VsYXRlUmVhbE51bWJlcihlZGdlKTsKICAgICAgICAgICAgIGJyZWFr
OwpAQCAtMzkyOCw2ICs0NDkwLDU1IEBAIHByaXZhdGU6CiAgICAgICAgIHNwZWN1bGF0ZVN0cmlu
ZyhlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKICAgICB9CiAgICAgCisgICAgdm9pZCBzcGVjdWxhdGVT
dHJpbmdPYmplY3QoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2ludGVycHJldGVy
Lm5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTdHJpbmdPYmplY3QpKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAKKyAgICAgICAgc3BlY3VsYXRlU3RyaW5nT2JqZWN0Rm9yQ2VsbChlZGdl
LCBsb3dDZWxsKGVkZ2UpKTsKKyAgICAgICAgbV9pbnRlcnByZXRlci5maWx0ZXIoZWRnZSwgU3Bl
Y1N0cmluZ09iamVjdCk7CisgICAgfQorICAgIAorICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nT3JT
dHJpbmdPYmplY3QoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2ludGVycHJldGVy
Lm5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNTdHJpbmcgfCBTcGVjU3RyaW5nT2JqZWN0KSkKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIExCYXNpY0Jsb2NrIG5vdFN0cmlu
ZyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiU3BlY3VsYXRlIFN0cmluZ09yU3RyaW5nT2JqZWN0
IG5vdCBzdHJpbmcgY2FzZSIpKTsKKyAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0g
RlRMX05FV19CTE9DSyhtX291dCwgKCJTcGVjdWxhdGUgU3RyaW5nT3JTdHJpbmdPYmplY3QgY29u
dGludWF0aW9uIikpOworICAgICAgICAKKyAgICAgICAgTFZhbHVlIHN0cnVjdHVyZSA9IG1fb3V0
LmxvYWRQdHIobG93Q2VsbChlZGdlKSwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlKTsKKyAgICAg
ICAgbV9vdXQuYnJhbmNoKAorICAgICAgICAgICAgbV9vdXQuZXF1YWwoc3RydWN0dXJlLCBtX291
dC5jb25zdEludFB0cih2bSgpLnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkpLAorICAgICAgICAgICAg
Y29udGludWF0aW9uLCBub3RTdHJpbmcpOworICAgICAgICAKKyAgICAgICAgTEJhc2ljQmxvY2sg
bGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhub3RTdHJpbmcsIGNvbnRpbnVhdGlvbik7CisgICAg
ICAgIHNwZWN1bGF0ZVN0cmluZ09iamVjdEZvclN0cnVjdHVyZShlZGdlLCBzdHJ1Y3R1cmUpOwor
ICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisgICAgICAgIAorICAgICAgICBtX291
dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAgICAgCisgICAgICAgIG1f
aW50ZXJwcmV0ZXIuZmlsdGVyKGVkZ2UsIFNwZWNTdHJpbmcgfCBTcGVjU3RyaW5nT2JqZWN0KTsK
KyAgICB9CisgICAgCisgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdPYmplY3RGb3JDZWxsKEVkZ2Ug
ZWRnZSwgTFZhbHVlIGNlbGwpCisgICAgeworICAgICAgICBzcGVjdWxhdGVTdHJpbmdPYmplY3RG
b3JTdHJ1Y3R1cmUoZWRnZSwgbV9vdXQubG9hZFB0cihjZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1
Y3R1cmUpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmdPYmplY3RGb3JT
dHJ1Y3R1cmUoRWRnZSBlZGdlLCBMVmFsdWUgc3RydWN0dXJlKQorICAgIHsKKyAgICAgICAgU3Ry
dWN0dXJlKiBzdHJpbmdPYmplY3RTdHJ1Y3R1cmUgPQorICAgICAgICAgICAgbV9ncmFwaC5nbG9i
YWxPYmplY3RGb3IobV9ub2RlLT5jb2RlT3JpZ2luKS0+c3RyaW5nT2JqZWN0U3RydWN0dXJlKCk7
CisgICAgICAgIAorICAgICAgICBpZiAobV9zdGF0ZS5mb3JOb2RlKGVkZ2UpLm1fY3VycmVudEtu
b3duU3RydWN0dXJlLmlzU3Vic2V0T2YoU3RydWN0dXJlU2V0KHN0cmluZ09iamVjdFN0cnVjdHVy
ZSkpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgc3BlY3VsYXRlKAor
ICAgICAgICAgICAgTm90U3RyaW5nT2JqZWN0LCBub1ZhbHVlKCksIDAsCisgICAgICAgICAgICBt
X291dC5ub3RFcXVhbChzdHJ1Y3R1cmUsIHdlYWtQb2ludGVyKHN0cmluZ09iamVjdFN0cnVjdHVy
ZSkpKTsKKyAgICB9CisgICAgCiAgICAgdm9pZCBzcGVjdWxhdGVOb25OdWxsT2JqZWN0KEVkZ2Ug
ZWRnZSwgTFZhbHVlIGNlbGwpCiAgICAgewogICAgICAgICBMVmFsdWUgc3RydWN0dXJlID0gbV9v
dXQubG9hZFB0cihjZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmUpOwpAQCAtNDEwNiwxOCAr
NDcxNywxMyBAQCBwcml2YXRlOgogICAgICAgICBpZiAobW9kZSA9PSBOb0V4Y2VwdGlvbnMpCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIAotICAgICAgICBMQmFzaWNCbG9jayBkaWRIYXZl
RXhjZXB0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJEaWQgaGF2ZSBleGNlcHRpb24iKSk7
CiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQs
ICgiRXhjZXB0aW9uIGNoZWNrIGNvbnRpbnVhdGlvbiIpKTsKICAgICAgICAgCiAgICAgICAgIG1f
b3V0LmJyYW5jaCgKICAgICAgICAgICAgIG1fb3V0Lm5vdFplcm82NChtX291dC5sb2FkNjQobV9v
dXQuYWJzb2x1dGUodm0oKS5hZGRyZXNzT2ZFeGNlcHRpb24oKSkpKSwKLSAgICAgICAgICAgIGRp
ZEhhdmVFeGNlcHRpb24sIGNvbnRpbnVhdGlvbik7CisgICAgICAgICAgICBtX2hhbmRsZUV4Y2Vw
dGlvbnMsIGNvbnRpbnVhdGlvbik7CiAgICAgICAgIAotICAgICAgICBMQmFzaWNCbG9jayBsYXN0
TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGRpZEhhdmVFeGNlcHRpb24sIGNvbnRpbnVhdGlvbik7Ci0g
ICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgZXhjZXB0aW9ucy4gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExMzYyMgotICAgICAgICBtX291dC5jcmFzaCgpOwotICAgICAg
ICAKLSAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAg
ICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbik7CiAgICAgfQogICAgIAogICAgIExCYXNp
Y0Jsb2NrIGxvd0Jsb2NrKEJhc2ljQmxvY2sqIGJsb2NrKQpAQCAtNDEzMyw4ICs0NzM5LDExIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBhcHBlbmRPU1JFeGl0KAogICAgICAgICBFeGl0S2luZCBraW5k
LCBGb3JtYXR0ZWRWYWx1ZSBsb3dWYWx1ZSwgTm9kZSogaGlnaFZhbHVlLCBMVmFsdWUgZmFpbENv
bmRpdGlvbikKICAgICB7Ci0gICAgICAgIGlmICh2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkp
CisgICAgICAgIGlmICh2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkpIHsKICAgICAgICAgICAg
IGRhdGFMb2coIiAgICBPU1IgZXhpdCAjIiwgbV9mdGxTdGF0ZS5qaXRDb2RlLT5vc3JFeGl0LnNp
emUoKSwgIiB3aXRoIGF2YWlsYWJpbGl0eTogIiwgbV9hdmFpbGFiaWxpdHksICJcbiIpOworICAg
ICAgICAgICAgaWYgKCFtX2F2YWlsYWJsZVJlY292ZXJpZXMuaXNFbXB0eSgpKQorICAgICAgICAg
ICAgICAgIGRhdGFMb2coIiAgICAgICAgQXZhaWxhYmxlIHJlY292ZXJpZXM6ICIsIGxpc3REdW1w
KG1fYXZhaWxhYmxlUmVjb3ZlcmllcyksICJcbiIpOworICAgICAgICB9CiAKICAgICAgICAgQVNT
RVJUKG1fZnRsU3RhdGUuaml0Q29kZS0+b3NyRXhpdC5zaXplKCkgPT0gbV9mdGxTdGF0ZS5maW5h
bGl6ZXItPm9zckV4aXQuc2l6ZSgpKTsKICAgICAgICAgCkBAIC00MTc4LDcgKzQ3ODcsNiBAQCBw
cml2YXRlOgogICAgICAgICBPU1JFeGl0JiBleGl0LCBFeGl0QXJndW1lbnRMaXN0JiBhcmd1bWVu
dHMsIEZvcm1hdHRlZFZhbHVlIGxvd1ZhbHVlLAogICAgICAgICBDb2RlT3JpZ2luIGNvZGVPcmln
aW4pCiAgICAgewotICAgICAgICBhcmd1bWVudHMuYXBwZW5kKG1fY2FsbEZyYW1lKTsKICAgICAg
ICAgaWYgKCEhbG93VmFsdWUpCiAgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGxvd1ZhbHVl
LnZhbHVlKCkpOwogICAgICAgICAKQEAgLTQyNDYsNyArNDg1NCw3IEBAIHByaXZhdGU6CiAgICAg
ewogICAgICAgICBleGl0Lm1fc3RhY2ttYXBJRCA9IG1fc3RhY2ttYXBJRHMrKzsKICAgICAgICAg
YXJndW1lbnRzLmluc2VydCgwLCBtX291dC5jb25zdEludDMyKE1hY3JvQXNzZW1ibGVyOjptYXhK
dW1wUmVwbGFjZW1lbnRTaXplKCkpKTsKLSAgICAgICAgYXJndW1lbnRzLmluc2VydCgwLCBtX291
dC5jb25zdEludDMyKGV4aXQubV9zdGFja21hcElEKSk7CisgICAgICAgIGFyZ3VtZW50cy5pbnNl
cnQoMCwgbV9vdXQuY29uc3RJbnQ2NChleGl0Lm1fc3RhY2ttYXBJRCkpOwogICAgICAgICAKICAg
ICAgICAgbV9vdXQuY2FsbChtX291dC5zdGFja21hcEludHJpbnNpYygpLCBhcmd1bWVudHMpOwog
ICAgIH0KQEAgLTQyNjAsNiArNDg2OCwxOSBAQCBwcml2YXRlOgogICAgICAgICBpZiAodHJ5VG9T
ZXRDb25zdGFudEV4aXRBcmd1bWVudChleGl0LCBpbmRleCwgbm9kZSkpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIAorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9hdmFp
bGFibGVSZWNvdmVyaWVzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBBdmFpbGFibGVSZWNv
dmVyeSByZWNvdmVyeSA9IG1fYXZhaWxhYmxlUmVjb3Zlcmllc1tpXTsKKyAgICAgICAgICAgIGlm
IChyZWNvdmVyeS5ub2RlKCkgIT0gbm9kZSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgZXhpdC5tX3ZhbHVlc1tpbmRleF0gPSBFeGl0VmFsdWU6
OnJlY292ZXJ5KAorICAgICAgICAgICAgICAgIHJlY292ZXJ5Lm9wY29kZSgpLCBhcmd1bWVudHMu
c2l6ZSgpLCBhcmd1bWVudHMuc2l6ZSgpICsgMSwKKyAgICAgICAgICAgICAgICByZWNvdmVyeS5m
b3JtYXQoKSk7CisgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5kKHJlY292ZXJ5LmxlZnQoKSk7
CisgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5kKHJlY292ZXJ5LnJpZ2h0KCkpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAogICAgICAgICBMb3dlcmVkTm9kZVZh
bHVlIHZhbHVlID0gbV9pbnQzMlZhbHVlcy5nZXQobm9kZSk7CiAgICAgICAgIGlmIChpc1ZhbGlk
KHZhbHVlKSkgewogICAgICAgICAgICAgYWRkRXhpdEFyZ3VtZW50KGV4aXQsIGFyZ3VtZW50cywg
aW5kZXgsIFZhbHVlRm9ybWF0SW50MzIsIHZhbHVlLnZhbHVlKCkpOwpAQCAtNDMyOSw2ICs0OTUw
LDI5IEBAIHByaXZhdGU6CiAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQodmFsdWUpOwogICAgIH0K
ICAgICAKKyAgICBib29sIGRvZXNLaWxsKEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAgIGlmIChl
ZGdlLmRvZXNOb3RLaWxsKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAor
ICAgICAgICBpZiAoZWRnZS0+aGFzQ29uc3RhbnQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHZvaWQgYWRk
QXZhaWxhYmxlUmVjb3ZlcnkoCisgICAgICAgIE5vZGUqIG5vZGUsIFJlY292ZXJ5T3Bjb2RlIG9w
Y29kZSwgTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCwgVmFsdWVGb3JtYXQgZm9ybWF0KQorICAg
IHsKKyAgICAgICAgbV9hdmFpbGFibGVSZWNvdmVyaWVzLmFwcGVuZChBdmFpbGFibGVSZWNvdmVy
eShub2RlLCBvcGNvZGUsIGxlZnQsIHJpZ2h0LCBmb3JtYXQpKTsKKyAgICB9CisgICAgCisgICAg
dm9pZCBhZGRBdmFpbGFibGVSZWNvdmVyeSgKKyAgICAgICAgRWRnZSBlZGdlLCBSZWNvdmVyeU9w
Y29kZSBvcGNvZGUsIExWYWx1ZSBsZWZ0LCBMVmFsdWUgcmlnaHQsIFZhbHVlRm9ybWF0IGZvcm1h
dCkKKyAgICB7CisgICAgICAgIGFkZEF2YWlsYWJsZVJlY292ZXJ5KGVkZ2Uubm9kZSgpLCBvcGNv
ZGUsIGxlZnQsIHJpZ2h0LCBmb3JtYXQpOworICAgIH0KKyAgICAKICAgICB2b2lkIHNldEludDMy
KE5vZGUqIG5vZGUsIExWYWx1ZSB2YWx1ZSkKICAgICB7CiAgICAgICAgIG1faW50MzJWYWx1ZXMu
c2V0KG5vZGUsIExvd2VyZWROb2RlVmFsdWUodmFsdWUsIG1faGlnaEJsb2NrKSk7CkBAIC00NDMx
LDM1ICs1MDc1LDM3IEBAIHByaXZhdGU6CiAgICAgfQogICAgIFR5cGVkUG9pbnRlciBwYXlsb2Fk
Rm9yKExWYWx1ZSBiYXNlLCBpbnQgb3BlcmFuZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZGRy
ZXNzRm9yKGJhc2UsIG9wZXJhbmQsIE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlw
dG9yLCBhc0JpdHMucGF5bG9hZCkpOworICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihiYXNlLCBv
cGVyYW5kLCBQYXlsb2FkT2Zmc2V0KTsKICAgICB9CiAgICAgVHlwZWRQb2ludGVyIHRhZ0ZvcihM
VmFsdWUgYmFzZSwgaW50IG9wZXJhbmQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRkcmVzc0Zv
cihiYXNlLCBvcGVyYW5kLCBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwg
YXNCaXRzLnRhZykpOworICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihiYXNlLCBvcGVyYW5kLCBU
YWdPZmZzZXQpOwogICAgIH0KLSAgICBUeXBlZFBvaW50ZXIgYWRkcmVzc0ZvcihpbnQgb3BlcmFu
ZCkKKyAgICBUeXBlZFBvaW50ZXIgYWRkcmVzc0ZvcihpbnQgb3BlcmFuZCwgcHRyZGlmZl90IG9m
ZnNldCA9IDApCiAgICAgewotICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihtX2NhbGxGcmFtZSwg
b3BlcmFuZCk7CisgICAgICAgIHJldHVybiBhZGRyZXNzRm9yKFZpcnR1YWxSZWdpc3RlcihvcGVy
YW5kKSwgb2Zmc2V0KTsKICAgICB9Ci0gICAgVHlwZWRQb2ludGVyIGFkZHJlc3NGb3IoVmlydHVh
bFJlZ2lzdGVyIG9wZXJhbmQpCisgICAgVHlwZWRQb2ludGVyIGFkZHJlc3NGb3IoVmlydHVhbFJl
Z2lzdGVyIG9wZXJhbmQsIHB0cmRpZmZfdCBvZmZzZXQgPSAwKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkZHJlc3NGb3IobV9jYWxsRnJhbWUsIG9wZXJhbmQub2Zmc2V0KCkpOworICAgICAgICBp
ZiAob3BlcmFuZC5pc0xvY2FsKCkpCisgICAgICAgICAgICByZXR1cm4gYWRkcmVzc0ZvcihtX2Nh
cHR1cmVkLCBvcGVyYW5kLm9mZnNldCgpLCBvZmZzZXQpOworICAgICAgICByZXR1cm4gYWRkcmVz
c0ZvcihtX2NhbGxGcmFtZSwgb3BlcmFuZC5vZmZzZXQoKSwgb2Zmc2V0KTsKICAgICB9CiAgICAg
VHlwZWRQb2ludGVyIHBheWxvYWRGb3IoaW50IG9wZXJhbmQpCiAgICAgewotICAgICAgICByZXR1
cm4gcGF5bG9hZEZvcihtX2NhbGxGcmFtZSwgb3BlcmFuZCk7CisgICAgICAgIHJldHVybiBwYXls
b2FkRm9yKFZpcnR1YWxSZWdpc3RlcihvcGVyYW5kKSk7CiAgICAgfQogICAgIFR5cGVkUG9pbnRl
ciBwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlciBvcGVyYW5kKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIHBheWxvYWRGb3IobV9jYWxsRnJhbWUsIG9wZXJhbmQub2Zmc2V0KCkpOworICAgICAgICBy
ZXR1cm4gYWRkcmVzc0ZvcihvcGVyYW5kLCBQYXlsb2FkT2Zmc2V0KTsKICAgICB9CiAgICAgVHlw
ZWRQb2ludGVyIHRhZ0ZvcihpbnQgb3BlcmFuZCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0YWdG
b3IobV9jYWxsRnJhbWUsIG9wZXJhbmQpOworICAgICAgICByZXR1cm4gdGFnRm9yKFZpcnR1YWxS
ZWdpc3RlcihvcGVyYW5kKSk7CiAgICAgfQogICAgIFR5cGVkUG9pbnRlciB0YWdGb3IoVmlydHVh
bFJlZ2lzdGVyIG9wZXJhbmQpCiAgICAgewotICAgICAgICByZXR1cm4gdGFnRm9yKG1fY2FsbEZy
YW1lLCBvcGVyYW5kLm9mZnNldCgpKTsKKyAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3Iob3BlcmFu
ZCwgVGFnT2Zmc2V0KTsKICAgICB9CiAgICAgCiAgICAgVk0mIHZtKCkgeyByZXR1cm4gbV9ncmFw
aC5tX3ZtOyB9CkBAIC00NDcxLDkgKzUxMTcsMTEgQEAgcHJpdmF0ZToKICAgICBPdXRwdXQgbV9v
dXQ7CiAgICAgCiAgICAgTEJhc2ljQmxvY2sgbV9wcm9sb2d1ZTsKKyAgICBMQmFzaWNCbG9jayBt
X2hhbmRsZUV4Y2VwdGlvbnM7CiAgICAgSGFzaE1hcDxCYXNpY0Jsb2NrKiwgTEJhc2ljQmxvY2s+
IG1fYmxvY2tzOwogICAgIAogICAgIExWYWx1ZSBtX2NhbGxGcmFtZTsKKyAgICBMVmFsdWUgbV9j
YXB0dXJlZDsKICAgICBMVmFsdWUgbV90YWdUeXBlTnVtYmVyOwogICAgIExWYWx1ZSBtX3RhZ01h
c2s7CiAgICAgCkBAIC00NDg5LDYgKzUxMzcsOCBAQCBwcml2YXRlOgogICAgIAogICAgIE9wZXJh
bmRzPEF2YWlsYWJpbGl0eT4gbV9hdmFpbGFiaWxpdHk7CiAgICAgCisgICAgVmVjdG9yPEF2YWls
YWJsZVJlY292ZXJ5LCAzPiBtX2F2YWlsYWJsZVJlY292ZXJpZXM7CisgICAgCiAgICAgSW5QbGFj
ZUFic3RyYWN0U3RhdGUgbV9zdGF0ZTsKICAgICBBYnN0cmFjdEludGVycHJldGVyPEluUGxhY2VB
YnN0cmFjdFN0YXRlPiBtX2ludGVycHJldGVyOwogICAgIEJhc2ljQmxvY2sqIG1faGlnaEJsb2Nr
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFbnRyeS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkVudHJ5LmNwcAppbmRleCAxODUwNDYw
NTQ3Mjg0MzRhYWE2YjZhNDRkMmVmNjBhNTFlN2RjMGMyLi4xZjZhMjkxOGY0ZWY3MjA5MmYzZmI2
ZDcwNzE2N2I1ZmEzMDZjZWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTE9TUkVudHJ5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkVu
dHJ5LmNwcApAQCAtNDMsNiArNDMsNyBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoCiB7CiAgICAg
Vk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBDb2RlQmxvY2sqIGJhc2VsaW5lID0gZGZnQ29kZUJs
b2NrLT5iYXNlbGluZVZlcnNpb24oKTsKKyAgICBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSA9
IGRmZ0NvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCk7CiAgICAgREZHOjpKSVRDb2RlKiBkZmdD
b2RlID0gZGZnQ29kZUJsb2NrLT5qaXRDb2RlKCktPmRmZygpOwogICAgIEZvck9TUkVudHJ5SklU
Q29kZSogZW50cnlDb2RlID0gZW50cnlDb2RlQmxvY2stPmppdENvZGUoKS0+ZnRsRm9yT1NSRW50
cnkoKTsKICAgICAKQEAgLTgwLDcgKzgxLDcgQEAgdm9pZCogcHJlcGFyZU9TUkVudHJ5KAogICAg
ICAgICBzY3JhdGNoW2xvY2FsXSA9IEpTVmFsdWU6OmVuY29kZSh2YWx1ZXMubG9jYWwobG9jYWwp
KTsKICAgICAKICAgICBpbnQgc3RhY2tGcmFtZVNpemUgPSBlbnRyeUNvZGUtPmNvbW1vbi5yZXF1
aXJlZFJlZ2lzdGVyQ291bnRGb3JFeGVjdXRpb25BbmRFeGl0KCk7Ci0gICAgaWYgKCF2bS5pbnRl
cnByZXRlci0+c3RhY2soKS5ncm93KCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJG
b3JMb2NhbChzdGFja0ZyYW1lU2l6ZSkub2Zmc2V0KCldKSkgeworICAgIGlmICghdm0uaW50ZXJw
cmV0ZXItPnN0YWNrKCkuZW5zdXJlQ2FwYWNpdHlGb3IoJmV4ZWMtPnJlZ2lzdGVycygpW3ZpcnR1
YWxSZWdpc3RlckZvckxvY2FsKHN0YWNrRnJhbWVTaXplIC0gMSkub2Zmc2V0KCldKSkgewogICAg
ICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQogICAgICAgICAgICAgZGF0YUxvZygiICAg
IE9TUiBmYWlsZWQgYmVjYXVzZSBzdGFjayBncm93dGggZmFpbGVkLlxuIik7CiAgICAgICAgIHJl
dHVybiAwOwpAQCAtODgsNyArODksOSBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoCiAgICAgCiAg
ICAgZXhlYy0+c2V0Q29kZUJsb2NrKGVudHJ5Q29kZUJsb2NrKTsKICAgICAKLSAgICB2b2lkKiBy
ZXN1bHQgPSBlbnRyeUNvZGUtPmFkZHJlc3NGb3JDYWxsKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsK
KyAgICB2b2lkKiByZXN1bHQgPSBlbnRyeUNvZGUtPmFkZHJlc3NGb3JDYWxsKAorICAgICAgICB2
bSwgZXhlY3V0YWJsZSwgQXJpdHlDaGVja05vdFJlcXVpcmVkLAorICAgICAgICBSZWdpc3RlclBy
ZXNlcnZhdGlvbk5vdFJlcXVpcmVkKS5leGVjdXRhYmxlQWRkcmVzcygpOwogICAgIGlmIChPcHRp
b25zOjp2ZXJib3NlT1NSKCkpCiAgICAgICAgIGRhdGFMb2coIiAgICBFbnRyeSB3aWxsIHN1Y2Nl
ZWQsIGdvaW5nIHRvIGFkZHJlc3MiLCBSYXdQb2ludGVyKHJlc3VsdCksICJcbiIpOwogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXQuaAppbmRleCA0ZTQ3OWViZGQwY2E1OTg5
MGUxZmEzYTI5YTg5YzU2ZTAwZjgwNzFmLi44N2I0YmQwY2QzODEzYTEyY2Q0ZTI3MzNmZDFhZjY3
Yzk3NTg1Y2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4
aXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXQuaApAQCAtMTY2
LDYgKzE2NiwxMSBAQCBzdHJ1Y3QgT1NSRXhpdCA6IHB1YmxpYyBERkc6Ok9TUkV4aXRCYXNlIHsK
ICAgICB1aW50MzJfdCBtX3N0YWNrbWFwSUQ7CiAgICAgCiAgICAgQ29kZUxvY2F0aW9uSnVtcCBj
b2RlTG9jYXRpb25Gb3JSZXBhdGNoKENvZGVCbG9jayogZnRsQ29kZUJsb2NrKSBjb25zdDsKKyAg
ICAKKyAgICBib29sIGNvbnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlKENvZGVCbG9jayog
cHJvZmlsZWRDb2RlQmxvY2spCisgICAgeworICAgICAgICByZXR1cm4gT1NSRXhpdEJhc2U6OmNv
bnNpZGVyQWRkaW5nQXNGcmVxdWVudEV4aXRTaXRlKHByb2ZpbGVkQ29kZUJsb2NrLCBFeGl0RnJv
bUZUTCk7CisgICAgfQogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwCmluZGV4IDA3NmE0
OTVlYTY1YjEyYWFhZGQ4OWJkMzg4MGJkZmNmYmRmMzIyMjcuLmI1ODZlZjJiNWVhZjIyNjYwMTk0
N2IwMWQ5NDY1ODk3ODZjMDU5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTE9TUkV4aXRDb21waWxlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDcgKzM1LDkgQEAKICNpbmNsdWRlICJGVExPU1JF
eGl0LmgiCiAjaW5jbHVkZSAiRlRMU2F2ZVJlc3RvcmUuaCIKICNpbmNsdWRlICJPcGVyYW5kc0lu
bGluZXMuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2lu
Y2x1ZGUgIk9wZXJhdGlvbnMuaCIKKyNpbmNsdWRlICJSZWdpc3RlclByZXNlcnZhdGlvbldyYXBw
ZXJHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJSZXBhdGNoQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgRlRMIHsKQEAgLTYyLDkgKzY0LDEwIEBAIHN0YXRpYyB2b2lkIGNvbXBp
bGVTdHViKAogICAgIAogICAgIC8vIFdlIG5lZWQgc2NyYXRjaCBzcGFjZSB0byBzYXZlIGFsbCBy
ZWdpc3RlcnMgYW5kIHRvIGJ1aWxkIHVwIHRoZSBKU1N0YWNrLgogICAgIC8vIFVzZSBhIHNjcmF0
Y2ggYnVmZmVyIHRvIHRyYW5zZmVyIGFsbCB2YWx1ZXMuCi0gICAgU2NyYXRjaEJ1ZmZlciogc2Ny
YXRjaEJ1ZmZlciA9IHZtLT5zY3JhdGNoQnVmZmVyRm9yU2l6ZShzaXplb2YoRW5jb2RlZEpTVmFs
dWUpICogZXhpdC5tX3ZhbHVlcy5zaXplKCkgKyByZXF1aXJlZFNjcmF0Y2hNZW1vcnlTaXplSW5C
eXRlcygpKTsKKyAgICBTY3JhdGNoQnVmZmVyKiBzY3JhdGNoQnVmZmVyID0gdm0tPnNjcmF0Y2hC
dWZmZXJGb3JTaXplKHNpemVvZihFbmNvZGVkSlNWYWx1ZSkgKiBleGl0Lm1fdmFsdWVzLnNpemUo
KSArIHJlcXVpcmVkU2NyYXRjaE1lbW9yeVNpemVJbkJ5dGVzKCkgKyBqaXRDb2RlLT51bndpbmRJ
bmZvLm1fcmVnaXN0ZXJzLnNpemUoKSAqIHNpemVvZih1aW50NjRfdCkpOwogICAgIEVuY29kZWRK
U1ZhbHVlKiBzY3JhdGNoID0gc2NyYXRjaEJ1ZmZlciA/IHN0YXRpY19jYXN0PEVuY29kZWRKU1Zh
bHVlKj4oc2NyYXRjaEJ1ZmZlci0+ZGF0YUJ1ZmZlcigpKSA6IDA7CiAgICAgY2hhciogcmVnaXN0
ZXJTY3JhdGNoID0gYml0d2lzZV9jYXN0PGNoYXIqPihzY3JhdGNoICsgZXhpdC5tX3ZhbHVlcy5z
aXplKCkpOworICAgIHVpbnQ2NF90KiB1bndpbmRTY3JhdGNoID0gYml0d2lzZV9jYXN0PHVpbnQ2
NF90Kj4ocmVnaXN0ZXJTY3JhdGNoICsgcmVxdWlyZWRTY3JhdGNoTWVtb3J5U2l6ZUluQnl0ZXMo
KSk7CiAgICAgCiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgc2F2ZUFsbFJlZ2lzdGVycygpIGhhcyBh
IHBsYWNlIG9uIHRvcCBvZiB0aGUgc3RhY2sgdG8gc3BpbGwgdGhpbmdzLiBUaGF0CiAgICAgLy8g
ZnVuY3Rpb24gZXhwZWN0cyB0byBiZSBhYmxlIHRvIHVzZSB0b3Agb2Ygc3RhY2sgZm9yIHNjcmF0
Y2ggbWVtb3J5LgpAQCAtNzUsMTggKzc4LDI3IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKAog
ICAgIGppdC5wb3AoR1BSSW5mbzo6cmVnVDApOwogICAgIGppdC5wb3AoR1BSSW5mbzo6cmVnVDAp
OwogICAgIAorICAgIGlmICh2bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyICYmIGNvZGVCbG9jay0+
aml0Q29kZSgpLT5kZmdDb21tb24oKS0+Y29tcGlsYXRpb24pIHsKKyAgICAgICAgUHJvZmlsZXI6
OkRhdGFiYXNlJiBkYXRhYmFzZSA9ICp2bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyOworICAgICAg
ICBQcm9maWxlcjo6Q29tcGlsYXRpb24qIGNvbXBpbGF0aW9uID0gY29kZUJsb2NrLT5qaXRDb2Rl
KCktPmRmZ0NvbW1vbigpLT5jb21waWxhdGlvbi5nZXQoKTsKKyAgICAgICAgCisgICAgICAgIFBy
b2ZpbGVyOjpPU1JFeGl0KiBwcm9maWxlckV4aXQgPSBjb21waWxhdGlvbi0+YWRkT1NSRXhpdCgK
KyAgICAgICAgICAgIGV4aXRJRCwgUHJvZmlsZXI6Ok9yaWdpblN0YWNrKGRhdGFiYXNlLCBjb2Rl
QmxvY2ssIGV4aXQubV9jb2RlT3JpZ2luKSwKKyAgICAgICAgICAgIGV4aXQubV9raW5kLCBpc1dh
dGNocG9pbnQoZXhpdC5tX2tpbmQpKTsKKyAgICAgICAgaml0LmFkZDY0KENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbTMyKDEpLCBDQ2FsbEhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhwcm9maWxlckV4
aXQtPmNvdW50ZXJBZGRyZXNzKCkpKTsKKyAgICB9CisKICAgICAvLyBUaGUgcmVtYWluaW5nIGNv
ZGUgYXNzdW1lcyB0aGF0IFNQL0ZQIGFyZSBpbiB0aGUgc2FtZSBzdGF0ZSB0aGF0IHRoZXkgd2Vy
ZSBpbiB0aGUgRlRMJ3MKICAgICAvLyBjYWxsIGZyYW1lLgogICAgIAogICAgIC8vIEdldCB0aGUg
Y2FsbCBmcmFtZSBhbmQgdGFnIHRoaW5naWVzLgogICAgIC8vIFJlc3RvcmUgdGhlIGV4aXRpbmcg
ZnVuY3Rpb24ncyBjYWxsRnJhbWUgdmFsdWUgaW50byBhIHJlZ1Q0Ci0gICAgcmVjb3JkLT5sb2Nh
dGlvbnNbMF0ucmVzdG9yZUludG8oaml0LCBqaXRDb2RlLT5zdGFja21hcHMsIHJlZ2lzdGVyU2Ny
YXRjaCwgR1BSSW5mbzo6cmVnVDQpOwogICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tNjQoVGFnVHlwZU51bWJlciksIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7
CiAgICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW02NChUYWdNYXNrKSwgR1BS
SW5mbzo6dGFnTWFza1JlZ2lzdGVyKTsKICAgICAKICAgICAvLyBEbyBzb21lIHZhbHVlIHByb2Zp
bGluZy4KICAgICBpZiAoZXhpdC5tX3Byb2ZpbGVWYWx1ZUZvcm1hdCAhPSBJbnZhbGlkVmFsdWVG
b3JtYXQpIHsKLSAgICAgICAgcmVjb3JkLT5sb2NhdGlvbnNbMV0ucmVzdG9yZUludG8oaml0LCBq
aXRDb2RlLT5zdGFja21hcHMsIHJlZ2lzdGVyU2NyYXRjaCwgR1BSSW5mbzo6cmVnVDApOworICAg
ICAgICByZWNvcmQtPmxvY2F0aW9uc1swXS5yZXN0b3JlSW50byhqaXQsIGppdENvZGUtPnN0YWNr
bWFwcywgcmVnaXN0ZXJTY3JhdGNoLCBHUFJJbmZvOjpyZWdUMCk7CiAgICAgICAgIHJlYm94QWNj
b3JkaW5nVG9Gb3JtYXQoCiAgICAgICAgICAgICBleGl0Lm1fcHJvZmlsZVZhbHVlRm9ybWF0LCBq
aXQsIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6cmVnVDIpOwogICAg
ICAgICAKQEAgLTEzMCw3ICsxNDIsNDUgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0dWIoCiAgICAg
ICAgIGNhc2UgRXhpdFZhbHVlSW5KU1N0YWNrQXNJbnQzMjoKICAgICAgICAgY2FzZSBFeGl0VmFs
dWVJbkpTU3RhY2tBc0ludDUyOgogICAgICAgICBjYXNlIEV4aXRWYWx1ZUluSlNTdGFja0FzRG91
YmxlOgotICAgICAgICAgICAgaml0LmxvYWQ2NChBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3Io
dmFsdWUudmlydHVhbFJlZ2lzdGVyKCksIEdQUkluZm86OnJlZ1Q0KSwgR1BSSW5mbzo6cmVnVDAp
OworICAgICAgICAgICAgaml0LmxvYWQ2NChBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IodmFs
dWUudmlydHVhbFJlZ2lzdGVyKCkpLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIEV4aXRWYWx1ZVJlY292ZXJ5OgorICAgICAg
ICAgICAgcmVjb3JkLT5sb2NhdGlvbnNbdmFsdWUucmlnaHRSZWNvdmVyeUFyZ3VtZW50KCldLnJl
c3RvcmVJbnRvKAorICAgICAgICAgICAgICAgIGppdCwgaml0Q29kZS0+c3RhY2ttYXBzLCByZWdp
c3RlclNjcmF0Y2gsIEdQUkluZm86OnJlZ1QxKTsKKyAgICAgICAgICAgIHJlY29yZC0+bG9jYXRp
b25zW3ZhbHVlLmxlZnRSZWNvdmVyeUFyZ3VtZW50KCldLnJlc3RvcmVJbnRvKAorICAgICAgICAg
ICAgICAgIGppdCwgaml0Q29kZS0+c3RhY2ttYXBzLCByZWdpc3RlclNjcmF0Y2gsIEdQUkluZm86
OnJlZ1QwKTsKKyAgICAgICAgICAgIHN3aXRjaCAodmFsdWUucmVjb3ZlcnlPcGNvZGUoKSkgewor
ICAgICAgICAgICAgY2FzZSBBZGRSZWNvdmVyeToKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHZh
bHVlLnJlY292ZXJ5Rm9ybWF0KCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFZhbHVlRm9ybWF0
SW50MzI6CisgICAgICAgICAgICAgICAgICAgIGppdC5hZGQzMihHUFJJbmZvOjpyZWdUMSwgR1BS
SW5mbzo6cmVnVDApOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICBjYXNlIFZhbHVlRm9ybWF0SW50NTI6CisgICAgICAgICAgICAgICAgICAgIGppdC5hZGQ2NChH
UFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFN1
YlJlY292ZXJ5OgorICAgICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUucmVjb3ZlcnlGb3JtYXQo
KSkgeworICAgICAgICAgICAgICAgIGNhc2UgVmFsdWVGb3JtYXRJbnQzMjoKKyAgICAgICAgICAg
ICAgICAgICAgaml0LnN1YjMyKEdQUkluZm86OnJlZ1QxLCBHUFJJbmZvOjpyZWdUMCk7CisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgVmFsdWVGb3JtYXRJ
bnQ1MjoKKyAgICAgICAgICAgICAgICAgICAgaml0LnN1YjY0KEdQUkluZm86OnJlZ1QxLCBHUFJJ
bmZvOjpyZWdUMCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGRl
ZmF1bHQ6CkBAIC0xNDEsNiArMTkxLDEzNyBAQCBzdGF0aWMgdm9pZCBjb21waWxlU3R1YigKICAg
ICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIHNjcmF0Y2ggKyBpbmRleCk7CiAgICAg
fQogICAgIAorICAgIC8vIEhlbmNlZm9ydGggd2UgbWFrZSBpdCBsb29rIGxpa2UgdGhlIGV4aXRp
bmcgZnVuY3Rpb24gd2FzIGNhbGxlZCB0aHJvdWdoIGEgcmVnaXN0ZXIKKyAgICAvLyBwcmVzZXJ2
YXRpb24gd3JhcHBlci4gVGhpcyBpbXBsaWVzIHRoYXQgRlAgbXVzdCBiZSBudWRnZWQgZG93biBi
eSBhIGNlcnRhaW4gYW1vdW50LiBUaGVuCisgICAgLy8gd2UgcmVzdG9yZSB0aGUgdmFyaW91cyB0
aGluZ3MgYWNjb3JkaW5nIHRvIGVpdGhlciBleGl0Lm1fdmFsdWVzIG9yIGJ5IGNvcHlpbmcgZnJv
bSB0aGUKKyAgICAvLyBvbGQgZnJhbWUsIGFuZCBmaW5hbGx5IHdlIHNhdmUgdGhlIHZhcmlvdXMg
Y2FsbGVlLXNhdmUgcmVnaXN0ZXJzIGludG8gd2hlcmUgdGhlCisgICAgLy8gcmVzdG9yYXRpb24g
dGh1bmsgd291bGQgcmVzdG9yZSB0aGVtIGZyb20uCisgICAgCisgICAgcHRyZGlmZl90IG9mZnNl
dCA9IHJlZ2lzdGVyUHJlc2VydmF0aW9uT2Zmc2V0KCk7CisgICAgUmVnaXN0ZXJTZXQgdG9TYXZl
ID0gcmVnaXN0ZXJzVG9QcmVzZXJ2ZSgpOworICAgIAorICAgIC8vIEJlZm9yZSB3ZSBzdGFydCBt
ZXNzaW5nIHdpdGggdGhlIGZyYW1lLCB3ZSBuZWVkIHRvIHNldCBhc2lkZSBhbnkgcmVnaXN0ZXJz
IHRoYXQgdGhlCisgICAgLy8gRlRMIGNvZGUgd2FzIHByZXNlcnZpbmcuCisgICAgZm9yICh1bnNp
Z25lZCBpID0gaml0Q29kZS0+dW53aW5kSW5mby5tX3JlZ2lzdGVycy5zaXplKCk7IGktLTspIHsK
KyAgICAgICAgUmVnaXN0ZXJBdE9mZnNldCBlbnRyeSA9IGppdENvZGUtPnVud2luZEluZm8ubV9y
ZWdpc3RlcnNbaV07CisgICAgICAgIGppdC5sb2FkNjQoCisgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIGVudHJ5
Lm9mZnNldCgpKSwKKyAgICAgICAgICAgIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgaml0LnN0
b3JlNjQoR1BSSW5mbzo6cmVnVDAsIHVud2luZFNjcmF0Y2ggKyBpKTsKKyAgICB9CisgICAgCisg
ICAgaml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OnBheWxvYWRGb3IoSlNTdGFjazo6QXJndW1lbnRD
b3VudCksIEdQUkluZm86OnJlZ1QyKTsKKyAgICAKKyAgICAvLyBMZXQncyBzYXkgdGhhdCB0aGUg
RlRMIGZ1bmN0aW9uIGhhZCBmYWlsZWQgaXRzIGFyaXR5IGNoZWNrLiBJbiB0aGF0IGNhc2UsIHRo
ZSBzdGFjayB3aWxsCisgICAgLy8gY29udGFpbiBzb21lIGV4dHJhIHN0dWZmLgorICAgIC8vCisg
ICAgLy8gRmlyc3Qgd2UgY29tcHV0ZSB0aGUgcGFkZGVkIHN0YWNrIHNwYWNlOgorICAgIC8vCisg
ICAgLy8gICAgIHBhZGRlZFN0YWNrU3BhY2UgPSByb3VuZFVwKGNvZGVCbG9jay0+bnVtUGFyYW1l
dGVycyAtIHJlZ1QyICsgMSkKKyAgICAvLworICAgIC8vIFRoZSBzdGFjayB3aWxsIGhhdmUgcmVn
VDIgKyBDYWxsRnJhbWVIZWFkZXJTaXplIHN0dWZmLCBidXQgYWJvdmUgaXQgdGhlcmUgd2lsbCBi
ZQorICAgIC8vIHBhZGRlZFN0YWNrU3BhY2UgZ3VuayB1c2VkIGJ5IHRoZSBhcml0eSBjaGVjayBm
YWlsIHJlc3RvcmF0aW9uIHRodW5rLiBXaGVuIHRoYXQgaGFwcGVucworICAgIC8vIHdlIHdhbnQg
dG8gbWFrZSB0aGUgc3RhY2sgbG9vayBsaWtlIHRoaXMsIGZyb20gaGlnaGVyIGFkZHJlc3NlcyBk
b3duOgorICAgIC8vCisgICAgLy8gICAgIC0gcmVnaXN0ZXIgcHJlc2VydmF0aW9uIHJldHVybiBQ
QworICAgIC8vICAgICAtIHByZXNlcnZlZCByZWdpc3RlcnMKKyAgICAvLyAgICAgLSBhcml0eSBj
aGVjayBmYWlsIHJldHVybiBQQworICAgIC8vICAgICAtIGFyZ3VtZW50IHBhZGRpbmcKKyAgICAv
LyAgICAgLSBhY3R1YWwgYXJndW1lbnRzCisgICAgLy8gICAgIC0gY2FsbCBmcmFtZSBoZWFkZXIK
KyAgICAvLworICAgIC8vIFNvIHRoYXQgdGhlIGFjdHVhbCBjYWxsIGZyYW1lIGhlYWRlciBhcHBl
YXJzIHRvIHJldHVybiB0byB0aGUgYXJpdHkgY2hlY2sgZmFpbCByZXR1cm4KKyAgICAvLyBQQywg
YW5kIHRoYXQgdGhlbiByZXR1cm5zIHRvIHRoZSByZWdpc3RlciBwcmVzZXJ2YXRpb24gdGh1bmsu
IFRoZSBhcml0eSBjaGVjayB0aHVuayB0aGF0CisgICAgLy8gd2UgcmV0dXJuIHRvIHdpbGwgaGF2
ZSB0aGUgcGFkZGluZyBzaXplIGVuY29kZWQgaW50byBpdC4gSXQgd2lsbCB0aGVuIGtub3cgdG8g
cmV0dXJuCisgICAgLy8gaW50byB0aGUgcmVnaXN0ZXIgcHJlc2VydmF0aW9uIHRodW5rLCB3aGlj
aCB1c2VzIHRoZSBhcmd1bWVudCBjb3VudCB0byBmaWd1cmUgb3V0IHdoZXJlCisgICAgLy8gcmVn
aXN0ZXJzIGFyZSBwcmVzZXJ2ZWQuCisKKyAgICAvLyBUaGlzIGNvZGUgYXNzdW1lcyB0aGF0IHdl
J3JlIGRlYWxpbmcgd2l0aCBGdW5jdGlvbkNvZGUuCisgICAgUkVMRUFTRV9BU1NFUlQoY29kZUJs
b2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSk7CisgICAgCisgICAgaml0LmFkZDMyKAor
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKC1jb2RlQmxvY2stPm51bVBhcmFt
ZXRlcnMoKSksIEdQUkluZm86OnJlZ1QyLAorICAgICAgICBHUFJJbmZvOjpyZWdUMyk7CisgICAg
TWFjcm9Bc3NlbWJsZXI6Okp1bXAgYXJpdHlJbnRhY3QgPSBqaXQuYnJhbmNoVGVzdDMyKE1hY3Jv
QXNzZW1ibGVyOjpaZXJvLCBHUFJJbmZvOjpyZWdUMyk7CisgICAgaml0Lm5lZzMyKEdQUkluZm86
OnJlZ1QzKTsKKyAgICBqaXQuYWRkMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigxICsg
c3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSAtIDEpLCBHUFJJbmZvOjpyZWdUMyk7CisgICAgaml0
LmFuZDMyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoLXN0YWNrQWxpZ25tZW50UmVnaXN0
ZXJzKCkpLCBHUFJJbmZvOjpyZWdUMyk7CisgICAgaml0LmFkZDMyKEdQUkluZm86OnJlZ1QzLCBH
UFJJbmZvOjpyZWdUMik7CisgICAgYXJpdHlJbnRhY3QubGluaygmaml0KTsKKworICAgIC8vIEZp
cnN0IHNldCB1cCBTUCBzbyB0aGF0IG91ciBkYXRhIGRvZXNuJ3QgZ2V0IGNsb2JiZXJlZCBieSBz
aWduYWxzLgorICAgIGppdC5hZGRQdHIoCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIoCisgICAgICAgICAgICBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2YoCisgICAgICAgICAg
ICAgICAgc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwKKyAgICAgICAgICAgICAgICAtcmVnaXN0
ZXJQcmVzZXJ2YXRpb25PZmZzZXQoKSAtIGV4aXQubV92YWx1ZXMubnVtYmVyT2ZMb2NhbHMoKSAq
IHNpemVvZihSZWdpc3RlcikgLSBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkpLAorICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVy
OjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgCisgICAgaml0LnN1YlB0cigKKyAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihyZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCgp
KSwKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAK
KyAgICAvLyBDb3B5IHRoZSBvbGQgZnJhbWUgZGF0YSBpbnRvIGl0cyBuZXcgbG9jYXRpb24uCisg
ICAgaml0LmFkZDMyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoSlNTdGFjazo6Q2FsbEZy
YW1lSGVhZGVyU2l6ZSksIEdQUkluZm86OnJlZ1QyKTsKKyAgICBqaXQubW92ZShNYWNyb0Fzc2Vt
Ymxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QxKTsKKyAgICBNYWNyb0Fz
c2VtYmxlcjo6TGFiZWwgbG9vcCA9IGppdC5sYWJlbCgpOworICAgIGppdC5zdWIzMihNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbTMyKDEpLCBHUFJJbmZvOjpyZWdUMik7CisgICAgaml0LmxvYWQ2
NChNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMSwgb2Zmc2V0KSwgR1BSSW5m
bzo6cmVnVDApOworICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdU
MSk7CisgICAgaml0LmFkZFB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHNpemVvZihS
ZWdpc3RlcikpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0LmJyYW5jaFRlc3QzMihNYWNyb0Fz
c2VtYmxlcjo6Tm9uWmVybywgR1BSSW5mbzo6cmVnVDIpLmxpbmtUbyhsb29wLCAmaml0KTsKKyAg
ICAKKyAgICAvLyBBdCB0aGlzIHBvaW50IHJlZ1QxIHBvaW50cyB0byB3aGVyZSB3ZSB3b3VsZCBz
YXZlIG91ciByZWdpc3RlcnMuIFNhdmUgdGhlbSBoZXJlLgorICAgIHB0cmRpZmZfdCBjdXJyZW50
T2Zmc2V0ID0gMDsKKyAgICBmb3IgKEdQUlJlZyBncHIgPSBBc3NlbWJseUhlbHBlcnM6OmZpcnN0
UmVnaXN0ZXIoKTsgZ3ByIDw9IEFzc2VtYmx5SGVscGVyczo6bGFzdFJlZ2lzdGVyKCk7IGdwciA9
IHN0YXRpY19jYXN0PEdQUlJlZz4oZ3ByICsgMSkpIHsKKyAgICAgICAgaWYgKCF0b1NhdmUuZ2V0
KGdwcikpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY3VycmVudE9mZnNldCArPSBz
aXplb2YoUmVnaXN0ZXIpOworICAgICAgICB1bnNpZ25lZCB1bndpbmRJbmRleCA9IGppdENvZGUt
PnVud2luZEluZm8uaW5kZXhPZihncHIpOworICAgICAgICBpZiAodW53aW5kSW5kZXggPT0gVUlO
VF9NQVgpIHsKKyAgICAgICAgICAgIC8vIFRoZSBGVEwgY29tcGlsYXRpb24gZGlkbid0IHByZXNl
cnZlIHRoaXMgcmVnaXN0ZXIuIFRoaXMgbWVhbnMgdGhhdCBpdCBhbHNvCisgICAgICAgICAgICAv
LyBkaWRuJ3QgdXNlIHRoZSByZWdpc3Rlci4gU28gaXRzIHZhbHVlIGF0IHRoZSBiZWdpbm5pbmcg
b2YgT1NSIGV4aXQgc2hvdWxkIGJlCisgICAgICAgICAgICAvLyBwcmVzZXJ2ZWQgYnkgdGhlIHRo
dW5rLiBMdWNraWx5LCB3ZSBzYXZlZCBhbGwgcmVnaXN0ZXJzIGludG8gdGhlIHJlZ2lzdGVyCisg
ICAgICAgICAgICAvLyBzY3JhdGNoIGJ1ZmZlciwgc28gd2UgY2FuIHJlc3RvcmUgdGhlbSBmcm9t
IHRoZXJlLgorICAgICAgICAgICAgaml0LmxvYWQ2NChyZWdpc3RlclNjcmF0Y2ggKyBvZmZzZXRP
ZkdQUihncHIpLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAvLyBUaGUgRlRMIGNvbXBpbGF0aW9uIHByZXNlcnZlZCB0aGUgcmVnaXN0ZXIuIEl0cyBuZXcg
dmFsdWUgaXMgdGhlcmVmb3JlCisgICAgICAgICAgICAvLyBpcnJlbGV2YW50LCBidXQgd2UgY2Fu
IGdldCB0aGUgdmFsdWUgdGhhdCB3YXMgcHJlc2VydmVkIGJ5IHVzaW5nIHRoZSB1bndpbmQKKyAg
ICAgICAgICAgIC8vIGRhdGEuIFdlJ3ZlIGFscmVhZHkgY29waWVkIGFsbCB1bndpbmQtYWJsZSBw
cmVzZXJ2ZWQgcmVnaXN0ZXJzIGludG8gdGhlIHVud2luZAorICAgICAgICAgICAgLy8gc2NyYXRj
aCBidWZmZXIsIHNvIHdlIGNhbiBnZXQgaXQgZnJvbSB0aGVyZS4KKyAgICAgICAgICAgIGppdC5s
b2FkNjQodW53aW5kU2NyYXRjaCArIHVud2luZEluZGV4LCBHUFJJbmZvOjpyZWdUMCk7CisgICAg
ICAgIH0KKyAgICAgICAgaml0LnN0b3JlNjQoR1BSSW5mbzo6cmVnVDAsIEFzc2VtYmx5SGVscGVy
czo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMSwgY3VycmVudE9mZnNldCkpOworICAgIH0KKyAgICAK
KyAgICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIHJldHVybiBpbnRvIHRoZSByZWdp
c3RlciByZXN0b3JhdGlvbiB0aHVuay4gVGhpcyB3b3JrcworICAgIC8vIGRpZmZlcmVudGx5IGRl
cGVuZGluZyBvbiB3aGV0aGVyIG9yIG5vdCB3ZSBoYWQgYXJpdHkgaXNzdWVzLgorICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIGFyaXR5SW50YWN0Rm9yUmV0dXJuUEMgPQorICAgICAgICBqaXQuYnJh
bmNoVGVzdDMyKE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBHUFJJbmZvOjpyZWdUMyk7CisgICAgCisg
ICAgLy8gVGhlIHJldHVybiBQQyBpbiB0aGUgY2FsbCBmcmFtZSBoZWFkZXIgcG9pbnRzIGF0IGV4
YWN0bHkgdGhlIHJpZ2h0IGFyaXR5IHJlc3RvcmF0aW9uCisgICAgLy8gdGh1bmsuIFdlIGRvbid0
IHdhbnQgdG8gY2hhbmdlIHRoYXQuIEJ1dCB0aGUgYXJpdHkgcmVzdG9yYXRpb24gdGh1bmsncyBm
cmFtZSBoYXMgYQorICAgIC8vIHJldHVybiBQQyBhbmQgd2Ugd2FudCB0byByZXJvdXRlIHRoYXQg
dG8gb3VyIHJlZ2lzdGVyIHJlc3RvcmF0aW9uIHRodW5rLiBUaGUgYXJpdHkKKyAgICAvLyByZXN0
b3JhdGlvbidzIHJldHVybiBQQyBqdXN0IGp1c3QgYmVsb3cgcmVnVDEsIGFuZCB0aGUgcmVnaXN0
ZXIgcmVzdG9yYXRpb24ncyByZXR1cm4gUEMKKyAgICAvLyBpcyByaWdodCBhdCByZWdUMS4KKyAg
ICBqaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMSwgLXN0
YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkpLCBHUFJJbmZvOjpyZWdUMCk7
CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSk7CisgICAg
aml0LnN0b3JlUHRyKAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cih2bS0+
Z2V0Q1RJU3R1YihyZWdpc3RlclJlc3RvcmF0aW9uVGh1bmtHZW5lcmF0b3IpLmNvZGUoKS5leGVj
dXRhYmxlQWRkcmVzcygpKSwKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5m
bzo6cmVnVDEsIC1zdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpKSk7Cisg
ICAgCisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgYXJpdHlSZXR1cm5QQ1JlYWR5ID0gaml0Lmp1
bXAoKTsKKworICAgIGFyaXR5SW50YWN0Rm9yUmV0dXJuUEMubGluaygmaml0KTsKKyAgICAKKyAg
ICBqaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6ZnJh
bWVQb2ludGVyUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSksIEdQUkluZm86
OnJlZ1QwKTsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1Qx
KTsKKyAgICBqaXQuc3RvcmVQdHIoCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
UHRyKHZtLT5nZXRDVElTdHViKHJlZ2lzdGVyUmVzdG9yYXRpb25UaHVua0dlbmVyYXRvcikuY29k
ZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpLAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJu
UENPZmZzZXQoKSkpOworICAgIAorICAgIGFyaXR5UmV0dXJuUENSZWFkeS5saW5rKCZqaXQpOwor
ICAgIAogICAgIC8vIE5vdyBnZXQgc3RhdGUgb3V0IG9mIHRoZSBzY3JhdGNoIGJ1ZmZlciBhbmQg
cGxhY2UgaXQgYmFjayBpbnRvIHRoZSBzdGFjay4gVGhpcyBwYXJ0IGRvZXMKICAgICAvLyBhbGwg
cmVib3hpbmcuCiAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IGV4aXQubV92YWx1ZXMuc2l6ZSgp
OyBpbmRleC0tOykgewpAQCAtMTUwLDI2ICszMzEsMTYgQEAgc3RhdGljIHZvaWQgY29tcGlsZVN0
dWIoCiAgICAgICAgIGppdC5sb2FkNjQoc2NyYXRjaCArIGluZGV4LCBHUFJJbmZvOjpyZWdUMCk7
CiAgICAgICAgIHJlYm94QWNjb3JkaW5nVG9Gb3JtYXQoCiAgICAgICAgICAgICB2YWx1ZS52YWx1
ZUZvcm1hdCgpLCBqaXQsIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6
cmVnVDIpOwotICAgICAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgQXNzZW1ibHlIZWxw
ZXJzOjphZGRyZXNzRm9yKHN0YXRpY19jYXN0PFZpcnR1YWxSZWdpc3Rlcj4ob3BlcmFuZCksIEdQ
UkluZm86OnJlZ1Q0KSk7CisgICAgICAgIGppdC5zdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBBc3Nl
bWJseUhlbHBlcnM6OmFkZHJlc3NGb3Ioc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihvcGVy
YW5kKSkpOwogICAgIH0KICAgICAKLSAgICAvLyBSZXN0b3JlIHRoZSBvbGQgc3RhY2sgcG9pbnRl
ciBhbmQgdGhlbiBwdXQgcmVnVDQgaW50byBjYWxsRnJhbWVSZWdpc3Rlci4gVGhlIGlkZWEgaXMK
LSAgICAvLyB0aGF0IHRoZSBGVEwgY2FsbCBmcmFtZSBpcyBwdXNoZWQgb250byB0aGUgSlMgY2Fs
bCBmcmFtZSBhbmQgd2UgY2FuIHJlY292ZXIgdGhlIG9sZAotICAgIC8vIHZhbHVlIG9mIHRoZSBz
dGFjayBwb2ludGVyIGJ5IHBvcHBpbmcgdGhlIEZUTCBjYWxsIGZyYW1lLiBXZSBhbHJlYWR5IGtu
b3cgd2hhdCB0aGUKLSAgICAvLyBmcmFtZSBwb2ludGVyIGluIHRoZSBKUyBjYWxsIGZyYW1lIHdh
cyBiZWNhdXNlIGl0IHdvdWxkIGhhdmUgYmVlbiBwYXNzZWQgYXMgYW4gYXJndW1lbnQKLSAgICAv
LyB0byB0aGUgRlRMIGNhbGwgZnJhbWUuCi0gICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OmZy
YW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIp
OwotICAgIGppdC5wb3AoR1BSSW5mbzo6bm9uQXJnR1BSMCk7Ci0gICAgaml0LnBvcChHUFJJbmZv
Ojpub25BcmdHUFIwKTsKLSAgICBqaXQubW92ZShHUFJJbmZvOjpyZWdUNCwgR1BSSW5mbzo6Y2Fs
bEZyYW1lUmVnaXN0ZXIpOwotICAgIAogICAgIGhhbmRsZUV4aXRDb3VudHMoaml0LCBleGl0KTsK
ICAgICByZWlmeUlubGluZWRDYWxsRnJhbWVzKGppdCwgZXhpdCk7CiAgICAgYWRqdXN0QW5kSnVt
cFRvVGFyZ2V0KGppdCwgZXhpdCk7CiAgICAgCiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcigq
dm0sICZqaXQsIGNvZGVCbG9jayk7CiAgICAgZXhpdC5tX2NvZGUgPSBGSU5BTElaRV9DT0RFX0lG
KAotICAgICAgICBzaG91bGRTaG93RGlzYXNzZW1ibHkoKSwKKyAgICAgICAgc2hvdWxkU2hvd0Rp
c2Fzc2VtYmx5KCkgfHwgT3B0aW9uczo6dmVyYm9zZU9TUigpLAogICAgICAgICBwYXRjaEJ1ZmZl
ciwKICAgICAgICAgKCJGVEwgT1NSIGV4aXQgIyV1ICglcywgJXMpIGZyb20gJXMsIHdpdGggb3Bl
cmFuZHMgPSAlcywgYW5kIHJlY29yZCA9ICVzIiwKICAgICAgICAgICAgIGV4aXRJRCwgdG9DU3Ry
aW5nKGV4aXQubV9jb2RlT3JpZ2luKS5kYXRhKCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExP
dXRwdXQuaAppbmRleCAyZWM4NzM1MDNhNWU3MmI1NTRiYjMxYWU5YTA2ZjBkNTQ3YzgyNTU2Li5i
ZTQwZDExMTFiOTdlMmE1OWRhMDg5MGU1NTNmNGM0ZmFmYmZjZjkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMT3V0cHV0LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4NCw3ICsxODQsMjMgQEAgcHVibGljOgogICAgIHsKICAg
ICAgICAgcmV0dXJuIGNhbGwoZG91YmxlQWJzSW50cmluc2ljKCksIHZhbHVlKTsKICAgICB9Ci0g
ICAgCisgICAgTFZhbHVlIGRvdWJsZVNpbihMVmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICBy
ZXR1cm4gY2FsbChkb3VibGVTaW5JbnRyaW5zaWMoKSwgdmFsdWUpOworICAgIH0KKworCisgICAg
TFZhbHVlIGRvdWJsZUNvcyhMVmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gY2Fs
bChkb3VibGVDb3NJbnRyaW5zaWMoKSwgdmFsdWUpOworICAgIH0KKworICAgIExWYWx1ZSBkb3Vi
bGVTcXJ0KExWYWx1ZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjYWxsKGRvdWJsZVNx
cnRJbnRyaW5zaWMoKSwgdmFsdWUpOworICAgIH0KKworCiAgICAgc3RhdGljIGJvb2wgaGFzU2Vu
c2libGVEb3VibGVUb0ludCgpIHsgcmV0dXJuIGlzWDg2KCk7IH0KICAgICBMVmFsdWUgc2Vuc2li
bGVEb3VibGVUb0ludChMVmFsdWUgdmFsdWUpCiAgICAgewpAQCAtMjEwLDYgKzIyNiw3IEBAIHB1
YmxpYzoKICAgICBMVmFsdWUgY2FzdFRvSW50MzIoTFZhbHVlIHZhbHVlKSB7IHJldHVybiBpbnRD
YXN0KHZhbHVlLCBpbnQzMik7IH0KICAgICBMVmFsdWUgZnBDYXN0KExWYWx1ZSB2YWx1ZSwgTFR5
cGUgdHlwZSkgeyByZXR1cm4gYnVpbGRGUENhc3QobV9idWlsZGVyLCB2YWx1ZSwgdHlwZSk7IH0K
ICAgICBMVmFsdWUgaW50VG9QdHIoTFZhbHVlIHZhbHVlLCBMVHlwZSB0eXBlKSB7IHJldHVybiBi
dWlsZEludFRvUHRyKG1fYnVpbGRlciwgdmFsdWUsIHR5cGUpOyB9CisgICAgTFZhbHVlIHB0clRv
SW50KExWYWx1ZSB2YWx1ZSwgTFR5cGUgdHlwZSkgeyByZXR1cm4gYnVpbGRQdHJUb0ludChtX2J1
aWxkZXIsIHZhbHVlLCB0eXBlKTsgfQogICAgIExWYWx1ZSBiaXRDYXN0KExWYWx1ZSB2YWx1ZSwg
TFR5cGUgdHlwZSkgeyByZXR1cm4gYnVpbGRCaXRDYXN0KG1fYnVpbGRlciwgdmFsdWUsIHR5cGUp
OyB9CiAgICAgCiAgICAgTFZhbHVlIGFsbG9jYShMVHlwZSB0eXBlKSB7IHJldHVybiBidWlsZEFs
bG9jYShtX2J1aWxkZXIsIHR5cGUpOyB9CkBAIC0zMTQsNiArMzMxLDIwIEBAIHB1YmxpYzoKICAg
ICB2b2lkIHN0b3JlUHRyKExWYWx1ZSB2YWx1ZSwgTFZhbHVlIGJhc2UsIGNvbnN0IEFic3RyYWN0
RmllbGQmIGZpZWxkKSB7IHN0b3JlUHRyKHZhbHVlLCBhZGRyZXNzKGJhc2UsIGZpZWxkKSk7IH0K
ICAgICB2b2lkIHN0b3JlRG91YmxlKExWYWx1ZSB2YWx1ZSwgTFZhbHVlIGJhc2UsIGNvbnN0IEFi
c3RyYWN0RmllbGQmIGZpZWxkKSB7IHN0b3JlRG91YmxlKHZhbHVlLCBhZGRyZXNzKGJhc2UsIGZp
ZWxkKSk7IH0KICAgICAKKyAgICB2b2lkIGFzY3JpYmVSYW5nZShMVmFsdWUgbG9hZEluc3RydWN0
aW9uLCBjb25zdCBWYWx1ZVJhbmdlJiByYW5nZSkKKyAgICB7CisgICAgICAgIHJhbmdlLmRlY29y
YXRlSW5zdHJ1Y3Rpb24obV9jb250ZXh0LCBsb2FkSW5zdHJ1Y3Rpb24sIHJhbmdlS2luZCk7Cisg
ICAgfQorICAgIAorICAgIExWYWx1ZSBub25OZWdhdGl2ZTMyKExWYWx1ZSBsb2FkSW5zdHJ1Y3Rp
b24pCisgICAgeworICAgICAgICBhc2NyaWJlUmFuZ2UobG9hZEluc3RydWN0aW9uLCBub25OZWdh
dGl2ZUludDMyKTsKKyAgICAgICAgcmV0dXJuIGxvYWRJbnN0cnVjdGlvbjsKKyAgICB9CisgICAg
CisgICAgTFZhbHVlIGxvYWQzMk5vbk5lZ2F0aXZlKFR5cGVkUG9pbnRlciBwb2ludGVyKSB7IHJl
dHVybiBub25OZWdhdGl2ZTMyKGxvYWQzMihwb2ludGVyKSk7IH0KKyAgICBMVmFsdWUgbG9hZDMy
Tm9uTmVnYXRpdmUoTFZhbHVlIGJhc2UsIGNvbnN0IEFic3RyYWN0RmllbGQmIGZpZWxkKSB7IHJl
dHVybiBub25OZWdhdGl2ZTMyKGxvYWQzMihiYXNlLCBmaWVsZCkpOyB9CisgICAgCiAgICAgTFZh
bHVlIGljbXAoTEludFByZWRpY2F0ZSBjb25kLCBMVmFsdWUgbGVmdCwgTFZhbHVlIHJpZ2h0KSB7
IHJldHVybiBidWlsZElDbXAobV9idWlsZGVyLCBjb25kLCBsZWZ0LCByaWdodCk7IH0KICAgICBM
VmFsdWUgZXF1YWwoTFZhbHVlIGxlZnQsIExWYWx1ZSByaWdodCkgeyByZXR1cm4gaWNtcChMTFZN
SW50RVEsIGxlZnQsIHJpZ2h0KTsgfQogICAgIExWYWx1ZSBub3RFcXVhbChMVmFsdWUgbGVmdCwg
TFZhbHVlIHJpZ2h0KSB7IHJldHVybiBpY21wKExMVk1JbnRORSwgbGVmdCwgcmlnaHQpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMUmVjb3ZlcnlPcGNvZGUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcwNzcwZGQ4MTE2NGJjMGI2YzBmNGQ1YjUyYTgyYTg3OTliMTllMTcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmNw
cApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGVExSZWNvdmVyeU9wY29k
ZS5oIgorCisjaWYgRU5BQkxFKEZUTF9KSVQpCisKKyNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0u
aD4KKworbmFtZXNwYWNlIFdURiB7CisKK3ZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYg
b3V0LCBKU0M6OkZUTDo6UmVjb3ZlcnlPcGNvZGUgb3Bjb2RlKQoreworICAgIHN3aXRjaCAob3Bj
b2RlKSB7CisgICAgY2FzZSBKU0M6OkZUTDo6QWRkUmVjb3Zlcnk6CisgICAgICAgIG91dC5wcmlu
dCgiQWRkIik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEpTQzo6RlRMOjpTdWJSZWNvdmVy
eToKKyAgICAgICAgb3V0LnByaW50KCJTdWIiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYK
KworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTFJlY292ZXJ5T3Bjb2RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNhNzU1YTk0NmQzMzFjYjE3YjAz
MzQ4YTE3OWE1YTMyYjk0YjZjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMUmVjb3ZlcnlPcGNvZGUuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRlRMUmVjb3ZlcnlP
cGNvZGVfaAorI2RlZmluZSBGVExSZWNvdmVyeU9wY29kZV9oCisKKyNpZiBFTkFCTEUoRlRMX0pJ
VCkKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCitlbnVtIFJlY292ZXJ5T3Bj
b2RlIHsKKyAgICBBZGRSZWNvdmVyeSwKKyAgICBTdWJSZWNvdmVyeQorfTsKKworfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OkZUTAorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgUHJpbnRTdHJlYW07
Cit2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBKU0M6OkZUTDo6UmVjb3ZlcnlPcGNv
ZGUpOworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQor
CisjZW5kaWYgLy8gRlRMUmVjb3ZlcnlPcGNvZGVfaAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzA3N2ZkNTBk
YzQwNjFhYTRiYzA1MDY5MmM3YjU3YTIyOGIwOGY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmNwcApAQCAtMCwwICsxLDQx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGVExSZWdpc3RlckF0T2Zmc2V0LmgiCisKKyNpZiBF
TkFCTEUoRlRMX0pJVCkKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCit2b2lk
IFJlZ2lzdGVyQXRPZmZzZXQ6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBv
dXQucHJpbnQoZ3ByKCksICIgYXQgIiwgb2Zmc2V0KCkpOworfQorCit9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6RlRMCisKKyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKKwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTFJlZ2lzdGVyQXRPZmZzZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDllOWFi
MDNkMDNmNzk5YzYwYTczM2ZjNTI3MTczZjRhYmEwMzA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExSZWdpc3RlckF0T2Zmc2V0LmgKQEAgLTAsMCArMSw4
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIEZUTFJlZ2lzdGVyQXRPZmZzZXRfaAorI2RlZmluZSBGVExSZWdpc3RlckF0T2Zmc2V0X2gK
KworI2lmIEVOQUJMRShGVExfSklUKQorCisjaW5jbHVkZSAiR1BSSW5mby5oIgorI2luY2x1ZGUg
PHd0Zi9QcmludFN0cmVhbS5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisK
K2NsYXNzIFJlZ2lzdGVyQXRPZmZzZXQgeworcHVibGljOgorICAgIFJlZ2lzdGVyQXRPZmZzZXQo
KQorICAgICAgICA6IG1fZ3ByKEludmFsaWRHUFJSZWcpCisgICAgICAgICwgbV9vZmZzZXQoMCkK
KyAgICB7CisgICAgfQorICAgIAorICAgIFJlZ2lzdGVyQXRPZmZzZXQoR1BSUmVnIGdwciwgcHRy
ZGlmZl90IG9mZnNldCkKKyAgICAgICAgOiBtX2dwcihncHIpCisgICAgICAgICwgbV9vZmZzZXQo
b2Zmc2V0KQorICAgIHsKKyAgICB9CisgICAgCisgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7
IHJldHVybiBtX2dwciA9PSBJbnZhbGlkR1BSUmVnOyB9CisgICAgCisgICAgR1BSUmVnIGdwcigp
IGNvbnN0IHsgcmV0dXJuIG1fZ3ByOyB9CisgICAgcHRyZGlmZl90IG9mZnNldCgpIGNvbnN0IHsg
cmV0dXJuIG1fb2Zmc2V0OyB9CisgICAgCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlZ2lz
dGVyQXRPZmZzZXQmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGdwcigpID09
IG90aGVyLmdwcigpICYmIG9mZnNldCgpID09IG90aGVyLm9mZnNldCgpOworICAgIH0KKyAgICAK
KyAgICBib29sIG9wZXJhdG9yPChjb25zdCBSZWdpc3RlckF0T2Zmc2V0JiBvdGhlcikgY29uc3QK
KyAgICB7CisgICAgICAgIGlmIChncHIoKSAhPSBvdGhlci5ncHIoKSkKKyAgICAgICAgICAgIHJl
dHVybiBncHIoKSA8IG90aGVyLmdwcigpOworICAgICAgICByZXR1cm4gb2Zmc2V0KCkgPCBvdGhl
ci5vZmZzZXQoKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIEdQUlJlZyBnZXRHUFIoUmVnaXN0
ZXJBdE9mZnNldCogdmFsdWUpIHsgcmV0dXJuIHZhbHVlLT5ncHIoKTsgfQorICAgIAorICAgIHZv
aWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBHUFJSZWcg
bV9ncHI7CisgICAgcHRyZGlmZl90IG1fb2Zmc2V0OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKKyNlbmRpZiAvLyBGVExSZWdp
c3RlckF0T2Zmc2V0X2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExTbG93UGF0aENhbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0
aENhbGwuY3BwCmluZGV4IDNjZjZhZTBlM2Y2MGI1Y2YzOTFjZmM0ODA1NWRmMGZkZTRjZTAxNjcu
LjJlMGZhODg5YzczNzNmZDliMDYwM2VlMzE4MmM3YmJjM2NjYTY0ODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5LDcgQEAKICNp
ZiBFTkFCTEUoRlRMX0pJVCkKIAogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUg
IkNhbGxGcmFtZUlubGluZXMuaCIKICNpbmNsdWRlICJGVExTdGF0ZS5oIgogI2luY2x1ZGUgIkdQ
UkluZm8uaCIKIApAQCAtMTM0LDExICsxMzUsMTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
U2xvd1BhdGhDYWxsS2V5KHVzZWRSZWdpc3RlcnMoKSwgY2FsbFRhcmdldCwgb2Zmc2V0KCkpOwog
ICAgIH0KICAgICAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBtYWtlQ2FsbCh2b2lkKiBjYWxs
VGFyZ2V0KQorICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIG1ha2VDYWxsKHZvaWQqIGNhbGxUYXJn
ZXQsIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCogZXhjZXB0aW9uVGFyZ2V0KQogICAgIHsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgcmVzdWx0ID0gbV9qaXQuY2FsbCgpOwogICAgICAg
ICBtX3N0YXRlLmZpbmFsaXplci0+c2xvd1BhdGhDYWxscy5hcHBlbmQoU2xvd1BhdGhDYWxsKAog
ICAgICAgICAgICAgcmVzdWx0LCBrZXlXaXRoVGFyZ2V0KGNhbGxUYXJnZXQpKSk7CisgICAgICAg
IGlmIChleGNlcHRpb25UYXJnZXQpCisgICAgICAgICAgICBleGNlcHRpb25UYXJnZXQtPmFwcGVu
ZChtX2ppdC5lbWl0RXhjZXB0aW9uQ2hlY2soKSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgfQogICAgIApAQCAtMTU3LDMyICsxNjAsNDQgQEAgcHJpdmF0ZToKIAogfSAvLyBhbm9ueW1v
dXMgbmFtZXNwYWNlCiAKK3ZvaWQgc3RvcmVDb2RlT3JpZ2luKFN0YXRlJiBzdGF0ZSwgQ0NhbGxI
ZWxwZXJzJiBqaXQsIENvZGVPcmlnaW4gY29kZU9yaWdpbikKK3sKKyAgICBpZiAoIWNvZGVPcmln
aW4uaXNTZXQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIHVuc2lnbmVkIGluZGV4ID0g
c3RhdGUuaml0Q29kZS0+Y29tbW9uLmFkZENvZGVPcmlnaW4oY29kZU9yaWdpbik7CisgICAgdW5z
aWduZWQgbG9jYXRpb25CaXRzID0gQ2FsbEZyYW1lOjpMb2NhdGlvbjo6ZW5jb2RlQXNDb2RlT3Jp
Z2luSW5kZXgoaW5kZXgpOworICAgIGppdC5zdG9yZTMyKAorICAgICAgICBDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW0zMihsb2NhdGlvbkJpdHMpLAorICAgICAgICBDQ2FsbEhlbHBlcnM6OnRhZ0Zv
cihzdGF0aWNfY2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKSk7
Cit9CisKIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oCi0gICAgU3RhdGUmIHN0
YXRlLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywgQ0NhbGxIZWxwZXJzJiBqaXQs
IAotICAgIEpfSklUT3BlcmF0aW9uX0VTc2lKSSBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQ
UlJlZyBjYWxsRnJhbWVSZWdpc3RlciwKLSAgICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8s
IEdQUlJlZyBvYmplY3QsIFN0cmluZ0ltcGwqIHVpZCkKKyAgICBTdGF0ZSYgc3RhdGUsIGNvbnN0
IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDQ2FsbEhlbHBlcnMmIGppdCwKKyAgICBDb2Rl
T3JpZ2luIGNvZGVPcmlnaW4sIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCogZXhjZXB0aW9uVGFy
Z2V0LAorICAgIEpfSklUT3BlcmF0aW9uX0VTc2lKSSBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQs
IFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywKKyAgICBHUFJSZWcgb2JqZWN0LCBTdHJpbmdJ
bXBsKiB1aWQpCiB7CisgICAgc3RvcmVDb2RlT3JpZ2luKHN0YXRlLCBqaXQsIGNvZGVPcmlnaW4p
OwogICAgIENhbGxDb250ZXh0IGNvbnRleHQoc3RhdGUsIHVzZWRSZWdpc3RlcnMsIGppdCwgNCwg
cmVzdWx0KTsKLSAgICBqaXQuc2V0dXBBcmd1bWVudHMoCi0gICAgICAgIGNhbGxGcmFtZVJlZ2lz
dGVyLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoc3R1YkluZm8pLCBvYmplY3QsCisgICAg
aml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSgKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tUHRyKHN0dWJJbmZvKSwgb2JqZWN0LAogICAgICAgICBDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIodWlkKSk7Ci0gICAgcmV0dXJuIGNvbnRleHQubWFrZUNhbGwoYml0d2lzZV9j
YXN0PHZvaWQqPihvcGVyYXRpb24pKTsKLSAgICAvLyBGSVhNRTogRlRMIHNob3VsZCBzdXBwb3J0
IGV4Y2VwdGlvbnMuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMzYyMgorICAgIHJldHVybiBjb250ZXh0Lm1ha2VDYWxsKGJpdHdpc2VfY2FzdDx2b2lk
Kj4ob3BlcmF0aW9uKSwgZXhjZXB0aW9uVGFyZ2V0KTsKIH0KIAogTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbigKICAgICBTdGF0ZSYgc3RhdGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1
c2VkUmVnaXN0ZXJzLCBDQ2FsbEhlbHBlcnMmIGppdCwgCi0gICAgVl9KSVRPcGVyYXRpb25fRVNz
aUpKSSBvcGVyYXRpb24sIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciwKLSAgICBTdHJ1Y3R1cmVT
dHViSW5mbyogc3R1YkluZm8sIEdQUlJlZyB2YWx1ZSwgR1BSUmVnIG9iamVjdCwgU3RyaW5nSW1w
bCogdWlkKQorICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgTWFjcm9Bc3NlbWJsZXI6Okp1bXBM
aXN0KiBleGNlcHRpb25UYXJnZXQsCisgICAgVl9KSVRPcGVyYXRpb25fRVNzaUpKSSBvcGVyYXRp
b24sIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgR1BSUmVnIHZhbHVlLAorICAgIEdQUlJl
ZyBvYmplY3QsIFN0cmluZ0ltcGwqIHVpZCkKIHsKKyAgICBzdG9yZUNvZGVPcmlnaW4oc3RhdGUs
IGppdCwgY29kZU9yaWdpbik7CiAgICAgQ2FsbENvbnRleHQgY29udGV4dChzdGF0ZSwgdXNlZFJl
Z2lzdGVycywgaml0LCA1LCBJbnZhbGlkR1BSUmVnKTsKLSAgICBqaXQuc2V0dXBBcmd1bWVudHMo
Ci0gICAgICAgIGNhbGxGcmFtZVJlZ2lzdGVyLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIo
c3R1YkluZm8pLCB2YWx1ZSwgb2JqZWN0LAorICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoCisgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihzdHViSW5mbyksIHZh
bHVlLCBvYmplY3QsCiAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih1aWQpKTsK
LSAgICByZXR1cm4gY29udGV4dC5tYWtlQ2FsbChiaXR3aXNlX2Nhc3Q8dm9pZCo+KG9wZXJhdGlv
bikpOwotICAgIC8vIEZJWE1FOiBGVEwgc2hvdWxkIHN1cHBvcnQgZXhjZXB0aW9ucy4KLSAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIyCisgICAgcmV0
dXJuIGNvbnRleHQubWFrZUNhbGwoYml0d2lzZV9jYXN0PHZvaWQqPihvcGVyYXRpb24pLCBleGNl
cHRpb25UYXJnZXQpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuaAppbmRleCA0MzVlZmRjODM0ZTQwMjQ1
ZTlkYmMwOTc5ZmY5M2FiZTM5NmNiNWZkLi42OGUwOWU2NmI5N2VjNDBmNDlmZjVmOTdiOGM0ODgx
Yzc0ZGEzMzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQ
YXRoQ2FsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxs
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTU1LDEzICs1NSwxNSBAQCBwcml2YXRlOgogICAgIFNsb3dQYXRoQ2FsbEtleSBtX2tleTsK
IH07CiAKK3ZvaWQgc3RvcmVDb2RlT3JpZ2luKFN0YXRlJiwgQ0NhbGxIZWxwZXJzJiwgQ29kZU9y
aWdpbik7CisKIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oCi0gICAgU3RhdGUm
LCBjb25zdCBSZWdpc3RlclNldCYsIENDYWxsSGVscGVycyYsIEpfSklUT3BlcmF0aW9uX0VTc2lK
SSwKLSAgICBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsIFN0cnVjdHVy
ZVN0dWJJbmZvKiwgR1BSUmVnIG9iamVjdCwKKyAgICBTdGF0ZSYsIGNvbnN0IFJlZ2lzdGVyU2V0
JiwgQ0NhbGxIZWxwZXJzJiwgQ29kZU9yaWdpbiwgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCosCisg
ICAgSl9KSVRPcGVyYXRpb25fRVNzaUpJLCBHUFJSZWcgcmVzdWx0LCBTdHJ1Y3R1cmVTdHViSW5m
byosIEdQUlJlZyBvYmplY3QsCiAgICAgU3RyaW5nSW1wbCogdWlkKTsKIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oCi0gICAgU3RhdGUmLCBjb25zdCBSZWdpc3RlclNldCYsIEND
YWxsSGVscGVycyYsIFZfSklUT3BlcmF0aW9uX0VTc2lKSkksCi0gICAgR1BSUmVnIGNhbGxGcmFt
ZVJlZ2lzdGVyLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEdQUlJlZyB2YWx1ZSwgR1BSUmVnIG9iamVj
dCwKKyAgICBTdGF0ZSYsIGNvbnN0IFJlZ2lzdGVyU2V0JiwgQ0NhbGxIZWxwZXJzJiwgQ29kZU9y
aWdpbiwgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCosCisgICAgVl9KSVRPcGVyYXRpb25fRVNzaUpK
SSwgU3RydWN0dXJlU3R1YkluZm8qLCBHUFJSZWcgdmFsdWUsIEdQUlJlZyBvYmplY3QsCiAgICAg
U3RyaW5nSW1wbCogdWlkKTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGFja01hcHMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExTdGFja01hcHMuY3BwCmluZGV4IDVhZjIwODJjOGNjYTA2OGZj
MTIwNjZmMGNjNDg4ZmZlOGMzOWJjYzkuLjQwMzM4OTFhOWI0MzdjYTQ4ZTJhZTY0ZGUwZTU0M2Zm
MzNlNmM2NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhY2tN
YXBzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YWNrTWFwcy5jcHAK
QEAgLTc5LDcgKzc5LDkgQEAgdm9pZCBTdGFja01hcHM6OkxvY2F0aW9uOjpyZXN0b3JlSW50bygK
IAogYm9vbCBTdGFja01hcHM6OlJlY29yZDo6cGFyc2UoRGF0YVZpZXcqIHZpZXcsIHVuc2lnbmVk
JiBvZmZzZXQpCiB7Ci0gICAgcGF0Y2hwb2ludElEID0gdmlldy0+cmVhZDx1aW50MzJfdD4ob2Zm
c2V0LCB0cnVlKTsKKyAgICBpbnQ2NF90IGlkID0gdmlldy0+cmVhZDxpbnQ2NF90PihvZmZzZXQs
IHRydWUpOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDxpbnQzMl90PihpZCkgPT0gaWQpOworICAg
IHBhdGNocG9pbnRJRCA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihpZCk7CiAgICAgaWYgKHN0YXRp
Y19jYXN0PGludDMyX3Q+KHBhdGNocG9pbnRJRCkgPCAwKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgCkBAIC05MCw2ICs5MiwxMyBAQCBib29sIFN0YWNrTWFwczo6UmVjb3JkOjpwYXJzZShE
YXRhVmlldyogdmlldywgdW5zaWduZWQmIG9mZnNldCkKICAgICB3aGlsZSAobGVuZ3RoLS0pCiAg
ICAgICAgIGxvY2F0aW9ucy5hcHBlbmQocmVhZE9iamVjdDxMb2NhdGlvbj4odmlldywgb2Zmc2V0
KSk7CiAgICAgCisgICAgdW5zaWduZWQgbnVtTGl2ZU91dHMgPSB2aWV3LT5yZWFkPHVpbnQxNl90
PihvZmZzZXQsIHRydWUpOworICAgIHdoaWxlIChudW1MaXZlT3V0cy0tKSB7CisgICAgICAgIHZp
ZXctPnJlYWQ8dWludDE2X3Q+KG9mZnNldCwgdHJ1ZSk7IC8vIHJlZ251bQorICAgICAgICB2aWV3
LT5yZWFkPHVpbnQ4X3Q+KG9mZnNldCwgdHJ1ZSk7IC8vIHJlc2VydmVkCisgICAgICAgIHZpZXct
PnJlYWQ8dWludDhfdD4ob2Zmc2V0LCB0cnVlKTsgLy8gc2l6ZSBpbiBieXRlcworICAgIH0KKyAg
ICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExTdGFja01hcHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3Rh
Y2tNYXBzLmgKaW5kZXggZjE3NTkyNWQ1MDEyYzE3Y2ExMDY1ZmU5MmI5ZDJiNjNhYzg1ODlkYS4u
MDNiNzY2MTVmZDdmMDNhMmJmYmQzY2RkZGU4MTg4ODZhYTVjYWE1NiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGFja01hcHMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFN0YWNrTWFwcy5oCkBAIC02MSw3ICs2MSw3IEBAIHN0cnVjdCBTdGFj
a01hcHMgewogICAgICAgICB1aW50MTZfdCBkd2FyZlJlZ051bTsgLy8gUmVwcmVzZW50ZWQgYXMg
YSAxMi1iaXQgaW50IGluIHRoZSBzZWN0aW9uLgogICAgICAgICBpbnQ4X3Qgc2l6ZTsKICAgICAg
ICAgS2luZCBraW5kOwotICAgICAgICBpbnQxNl90IG9mZnNldDsKKyAgICAgICAgaW50MzJfdCBv
ZmZzZXQ7CiAgICAgICAgIAogICAgICAgICB2b2lkIHBhcnNlKERhdGFWaWV3KiwgdW5zaWduZWQm
IG9mZnNldCk7CiAgICAgICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5jcHAKaW5kZXggYzI2M2IyNjRiNGRkMzEyNjVj
ZjE2YTRhMzljNjQ4MjkzMTUzYzFiNC4uMzI5NDRkNmI0MzNmYjk5ZGIyMDNlOWQ1YmU5YmMzNGEx
ZmFhY2EyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5jcHAKQEAgLTQzLDYg
KzQzLDggQEAgU3RhdGU6OlN0YXRlKEdyYXBoJiBncmFwaCkKICAgICAsIG1vZHVsZSgwKQogICAg
ICwgZnVuY3Rpb24oMCkKICAgICAsIGdlbmVyYXRlZEZ1bmN0aW9uKDApCisgICAgLCBjb21wYWN0
VW53aW5kKDApCisgICAgLCBjb21wYWN0VW53aW5kU2l6ZSgwKQogewogICAgIHN3aXRjaCAoZ3Jh
cGgubV9wbGFuLm1vZGUpIHsKICAgICBjYXNlIEZUTE1vZGU6IHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMU3RhdGUuaAppbmRleCBjODJkYjY3Mjg0MmViZWJhNmQ1NmJiNTYxNGNiNGMxZGFlMzEx
NjkzLi42ZTRhMzgxNjMwM2Q1NjZiNDc3YzFjODM3NTliNjM0M2FhYjM4ZDlhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiRlRMSW5s
aW5lQ2FjaGVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiRlRMSklUQ29kZS5oIgogI2luY2x1ZGUg
IkZUTEpJVEZpbmFsaXplci5oIgorI2luY2x1ZGUgIkZUTEpTQ2FsbC5oIgogI2luY2x1ZGUgIkZU
TFN0YWNrTWFwcy5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCkBAIC01NywxMCAr
NTgsMTUgQEAgcHVibGljOgogICAgIFJlZlB0cjxKSVRDb2RlPiBqaXRDb2RlOwogICAgIEdlbmVy
YXRlZEZ1bmN0aW9uIGdlbmVyYXRlZEZ1bmN0aW9uOwogICAgIEpJVEZpbmFsaXplciogZmluYWxp
emVyOworICAgIHVuc2lnbmVkIGhhbmRsZUV4Y2VwdGlvblN0YWNrbWFwSUQ7CisgICAgdW5zaWdu
ZWQgY2FwdHVyZWRTdGFja21hcElEOwogICAgIFNlZ21lbnRlZFZlY3RvcjxHZXRCeUlkRGVzY3Jp
cHRvcj4gZ2V0QnlJZHM7CiAgICAgU2VnbWVudGVkVmVjdG9yPFB1dEJ5SWREZXNjcmlwdG9yPiBw
dXRCeUlkczsKKyAgICBWZWN0b3I8SlNDYWxsPiBqc0NhbGxzOwogICAgIFZlY3RvcjxDU3RyaW5n
PiBjb2RlU2VjdGlvbk5hbWVzOwogICAgIFZlY3RvcjxDU3RyaW5nPiBkYXRhU2VjdGlvbk5hbWVz
OworICAgIHZvaWQqIGNvbXBhY3RVbndpbmQ7CisgICAgc2l6ZV90IGNvbXBhY3RVbndpbmRTaXpl
OwogICAgIFJlZkNvdW50ZWRBcnJheTxMU2VjdGlvbldvcmQ+IHN0YWNrbWFwc1NlY3Rpb247CiAg
ICAgCiAgICAgdm9pZCBkdW1wU3RhdGUoY29uc3QgY2hhciogd2hlbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTFRodW5rcy5jcHAKaW5kZXggYmYwNGFmMDJhMzk4NTczNDU5YjQ1NzYyYWJl
MDU2YWMwMTAzY2Y3NC4uMTlmMmZlMmEwMjU2ZjYxNmIyN2E1NWQzMzlkOWVlMjI5NDFiOTdjZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcApAQCAtMzksOSArMzksOSBA
QCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBERkc7
CiAKLU1hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2VuZXJhdGlvblRodW5rR2VuZXJhdG9y
KFZNJiB2bSwgY29uc3QgTG9jYXRpb24mIGxvY2F0aW9uKQorTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogewotICAgIEFzc2VtYmx5
SGVscGVycyBqaXQoJnZtLCAwKTsKKyAgICBBc3NlbWJseUhlbHBlcnMgaml0KHZtLCAwKTsKICAg
ICAKICAgICAvLyBOb3RlIHRoYXQgdGhlICJyZXR1cm4gYWRkcmVzcyIgd2lsbCBiZSB0aGUgT1NS
IGV4aXQgSUQuCiAgICAgCkBAIC01MSw3ICs1MSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBv
c3JFeGl0R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKFZNJiB2bSwgY29uc3QgTG9jYXRpb24mIGxv
CiAgICAgaml0LnB1c2goR1BSSW5mbzo6cmVnVDApOwogICAgIGppdC5wdXNoKEdQUkluZm86OnJl
Z1QwKTsKICAgICAKLSAgICBTY3JhdGNoQnVmZmVyKiBzY3JhdGNoQnVmZmVyID0gdm0uc2NyYXRj
aEJ1ZmZlckZvclNpemUocmVxdWlyZWRTY3JhdGNoTWVtb3J5U2l6ZUluQnl0ZXMoKSk7CisgICAg
U2NyYXRjaEJ1ZmZlciogc2NyYXRjaEJ1ZmZlciA9IHZtLT5zY3JhdGNoQnVmZmVyRm9yU2l6ZShy
ZXF1aXJlZFNjcmF0Y2hNZW1vcnlTaXplSW5CeXRlcygpKTsKICAgICBjaGFyKiBidWZmZXIgPSBz
dGF0aWNfY2FzdDxjaGFyKj4oc2NyYXRjaEJ1ZmZlci0+ZGF0YUJ1ZmZlcigpKTsKICAgICAKICAg
ICBzYXZlQWxsUmVnaXN0ZXJzKGppdCwgYnVmZmVyKTsKQEAgLTYwLDcgKzYwLDcgQEAgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIG9zckV4aXRHZW5lcmF0aW9uVGh1bmtHZW5lcmF0b3IoVk0mIHZtLCBj
b25zdCBMb2NhdGlvbiYgbG8KICAgICBqaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bVB0cihzY3JhdGNoQnVmZmVyLT5hY3RpdmVMZW5ndGhQdHIoKSksIEdQUkluZm86Om5vbkFyZ0dQ
UjEpOwogICAgIGppdC5zdG9yZVB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihyZXF1
aXJlZFNjcmF0Y2hNZW1vcnlTaXplSW5CeXRlcygpKSwgR1BSSW5mbzo6bm9uQXJnR1BSMSk7CiAK
LSAgICBsb2NhdGlvbi5yZXN0b3JlSW50byhqaXQsIGJ1ZmZlciwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwLCAxKTsKKyAgICBqaXQubG9hZFB0cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBqaXQucGVlayhHUFJJbmZvOjphcmd1bWVudEdQUjEs
IDMpOwogICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGZ1bmN0aW9uQ2FsbCA9IGppdC5jYWxsKCk7
CiAgICAgCkBAIC03MSw2ICs3MSwxMCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhpdEdl
bmVyYXRpb25UaHVua0dlbmVyYXRvcihWTSYgdm0sIGNvbnN0IExvY2F0aW9uJiBsbwogICAgIAog
ICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBHUFJJbmZvOjpyZWdUMCk7CiAg
ICAgCisgICAgLy8gTWFrZSBzdXJlIHdlIHRlbGwgdGhlIEdDIHRoYXQgd2UncmUgbm90IHVzaW5n
IHRoZSBzY3JhdGNoIGJ1ZmZlciBhbnltb3JlLgorICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tUHRyKHNjcmF0Y2hCdWZmZXItPmFjdGl2ZUxlbmd0aFB0cigpKSwgR1BSSW5m
bzo6cmVnVDEpOworICAgIGppdC5zdG9yZVB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0
cigwKSwgR1BSSW5mbzo6cmVnVDEpOworICAgIAogICAgIC8vIFByZXBhcmUgZm9yIHRhaWwgY2Fs
bC4KICAgICBqaXQucG9wKEdQUkluZm86OnJlZ1QxKTsKICAgICBqaXQucG9wKEdQUkluZm86OnJl
Z1QxKTsKQEAgLTgxLDE0ICs4NSwxNCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhpdEdl
bmVyYXRpb25UaHVua0dlbmVyYXRvcihWTSYgdm0sIGNvbnN0IExvY2F0aW9uJiBsbwogICAgIC8v
IHJlc3RvcmUgYWxsIHJlZ2lzdGVycy4KICAgICAKICAgICBqaXQucmVzdG9yZVJldHVybkFkZHJl
c3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6cmVnVDApOwotICAgIAorCiAgICAgcmVzdG9yZUFsbFJl
Z2lzdGVycyhqaXQsIGJ1ZmZlcik7CiAKICAgICBqaXQucmV0KCk7CiAgICAgCi0gICAgTGlua0J1
ZmZlciBwYXRjaEJ1ZmZlcih2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKKyAgICBMaW5rQnVm
ZmVyIHBhdGNoQnVmZmVyKCp2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKICAgICBwYXRjaEJ1
ZmZlci5saW5rKGZ1bmN0aW9uQ2FsbCwgY29tcGlsZUZUTE9TUkV4aXQpOwotICAgIHJldHVybiBG
SU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIkZUTCBPU1IgZXhpdCBnZW5lcmF0aW9uIHRodW5r
IGZvciBjYWxsRnJhbWUgYXQgJXMiLCB0b0NTdHJpbmcobG9jYXRpb24pLmRhdGEoKSkpOworICAg
IHJldHVybiBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIkZUTCBPU1IgZXhpdCBnZW5lcmF0
aW9uIHRodW5rIikpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgc2xvd1BhdGhDYWxsVGh1
bmtHZW5lcmF0b3IoVk0mIHZtLCBjb25zdCBTbG93UGF0aENhbGxLZXkmIGtleSkKQEAgLTExOSwx
MSArMTIzLDEzIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBzbG93UGF0aENhbGxUaHVua0dlbmVy
YXRvcihWTSYgdm0sIGNvbnN0IFNsb3dQYXRoQ2FsbEtleSYKICAgICAgICAgY3VycmVudE9mZnNl
dCArPSBzaXplb2YoZG91YmxlKTsKICAgICB9CiAgICAgCisgICAgLy8gRklYTUU6IENTdGFjayAt
IE5lZWQgdG8gZG8gc29lbWV0aGluZyBsaWtlIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwog
ICAgIGppdC5wcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoR1BSSW5mbzo6bm9uQXJnR1BS
MCk7CiAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86Om5vbkFyZ0dQUjAsIEFzc2VtYmx5SGVscGVy
czo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGtleS5vZmZz
ZXQoKSkpOwogICAgIAogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGwgPSBqaXQuY2FsbCgpOwot
ICAgIAorCisgICAgLy8gRklYTUU6IENTdGFjayAtIE5lZWQgdG8gZG8gc29tZXRoaW5nIGxpa2Ug
aml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgaml0LmxvYWRQdHIoQXNzZW1ibHlIZWxw
ZXJzOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwga2V5Lm9m
ZnNldCgpKSwgR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKICAgICBqaXQucmVz
dG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0
dXJuR1BSKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
VGh1bmtzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5oCmluZGV4IGJi
Y2RiZGRjOTJhNWQ1ODcwZDMwYzU5ZmZjMTc3OTE5NWFhMjYzZjQuLjMwMDg0NDU0OTY0OTE3ODkx
MGIyNGVkODYxZDlhM2NmZjFiOWViNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMVGh1bmtzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVu
a3MuaApAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBWTTsKIAogbmFtZXNwYWNlIEZUTCB7CiAKLU1h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKFZNJiwg
Y29uc3QgTG9jYXRpb24mKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2VuZXJhdGlv
blRodW5rR2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgc2xvd1BhdGhDYWxs
VGh1bmtHZW5lcmF0b3IoVk0mLCBjb25zdCBTbG93UGF0aENhbGxLZXkmKTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgS2V5VHlwZUFyZ3VtZW50PgpAQCAtNzgsMTIgKzc4LDYgQEAgdHlwZW5hbWUgTWFw
VHlwZTo6S2V5VHlwZSBrZXlGb3JUaHVuayhNYXBUeXBlJiBtYXAsIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0ciBwdHIpCiAKIGNsYXNzIFRodW5rcyB7CiBwdWJsaWM6Ci0gICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIGdldE9TUkV4aXRHZW5lcmF0aW9uVGh1bmsoVk0mIHZtLCBjb25zdCBMb2NhdGlvbiYg
bG9jYXRpb24pCi0gICAgewotICAgICAgICByZXR1cm4gZ2VuZXJhdGVJZk5lY2Vzc2FyeSgKLSAg
ICAgICAgICAgIHZtLCBtX29zckV4aXRUaHVua3MsIGxvY2F0aW9uLCBvc3JFeGl0R2VuZXJhdGlv
blRodW5rR2VuZXJhdG9yKTsKLSAgICB9Ci0gICAgCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IGdldFNsb3dQYXRoQ2FsbFRodW5rKFZNJiB2bSwgY29uc3QgU2xvd1BhdGhDYWxsS2V5JiBrZXkp
CiAgICAgewogICAgICAgICByZXR1cm4gZ2VuZXJhdGVJZk5lY2Vzc2FyeSgKQEAgLTk2LDcgKzkw
LDYgQEAgcHVibGljOgogICAgIH0KICAgICAKIHByaXZhdGU6Ci0gICAgVGh1bmtNYXA8TG9jYXRp
b24+IG1fb3NyRXhpdFRodW5rczsKICAgICBUaHVua01hcDxTbG93UGF0aENhbGxLZXk+IG1fc2xv
d1BhdGhDYWxsVGh1bmtzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExVbndpbmRJbmZvLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVW53
aW5kSW5mby5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmU0MGI5MjIyMzE3MWExYWEyNThkN2Q5YWVkNzdhZWVm
NmNkNjcyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
VW53aW5kSW5mby5jcHAKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZU
TFVud2luZEluZm8uaCIKKworI2lmIEVOQUJMRShGVExfSklUKQorCisjaW5jbHVkZSA8d3RmL0xp
c3REdW1wLmg+CisjaW5jbHVkZSA8bWFjaC1vL2NvbXBhY3RfdW53aW5kX2VuY29kaW5nLmg+CisK
K25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKworVW53aW5kSW5mbzo6VW53aW5kSW5m
bygpIHsgfQorVW53aW5kSW5mbzo6flVud2luZEluZm8oKSB7IH0KKworbmFtZXNwYWNlIHsKKwor
c3RydWN0IENvbXBhY3RVbndpbmQgeworICAgIHZvaWQqIGZ1bmN0aW9uOworICAgIHVpbnQzMl90
IHNpemU7CisgICAgY29tcGFjdF91bndpbmRfZW5jb2RpbmdfdCBlbmNvZGluZzsKKyAgICB2b2lk
KiBwZXJzb25hbGl0eTsKKyAgICB2b2lkKiBsc2RhOworfTsKKworfSAvLyBhbm9ueW1vdXMgbmFt
ZXNwYWNlCisKK3ZvaWQgVW53aW5kSW5mbzo6cGFyc2Uodm9pZCogc2VjdGlvbiwgc2l6ZV90IHNp
emUsIEdlbmVyYXRlZEZ1bmN0aW9uIGdlbmVyYXRlZEZ1bmN0aW9uKQoreworICAgIG1fcmVnaXN0
ZXJzLmNsZWFyKCk7CisgICAgCisgICAgUkVMRUFTRV9BU1NFUlQoc2VjdGlvbik7CisgICAgUkVM
RUFTRV9BU1NFUlQoc2l6ZSA+PSBzaXplb2YoQ29tcGFjdFVud2luZCkpOworICAgIAorICAgIENv
bXBhY3RVbndpbmQqIGRhdGEgPSBiaXR3aXNlX2Nhc3Q8Q29tcGFjdFVud2luZCo+KHNlY3Rpb24p
OworICAgIAorICAgIFJFTEVBU0VfQVNTRVJUKCFkYXRhLT5wZXJzb25hbGl0eSk7IC8vIFdlIGRv
bid0IGtub3cgaG93IHRvIGhhbmRsZSB0aGlzLgorICAgIFJFTEVBU0VfQVNTRVJUKCFkYXRhLT5s
c2RhKTsgLy8gV2UgZG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIHRoaXMuCisgICAgUkVMRUFTRV9B
U1NFUlQoZGF0YS0+ZnVuY3Rpb24gPT0gZ2VuZXJhdGVkRnVuY3Rpb24pOyAvLyBUaGUgdW53aW5k
IGRhdGEgYmV0dGVyIGJlIGZvciBvdXIgZnVuY3Rpb24uCisgICAgCisgICAgY29tcGFjdF91bndp
bmRfZW5jb2RpbmdfdCBlbmNvZGluZyA9IGRhdGEtPmVuY29kaW5nOworICAgIFJFTEVBU0VfQVNT
RVJUKCEoZW5jb2RpbmcgJiBVTldJTkRfSVNfTk9UX0ZVTkNUSU9OX1NUQVJUKSk7CisgICAgUkVM
RUFTRV9BU1NFUlQoIShlbmNvZGluZyAmIFVOV0lORF9IQVNfTFNEQSkpOworICAgIFJFTEVBU0Vf
QVNTRVJUKCEoZW5jb2RpbmcgJiBVTldJTkRfUEVSU09OQUxJVFlfTUFTSykpOworICAgIFJFTEVB
U0VfQVNTRVJUKChlbmNvZGluZyAmIFVOV0lORF9YODZfNjRfTU9ERV9NQVNLKSA9PSBVTldJTkRf
WDg2XzY0X01PREVfUkJQX0ZSQU1FKTsKKyAgICAKKyAgICBpbnQzMl90IG9mZnNldCA9IC0oKGVu
Y29kaW5nICYgVU5XSU5EX1g4Nl82NF9SQlBfRlJBTUVfT0ZGU0VUKSA+PiAxNikgKiA4OworICAg
IHVpbnQzMl90IG5leHRSZWdpc3RlcnMgPSBlbmNvZGluZzsKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSA1OyBpLS07KSB7CisgICAgICAgIHVpbnQzMl90IGN1cnJlbnRSZWdpc3RlciA9IG5leHRSZWdp
c3RlcnMgJiA3OworICAgICAgICBuZXh0UmVnaXN0ZXJzID4+PSAzOworICAgICAgICAKKyAgICAg
ICAgc3dpdGNoIChjdXJyZW50UmVnaXN0ZXIpIHsKKyAgICAgICAgY2FzZSBVTldJTkRfWDg2XzY0
X1JFR19OT05FOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgY2Fz
ZSBVTldJTkRfWDg2XzY0X1JFR19SQlg6CisgICAgICAgICAgICBtX3JlZ2lzdGVycy5hcHBlbmQo
UmVnaXN0ZXJBdE9mZnNldChYODZSZWdpc3RlcnM6OmVieCwgb2Zmc2V0KSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFVOV0lORF9YODZfNjRfUkVHX1Ix
MjoKKyAgICAgICAgICAgIG1fcmVnaXN0ZXJzLmFwcGVuZChSZWdpc3RlckF0T2Zmc2V0KFg4NlJl
Z2lzdGVyczo6cjEyLCBvZmZzZXQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
CisgICAgICAgIGNhc2UgVU5XSU5EX1g4Nl82NF9SRUdfUjEzOgorICAgICAgICAgICAgbV9yZWdp
c3RlcnMuYXBwZW5kKFJlZ2lzdGVyQXRPZmZzZXQoWDg2UmVnaXN0ZXJzOjpyMTMsIG9mZnNldCkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBVTldJTkRf
WDg2XzY0X1JFR19SMTQ6CisgICAgICAgICAgICBtX3JlZ2lzdGVycy5hcHBlbmQoUmVnaXN0ZXJB
dE9mZnNldChYODZSZWdpc3RlcnM6OnIxNCwgb2Zmc2V0KSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFVOV0lORF9YODZfNjRfUkVHX1IxNToKKyAgICAg
ICAgICAgIG1fcmVnaXN0ZXJzLmFwcGVuZChSZWdpc3RlckF0T2Zmc2V0KFg4NlJlZ2lzdGVyczo6
cjE1LCBvZmZzZXQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAg
IGNhc2UgVU5XSU5EX1g4Nl82NF9SRUdfUkJQOgorICAgICAgICAgICAgbV9yZWdpc3RlcnMuYXBw
ZW5kKFJlZ2lzdGVyQXRPZmZzZXQoWDg2UmVnaXN0ZXJzOjplYnAsIG9mZnNldCkpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAg
ICAgIG9mZnNldCArPSA4OworICAgIH0KKyAgICAKKyAgICBzdGQ6OnNvcnQobV9yZWdpc3RlcnMu
YmVnaW4oKSwgbV9yZWdpc3RlcnMuZW5kKCkpOworfQorCit2b2lkIFVud2luZEluZm86OmR1bXAo
UHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBvdXQucHJpbnQobGlzdER1bXAobV9yZWdp
c3RlcnMpKTsKK30KKworUmVnaXN0ZXJBdE9mZnNldCogVW53aW5kSW5mbzo6ZmluZChHUFJSZWcg
Z3ByKSBjb25zdAoreworICAgIHJldHVybiB0cnlCaW5hcnlTZWFyY2g8UmVnaXN0ZXJBdE9mZnNl
dCwgR1BSUmVnPihtX3JlZ2lzdGVycywgbV9yZWdpc3RlcnMuc2l6ZSgpLCBncHIsIFJlZ2lzdGVy
QXRPZmZzZXQ6OmdldEdQUik7Cit9CisKK3Vuc2lnbmVkIFVud2luZEluZm86OmluZGV4T2YoR1BS
UmVnIGdwcikgY29uc3QKK3sKKyAgICBpZiAoUmVnaXN0ZXJBdE9mZnNldCogcG9pbnRlciA9IGZp
bmQoZ3ByKSkKKyAgICAgICAgcmV0dXJuIHBvaW50ZXIgLSBtX3JlZ2lzdGVycy5iZWdpbigpOwor
ICAgIHJldHVybiBVSU5UX01BWDsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisj
ZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMVW53aW5kSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExV
bndpbmRJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU1NDE3MjhkNDUyMTUyZDdmZmNlOWM4NjZlYzdhZDkx
MjE0MmU4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
VW53aW5kSW5mby5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBGVExVbndpbmRJbmZvX2gKKyNkZWZpbmUgRlRM
VW53aW5kSW5mb19oCisKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKworI2luY2x1ZGUgIkZUTEdlbmVy
YXRlZEZ1bmN0aW9uLmgiCisjaW5jbHVkZSAiRlRMUmVnaXN0ZXJBdE9mZnNldC5oIgorCituYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK3N0cnVjdCBVbndpbmRJbmZvIHsKKyAgICBV
bndpbmRJbmZvKCk7CisgICAgflVud2luZEluZm8oKTsKKyAgICAKKyAgICB2b2lkIHBhcnNlKHZv
aWQqLCBzaXplX3QsIEdlbmVyYXRlZEZ1bmN0aW9uKTsKKyAgICAKKyAgICB2b2lkIGR1bXAoUHJp
bnRTdHJlYW0mKSBjb25zdDsKKyAgICAKKyAgICBSZWdpc3RlckF0T2Zmc2V0KiBmaW5kKEdQUlJl
ZyBncHIpIGNvbnN0OworICAgIHVuc2lnbmVkIGluZGV4T2YoR1BSUmVnIGdwcikgY29uc3Q7IC8v
IFJldHVybnMgVUlOVF9NQVggaWYgbm90IGZvdW5kLgorICAgIAorICAgIFZlY3RvcjxSZWdpc3Rl
ckF0T2Zmc2V0PiBtX3JlZ2lzdGVyczsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwK
KworI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorCisjZW5kaWYgLy8gRlRMVW53aW5kSW5mb19o
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVmFsdWVSYW5nZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVlUmFuZ2UuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA4OTdjODZiZDQwNWYzYjRkMmY0NWRmOTc3YjM2OWFhN2M5MzZkOTYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVlUmFuZ2UuY3BwCkBAIC0w
LDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZUTFZhbHVlUmFuZ2UuaCIKKworI2lu
Y2x1ZGUgIkZUTEFiYnJldmlhdGlvbnMuaCIKKworI2lmIEVOQUJMRShGVExfSklUKQorCituYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK3ZvaWQgVmFsdWVSYW5nZTo6ZGVjb3JhdGVJ
bnN0cnVjdGlvbigKKyAgICBMQ29udGV4dCBjb250ZXh0LCBMVmFsdWUgbG9hZEluc3RydWN0aW9u
LCB1bnNpZ25lZCByYW5nZUtpbmQpIGNvbnN0Cit7CisgICAgaWYgKCFtX3JhbmdlTWV0YWRhdGEp
CisgICAgICAgIG1fcmFuZ2VNZXRhZGF0YSA9IG1kTm9kZShjb250ZXh0LCBtX2JlZ2luLCBtX2Vu
ZCk7CisgICAgc2V0TWV0YWRhdGEobG9hZEluc3RydWN0aW9uLCByYW5nZUtpbmQsIG1fcmFuZ2VN
ZXRhZGF0YSk7Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKKworI2VuZGlmIC8vIEVO
QUJMRShGVExfSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExW
YWx1ZVJhbmdlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFZhbHVlUmFuZ2UuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iZWU0NGVmYTE4ODAxOTBmZTBjZDhkMjQzNGM4ZDA1ZTRhMjhhMDU1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExWYWx1ZVJhbmdlLmgK
QEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIEZUTFZhbHVlUmFuZ2VfaAorI2RlZmluZSBGVExWYWx1ZVJhbmdlX2gK
KworI2lmIEVOQUJMRShGVExfSklUKQorCisjaW5jbHVkZSAiRlRMQWJicmV2aWF0ZWRUeXBlcy5o
IgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CisKK2NsYXNzIFZhbHVlUmFuZ2Ug
eworcHVibGljOgorICAgIFZhbHVlUmFuZ2UoKQorICAgICAgICA6IG1fYmVnaW4oMCkKKyAgICAg
ICAgLCBtX2VuZCgwKQorICAgICAgICAsIG1fcmFuZ2VNZXRhZGF0YSgwKQorICAgIHsKKyAgICB9
CisgICAgCisgICAgVmFsdWVSYW5nZShMVmFsdWUgYmVnaW4sIExWYWx1ZSBlbmQpCisgICAgICAg
IDogbV9iZWdpbihiZWdpbikKKyAgICAgICAgLCBtX2VuZChlbmQpCisgICAgICAgICwgbV9yYW5n
ZU1ldGFkYXRhKDApCisgICAgeworICAgIH0KKyAgICAKKyAgICBMVmFsdWUgYmVnaW4oKSBjb25z
dCB7IHJldHVybiBtX2JlZ2luOyB9CisgICAgTFZhbHVlIGVuZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZW5kOyB9CisgICAgCisgICAgdm9pZCBkZWNvcmF0ZUluc3RydWN0aW9uKExDb250ZXh0LCBMVmFs
dWUgbG9hZEluc3RydWN0aW9uLCB1bnNpZ25lZCByYW5nZUtpbmQpIGNvbnN0OworICAgIAorcHJp
dmF0ZToKKyAgICBMVmFsdWUgbV9iZWdpbjsKKyAgICBMVmFsdWUgbV9lbmQ7CisgICAgbXV0YWJs
ZSBMVmFsdWUgbV9yYW5nZU1ldGFkYXRhOworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZU
TAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKKyNlbmRpZiAvLyBGVExWYWx1ZVJhbmdl
X2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2VydmF0aXZl
Um9vdHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2VydmF0aXZlUm9vdHMu
Y3BwCmluZGV4IDdmYzhlZWUzZmY4MjIzNDUzY2FjOGU1NzNmOTNiMWUzN2QzYzc5ODIuLjQwZGY5
MDNjMDg0MzE2YzkxNzJkNjg1MmMzNjU1OGQwZGE1ZjFhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0NvbnNlcnZhdGl2ZVJvb3RzLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9Db25zZXJ2YXRpdmVSb290cy5jcHAKQEAgLTk5LDcgKzk5LDYgQEAg
dm9pZCBDb25zZXJ2YXRpdmVSb290czo6Z2VuZXJpY0FkZFNwYW4odm9pZCogYmVnaW4sIHZvaWQq
IGVuZCwgTWFya0hvb2smIG1hcmtIb28KICAgICAgICAgZW5kID0gc3dhcFRlbXA7CiAgICAgfQog
Ci0gICAgQVNTRVJUKChzdGF0aWNfY2FzdDxjaGFyKj4oZW5kKSAtIHN0YXRpY19jYXN0PGNoYXIq
PihiZWdpbikpIDwgMHgxMDAwMDAwKTsKICAgICBBU1NFUlQoaXNQb2ludGVyQWxpZ25lZChiZWdp
bikpOwogICAgIEFTU0VSVChpc1BvaW50ZXJBbGlnbmVkKGVuZCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuY3BwCmluZGV4IDJhYmEzYWE5ZDAxZTcxMjhhMDA0MGY4ZmI2NGI5YjliMDdh
OTYzNzYuLmE2MmEyMzdiNWMzNmIyZjcxMzM0Y2Y4N2VhMTYzMDQ2Nzg2ZTNlNzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmln
aHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTEsIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAw
MywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMSwgMjAxMywgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEVy
aWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTQ1MSwyNCArNDUx
LDI3IEBAIHZvaWQgSGVhcDo6bWFya1Jvb3RzKCkKICAgICBkb3VibGUgZ2NTdGFydFRpbWUgPSBX
VEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwogI2VuZGlmCiAKKyAgICBtX2NvZGVC
bG9ja3MuY2xlYXJNYXJrcygpOwogICAgIHZvaWQqIGR1bW15OwotICAgIAorCiAgICAgLy8gV2Ug
Z2F0aGVyIGNvbnNlcnZhdGl2ZSByb290cyBiZWZvcmUgY2xlYXJpbmcgbWFyayBiaXRzIGJlY2F1
c2UgY29uc2VydmF0aXZlCiAgICAgLy8gZ2F0aGVyaW5nIHVzZXMgdGhlIG1hcmsgYml0cyB0byBk
ZXRlcm1pbmUgd2hldGhlciBhIHJlZmVyZW5jZSBpcyB2YWxpZC4KICAgICBDb25zZXJ2YXRpdmVS
b290cyBtYWNoaW5lVGhyZWFkUm9vdHMoJm1fb2JqZWN0U3BhY2UuYmxvY2tzKCksICZtX3N0b3Jh
Z2VTcGFjZSk7CiAgICAgbV9qaXRTdHViUm91dGluZXMuY2xlYXJNYXJrcygpOwogICAgIHsKICAg
ICAgICAgR0NQSEFTRShHYXRoZXJDb25zZXJ2YXRpdmVSb290cyk7Ci0gICAgICAgIG1fbWFjaGlu
ZVRocmVhZHMuZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMobWFjaGluZVRocmVhZFJvb3RzLCAmZHVt
bXkpOworICAgICAgICBtX21hY2hpbmVUaHJlYWRzLmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKG1h
Y2hpbmVUaHJlYWRSb290cywgbV9qaXRTdHViUm91dGluZXMsIG1fY29kZUJsb2NrcywgJmR1bW15
KTsKICAgICB9CiAKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQogICAgIENvbnNlcnZhdGl2ZVJv
b3RzIHN0YWNrUm9vdHMoJm1fb2JqZWN0U3BhY2UuYmxvY2tzKCksICZtX3N0b3JhZ2VTcGFjZSk7
Ci0gICAgbV9jb2RlQmxvY2tzLmNsZWFyTWFya3MoKTsKICAgICB7CiAgICAgICAgIEdDUEhBU0Uo
R2F0aGVyU3RhY2tSb290cyk7CiAgICAgICAgIHN0YWNrKCkuZ2F0aGVyQ29uc2VydmF0aXZlUm9v
dHMoc3RhY2tSb290cywgbV9qaXRTdHViUm91dGluZXMsIG1fY29kZUJsb2Nrcyk7Ci0gICAgICAg
IHN0YWNrKCkuc2FuaXRpemVTdGFjaygpOwogICAgIH0KKyNlbmRpZgorCisgICAgc2FuaXRpemVT
dGFja0ZvclZNKG1fdm0pOwogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAgQ29uc2VydmF0aXZl
Um9vdHMgc2NyYXRjaEJ1ZmZlclJvb3RzKCZtX29iamVjdFNwYWNlLmJsb2NrcygpLCAmbV9zdG9y
YWdlU3BhY2UpOwpAQCAtNTA1LDEyICs1MDgsMTQgQEAgdm9pZCBIZWFwOjptYXJrUm9vdHMoKQog
ICAgICAgICAgICAgdmlzaXRvci5hcHBlbmQobWFjaGluZVRocmVhZFJvb3RzKTsKICAgICAgICAg
ICAgIHZpc2l0b3IuZG9uYXRlQW5kRHJhaW4oKTsKICAgICAgICAgfQorI2lmIEVOQUJMRShMTElO
VF9DX0xPT1ApCiAgICAgICAgIHsKICAgICAgICAgICAgIEdDUEhBU0UoVmlzaXRTdGFja1Jvb3Rz
KTsKICAgICAgICAgICAgIE1BUktfTE9HX1JPT1QodmlzaXRvciwgIlN0YWNrIik7CiAgICAgICAg
ICAgICB2aXNpdG9yLmFwcGVuZChzdGFja1Jvb3RzKTsKICAgICAgICAgICAgIHZpc2l0b3IuZG9u
YXRlQW5kRHJhaW4oKTsKICAgICAgICAgfQorI2VuZGlmCiAjaWYgRU5BQkxFKERGR19KSVQpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIEdDUEhBU0UoVmlzaXRTY3JhdGNoQnVmZmVyUm9vdHMpOwpA
QCAtOTUyLDEyICs5NTcsMTIgQEAgdm9pZCBIZWFwOjpjb2xsZWN0KCkKIAogYm9vbCBIZWFwOjpj
b2xsZWN0SWZOZWNlc3NhcnlPckRlZmVyKCkKIHsKLSAgICBpZiAobV9kZWZlcnJhbERlcHRoKQor
ICAgIGlmIChpc0RlZmVycmVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwogICAg
IGlmICghc2hvdWxkQ29sbGVjdCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCisKICAg
ICBjb2xsZWN0KCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFw
LmgKaW5kZXggN2JhMTVjYTU4NGNjMTU3YmFkYjBhMTBiMjRhYmFlZDg2MWQzN2Q3MC4uNWYyYWNh
ZWIwZDU0YzZmYzI3ZmE2ZDFlZDBhMDA2ODRhNDZkZDdhNyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0hlYXAuaApAQCAtMTk3LDcgKzE5Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAKICAg
ICAgICAgdm9pZCBhZGRSZWZlcmVuY2UoSlNDZWxsKiwgQXJyYXlCdWZmZXIqKTsKICAgICAgICAg
Ci0gICAgICAgIGJvb2wgaXNEZWZlcnJlZCgpIGNvbnN0IHsgcmV0dXJuICEhbV9kZWZlcnJhbERl
cHRoOyB9CisgICAgICAgIGJvb2wgaXNEZWZlcnJlZCgpIGNvbnN0IHsgcmV0dXJuICEhbV9kZWZl
cnJhbERlcHRoIHx8IE9wdGlvbnM6OmRpc2FibGVHQygpOyB9CiAKICNpZiBVU0UoQ0YpCiAgICAg
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgcmVsZWFzZVNvb24oUmV0YWluUHRyPFQ+JiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFy
a2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5j
cHAKaW5kZXggZjU0NmNiMzhiYmM2NTFmMTE4N2Q2ZmQzNmEzNjYyYjRkODY4ZjMxMC4uODI2MzE5
MmQxY2Q5YWUyY2ExNzMyYmFkMmE3YzM4ZjkyNDJkMDdiZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwCkBAIC0yMzIsNyArMjMyLDcg
QEAgdm9pZCBNYWNoaW5lVGhyZWFkczo6cmVtb3ZlQ3VycmVudFRocmVhZCgpCiAjZGVmaW5lIFJF
R0lTVEVSX0JVRkZFUl9BTElHTk1FTlQKICNlbmRpZgogCi12b2lkIE1hY2hpbmVUaHJlYWRzOjpn
YXRoZXJGcm9tQ3VycmVudFRocmVhZChDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9v
dHMsIHZvaWQqIHN0YWNrQ3VycmVudCkKK3ZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckZyb21D
dXJyZW50VGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgSklUU3R1
YlJvdXRpbmVTZXQmIGppdFN0dWJSb3V0aW5lcywgQ29kZUJsb2NrU2V0JiBjb2RlQmxvY2tzLCB2
b2lkKiBzdGFja0N1cnJlbnQpCiB7CiAgICAgLy8gc2V0am1wIGZvcmNlcyB2b2xhdGlsZSByZWdp
c3RlcnMgb250byB0aGUgc3RhY2sKICAgICBqbXBfYnVmIHJlZ2lzdGVycyBSRUdJU1RFUl9CVUZG
RVJfQUxJR05NRU5UOwpAQCAtMjQ4LDEyICsyNDgsMTIgQEAgdm9pZCBNYWNoaW5lVGhyZWFkczo6
Z2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJv
b3QKICAgICB2b2lkKiByZWdpc3RlcnNCZWdpbiA9ICZyZWdpc3RlcnM7CiAgICAgdm9pZCogcmVn
aXN0ZXJzRW5kID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocm91bmRVcFRvTXVsdGlwbGVPZjxz
aXplb2Yodm9pZCopPihyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oJnJlZ2lzdGVycyArIDEp
KSk7CiAgICAgc3dhcElmQmFja3dhcmRzKHJlZ2lzdGVyc0JlZ2luLCByZWdpc3RlcnNFbmQpOwot
ICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChyZWdpc3RlcnNCZWdpbiwgcmVnaXN0ZXJzRW5kKTsK
KyAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQocmVnaXN0ZXJzQmVnaW4sIHJlZ2lzdGVyc0VuZCwg
aml0U3R1YlJvdXRpbmVzLCBjb2RlQmxvY2tzKTsKIAogICAgIHZvaWQqIHN0YWNrQmVnaW4gPSBz
dGFja0N1cnJlbnQ7CiAgICAgdm9pZCogc3RhY2tFbmQgPSB3dGZUaHJlYWREYXRhKCkuc3RhY2so
KS5vcmlnaW4oKTsKICAgICBzd2FwSWZCYWNrd2FyZHMoc3RhY2tCZWdpbiwgc3RhY2tFbmQpOwot
ICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChzdGFja0JlZ2luLCBzdGFja0VuZCk7CisgICAgY29u
c2VydmF0aXZlUm9vdHMuYWRkKHN0YWNrQmVnaW4sIHN0YWNrRW5kLCBqaXRTdHViUm91dGluZXMs
IGNvZGVCbG9ja3MpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgc3VzcGVuZFRocmVhZChjb25z
dCBQbGF0Zm9ybVRocmVhZCYgcGxhdGZvcm1UaHJlYWQpCkBAIC00MzQsMjQgKzQzNCwyNCBAQCBz
dGF0aWMgdm9pZCBmcmVlUGxhdGZvcm1UaHJlYWRSZWdpc3RlcnMoUGxhdGZvcm1UaHJlYWRSZWdp
c3RlcnMmIHJlZ3MpCiAjZW5kaWYKIH0KIAotdm9pZCBNYWNoaW5lVGhyZWFkczo6Z2F0aGVyRnJv
bU90aGVyVGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgVGhyZWFk
KiB0aHJlYWQpCit2b2lkIE1hY2hpbmVUaHJlYWRzOjpnYXRoZXJGcm9tT3RoZXJUaHJlYWQoQ29u
c2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzLCBUaHJlYWQqIHRocmVhZCwgSklUU3R1
YlJvdXRpbmVTZXQmIGppdFN0dWJSb3V0aW5lcywgQ29kZUJsb2NrU2V0JiBjb2RlQmxvY2tzKQog
ewogICAgIFBsYXRmb3JtVGhyZWFkUmVnaXN0ZXJzIHJlZ3M7CiAgICAgc2l6ZV90IHJlZ1NpemUg
PSBnZXRQbGF0Zm9ybVRocmVhZFJlZ2lzdGVycyh0aHJlYWQtPnBsYXRmb3JtVGhyZWFkLCByZWdz
KTsKIAotICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChzdGF0aWNfY2FzdDx2b2lkKj4oJnJlZ3Mp
LCBzdGF0aWNfY2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJnJlZ3MpICsgcmVn
U2l6ZSkpOworICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChzdGF0aWNfY2FzdDx2b2lkKj4oJnJl
Z3MpLCBzdGF0aWNfY2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJnJlZ3MpICsg
cmVnU2l6ZSksIGppdFN0dWJSb3V0aW5lcywgY29kZUJsb2Nrcyk7CiAKICAgICB2b2lkKiBzdGFj
a1BvaW50ZXIgPSBvdGhlclRocmVhZFN0YWNrUG9pbnRlcihyZWdzKTsKICAgICB2b2lkKiBzdGFj
a0Jhc2UgPSB0aHJlYWQtPnN0YWNrQmFzZTsKICAgICBzd2FwSWZCYWNrd2FyZHMoc3RhY2tQb2lu
dGVyLCBzdGFja0Jhc2UpOwotICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChzdGFja1BvaW50ZXIs
IHN0YWNrQmFzZSk7CisgICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKHN0YWNrUG9pbnRlciwgc3Rh
Y2tCYXNlLCBqaXRTdHViUm91dGluZXMsIGNvZGVCbG9ja3MpOwogCiAgICAgZnJlZVBsYXRmb3Jt
VGhyZWFkUmVnaXN0ZXJzKHJlZ3MpOwogfQogCi12b2lkIE1hY2hpbmVUaHJlYWRzOjpnYXRoZXJD
b25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMsIHZv
aWQqIHN0YWNrQ3VycmVudCkKK3ZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckNvbnNlcnZhdGl2
ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290cywgSklUU3R1YlJvdXRp
bmVTZXQmIGppdFN0dWJSb3V0aW5lcywgQ29kZUJsb2NrU2V0JiBjb2RlQmxvY2tzLCB2b2lkKiBz
dGFja0N1cnJlbnQpCiB7Ci0gICAgZ2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQoY29uc2VydmF0aXZl
Um9vdHMsIHN0YWNrQ3VycmVudCk7CisgICAgZ2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQoY29uc2Vy
dmF0aXZlUm9vdHMsIGppdFN0dWJSb3V0aW5lcywgY29kZUJsb2Nrcywgc3RhY2tDdXJyZW50KTsK
IAogICAgIGlmIChtX3RocmVhZFNwZWNpZmljKSB7CiAgICAgICAgIFBsYXRmb3JtVGhyZWFkIGN1
cnJlbnRQbGF0Zm9ybVRocmVhZCA9IGdldEN1cnJlbnRQbGF0Zm9ybVRocmVhZCgpOwpAQCAtNDcz
LDcgKzQ3Myw3IEBAIHZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhlckNvbnNlcnZhdGl2ZVJvb3Rz
KENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290CiAgICAgICAgIC8vIGFuZCBzaW5j
ZSB0aGlzIGlzIGEgc2hhcmVkIGhlYXAsIHRoZXkgYXJlIHJlYWwgbG9ja3MuCiAgICAgICAgIGZv
ciAoVGhyZWFkKiB0aHJlYWQgPSBtX3JlZ2lzdGVyZWRUaHJlYWRzOyB0aHJlYWQ7IHRocmVhZCA9
IHRocmVhZC0+bmV4dCkgewogICAgICAgICAgICAgaWYgKCFlcXVhbFRocmVhZCh0aHJlYWQtPnBs
YXRmb3JtVGhyZWFkLCBjdXJyZW50UGxhdGZvcm1UaHJlYWQpKQotICAgICAgICAgICAgICAgIGdh
dGhlckZyb21PdGhlclRocmVhZChjb25zZXJ2YXRpdmVSb290cywgdGhyZWFkKTsKKyAgICAgICAg
ICAgICAgICBnYXRoZXJGcm9tT3RoZXJUaHJlYWQoY29uc2VydmF0aXZlUm9vdHMsIHRocmVhZCwg
aml0U3R1YlJvdXRpbmVzLCBjb2RlQmxvY2tzKTsKICAgICAgICAgfQogCiAgICAgICAgIGZvciAo
VGhyZWFkKiB0aHJlYWQgPSBtX3JlZ2lzdGVyZWRUaHJlYWRzOyB0aHJlYWQ7IHRocmVhZCA9IHRo
cmVhZC0+bmV4dCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFj
aGluZVN0YWNrTWFya2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3Rh
Y2tNYXJrZXIuaAppbmRleCA0OTgyM2Q0M2UyN2I1M2M5ZGViN2IwMTA2ODlmYTY3YjViYzY3NTI2
Li4zM2I3MmM4NjE0ZjA2YWZlYjQxZGMwNDkwMjUyYTYxMDY3YjUzOTY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuaApAQCAtMjgsOCArMjgs
MTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyAgICBjbGFzcyBDb2RlQmxvY2tTZXQ7CiAgICAg
Y2xhc3MgQ29uc2VydmF0aXZlUm9vdHM7CiAgICAgY2xhc3MgSGVhcDsKKyAgICBjbGFzcyBKSVRT
dHViUm91dGluZVNldDsKIAogICAgIGNsYXNzIE1hY2hpbmVUaHJlYWRzIHsKICAgICAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoTWFjaGluZVRocmVhZHMpOwpAQCAtMzcsMjAgKzM5LDIwIEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBNYWNoaW5lVGhyZWFkcyhIZWFwKik7CiAgICAgICAgIH5N
YWNoaW5lVGhyZWFkcygpOwogCi0gICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMo
Q29uc2VydmF0aXZlUm9vdHMmLCB2b2lkKiBzdGFja0N1cnJlbnQpOworICAgICAgICB2b2lkIGdh
dGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiwgSklUU3R1YlJvdXRpbmVT
ZXQmLCBDb2RlQmxvY2tTZXQmLCB2b2lkKiBzdGFja0N1cnJlbnQpOwogCiAgICAgICAgIEpTX0VY
UE9SVF9QUklWQVRFIHZvaWQgbWFrZVVzYWJsZUZyb21NdWx0aXBsZVRocmVhZHMoKTsKICAgICAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBhZGRDdXJyZW50VGhyZWFkKCk7IC8vIE9ubHkgbmVl
ZHMgdG8gYmUgY2FsbGVkIGJ5IGNsaWVudHMgdGhhdCBjYW4gdXNlIHRoZSBzYW1lIGhlYXAgZnJv
bSBtdWx0aXBsZSB0aHJlYWRzLgogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBnYXRoZXJG
cm9tQ3VycmVudFRocmVhZChDb25zZXJ2YXRpdmVSb290cyYsIHZvaWQqIHN0YWNrQ3VycmVudCk7
CisgICAgICAgIHZvaWQgZ2F0aGVyRnJvbUN1cnJlbnRUaHJlYWQoQ29uc2VydmF0aXZlUm9vdHMm
LCBKSVRTdHViUm91dGluZVNldCYsIENvZGVCbG9ja1NldCYsIHZvaWQqIHN0YWNrQ3VycmVudCk7
CiAKICAgICAgICAgY2xhc3MgVGhyZWFkOwogCiAgICAgICAgIHN0YXRpYyB2b2lkIHJlbW92ZVRo
cmVhZCh2b2lkKik7CiAgICAgICAgIHZvaWQgcmVtb3ZlQ3VycmVudFRocmVhZCgpOwogCi0gICAg
ICAgIHZvaWQgZ2F0aGVyRnJvbU90aGVyVGhyZWFkKENvbnNlcnZhdGl2ZVJvb3RzJiwgVGhyZWFk
Kik7CisgICAgICAgIHZvaWQgZ2F0aGVyRnJvbU90aGVyVGhyZWFkKENvbnNlcnZhdGl2ZVJvb3Rz
JiwgVGhyZWFkKiwgSklUU3R1YlJvdXRpbmVTZXQmLCBDb2RlQmxvY2tTZXQmKTsKIAogICAgICAg
ICBNdXRleCBtX3JlZ2lzdGVyZWRUaHJlYWRzTXV0ZXg7CiAgICAgICAgIFRocmVhZCogbV9yZWdp
c3RlcmVkVGhyZWFkczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9DYWxsRnJhbWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0Nh
bGxGcmFtZS5jcHAKaW5kZXggYTIyNmU5ODQ4YmY5YTE0N2U5MGRiNjRmMDFmYzE2NjJhY2UwOWJk
NS4uNGE2MDgwOWUyOWQxNmY3MWMyOTQ4ZjY2MTg2OGFkMmI2ZDlkYzg5YiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAKQEAgLTExNiwxMSAr
MTE2LDExIEBAIENvZGVPcmlnaW4gQ2FsbEZyYW1lOjpjb2RlT3JpZ2luKCkKICAgICByZXR1cm4g
Q29kZU9yaWdpbihsb2NhdGlvbkFzQnl0ZWNvZGVPZmZzZXQoKSk7CiB9CiAKLVJlZ2lzdGVyKiBD
YWxsRnJhbWU6OmZyYW1lRXh0ZW50SW50ZXJuYWwoKQorUmVnaXN0ZXIqIENhbGxGcmFtZTo6dG9w
T2ZGcmFtZUludGVybmFsKCkKIHsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IHRoaXMtPmNv
ZGVCbG9jaygpOwogICAgIEFTU0VSVChjb2RlQmxvY2spOwotICAgIHJldHVybiByZWdpc3RlcnMo
KSArIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGNvZGVCbG9jay0+ZnJhbWVSZWdpc3RlckNvdW50
KCkpLm9mZnNldCgpOworICAgIHJldHVybiByZWdpc3RlcnMoKSArIGNvZGVCbG9jay0+c3RhY2tQ
b2ludGVyT2Zmc2V0KCk7CiB9CiAKIEpTR2xvYmFsT2JqZWN0KiBDYWxsRnJhbWU6OnZtRW50cnlH
bG9iYWxPYmplY3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0NhbGxGcmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxG
cmFtZS5oCmluZGV4IDQ4ZmJjZDc3OWI5ODRjM2Q4MTI4OWY0MmY1YjUzNDdjYjNkYzBjNWUuLjZm
NTA4NDIyYTU3MDYwZGExZjg3NmFhNGFlYWU4Njk1MGY3MDJkN2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKQEAgLTE3NiwxNSArMTc2LDEzIEBA
IG5hbWVzcGFjZSBKU0MgIHsKICAgICAgICAgLy8gQ29kZU9yaWdpbigwKSBpZiB3ZSdyZSBpbiBu
YXRpdmUgY29kZS4KICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luKCk7CiAKLSAgICAgICAg
UmVnaXN0ZXIqIGZyYW1lRXh0ZW50KCkKKyAgICAgICAgUmVnaXN0ZXIqIHRvcE9mRnJhbWUoKQog
ICAgICAgICB7CiAgICAgICAgICAgICBpZiAoaXNWTUVudHJ5U2VudGluZWwoKSB8fCAhY29kZUJs
b2NrKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdGVycygpIC0gMTsKLSAgICAgICAg
ICAgIHJldHVybiBmcmFtZUV4dGVudEludGVybmFsKCk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHJlZ2lzdGVycygpOworICAgICAgICAgICAgcmV0dXJuIHRvcE9mRnJhbWVJbnRlcm5hbCgpOwog
ICAgICAgICB9CiAgICAgCi0gICAgICAgIFJlZ2lzdGVyKiBmcmFtZUV4dGVudEludGVybmFsKCk7
Ci0KICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgICAgICBJbnN0cnVjdGlvbiogY3VycmVudFZQ
QygpIGNvbnN0CiAgICAgICAgIHsKQEAgLTMxOCw2ICszMTYsOCBAQCBuYW1lc3BhY2UgSlNDICB7
CiAgICAgICAgIEV4ZWNTdGF0ZSgpOwogICAgICAgICB+RXhlY1N0YXRlKCk7CiAKKyAgICAgICAg
UmVnaXN0ZXIqIHRvcE9mRnJhbWVJbnRlcm5hbCgpOworCiAgICAgICAgIC8vIFRoZSBmb2xsb3dp
bmcgYXJlIGZvciBpbnRlcm5hbCB1c2UgaW4gZGVidWdnaW5nIGFuZCB2ZXJpZmljYXRpb24KICAg
ICAgICAgLy8gY29kZSBvbmx5IGFuZCBub3QgbWVhbnQgYXMgYW4gQVBJIGZvciBnZW5lcmFsIHVz
YWdlOgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmNwcAppbmRleCA0ZmJjODIyOWFjZTk3ZjEyYTk1MTg3Mjc2NWYxMTgxMTQxNDFkM2E5Li4y
MWY1ZGZiNWIxMmVlZDRmODE0ZTU2YThhMDNlOGQ3NWRiNjZlNTY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAgLTY1LDYgKzY1
LDcgQEAKICNpbmNsdWRlICJSZWdFeHBQcm90b3R5cGUuaCIKICNpbmNsdWRlICJSZWdpc3Rlci5o
IgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50Lmgi
CiAjaW5jbHVkZSAiU3RhY2tWaXNpdG9yLmgiCiAjaW5jbHVkZSAiU3RyaWN0RXZhbEFjdGl2YXRp
b24uaCIKICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgiCkBAIC03NCw2ICs3NSw3IEBACiAjaW5j
bHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvU3RhY2tT
dGF0cy5oPgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3Ry
aW5nUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8
d3RmL1dURlRocmVhZERhdGEuaD4KQEAgLTg5LDIyICs5MSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBz
dGQ7CiAKIG5hbWVzcGFjZSBKU0MgewogCi1JbnRlcnByZXRlcjo6RXJyb3JIYW5kbGluZ01vZGU6
OkVycm9ySGFuZGxpbmdNb2RlKEV4ZWNTdGF0ZSAqZXhlYykKLSAgICA6IG1faW50ZXJwcmV0ZXIo
KmV4ZWMtPmludGVycHJldGVyKCkpCi17Ci0gICAgaWYgKCFtX2ludGVycHJldGVyLm1fZXJyb3JI
YW5kbGluZ01vZGVSZWVudHJ5KQotICAgICAgICBtX2ludGVycHJldGVyLnN0YWNrKCkuZW5hYmxl
RXJyb3JTdGFja1Jlc2VydmUoKTsKLSAgICBtX2ludGVycHJldGVyLm1fZXJyb3JIYW5kbGluZ01v
ZGVSZWVudHJ5Kys7Ci19Ci0KLUludGVycHJldGVyOjpFcnJvckhhbmRsaW5nTW9kZTo6fkVycm9y
SGFuZGxpbmdNb2RlKCkKLXsKLSAgICBtX2ludGVycHJldGVyLm1fZXJyb3JIYW5kbGluZ01vZGVS
ZWVudHJ5LS07Ci0gICAgQVNTRVJUKG1faW50ZXJwcmV0ZXIubV9lcnJvckhhbmRsaW5nTW9kZVJl
ZW50cnkgPj0gMCk7Ci0gICAgaWYgKCFtX2ludGVycHJldGVyLm1fZXJyb3JIYW5kbGluZ01vZGVS
ZWVudHJ5KQotICAgICAgICBtX2ludGVycHJldGVyLnN0YWNrKCkuZGlzYWJsZUVycm9yU3RhY2tS
ZXNlcnZlKCk7Ci19Ci0KIEpTVmFsdWUgZXZhbChDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAg
ICBpZiAoIWNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpKQpAQCAtMTUyLDIyICsxMzgsMjUgQEAg
SlNWYWx1ZSBldmFsKENhbGxGcmFtZSogY2FsbEZyYW1lKQogICAgIHJldHVybiBpbnRlcnByZXRl
ci0+ZXhlY3V0ZShldmFsLCBjYWxsRnJhbWUsIHRoaXNWYWx1ZSwgY2FsbGVyU2NvcGVDaGFpbik7
CiB9CiAKLUNhbGxGcmFtZSogc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBKU1N0YWNrKiBzdGFjaywgSlNWYWx1ZSBhcmd1bWVudHMsIGludCBmaXJzdEZy
ZWVSZWdpc3RlcikKK0NhbGxGcmFtZSogc2l6ZUZyYW1lRm9yVmFyYXJncyhDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgSlNTdGFjayogc3RhY2ssIEpTVmFsdWUgYXJndW1lbnRzLCBpbnQgZmlyc3RGcmVl
UmVnaXN0ZXIpCiB7CiAgICAgaWYgKCFhcmd1bWVudHMpIHsgLy8gZi5hcHBseSh4LCBhcmd1bWVu
dHMpLCB3aXRoIGFyZ3VtZW50cyB1bm1vZGlmaWVkLgogICAgICAgICB1bnNpZ25lZCBhcmd1bWVu
dENvdW50SW5jbHVkaW5nVGhpcyA9IGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1Ro
aXMoKTsKLSAgICAgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0
ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpICsgZmlyc3RGcmVlUmVnaXN0ZXIgLSBhcmd1bWVudENv
dW50SW5jbHVkaW5nVGhpcyAtIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgLSAxKTsKLSAg
ICAgICAgaWYgKGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID4gQXJndW1lbnRzOjpNYXhBcmd1
bWVudHMgKyAxIHx8ICFzdGFjay0+Z3JvdyhuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgewot
ICAgICAgICAgICAgY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNhbGxGcmFtZSwgY3Jl
YXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOworICAgICAgICB1bnNpZ25lZCBwYWRk
ZWRDYWxsZWVGcmFtZU9mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdu
bWVudFJlZ2lzdGVycygpLCAtZmlyc3RGcmVlUmVnaXN0ZXIgKyBhcmd1bWVudENvdW50SW5jbHVk
aW5nVGhpcyArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgKyAxKTsKKyAgICAgICAgQ2Fs
bEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lz
dGVycygpIC0gcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQpOworICAgICAgICBpZiAoYXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMgPiBBcmd1bWVudHM6Ok1heEFyZ3VtZW50cyArIDEgfHwgIXN0YWNr
LT5lbnN1cmVDYXBhY2l0eUZvcihuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgeworICAgICAg
ICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAgICAgIHJl
dHVybiAwOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CiAgICAgfQog
CiAgICAgaWYgKGFyZ3VtZW50cy5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7Ci0gICAgICAgIENhbGxG
cmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3Rl
cnMoKSArIGZpcnN0RnJlZVJlZ2lzdGVyIC0gMSAtIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNp
emUgLSAxKTsKLSAgICAgICAgaWYgKCFzdGFjay0+Z3JvdyhuZXdDYWxsRnJhbWUtPnJlZ2lzdGVy
cygpKSkgewotICAgICAgICAgICAgY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNhbGxG
cmFtZSwgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOworICAgICAgICB1bnNp
Z25lZCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyA9IDE7CisgICAgICAgIHVuc2lnbmVkIHBh
ZGRlZENhbGxlZUZyYW1lT2Zmc2V0ID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxp
Z25tZW50UmVnaXN0ZXJzKCksICAtZmlyc3RGcmVlUmVnaXN0ZXIgKyBhcmd1bWVudENvdW50SW5j
bHVkaW5nVGhpcyArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgKyAxKTsKKyAgICAgICAg
Q2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJl
Z2lzdGVycygpIC0gcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQpOworICAgICAgICBpZiAoIXN0YWNr
LT5lbnN1cmVDYXBhY2l0eUZvcihuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgeworICAgICAg
ICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAgICAgIHJl
dHVybiAwOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CkBAIC0xODEs
OSArMTcwLDEwIEBAIENhbGxGcmFtZSogc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKENhbGxG
cmFtZSogY2FsbEZyYW1lLCBKU1N0YWNrKiBzdGFjaywgSlNWCiAgICAgaWYgKGFzT2JqZWN0KGFy
Z3VtZW50cyktPmNsYXNzSW5mbygpID09IEFyZ3VtZW50czo6aW5mbygpKSB7CiAgICAgICAgIEFy
Z3VtZW50cyogYXJnc09iamVjdCA9IGFzQXJndW1lbnRzKGFyZ3VtZW50cyk7CiAgICAgICAgIHVu
c2lnbmVkIGFyZ0NvdW50ID0gYXJnc09iamVjdC0+bGVuZ3RoKGNhbGxGcmFtZSk7Ci0gICAgICAg
IENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5y
ZWdpc3RlcnMoKSArIGZpcnN0RnJlZVJlZ2lzdGVyIC0gQ2FsbEZyYW1lOjpvZmZzZXRGb3IoYXJn
Q291bnQgKyAxKSk7Ci0gICAgICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJndW1l
bnRzIHx8ICFzdGFjay0+Z3JvdyhuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgewotICAgICAg
ICAgICAgY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNhbGxGcmFtZSwgY3JlYXRlU3Rh
Y2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOworICAgICAgICB1bnNpZ25lZCBwYWRkZWRDYWxs
ZWVGcmFtZU9mZnNldCA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJl
Z2lzdGVycygpLCAtZmlyc3RGcmVlUmVnaXN0ZXIgKyBDYWxsRnJhbWU6Om9mZnNldEZvcihhcmdD
b3VudCArIDEpKTsKKyAgICAgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6
OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpIC0gcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQp
OworICAgICAgICBpZiAoYXJnQ291bnQgPiBBcmd1bWVudHM6Ok1heEFyZ3VtZW50cyB8fCAhc3Rh
Y2stPmVuc3VyZUNhcGFjaXR5Rm9yKG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7CisgICAg
ICAgICAgICB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpOwogICAgICAgICAgICAg
cmV0dXJuIDA7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKQEAgLTE5
Miw5ICsxODIsMTAgQEAgQ2FsbEZyYW1lKiBzaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MoQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIEpTU3RhY2sqIHN0YWNrLCBKU1YKICAgICBpZiAoaXNKU0FycmF5
KGFyZ3VtZW50cykpIHsKICAgICAgICAgSlNBcnJheSogYXJyYXkgPSBhc0FycmF5KGFyZ3VtZW50
cyk7CiAgICAgICAgIHVuc2lnbmVkIGFyZ0NvdW50ID0gYXJyYXktPmxlbmd0aCgpOwotICAgICAg
ICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNhbGxGcmFtZS0+
cmVnaXN0ZXJzKCkgKyBmaXJzdEZyZWVSZWdpc3RlciAtIENhbGxGcmFtZTo6b2Zmc2V0Rm9yKGFy
Z0NvdW50ICsgMSkpOwotICAgICAgICBpZiAoYXJnQ291bnQgPiBBcmd1bWVudHM6Ok1heEFyZ3Vt
ZW50cyB8fCAhc3RhY2stPmdyb3cobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkpIHsKLSAgICAg
ICAgICAgIGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlvbihjYWxsRnJhbWUsIGNyZWF0ZVN0
YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKKyAgICAgICAgdW5zaWduZWQgcGFkZGVkQ2Fs
bGVlRnJhbWVPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRS
ZWdpc3RlcnMoKSwgLWZpcnN0RnJlZVJlZ2lzdGVyICsgQ2FsbEZyYW1lOjpvZmZzZXRGb3IoYXJn
Q291bnQgKyAxKSk7CisgICAgICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1l
OjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSAtIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0
KTsKKyAgICAgICAgaWYgKGFyZ0NvdW50ID4gQXJndW1lbnRzOjpNYXhBcmd1bWVudHMgfHwgIXN0
YWNrLT5lbnN1cmVDYXBhY2l0eUZvcihuZXdDYWxsRnJhbWUtPnJlZ2lzdGVycygpKSkgeworICAg
ICAgICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAgICAgICAg
IHJldHVybiAwOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CkBAIC0y
MDIsOSArMTkzLDEwIEBAIENhbGxGcmFtZSogc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKENh
bGxGcmFtZSogY2FsbEZyYW1lLCBKU1N0YWNrKiBzdGFjaywgSlNWCiAKICAgICBKU09iamVjdCog
YXJnT2JqZWN0ID0gYXNPYmplY3QoYXJndW1lbnRzKTsKICAgICB1bnNpZ25lZCBhcmdDb3VudCA9
IGFyZ09iamVjdC0+Z2V0KGNhbGxGcmFtZSwgY2FsbEZyYW1lLT5wcm9wZXJ0eU5hbWVzKCkubGVu
Z3RoKS50b1VJbnQzMihjYWxsRnJhbWUpOwotICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0g
Q2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIGZpcnN0RnJlZVJlZ2lz
dGVyIC0gQ2FsbEZyYW1lOjpvZmZzZXRGb3IoYXJnQ291bnQgKyAxKSk7Ci0gICAgaWYgKGFyZ0Nv
dW50ID4gQXJndW1lbnRzOjpNYXhBcmd1bWVudHMgfHwgIXN0YWNrLT5ncm93KG5ld0NhbGxGcmFt
ZS0+cmVnaXN0ZXJzKCkpKSB7Ci0gICAgICAgIGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlv
bihjYWxsRnJhbWUsICBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7CisgICAg
dW5zaWduZWQgcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxl
T2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgLWZpcnN0RnJlZVJlZ2lzdGVyICsgQ2FsbEZy
YW1lOjpvZmZzZXRGb3IoYXJnQ291bnQgKyAxKSk7CisgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJh
bWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpIC0gcGFkZGVkQ2Fs
bGVlRnJhbWVPZmZzZXQpOworICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJndW1l
bnRzIHx8ICFzdGFjay0+ZW5zdXJlQ2FwYWNpdHlGb3IobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMo
KSkpIHsKKyAgICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKTsKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgfQogICAgIHJldHVybiBuZXdDYWxsRnJhbWU7CkBAIC00MjEsNyAr
NDEzLDYgQEAgc3RhdGljIGJvb2wgdW53aW5kQ2FsbEZyYW1lKFN0YWNrVmlzaXRvciYgdmlzaXRv
cikKIHsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IHZpc2l0b3ItPmNhbGxGcmFtZSgpOwog
ICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gdmlzaXRvci0+Y29kZUJsb2NrKCk7Ci0gICAgQ29k
ZUJsb2NrKiBvbGRDb2RlQmxvY2sgPSBjb2RlQmxvY2s7CiAgICAgSlNTY29wZSogc2NvcGUgPSBj
YWxsRnJhbWUtPnNjb3BlKCk7CiAKICAgICBpZiAoRGVidWdnZXIqIGRlYnVnZ2VyID0gY2FsbEZy
YW1lLT52bUVudHJ5R2xvYmFsT2JqZWN0KCktPmRlYnVnZ2VyKCkpIHsKQEAgLTQzMiwxNiArNDIz
LDE2IEBAIHN0YXRpYyBib29sIHVud2luZENhbGxGcmFtZShTdGFja1Zpc2l0b3ImIHZpc2l0b3Ip
CiAgICAgfQogCiAgICAgSlNWYWx1ZSBhY3RpdmF0aW9uOwotICAgIGlmIChvbGRDb2RlQmxvY2st
PmNvZGVUeXBlKCkgPT0gRnVuY3Rpb25Db2RlICYmIG9sZENvZGVCbG9jay0+bmVlZHNBY3RpdmF0
aW9uKCkpIHsKKyAgICBpZiAoY29kZUJsb2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSAm
JiBjb2RlQmxvY2stPm5lZWRzQWN0aXZhdGlvbigpKSB7CiAjaWYgRU5BQkxFKERGR19KSVQpCiAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKCF2aXNpdG9yLT5pc0lubGluZWRGcmFtZSgpKTsKICNlbmRp
ZgotICAgICAgICBhY3RpdmF0aW9uID0gY2FsbEZyYW1lLT51bmNoZWNrZWRSKG9sZENvZGVCbG9j
ay0+YWN0aXZhdGlvblJlZ2lzdGVyKCkub2Zmc2V0KCkpLmpzVmFsdWUoKTsKKyAgICAgICAgYWN0
aXZhdGlvbiA9IGNhbGxGcmFtZS0+dW5jaGVja2VkUihjb2RlQmxvY2stPmFjdGl2YXRpb25SZWdp
c3RlcigpLm9mZnNldCgpKS5qc1ZhbHVlKCk7CiAgICAgICAgIGlmIChhY3RpdmF0aW9uKQogICAg
ICAgICAgICAganNDYXN0PEpTQWN0aXZhdGlvbio+KGFjdGl2YXRpb24pLT50ZWFyT2ZmKCpzY29w
ZS0+dm0oKSk7CiAgICAgfQogCi0gICAgaWYgKG9sZENvZGVCbG9jay0+Y29kZVR5cGUoKSA9PSBG
dW5jdGlvbkNvZGUgJiYgb2xkQ29kZUJsb2NrLT51c2VzQXJndW1lbnRzKCkpIHsKKyAgICBpZiAo
Y29kZUJsb2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSAmJiBjb2RlQmxvY2stPnVzZXNB
cmd1bWVudHMoKSkgewogICAgICAgICBpZiAoQXJndW1lbnRzKiBhcmd1bWVudHMgPSB2aXNpdG9y
LT5leGlzdGluZ0FyZ3VtZW50cygpKSB7CiAgICAgICAgICAgICBpZiAoYWN0aXZhdGlvbikKICAg
ICAgICAgICAgICAgICBhcmd1bWVudHMtPmRpZFRlYXJPZmZBY3RpdmF0aW9uKGNhbGxGcmFtZSwg
anNDYXN0PEpTQWN0aXZhdGlvbio+KGFjdGl2YXRpb24pKTsKQEAgLTQ1NSwxMSArNDQ2LDcgQEAg
c3RhdGljIGJvb2wgdW53aW5kQ2FsbEZyYW1lKFN0YWNrVmlzaXRvciYgdmlzaXRvcikKICAgICB9
CiAKICAgICBDYWxsRnJhbWUqIGNhbGxlckZyYW1lID0gY2FsbEZyYW1lLT5jYWxsZXJGcmFtZSgp
OwotICAgIGlmIChjYWxsZXJGcmFtZS0+aXNWTUVudHJ5U2VudGluZWwoKSkgewotICAgICAgICBj
YWxsRnJhbWUtPnZtKCkudG9wQ2FsbEZyYW1lID0gY2FsbGVyRnJhbWUtPnZtRW50cnlTZW50aW5l
bENhbGxlckZyYW1lKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgcmV0dXJu
IHRydWU7CisgICAgcmV0dXJuICFjYWxsZXJGcmFtZS0+aXNWTUVudHJ5U2VudGluZWwoKTsKIH0K
IAogc3RhdGljIFN0YWNrRnJhbWVDb2RlVHlwZSBnZXRTdGFja0ZyYW1lQ29kZVR5cGUoU3RhY2tW
aXNpdG9yJiB2aXNpdG9yKQpAQCAtNjYyLDcgKzY0OSwxNyBAQCBwcml2YXRlOgogCiBORVZFUl9J
TkxJTkUgSGFuZGxlckluZm8qIEludGVycHJldGVyOjp1bndpbmQoQ2FsbEZyYW1lKiYgY2FsbEZy
YW1lLCBKU1ZhbHVlJiBleGNlcHRpb25WYWx1ZSkKIHsKKyAgICBpZiAoY2FsbEZyYW1lLT5pc1ZN
RW50cnlTZW50aW5lbCgpKSB7CisgICAgICAgIC8vIFRoaXMgaGFwcGVucyB3aGVuIHdlIHRocm93
IHN0YWNrIG92ZXJmbG93IGluIGEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQKKyAgICAgICAgLy8g
ZGlyZWN0bHkgZnJvbSBjYWxsVG9KYXZhU2NyaXB0LiAgU3RhY2sgb3ZlcmZsb3cgdGhyb3dzIHRo
ZSBleGNlcHRpb24gaW4gdGhlCisgICAgICAgIC8vIGNvbnRleHQgb2YgdGhlIGNhbGxlci4gIElu
IHRoYXQgY2FzZSB0aGUgY2FsbGVyIGlzIHRoZSBzZW50aW5lbCBmcmFtZS4gIFRoZQorICAgICAg
ICAvLyByaWdodCB0aGluZyB0byBkbyBpcyB0byBwcmV0ZW5kIHRoYXQgdGhlIGV4Y2VwdGlvbiBp
cyB1bmNhdWdodCBzbyB0aGF0IHdlCisgICAgICAgIC8vIGdvIHRvIHRoZSB1bmNhdWdodCBleGNl
cHRpb24gaGFuZGxlciwgd2hpY2ggcmV0dXJucyB0aHJvdWdoIGNhbGxUb0phdmFTY3JpcHQuCisg
ICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9
IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CisgICAgQVNTRVJUKGNvZGVCbG9jayk7CiAgICAgYm9v
bCBpc1Rlcm1pbmF0aW9uID0gZmFsc2U7CiAKICAgICBBU1NFUlQoIWV4Y2VwdGlvblZhbHVlLmlz
RW1wdHkoKSk7CkBAIC03NjcsNyArNzY0LDYgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0
ZShQcm9ncmFtRXhlY3V0YWJsZSogcHJvZ3JhbSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEoKICAg
ICBpZiAodm0uaXNDb2xsZWN0b3JCdXN5KCkpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKIAot
ICAgIFZNRW50cnlTY29wZSBlbnRyeVNjb3BlKHZtLCBzY29wZS0+Z2xvYmFsT2JqZWN0KCkpOwog
ICAgIGlmICghdm0uaXNTYWZlVG9SZWN1cnNlKCkpCiAgICAgICAgIHJldHVybiBjaGVja2VkUmV0
dXJuKHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkpOwogCkBAIC04NzQsNiArODcw
LDggQEAgZmFpbGVkSlNPTlA6CiAgICAgLy8gSWYgd2UgZ2V0IGhlcmUsIHRoZW4gd2UgaGF2ZSBh
bHJlYWR5IHByb3ZlbiB0aGF0IHRoZSBzY3JpcHQgaXMgbm90IGEgSlNPTgogICAgIC8vIG9iamVj
dC4KIAorICAgIFZNRW50cnlTY29wZSBlbnRyeVNjb3BlKHZtLCBzY29wZS0+Z2xvYmFsT2JqZWN0
KCkpOworCiAgICAgLy8gQ29tcGlsZSBzb3VyY2UgdG8gYnl0ZWNvZGUgaWYgbmVjZXNzYXJ5Ogog
ICAgIGlmIChKU09iamVjdCogZXJyb3IgPSBwcm9ncmFtLT5pbml0aWFsaXplR2xvYmFsUHJvcGVy
dGllcyh2bSwgY2FsbEZyYW1lLCBzY29wZSkpCiAgICAgICAgIHJldHVybiBjaGVja2VkUmV0dXJu
KGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlvbihjYWxsRnJhbWUsIGVycm9yKSk7CkBAIC04
ODgsOSArODg2LDYgQEAgZmFpbGVkSlNPTlA6CiAKICAgICBBU1NFUlQoY29kZUJsb2NrLT5udW1Q
YXJhbWV0ZXJzKCkgPT0gMSk7IC8vIDEgcGFyYW1ldGVyIGZvciAndGhpcycuCiAKLSAgICBpZiAo
VU5MSUtFTFkoIW1fc3RhY2suZW50cnlDaGVjayhjb2RlQmxvY2ssIDEpKSkKLSAgICAgICAgcmV0
dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7Ci0K
ICAgICBQcm90b0NhbGxGcmFtZSBwcm90b0NhbGxGcmFtZTsKICAgICBwcm90b0NhbGxGcmFtZS5p
bml0KGNvZGVCbG9jaywgc2NvcGUsIDAsIHRoaXNPYmosIDEpOwogCkBAIC05MDMsNyArODk4LDcg
QEAgZmFpbGVkSlNPTlA6CiAgICAgICAgIFNhbXBsaW5nVG9vbDo6Q2FsbFJlY29yZCBjYWxsUmVj
b3JkKG1fc2FtcGxlci5nZXQoKSk7CiAgICAgICAgIFdhdGNoZG9nOjpTY29wZSB3YXRjaGRvZ1Nj
b3BlKHZtLndhdGNoZG9nKTsKIAotICAgICAgICByZXN1bHQgPSBwcm9ncmFtLT5nZW5lcmF0ZWRK
SVRDb2RlKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUsIG1fc3RhY2suZ2V0VG9wT2ZT
dGFjaygpKTsKKyAgICAgICAgcmVzdWx0ID0gcHJvZ3JhbS0+Z2VuZXJhdGVkSklUQ29kZSgpLT5l
eGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lKTsKICAgICB9CiAKICAgICBpZiAoTGVnYWN5UHJv
ZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCkBAIC05NTEsOSArOTQ2LDYg
QEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IEpTT2JqZWN0KiBmdW5jdGlvbiwgQ2FsbFQKICAgICBpZiAoVU5MSUtFTFkodm0ud2F0Y2hkb2cu
ZGlkRmlyZShjYWxsRnJhbWUpKSkKICAgICAgICAgcmV0dXJuIHRocm93VGVybWluYXRlZEV4ZWN1
dGlvbkV4Y2VwdGlvbihjYWxsRnJhbWUpOwogCi0gICAgaWYgKFVOTElLRUxZKCFtX3N0YWNrLmVu
dHJ5Q2hlY2sobmV3Q29kZUJsb2NrLCBhcmdzQ291bnQpKSkKLSAgICAgICAgcmV0dXJuIGNoZWNr
ZWRSZXR1cm4odGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7Ci0KICAgICBQcm90
b0NhbGxGcmFtZSBwcm90b0NhbGxGcmFtZTsKICAgICBwcm90b0NhbGxGcmFtZS5pbml0KG5ld0Nv
ZGVCbG9jaywgc2NvcGUsIGZ1bmN0aW9uLCB0aGlzVmFsdWUsIGFyZ3NDb3VudCwgYXJncy5kYXRh
KCkpOwogCkBAIC05NjcsOSArOTU5LDEyIEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGVD
YWxsKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU09iamVjdCogZnVuY3Rpb24sIENhbGxUCiAKICAg
ICAgICAgLy8gRXhlY3V0ZSB0aGUgY29kZToKICAgICAgICAgaWYgKGlzSlNDYWxsKQotICAgICAg
ICAgICAgcmVzdWx0ID0gY2FsbERhdGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRK
SVRDb2RlRm9yQ2FsbCgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lLCBtX3N0YWNrLmdl
dFRvcE9mU3RhY2soKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3VsdCA9IEpTVmFs
dWU6OmRlY29kZShjYWxsVG9OYXRpdmVGdW5jdGlvbihyZWludGVycHJldF9jYXN0PHZvaWQqPihj
YWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24pLCAmdm0udG9wQ2FsbEZyYW1lLCAmcHJvdG9DYWxsRnJh
bWUsIG1fc3RhY2suZ2V0VG9wT2ZTdGFjaygpKSk7CisgICAgICAgICAgICByZXN1bHQgPSBjYWxs
RGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JDYWxsKCktPmV4
ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
IHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShjYWxsVG9OYXRpdmVGdW5jdGlvbihyZWludGVycHJl
dF9jYXN0PHZvaWQqPihjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24pLCAmdm0sICZwcm90b0NhbGxG
cmFtZSkpOworICAgICAgICAgICAgaWYgKGNhbGxGcmFtZS0+aGFkRXhjZXB0aW9uKCkpCisgICAg
ICAgICAgICAgICAgcmVzdWx0ID0ganNOdWxsKCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBp
ZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCkBAIC0x
MDE5LDkgKzEwMTQsNiBAQCBKU09iamVjdCogSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3Qo
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBjb25zdHJ1YwogICAgIGlmIChVTkxJS0VM
WSh2bS53YXRjaGRvZy5kaWRGaXJlKGNhbGxGcmFtZSkpKQogICAgICAgICByZXR1cm4gdGhyb3dU
ZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKGNhbGxGcmFtZSk7CiAKLSAgICBpZiAoVU5MSUtF
TFkoIW1fc3RhY2suZW50cnlDaGVjayhuZXdDb2RlQmxvY2ssIGFyZ3NDb3VudCkpKQotICAgICAg
ICByZXR1cm4gY2hlY2tlZFJldHVybih0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUp
KTsKLQogICAgIFByb3RvQ2FsbEZyYW1lIHByb3RvQ2FsbEZyYW1lOwogICAgIHByb3RvQ2FsbEZy
YW1lLmluaXQobmV3Q29kZUJsb2NrLCBzY29wZSwgY29uc3RydWN0b3IsIGpzVW5kZWZpbmVkKCks
IGFyZ3NDb3VudCwgYXJncy5kYXRhKCkpOwogCkBAIC0xMDM1LDkgKzEwMjcsOSBAQCBKU09iamVj
dCogSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3QoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpT
T2JqZWN0KiBjb25zdHJ1YwogCiAgICAgICAgIC8vIEV4ZWN1dGUgdGhlIGNvZGUuCiAgICAgICAg
IGlmIChpc0pTQ29uc3RydWN0KQotICAgICAgICAgICAgcmVzdWx0ID0gY29uc3RydWN0RGF0YS5q
cy5mdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEpJVENvZGVGb3JDb25zdHJ1Y3QoKS0+ZXhl
Y3V0ZSgmdm0sICZwcm90b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0YWNrKCkpOworICAg
ICAgICAgICAgcmVzdWx0ID0gY29uc3RydWN0RGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPmdl
bmVyYXRlZEpJVENvZGVGb3JDb25zdHJ1Y3QoKS0+ZXhlY3V0ZSgmdm0sICZwcm90b0NhbGxGcmFt
ZSk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgcmVzdWx0ID0gSlNWYWx1ZTo6ZGVjb2Rl
KGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbnN0cnVjdERh
dGEubmF0aXZlLmZ1bmN0aW9uKSwgJnZtLnRvcENhbGxGcmFtZSwgJnByb3RvQ2FsbEZyYW1lLCBt
X3N0YWNrLmdldFRvcE9mU3RhY2soKSkpOworICAgICAgICAgICAgcmVzdWx0ID0gSlNWYWx1ZTo6
ZGVjb2RlKGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbnN0
cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uKSwgJnZtLCAmcHJvdG9DYWxsRnJhbWUpKTsKIAogICAg
ICAgICAgICAgaWYgKCFjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKHJlc3VsdC5pc09iamVjdCgpKTsKQEAgLTEwNzIsMTEgKzEwNjQsNiBA
QCBDYWxsRnJhbWVDbG9zdXJlIEludGVycHJldGVyOjpwcmVwYXJlRm9yUmVwZWF0Q2FsbChGdW5j
dGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9uRQogCiAgICAgc2l6ZV90IGFyZ3NDb3VudCA9IGFyZ3Vt
ZW50Q291bnRJbmNsdWRpbmdUaGlzOwogCi0gICAgaWYgKFVOTElLRUxZKCFtX3N0YWNrLmVudHJ5
Q2hlY2sobmV3Q29kZUJsb2NrLCBhcmdzQ291bnQpKSkgewotICAgICAgICB0aHJvd1N0YWNrT3Zl
cmZsb3dFcnJvcihjYWxsRnJhbWUpOwotICAgICAgICByZXR1cm4gQ2FsbEZyYW1lQ2xvc3VyZSgp
OwotICAgIH0KLQogICAgIHByb3RvQ2FsbEZyYW1lLT5pbml0KG5ld0NvZGVCbG9jaywgc2NvcGUs
IGZ1bmN0aW9uLCBqc1VuZGVmaW5lZCgpLCBhcmdzQ291bnQsIGFyZ3MpOwogICAgIC8vIFJldHVy
biB0aGUgc3VjY2Vzc2Z1bCBjbG9zdXJlOgogICAgIENhbGxGcmFtZUNsb3N1cmUgcmVzdWx0ID0g
eyBjYWxsRnJhbWUsIHByb3RvQ2FsbEZyYW1lLCBmdW5jdGlvbiwgZnVuY3Rpb25FeGVjdXRhYmxl
LCAmdm0sIHNjb3BlLCBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSwgYXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXMgfTsKQEAgLTExMDcsNyArMTA5NCw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0
ZXI6OmV4ZWN1dGUoQ2FsbEZyYW1lQ2xvc3VyZSYgY2xvc3VyZSkKICAgICAgICAgU2FtcGxpbmdU
b29sOjpDYWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgpKTsKICAgICAgICAgV2F0
Y2hkb2c6OlNjb3BlIHdhdGNoZG9nU2NvcGUodm0ud2F0Y2hkb2cpOwogCi0gICAgICAgIHJlc3Vs
dCA9IGNsb3N1cmUuZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yQ2FsbCgp
LT5leGVjdXRlKCZ2bSwgY2xvc3VyZS5wcm90b0NhbGxGcmFtZSwgbV9zdGFjay5nZXRUb3BPZlN0
YWNrKCkpOworICAgICAgICByZXN1bHQgPSBjbG9zdXJlLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2Vu
ZXJhdGVkSklUQ29kZUZvckNhbGwoKS0+ZXhlY3V0ZSgmdm0sIGNsb3N1cmUucHJvdG9DYWxsRnJh
bWUpOwogICAgIH0KIAogICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFi
bGVkUHJvZmlsZXIoKSkKQEAgLTExNzgsOSArMTE2NSw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6
OmV4ZWN1dGUoRXZhbEV4ZWN1dGFibGUqIGV2YWwsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1Zh
bHVlCiAKICAgICBBU1NFUlQoY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkgPT0gMSk7IC8vIDEg
cGFyYW1ldGVyIGZvciAndGhpcycuCiAKLSAgICBpZiAoVU5MSUtFTFkoIW1fc3RhY2suZW50cnlD
aGVjayhjb2RlQmxvY2ssIDEpKSkKLSAgICAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4odGhyb3dT
dGFja092ZXJmbG93RXJyb3IoY2FsbEZyYW1lKSk7Ci0KICAgICBQcm90b0NhbGxGcmFtZSBwcm90
b0NhbGxGcmFtZTsKICAgICBwcm90b0NhbGxGcmFtZS5pbml0KGNvZGVCbG9jaywgc2NvcGUsIDAs
IHRoaXNWYWx1ZSwgMSk7CiAKQEAgLTExOTMsNyArMTE3Nyw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0
ZXI6OmV4ZWN1dGUoRXZhbEV4ZWN1dGFibGUqIGV2YWwsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBK
U1ZhbHVlCiAgICAgICAgIFNhbXBsaW5nVG9vbDo6Q2FsbFJlY29yZCBjYWxsUmVjb3JkKG1fc2Ft
cGxlci5nZXQoKSk7CiAgICAgICAgIFdhdGNoZG9nOjpTY29wZSB3YXRjaGRvZ1Njb3BlKHZtLndh
dGNoZG9nKTsKIAotICAgICAgICByZXN1bHQgPSBldmFsLT5nZW5lcmF0ZWRKSVRDb2RlKCktPmV4
ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUsIG1fc3RhY2suZ2V0VG9wT2ZTdGFjaygpKTsKKyAg
ICAgICAgcmVzdWx0ID0gZXZhbC0+Z2VuZXJhdGVkSklUQ29kZSgpLT5leGVjdXRlKCZ2bSwgJnBy
b3RvQ2FsbEZyYW1lKTsKICAgICB9CiAKICAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVy
ID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9JbnRlcnByZXRlci5oCmluZGV4IGNmYzcyMWIzODE3ODIzODFlNDVkNDcwMzlkZGI1
NGFmZmJmMDZmOWQuLmI0NTMwMzcwMGFhMDNhYTgwNGQ1YTU1NDhlZDhhYTJkYjM4YmRkNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCkBA
IC0xODAsNiArMTgwLDE1IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgQVNTRVJUKCFj
YWxsRnJhbWUtPmlzVk1FbnRyeVNlbnRpbmVsKCkpOwogICAgICAgICAgICAgdm0tPnRvcENhbGxG
cmFtZSA9IGNhbGxGcmFtZTsKICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZW51bSBWTUVu
dHJ5U2VudGluZWxPS1RhZyB7IFZNRW50cnlTZW50aW5lbE9LIH07CisgICAgICAgIEFMV0FZU19J
TkxJTkUgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyKFZNKiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IFZNRW50cnlTZW50aW5lbE9LVGFnKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQodm0p
OworICAgICAgICAgICAgQVNTRVJUKGNhbGxGcmFtZSk7CisgICAgICAgICAgICBpZiAoIWNhbGxG
cmFtZS0+aXNWTUVudHJ5U2VudGluZWwoKSkKKyAgICAgICAgICAgICAgICB2bS0+dG9wQ2FsbEZy
YW1lID0gY2FsbEZyYW1lOworICAgICAgICB9CiAgICAgfTsKIAogICAgIGNsYXNzIEludGVycHJl
dGVyIHsKQEAgLTE5MCwxNCArMTk5LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGZyaWVu
ZCBjbGFzcyBWTTsKIAogICAgIHB1YmxpYzoKLSAgICAgICAgY2xhc3MgRXJyb3JIYW5kbGluZ01v
ZGUgewotICAgICAgICBwdWJsaWM6Ci0gICAgICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBFcnJv
ckhhbmRsaW5nTW9kZShFeGVjU3RhdGUqKTsKLSAgICAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRF
IH5FcnJvckhhbmRsaW5nTW9kZSgpOwotICAgICAgICBwcml2YXRlOgotICAgICAgICAgICAgSW50
ZXJwcmV0ZXImIG1faW50ZXJwcmV0ZXI7Ci0gICAgICAgIH07Ci0KICAgICAgICAgSW50ZXJwcmV0
ZXIoVk0gJik7CiAgICAgICAgIH5JbnRlcnByZXRlcigpOwogICAgICAgICAKQEAgLTIzNyw4ICsy
MzgsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAgICAgIFNhbXBsaW5nVG9vbCog
c2FtcGxlcigpIHsgcmV0dXJuIG1fc2FtcGxlci5nZXQoKTsgfQogCi0gICAgICAgIGJvb2wgaXNJ
bkVycm9ySGFuZGxpbmdNb2RlKCkgeyByZXR1cm4gbV9lcnJvckhhbmRsaW5nTW9kZVJlZW50cnk7
IH0KLQogICAgICAgICBORVZFUl9JTkxJTkUgSGFuZGxlckluZm8qIHVud2luZChDYWxsRnJhbWUq
JiwgSlNWYWx1ZSYpOwogICAgICAgICBORVZFUl9JTkxJTkUgdm9pZCBkZWJ1ZyhDYWxsRnJhbWUq
LCBEZWJ1Z0hvb2tJRCk7CiAgICAgICAgIEpTU3RyaW5nKiBzdGFja1RyYWNlQXNTdHJpbmcoRXhl
Y1N0YXRlKiwgVmVjdG9yPFN0YWNrRnJhbWU+KTsKQEAgLTI4Niw3ICsyODUsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICB9OwogCiAgICAgSlNWYWx1ZSBldmFsKENhbGxGcmFtZSopOwotICAgIENh
bGxGcmFtZSogc2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJhcmdzKENhbGxGcmFtZSosIEpTU3RhY2sq
LCBKU1ZhbHVlLCBpbnQpOworICAgIENhbGxGcmFtZSogc2l6ZUZyYW1lRm9yVmFyYXJncyhDYWxs
RnJhbWUqLCBKU1N0YWNrKiwgSlNWYWx1ZSwgaW50KTsKICAgICB2b2lkIGxvYWRWYXJhcmdzKENh
bGxGcmFtZSosIENhbGxGcmFtZSosIEpTVmFsdWUsIEpTVmFsdWUpOwogfSAvLyBuYW1lc3BhY2Ug
SlNDCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0
YWNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNwcApp
bmRleCBmYTNlM2Q1MGQ3ZWVkNWRmM2E2YmZkZGIxY2NjMTYxOWQzYWNmNTQzLi4wN2JjNTJlMmFl
MGFmMjZhZWIyNzZhODBlODMyODNiNTFmNzJiYzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0pTU3RhY2suY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw5ICszMSwxMSBAQAog
CiAjaW5jbHVkZSAiQ29uc2VydmF0aXZlUm9vdHMuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5o
IgorI2luY2x1ZGUgIk9wdGlvbnMuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyNpZiBFTkFCTEUo
TExJTlRfQ19MT09QKQogc3RhdGljIHNpemVfdCBjb21taXR0ZWRCeXRlc0NvdW50ID0gMDsKIAog
c3RhdGljIE11dGV4JiBzdGFja1N0YXRpc3RpY3NNdXRleCgpCkBAIC00MSw4NyArNDMsOTggQEAg
c3RhdGljIE11dGV4JiBzdGFja1N0YXRpc3RpY3NNdXRleCgpCiAgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChNdXRleCwgc3RhdGljTXV0ZXgsICgpKTsKICAgICByZXR1cm4gc3RhdGljTXV0ZXg7CiB9
ICAgIAorI2VuZGlmIC8vIEVOQUJMRShMTElOVF9DX0xPT1ApCiAKLUpTU3RhY2s6OkpTU3RhY2so
Vk0mIHZtLCBzaXplX3QgY2FwYWNpdHkpCitKU1N0YWNrOjpKU1N0YWNrKFZNJiB2bSkKICAgICA6
IG1fdm0odm0pCi0gICAgLCBtX2VuZCgwKQogICAgICwgbV90b3BDYWxsRnJhbWUodm0udG9wQ2Fs
bEZyYW1lKQorI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgLCBtX2VuZCgwKQorICAgICwg
bV9yZXNlcnZlZFpvbmVTaXplSW5SZWdpc3RlcnMoMCkKKyNlbmRpZgogeworI2lmIEVOQUJMRShM
TElOVF9DX0xPT1ApCisgICAgc2l6ZV90IGNhcGFjaXR5ID0gT3B0aW9uczo6bWF4UGVyVGhyZWFk
U3RhY2tVc2FnZSgpOwogICAgIEFTU0VSVChjYXBhY2l0eSAmJiBpc1BhZ2VBbGlnbmVkKGNhcGFj
aXR5KSk7CiAKLSAgICBtX3Jlc2VydmF0aW9uID0gUGFnZVJlc2VydmF0aW9uOjpyZXNlcnZlKHJv
dW5kVXBBbGxvY2F0aW9uU2l6ZShjYXBhY2l0eSAqIHNpemVvZihSZWdpc3RlciksIGNvbW1pdFNp
emUpLCBPU0FsbG9jYXRvcjo6SlNWTVN0YWNrUGFnZXMpOwotICAgIHVwZGF0ZVN0YWNrTGltaXQo
aGlnaEFkZHJlc3MoKSk7Ci0gICAgbV9jb21taXRFbmQgPSBoaWdoQWRkcmVzcygpOworICAgIG1f
cmVzZXJ2YXRpb24gPSBQYWdlUmVzZXJ2YXRpb246OnJlc2VydmUoV1RGOjpyb3VuZFVwVG9NdWx0
aXBsZU9mKGNvbW1pdFNpemUsIGNhcGFjaXR5KSwgT1NBbGxvY2F0b3I6OkpTVk1TdGFja1BhZ2Vz
KTsKKyAgICBzZXRTdGFja0xpbWl0KGhpZ2hBZGRyZXNzKCkpOworICAgIG1fY29tbWl0VG9wID0g
aGlnaEFkZHJlc3MoKTsKICAgICAKLSAgICBtX2xhc3RTdGFja1RvcCA9IGdldEJhc2VPZlN0YWNr
KCk7Ci0KLSAgICBkaXNhYmxlRXJyb3JTdGFja1Jlc2VydmUoKTsKKyAgICBtX2xhc3RTdGFja1Rv
cCA9IGJhc2VPZlN0YWNrKCk7CisjZW5kaWYgLy8gRU5BQkxFKExMSU5UX0NfTE9PUCkKIAogICAg
IG1fdG9wQ2FsbEZyYW1lID0gMDsKIH0KIAorI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiBKU1N0
YWNrOjp+SlNTdGFjaygpCiB7Ci0gICAgdm9pZCogaGlnaEFkZHJlc3MgPSByZWludGVycHJldF9j
YXN0PHZvaWQqPihzdGF0aWNfY2FzdDxjaGFyKj4obV9yZXNlcnZhdGlvbi5iYXNlKCkpICsgbV9y
ZXNlcnZhdGlvbi5zaXplKCkpOwotICAgIG1fcmVzZXJ2YXRpb24uZGVjb21taXQocmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKj4obV9jb21taXRFbmQpLCByZWludGVycHJldF9jYXN0PGludHB0cl90Piho
aWdoQWRkcmVzcykgLSByZWludGVycHJldF9jYXN0PGludHB0cl90PihtX2NvbW1pdEVuZCkpOwot
ICAgIGFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KC0ocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4o
aGlnaEFkZHJlc3MpIC0gcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4obV9jb21taXRFbmQpKSk7
CisgICAgcHRyZGlmZl90IHNpemVUb0RlY29tbWl0ID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4o
aGlnaEFkZHJlc3MoKSkgLSByZWludGVycHJldF9jYXN0PGNoYXIqPihtX2NvbW1pdFRvcCk7Cisg
ICAgbV9yZXNlcnZhdGlvbi5kZWNvbW1pdChyZWludGVycHJldF9jYXN0PHZvaWQqPihtX2NvbW1p
dFRvcCksIHNpemVUb0RlY29tbWl0KTsKKyAgICBhZGRUb0NvbW1pdHRlZEJ5dGVDb3VudCgtc2l6
ZVRvRGVjb21taXQpOwogICAgIG1fcmVzZXJ2YXRpb24uZGVhbGxvY2F0ZSgpOwogfQogCi1ib29s
IEpTU3RhY2s6Omdyb3dTbG93Q2FzZShSZWdpc3RlciogbmV3RW5kKQorYm9vbCBKU1N0YWNrOjpn
cm93U2xvd0Nhc2UoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCiB7CisgICAgUmVnaXN0ZXIqIG5l
d1RvcE9mU3RhY2tXaXRoUmVzZXJ2ZWRab25lID0gbmV3VG9wT2ZTdGFjayAtIG1fcmVzZXJ2ZWRa
b25lU2l6ZUluUmVnaXN0ZXJzOworCiAgICAgLy8gSWYgd2UgaGF2ZSBhbHJlYWR5IGNvbW1pdHRl
ZCBlbm91Z2ggbWVtb3J5IHRvIHNhdGlzZnkgdGhpcyByZXF1ZXN0LAogICAgIC8vIGp1c3QgdXBk
YXRlIHRoZSBlbmQgcG9pbnRlciBhbmQgcmV0dXJuLgotICAgIGlmIChuZXdFbmQgPj0gbV9jb21t
aXRFbmQpIHsKLSAgICAgICAgdXBkYXRlU3RhY2tMaW1pdChuZXdFbmQpOworICAgIGlmIChuZXdU
b3BPZlN0YWNrV2l0aFJlc2VydmVkWm9uZSA+PSBtX2NvbW1pdFRvcCkgeworICAgICAgICBzZXRT
dGFja0xpbWl0KG5ld1RvcE9mU3RhY2spOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
ICAgICAvLyBDb21wdXRlIHRoZSBjaHVuayBzaXplIG9mIGFkZGl0aW9uYWwgbWVtb3J5IHRvIGNv
bW1pdCwgYW5kIHNlZSBpZiB3ZQogICAgIC8vIGhhdmUgaXQgaXMgc3RpbGwgd2l0aGluIG91ciBi
dWRnZXQuIElmIG5vdCwgd2UnbGwgZmFpbCB0byBncm93IGFuZAogICAgIC8vIHJldHVybiBmYWxz
ZS4KLSAgICBsb25nIGRlbHRhID0gcm91bmRVcEFsbG9jYXRpb25TaXplKHJlaW50ZXJwcmV0X2Nh
c3Q8Y2hhcio+KG1fY29tbWl0RW5kKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG5ld0VuZCks
IGNvbW1pdFNpemUpOwotICAgIGlmIChyZWludGVycHJldF9jYXN0PGNoYXIqPihtX2NvbW1pdEVu
ZCkgLSBkZWx0YSA8PSByZWludGVycHJldF9jYXN0PGNoYXIqPihtX3VzZWFibGVFbmQpKQorICAg
IHB0cmRpZmZfdCBkZWx0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fY29tbWl0VG9wKSAt
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG5ld1RvcE9mU3RhY2tXaXRoUmVzZXJ2ZWRab25lKTsK
KyAgICBkZWx0YSA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZihjb21taXRTaXplLCBkZWx0YSk7
CisgICAgUmVnaXN0ZXIqIG5ld0NvbW1pdFRvcCA9IG1fY29tbWl0VG9wIC0gKGRlbHRhIC8gc2l6
ZW9mKFJlZ2lzdGVyKSk7CisgICAgaWYgKG5ld0NvbW1pdFRvcCA8IHJlc2VydmF0aW9uVG9wKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIE90aGVyd2lzZSwgdGhlIGdyb3d0aCBp
cyBzdGlsbCB3aXRoaW4gb3VyIGJ1ZGdldC4gR28gYWhlYWQgYW5kIGNvbW1pdAogICAgIC8vIGl0
IGFuZCByZXR1cm4gdHJ1ZS4KLSAgICBtX3Jlc2VydmF0aW9uLmNvbW1pdChyZWludGVycHJldF9j
YXN0PGNoYXIqPihtX2NvbW1pdEVuZCkgLSBkZWx0YSwgZGVsdGEpOworICAgIG1fcmVzZXJ2YXRp
b24uY29tbWl0KG5ld0NvbW1pdFRvcCwgZGVsdGEpOwogICAgIGFkZFRvQ29tbWl0dGVkQnl0ZUNv
dW50KGRlbHRhKTsKLSAgICBtX2NvbW1pdEVuZCA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPFJlZ2lz
dGVyKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRFbmQpIC0gZGVsdGEpOwotICAg
IHVwZGF0ZVN0YWNrTGltaXQobmV3RW5kKTsKKyAgICBtX2NvbW1pdFRvcCA9IG5ld0NvbW1pdFRv
cDsKKyAgICBzZXRTdGFja0xpbWl0KG5ld1RvcE9mU3RhY2spOwogICAgIHJldHVybiB0cnVlOwog
fQogCiB2b2lkIEpTU3RhY2s6OmdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJv
b3RzJiBjb25zZXJ2YXRpdmVSb290cykKIHsKLSAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQoZ2V0
QmFzZU9mU3RhY2soKSwgZ2V0VG9wT2ZTdGFjaygpKTsKKyAgICBjb25zZXJ2YXRpdmVSb290cy5h
ZGQodG9wT2ZTdGFjaygpICsgMSwgaGlnaEFkZHJlc3MoKSk7CiB9CiAKIHZvaWQgSlNTdGFjazo6
Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJv
b3RzLCBKSVRTdHViUm91dGluZVNldCYgaml0U3R1YlJvdXRpbmVzLCBDb2RlQmxvY2tTZXQmIGNv
ZGVCbG9ja3MpCiB7Ci0gICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKGdldEJhc2VPZlN0YWNrKCks
IGdldFRvcE9mU3RhY2soKSwgaml0U3R1YlJvdXRpbmVzLCBjb2RlQmxvY2tzKTsKKyAgICBjb25z
ZXJ2YXRpdmVSb290cy5hZGQodG9wT2ZTdGFjaygpICsgMSwgaGlnaEFkZHJlc3MoKSwgaml0U3R1
YlJvdXRpbmVzLCBjb2RlQmxvY2tzKTsKIH0KIAogdm9pZCBKU1N0YWNrOjpzYW5pdGl6ZVN0YWNr
KCkKIHsKLSAgICBBU1NFUlQoZ2V0VG9wT2ZTdGFjaygpIDw9IGdldEJhc2VPZlN0YWNrKCkpOwor
ICAgIEFTU0VSVCh0b3BPZlN0YWNrKCkgPD0gYmFzZU9mU3RhY2soKSk7CiAgICAgCi0gICAgaWYg
KG1fbGFzdFN0YWNrVG9wIDwgZ2V0VG9wT2ZTdGFjaygpKSB7Ci0gICAgICAgIGNoYXIqIGJlZ2lu
ID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9sYXN0U3RhY2tUb3ApOwotICAgICAgICBjaGFy
KiBlbmQgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihnZXRUb3BPZlN0YWNrKCkpOworICAgIGlm
IChtX2xhc3RTdGFja1RvcCA8IHRvcE9mU3RhY2soKSkgeworICAgICAgICBjaGFyKiBiZWdpbiA9
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fbGFzdFN0YWNrVG9wICsgMSk7CisgICAgICAgIGNo
YXIqIGVuZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHRvcE9mU3RhY2soKSArIDEpOwogICAg
ICAgICBtZW1zZXQoYmVnaW4sIDAsIGVuZCAtIGJlZ2luKTsKICAgICB9CiAgICAgCi0gICAgbV9s
YXN0U3RhY2tUb3AgPSBnZXRUb3BPZlN0YWNrKCk7CisgICAgbV9sYXN0U3RhY2tUb3AgPSB0b3BP
ZlN0YWNrKCk7CiB9CiAKIHZvaWQgSlNTdGFjazo6cmVsZWFzZUV4Y2Vzc0NhcGFjaXR5KCkKIHsK
LSAgICBwdHJkaWZmX3QgZGVsdGEgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oaGlnaEFk
ZHJlc3MoKSkgLSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4obV9jb21taXRFbmQpOwotICAg
IG1fcmVzZXJ2YXRpb24uZGVjb21taXQobV9jb21taXRFbmQsIGRlbHRhKTsKKyAgICBSZWdpc3Rl
ciogaGlnaEFkZHJlc3NXaXRoUmVzZXJ2ZWRab25lID0gaGlnaEFkZHJlc3MoKSAtIG1fcmVzZXJ2
ZWRab25lU2l6ZUluUmVnaXN0ZXJzOworICAgIHB0cmRpZmZfdCBkZWx0YSA9IHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KGhpZ2hBZGRyZXNzV2l0aFJlc2VydmVkWm9uZSkgLSByZWludGVycHJldF9j
YXN0PGNoYXIqPihtX2NvbW1pdFRvcCk7CisgICAgbV9yZXNlcnZhdGlvbi5kZWNvbW1pdChtX2Nv
bW1pdFRvcCwgZGVsdGEpOwogICAgIGFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KC1kZWx0YSk7Ci0g
ICAgbV9jb21taXRFbmQgPSBoaWdoQWRkcmVzcygpOworICAgIG1fY29tbWl0VG9wID0gaGlnaEFk
ZHJlc3NXaXRoUmVzZXJ2ZWRab25lOwogfQogCiB2b2lkIEpTU3RhY2s6OmluaXRpYWxpemVUaHJl
YWRpbmcoKQpAQCAtMTI5LDEyICsxNDIsNiBAQCB2b2lkIEpTU3RhY2s6OmluaXRpYWxpemVUaHJl
YWRpbmcoKQogICAgIHN0YWNrU3RhdGlzdGljc011dGV4KCk7CiB9CiAKLXNpemVfdCBKU1N0YWNr
Ojpjb21taXR0ZWRCeXRlQ291bnQoKQotewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihzdGFja1N0
YXRpc3RpY3NNdXRleCgpKTsKLSAgICByZXR1cm4gY29tbWl0dGVkQnl0ZXNDb3VudDsKLX0KLQog
dm9pZCBKU1N0YWNrOjphZGRUb0NvbW1pdHRlZEJ5dGVDb3VudChsb25nIGJ5dGVDb3VudCkKIHsK
ICAgICBNdXRleExvY2tlciBsb2NrZXIoc3RhY2tTdGF0aXN0aWNzTXV0ZXgoKSk7CkBAIC0xNDIs
MjUgKzE0OSw0MSBAQCB2b2lkIEpTU3RhY2s6OmFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KGxvbmcg
Ynl0ZUNvdW50KQogICAgIGNvbW1pdHRlZEJ5dGVzQ291bnQgKz0gYnl0ZUNvdW50OwogfQogCi12
b2lkIEpTU3RhY2s6OmVuYWJsZUVycm9yU3RhY2tSZXNlcnZlKCkKK3ZvaWQgSlNTdGFjazo6c2V0
UmVzZXJ2ZWRab25lU2l6ZShzaXplX3QgcmVzZXJ2ZWRab25lU2l6ZSkKIHsKLSAgICBtX3VzZWFi
bGVFbmQgPSByZXNlcnZhdGlvbkVuZCgpOworICAgIG1fcmVzZXJ2ZWRab25lU2l6ZUluUmVnaXN0
ZXJzID0gcmVzZXJ2ZWRab25lU2l6ZSAvIHNpemVvZihSZWdpc3Rlcik7CisgICAgaWYgKG1fY29t
bWl0VG9wID49IChtX2VuZCArIDEpIC0gbV9yZXNlcnZlZFpvbmVTaXplSW5SZWdpc3RlcnMpCisg
ICAgICAgIGdyb3dTbG93Q2FzZShtX2VuZCArIDEpOwogfQorI2VuZGlmIC8vIEVOQUJMRShMTElO
VF9DX0xPT1ApCiAKLXZvaWQgSlNTdGFjazo6ZGlzYWJsZUVycm9yU3RhY2tSZXNlcnZlKCkKKyNp
ZiAhRU5BQkxFKExMSU5UX0NfTE9PUCkKK1JlZ2lzdGVyKiBKU1N0YWNrOjpsb3dBZGRyZXNzKCkg
Y29uc3QKIHsKLSAgICBjaGFyKiB1c2VhYmxlRW5kID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4o
cmVzZXJ2YXRpb25FbmQoKSkgKyBjb21taXRTaXplOwotICAgIG1fdXNlYWJsZUVuZCA9IHJlaW50
ZXJwcmV0X2Nhc3RfcHRyPFJlZ2lzdGVyKj4odXNlYWJsZUVuZCk7Ci0KLSAgICAvLyBCeSB0aGUg
dGltZSB3ZSBnZXQgaGVyZSwgd2UgYXJlIGd1YXJhbnRlZWQgdG8gYmUgZGVzdHJ1Y3RpbmcgdGhl
IGxhc3QKLSAgICAvLyBJbnRlcnByZXRlcjo6RXJyb3JIYW5kbGluZ01vZGUgdGhhdCBlbmFibGVk
IHRoaXMgcmVzZXJ2ZSBpbiB0aGUgZmlyc3QKLSAgICAvLyBwbGFjZS4gVGhhdCBtZWFucyB0aGUg
c3RhY2sgc3BhY2UgYmV5b25kIG1fdXNlYWJsZUVuZCBiZWZvcmUgd2UKLSAgICAvLyBlbmFibGVk
IHRoZSByZXNlcnZlIHdhcyBub3QgcHJldmlvdXNseSBpbiB1c2UuIEhlbmNlLCBpdCBpcyBzYWZl
IHRvCi0gICAgLy8gc2hyaW5rIGJhY2sgdG8gdGhhdCBtX3VzZWFibGVFbmQuCi0gICAgaWYgKG1f
ZW5kIDwgbV91c2VhYmxlRW5kKSB7Ci0gICAgICAgIEFTU0VSVChtX3RvcENhbGxGcmFtZS0+ZnJh
bWVFeHRlbnQoKSA+PSBtX3VzZWFibGVFbmQpOwotICAgICAgICBzaHJpbmsobV91c2VhYmxlRW5k
KTsKLSAgICB9CisgICAgQVNTRVJUKHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLmlzR3Jvd2luZ0Rv
d253YXJkKCkpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFJlZ2lzdGVyKj4obV92bS5z
dGFja0xpbWl0KCkpOworfQorCitSZWdpc3RlciogSlNTdGFjazo6aGlnaEFkZHJlc3MoKSBjb25z
dAoreworICAgIEFTU0VSVCh3dGZUaHJlYWREYXRhKCkuc3RhY2soKS5pc0dyb3dpbmdEb3dud2Fy
ZCgpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxSZWdpc3Rlcio+KHd0ZlRocmVhZERh
dGEoKS5zdGFjaygpLm9yaWdpbigpKTsKK30KKyNlbmRpZiAvLyAhRU5BQkxFKExMSU5UX0NfTE9P
UCkKKworc2l6ZV90IEpTU3RhY2s6OmNvbW1pdHRlZEJ5dGVDb3VudCgpCit7CisjaWYgRU5BQkxF
KExMSU5UX0NfTE9PUCkKKyAgICBNdXRleExvY2tlciBsb2NrZXIoc3RhY2tTdGF0aXN0aWNzTXV0
ZXgoKSk7CisgICAgcmV0dXJuIGNvbW1pdHRlZEJ5dGVzQ291bnQ7CisjZWxzZQorICAgIC8vIFdo
ZW4gdXNpbmcgdGhlIEMgc3RhY2ssIHdlIGRvbid0IGtub3cgaG93IG1hbnkgc3RhY2sgcGFnZXMg
YXJlIGFjdHVhbGx5CisgICAgLy8gY29tbWl0dGVkLiBTbywgd2UgdXNlIHRoZSBjdXJyZW50IHN0
YWNrIHVzYWdlIGFzIGFuIGVzdGltYXRlLgorICAgIEFTU0VSVCh3dGZUaHJlYWREYXRhKCkuc3Rh
Y2soKS5pc0dyb3dpbmdEb3dud2FyZCgpKTsKKyAgICBpbnQ4X3QqIGN1cnJlbnQgPSByZWludGVy
cHJldF9jYXN0PGludDhfdCo+KCZjdXJyZW50KTsKKyAgICBpbnQ4X3QqIGhpZ2ggPSByZWludGVy
cHJldF9jYXN0PGludDhfdCo+KHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLm9yaWdpbigpKTsKKyAg
ICByZXR1cm4gaGlnaCAtIGN1cnJlbnQ7CisjZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlND
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suaAppbmRleCA5MWY5
M2UyYmY5YjU0NDVhMjQ3ZmJhNjI2Y2YzZWNkMjQ4MTc3YWFkLi4xZjZmZTIwYzE2MDhhNTI5NWE1
NzJkZTEwYTQ3N2JlYTg4ODU5MzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvSlNTdGFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9KU1N0YWNrLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4
LCAyMDA5LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCwgMjAwOSwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDExICszNSw2IEBACiAj
aW5jbHVkZSA8d3RmL1BhZ2VSZXNlcnZhdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9WTVRhZ3MuaD4K
IAotI2RlZmluZSBFTkFCTEVfREVCVUdfSlNTVEFDSyAwCi0jaWYgIWRlZmluZWQoTkRFQlVHKSAm
JiAhZGVmaW5lZChFTkFCTEVfREVCVUdfSlNTVEFDSykKLSNkZWZpbmUgRU5BQkxFX0RFQlVHX0pT
U1RBQ0sgMQotI2VuZGlmCi0KIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgQ29kZUJsb2Nr
U2V0OwpAQCAtNjEsNyArNTYsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoSlNTdGFjayk7CiAgICAgcHVibGljOgogICAgICAgICBlbnVtIENhbGxGcmFt
ZUhlYWRlckVudHJ5IHsKLSAgICAgICAgICAgIENvZGVCbG9jayA9IHNpemVvZihDYWxsZXJGcmFt
ZUFuZFBDKSAvIHNpemVvZihSZWdpc3RlciksCisgICAgICAgICAgICBDYWxsZXJGcmFtZUFuZFBD
U2l6ZSA9IHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSAvIHNpemVvZihSZWdpc3RlciksCisgICAg
ICAgICAgICBDb2RlQmxvY2sgPSBDYWxsZXJGcmFtZUFuZFBDU2l6ZSwKICAgICAgICAgICAgIFNj
b3BlQ2hhaW4sCiAgICAgICAgICAgICBDYWxsZWUsCiAgICAgICAgICAgICBBcmd1bWVudENvdW50
LApAQCAtNzIsOTIgKzY4LDg3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgRmlyc3RB
cmd1bWVudCwKICAgICAgICAgfTsKIAotICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGRlZmF1
bHRDYXBhY2l0eSA9IDUxMiAqIDEwMjQ7CiAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgY29t
bWl0U2l6ZSA9IDE2ICogMTAyNDsKICAgICAgICAgLy8gQWxsb3cgOGsgb2YgZXhjZXNzIHJlZ2lz
dGVycyBiZWZvcmUgd2Ugc3RhcnQgdHJ5aW5nIHRvIHJlYXAgdGhlIHN0YWNrCiAgICAgICAgIHN0
YXRpYyBjb25zdCBwdHJkaWZmX3QgbWF4RXhjZXNzQ2FwYWNpdHkgPSA4ICogMTAyNDsKIAotICAg
ICAgICBKU1N0YWNrKFZNJiwgc2l6ZV90IGNhcGFjaXR5ID0gZGVmYXVsdENhcGFjaXR5KTsKLSAg
ICAgICAgfkpTU3RhY2soKTsKKyAgICAgICAgSlNTdGFjayhWTSYpOwogICAgICAgICAKKyAgICAg
ICAgYm9vbCBlbnN1cmVDYXBhY2l0eUZvcihSZWdpc3RlciogbmV3VG9wT2ZTdGFjayk7CisKKyAg
ICAgICAgYm9vbCBjb250YWluc0FkZHJlc3MoUmVnaXN0ZXIqIGFkZHJlc3MpIHsgcmV0dXJuIChs
b3dBZGRyZXNzKCkgPD0gYWRkcmVzcyAmJiBhZGRyZXNzIDwgaGlnaEFkZHJlc3MoKSk7IH0KKyAg
ICAgICAgc3RhdGljIHNpemVfdCBjb21taXR0ZWRCeXRlQ291bnQoKTsKKworI2lmICFFTkFCTEUo
TExJTlRfQ19MT09QKQorICAgICAgICB2b2lkIGdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNl
cnZhdGl2ZVJvb3RzJikgeyB9CisgICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMo
Q29uc2VydmF0aXZlUm9vdHMmLCBKSVRTdHViUm91dGluZVNldCYsIENvZGVCbG9ja1NldCYpIHsg
fQorICAgICAgICB2b2lkIHNhbml0aXplU3RhY2soKSB7IH0KKyAgICAgICAgc3RhdGljIHZvaWQg
aW5pdGlhbGl6ZVRocmVhZGluZygpIHsgfQorI2Vsc2UKKyAgICAgICAgfkpTU3RhY2soKTsKKwog
ICAgICAgICB2b2lkIGdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJik7
CiAgICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMm
LCBKSVRTdHViUm91dGluZVNldCYsIENvZGVCbG9ja1NldCYpOwogICAgICAgICB2b2lkIHNhbml0
aXplU3RhY2soKTsKIAotICAgICAgICBSZWdpc3RlciogZ2V0QmFzZU9mU3RhY2soKSBjb25zdAor
ICAgICAgICBSZWdpc3RlciogYmFzZU9mU3RhY2soKSBjb25zdAogICAgICAgICB7CiAgICAgICAg
ICAgICByZXR1cm4gaGlnaEFkZHJlc3MoKSAtIDE7CiAgICAgICAgIH0KIAogICAgICAgICBzaXpl
X3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGhpZ2hBZGRyZXNzKCkgLSBsb3dBZGRyZXNzKCk7IH0K
IAotICAgICAgICBib29sIGdyb3coUmVnaXN0ZXIqKTsKLSAgICAgICAgCi0gICAgICAgIHN0YXRp
YyBzaXplX3QgY29tbWl0dGVkQnl0ZUNvdW50KCk7CiAgICAgICAgIHN0YXRpYyB2b2lkIGluaXRp
YWxpemVUaHJlYWRpbmcoKTsKIAotICAgICAgICBSZWdpc3RlciogZ2V0VG9wT2ZGcmFtZShDYWxs
RnJhbWUqKTsKLSAgICAgICAgUmVnaXN0ZXIqIGdldFN0YXJ0T2ZGcmFtZShDYWxsRnJhbWUqKTsK
LSAgICAgICAgUmVnaXN0ZXIqIGdldFRvcE9mU3RhY2soKTsKLQotICAgICAgICBib29sIGVudHJ5
Q2hlY2soY2xhc3MgQ29kZUJsb2NrKiwgaW50KTsKKyAgICAgICAgdm9pZCBzZXRSZXNlcnZlZFpv
bmVTaXplKHNpemVfdCk7CiAKLSAgICAgICAgQ2FsbEZyYW1lKiBwdXNoRnJhbWUoY2xhc3MgQ29k
ZUJsb2NrKiwgSlNTY29wZSosIGludCBhcmdzQ291bnQsIEpTT2JqZWN0KiBjYWxsZWUpOwotCi0g
ICAgICAgIHZvaWQgcG9wRnJhbWUoQ2FsbEZyYW1lKik7Ci0KLSAgICAgICAgYm9vbCBjb250YWlu
c0FkZHJlc3MoUmVnaXN0ZXIqIGFkZHJlc3MpIHsgcmV0dXJuIChsb3dBZGRyZXNzKCkgPD0gYWRk
cmVzcyAmJiBhZGRyZXNzIDw9IGhpZ2hBZGRyZXNzKCkpOyB9Ci0KLSAgICAgICAgdm9pZCBlbmFi
bGVFcnJvclN0YWNrUmVzZXJ2ZSgpOwotICAgICAgICB2b2lkIGRpc2FibGVFcnJvclN0YWNrUmVz
ZXJ2ZSgpOwotCi0jaWYgRU5BQkxFKERFQlVHX0pTU1RBQ0spCi0gICAgICAgIHZvaWQgaW5zdGFs
bEZlbmNlKENhbGxGcmFtZSosIGNvbnN0IGNoYXIgKmZ1bmN0aW9uID0gIiIsIGludCBsaW5lTm8g
PSAwKTsKLSAgICAgICAgdm9pZCB2YWxpZGF0ZUZlbmNlKENhbGxGcmFtZSosIGNvbnN0IGNoYXIg
KmZ1bmN0aW9uID0gIiIsIGludCBsaW5lTm8gPSAwKTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGlu
dCBGZW5jZVNpemUgPSA0OwotI2Vsc2UgLy8gIUVOQUJMRShERUJVR19KU1NUQUNLKQotICAgICAg
ICB2b2lkIGluc3RhbGxGZW5jZShDYWxsRnJhbWUqLCBjb25zdCBjaGFyKiA9ICIiLCBpbnQgPSAw
KSB7IH0KLSAgICAgICAgdm9pZCB2YWxpZGF0ZUZlbmNlKENhbGxGcmFtZSosIGNvbnN0IGNoYXIq
ID0gIiIsIGludCA9IDApIHsgfQotI2VuZGlmIC8vICFFTkFCTEUoREVCVUdfSlNTVEFDSykKKyAg
ICAgICAgaW5saW5lIFJlZ2lzdGVyKiB0b3BPZlN0YWNrKCk7CisjZW5kaWYgLy8gRU5BQkxFKExM
SU5UX0NfTE9PUCkKIAogICAgIHByaXZhdGU6CisKKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQog
ICAgICAgICBSZWdpc3RlciogbG93QWRkcmVzcygpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBtX2VuZDsKKyAgICAgICAgICAgIHJldHVybiBtX2VuZCArIDE7CiAgICAgICAg
IH0KIAogICAgICAgICBSZWdpc3RlciogaGlnaEFkZHJlc3MoKSBjb25zdAogICAgICAgICB7CiAg
ICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdF9wdHI8UmVnaXN0ZXIqPihzdGF0aWNf
Y2FzdDxjaGFyKj4obV9yZXNlcnZhdGlvbi5iYXNlKCkpICsgbV9yZXNlcnZhdGlvbi5zaXplKCkp
OwogICAgICAgICB9CisjZWxzZQorICAgICAgICBSZWdpc3RlciogbG93QWRkcmVzcygpIGNvbnN0
OworICAgICAgICBSZWdpc3RlciogaGlnaEFkZHJlc3MoKSBjb25zdDsKKyNlbmRpZiAvLyBFTkFC
TEUoTExJTlRfQ19MT09QKQogCi0gICAgICAgIFJlZ2lzdGVyKiByZXNlcnZhdGlvbkVuZCgpIGNv
bnN0CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICAgICAgaW5saW5lIFJlZ2lzdGVyKiB0
b3BPZkZyYW1lRm9yKENhbGxGcmFtZSopOworCisgICAgICAgIFJlZ2lzdGVyKiByZXNlcnZhdGlv
blRvcCgpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIGNoYXIqIHJlc2VydmF0aW9uRW5k
ID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1fcmVzZXJ2YXRpb24uYmFzZSgpKTsKLSAgICAgICAgICAg
IHJldHVybiByZWludGVycHJldF9jYXN0X3B0cjxSZWdpc3Rlcio+KHJlc2VydmF0aW9uRW5kKTsK
KyAgICAgICAgICAgIGNoYXIqIHJlc2VydmF0aW9uVG9wID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1f
cmVzZXJ2YXRpb24uYmFzZSgpKTsKKyAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0
X3B0cjxSZWdpc3Rlcio+KHJlc2VydmF0aW9uVG9wKTsKICAgICAgICAgfQogCi0jaWYgRU5BQkxF
KERFQlVHX0pTU1RBQ0spCi0gICAgICAgIHN0YXRpYyBKU1ZhbHVlIGdlbmVyYXRlRmVuY2VWYWx1
ZShzaXplX3QgYXJnSW5kZXgpOwotICAgICAgICB2b2lkIGluc3RhbGxUcmFwc0FmdGVyRnJhbWUo
Q2FsbEZyYW1lKik7Ci0jZWxzZQotICAgICAgICB2b2lkIGluc3RhbGxUcmFwc0FmdGVyRnJhbWUo
Q2FsbEZyYW1lKikgeyB9Ci0jZW5kaWYKLQotICAgICAgICBib29sIGdyb3dTbG93Q2FzZShSZWdp
c3RlciopOwotICAgICAgICB2b2lkIHNocmluayhSZWdpc3RlciopOworICAgICAgICBib29sIGdy
b3coUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spOworICAgICAgICBib29sIGdyb3dTbG93Q2FzZShS
ZWdpc3RlciogbmV3VG9wT2ZTdGFjayk7CisgICAgICAgIHZvaWQgc2hyaW5rKFJlZ2lzdGVyKiBu
ZXdUb3BPZlN0YWNrKTsKICAgICAgICAgdm9pZCByZWxlYXNlRXhjZXNzQ2FwYWNpdHkoKTsKICAg
ICAgICAgdm9pZCBhZGRUb0NvbW1pdHRlZEJ5dGVDb3VudChsb25nKTsKIAotICAgICAgICB2b2lk
IHVwZGF0ZVN0YWNrTGltaXQoUmVnaXN0ZXIqIG5ld0VuZCk7CisgICAgICAgIHZvaWQgc2V0U3Rh
Y2tMaW1pdChSZWdpc3RlciogbmV3VG9wT2ZTdGFjayk7CisjZW5kaWYgLy8gRU5BQkxFKExMSU5U
X0NfTE9PUCkKIAogICAgICAgICBWTSYgbV92bTsKKyAgICAgICAgQ2FsbEZyYW1lKiYgbV90b3BD
YWxsRnJhbWU7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKICAgICAgICAgUmVnaXN0ZXIqIG1f
ZW5kOwotICAgICAgICBSZWdpc3RlciogbV9jb21taXRFbmQ7Ci0gICAgICAgIFJlZ2lzdGVyKiBt
X3VzZWFibGVFbmQ7CisgICAgICAgIFJlZ2lzdGVyKiBtX2NvbW1pdFRvcDsKICAgICAgICAgUGFn
ZVJlc2VydmF0aW9uIG1fcmVzZXJ2YXRpb247Ci0gICAgICAgIENhbGxGcmFtZSomIG1fdG9wQ2Fs
bEZyYW1lOwogICAgICAgICBSZWdpc3RlciogbV9sYXN0U3RhY2tUb3A7CisgICAgICAgIHB0cmRp
ZmZfdCBtX3Jlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVyczsKKyNlbmRpZiAvLyBFTkFCTEUoTExJ
TlRfQ19MT09QKQogCiAgICAgICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7
CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9K
U1N0YWNrSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3Rh
Y2tJbmxpbmVzLmgKaW5kZXggNWEyYWZmMTE3MWRkMWRiMjYzN2RjMWI4OTViYTNhZjM1ZDVjZTQz
Ni4uYjA3NGIzN2ViMGIwZjZlZjgxOGE4Y2FiMjk5MWFiNDZmZDczZGZmZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2tJbmxpbmVzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2tJbmxpbmVzLmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMzLDI2MiArMzMsNjUgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWlubGluZSBSZWdp
c3RlciogSlNTdGFjazo6Z2V0VG9wT2ZGcmFtZShDYWxsRnJhbWUqIGZyYW1lKQoraW5saW5lIGJv
b2wgSlNTdGFjazo6ZW5zdXJlQ2FwYWNpdHlGb3IoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCiB7
Ci0gICAgaWYgKFVOTElLRUxZKCFmcmFtZSkpCi0gICAgICAgIHJldHVybiBnZXRCYXNlT2ZTdGFj
aygpOwotICAgIHJldHVybiBmcmFtZS0+ZnJhbWVFeHRlbnQoKTsKLX0KLQotaW5saW5lIFJlZ2lz
dGVyKiBKU1N0YWNrOjpnZXRUb3BPZlN0YWNrKCkKLXsKLSAgICByZXR1cm4gZ2V0VG9wT2ZGcmFt
ZShtX3RvcENhbGxGcmFtZSk7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICByZXR1cm4g
Z3JvdyhuZXdUb3BPZlN0YWNrKTsKKyNlbHNlCisgICAgQVNTRVJUKHd0ZlRocmVhZERhdGEoKS5z
dGFjaygpLmlzR3Jvd2luZ0Rvd253YXJkKCkpOworICAgIHJldHVybiBuZXdUb3BPZlN0YWNrID49
IG1fdm0uc3RhY2tMaW1pdCgpOworI2VuZGlmCiB9CiAKLWlubGluZSBSZWdpc3RlciogSlNTdGFj
azo6Z2V0U3RhcnRPZkZyYW1lKENhbGxGcmFtZSogZnJhbWUpCi17Ci0gICAgQ2FsbEZyYW1lKiBj
YWxsZXJGcmFtZSA9IGZyYW1lLT5jYWxsZXJGcmFtZVNraXBwaW5nVk1FbnRyeVNlbnRpbmVsKCk7
Ci0gICAgcmV0dXJuIGdldFRvcE9mRnJhbWUoY2FsbGVyRnJhbWUpOwotfQorI2lmIEVOQUJMRShM
TElOVF9DX0xPT1ApCiAKLWlubGluZSBib29sIEpTU3RhY2s6OmVudHJ5Q2hlY2soY2xhc3MgQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIGludCBhcmdzQ291bnQpCitpbmxpbmUgUmVnaXN0ZXIqIEpTU3Rh
Y2s6OnRvcE9mRnJhbWVGb3IoQ2FsbEZyYW1lKiBmcmFtZSkKIHsKLSAgICBSZWdpc3Rlciogb2xk
RW5kID0gZ2V0VG9wT2ZTdGFjaygpOwotCi0gICAgLy8gRW5zdXJlIHRoYXQgd2UgaGF2ZSBlbm91
Z2ggc3BhY2UgZm9yIHRoZSBwYXJhbWV0ZXJzOgotICAgIHNpemVfdCBwYWRkZWRBcmdzQ291bnQg
PSBhcmdzQ291bnQ7Ci0gICAgaWYgKGNvZGVCbG9jaykgewotICAgICAgICBzaXplX3QgbnVtUGFy
YW1ldGVycyA9IGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpOwotICAgICAgICBpZiAocGFkZGVk
QXJnc0NvdW50IDwgbnVtUGFyYW1ldGVycykKLSAgICAgICAgICAgIHBhZGRlZEFyZ3NDb3VudCA9
IG51bVBhcmFtZXRlcnM7Ci0gICAgfQotCi0gICAgUmVnaXN0ZXIqIG5ld0NhbGxGcmFtZVNsb3Qg
PSBvbGRFbmQgLSBwYWRkZWRBcmdzQ291bnQgLSAoMiAqIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRl
clNpemUpICsgMTsKLQotI2lmIEVOQUJMRShERUJVR19KU1NUQUNLKQotICAgIG5ld0NhbGxGcmFt
ZVNsb3QgLT0gSlNTdGFjazo6RmVuY2VTaXplOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisg
ICAgaWYgKFVOTElLRUxZKCFmcmFtZSkpCisgICAgICAgIHJldHVybiBiYXNlT2ZTdGFjaygpOwog
I2VuZGlmCi0KLSAgICBSZWdpc3RlciogbmV3RW5kID0gbmV3Q2FsbEZyYW1lU2xvdDsKLSAgICBp
ZiAoISFjb2RlQmxvY2spCi0gICAgICAgIG5ld0VuZCArPSB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2Nh
bChjb2RlQmxvY2stPmZyYW1lUmVnaXN0ZXJDb3VudCgpKS5vZmZzZXQoKTsKLQotICAgIC8vIEVu
c3VyZSB0aGF0IHdlIGhhdmUgdGhlIG5lZWRlZCBzdGFjayBjYXBhY2l0eSB0byBwdXNoIHRoZSBu
ZXcgZnJhbWU6Ci0gICAgaWYgKCFncm93KG5ld0VuZCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBmcmFtZS0+dG9wT2ZGcmFtZSgpIC0gMTsK
IH0KIAotaW5saW5lIENhbGxGcmFtZSogSlNTdGFjazo6cHVzaEZyYW1lKGNsYXNzIENvZGVCbG9j
ayogY29kZUJsb2NrLCBKU1Njb3BlKiBzY29wZSwgaW50IGFyZ3NDb3VudCwgSlNPYmplY3QqIGNh
bGxlZSkKK2lubGluZSBSZWdpc3RlciogSlNTdGFjazo6dG9wT2ZTdGFjaygpCiB7Ci0gICAgQVNT
RVJUKCEhc2NvcGUpOwotICAgIFJlZ2lzdGVyKiBvbGRFbmQgPSBnZXRUb3BPZlN0YWNrKCk7Ci0K
LSAgICAvLyBFbnN1cmUgdGhhdCB3ZSBoYXZlIGVub3VnaCBzcGFjZSBmb3IgdGhlIHBhcmFtZXRl
cnM6Ci0gICAgc2l6ZV90IHBhZGRlZEFyZ3NDb3VudCA9IGFyZ3NDb3VudDsKLSAgICBpZiAoY29k
ZUJsb2NrKSB7Ci0gICAgICAgIHNpemVfdCBudW1QYXJhbWV0ZXJzID0gY29kZUJsb2NrLT5udW1Q
YXJhbWV0ZXJzKCk7Ci0gICAgICAgIGlmIChwYWRkZWRBcmdzQ291bnQgPCBudW1QYXJhbWV0ZXJz
KQotICAgICAgICAgICAgcGFkZGVkQXJnc0NvdW50ID0gbnVtUGFyYW1ldGVyczsKLSAgICB9Ci0K
LSAgICBSZWdpc3RlciogbmV3Q2FsbEZyYW1lU2xvdCA9IG9sZEVuZCAtIHBhZGRlZEFyZ3NDb3Vu
dCAtICgyICogSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSkgKyAxOwotCi0jaWYgRU5BQkxF
KERFQlVHX0pTU1RBQ0spCi0gICAgbmV3Q2FsbEZyYW1lU2xvdCAtPSBKU1N0YWNrOjpGZW5jZVNp
emU7Ci0jZW5kaWYKLQotICAgIFJlZ2lzdGVyKiBuZXdFbmQgPSBuZXdDYWxsRnJhbWVTbG90Owot
ICAgIGlmICghIWNvZGVCbG9jaykKLSAgICAgICAgbmV3RW5kICs9IHZpcnR1YWxSZWdpc3RlckZv
ckxvY2FsKGNvZGVCbG9jay0+ZnJhbWVSZWdpc3RlckNvdW50KCkpLm9mZnNldCgpOwotCi0gICAg
Ly8gRW5zdXJlIHRoYXQgd2UgaGF2ZSB0aGUgbmVlZGVkIHN0YWNrIGNhcGFjaXR5IHRvIHB1c2gg
dGhlIG5ldyBmcmFtZToKLSAgICBpZiAoIWdyb3cobmV3RW5kKSkKLSAgICAgICAgcmV0dXJuIDA7
Ci0KLSAgICAvLyBDb21wdXRlIHRoZSBhZGRyZXNzIG9mIHRoZSBuZXcgVk0gc2VudGluZWwgZnJh
bWUgZm9yIHRoaXMgaW52b2NhdGlvbjoKLSAgICBDYWxsRnJhbWUqIG5ld1ZNRW50cnlTZW50aW5l
bEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUobmV3Q2FsbEZyYW1lU2xvdCArIHBhZGRlZEFyZ3ND
b3VudCArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpOwotICAgIEFTU0VSVCghIW5ld1ZN
RW50cnlTZW50aW5lbEZyYW1lKTsKLQotICAgIC8vIENvbXB1dGUgdGhlIGFkZHJlc3Mgb2YgdGhl
IG5ldyBmcmFtZSBmb3IgdGhpcyBpbnZvY2F0aW9uOgotICAgIENhbGxGcmFtZSogbmV3Q2FsbEZy
YW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUobmV3Q2FsbEZyYW1lU2xvdCk7Ci0gICAgQVNTRVJUKCEh
bmV3Q2FsbEZyYW1lKTsKLQotICAgIC8vIFRoZSBjYWxsZXIgZnJhbWUgc2hvdWxkIGFsd2F5cyBi
ZSB0aGUgcmVhbCBwcmV2aW91cyBmcmFtZSBvbiB0aGUgc3RhY2ssCi0gICAgLy8gYW5kIG5vdCBh
IHBvdGVudGlhbCBHbG9iYWxFeGVjIHRoYXQgd2FzIHBhc3NlZCBpbi4gUG9pbnQgY2FsbGVyRnJh
bWUgdG8KLSAgICAvLyB0aGUgdG9wIGZyYW1lIG9uIHRoZSBzdGFjay4KLSAgICBDYWxsRnJhbWUq
IGNhbGxlckZyYW1lID0gbV90b3BDYWxsRnJhbWU7Ci0KLSAgICAvLyBJbml0aWFsaXplIHRoZSBW
TSBzZW50aW5lbCBmcmFtZSBoZWFkZXI6Ci0gICAgbmV3Vk1FbnRyeVNlbnRpbmVsRnJhbWUtPmlu
aXRpYWxpemVWTUVudHJ5U2VudGluZWxGcmFtZShjYWxsZXJGcmFtZSk7Ci0KLSAgICAvLyBJbml0
aWFsaXplIHRoZSBjYWxsZWUgZnJhbWUgaGVhZGVyOgotICAgIG5ld0NhbGxGcmFtZS0+aW5pdChj
b2RlQmxvY2ssIDAsIHNjb3BlLCBuZXdWTUVudHJ5U2VudGluZWxGcmFtZSwgYXJnc0NvdW50LCBj
YWxsZWUpOwotCi0gICAgQVNTRVJUKCEhbmV3Q2FsbEZyYW1lLT5zY29wZSgpKTsKLQotICAgIC8v
IFBhZCBhZGRpdGlvbmFsIGFyZ3MgaWYgbmVlZGVkOgotICAgIC8vIE5vdGU6IHdlIG5lZWQgdG8g
c3VidHJhY3QgMSBmcm9tIGFyZ3NDb3VudCBhbmQgcGFkZGVkQXJnc0NvdW50IHRvCi0gICAgLy8g
ZXhjbHVkZSB0aGUgdGhpcyBwb2ludGVyLgotICAgIGZvciAoc2l6ZV90IGkgPSBhcmdzQ291bnQt
MTsgaSA8IHBhZGRlZEFyZ3NDb3VudC0xOyArK2kpCi0gICAgICAgIG5ld0NhbGxGcmFtZS0+c2V0
QXJndW1lbnQoaSwganNVbmRlZmluZWQoKSk7Ci0KLSAgICBpbnN0YWxsRmVuY2UobmV3Q2FsbEZy
YW1lLCBfX0ZVTkNUSU9OX18sIF9fTElORV9fKTsKLSAgICB2YWxpZGF0ZUZlbmNlKG5ld0NhbGxG
cmFtZSwgX19GVU5DVElPTl9fLCBfX0xJTkVfXyk7Ci0gICAgaW5zdGFsbFRyYXBzQWZ0ZXJGcmFt
ZShuZXdDYWxsRnJhbWUpOwotCi0gICAgLy8gUHVzaCB0aGUgbmV3IGZyYW1lOgotICAgIG1fdG9w
Q2FsbEZyYW1lID0gbmV3Q2FsbEZyYW1lOwotCi0gICAgcmV0dXJuIG5ld0NhbGxGcmFtZTsKKyAg
ICByZXR1cm4gdG9wT2ZGcmFtZUZvcihtX3RvcENhbGxGcmFtZSk7CiB9CiAKLWlubGluZSB2b2lk
IEpTU3RhY2s6OnBvcEZyYW1lKENhbGxGcmFtZSogZnJhbWUpCi17Ci0gICAgdmFsaWRhdGVGZW5j
ZShmcmFtZSwgX19GVU5DVElPTl9fLCBfX0xJTkVfXyk7Ci0KLSAgICAvLyBQb3Agb2ZmIHRoZSBj
YWxsZWUgZnJhbWUgYW5kIHRoZSBzZW50aW5lbCBmcmFtZS4KLSAgICBDYWxsRnJhbWUqIGNhbGxl
ckZyYW1lID0gZnJhbWUtPmNhbGxlckZyYW1lKCktPnZtRW50cnlTZW50aW5lbENhbGxlckZyYW1l
KCk7Ci0KLSAgICAvLyBQb3AgdG8gdGhlIGNhbGxlcjoKLSAgICBtX3RvcENhbGxGcmFtZSA9IGNh
bGxlckZyYW1lOwotCi0gICAgLy8gSWYgd2UgYXJlIHBvcHBpbmcgdGhlIHZlcnkgZmlyc3QgZnJh
bWUgZnJvbSB0aGUgc3RhY2sgaS5lLiBubyBtb3JlCi0gICAgLy8gZnJhbWVzIGJlZm9yZSB0aGlz
LCB0aGVuIHdlIGNhbiBub3cgc2FmZWx5IHNocmluayB0aGUgc3RhY2suIEluCi0gICAgLy8gdGhp
cyBjYXNlLCB3ZSdyZSBzaHJpbmtpbmcgYWxsIHRoZSB3YXkgdG8gdGhlIGJlZ2lubmluZyBzaW5j
ZSB0aGVyZQotICAgIC8vIGFyZSBubyBtb3JlIGZyYW1lcyBvbiB0aGUgc3RhY2suCi0gICAgaWYg
KCFjYWxsZXJGcmFtZSkKLSAgICAgICAgc2hyaW5rKGdldEJhc2VPZlN0YWNrKCkpOwotCi0gICAg
aW5zdGFsbFRyYXBzQWZ0ZXJGcmFtZShjYWxsZXJGcmFtZSk7Ci19Ci0KLWlubGluZSB2b2lkIEpT
U3RhY2s6OnNocmluayhSZWdpc3RlciogbmV3RW5kKQoraW5saW5lIHZvaWQgSlNTdGFjazo6c2hy
aW5rKFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKQogeworICAgIFJlZ2lzdGVyKiBuZXdFbmQgPSBu
ZXdUb3BPZlN0YWNrIC0gMTsKICAgICBpZiAobmV3RW5kID49IG1fZW5kKQogICAgICAgICByZXR1
cm47Ci0gICAgdXBkYXRlU3RhY2tMaW1pdChuZXdFbmQpOwotICAgIGlmIChtX2VuZCA9PSBnZXRC
YXNlT2ZTdGFjaygpICYmIChtX2NvbW1pdEVuZCAtIGdldEJhc2VPZlN0YWNrKCkpID49IG1heEV4
Y2Vzc0NhcGFjaXR5KQorICAgIHNldFN0YWNrTGltaXQobmV3VG9wT2ZTdGFjayk7CisgICAgLy8g
Tm90ZTogQ2xhbmcgY29tcGxhaW5zIG9mIGFuIHVucmVzb2x2ZWQgbGlua2FnZSB0byBtYXhFeGNl
c3NDYXBhY2l0eSBpZgorICAgIC8vIGludm9rZSBzdGQ6Om1heCgpIHdpdGggaXQgYXMgYW4gYXJn
dW1lbnQuIFRvIHdvcmsgYXJvdW5kIHRoaXMsIHdlIGZpcnN0CisgICAgLy8gYXNzaWduIHRoZSBj
b25zdGFudCB0byBhIGxvY2FsIHZhcmlhYmxlLCBhbmQgdXNlIHRoZSBsb2NhbCBpbnN0ZWFkLgor
ICAgIHB0cmRpZmZfdCBtYXhFeGNlc3NDYXBhY2l0eSA9IEpTU3RhY2s6Om1heEV4Y2Vzc0NhcGFj
aXR5OworICAgIHB0cmRpZmZfdCBtYXhFeGNlc3NJblJlZ2lzdGVycyA9IHN0ZDo6bWF4KG1heEV4
Y2Vzc0NhcGFjaXR5LCBtX3Jlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVycyk7CisgICAgaWYgKG1f
ZW5kID09IGJhc2VPZlN0YWNrKCkgJiYgKGhpZ2hBZGRyZXNzKCkgLSBtX2NvbW1pdFRvcCkgPj0g
bWF4RXhjZXNzSW5SZWdpc3RlcnMpCiAgICAgICAgIHJlbGVhc2VFeGNlc3NDYXBhY2l0eSgpOwog
fQogCi1pbmxpbmUgYm9vbCBKU1N0YWNrOjpncm93KFJlZ2lzdGVyKiBuZXdFbmQpCitpbmxpbmUg
Ym9vbCBKU1N0YWNrOjpncm93KFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKQogeworICAgIFJlZ2lz
dGVyKiBuZXdFbmQgPSBuZXdUb3BPZlN0YWNrIC0gMTsKICAgICBpZiAobmV3RW5kID49IG1fZW5k
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZ3Jvd1Nsb3dDYXNlKG5ld0VuZCk7
CisgICAgcmV0dXJuIGdyb3dTbG93Q2FzZShuZXdUb3BPZlN0YWNrKTsKIH0KIAotaW5saW5lIHZv
aWQgSlNTdGFjazo6dXBkYXRlU3RhY2tMaW1pdChSZWdpc3RlciogbmV3RW5kKQoraW5saW5lIHZv
aWQgSlNTdGFjazo6c2V0U3RhY2tMaW1pdChSZWdpc3RlciogbmV3VG9wT2ZTdGFjaykKIHsKKyAg
ICBSZWdpc3RlciogbmV3RW5kID0gbmV3VG9wT2ZTdGFjayAtIDE7CiAgICAgbV9lbmQgPSBuZXdF
bmQ7Ci0jaWYgVVNFKFNFUEFSQVRFX0NfQU5EX0pTX1NUQUNLKQotICAgIG1fdm0uc2V0SlNTdGFj
a0xpbWl0KG5ld0VuZCk7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICBtX3ZtLnNldEpT
U3RhY2tMaW1pdChuZXdUb3BPZlN0YWNrKTsKICNlbmRpZgogfQogCi0jaWYgRU5BQkxFKERFQlVH
X0pTU1RBQ0spCi1pbmxpbmUgSlNWYWx1ZSBKU1N0YWNrOjpnZW5lcmF0ZUZlbmNlVmFsdWUoc2l6
ZV90IGFyZ0luZGV4KQotewotICAgIHVuc2lnbmVkIGZlbmNlQml0cyA9IDB4ZmFjZWJhZDAgfCAo
KGFyZ0luZGV4KzEpICYgMHhmKTsKLSAgICBKU1ZhbHVlIGZlbmNlVmFsdWUgPSBKU1ZhbHVlKGZl
bmNlQml0cyk7Ci0gICAgcmV0dXJuIGZlbmNlVmFsdWU7Ci19Ci0KLS8vIFRoZSBKU1N0YWNrIGZl
bmNlcyBtZWNoYW5pc20gd29ya3MgYXMgZm9sbG93czoKLS8vIDEuIEEgZmVuY2UgaXMgYSBudW1i
ZXIgKEpTU3RhY2s6OkZlbmNlU2l6ZSkgb2YgSlNWYWx1ZXMgdGhhdCBhcmUgaW5pdGlhbGl6ZWQK
LS8vICAgIHdpdGggdmFsdWVzIGdlbmVyYXRlZCBieSBKU1N0YWNrOjpnZW5lcmF0ZUZlbmNlVmFs
dWUoKS4KLS8vIDIuIFdoZW4gcHVzaEZyYW1lKCkgaXMgY2FsbGVkLCB0aGUgZmVuY2UgaXMgaW5z
dGFsbGVkIGFmdGVyIHRoZSBtYXggZXh0ZW50Ci0vLyAgICBvZiB0aGUgcHJldmlvdXMgdG9wQ2Fs
bEZyYW1lIGFuZCB0aGUgbGFzdCBhcmcgb2YgdGhlIG5ldyBmcmFtZToKLS8vCi0vLyAgICAgICAg
ICAgICAgICAgICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLS8v
ICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tfAotLy8gICAgICAgICAgICAgICAgICAgICB8IEZyYW1lIEhlYWRlciBvZiBwcmV2aW91cyBm
cmFtZSAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8vICAgIHRvcENhbGxGcmFtZSAtLT4gfCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotLy8gICAgICAgICAgICAgICAgICAgICB8IExv
Y2FscyBvZiBwcmV2aW91cyBmcmFtZSAgICAgICAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAg
ICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8vICAgICAgICAg
ICAgICAgICAgICAgfCAqKiogdGhlIEZlbmNlICoqKiAgICAgICAgICAgICAgICAgICAgfAotLy8g
ICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS18Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwgVk0gZW50cnkgc2VudGluZWwgZnJhbWUgaGVh
ZGVyICAgICAgIHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tfAotLy8gICAgICAgICAgICAgICAgICAgICB8IEFyZ3Mgb2YgbmV3
IGZyYW1lICAgICAgICAgICAgICAgICAgICB8Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8vICAgICAgICAgICAgICAgICAg
ICAgfCBGcmFtZSBIZWFkZXIgb2YgbmV3IGZyYW1lICAgICAgICAgICAgfAotLy8gICAgICAgICAg
ICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAg
ICAgICAgICAgZnJhbWUgLS0+IHwgTG9jYWxzIG9mIG5ldyBmcmFtZSAgICAgICAgICAgICAgICAg
IHwKLS8vICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfAotLy8KLS8vIDMuIEluIHBvcEZyYW1lKCkgYW5kIGVsc2V3aGVyZSwgd2UgY2Fu
IGNhbGwgSlNTdGFjazo6dmFsaWRhdGVGZW5jZSgpIHRvCi0vLyAgICBhc3NlcnQgdGhhdCB0aGUg
ZmVuY2UgY29udGFpbnMgdGhlIHZhbHVlcyB3ZSBleHBlY3QuCi0KLWlubGluZSB2b2lkIEpTU3Rh
Y2s6Omluc3RhbGxGZW5jZShDYWxsRnJhbWUqIGZyYW1lLCBjb25zdCBjaGFyICpmdW5jdGlvbiwg
aW50IGxpbmVObykKLXsKLSAgICBVTlVTRURfUEFSQU0oZnVuY3Rpb24pOwotICAgIFVOVVNFRF9Q
QVJBTShsaW5lTm8pOwotICAgIFJlZ2lzdGVyKiBzdGFydE9mRnJhbWUgPSBnZXRTdGFydE9mRnJh
bWUoZnJhbWUpOwotCi0gICAgLy8gVGhlIGxhc3QgYXJnSW5kZXggaXMgYXQ6Ci0gICAgc2l6ZV90
IG1heEluZGV4ID0gZnJhbWUtPmFyZ0luZGV4Rm9yUmVnaXN0ZXIoc3RhcnRPZkZyYW1lKSArIDE7
Ci0gICAgc2l6ZV90IHN0YXJ0SW5kZXggPSBtYXhJbmRleCAtIEZlbmNlU2l6ZTsKLSAgICBmb3Ig
KHNpemVfdCBpID0gc3RhcnRJbmRleDsgaSA8IG1heEluZGV4OyArK2kpIHsKLSAgICAgICAgSlNW
YWx1ZSBmZW5jZVZhbHVlID0gZ2VuZXJhdGVGZW5jZVZhbHVlKGkpOwotICAgICAgICBmcmFtZS0+
c2V0QXJndW1lbnQoaSwgZmVuY2VWYWx1ZSk7Ci0gICAgfQotfQotCi1pbmxpbmUgdm9pZCBKU1N0
YWNrOjp2YWxpZGF0ZUZlbmNlKENhbGxGcmFtZSogZnJhbWUsIGNvbnN0IGNoYXIgKmZ1bmN0aW9u
LCBpbnQgbGluZU5vKQotewotICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbik7Ci0gICAgVU5VU0VE
X1BBUkFNKGxpbmVObyk7Ci0gICAgQVNTRVJUKCEhZnJhbWUtPnNjb3BlKCkpOwotICAgIFJlZ2lz
dGVyKiBzdGFydE9mRnJhbWUgPSBnZXRTdGFydE9mRnJhbWUoZnJhbWUpOwotICAgIHNpemVfdCBt
YXhJbmRleCA9IGZyYW1lLT5hcmdJbmRleEZvclJlZ2lzdGVyKHN0YXJ0T2ZGcmFtZSkgKyAxOwot
ICAgIHNpemVfdCBzdGFydEluZGV4ID0gbWF4SW5kZXggLSBGZW5jZVNpemU7Ci0gICAgZm9yIChz
aXplX3QgaSA9IHN0YXJ0SW5kZXg7IGkgPCBtYXhJbmRleDsgKytpKSB7Ci0gICAgICAgIEpTVmFs
dWUgZmVuY2VWYWx1ZSA9IGdlbmVyYXRlRmVuY2VWYWx1ZShpKTsKLSAgICAgICAgSlNWYWx1ZSBh
Y3R1YWxWYWx1ZSA9IGZyYW1lLT5nZXRBcmd1bWVudFVuc2FmZShpKTsKLSAgICAgICAgQVNTRVJU
KGZlbmNlVmFsdWUgPT0gYWN0dWFsVmFsdWUpOwotICAgIH0KLX0KLQotLy8gV2hlbiBkZWJ1Z2dp
bmcgdGhlIEpTU3RhY2ssIHdlIGluc3RhbGwgYmFkIHZhbHVlcyBhZnRlciB0aGUgZXh0ZW50IG9m
IHRoZQotLy8gdG9wQ2FsbEZyYW1lIGF0IHRoZSBlbmQgb2YgcHVzaEZyYW1lKCkgYW5kIHBvcEZy
YW1lKCkuIFRoZSBpbnRlbnRpb24gaXMKLS8vIHRvIHRyaWdnZXIgY3Jhc2hlcyBpbiB0aGUgZXZl
bnQgdGhhdCBtZW1vcnkgaW4gdGhpcyBzdXBwb3NlZGx5IHVudXNlZAotLy8gcmVnaW9uIGlzIHJl
YWQgYW5kIGNvbnN1bWVkIHdpdGhvdXQgcHJvcGVyIGluaXRpYWxpemF0aW9uLiBBZnRlciB0aGUg
dHJhcAotLy8gd29yZHMgYXJlIGluc3RhbGxlZCwgdGhlIHN0YWNrIGxvb2tzIGxpa2UgdGhpczoK
LS8vCi0vLyAgICAgICAgICAgICAgICAgICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAg
IHwKLS8vICAgICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
fAotLy8gICAgICAgICAgICAgICAgICAgICB8IEZyYW1lIEhlYWRlciBvZiBmcmFtZSAgICAgICB8
Ci0vLyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwK
LS8vICAgIHRvcENhbGxGcmFtZSAtLT4gfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAot
Ly8gICAgICAgICAgICAgICAgICAgICB8IExvY2FscyBvZiBmcmFtZSAgICAgICAgICAgICB8Ci0v
LyAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLS8v
ICAgICAgICAgICAgICAgICAgICAgfCAqKiogVHJhcCB3b3JkcyAqKiogICAgICAgICAgfAotLy8g
ICAgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0vLyAg
ICAgICAgICAgICAgICAgICAgIHwgVW51c2VkIHNwYWNlIC4uLiAgICAgICAgICAgIHwKLS8vICAg
ICAgICAgICAgICAgICAgICAgfCAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgfAotCi1pbmxp
bmUgdm9pZCBKU1N0YWNrOjppbnN0YWxsVHJhcHNBZnRlckZyYW1lKENhbGxGcmFtZSogZnJhbWUp
Ci17Ci0gICAgUmVnaXN0ZXIqIHRvcE9mRnJhbWUgPSBnZXRUb3BPZkZyYW1lKGZyYW1lKTsKLSAg
ICBjb25zdCBpbnQgc2l6ZU9mVHJhcCA9IDY0OwotICAgIGludDMyX3QqIHN0YXJ0T2ZUcmFwID0g
cmVpbnRlcnByZXRfY2FzdDxpbnQzMl90Kj4odG9wT2ZGcmFtZSk7Ci0gICAgaW50MzJfdCogZW5k
T2ZUcmFwID0gc3RhcnRPZlRyYXAgLSBzaXplT2ZUcmFwOwotICAgIGludDMyX3QqIGVuZE9mQ29t
bWl0ZWRNZW1vcnkgPSByZWludGVycHJldF9jYXN0PGludDMyX3QqPihtX2NvbW1pdEVuZCk7Ci0K
LSAgICAvLyBNYWtlIHN1cmUgd2UncmUgbm90IGV4Y2VlZGluZyB0aGUgYW1vdW50IG9mIGF2YWls
YWJsZSBtZW1vcnkgdG8gd3JpdGUgdG86Ci0gICAgaWYgKGVuZE9mVHJhcCA8IGVuZE9mQ29tbWl0
ZWRNZW1vcnkpCi0gICAgICAgIGVuZE9mVHJhcCA9IGVuZE9mQ29tbWl0ZWRNZW1vcnk7Ci0KLSAg
ICAvLyBMYXkgdGhlIHRyYXBzOgotICAgIGludDMyX3QqIHAgPSBzdGFydE9mVHJhcDsKLSAgICB3
aGlsZSAocCA+IGVuZE9mVHJhcCkKLSAgICAgICAgKnAtLSA9IDB4YWJhZGNhZmU7IC8vIEEgYmFk
IHdvcmQgdG8gdHJpZ2dlciBhIGNyYXNoIGlmIGRlcmVmJ2VkLgotfQotI2VuZGlmIC8vIEVOQUJM
RShERUJVR19KU1NUQUNLKQorI2VuZGlmIC8vIEVOQUJMRShMTElOVF9DX0xPT1ApCiAKIH0gLy8g
bmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvUHJvdG9DYWxsRnJhbWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL1Byb3RvQ2FsbEZyYW1lLmNwcAppbmRleCBhMzYwMDE0Mzc4MTEwZDNlNDcyMGY4MGVlYTMz
NzZjN2E4NDNkN2Y5Li5mMGUwMmJhNGU0NzZmOTljYzkxM2IwNDYyYWQyNzk1MDA2MDlmYTNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUHJvdG9DYWxsRnJh
bWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxG
cmFtZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJQcm90b0NhbGxGcmFtZS5oIgog
CiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKIAog
bmFtZXNwYWNlIEpTQyB7CiAKQEAgLTQzLDcgKzQ0LDkgQEAgdm9pZCBQcm90b0NhbGxGcmFtZTo6
aW5pdChDb2RlQmxvY2sqIGNvZGVCbG9jaywgSlNTY29wZSogc2NvcGUsIEpTT2JqZWN0KiBjYWxs
ZWUKICAgICAgICAgaWYgKHBhZGRlZEFyZ3NDb3VudCA8IG51bVBhcmFtZXRlcnMpCiAgICAgICAg
ICAgICBwYWRkZWRBcmdzQ291bnQgPSBudW1QYXJhbWV0ZXJzOwogICAgIH0KLSAgICB0aGlzLT5z
ZXRQYWRkZWRBcmdzQ291bnQocGFkZGVkQXJnc0NvdW50KTsKKyAgICAvLyBSb3VuZCB1cCBwYWRk
ZWRBcmdzQ291bnQgdG8ga2VlcCB0aGUgc3RhY2sgZnJhbWUgc2l6ZSBhbGlnbmVkLgorICAgIHBh
ZGRlZEFyZ3NDb3VudCA9IHJvdW5kQXJndW1lbnRDb3VudFRvQWxpZ25GcmFtZShwYWRkZWRBcmdz
Q291bnQpOworICAgIHRoaXMtPnNldFBhZGRlZEFyZ0NvdW50KHBhZGRlZEFyZ3NDb3VudCk7CiAg
ICAgdGhpcy0+Y2xlYXJDdXJyZW50VlBDKCk7CiAgICAgdGhpcy0+c2V0VGhpc1ZhbHVlKHRoaXNW
YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
UHJvdG9DYWxsRnJhbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90
b0NhbGxGcmFtZS5oCmluZGV4IGI3MTUxZWVmZmM1ZGNjYWEwMjAwOTc3MzA2YzcxYThlODdiYTk5
Y2IuLjU2MTI4NmIzZjliNTRiYTVhOTQ1YmIwYjA2ZDBhNWVjZDk0M2U2MzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9Qcm90b0NhbGxGcmFtZS5oCkBAIC01
Myw3ICs1Myw3IEBAIHN0cnVjdCBQcm90b0NhbGxGcmFtZSB7CiAgICAgaW50IGFyZ3VtZW50Q291
bnRJbmNsdWRpbmdUaGlzKCkgY29uc3QgeyByZXR1cm4gYXJnQ291bnRBbmRDb2RlT3JpZ2luVmFs
dWUucGF5bG9hZCgpOyB9CiAgICAgaW50IGFyZ3VtZW50Q291bnQoKSBjb25zdCB7IHJldHVybiBh
cmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygpIC0gMTsgfQogICAgIHZvaWQgc2V0QXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXMoaW50IGNvdW50KSB7IGFyZ0NvdW50QW5kQ29kZU9yaWdpblZhbHVl
LnBheWxvYWQoKSA9IGNvdW50OyB9Ci0gICAgdm9pZCBzZXRQYWRkZWRBcmdzQ291bnQoc2l6ZV90
IGFyZ0NvdW50KSB7IHBhZGRlZEFyZ0NvdW50ID0gYXJnQ291bnQ7IH0KKyAgICB2b2lkIHNldFBh
ZGRlZEFyZ0NvdW50KHNpemVfdCBhcmdDb3VudCkgeyBwYWRkZWRBcmdDb3VudCA9IGFyZ0NvdW50
OyB9CiAKICAgICB2b2lkIGNsZWFyQ3VycmVudFZQQygpIHsgYXJnQ291bnRBbmRDb2RlT3JpZ2lu
VmFsdWUudGFnKCkgPSAwOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwZWIx
YjY1Zjc3YzNlY2I3N2IwZTM5NWE0NjdlNGJhMWVkMTg2ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcApA
QCAtMCwwICsxLDEzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXJpdHlDaGVja0ZhaWxSZXR1
cm5UaHVua3MuaCIKKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJBc3NlbWJseUhlbHBl
cnMuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQu
aCIKKworbmFtZXNwYWNlIEpTQyB7CisKK0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOjpBcml0
eUNoZWNrRmFpbFJldHVyblRodW5rcygpCisgICAgOiBtX25leHRTaXplKDApCit7Cit9CisKK0Fy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOjp+QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MoKSB7
IH0KKworQ29kZUxvY2F0aW9uTGFiZWwqIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOjpyZXR1
cm5QQ3NGb3IoCisgICAgVk0mIHZtLCB1bnNpZ25lZCBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1
ZGluZ1RoaXMpCit7CisgICAgQVNTRVJUKG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhp
cyA+PSAxKTsKKyAgICAKKyAgICBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgPSBX
VEY6OnJvdW5kVXBUb011bHRpcGxlT2YoCisgICAgICAgIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJz
KCksIG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcyk7CisgICAgCisgICAgeworICAg
ICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAgICBpZiAobnVt
RXhwZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzIDwgbV9uZXh0U2l6ZSkKKyAgICAgICAgICAg
IHJldHVybiBtX3JldHVyblBDQXJyYXlzLmxhc3QoKS5nZXQoKTsKKyAgICB9CisgICAgCisgICAg
QVNTRVJUKCFpc0NvbXBpbGF0aW9uVGhyZWFkKCkpOworICAgIAorICAgIG51bUV4cGVjdGVkQXJn
dW1lbnRzSW5jbHVkaW5nVGhpcyA9IHN0ZDo6bWF4KAorICAgICAgICBudW1FeHBlY3RlZEFyZ3Vt
ZW50c0luY2x1ZGluZ1RoaXMsCisgICAgICAgIG1fbmV4dFNpemUgKiAyKTsKKyAgICAKKyAgICBB
c3NlbWJseUhlbHBlcnMgaml0KCZ2bSwgMCk7CisgICAgCisgICAgVmVjdG9yPEFzc2VtYmx5SGVs
cGVyczo6TGFiZWw+IGxhYmVsczsKKyAgICAKKyAgICBmb3IgKHVuc2lnbmVkIHNpemUgPSBtX25l
eHRTaXplOyBzaXplIDw9IG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpczsgc2l6ZSAr
PSBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpKSB7CisgICAgICAgIGxhYmVscy5hcHBlbmQoaml0
LmxhYmVsKCkpOworICAgICAgICAKKyAgICAgICAgaml0LmxvYWQzMigKKyAgICAgICAgICAgIEFz
c2VtYmx5SGVscGVyczo6QWRkcmVzcygKKyAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6
OnN0YWNrUG9pbnRlclJlZ2lzdGVyLAorICAgICAgICAgICAgICAgIChKU1N0YWNrOjpBcmd1bWVu
dENvdW50IC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpICogc2l6ZW9mKFJlZ2lzdGVy
KSArCisgICAgICAgICAgICAgICAgUGF5bG9hZE9mZnNldCksCisgICAgICAgICAgICBHUFJJbmZv
OjpyZWdUNCk7CisgICAgICAgIGppdC5hZGQzMigKKyAgICAgICAgICAgIEFzc2VtYmx5SGVscGVy
czo6VHJ1c3RlZEltbTMyKAorICAgICAgICAgICAgICAgIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRl
clNpemUgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSArIHNpemUgLSAxKSwKKyAgICAg
ICAgICAgIEdQUkluZm86OnJlZ1Q0LCBHUFJJbmZvOjpyZWdUMik7CisgICAgICAgIGppdC5sc2hp
ZnQzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigzKSwgR1BSSW5mbzo6cmVnVDIpOwor
ICAgICAgICBqaXQuYWRkUHRyKEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIs
IEdQUkluZm86OnJlZ1QyKTsKKyAgICAgICAgaml0LmxvYWRQdHIoR1BSSW5mbzo6cmVnVDIsIEdQ
UkluZm86OnJlZ1QyKTsKKyAgICAgICAgCisgICAgICAgIGppdC5hZGRQdHIoCisgICAgICAgICAg
ICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihzaXplICogc2l6ZW9mKFJlZ2lzdGVyKSks
CisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAg
ICAgICAgCisgICAgICAgIC8vIFRodW5rcyBsaWtlIG91cnMgd2FudCB0byB1c2UgdGhlIHJldHVy
biBQQyB0byBmaWd1cmUgb3V0IHdoZXJlIHRoaW5ncworICAgICAgICAvLyB3ZXJlIHNhdmVkLiBT
bywgd2UgcGF5IGl0IGZvcndhcmQuCisgICAgICAgIGppdC5zdG9yZTMyKAorICAgICAgICAgICAg
R1BSSW5mbzo6cmVnVDQsCisgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoCisg
ICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwKKyAg
ICAgICAgICAgICAgICAoSlNTdGFjazo6QXJndW1lbnRDb3VudCAtIEpTU3RhY2s6OkNhbGxlckZy
YW1lQW5kUENTaXplKSAqIHNpemVvZihSZWdpc3RlcikgKworICAgICAgICAgICAgICAgIFBheWxv
YWRPZmZzZXQpKTsKKyAgICAgICAgCisgICAgICAgIGppdC5qdW1wKEdQUkluZm86OnJlZ1QyKTsK
KyAgICB9CisgICAgCisgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKHZtLCAmaml0LCBHTE9CQUxf
VEhVTktfSUQpOworICAgIAorICAgIHVuc2lnbmVkIHJldHVyblBDc1NpemUgPSBudW1FeHBlY3Rl
ZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgLyBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpICsgMTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29kZUxvY2F0aW9uTGFiZWxbXT4gcmV0dXJuUENzID0KKyAg
ICAgICAgc3RkOjptYWtlX3VuaXF1ZTxDb2RlTG9jYXRpb25MYWJlbFtdPihyZXR1cm5QQ3NTaXpl
KTsKKyAgICBmb3IgKHVuc2lnbmVkIHNpemUgPSAwOyBzaXplIDw9IG51bUV4cGVjdGVkQXJndW1l
bnRzSW5jbHVkaW5nVGhpczsgc2l6ZSArPSBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpKSB7Cisg
ICAgICAgIHVuc2lnbmVkIGluZGV4ID0gc2l6ZSAvIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCk7
CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGluZGV4IDwgcmV0dXJuUENzU2l6ZSk7CisgICAgICAg
IGlmIChzaXplIDwgbV9uZXh0U2l6ZSkKKyAgICAgICAgICAgIHJldHVyblBDc1tpbmRleF0gPSBt
X3JldHVyblBDQXJyYXlzLmxhc3QoKVtpbmRleF07CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHJldHVyblBDc1tpbmRleF0gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2YobGFiZWxzWyhzaXplIC0g
bV9uZXh0U2l6ZSkgLyBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpXSk7CisgICAgfQorCisgICAg
Q29kZUxvY2F0aW9uTGFiZWwqIHJlc3VsdCA9IHJldHVyblBDcy5nZXQoKTsKKworICAgIHsKKyAg
ICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgbV9yZXR1
cm5QQ0FycmF5cy5hcHBlbmQoc3RkOjptb3ZlKHJldHVyblBDcykpOworICAgICAgICBtX3JlZnMu
YXBwZW5kKEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgKCJBcml0eSBjaGVjayBmYWlsIHJldHVy
biB0aHVua3MgZm9yIHVwIHRvIG51bUFyZ3MgPSAldSIsIG51bUV4cGVjdGVkQXJndW1lbnRzSW5j
bHVkaW5nVGhpcykpKTsKKyAgICAgICAgbV9uZXh0U2l6ZSA9IG51bUV4cGVjdGVkQXJndW1lbnRz
SW5jbHVkaW5nVGhpcyArIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCk7CisgICAgfQorICAgIAor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0NvZGVMb2NhdGlvbkxhYmVsIEFyaXR5Q2hlY2tGYWls
UmV0dXJuVGh1bmtzOjpyZXR1cm5QQ0ZvcihWTSYgdm0sIHVuc2lnbmVkIHNsb3RzVG9BZGQpCit7
CisgICAgcmV0dXJuIHJldHVyblBDc0Zvcih2bSwgc2xvdHNUb0FkZClbc2xvdHNUb0FkZCAvIHN0
YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCldOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2Vu
ZGlmIC8vIEVOQUJMRShKSVQpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmQwMzQxMzkxY2M0
MjU0N2VhMDYxYzRiOTEwNDY3NzQ1NzQ0NmYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oCkBAIC0wLDAgKzEs
NTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rc19oCisjZGVmaW5lIEFyaXR5Q2hlY2tGYWls
UmV0dXJuVGh1bmtzX2gKKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJDb2RlTG9jYXRp
b24uaCIKKyNpbmNsdWRlICJDb25jdXJyZW50SklUTG9jay5oIgorI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBBcml0eUNoZWNrRmFpbFJldHVyblRo
dW5rcyB7CitwdWJsaWM6CisgICAgQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MoKTsKKyAgICB+
QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MoKTsKKyAgICAKKyAgICAvLyBSZXR1cm5zIGEgcG9p
bnRlciB0byBhbiBhcnJheSBvZiByZXR1cm4gbGFiZWxzIGluZGV4ZWQgYnkgbWlzc2luZ0FyZ3Mu
CisgICAgQ29kZUxvY2F0aW9uTGFiZWwqIHJldHVyblBDc0ZvcihWTSYsIHVuc2lnbmVkIG51bUV4
cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcyk7CisgICAgCisgICAgQ29kZUxvY2F0aW9uTGFi
ZWwgcmV0dXJuUENGb3IoVk0mLCB1bnNpZ25lZCBzbG90c1RvQWRkKTsKKyAgICAKK3ByaXZhdGU6
CisgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDb2RlTG9jYXRpb25MYWJlbFtdPj4gbV9yZXR1
cm5QQ0FycmF5czsKKyAgICB1bnNpZ25lZCBtX25leHRTaXplOworICAgIFZlY3RvcjxNYWNyb0Fz
c2VtYmxlckNvZGVSZWY+IG1fcmVmczsKKyAgICBDb25jdXJyZW50SklUTG9jayBtX2xvY2s7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCisKKyNlbmRp
ZiAvLyBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rc19oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAppbmRleCBkZGYxZDYzNTkyMWJkNWQ1MzIzZmZl
Y2M4MWE3ZmRmODM2MmJjNjM2Li5kZDM2OTE3NWVlYzMwYmU0ZmJhODEzMTk1NjlkZWY3YTQ0OTlj
Yzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVy
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3Bw
CkBAIC0xMTAsNiArMTEwLDE3IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc0Nl
bGwoR1BSUmVnIGdwcikKICAgICBicmVha3BvaW50KCk7CiAgICAgY2hlY2tDZWxsLmxpbmsodGhp
cyk7CiB9CisKK3ZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRUYWdzSW5QbGFjZSgpCit7
CisgICAgSnVtcCBvayA9IGJyYW5jaDY0KEVxdWFsLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVn
aXN0ZXIsIFRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSk7CisgICAgYnJlYWtwb2ludCgpOwor
ICAgIG9rLmxpbmsodGhpcyk7CisgICAgCisgICAgb2sgPSBicmFuY2g2NChFcXVhbCwgR1BSSW5m
bzo6dGFnTWFza1JlZ2lzdGVyLCBUcnVzdGVkSW1tNjQoVGFnTWFzaykpOworICAgIGJyZWFrcG9p
bnQoKTsKKyAgICBvay5saW5rKHRoaXMpOworfQogI2VsaWYgVVNFKEpTVkFMVUUzMl82NCkKIHZv
aWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc0ludDMyKEdQUlJlZyBncHIpCiB7CkBAIC0x
NDUsNiArMTU2LDEwIEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc0NlbGwoR1BS
UmVnIGdwcikKICAgICBicmVha3BvaW50KCk7CiAgICAgY2hlY2tDZWxsLmxpbmsodGhpcyk7CiB9
CisKK3ZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRUYWdzSW5QbGFjZSgpCit7Cit9CiAj
ZW5kaWYgLy8gVVNFKEpTVkFMVUUzMl82NCkKIAogdm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFz
c2VydEhhc1ZhbGlkQ2FsbEZyYW1lKCkKQEAgLTE2MCw2ICsxNzUsMTMgQEAgdm9pZCBBc3NlbWJs
eUhlbHBlcnM6OmppdEFzc2VydElzTnVsbChHUFJSZWcgZ3ByKQogICAgIGJyZWFrcG9pbnQoKTsK
ICAgICBjaGVja051bGwubGluayh0aGlzKTsKIH0KKwordm9pZCBBc3NlbWJseUhlbHBlcnM6Ompp
dEFzc2VydEFyZ3VtZW50Q291bnRTYW5lKCkKK3sKKyAgICBKdW1wIG9rID0gYnJhbmNoMzIoQmVs
b3csIHBheWxvYWRGb3IoSlNTdGFjazo6QXJndW1lbnRDb3VudCksIFRydXN0ZWRJbW0zMigxMDAw
MDAwMCkpOworICAgIGJyZWFrcG9pbnQoKTsKKyAgICBvay5saW5rKHRoaXMpOworfQogI2VuZGlm
IC8vICFBU1NFUlRfRElTQUJMRUQKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRleCAzNmQ1ODMxMzkxMzQ1NmQ3NDE0
MTA3NTUxODM5N2ZmMmI2ODc0MTliLi42NWNiNzM5YTM1YzY3OTdiMzA2YjNkNWY5MDFlNDU5MjIx
NTVkMjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVs
cGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgK
QEAgLTU4LDggKzU4LDM2IEBAIHB1YmxpYzoKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaygpIHsg
cmV0dXJuIG1fY29kZUJsb2NrOyB9CiAgICAgVk0qIHZtKCkgeyByZXR1cm4gbV92bTsgfQogICAg
IEFzc2VtYmxlclR5cGVfVCYgYXNzZW1ibGVyKCkgeyByZXR1cm4gbV9hc3NlbWJsZXI7IH0KLSAg
ICAKKworICAgIHZvaWQgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKQorICAgIHsKKyAgICAg
ICAgLy8gVGhpcyBjaGVjayBpcyBib3RoIHVubmVlZGVkIGFuZCBoYXJkZXIgdG8gd3JpdGUgY29y
cmVjdGx5IGZvciBBUk02NAorI2lmICFkZWZpbmVkKE5ERUJVRykgJiYgIUNQVShBUk02NCkKKyAg
ICAgICAgSnVtcCBzdGFja1BvaW50ZXJBbGlnbmVkID0gYnJhbmNoVGVzdFB0cihaZXJvLCBzdGFj
a1BvaW50ZXJSZWdpc3RlciwgVHJ1c3RlZEltbTMyKDB4ZikpOworICAgICAgICBicmVha3BvaW50
KCk7CisgICAgICAgIHN0YWNrUG9pbnRlckFsaWduZWQubGluayh0aGlzKTsKKyNlbmRpZgorICAg
IH0KKwogI2lmIENQVShYODZfNjQpIHx8IENQVShYODYpCisgICAgc2l6ZV90IHByb2xvZ3VlU3Rh
Y2tQb2ludGVyRGVsdGEoKQorICAgIHsKKyAgICAgICAgLy8gUHJvbG9ndWUgb25seSBzYXZlcyB0
aGUgZnJhbWVQb2ludGVyUmVnaXN0ZXIKKyAgICAgICAgcmV0dXJuIHNpemVvZih2b2lkKik7Cisg
ICAgfQorCisgICAgdm9pZCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpCisgICAgeworICAgICAgICBw
dXNoKGZyYW1lUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgbW92ZShzdGFja1BvaW50ZXJSZWdp
c3RlciwgZnJhbWVQb2ludGVyUmVnaXN0ZXIpOworICAgIH0KKworICAgIHZvaWQgZW1pdEZ1bmN0
aW9uRXBpbG9ndWUoKQorICAgIHsKKyAgICAgICAgbW92ZShmcmFtZVBvaW50ZXJSZWdpc3Rlciwg
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBwb3AoZnJhbWVQb2ludGVyUmVnaXN0ZXIp
OworICAgIH0KKwogICAgIHZvaWQgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUlJl
ZyByZWcpCiAgICAgewogICAgICAgICBwb3AocmVnKTsKQEAgLTc3LDYgKzEwNSwyNCBAQCBwdWJs
aWM6CiAjZW5kaWYgLy8gQ1BVKFg4Nl82NCkgfHwgQ1BVKFg4NikKIAogI2lmIENQVShBUk0pIHx8
IENQVShBUk02NCkKKyAgICBzaXplX3QgcHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSgpCisgICAg
eworICAgICAgICAvLyBQcm9sb2d1ZSBzYXZlcyB0aGUgZnJhbWVQb2ludGVyUmVnaXN0ZXIgYW5k
IGxpbmtSZWdpc3RlcgorICAgICAgICByZXR1cm4gMiAqIHNpemVvZih2b2lkKik7CisgICAgfQor
CisgICAgdm9pZCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpCisgICAgeworICAgICAgICBwdXNoUGFp
cihmcmFtZVBvaW50ZXJSZWdpc3RlciwgbGlua1JlZ2lzdGVyKTsKKyAgICAgICAgbW92ZShzdGFj
a1BvaW50ZXJSZWdpc3RlciwgZnJhbWVQb2ludGVyUmVnaXN0ZXIpOworICAgIH0KKworICAgIHZv
aWQgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKQorICAgIHsKKyAgICAgICAgbW92ZShmcmFtZVBvaW50
ZXJSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgICAgICBwb3BQYWlyKGZyYW1l
UG9pbnRlclJlZ2lzdGVyLCBsaW5rUmVnaXN0ZXIpOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJ
TkUgdm9pZCBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoUmVnaXN0ZXJJRCByZWcpCiAg
ICAgewogICAgICAgICBtb3ZlKGxpbmtSZWdpc3RlciwgcmVnKTsKQEAgLTk0LDYgKzE0MCwxMiBA
QCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIENQVShNSVBTKQorICAgIHNpemVfdCBwcm9sb2d1ZVN0
YWNrUG9pbnRlckRlbHRhKCkKKyAgICB7CisgICAgICAgIC8vIFByb2xvZ3VlIHNhdmVzIHRoZSBm
cmFtZVBvaW50ZXJSZWdpc3RlciBhbmQgcmV0dXJuQWRkcmVzc1JlZ2lzdGVyCisgICAgICAgIHJl
dHVybiAyICogc2l6ZW9mKHZvaWQqKTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQg
cHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKFJlZ2lzdGVySUQgcmVnKQogICAgIHsKICAg
ICAgICAgbW92ZShyZXR1cm5BZGRyZXNzUmVnaXN0ZXIsIHJlZyk7CkBAIC0xMTEsNiArMTYzLDEy
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgQ1BVKFNINCkKKyAgICBzaXplX3QgcHJvbG9ndWVT
dGFja1BvaW50ZXJEZWx0YSgpCisgICAgeworICAgICAgICAvLyBQcm9sb2d1ZSBzYXZlcyB0aGUg
ZnJhbWVQb2ludGVyUmVnaXN0ZXIgYW5kIGxpbmsgcmVnaXN0ZXIKKyAgICAgICAgcmV0dXJuIDIg
KiBzaXplb2Yodm9pZCopOworICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBwcmVzZXJ2
ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoUmVnaXN0ZXJJRCByZWcpCiAgICAgewogICAgICAgICBt
X2Fzc2VtYmxlci5zdHNwcihyZWcpOwpAQCAtMTUwLDEwICsyMDgsNiBAQCBwdWJsaWM6CiAgICAg
ICAgIHN0b3JlUHRyKGZyb20sIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENh
bGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSkpOwogICAgIH0KIAotICAgIHZvaWQgZW1pdEdl
dFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlcklEIHRvKQotICAgIHsKLSAg
ICAgICAgbG9hZFB0cihBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJh
bWU6OnJldHVyblBDT2Zmc2V0KCkpLCB0byk7Ci0gICAgfQogICAgIHZvaWQgZW1pdFB1dFJldHVy
blBDVG9DYWxsRnJhbWVIZWFkZXIoUmVnaXN0ZXJJRCBmcm9tKQogICAgIHsKICAgICAgICAgc3Rv
cmVQdHIoZnJvbSwgQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1l
OjpyZXR1cm5QQ09mZnNldCgpKSk7CkBAIC0xNjMsNiArMjE3LDI5IEBAIHB1YmxpYzoKICAgICAg
ICAgc3RvcmVQdHIoZnJvbSwgQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2Fs
bEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7CiAgICAgfQogCisgICAgLy8gZW1pdFB1dFRvQ2Fs
bEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUoKSBhbmQgcmVsYXRlZCBhcmUgdXNlZCB0byBhY2Nl
c3MgY2FsbGVlIGZyYW1lIGhlYWRlcgorICAgIC8vIGZpZWxkcyBiZWZvcmUgdGhlIGNvZGUgZnJv
bSBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpIGhhcyBleGVjdXRlZC4KKyAgICAvLyBGaXJzdCwgdGhl
IGFjY2VzcyBpcyB2aWEgdGhlIHN0YWNrIHBvaW50ZXIuIFNlY29uZCwgdGhlIGFkZHJlc3MgY2Fs
Y3VsYXRpb24gbXVzdCBhbHNvIHRha2UKKyAgICAvLyBpbnRvIGFjY291bnQgdGhhdCB0aGUgc3Rh
Y2sgcG9pbnRlciBtYXkgbm90IGhhdmUgYmVlbiBhZGp1c3RlZCBkb3duIGZvciB0aGUgcmV0dXJu
IFBDIGFuZC9vcgorICAgIC8vIGNhbGxlcidzIGZyYW1lIHBvaW50ZXIuIE9uIHNvbWUgcGxhdGZv
cm1zLCB0aGUgY2FsbGVlIGlzIHJlc3BvbnNpYmxlIGZvciBwdXNoaW5nIHRoZQorICAgIC8vICJs
aW5rIHJlZ2lzdGVyIiBjb250YWluaW5nIHRoZSByZXR1cm4gYWRkcmVzcyBpbiB0aGUgZnVuY3Rp
b24gcHJvbG9ndWUuCisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICB2b2lkIGVtaXRQdXRUb0NhbGxG
cmFtZUhlYWRlckJlZm9yZVByb2xvZ3VlKEdQUlJlZyBmcm9tLCBKU1N0YWNrOjpDYWxsRnJhbWVI
ZWFkZXJFbnRyeSBlbnRyeSkKKyAgICB7CisgICAgICAgIHN0b3JlUHRyKGZyb20sIEFkZHJlc3Mo
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIGVudHJ5ICogc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXpl
b2YoUmVnaXN0ZXIpKSAtIHByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEoKSkpOworICAgIH0KKyNl
bHNlCisgICAgdm9pZCBlbWl0UHV0UGF5bG9hZFRvQ2FsbEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9n
dWUoR1BSUmVnIGZyb20sIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlckVudHJ5IGVudHJ5KQorICAg
IHsKKyAgICAgICAgc3RvcmVQdHIoZnJvbSwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3Rlciwg
ZW50cnkgKiBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpIC0gcHJvbG9n
dWVTdGFja1BvaW50ZXJEZWx0YSgpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2Ny
aXB0b3IsIGFzQml0cy5wYXlsb2FkKSkpOworICAgIH0KKworICAgIHZvaWQgZW1pdFB1dFRhZ1Rv
Q2FsbEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUoVHJ1c3RlZEltbTMyIHRhZywgSlNTdGFjazo6
Q2FsbEZyYW1lSGVhZGVyRW50cnkgZW50cnkpCisgICAgeworICAgICAgICBzdG9yZVB0cih0YWcs
IEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIGVudHJ5ICogc3RhdGljX2Nhc3Q8cHRyZGlm
Zl90PihzaXplb2YoUmVnaXN0ZXIpKSAtIHByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEoKSArIE9C
SkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSkpOworICAg
IH0KKyNlbmRpZgorCiAgICAgSnVtcCBicmFuY2hJZk5vdENlbGwoR1BSUmVnIHJlZykKICAgICB7
CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTE5NCw3ICsyNzEsNyBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIEFkZHJlc3MgdGFnRm9yKFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIpCiAgICAg
ewogICAgICAgICBBU1NFUlQodmlydHVhbFJlZ2lzdGVyLmlzVmFsaWQoKSk7Ci0gICAgICAgIHJl
dHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0ZXIu
b2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1
ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKTsKKyAgICAgICAgcmV0dXJuIEFkZHJlc3MoR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQoKSAqIHNpemVvZihS
ZWdpc3RlcikgKyBUYWdPZmZzZXQpOwogICAgIH0KICAgICBzdGF0aWMgQWRkcmVzcyB0YWdGb3Io
aW50IG9wZXJhbmQpCiAgICAgewpAQCAtMjA0LDcgKzI4MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgQWRkcmVzcyBwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIpCiAg
ICAgewogICAgICAgICBBU1NFUlQodmlydHVhbFJlZ2lzdGVyLmlzVmFsaWQoKSk7Ci0gICAgICAg
IHJldHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0
ZXIub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRW
YWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSk7CisgICAgICAgIHJldHVybiBBZGRyZXNz
KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0KCkgKiBz
aXplb2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCk7CiAgICAgfQogICAgIHN0YXRpYyBBZGRy
ZXNzIHBheWxvYWRGb3IoaW50IG9wZXJhbmQpCiAgICAgewpAQCAtMjk4LDYgKzM3NSw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIGppdEFzc2VydElzQ2VsbChHUFJSZWcpOwogICAgIHZvaWQgaml0QXNz
ZXJ0SGFzVmFsaWRDYWxsRnJhbWUoKTsKICAgICB2b2lkIGppdEFzc2VydElzTnVsbChHUFJSZWcp
OworICAgIHZvaWQgaml0QXNzZXJ0VGFnc0luUGxhY2UoKTsKKyAgICB2b2lkIGppdEFzc2VydEFy
Z3VtZW50Q291bnRTYW5lKCk7CiAjZWxzZQogICAgIHZvaWQgaml0QXNzZXJ0SXNJbnQzMihHUFJS
ZWcpIHsgfQogICAgIHZvaWQgaml0QXNzZXJ0SXNKU0ludDMyKEdQUlJlZykgeyB9CkBAIC0zMDYs
NiArMzg1LDggQEAgcHVibGljOgogICAgIHZvaWQgaml0QXNzZXJ0SXNDZWxsKEdQUlJlZykgeyB9
CiAgICAgdm9pZCBqaXRBc3NlcnRIYXNWYWxpZENhbGxGcmFtZSgpIHsgfQogICAgIHZvaWQgaml0
QXNzZXJ0SXNOdWxsKEdQUlJlZykgeyB9CisgICAgdm9pZCBqaXRBc3NlcnRUYWdzSW5QbGFjZSgp
IHsgfQorICAgIHZvaWQgaml0QXNzZXJ0QXJndW1lbnRDb3VudFNhbmUoKSB7IH0KICNlbmRpZgog
CiAgICAgLy8gVGhlc2UgbWV0aG9kcyBjb252ZXJ0IGJldHdlZW4gZG91YmxlcywgYW5kIGRvdWJs
ZXMgYm94ZWQgYW5kIEpTVmFsdWVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxw
ZXJzLmgKaW5kZXggODM2NTczYmUxZGY4MDc5MmZlODMwMGJiNTAwNzJmOTZhMzJhNDE5MC4uZDRh
NzVlY2EyMTY4MjU3ZWZiZjUwODY4ZGZhNmY5M2IwMjdlNWE0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0NDYWxsSGVscGVycy5oCkBAIC05NSw2ICs5NSwxMyBAQCBwdWJsaWM6CiAgICAg
ICAgIGFkZENhbGxBcmd1bWVudChhcmcyKTsKICAgICB9CiAgICAgCisgICAgQUxXQVlTX0lOTElO
RSB2b2lkIHNldHVwQXJndW1lbnRzKFRydXN0ZWRJbW1QdHIgYXJnMSwgR1BSUmVnIGFyZzIpCisg
ICAgeworICAgICAgICByZXNldENhbGxBcmd1bWVudHMoKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3Vt
ZW50KGFyZzEpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMik7CisgICAgfQorICAgIAog
ICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50cyhHUFJSZWcgYXJnMSwgR1BSUmVn
IGFyZzIsIEdQUlJlZyBhcmczKQogICAgIHsKICAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRzKCk7
CkBAIC05MzksNiArOTQ2LDEyIEBAIHB1YmxpYzoKICAgICAgICAgbW92ZShhcmcxLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApOwogICAgIH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFy
Z3VtZW50cyhUcnVzdGVkSW1tUHRyIGFyZzEsIEdQUlJlZyBhcmcyKQorICAgIHsKKyAgICAgICAg
bW92ZShhcmcyLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBtb3ZlKGFyZzEsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgfQorICAgIAogICAgIEFMV0FZU19JTkxJTkUgdm9p
ZCBzZXR1cEFyZ3VtZW50cyhHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIpCiAgICAgewogICAgICAg
ICBzZXR1cFR3b1N0dWJBcmdzR1BSPEdQUkluZm86OmFyZ3VtZW50R1BSMCwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIxPihhcmcxLCBhcmcyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9F
eGVjdXRhYmxlQWxsb2NhdG9yLmgKaW5kZXggMDFiZTdjMWFhZWQ2MTM3NTBkNzg5Y2ZlZmU5YTI5
MDMwMTRjYmZjYS4uNTVmOWU3NzQ2NGEwMDkxM2JmMjkyNzBjZmMxYmI2ZTk1NDc0MGNjMiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgKQEAg
LTc4LDIxICs3OCw2IEBAIHZvaWQgcmVsZWFzZUV4ZWN1dGFibGVNZW1vcnkoVk0mKTsKIAogc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGppdEFsbG9jYXRpb25HcmFudWxlID0gMzI7CiAKLWlubGluZSBz
aXplX3Qgcm91bmRVcEFsbG9jYXRpb25TaXplKHNpemVfdCByZXF1ZXN0LCBzaXplX3QgZ3JhbnVs
YXJpdHkpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlQoKHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90
Pjo6bWF4KCkgLSBncmFudWxhcml0eSkgPiByZXF1ZXN0KTsKLSAgICAKLSAgICAvLyBSb3VuZCB1
cCB0byBuZXh0IHBhZ2UgYm91bmRhcnkKLSAgICBzaXplX3Qgc2l6ZSA9IHJlcXVlc3QgKyAoZ3Jh
bnVsYXJpdHkgLSAxKTsKLSAgICBzaXplID0gc2l6ZSAmIH4oZ3JhbnVsYXJpdHkgLSAxKTsKLSAg
ICBBU1NFUlQoc2l6ZSA+PSByZXF1ZXN0KTsKLSAgICByZXR1cm4gc2l6ZTsKLX0KLQotfQotCi1u
YW1lc3BhY2UgSlNDIHsKLQogdHlwZWRlZiBXVEY6Ok1ldGFBbGxvY2F0b3JIYW5kbGUgRXhlY3V0
YWJsZU1lbW9yeUhhbmRsZTsKIAogI2lmIEVOQUJMRShBU1NFTUJMRVIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5jcHAKaW5kZXggYzM1MDhiMDFkNzA0NDBkOTliMzIxNzE2Nzc4MzRiNDNhYzgwOGM1
OC4uMjg2MTc0NGEwNWZhZDE5NWM2Mjc1YWE0MDE1MGYzNGJkN2Y4NmRmNCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmNwcApAQCAtMzQsNiArMzQsNyBAQAogSlNDOjpNYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbjo6U1NFMkNoZWNrU3RhdGUgSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c19z
c2UyQ2hlY2tTdGF0ZSA9IE5vdENoZWNrZWRTU0UyOwogI2VuZGlmCiAKKyNpbmNsdWRlICJBcml0
eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1
ZGUgIkRGR0NhcGFiaWxpdGllcy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCkBAIC00Miwx
MSArNDMsMTMgQEAgSlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6U1NFMkNoZWNrU3RhdGUg
SlNDOjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c19zc2UKICNpbmNsdWRlICJKU0FycmF5Lmgi
CiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKKyNpbmNs
dWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIk9wZXJhdGlv
bnMuaCIKICNpbmNsdWRlICJSZXBhdGNoQnVmZmVyLmgiCiAjaW5jbHVkZSAiUmVzdWx0VHlwZS5o
IgogI2luY2x1ZGUgIlNhbXBsaW5nVG9vbC5oIgogI2luY2x1ZGUgIlNsb3dQYXRoQ2FsbC5oIgor
I2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAjaW5jbHVkZSA8d3RmL0NyeXB0b2dyYXBoaWNh
bGx5UmFuZG9tTnVtYmVyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC05OCw2ICsxMDEs
NyBAQCB2b2lkIEpJVDo6ZW1pdEVudGVyT3B0aW1pemF0aW9uQ2hlY2soKQogICAgIEFTU0VSVCgh
bV9ieXRlY29kZU9mZnNldCk7CiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25PcHRpbWl6ZSwg
bV9ieXRlY29kZU9mZnNldCk7CiAgICAgc2tpcE9wdGltaXplLmFwcGVuZChicmFuY2hUZXN0UHRy
KFplcm8sIHJldHVyblZhbHVlR1BSKSk7CisgICAgbW92ZShyZXR1cm5WYWx1ZUdQUjIsIHN0YWNr
UG9pbnRlclJlZ2lzdGVyKTsKICAgICBqdW1wKHJldHVyblZhbHVlR1BSKTsKICAgICBza2lwT3B0
aW1pemUubGluayh0aGlzKTsKIH0KQEAgLTEyOCw2ICsxMzIsOSBAQCB2b2lkIEpJVDo6ZW1pdEVu
dGVyT3B0aW1pemF0aW9uQ2hlY2soKQogCiB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFz
cygpCiB7CisgICAgaml0QXNzZXJ0VGFnc0luUGxhY2UoKTsKKyAgICBqaXRBc3NlcnRBcmd1bWVu
dENvdW50U2FuZSgpOworICAgIAogICAgIEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbnNCZWdpbiA9
IG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpOwogICAgIHVuc2lnbmVkIGluc3Ry
dWN0aW9uQ291bnQgPSBtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpOwogCkBAIC00
OTYsOCArNTAzLDcgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSVRD
b21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCiAgICAgaWYgKG1fcmFuZG9tR2VuZXJhdG9yLmdldFVp
bnQzMigpICYgMSkKICAgICAgICAgbm9wKCk7CiAKLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NB
ZnRlckNhbGwocmVnVDIpOwotICAgIGVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKHJl
Z1QyKTsKKyAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogICAgIGVtaXRQdXRJbW1lZGlhdGVU
b0NhbGxGcmFtZUhlYWRlcihtX2NvZGVCbG9jaywgSlNTdGFjazo6Q29kZUJsb2NrKTsKIAogICAg
IExhYmVsIGJlZ2luTGFiZWwodGhpcyk7CkBAIC01MDcsNyArNTEzLDcgQEAgQ29tcGlsYXRpb25S
ZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCiAg
ICAgc2FtcGxlSW5zdHJ1Y3Rpb24obV9jb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCkp
OwogI2VuZGlmCiAKLSAgICBKdW1wIHN0YWNrQ2hlY2s7CisgICAgSnVtcCBzdGFja092ZXJmbG93
OwogICAgIGlmIChtX2NvZGVCbG9jay0+Y29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUpIHsKICAg
ICAgICAgQVNTRVJUKG1fYnl0ZWNvZGVPZmZzZXQgPT0gKHVuc2lnbmVkKS0xKTsKICAgICAgICAg
aWYgKHNob3VsZEVtaXRQcm9maWxpbmcoKSkgewpAQCAtNTI3LDEyICs1MzMsMTMgQEAgQ29tcGls
YXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZv
cnQpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBhZGRQdHIoVHJ1c3RlZElt
bTMyKHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGZyYW1lUmVnaXN0ZXJDb3VudEZvcihtX2NvZGVC
bG9jaykpLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBy
ZWdUMSk7Ci0gICAgICAgIHN0YWNrQ2hlY2sgPSBicmFuY2hQdHIoQWJvdmUsIEFic29sdXRlQWRk
cmVzcyhtX3ZtLT5hZGRyZXNzT2ZKU1N0YWNrTGltaXQoKSksIHJlZ1QxKTsKKyAgICAgICAgYWRk
UHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6
ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMSk7CisgICAgICAgIHN0YWNr
T3ZlcmZsb3cgPSBicmFuY2hQdHIoQWJvdmUsIEFic29sdXRlQWRkcmVzcyhtX3ZtLT5hZGRyZXNz
T2ZKU1N0YWNrTGltaXQoKSksIHJlZ1QxKTsKICAgICB9CiAKLSAgICBMYWJlbCBmdW5jdGlvbkJv
ZHkgPSBsYWJlbCgpOwotICAgIAorICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVy
T2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdp
c3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25t
ZW50KCk7CisKICAgICBwcml2YXRlQ29tcGlsZU1haW5QYXNzKCk7CiAgICAgcHJpdmF0ZUNvbXBp
bGVMaW5rUGFzcygpOwogICAgIHByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCk7CkBAIC01NDIsMTgg
KzU0OSwxNSBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJVENvbXBp
bGF0aW9uRWZmb3J0IGVmZm9ydCkKIAogICAgIExhYmVsIGFyaXR5Q2hlY2s7CiAgICAgaWYgKG1f
Y29kZUJsb2NrLT5jb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSkgewotICAgICAgICBzdGFja0No
ZWNrLmxpbmsodGhpcyk7CisgICAgICAgIHN0YWNrT3ZlcmZsb3cubGluayh0aGlzKTsKICAgICAg
ICAgbV9ieXRlY29kZU9mZnNldCA9IDA7Ci0gICAgICAgIGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZy
YW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb25TdGFja0NoZWNrLCBtX2NvZGVCbG9jayk7
Ci0jaWZuZGVmIE5ERUJVRwotICAgICAgICBtX2J5dGVjb2RlT2Zmc2V0ID0gKHVuc2lnbmVkKS0x
OyAvLyBSZXNldCB0aGlzLCBpbiBvcmRlciB0byBndWFyZCBpdHMgdXNlIHdpdGggQVNTRVJUcy4K
LSNlbmRpZgotICAgICAgICBqdW1wKGZ1bmN0aW9uQm9keSk7CisgICAgICAgIGlmIChtYXhGcmFt
ZUV4dGVudEZvclNsb3dQYXRoQ2FsbCkKKyAgICAgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIo
LW1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwor
ICAgICAgICBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24ob3Bl
cmF0aW9uVGhyb3dTdGFja092ZXJmbG93RXJyb3IsIG1fY29kZUJsb2NrKTsKIAogICAgICAgICBh
cml0eUNoZWNrID0gbGFiZWwoKTsKICAgICAgICAgc3RvcmU4KFRydXN0ZWRJbW0zMigwKSwgJm1f
Y29kZUJsb2NrLT5tX3Nob3VsZEFsd2F5c0JlSW5saW5lZCk7Ci0gICAgICAgIHByZXNlcnZlUmV0
dXJuQWRkcmVzc0FmdGVyQ2FsbChyZWdUMik7Ci0gICAgICAgIGVtaXRQdXRSZXR1cm5QQ1RvQ2Fs
bEZyYW1lSGVhZGVyKHJlZ1QyKTsKKyAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAg
ICAgICAgZW1pdFB1dEltbWVkaWF0ZVRvQ2FsbEZyYW1lSGVhZGVyKG1fY29kZUJsb2NrLCBKU1N0
YWNrOjpDb2RlQmxvY2spOwogCiAgICAgICAgIGxvYWQzMihwYXlsb2FkRm9yKEpTU3RhY2s6OkFy
Z3VtZW50Q291bnQpLCByZWdUMSk7CkBAIC01NjEsMTAgKzU2NSwxNiBAQCBDb21waWxhdGlvblJl
c3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJVENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkKIAog
ICAgICAgICBtX2J5dGVjb2RlT2Zmc2V0ID0gMDsKIAorICAgICAgICBpZiAobWF4RnJhbWVFeHRl
bnRGb3JTbG93UGF0aENhbGwpCisgICAgICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKC1tYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICAg
ICAgY2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG1fY29kZUJs
b2NrLT5tX2lzQ29uc3RydWN0b3IgPyBvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrIDogb3Bl
cmF0aW9uQ2FsbEFyaXR5Q2hlY2spOworICAgICAgICBpZiAobWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwpCisgICAgICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgICAgICBpZiAocmV0
dXJuVmFsdWVHUFIgIT0gcmVnVDApCiAgICAgICAgICAgICBtb3ZlKHJldHVyblZhbHVlR1BSLCBy
ZWdUMCk7CiAgICAgICAgIGJyYW5jaFRlc3QzMihaZXJvLCByZWdUMCkubGlua1RvKGJlZ2luTGFi
ZWwsIHRoaXMpOworICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIobV92bS0+YXJpdHlDaGVja0Zh
aWxSZXR1cm5UaHVua3MtPnJldHVyblBDc0ZvcigqbV92bSwgbV9jb2RlQmxvY2stPm51bVBhcmFt
ZXRlcnMoKSkpLCByZWdUNSk7CisgICAgICAgIGxvYWRQdHIoQmFzZUluZGV4KHJlZ1Q1LCByZWdU
MCwgdGltZXNQdHIoKSksIHJlZ1Q1KTsKICAgICAgICAgZW1pdE5ha2VkQ2FsbChtX3ZtLT5nZXRD
VElTdHViKGFyaXR5Rml4dXApLmNvZGUoKSk7CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECkBAIC02
NTMsMjAgKzY2MywxMiBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJ
VENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkKICAgICAgICAgaW5mby5jYWxsZWVHUFIgPSByZWdU
MDsKICAgICB9CiAKLSNpZiBFTkFCTEUoREZHX0pJVCkgfHwgRU5BQkxFKExMSU5UKQotICAgIGlm
IChjYW5CZU9wdGltaXplZE9ySW5saW5lZCgpCi0jaWYgRU5BQkxFKExMSU5UKQotICAgICAgICB8
fCB0cnVlCi0jZW5kaWYKLSAgICAgICAgKSB7Ci0gICAgICAgIENvbXBhY3RKSVRDb2RlTWFwOjpF
bmNvZGVyIGppdENvZGVNYXBFbmNvZGVyOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGJ5dGVjb2Rl
T2Zmc2V0ID0gMDsgYnl0ZWNvZGVPZmZzZXQgPCBtX2xhYmVscy5zaXplKCk7ICsrYnl0ZWNvZGVP
ZmZzZXQpIHsKLSAgICAgICAgICAgIGlmIChtX2xhYmVsc1tieXRlY29kZU9mZnNldF0uaXNTZXQo
KSkKLSAgICAgICAgICAgICAgICBqaXRDb2RlTWFwRW5jb2Rlci5hcHBlbmQoYnl0ZWNvZGVPZmZz
ZXQsIHBhdGNoQnVmZmVyLm9mZnNldE9mKG1fbGFiZWxzW2J5dGVjb2RlT2Zmc2V0XSkpOwotICAg
ICAgICB9Ci0gICAgICAgIG1fY29kZUJsb2NrLT5zZXRKSVRDb2RlTWFwKGppdENvZGVNYXBFbmNv
ZGVyLmZpbmlzaCgpKTsKKyAgICBDb21wYWN0SklUQ29kZU1hcDo6RW5jb2RlciBqaXRDb2RlTWFw
RW5jb2RlcjsKKyAgICBmb3IgKHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0ID0gMDsgYnl0ZWNvZGVP
ZmZzZXQgPCBtX2xhYmVscy5zaXplKCk7ICsrYnl0ZWNvZGVPZmZzZXQpIHsKKyAgICAgICAgaWYg
KG1fbGFiZWxzW2J5dGVjb2RlT2Zmc2V0XS5pc1NldCgpKQorICAgICAgICAgICAgaml0Q29kZU1h
cEVuY29kZXIuYXBwZW5kKGJ5dGVjb2RlT2Zmc2V0LCBwYXRjaEJ1ZmZlci5vZmZzZXRPZihtX2xh
YmVsc1tieXRlY29kZU9mZnNldF0pKTsKICAgICB9Ci0jZW5kaWYKKyAgICBtX2NvZGVCbG9jay0+
c2V0SklUQ29kZU1hcChqaXRDb2RlTWFwRW5jb2Rlci5maW5pc2goKSk7CiAKICAgICBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIgd2l0aEFyaXR5Q2hlY2s7CiAgICAgaWYgKG1fY29kZUJsb2NrLT5jb2Rl
VHlwZSgpID09IEZ1bmN0aW9uQ29kZSkKQEAgLTY4Nyw4ICs2ODksNyBAQCBDb21waWxhdGlvblJl
c3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJVENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkKICAg
ICAKICAgICBtX2NvZGVCbG9jay0+c2hyaW5rVG9GaXQoQ29kZUJsb2NrOjpMYXRlU2hyaW5rKTsK
ICAgICBtX2NvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAgYWRvcHRSZWYobmV3IERpcmVj
dEpJVENvZGUocmVzdWx0LCBKSVRDb2RlOjpCYXNlbGluZUpJVCkpLAotICAgICAgICB3aXRoQXJp
dHlDaGVjayk7CisgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHJlc3VsdCwgd2l0
aEFyaXR5Q2hlY2ssIEpJVENvZGU6OkJhc2VsaW5lSklUKSkpOwogICAgIAogI2lmIEVOQUJMRShK
SVRfVkVSQk9TRSkKICAgICBkYXRhTG9nRigiSklUIGdlbmVyYXRlZCBjb2RlIGZvciAlcCBhdCBb
JXAsICVwKS5cbiIsIG1fY29kZUJsb2NrLCByZXN1bHQuZXhlY3V0YWJsZU1lbW9yeSgpLT5zdGFy
dCgpLCByZXN1bHQuZXhlY3V0YWJsZU1lbW9yeSgpLT5lbmQoKSk7CkBAIC02OTcsNDIgKzY5OCw2
IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6cHJpdmF0ZUNvbXBpbGUoSklUQ29tcGlsYXRpb25F
ZmZvcnQgZWZmb3J0KQogICAgIHJldHVybiBDb21waWxhdGlvblN1Y2Nlc3NmdWw7CiB9CiAKLXZv
aWQgSklUOjpsaW5rRm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNGdW5jdGlvbiogY2FsbGVlLCBDb2Rl
QmxvY2sqIGNhbGxlckNvZGVCbG9jaywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQmxvY2ssIEpJVDo6
Q29kZVB0ciBjb2RlLCBDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbywgVk0qIHZtLCBDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kIGtpbmQpCi17Ci0gICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVy
KGNhbGxlckNvZGVCbG9jayk7Ci0KLSAgICBBU1NFUlQoIWNhbGxMaW5rSW5mby0+aXNMaW5rZWQo
KSk7Ci0gICAgY2FsbExpbmtJbmZvLT5jYWxsZWUuc2V0KCp2bSwgY2FsbExpbmtJbmZvLT5ob3RQ
YXRoQmVnaW4sIGNhbGxlckNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIGNhbGxlZSk7Ci0g
ICAgY2FsbExpbmtJbmZvLT5sYXN0U2VlbkNhbGxlZS5zZXQoKnZtLCBjYWxsZXJDb2RlQmxvY2st
Pm93bmVyRXhlY3V0YWJsZSgpLCBjYWxsZWUpOwotICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNh
bGxMaW5rSW5mby0+aG90UGF0aE90aGVyLCBjb2RlKTsKLQotICAgIGlmIChjYWxsZWVDb2RlQmxv
Y2spCi0gICAgICAgIGNhbGxlZUNvZGVCbG9jay0+bGlua0luY29taW5nQ2FsbChleGVjLCBjYWxs
TGlua0luZm8pOwotCi0gICAgLy8gUGF0Y2ggdGhlIHNsb3cgcGF0Y2ggc28gd2UgZG8gbm90IGNv
bnRpbnVlIHRvIHRyeSB0byBsaW5rLgotICAgIGlmIChraW5kID09IENvZGVGb3JDYWxsKSB7Ci0g
ICAgICAgIEFTU0VSVChjYWxsTGlua0luZm8tPmNhbGxUeXBlID09IENhbGxMaW5rSW5mbzo6Q2Fs
bAotICAgICAgICAgICAgICAgfHwgY2FsbExpbmtJbmZvLT5jYWxsVHlwZSA9PSBDYWxsTGlua0lu
Zm86OkNhbGxWYXJhcmdzKTsKLSAgICAgICAgaWYgKGNhbGxMaW5rSW5mby0+Y2FsbFR5cGUgPT0g
Q2FsbExpbmtJbmZvOjpDYWxsKSB7Ci0gICAgICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhj
YWxsTGlua0luZm8tPmNhbGxSZXR1cm5Mb2NhdGlvbiwgdm0tPmdldENUSVN0dWIobGlua0Nsb3N1
cmVDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLQotICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0luZm8tPmNhbGxS
ZXR1cm5Mb2NhdGlvbiwgdm0tPmdldENUSVN0dWIodmlydHVhbENhbGxUaHVua0dlbmVyYXRvciku
Y29kZSgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEFTU0VSVChraW5kID09IENv
ZGVGb3JDb25zdHJ1Y3QpOwotICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby0+
Y2FsbFJldHVybkxvY2F0aW9uLCB2bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsQ29uc3RydWN0VGh1bmtH
ZW5lcmF0b3IpLmNvZGUoKSk7Ci19Ci0KLXZvaWQgSklUOjpsaW5rU2xvd0NhbGwoQ29kZUJsb2Nr
KiBjYWxsZXJDb2RlQmxvY2ssIENhbGxMaW5rSW5mbyogY2FsbExpbmtJbmZvKQotewotICAgIFJl
cGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihjYWxsZXJDb2RlQmxvY2spOwotCi0gICAgcmVwYXRj
aEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZvLT5jYWxsUmV0dXJuTG9jYXRpb24sIGNhbGxlckNv
ZGVCbG9jay0+dm0oKS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2Rl
KCkpOwotfQotCiB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVFeGNlcHRpb25IYW5kbGVycygpCiB7
CiAgICAgaWYgKG1fZXhjZXB0aW9uQ2hlY2tzLmVtcHR5KCkgJiYgbV9leGNlcHRpb25DaGVja3NX
aXRoQ2FsbEZyYW1lUm9sbGJhY2suZW1wdHkoKSkKQEAgLTc0Miw3ICs3MDcsNyBAQCB2b2lkIEpJ
VDo6cHJpdmF0ZUNvbXBpbGVFeGNlcHRpb25IYW5kbGVycygpCiAKICAgICBpZiAoIW1fZXhjZXB0
aW9uQ2hlY2tzV2l0aENhbGxGcmFtZVJvbGxiYWNrLmVtcHR5KCkpIHsKICAgICAgICAgbV9leGNl
cHRpb25DaGVja3NXaXRoQ2FsbEZyYW1lUm9sbGJhY2subGluayh0aGlzKTsKLSAgICAgICAgZW1p
dEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihHUFJJbmZvOjphcmd1bWVudEdQ
UjApOworICAgICAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEdQ
UkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgICAgIGRvTG9va3VwID0ganVtcCgpOwogICAgIH0K
IApAQCAtNzUwLDE5ICs3MTUsMzMgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlRXhjZXB0aW9u
SGFuZGxlcnMoKQogICAgICAgICBtX2V4Y2VwdGlvbkNoZWNrcy5saW5rKHRoaXMpOwogICAgIAog
ICAgIC8vIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIgaXMgcGFzc2VkIG9uZSBhcmd1bWVudCwgdGhl
IGV4ZWMgKHRoZSBDYWxsRnJhbWUqKS4KLSAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAKICAgICBpZiAoZG9Mb29rdXAuaXNT
ZXQoKSkKICAgICAgICAgZG9Mb29rdXAubGluayh0aGlzKTsKIAorICAgIG1vdmUoVHJ1c3RlZElt
bVB0cih2bSgpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKwogI2lmIENQVShYODYpCiAgICAg
Ly8gRklYTUU6IHNob3VsZCB1c2UgdGhlIGNhbGwgYWJzdHJhY3Rpb24sIGJ1dCB0aGlzIGlzIGN1
cnJlbnRseSBpbiB0aGUgU3BlY3VsYXRpdmVKSVQgbGF5ZXIhCiAgICAgcG9rZShHUFJJbmZvOjph
cmd1bWVudEdQUjApOworICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRHUFIxLCAxKTsKICNlbmRp
ZgogICAgIG1fY2FsbHMuYXBwZW5kKENhbGxSZWNvcmQoY2FsbCgpLCAodW5zaWduZWQpLTEsIEZ1
bmN0aW9uUHRyKGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIpLnZhbHVlKCkpKTsKICAgICBqdW1wVG9F
eGNlcHRpb25IYW5kbGVyKCk7CiB9CiAKK3Vuc2lnbmVkIEpJVDo6ZnJhbWVSZWdpc3RlckNvdW50
Rm9yKENvZGVCbG9jayogY29kZUJsb2NrKQoreworICAgIEFTU0VSVChzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oY29kZUJsb2NrLT5tX251bUNhbGxlZVJlZ2lzdGVycykgPT0gV1RGOjpyb3VuZFVwVG9N
dWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIHN0YXRpY19jYXN0PHVuc2lnbmVk
Pihjb2RlQmxvY2stPm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKSkpOworCisgICAgcmV0dXJuIHJvdW5k
TG9jYWxSZWdpc3RlckNvdW50Rm9yRnJhbWVQb2ludGVyT2Zmc2V0KGNvZGVCbG9jay0+bV9udW1D
YWxsZWVSZWdpc3RlcnMgKyBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbEluUmVnaXN0ZXJz
KTsKK30KKworaW50IEpJVDo6c3RhY2tQb2ludGVyT2Zmc2V0Rm9yKENvZGVCbG9jayogY29kZUJs
b2NrKQoreworICAgIHJldHVybiB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChmcmFtZVJlZ2lzdGVy
Q291bnRGb3IoY29kZUJsb2NrKSAtIDEpLm9mZnNldCgpOworfQogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggMjk4MDc1NzA2MWI2YzliZmQyZTdiM2Ix
NTM1MzgzMzgyZWM2NmI2Yy4uZmU4NTAzZTc5NDg4Y2I3ZGFiOGY4ZDRhYzQzNjAyYjMwNGMzNTJk
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCkBAIC0yNDEsMTMgKzI0MSw4IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIGppdC5wcml2YXRlQ29tcGlsZUNUSU5hdGl2ZUNh
bGwodm0sIGZ1bmMpOwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIHZvaWQgbGlua0ZvcihF
eGVjU3RhdGUqLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIENvZGVCbG9jayogY2FsbGVyQ29kZUJsb2Nr
LCBDb2RlQmxvY2sqIGNhbGxlZUNvZGVCbG9jaywgQ29kZVB0ciwgQ2FsbExpbmtJbmZvKiwgVk0q
LCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kKTsKLSAgICAgICAgc3RhdGljIHZvaWQgbGlua1Nsb3dD
YWxsKENvZGVCbG9jayogY2FsbGVyQ29kZUJsb2NrLCBDYWxsTGlua0luZm8qKTsKLSAgICAgICAg
Ci0gICAgICAgIHN0YXRpYyB1bnNpZ25lZCBmcmFtZVJlZ2lzdGVyQ291bnRGb3IoQ29kZUJsb2Nr
KiBjb2RlQmxvY2spCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBjb2RlQmxvY2stPm1f
bnVtQ2FsbGVlUmVnaXN0ZXJzOwotICAgICAgICB9CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBm
cmFtZVJlZ2lzdGVyQ291bnRGb3IoQ29kZUJsb2NrKik7CisgICAgICAgIHN0YXRpYyBpbnQgc3Rh
Y2tQb2ludGVyT2Zmc2V0Rm9yKENvZGVCbG9jayopOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAg
SklUKFZNKiwgQ29kZUJsb2NrKiA9IDApOwpAQCAtNjk3LDExICs2OTIsMTEgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oV2l0aFBy
b2ZpbGVUYWcsIEpfSklUT3BlcmF0aW9uX0VQYywgaW50LCBJbnN0cnVjdGlvbiopOwogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VaLCBp
bnQsIGludDMyX3QpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFBfSklUT3BlcmF0aW9uX0VKUywgR1BSUmVnLCBzaXplX3QpOwotICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFBfSklUT3BlcmF0aW9uX0VaLCBpbnQzMl90KTsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9F
Q0MsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VKLCBSZWdpc3RlcklEKTsKICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FSkosIFJl
Z2lzdGVySUQsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VPSnNzLCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsK
KyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihTcHJ0X0pJVE9wZXJh
dGlvbl9FWiwgaW50MzJfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oVl9KSVRPcGVyYXRpb25fRSk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUMsIFJlZ2lzdGVySUQpOwogICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VDQywgUmVnaXN0
ZXJJRCwgUmVnaXN0ZXJJRCk7CkBAIC03MjYsNiArNzIxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25f
RVBjLCBJbnN0cnVjdGlvbiopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKFZfSklUT3BlcmF0aW9uX0VaLCBpbnQzMl90KTsKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKEpf
SklUT3BlcmF0aW9uX0UpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uTm9FeGNlcHRpb25DaGVjayhKX0pJVE9wZXJhdGlvbl9FRSwgUmVnaXN0ZXJJRCk7CiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJh
Y2tPbkV4Y2VwdGlvbihWX0pJVE9wZXJhdGlvbl9FQ2IsIENvZGVCbG9jayopOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25F
eGNlcHRpb24oWl9KSVRPcGVyYXRpb25fRSk7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCmluZGV4IDkwYzJlNGZiOTJmMDlkODMyZWQzYTk2
ZmVjYmYyNzM0MDg3N2NhZWQuLmFlZjY3MmIxY2YwM2ExM2Y5M2RlYTUzNWYzNGZkMGJmNmI5Njc3
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDYWxsLmNwcApAQCAtMzksNiArMzksNyBA
QAogI2luY2x1ZGUgIlJlcGF0Y2hCdWZmZXIuaCIKICNpbmNsdWRlICJSZXN1bHRUeXBlLmgiCiAj
aW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKICNp
bmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJl
YW0uaD4KIApAQCAtNzEsMTAgKzcyLDE0IEBAIHZvaWQgSklUOjpjb21waWxlTG9hZFZhcmFyZ3Mo
SW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhl
YWRlcjMyKEpTU3RhY2s6OkFyZ3VtZW50Q291bnQsIHJlZ1QwKTsKICAgICAgICAgc2xvd0Nhc2Uu
YXBwZW5kKGJyYW5jaDMyKEFib3ZlLCByZWdUMCwgVHJ1c3RlZEltbTMyKEFyZ3VtZW50czo6TWF4
QXJndW1lbnRzICsgMSkpKTsKICAgICAgICAgLy8gcmVnVDA6IGFyZ3VtZW50Q291bnRJbmNsdWRp
bmdUaGlzCi0KICAgICAgICAgbW92ZShyZWdUMCwgcmVnVDEpOworICAgICAgICBhZGQ2NChUcnVz
dGVkSW1tMzIoLWZpcnN0RnJlZVJlZ2lzdGVyICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6
ZSksIHJlZ1QxKTsKKyAgICAgICAgLy8gcmVnVDEgbm93IGhhcyB0aGUgcmVxdWlyZWQgZnJhbWUg
c2l6ZSBpbiBSZWdpc3RlciB1bml0cworICAgICAgICAvLyBSb3VuZCByZWdUMSB0byBuZXh0IG11
bHRpcGxlIG9mIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkKKyAgICAgICAgYWRkNjQoVHJ1c3Rl
ZEltbTMyKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkgLSAxKSwgcmVnVDEpOworICAgICAgICBh
bmQ2NChUcnVzdGVkSW1tMzIofihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpIC0gMSkpLCByZWdU
MSk7CisKICAgICAgICAgbmVnNjQocmVnVDEpOwotICAgICAgICBhZGQ2NChUcnVzdGVkSW1tMzIo
Zmlyc3RGcmVlUmVnaXN0ZXIgLSBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplKSwgcmVnVDEp
OwogICAgICAgICBsc2hpZnQ2NChUcnVzdGVkSW1tMzIoMyksIHJlZ1QxKTsKICAgICAgICAgYWRk
UHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMSk7CiAgICAgICAgIC8vIHJlZ1QxOiBuZXdDYWxs
RnJhbWUKQEAgLTEwNSw3ICsxMTAsOCBAQCB2b2lkIEpJVDo6Y29tcGlsZUxvYWRWYXJhcmdzKElu
c3RydWN0aW9uKiBpbnN0cnVjdGlvbikKICAgICAgICAgc2xvd0Nhc2UubGluayh0aGlzKTsKIAog
ICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYXJndW1lbnRzLCByZWdUMSk7Ci0gICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25TaXplQW5kQWxsb2NGcmFtZUZvclZhcmFyZ3MsIHJlZ1QxLCBmaXJz
dEZyZWVSZWdpc3Rlcik7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25TaXplRnJhbWVGb3JW
YXJhcmdzLCByZWdUMSwgZmlyc3RGcmVlUmVnaXN0ZXIpOworICAgIG1vdmUocmV0dXJuVmFsdWVH
UFIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHRo
aXNWYWx1ZSwgcmVnVDEpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYXJndW1lbnRzLCBy
ZWdUMik7CiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Mb2FkVmFyYXJncywgcmV0dXJuVmFs
dWVHUFIsIHJlZ1QxLCByZWdUMik7CkBAIC0xMTMsMTMgKzExOSwyNCBAQCB2b2lkIEpJVDo6Y29t
cGlsZUxvYWRWYXJhcmdzKEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKIAogICAgIGlmIChjYW5P
cHRpbWl6ZSkKICAgICAgICAgZW5kLmxpbmsodGhpcyk7CisgICAgCisgICAgYWRkUHRyKFRydXN0
ZWRJbW0zMihzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCByZWdUMSwgc3RhY2tQb2ludGVyUmVn
aXN0ZXIpOwogfQogCiB2b2lkIEpJVDo6Y29tcGlsZUNhbGxFdmFsKEluc3RydWN0aW9uKiBpbnN0
cnVjdGlvbikKIHsKLSAgICBjYWxsT3BlcmF0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNl
cHRpb24ob3BlcmF0aW9uQ2FsbEV2YWwpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLXN0YXRp
Y19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSksIHN0YWNrUG9pbnRl
clJlZ2lzdGVyLCByZWdUMSk7CisgICAgY2FsbE9wZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2sob3Bl
cmF0aW9uQ2FsbEV2YWwsIHJlZ1QxKTsKKworICAgIEp1bXAgbm9FeGNlcHRpb24gPSBlbWl0RXhj
ZXB0aW9uQ2hlY2soSW52ZXJ0ZWRFeGNlcHRpb25DaGVjayk7CisgICAgYWRkUHRyKFRydXN0ZWRJ
bW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVy
KSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7ICAgIAorICAgIGV4
Y2VwdGlvbkNoZWNrKGp1bXAoKSk7CisKKyAgICBub0V4Y2VwdGlvbi5saW5rKHRoaXMpOwogICAg
IGFkZFNsb3dDYXNlKGJyYW5jaDY0KEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbTY0KEpTVmFsdWU6
OmVuY29kZShKU1ZhbHVlKCkpKSkpOwotICAgIGVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJh
bWVIZWFkZXJQdHIoY2FsbEZyYW1lUmVnaXN0ZXIpOworCisgICAgYWRkUHRyKFRydXN0ZWRJbW0z
MihzdGFja1BvaW50ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSks
IGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFj
a1BvaW50ZXJBbGlnbm1lbnQoKTsKIAogICAgIHNhbXBsZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7
CiAgICAgCkBAIC0xMzAsOCArMTQ3LDEwIEBAIHZvaWQgSklUOjpjb21waWxlQ2FsbEV2YWxTbG93
Q2FzZShJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5CiB7CiAg
ICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwogCi0gICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXI2
NChKU1N0YWNrOjpDYWxsZWUsIHJlZ1QwKTsKKyAgICBsb2FkNjQoQWRkcmVzcyhzdGFja1BvaW50
ZXJSZWdpc3Rlciwgc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OkNhbGxlZSAtIHNpemVvZihD
YWxsZXJGcmFtZUFuZFBDKSksIHJlZ1QwKTsKICAgICBlbWl0TmFrZWRDYWxsKG1fdm0tPmdldENU
SVN0dWIodmlydHVhbENhbGxUaHVua0dlbmVyYXRvcikuY29kZSgpKTsKKyAgICBhZGRQdHIoVHJ1
c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVn
aXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBj
aGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogCiAgICAgc2FtcGxlQ29kZUJsb2NrKG1fY29k
ZUJsb2NrKTsKICAgICAKQEAgLTE3MCwxOCArMTg5LDE2IEBAIHZvaWQgSklUOjpjb21waWxlT3BD
YWxsKE9wY29kZUlEIG9wY29kZUlELCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIHVuc2lnbmVk
IGNhCiAgICAgICAgICAgICBkb25lLmxpbmsodGhpcyk7CiAgICAgICAgIH0KICAgICAKLSAgICAg
ICAgYWRkUHRyKFRydXN0ZWRJbW0zMihyZWdpc3Rlck9mZnNldCAqIHNpemVvZihSZWdpc3Rlcikp
LCBjYWxsRnJhbWVSZWdpc3RlciwgcmVnVDEpOwotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0z
MihhcmdDb3VudCksIEFkZHJlc3MocmVnVDEsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiBzdGF0
aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRW
YWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSkpOwotICAgIH0gLy8gcmVnVDEgaG9sZHMg
bmV3Q2FsbEZyYW1lIHdpdGggQXJndW1lbnRDb3VudCBpbml0aWFsaXplZC4KKyAgICAgICAgYWRk
UHRyKFRydXN0ZWRJbW0zMihyZWdpc3Rlck9mZnNldCAqIHNpemVvZihSZWdpc3RlcikgKyBzaXpl
b2YoQ2FsbGVyRnJhbWVBbmRQQykpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVn
aXN0ZXIpOworICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihhcmdDb3VudCksIEFkZHJlc3Mo
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiBzdGF0aWNfY2Fz
dDxpbnQ+KHNpemVvZihSZWdpc3RlcikpICsgUGF5bG9hZE9mZnNldCAtIHNpemVvZihDYWxsZXJG
cmFtZUFuZFBDKSkpOworICAgIH0gLy8gU1AgaG9sZHMgbmV3Q2FsbEZyYW1lICsgc2l6ZW9mKENh
bGxlckZyYW1lQW5kUEMpLCB3aXRoIEFyZ3VtZW50Q291bnQgaW5pdGlhbGl6ZWQuCiAgICAgCiAg
ICAgdWludDMyX3QgYnl0ZWNvZGVPZmZzZXQgPSBpbnN0cnVjdGlvbiAtIG1fY29kZUJsb2NrLT5p
bnN0cnVjdGlvbnMoKS5iZWdpbigpOwogICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9IENhbGxG
cmFtZTo6TG9jYXRpb246OmVuY29kZUFzQnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpOwot
ICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGxvY2F0aW9uQml0cyksIEFkZHJlc3MoY2FsbEZyYW1l
UmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVv
ZihSZWdpc3RlcikpICsgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFz
Qml0cy50YWcpKSk7CisgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwgQWRk
cmVzcyhjYWxsRnJhbWVSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHN0YXRpY19j
YXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBUYWdPZmZzZXQpKTsKICAgICBlbWl0R2V0Vmly
dHVhbFJlZ2lzdGVyKGNhbGxlZSwgcmVnVDApOyAvLyByZWdUMCBob2xkcyBjYWxsZWUuCiAKLSAg
ICBzdG9yZTY0KGNhbGxGcmFtZVJlZ2lzdGVyLCBBZGRyZXNzKHJlZ1QxLCBDYWxsRnJhbWU6OmNh
bGxlckZyYW1lT2Zmc2V0KCkpKTsKLSAgICBzdG9yZTY0KHJlZ1QwLCBBZGRyZXNzKHJlZ1QxLCBK
U1N0YWNrOjpDYWxsZWUgKiBzdGF0aWNfY2FzdDxpbnQ+KHNpemVvZihSZWdpc3RlcikpKSk7Ci0g
ICAgbW92ZShyZWdUMSwgY2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIHN0b3JlNjQocmVnVDAsIEFk
ZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OkNhbGxlZSAqIHN0YXRpY19jYXN0
PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKIAog
ICAgIGlmIChvcGNvZGVJRCA9PSBvcF9jYWxsX2V2YWwpIHsKICAgICAgICAgY29tcGlsZUNhbGxF
dmFsKGluc3RydWN0aW9uKTsKQEAgLTE5OCwxMCArMjE1LDE0IEBAIHZvaWQgSklUOjpjb21waWxl
T3BDYWxsKE9wY29kZUlEIG9wY29kZUlELCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIHVuc2ln
bmVkIGNhCiAgICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0lu
Zm9JbmRleF0uY2FsbFR5cGUgPSBDYWxsTGlua0luZm86OmNhbGxUeXBlRm9yKG9wY29kZUlEKTsK
ICAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4
XS5ieXRlY29kZUluZGV4ID0gbV9ieXRlY29kZU9mZnNldDsKIAotICAgIGxvYWRQdHIoQWRkcmVz
cyhyZWdUMCwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fc2NvcGUpKSwgcmVnVDEpOwot
ICAgIGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihyZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFpbik7
CisgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwg
bV9zY29wZSkpLCByZWdUMik7CisgICAgc3RvcmU2NChyZWdUMiwgQWRkcmVzcyhNYWNyb0Fzc2Vt
Ymxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OlNjb3BlQ2hhaW4gKiBzaXplb2Yo
UmVnaXN0ZXIpIC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CisKICAgICBtX2NhbGxTdHJ1
Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5ob3RQYXRoT3RoZXIg
PSBlbWl0TmFrZWRDYWxsKCk7CiAKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRl
ck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVn
aXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdu
bWVudCgpOworCiAgICAgc2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2NrKTsKICAgICAKICAgICBl
bWl0UHV0Q2FsbFJlc3VsdChpbnN0cnVjdGlvbik7CkBAIC0yMTYsNyArMjM3LDE0IEBAIHZvaWQg
SklUOjpjb21waWxlT3BDYWxsU2xvd0Nhc2UoT3Bjb2RlSUQgb3Bjb2RlSUQsIEluc3RydWN0aW9u
KiBpbnN0cnVjdGlvbiwgVmVjCiAKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAKLSAgICBtX2Nh
bGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0luZGV4XS5jYWxsUmV0
dXJuTG9jYXRpb24gPSBlbWl0TmFrZWRDYWxsKG9wY29kZUlEID09IG9wX2NvbnN0cnVjdCA/IG1f
dm0tPmdldENUSVN0dWIobGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKS5jb2RlKCkgOiBtX3Zt
LT5nZXRDVElTdHViKGxpbmtDYWxsVGh1bmtHZW5lcmF0b3IpLmNvZGUoKSk7CisgICAgVGh1bmtH
ZW5lcmF0b3IgZ2VuZXJhdG9yID0gbGlua1RodW5rR2VuZXJhdG9yRm9yKAorICAgICAgICBvcGNv
ZGVJRCA9PSBvcF9jb25zdHJ1Y3QgPyBDb2RlRm9yQ29uc3RydWN0IDogQ29kZUZvckNhbGwsCisg
ICAgICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpOworICAgIAorICAgIG1fY2Fs
bFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmNhbGxSZXR1
cm5Mb2NhdGlvbiA9IGVtaXROYWtlZENhbGwobV92bS0+Z2V0Q1RJU3R1YihnZW5lcmF0b3IpLmNv
ZGUoKSk7CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvciht
X2NvZGVCbG9jaykgKiBzaXplb2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNr
UG9pbnRlclJlZ2lzdGVyKTsKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogCiAg
ICAgc2FtcGxlQ29kZUJsb2NrKG1fY29kZUJsb2NrKTsKICAgICAKQEAgLTIyNiw3ICsyNTQsNyBA
QCB2b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbFNsb3dDYXNlKE9wY29kZUlEIG9wY29kZUlELCBJbnN0
cnVjdGlvbiogaW5zdHJ1Y3Rpb24sIFZlYwogdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlQ2xvc3Vy
ZUNhbGwoQ2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm8sIENvZGVCbG9jayogY2FsbGVlQ29kZUJs
b2NrLCBTdHJ1Y3R1cmUqIGV4cGVjdGVkU3RydWN0dXJlLCBFeGVjdXRhYmxlQmFzZSogZXhwZWN0
ZWRFeGVjdXRhYmxlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cikKIHsKICAgICBKdW1w
TGlzdCBzbG93Q2FzZXM7Ci0gICAgCisKICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFRlc3RQ
dHIoTm9uWmVybywgcmVnVDAsIHRhZ01hc2tSZWdpc3RlcikpOwogICAgIHNsb3dDYXNlcy5hcHBl
bmQoYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnN0cnVjdHVyZU9m
ZnNldCgpKSwgVHJ1c3RlZEltbVB0cihleHBlY3RlZFN0cnVjdHVyZSkpKTsKICAgICBzbG93Q2Fz
ZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMCwgSlNGdW5jdGlvbjo6
b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBUcnVzdGVkSW1tUHRyKGV4cGVjdGVkRXhlY3V0YWJsZSkp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbDMyXzY0LmNwcAppbmRleCA2MDg2
MDM4YTI2N2JlMjhjNWU0YjMzNWE4Njc3MTkzOWQ3ZTVkNGI2Li42OWZhMGYwZTY0YzVkZjIzM2Y2
YzljYjVhYWZmMDg0Y2FkOWMyZDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVENhbGwzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRD
YWxsMzJfNjQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDgsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiUmVwYXRj
aEJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlc3VsdFR5cGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rv
b2wuaCIKKyNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQ
cmludFN0cmVhbS5oPgogCiAKQEAgLTU2LDEwICs1Nyw5IEBAIHZvaWQgSklUOjplbWl0X29wX3Jl
dChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIHVuc2lnbmVkIGRzdCA9IGN1
cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAKICAgICBlbWl0TG9hZChkc3QsIHJlZ1Qx
LCByZWdUMCk7Ci0gICAgZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihyZWdU
Mik7Ci0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihjYWxsRnJh
bWVSZWdpc3Rlcik7CiAKLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdU
Mik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKKyAgICBlbWl0RnVuY3Rpb25F
cGlsb2d1ZSgpOwogICAgIHJldCgpOwogfQogCkBAIC03MywyMCArNzMsMTYgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfcmV0X29iamVjdF9vcl90aGlzKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgp
KSwgcmVnVDIpOwogICAgIEp1bXAgbm90T2JqZWN0ID0gZW1pdEp1bXBJZk5vdE9iamVjdChyZWdU
Mik7CiAKLSAgICBlbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKHJlZ1QyKTsK
LSAgICBlbWl0R2V0Q2FsbGVyRnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKGNhbGxGcmFtZVJl
Z2lzdGVyKTsKLQotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHJlZ1QyKTsK
KyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOworICAgIGVtaXRGdW5jdGlvbkVwaWxv
Z3VlKCk7CiAgICAgcmV0KCk7CiAKICAgICBub3RKU0NlbGwubGluayh0aGlzKTsKICAgICBub3RP
YmplY3QubGluayh0aGlzKTsKICAgICBlbWl0TG9hZCh0aGlzUmVnLCByZWdUMSwgcmVnVDApOwog
Ci0gICAgZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihyZWdUMik7Ci0gICAg
ZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihjYWxsRnJhbWVSZWdpc3Rl
cik7Ci0KLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdUMik7CisgICAg
Y2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKKyAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgp
OwogICAgIHJldCgpOwogfQogCkBAIC0xNTEsOCArMTQ3LDEyIEBAIHZvaWQgSklUOjpjb21waWxl
TG9hZFZhcmFyZ3MoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgICAgICAvLyByZWdUMjog
YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMKIAogICAgICAgICBtb3ZlKHJlZ1QyLCByZWdUMyk7
CisgICAgICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLWZpcnN0RnJlZVJlZ2lzdGVyICsgSlNTdGFj
azo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSksIHJlZ1QzKTsKKyAgICAgICAgLy8gcmVnVDEgbm93IGhh
cyB0aGUgcmVxdWlyZWQgZnJhbWUgc2l6ZSBpbiBSZWdpc3RlciB1bml0cworICAgICAgICAvLyBS
b3VuZCByZWdUMSB0byBuZXh0IG11bHRpcGxlIG9mIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkK
KyAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpIC0g
MSksIHJlZ1QzKTsKKyAgICAgICAgYW5kUHRyKFRydXN0ZWRJbW0zMih+KHN0YWNrQWxpZ25tZW50
UmVnaXN0ZXJzKCkgLSAxKSksIHJlZ1QzKTsKICAgICAgICAgbmVnMzIocmVnVDMpOwotICAgICAg
ICBhZGQzMihUcnVzdGVkSW1tMzIoZmlyc3RGcmVlUmVnaXN0ZXIgLSBKU1N0YWNrOjpDYWxsRnJh
bWVIZWFkZXJTaXplKSwgcmVnVDMpOwogICAgICAgICBsc2hpZnQzMihUcnVzdGVkSW1tMzIoMyks
IHJlZ1QzKTsKICAgICAgICAgYWRkUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMyk7CiAgICAg
ICAgIC8vIHJlZ1QzOiBuZXdDYWxsRnJhbWUKQEAgLTE4NSwyMiArMTg1LDM0IEBAIHZvaWQgSklU
Ojpjb21waWxlTG9hZFZhcmFyZ3MoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogICAgICAgICBz
bG93Q2FzZS5saW5rKHRoaXMpOwogCiAgICAgZW1pdExvYWQoYXJndW1lbnRzLCByZWdUMSwgcmVn
VDApOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU2l6ZUFuZEFsbG9jRnJhbWVGb3JWYXJh
cmdzLCByZWdUMSwgcmVnVDAsIGZpcnN0RnJlZVJlZ2lzdGVyKTsKLSAgICBtb3ZlKHJldHVyblZh
bHVlR1BSLCByZWdUNSk7Ci0gICAgZW1pdExvYWQodGhpc1ZhbHVlLCByZWdUMSwgcmVnVDApOwor
ICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFyYXJncywgcmVnVDEsIHJl
Z1QwLCBmaXJzdEZyZWVSZWdpc3Rlcik7CisgICAgbW92ZShyZXR1cm5WYWx1ZUdQUiwgc3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOworICAgIGVtaXRMb2FkKHRoaXNWYWx1ZSwgcmVnVDEsIHJlZ1Q0KTsK
ICAgICBlbWl0TG9hZChhcmd1bWVudHMsIHJlZ1QzLCByZWdUMik7Ci0gICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25Mb2FkVmFyYXJncywgcmVnVDUsIHJlZ1QxLCByZWdUMCwgcmVnVDMsIHJlZ1Qy
KTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkxvYWRWYXJhcmdzLCByZXR1cm5WYWx1ZUdQ
UiwgcmVnVDEsIHJlZ1Q0LCByZWdUMywgcmVnVDIpOwogICAgIG1vdmUocmV0dXJuVmFsdWVHUFIs
IHJlZ1QzKTsKIAogICAgIGlmIChjYW5PcHRpbWl6ZSkKICAgICAgICAgZW5kLmxpbmsodGhpcyk7
CisKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSksIHJl
Z1QzLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiB9CiAKIHZvaWQgSklUOjpjb21waWxlQ2FsbEV2
YWwoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQogewotICAgIGNhbGxPcGVyYXRpb25XaXRoQ2Fs
bEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihvcGVyYXRpb25DYWxsRXZhbCk7CisgICAgYWRkUHRy
KFRydXN0ZWRJbW0zMigtc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoQ2FsbGVyRnJhbWVB
bmRQQykpKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIsIHJlZ1QxKTsKKworICAgIGNhbGxPcGVyYXRp
b25Ob0V4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbkNhbGxFdmFsLCByZWdUMSk7CisKKyAgICBKdW1w
IG5vRXhjZXB0aW9uID0gZW1pdEV4Y2VwdGlvbkNoZWNrKEludmVydGVkRXhjZXB0aW9uQ2hlY2sp
OworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29kZUJs
b2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVy
UmVnaXN0ZXIpOworICAgIGV4Y2VwdGlvbkNoZWNrKGp1bXAoKSk7CisKKyAgICBub0V4Y2VwdGlv
bi5saW5rKHRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKEVxdWFsLCByZWdUMSwgVHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcpKSk7Ci0gICAgZW1pdEdldENhbGxlckZy
YW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihjYWxsRnJhbWVSZWdpc3Rlcik7CisKKyAgICBhZGRQ
dHIoVHJ1c3RlZEltbTMyKHN0YWNrUG9pbnRlck9mZnNldEZvcihtX2NvZGVCbG9jaykgKiBzaXpl
b2YoUmVnaXN0ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsK
KyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogCiAgICAgc2FtcGxlQ29kZUJsb2Nr
KG1fY29kZUJsb2NrKTsKICAgICAKQEAgLTIxMSw4ICsyMjMsMTMgQEAgdm9pZCBKSVQ6OmNvbXBp
bGVDYWxsRXZhbFNsb3dDYXNlKEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXNlRW50cnkKIHsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAKKyAgICBsb2FkUHRyKEFkZHJl
c3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpDYWxs
ZWUgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpLCByZWdUMCk7CisgICAgbG9hZFB0cihBZGRy
ZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzaXplb2YoUmVnaXN0ZXIpICogSlNTdGFjazo6Q2Fs
bGVlIC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSwgcmVnVDEpOworCiAgICAgZW1pdExvYWQo
SlNTdGFjazo6Q2FsbGVlLCByZWdUMSwgcmVnVDApOwogICAgIGVtaXROYWtlZENhbGwobV92bS0+
Z2V0Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgIGFkZFB0
cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVv
ZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwor
ICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7CiAKICAgICBzYW1wbGVDb2RlQmxvY2so
bV9jb2RlQmxvY2spOwogICAgIApAQCAtMjUxLDE4ICsyNjgsMTcgQEAgdm9pZCBKSVQ6OmNvbXBp
bGVPcENhbGwoT3Bjb2RlSUQgb3Bjb2RlSUQsIEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgdW5z
aWduZWQgY2EKICAgICAgICAgICAgIGRvbmUubGluayh0aGlzKTsKICAgICAgICAgfQogICAgIAot
ICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKHJlZ2lzdGVyT2Zmc2V0ICogc2l6ZW9mKFJlZ2lz
dGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCByZWdUMyk7CisgICAgICAgIGFkZFB0cihUcnVzdGVk
SW1tMzIocmVnaXN0ZXJPZmZzZXQgKiBzaXplb2YoUmVnaXN0ZXIpICsgc2l6ZW9mKENhbGxlckZy
YW1lQW5kUEMpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKIAot
ICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihhcmdDb3VudCksIHBheWxvYWRGb3IoSlNTdGFj
azo6QXJndW1lbnRDb3VudCwgcmVnVDMpKTsKLSAgICB9IC8vIHJlZ1QzIGhvbGRzIG5ld0NhbGxG
cmFtZSB3aXRoIEFyZ3VtZW50Q291bnQgaW5pdGlhbGl6ZWQuCisgICAgICAgIHN0b3JlMzIoVHJ1
c3RlZEltbTMyKGFyZ0NvdW50KSwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFj
azo6QXJndW1lbnRDb3VudCAqIHN0YXRpY19jYXN0PGludD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKyBQ
YXlsb2FkT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CisgICAgfSAvLyBTUCBo
b2xkcyBuZXdDYWxsRnJhbWUgKyBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQyksIHdpdGggQXJndW1l
bnRDb3VudCBpbml0aWFsaXplZC4KICAgICAKICAgICB1aW50MzJfdCBsb2NhdGlvbkJpdHMgPSBD
YWxsRnJhbWU6OkxvY2F0aW9uOjplbmNvZGVBc0J5dGVjb2RlSW5zdHJ1Y3Rpb24oaW5zdHJ1Y3Rp
b24pOwogICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKGxvY2F0aW9uQml0cyksIHRhZ0ZvcihKU1N0
YWNrOjpBcmd1bWVudENvdW50LCBjYWxsRnJhbWVSZWdpc3RlcikpOwogICAgIGVtaXRMb2FkKGNh
bGxlZSwgcmVnVDEsIHJlZ1QwKTsgLy8gcmVnVDEsIHJlZ1QwIGhvbGRzIGNhbGxlZS4KIAotICAg
IHN0b3JlUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCBBZGRyZXNzKHJlZ1QzLCBDYWxsRnJhbWU6OmNh
bGxlckZyYW1lT2Zmc2V0KCkpKTsKLSAgICBlbWl0U3RvcmUoSlNTdGFjazo6Q2FsbGVlLCByZWdU
MSwgcmVnVDAsIHJlZ1QzKTsKLSAgICBtb3ZlKHJlZ1QzLCBjYWxsRnJhbWVSZWdpc3Rlcik7Cisg
ICAgc3RvcmUzMihyZWdUMCwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6
Q2FsbGVlICogc3RhdGljX2Nhc3Q8aW50PihzaXplb2YoUmVnaXN0ZXIpKSArIFBheWxvYWRPZmZz
ZXQgLSBzaXplb2YoQ2FsbGVyRnJhbWVBbmRQQykpKTsKKyAgICBzdG9yZTMyKHJlZ1QxLCBBZGRy
ZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBKU1N0YWNrOjpDYWxsZWUgKiBzdGF0aWNfY2FzdDxp
bnQ+KHNpemVvZihSZWdpc3RlcikpICsgVGFnT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5k
UEMpKSk7CiAKICAgICBpZiAob3Bjb2RlSUQgPT0gb3BfY2FsbF9ldmFsKSB7CiAgICAgICAgIGNv
bXBpbGVDYWxsRXZhbChpbnN0cnVjdGlvbik7CkBAIC0yODEsMTAgKzI5NywxNiBAQCB2b2lkIEpJ
VDo6Y29tcGlsZU9wQ2FsbChPcGNvZGVJRCBvcGNvZGVJRCwgSW5zdHJ1Y3Rpb24qIGluc3RydWN0
aW9uLCB1bnNpZ25lZCBjYQogICAgIG1fY2FsbFN0cnVjdHVyZVN0dWJDb21waWxhdGlvbkluZm9b
Y2FsbExpbmtJbmZvSW5kZXhdLmNhbGxUeXBlID0gQ2FsbExpbmtJbmZvOjpjYWxsVHlwZUZvcihv
cGNvZGVJRCk7CiAgICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlu
a0luZm9JbmRleF0uYnl0ZWNvZGVJbmRleCA9IG1fYnl0ZWNvZGVPZmZzZXQ7CiAKLSAgICBsb2Fk
UHRyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX3Njb3BlKSks
IHJlZ1QxKTsKLSAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBKU1N0YWNr
OjpTY29wZUNoYWluKTsKKyAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRP
RihKU0Z1bmN0aW9uLCBtX3Njb3BlKSksIHJlZ1QyKTsKKyAgICBzdG9yZTMyKHJlZ1QyLCBBZGRy
ZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgSlNTdGFjazo6U2NvcGVD
aGFpbiAqIHNpemVvZihSZWdpc3RlcikgKyBQYXlsb2FkT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZy
YW1lQW5kUEMpKSk7CisgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyks
IEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIEpTU3RhY2s6OlNjb3BlQ2hhaW4gKiBzaXpl
b2YoUmVnaXN0ZXIpICsgVGFnT2Zmc2V0IC0gc2l6ZW9mKENhbGxlckZyYW1lQW5kUEMpKSk7CisK
KyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCgpOwogICAgIG1fY2FsbFN0cnVjdHVyZVN0
dWJDb21waWxhdGlvbkluZm9bY2FsbExpbmtJbmZvSW5kZXhdLmhvdFBhdGhPdGhlciA9IGVtaXRO
YWtlZENhbGwoKTsKIAorICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0
Rm9yKG1fY29kZUJsb2NrKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwg
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KCk7
CisKICAgICBzYW1wbGVDb2RlQmxvY2sobV9jb2RlQmxvY2spOwogICAgIGVtaXRQdXRDYWxsUmVz
dWx0KGluc3RydWN0aW9uKTsKIH0KQEAgLTI5OSw3ICszMjEsMTQgQEAgdm9pZCBKSVQ6OmNvbXBp
bGVPcENhbGxTbG93Q2FzZShPcGNvZGVJRCBvcGNvZGVJRCwgSW5zdHJ1Y3Rpb24qIGluc3RydWN0
aW9uLCBWZWMKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIp
OwogCi0gICAgbV9jYWxsU3RydWN0dXJlU3R1YkNvbXBpbGF0aW9uSW5mb1tjYWxsTGlua0luZm9J
bmRleF0uY2FsbFJldHVybkxvY2F0aW9uID0gZW1pdE5ha2VkQ2FsbChvcGNvZGVJRCA9PSBvcF9j
b25zdHJ1Y3QgPyBtX3ZtLT5nZXRDVElTdHViKGxpbmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvciku
Y29kZSgpIDogbV92bS0+Z2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkp
OworICAgIFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvciA9IGxpbmtUaHVua0dlbmVyYXRvckZvcigK
KyAgICAgICAgb3Bjb2RlSUQgPT0gb3BfY29uc3RydWN0ID8gQ29kZUZvckNvbnN0cnVjdCA6IENv
ZGVGb3JDYWxsLAorICAgICAgICBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKKyAg
ICAKKyAgICBtX2NhbGxTdHJ1Y3R1cmVTdHViQ29tcGlsYXRpb25JbmZvW2NhbGxMaW5rSW5mb0lu
ZGV4XS5jYWxsUmV0dXJuTG9jYXRpb24gPSBlbWl0TmFrZWRDYWxsKG1fdm0tPmdldENUSVN0dWIo
Z2VuZXJhdG9yKS5jb2RlKCkpOworCisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50
ZXJPZmZzZXRGb3IobV9jb2RlQmxvY2spICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJl
Z2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGln
bm1lbnQoKTsKIAogICAgIHNhbXBsZUNvZGVCbG9jayhtX2NvZGVCbG9jayk7CiAgICAgZW1pdFB1
dENhbGxSZXN1bHQoaW5zdHJ1Y3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRDb2RlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5j
cHAKaW5kZXggMjEzYjcwMDBjYmIyODM0NTgxNGRiNWUyYmJhYjQxNDQ2N2Y0YzkyZC4uZWQwODdj
ZDNhNDRkNmUwNmFlNTQ2MzdjZDNiMDg3MjJkNzM4ZTNjYSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVENvZGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJMTEludFRodW5r
cy5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKKyNpbmNsdWRlICJSZWdpc3RlclByZXNlcnZh
dGlvbldyYXBwZXJHZW5lcmF0b3IuaCIKICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KIAog
bmFtZXNwYWNlIEpTQyB7CkBAIC00MSwxMSArNDIsOSBAQCBKSVRDb2RlOjp+SklUQ29kZSgpCiB7
CiB9CiAKLUpTVmFsdWUgSklUQ29kZTo6ZXhlY3V0ZShWTSogdm0sIFByb3RvQ2FsbEZyYW1lKiBw
cm90b0NhbGxGcmFtZSwgUmVnaXN0ZXIqIHRvcE9mU3RhY2spCitKU1ZhbHVlIEpJVENvZGU6OmV4
ZWN1dGUoVk0qIHZtLCBQcm90b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWUpCiB7Ci0gICAgQVNT
RVJUKCF2bS0+dG9wQ2FsbEZyYW1lIHx8ICgoUmVnaXN0ZXIqKSh2bS0+dG9wQ2FsbEZyYW1lKSA+
PSB0b3BPZlN0YWNrKSk7Ci0KLSAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTVmFsdWU6OmRlY29kZShj
YWxsVG9KYXZhU2NyaXB0KGV4ZWN1dGFibGVBZGRyZXNzKCksICZ2bS0+dG9wQ2FsbEZyYW1lLCBw
cm90b0NhbGxGcmFtZSwgdG9wT2ZTdGFjaykpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNWYWx1
ZTo6ZGVjb2RlKGNhbGxUb0phdmFTY3JpcHQoZXhlY3V0YWJsZUFkZHJlc3MoKSwgdm0sIHByb3Rv
Q2FsbEZyYW1lKSk7CiAgICAgcmV0dXJuIHZtLT5leGNlcHRpb24oKSA/IGpzTnVsbCgpIDogcmVz
dWx0OwogfQogCkBAIC03Myw1MiArNzIsMzUgQEAgRlRMOjpGb3JPU1JFbnRyeUpJVENvZGUqIEpJ
VENvZGU6OmZ0bEZvck9TUkVudHJ5KCkKICAgICByZXR1cm4gMDsKIH0KIAotUGFzc1JlZlB0cjxK
SVRDb2RlPiBKSVRDb2RlOjpob3N0RnVuY3Rpb24oSklUQ29kZTo6Q29kZVJlZiBjb2RlKQotewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGlyZWN0SklUQ29kZShjb2RlLCBIb3N0Q2FsbFRodW5r
KSk7Ci19Ci0KLURpcmVjdEpJVENvZGU6OkRpcmVjdEpJVENvZGUoSklUVHlwZSBqaXRUeXBlKQor
SklUQ29kZVdpdGhDb2RlUmVmOjpKSVRDb2RlV2l0aENvZGVSZWYoSklUVHlwZSBqaXRUeXBlKQog
ICAgIDogSklUQ29kZShqaXRUeXBlKQogewogfQogCi1EaXJlY3RKSVRDb2RlOjpEaXJlY3RKSVRD
b2RlKGNvbnN0IEpJVENvZGU6OkNvZGVSZWYgcmVmLCBKSVRUeXBlIGppdFR5cGUpCitKSVRDb2Rl
V2l0aENvZGVSZWY6OkpJVENvZGVXaXRoQ29kZVJlZihDb2RlUmVmIHJlZiwgSklUVHlwZSBqaXRU
eXBlKQogICAgIDogSklUQ29kZShqaXRUeXBlKQogICAgICwgbV9yZWYocmVmKQogewogfQogCi1E
aXJlY3RKSVRDb2RlOjp+RGlyZWN0SklUQ29kZSgpCi17Ci19Ci0KLXZvaWQgRGlyZWN0SklUQ29k
ZTo6aW5pdGlhbGl6ZUNvZGVSZWYoY29uc3QgSklUQ29kZTo6Q29kZVJlZiByZWYpCi17Ci0gICAg
UkVMRUFTRV9BU1NFUlQoIW1fcmVmKTsKLSAgICBtX3JlZiA9IHJlZjsKLX0KLQotSklUQ29kZTo6
Q29kZVB0ciBEaXJlY3RKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbCgpCitKSVRDb2RlV2l0aENvZGVS
ZWY6On5KSVRDb2RlV2l0aENvZGVSZWYoKQogewotICAgIFJFTEVBU0VfQVNTRVJUKG1fcmVmKTsK
LSAgICByZXR1cm4gbV9yZWYuY29kZSgpOwogfQogCi12b2lkKiBEaXJlY3RKSVRDb2RlOjpleGVj
dXRhYmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpCit2b2lkKiBKSVRDb2RlV2l0aENv
ZGVSZWY6OmV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkKIHsKICAgICBS
RUxFQVNFX0FTU0VSVChtX3JlZik7CiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+
KG1fcmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSArIG9mZnNldDsKIH0KIAotdm9pZCog
RGlyZWN0SklUQ29kZTo6ZGF0YUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KQordm9pZCog
SklUQ29kZVdpdGhDb2RlUmVmOjpkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpCiB7
CiAgICAgUkVMRUFTRV9BU1NFUlQobV9yZWYpOwogICAgIEFTU0VSVChvZmZzZXQgPD0gc2l6ZSgp
KTsgLy8gdXNlIDw9IGluc3RlYWQgb2YgPCBiZWNhdXNlIGl0IGlzIHZhbGlkIHRvIGFzayBmb3Ig
YW4gYWRkcmVzcyBhdCB0aGUgZXhjbHVzaXZlIGVuZCBvZiB0aGUgY29kZS4KICAgICByZXR1cm4g
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9yZWYuY29kZSgpLmRhdGFMb2NhdGlvbigpKSArIG9m
ZnNldDsKIH0KIAotdW5zaWduZWQgRGlyZWN0SklUQ29kZTo6b2Zmc2V0T2Yodm9pZCogcG9pbnRl
ckludG9Db2RlKQordW5zaWduZWQgSklUQ29kZVdpdGhDb2RlUmVmOjpvZmZzZXRPZih2b2lkKiBw
b2ludGVySW50b0NvZGUpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9yZWYpOwogICAgIGludHB0
cl90IHJlc3VsdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHBvaW50ZXJJbnRvQ29kZSkg
LSByZWludGVycHJldF9jYXN0PGludHB0cl90PihtX3JlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJl
c3MoKSk7CkBAIC0xMjYsMTggKzEwOCwxMTcgQEAgdW5zaWduZWQgRGlyZWN0SklUQ29kZTo6b2Zm
c2V0T2Yodm9pZCogcG9pbnRlckludG9Db2RlKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4ocmVzdWx0KTsKIH0KIAotc2l6ZV90IERpcmVjdEpJVENvZGU6OnNpemUoKQorc2l6ZV90
IEpJVENvZGVXaXRoQ29kZVJlZjo6c2l6ZSgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9yZWYp
OwogICAgIHJldHVybiBtX3JlZi5zaXplKCk7CiB9CiAKLWJvb2wgRGlyZWN0SklUQ29kZTo6Y29u
dGFpbnModm9pZCogYWRkcmVzcykKK2Jvb2wgSklUQ29kZVdpdGhDb2RlUmVmOjpjb250YWlucyh2
b2lkKiBhZGRyZXNzKQogewogICAgIFJFTEVBU0VfQVNTRVJUKG1fcmVmKTsKICAgICByZXR1cm4g
bV9yZWYuZXhlY3V0YWJsZU1lbW9yeSgpLT5jb250YWlucyhhZGRyZXNzKTsKIH0KIAorRGlyZWN0
SklUQ29kZTo6RGlyZWN0SklUQ29kZShKSVRUeXBlIGppdFR5cGUpCisgICAgOiBKSVRDb2RlV2l0
aENvZGVSZWYoaml0VHlwZSkKK3sKK30KKworRGlyZWN0SklUQ29kZTo6RGlyZWN0SklUQ29kZSgK
KyAgICBKSVRDb2RlOjpDb2RlUmVmIHJlZiwgSklUQ29kZTo6Q29kZVB0ciB3aXRoQXJpdHlDaGVj
aywgSklUVHlwZSBqaXRUeXBlKQorICAgIDogSklUQ29kZVdpdGhDb2RlUmVmKHJlZiwgaml0VHlw
ZSkKKyAgICAsIG1fd2l0aEFyaXR5Q2hlY2sod2l0aEFyaXR5Q2hlY2spCit7Cit9CisKK0RpcmVj
dEpJVENvZGU6On5EaXJlY3RKSVRDb2RlKCkKK3sKK30KKwordm9pZCBEaXJlY3RKSVRDb2RlOjpp
bml0aWFsaXplQ29kZVJlZihKSVRDb2RlOjpDb2RlUmVmIHJlZiwgSklUQ29kZTo6Q29kZVB0ciB3
aXRoQXJpdHlDaGVjaykKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCghbV9yZWYpOworICAgIG1fcmVm
ID0gcmVmOworICAgIG1fd2l0aEFyaXR5Q2hlY2sgPSB3aXRoQXJpdHlDaGVjazsKK30KKworRGly
ZWN0SklUQ29kZTo6UmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVycyogRGlyZWN0SklUQ29kZTo6
ZW5zdXJlV3JhcHBlcnMoKQoreworICAgIGlmICghbV93cmFwcGVycykKKyAgICAgICAgbV93cmFw
cGVycyA9IHN0ZDo6bWFrZV91bmlxdWU8UmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVycz4oKTsK
KyAgICByZXR1cm4gbV93cmFwcGVycy5nZXQoKTsKK30KKworSklUQ29kZTo6Q29kZVB0ciBEaXJl
Y3RKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbCgKKyAgICBWTSYgdm0sIEV4ZWN1dGFibGVCYXNlKiBl
eGVjdXRhYmxlLCBBcml0eUNoZWNrTW9kZSBhcml0eSwKKyAgICBSZWdpc3RlclByZXNlcnZhdGlv
bk1vZGUgcmVnaXN0ZXJzKQoreworICAgIHN3aXRjaCAoYXJpdHkpIHsKKyAgICBjYXNlIEFyaXR5
Q2hlY2tOb3RSZXF1aXJlZDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAg
Y2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlQobV9yZWYpOworICAgICAgICAgICAgcmV0dXJuIG1fcmVmLmNvZGUoKTsKKyAgICAg
ICAgY2FzZSBNdXN0UHJlc2VydmVSZWdpc3RlcnM6IHsKKyNpZiBFTkFCTEUoSklUKQorICAgICAg
ICAgICAgUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVycyogd3JhcHBlcnMgPSBlbnN1cmVXcmFw
cGVycygpOworICAgICAgICAgICAgaWYgKCF3cmFwcGVycy0+d2l0aG91dEFyaXR5Q2hlY2spCisg
ICAgICAgICAgICAgICAgd3JhcHBlcnMtPndpdGhvdXRBcml0eUNoZWNrID0gZ2VuZXJhdGVSZWdp
c3RlclByZXNlcnZhdGlvbldyYXBwZXIodm0sIGV4ZWN1dGFibGUsIG1fcmVmLmNvZGUoKSk7Cisg
ICAgICAgICAgICByZXR1cm4gd3JhcHBlcnMtPndpdGhvdXRBcml0eUNoZWNrLmNvZGUoKTsKKyNl
bHNlCisgICAgICAgICAgICBVTlVTRURfUEFSQU0odm0pOworICAgICAgICAgICAgVU5VU0VEX1BB
UkFNKGV4ZWN1dGFibGUpOworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyNlbmRpZgorICAgICAgICB9IH0KKyAgICBjYXNlIE11c3RDaGVja0FyaXR5OgorICAgICAg
ICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9u
Tm90UmVxdWlyZWQ6CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChtX3dpdGhBcml0eUNoZWNr
KTsKKyAgICAgICAgICAgIHJldHVybiBtX3dpdGhBcml0eUNoZWNrOworICAgICAgICBjYXNlIE11
c3RQcmVzZXJ2ZVJlZ2lzdGVyczogeworI2lmIEVOQUJMRShKSVQpCisgICAgICAgICAgICBSZWdp
c3RlclByZXNlcnZhdGlvbldyYXBwZXJzKiB3cmFwcGVycyA9IGVuc3VyZVdyYXBwZXJzKCk7Cisg
ICAgICAgICAgICBpZiAoIXdyYXBwZXJzLT53aXRoQXJpdHlDaGVjaykKKyAgICAgICAgICAgICAg
ICB3cmFwcGVycy0+d2l0aEFyaXR5Q2hlY2sgPSBnZW5lcmF0ZVJlZ2lzdGVyUHJlc2VydmF0aW9u
V3JhcHBlcih2bSwgZXhlY3V0YWJsZSwgbV93aXRoQXJpdHlDaGVjayk7CisgICAgICAgICAgICBy
ZXR1cm4gd3JhcHBlcnMtPndpdGhBcml0eUNoZWNrLmNvZGUoKTsKKyNlbHNlCisgICAgICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgICAgIH0gfQorICAg
IH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBDb2RlUHRy
KCk7Cit9CisKK05hdGl2ZUpJVENvZGU6Ok5hdGl2ZUpJVENvZGUoSklUVHlwZSBqaXRUeXBlKQor
ICAgIDogSklUQ29kZVdpdGhDb2RlUmVmKGppdFR5cGUpCit7Cit9CisKK05hdGl2ZUpJVENvZGU6
Ok5hdGl2ZUpJVENvZGUoQ29kZVJlZiByZWYsIEpJVFR5cGUgaml0VHlwZSkKKyAgICA6IEpJVENv
ZGVXaXRoQ29kZVJlZihyZWYsIGppdFR5cGUpCit7Cit9CisKK05hdGl2ZUpJVENvZGU6On5OYXRp
dmVKSVRDb2RlKCkKK3sKK30KKwordm9pZCBOYXRpdmVKSVRDb2RlOjppbml0aWFsaXplQ29kZVJl
ZihDb2RlUmVmIHJlZikKK3sKKyAgICBBU1NFUlQoIW1fcmVmKTsKKyAgICBtX3JlZiA9IHJlZjsK
K30KKworSklUQ29kZTo6Q29kZVB0ciBOYXRpdmVKSVRDb2RlOjphZGRyZXNzRm9yQ2FsbCgKKyAg
ICBWTSYsIEV4ZWN1dGFibGVCYXNlKiwgQXJpdHlDaGVja01vZGUsIFJlZ2lzdGVyUHJlc2VydmF0
aW9uTW9kZSkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVCghIW1fcmVmKTsKKyAgICByZXR1cm4gbV9y
ZWYuY29kZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogbmFtZXNwYWNlIFdURiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCmluZGV4IDUyYzc4MTExYTRkNjhlYjBmYWY5NzQ5
MDM4N2M1ODJlMjc2MmRlZmQuLjQxYjMxZjJmMTYwMWZmYjVmZTQ3ZWFjMTU3MzdlMGFjZDQ4ODNl
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCkBAIC0yNiwxNCArMjYsMTQgQEAK
ICNpZm5kZWYgSklUQ29kZV9oCiAjZGVmaW5lIEpJVENvZGVfaAogCi0jaWYgRU5BQkxFKEpJVCkg
fHwgRU5BQkxFKExMSU5UKQorI2luY2x1ZGUgIkFyaXR5Q2hlY2tNb2RlLmgiCiAjaW5jbHVkZSAi
Q2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiRGlzYXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiSklUU3R1
YnMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIu
aCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCIKLSNlbmRpZgorI2luY2x1ZGUg
IlJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNTQs
NyArNTQsMTQgQEAgcHVibGljOgogICAgIHR5cGVkZWYgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIENv
ZGVSZWY7CiAgICAgdHlwZWRlZiBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgQ29kZVB0cjsKIAotICAg
IGVudW0gSklUVHlwZSB7IE5vbmUsIEhvc3RDYWxsVGh1bmssIEludGVycHJldGVyVGh1bmssIEJh
c2VsaW5lSklULCBERkdKSVQsIEZUTEpJVCB9OworICAgIGVudW0gSklUVHlwZSA6IHVpbnQ4X3Qg
eworICAgICAgICBOb25lLAorICAgICAgICBIb3N0Q2FsbFRodW5rLAorICAgICAgICBJbnRlcnBy
ZXRlclRodW5rLAorICAgICAgICBCYXNlbGluZUpJVCwKKyAgICAgICAgREZHSklULAorICAgICAg
ICBGVExKSVQKKyAgICB9OwogICAgIAogICAgIHN0YXRpYyBKSVRUeXBlIGJvdHRvbVRpZXJKSVQo
KQogICAgIHsKQEAgLTE2NCw3ICsxNzEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBqaXRD
b2RlLT5qaXRUeXBlKCk7CiAgICAgfQogICAgIAotICAgIHZpcnR1YWwgQ29kZVB0ciBhZGRyZXNz
Rm9yQ2FsbCgpID0gMDsKKyAgICB2aXJ0dWFsIENvZGVQdHIgYWRkcmVzc0ZvckNhbGwoVk0mLCBF
eGVjdXRhYmxlQmFzZSosIEFyaXR5Q2hlY2tNb2RlLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90
IG9mZnNldCkgPSAwOwogICAgIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzKCkgeyByZXR1cm4gZXhl
Y3V0YWJsZUFkZHJlc3NBdE9mZnNldCgwKTsgfQogICAgIHZpcnR1YWwgdm9pZCogZGF0YUFkZHJl
c3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KSA9IDA7CkBAIC0xNzUsNyArMTgyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgRlRMOjpKSVRDb2RlKiBmdGwoKTsKICAgICB2aXJ0dWFsIEZUTDo6Rm9y
T1NSRW50cnlKSVRDb2RlKiBmdGxGb3JPU1JFbnRyeSgpOwogICAgIAotICAgIEpTVmFsdWUgZXhl
Y3V0ZShWTSosIFByb3RvQ2FsbEZyYW1lKiwgUmVnaXN0ZXIqKTsKKyAgICBKU1ZhbHVlIGV4ZWN1
dGUoVk0qLCBQcm90b0NhbGxGcmFtZSopOwogICAgIAogICAgIHZvaWQqIHN0YXJ0KCkgeyByZXR1
cm4gZGF0YUFkZHJlc3NBdE9mZnNldCgwKTsgfQogICAgIHZpcnR1YWwgc2l6ZV90IHNpemUoKSA9
IDA7CkBAIC0xODMsMzEgKzE5MCw2MiBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCBib29s
IGNvbnRhaW5zKHZvaWQqKSA9IDA7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxKSVRDb2RlPiBo
b3N0RnVuY3Rpb24oQ29kZVJlZik7Ci0KIHByaXZhdGU6CiAgICAgSklUVHlwZSBtX2ppdFR5cGU7
CiB9OwogCi1jbGFzcyBEaXJlY3RKSVRDb2RlIDogcHVibGljIEpJVENvZGUgeworY2xhc3MgSklU
Q29kZVdpdGhDb2RlUmVmIDogcHVibGljIEpJVENvZGUgeworcHJvdGVjdGVkOgorICAgIEpJVENv
ZGVXaXRoQ29kZVJlZihKSVRUeXBlKTsKKyAgICBKSVRDb2RlV2l0aENvZGVSZWYoQ29kZVJlZiwg
SklUVHlwZSk7CisKIHB1YmxpYzoKLSAgICBEaXJlY3RKSVRDb2RlKEpJVFR5cGUpOwotICAgIERp
cmVjdEpJVENvZGUoY29uc3QgQ29kZVJlZiwgSklUVHlwZSk7Ci0gICAgdmlydHVhbCB+RGlyZWN0
SklUQ29kZSgpOwotICAgIAotICAgIHZvaWQgaW5pdGlhbGl6ZUNvZGVSZWYoQ29kZVJlZiByZWYp
OworICAgIHZpcnR1YWwgfkpJVENvZGVXaXRoQ29kZVJlZigpOwogCi0gICAgdmlydHVhbCBDb2Rl
UHRyIGFkZHJlc3NGb3JDYWxsKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkKiBleGVjdXRh
YmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCogZGF0YUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHVuc2lnbmVkIG9mZnNldE9mKHZvaWQqIHBvaW50ZXJJbnRvQ29kZSkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBzaXplX3Qgc2l6ZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBj
b250YWlucyh2b2lkKikgb3ZlcnJpZGU7CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgQ29k
ZVJlZiBtX3JlZjsKIH07CiAKK2NsYXNzIERpcmVjdEpJVENvZGUgOiBwdWJsaWMgSklUQ29kZVdp
dGhDb2RlUmVmIHsKK3B1YmxpYzoKKyAgICBEaXJlY3RKSVRDb2RlKEpJVFR5cGUpOworICAgIERp
cmVjdEpJVENvZGUoQ29kZVJlZiwgQ29kZVB0ciB3aXRoQXJpdHlDaGVjaywgSklUVHlwZSk7Cisg
ICAgdmlydHVhbCB+RGlyZWN0SklUQ29kZSgpOworICAgIAorICAgIHZvaWQgaW5pdGlhbGl6ZUNv
ZGVSZWYoQ29kZVJlZiByZWYsIENvZGVQdHIgd2l0aEFyaXR5Q2hlY2spOworCisgICAgdmlydHVh
bCBDb2RlUHRyIGFkZHJlc3NGb3JDYWxsKFZNJiwgRXhlY3V0YWJsZUJhc2UqLCBBcml0eUNoZWNr
TW9kZSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAg
ICBzdHJ1Y3QgUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVycyB7CisgICAgICAgIENvZGVSZWYg
d2l0aG91dEFyaXR5Q2hlY2s7CisgICAgICAgIENvZGVSZWYgd2l0aEFyaXR5Q2hlY2s7CisgICAg
fTsKKworICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlcnMqIGVuc3VyZVdyYXBwZXJzKCk7
CisgICAgCisgICAgQ29kZVB0ciBtX3dpdGhBcml0eUNoZWNrOworICAgIAorICAgIHN0ZDo6dW5p
cXVlX3B0cjxSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJzPiBtX3dyYXBwZXJzOworfTsKKwor
Y2xhc3MgTmF0aXZlSklUQ29kZSA6IHB1YmxpYyBKSVRDb2RlV2l0aENvZGVSZWYgeworcHVibGlj
OgorICAgIE5hdGl2ZUpJVENvZGUoSklUVHlwZSk7CisgICAgTmF0aXZlSklUQ29kZShDb2RlUmVm
LCBKSVRUeXBlKTsKKyAgICB2aXJ0dWFsIH5OYXRpdmVKSVRDb2RlKCk7CisgICAgCisgICAgdm9p
ZCBpbml0aWFsaXplQ29kZVJlZihDb2RlUmVmIHJlZik7CisKKyAgICB2aXJ0dWFsIENvZGVQdHIg
YWRkcmVzc0ZvckNhbGwoVk0mLCBFeGVjdXRhYmxlQmFzZSosIEFyaXR5Q2hlY2tNb2RlLCBSZWdp
c3RlclByZXNlcnZhdGlvbk1vZGUpIG92ZXJyaWRlOworfTsKKwogfSAvLyBuYW1lc3BhY2UgSlND
CiAKIG5hbWVzcGFjZSBXVEYgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRFeGNlcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURXhjZXB0
aW9ucy5jcHAKaW5kZXggODA4NGY3NzNiMjFkZDZkN2ZjMGFjMzg5ZDU3YTNkZDI2YWM0YmNkZC4u
MmI2MzdjMTE2NDZmYzY1OTdhNDE5Y2VjZTNjZjM2YzNlYzA4MjJkYiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCkBAIC00Myw2ICs0MywxMSBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogdm9pZCBnZW5lcmljVW53aW5kKFZNKiB2bSwgRXhlY1N0YXRlKiBjYWxs
RnJhbWUsIEpTVmFsdWUgZXhjZXB0aW9uVmFsdWUpCiB7CisgICAgaWYgKE9wdGlvbnM6OmJyZWFr
T25UaHJvdygpKSB7CisgICAgICAgIGRhdGFMb2coIkluIGNhbGwgZnJhbWUgIiwgUmF3UG9pbnRl
cihjYWxsRnJhbWUpLCAiIGZvciBjb2RlIGJsb2NrICIsICpjYWxsRnJhbWUtPmNvZGVCbG9jaygp
LCAiXG4iKTsKKyAgICAgICAgQ1JBU0goKTsKKyAgICB9CisgICAgCiAgICAgUkVMRUFTRV9BU1NF
UlQoZXhjZXB0aW9uVmFsdWUpOwogICAgIEhhbmRsZXJJbmZvKiBoYW5kbGVyID0gdm0tPmludGVy
cHJldGVyLT51bndpbmQoY2FsbEZyYW1lLCBleGNlcHRpb25WYWx1ZSk7IC8vIFRoaXMgbWF5IHVw
ZGF0ZSBjYWxsRnJhbWUuCiAKQEAgLTU2LDcgKzYxLDcgQEAgdm9pZCBnZW5lcmljVW53aW5kKFZN
KiB2bSwgRXhlY1N0YXRlKiBjYWxsRnJhbWUsIEpTVmFsdWUgZXhjZXB0aW9uVmFsdWUpCiAgICAg
ICAgIGNhdGNoUm91dGluZSA9IGNhdGNoUENGb3JJbnRlcnByZXRlci0+dS5wb2ludGVyOwogI2Vu
ZGlmCiAgICAgfSBlbHNlCi0gICAgICAgIGNhdGNoUm91dGluZSA9IExMSW50OjpnZXRDb2RlUHRy
KHJldHVybkZyb21KYXZhU2NyaXB0KTsKKyAgICAgICAgY2F0Y2hSb3V0aW5lID0gTExJbnQ6Omdl
dENvZGVQdHIoaGFuZGxlVW5jYXVnaHRFeGNlcHRpb24pOwogICAgIAogICAgIHZtLT5jYWxsRnJh
bWVGb3JUaHJvdyA9IGNhbGxGcmFtZTsKICAgICB2bS0+dGFyZ2V0TWFjaGluZVBDRm9yVGhyb3cg
PSBjYXRjaFJvdXRpbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VElubGluZUNhY2hlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
SW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCmluZGV4IDc0YjA4NmE3YzU3MzQ2M2QwNzNmZjMxNDg2
NTdiMGQwY2FjNTFmYjYuLjJmM2VmNTcwZDU4OGQ5ZTdhODczOWY0OTQwNmFlMmYxNjYxMjc1Njcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5l
cmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVH
ZW5lcmF0b3IuY3BwCkBAIC00OSw3ICs0OSw3IEBAIEpJVElubGluZUNhY2hlR2VuZXJhdG9yOjpK
SVRJbmxpbmVDYWNoZUdlbmVyYXRvcihDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZU9yaWdpCiAK
IEpJVEJ5SWRHZW5lcmF0b3I6OkpJVEJ5SWRHZW5lcmF0b3IoCiAgICAgQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdp
c3RlcnMsCi0gICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1ZhbHVlUmVncyBiYXNlLCBK
U1ZhbHVlUmVncyB2YWx1ZSwgYm9vbCByZWdpc3RlcnNGbHVzaGVkKQorICAgIEpTVmFsdWVSZWdz
IGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQpCiAgICAgOiBK
SVRJbmxpbmVDYWNoZUdlbmVyYXRvcihjb2RlQmxvY2ssIGNvZGVPcmlnaW4pCiAgICAgLCBtX2Jh
c2UoYmFzZSkKICAgICAsIG1fdmFsdWUodmFsdWUpCkBAIC02Miw3ICs2Miw2IEBAIEpJVEJ5SWRH
ZW5lcmF0b3I6OkpJVEJ5SWRHZW5lcmF0b3IoCiAgICAgbV9zdHViSW5mby0+cGF0Y2gudXNlZFJl
Z2lzdGVycy5zZXQoYmFzZSk7CiAgICAgbV9zdHViSW5mby0+cGF0Y2gudXNlZFJlZ2lzdGVycy5z
ZXQodmFsdWUpOwogICAgIAotICAgIG1fc3R1YkluZm8tPnBhdGNoLmNhbGxGcmFtZVJlZ2lzdGVy
ID0gc3RhdGljX2Nhc3Q8aW50OF90PihjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgbV9zdHViSW5m
by0+cGF0Y2guYmFzZUdQUiA9IHN0YXRpY19jYXN0PGludDhfdD4oYmFzZS5wYXlsb2FkR1BSKCkp
OwogICAgIG1fc3R1YkluZm8tPnBhdGNoLnZhbHVlR1BSID0gc3RhdGljX2Nhc3Q8aW50OF90Pih2
YWx1ZS5wYXlsb2FkR1BSKCkpOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCkBAIC0xMzAsMTEgKzEy
OSw5IEBAIHZvaWQgSklUR2V0QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fz
c2VtYmxlciYgaml0KQogCiBKSVRQdXRCeUlkR2VuZXJhdG9yOjpKSVRQdXRCeUlkR2VuZXJhdG9y
KAogICAgIENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIGNvbnN0
IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLAotICAgIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3Rl
ciwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlZyBzY3JhdGNoLAot
ICAgIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCwgRUNNQU1vZGUgZWNtYU1vZGUsIFB1dEtpbmQgcHV0
S2luZCkKLSAgICA6IEpJVEJ5SWRHZW5lcmF0b3IoCi0gICAgICAgIGNvZGVCbG9jaywgY29kZU9y
aWdpbiwgdXNlZFJlZ2lzdGVycywgY2FsbEZyYW1lUmVnaXN0ZXIsIGJhc2UsIHZhbHVlLAotICAg
ICAgICByZWdpc3RlcnNGbHVzaGVkKQorICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdz
IHZhbHVlLCBHUFJSZWcgc2NyYXRjaCwgYm9vbCByZWdpc3RlcnNGbHVzaGVkLAorICAgIEVDTUFN
b2RlIGVjbWFNb2RlLCBQdXRLaW5kIHB1dEtpbmQpCisgICAgOiBKSVRCeUlkR2VuZXJhdG9yKGNv
ZGVCbG9jaywgY29kZU9yaWdpbiwgdXNlZFJlZ2lzdGVycywgYmFzZSwgdmFsdWUsIHJlZ2lzdGVy
c0ZsdXNoZWQpCiAgICAgLCBtX3NjcmF0Y2goc2NyYXRjaCkKICAgICAsIG1fZWNtYU1vZGUoZWNt
YU1vZGUpCiAgICAgLCBtX3B1dEtpbmQocHV0S2luZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaAppbmRleCA2ZmYwYzA5YjUxNDNj
YzIyN2VmNGVhMWJiMjY4YmE3M2NkMzJiOGQ4Li42ZGI5ODM2ZDAyYzM1ZWVmZGM4OWIwODc0MDM0
NGEwNzJlZWEyN2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElu
bGluZUNhY2hlR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJ
bmxpbmVDYWNoZUdlbmVyYXRvci5oCkBAIC01Niw4ICs1Niw4IEBAIHByb3RlY3RlZDoKICAgICBK
SVRCeUlkR2VuZXJhdG9yKCkgeyB9CiAKICAgICBKSVRCeUlkR2VuZXJhdG9yKAotICAgICAgICBD
b2RlQmxvY2sqLCBDb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYsIEdQUlJlZyBjYWxsRnJh
bWVSZWdpc3RlciwKLSAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUs
IGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCk7CisgICAgICAgIENvZGVCbG9jayosIENvZGVPcmlnaW4s
IGNvbnN0IFJlZ2lzdGVyU2V0JiwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUs
CisgICAgICAgIGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCk7CiAgICAgCiBwdWJsaWM6CiAgICAgdm9p
ZCByZXBvcnRTbG93UGF0aENhbGwoTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIHNsb3dQYXRoQmVnaW4s
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwpCkBAIC05NiwxMSArOTYsOCBAQCBwdWJsaWM6CiAK
ICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yKAogICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaywg
Q29kZU9yaWdpbiBjb2RlT3JpZ2luLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywK
LSAgICAgICAgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1Zh
bHVlUmVncyB2YWx1ZSwKLSAgICAgICAgYm9vbCByZWdpc3RlcnNGbHVzaGVkKQotICAgICAgICA6
IEpJVEJ5SWRHZW5lcmF0b3IoCi0gICAgICAgICAgICBjb2RlQmxvY2ssIGNvZGVPcmlnaW4sIHVz
ZWRSZWdpc3RlcnMsIGNhbGxGcmFtZVJlZ2lzdGVyLCBiYXNlLCB2YWx1ZSwKLSAgICAgICAgICAg
IHJlZ2lzdGVyc0ZsdXNoZWQpCisgICAgICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdz
IHZhbHVlLCBib29sIHJlZ2lzdGVyc0ZsdXNoZWQpCisgICAgICAgIDogSklUQnlJZEdlbmVyYXRv
cihjb2RlQmxvY2ssIGNvZGVPcmlnaW4sIHVzZWRSZWdpc3RlcnMsIGJhc2UsIHZhbHVlLCByZWdp
c3RlcnNGbHVzaGVkKQogICAgIHsKICAgICB9CiAgICAgCkBAIC0xMTIsOSArMTA5LDggQEAgcHVi
bGljOgogICAgIEpJVFB1dEJ5SWRHZW5lcmF0b3IoKSB7IH0KIAogICAgIEpJVFB1dEJ5SWRHZW5l
cmF0b3IoCi0gICAgICAgIENvZGVCbG9jayosIENvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0
JiB1c2VkUmVnaXN0ZXJzLCBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIsCi0gICAgICAgIEpTVmFs
dWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZWcgc2NyYXRjaCwgYm9vbCByZWdp
c3RlcnNGbHVzaGVkLAotICAgICAgICBFQ01BTW9kZSwgUHV0S2luZCk7CisgICAgICAgIENvZGVC
bG9jayosIENvZGVPcmlnaW4sIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBKU1Zh
bHVlUmVncyBiYXNlLAorICAgICAgICBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHNjcmF0Y2gs
IGJvb2wgcmVnaXN0ZXJzRmx1c2hlZCwgRUNNQU1vZGUsIFB1dEtpbmQpOwogICAgIAogICAgIHZv
aWQgZ2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOwogICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVElubGluZXMuaAppbmRleCA5MzMwZTc3M2U3NDUxNDM1NDIyMGVmYTY2Nzg2
M2E2ZTlkN2U3MzI2Li43MGJiNGYzZWNiNDIwM2RkMTY1MDIzZTIzNDBiZGY5ZDUyYWM1YjM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaApAQCAtOTMsNyArOTMsNiBAQCBB
TFdBWVNfSU5MSU5FIHZvaWQgSklUOjplbWl0TG9hZENoYXJhY3RlclN0cmluZyhSZWdpc3RlcklE
IHNyYywgUmVnaXN0ZXJJRCBkc3QsCiBBTFdBWVNfSU5MSU5FIEpJVDo6Q2FsbCBKSVQ6OmVtaXRO
YWtlZENhbGwoQ29kZVB0ciBmdW5jdGlvbikKIHsKICAgICBBU1NFUlQobV9ieXRlY29kZU9mZnNl
dCAhPSAodW5zaWduZWQpLTEpOyAvLyBUaGlzIG1ldGhvZCBzaG91bGQgb25seSBiZSBjYWxsZWQg
ZHVyaW5nIGhvdC9jb2xkIHBhdGggZ2VuZXJhdGlvbiwgc28gdGhhdCBtX2J5dGVjb2RlT2Zmc2V0
IGlzIHNldC4KLQogICAgIENhbGwgbmFrZWRDYWxsID0gbmVhckNhbGwoKTsKICAgICBtX2NhbGxz
LmFwcGVuZChDYWxsUmVjb3JkKG5ha2VkQ2FsbCwgbV9ieXRlY29kZU9mZnNldCwgZnVuY3Rpb24u
ZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwogICAgIHJldHVybiBuYWtlZENhbGw7CkBAIC0yMjMsMjEg
KzIyMiwyMSBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9w
ZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FWiBvcGVyYXRpbwogICAgIHJldHVybiBhcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7CiB9CiAK
LUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFBf
SklUT3BlcmF0aW9uX0VaIG9wZXJhdGlvbiwgaW50MzJfdCBvcCkKK0FMV0FZU19JTkxJTkUgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFNfSklUT3BlcmF0aW9uX0VDQyBv
cGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09wMikKIHsKLSAgICBz
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyKG9wKSk7CisgICAgc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wMSwgcmVnT3AyKTsKICAgICByZXR1cm4gYXBwZW5k
Q2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwogfQogCi1BTFdBWVNfSU5MSU5FIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJhdGlvbl9FQ0Mg
b3BlcmF0aW9uLCBSZWdpc3RlcklEIHJlZ09wMSwgUmVnaXN0ZXJJRCByZWdPcDIpCitBTFdBWVNf
SU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihTX0pJVE9wZXJh
dGlvbl9FT0pzcyBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3AxLCBSZWdpc3RlcklEIHJlZ09w
MikKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUocmVnT3AxLCByZWdPcDIpOwog
ICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAK
LUFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFNf
SklUT3BlcmF0aW9uX0VPSnNzIG9wZXJhdGlvbiwgUmVnaXN0ZXJJRCByZWdPcDEsIFJlZ2lzdGVy
SUQgcmVnT3AyKQorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxP
cGVyYXRpb24oU3BydF9KSVRPcGVyYXRpb25fRVogb3BlcmF0aW9uLCBpbnQzMl90IG9wKQogewot
ICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShyZWdPcDEsIHJlZ09wMik7CisgICAgc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMihvcCkpOwogICAgIHJldHVybiBh
cHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKQEAgLTI3Nyw2ICsy
NzYsMTMgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVy
YXRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2UKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdp
dGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKG9wZXJhdGlvbik7CiB9CiAKK0FMV0FZU19J
TkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uTm9FeGNlcHRpb25D
aGVjayhKX0pJVE9wZXJhdGlvbl9FRSBvcGVyYXRpb24sIFJlZ2lzdGVySUQgcmVnT3ApCit7Cisg
ICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKHJlZ09wKTsKKyAgICB1cGRhdGVUb3BDYWxs
RnJhbWUoKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24pOworfQorCiBBTFdBWVNf
SU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbldpdGhDYWxsRnJh
bWVSb2xsYmFja09uRXhjZXB0aW9uKFZfSklUT3BlcmF0aW9uX0VDYiBvcGVyYXRpb24sIENvZGVC
bG9jayogcG9pbnRlcikKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3Rl
ZEltbVB0cihwb2ludGVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cAppbmRleCAyYmRhZTE5MTRkMDc1YTRkZjYwYmE2MDk4ZTMxNjM5NzFmYWI1MzFmLi5jYTdhZDEx
ZjJlMGI4YTNiOGIxODU4OTFkN2U1MjJiYWU0MDNhMjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJKU0Z1bmN0
aW9uLmgiCiAjaW5jbHVkZSAiSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oIgogI2luY2x1ZGUgIkxp
bmtCdWZmZXIuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgog
I2luY2x1ZGUgIlNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgog
CkBAIC03Myw3ICs3NCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2VuZChJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQogewogICAgIFJFTEVBU0VfQVNTRVJUKHJldHVyblZhbHVlR1BSICE9
IGNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJ
bnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJldHVyblZhbHVlR1BSKTsKLSAgICByZXN0b3JlUmV0
dXJuQWRkcmVzc0JlZm9yZVJldHVybihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJh
bWU6OnJldHVyblBDT2Zmc2V0KCkpKTsKKyAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAg
IHJldCgpOwogfQogCkBAIC0yNjIsMTQgKzI2Myw4IEBAIHZvaWQgSklUOjplbWl0X29wX3JldChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIC8vIFJldHVybiB0aGUgcmVzdWx0
IGluICVlYXguCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25b
MV0udS5vcGVyYW5kLCByZXR1cm5WYWx1ZUdQUik7CiAKLSAgICAvLyBHcmFiIHRoZSByZXR1cm4g
YWRkcmVzcy4KLSAgICBlbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKHJlZ1Qx
KTsKLQotICAgIC8vIFJlc3RvcmUgb3VyIGNhbGxlcidzICJyIi4KLSAgICBlbWl0R2V0Q2FsbGVy
RnJhbWVGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKGNhbGxGcmFtZVJlZ2lzdGVyKTsKLQotICAgIC8v
IFJldHVybi4KLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdUMSk7Cisg
ICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQoKTsKKyAgICBlbWl0RnVuY3Rpb25FcGlsb2d1
ZSgpOwogICAgIHJldCgpOwogfQogCkBAIC0yODUsMTQgKzI4MCw4IEBAIHZvaWQgSklUOjplbWl0
X29wX3JldF9vYmplY3Rfb3JfdGhpcyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQog
ICAgIGxvYWRQdHIoQWRkcmVzcyhyZXR1cm5WYWx1ZUdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZz
ZXQoKSksIHJlZ1QyKTsKICAgICBKdW1wIG5vdE9iamVjdCA9IGVtaXRKdW1wSWZOb3RPYmplY3Qo
cmVnVDIpOwogCi0gICAgLy8gR3JhYiB0aGUgcmV0dXJuIGFkZHJlc3MuCi0gICAgZW1pdEdldFJl
dHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihyZWdUMSk7Ci0KLSAgICAvLyBSZXN0b3JlIG91
ciBjYWxsZXIncyAiciIuCi0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRl
clB0cihjYWxsRnJhbWVSZWdpc3Rlcik7Ci0KICAgICAvLyBSZXR1cm4uCi0gICAgcmVzdG9yZVJl
dHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocmVnVDEpOworICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KCk7CiAgICAgcmV0KCk7CiAKICAgICAvLyBSZXR1cm4gJ3RoaXMnIGluICVlYXguCkBAIC0zMDAs
MTQgKzI4OSw4IEBAIHZvaWQgSklUOjplbWl0X29wX3JldF9vYmplY3Rfb3JfdGhpcyhJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIG5vdE9iamVjdC5saW5rKHRoaXMpOwogICAg
IGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCwg
cmV0dXJuVmFsdWVHUFIpOwogCi0gICAgLy8gR3JhYiB0aGUgcmV0dXJuIGFkZHJlc3MuCi0gICAg
ZW1pdEdldFJldHVyblBDRnJvbUNhbGxGcmFtZUhlYWRlclB0cihyZWdUMSk7Ci0KLSAgICAvLyBS
ZXN0b3JlIG91ciBjYWxsZXIncyAiciIuCi0gICAgZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxG
cmFtZUhlYWRlclB0cihjYWxsRnJhbWVSZWdpc3Rlcik7Ci0KICAgICAvLyBSZXR1cm4uCi0gICAg
cmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocmVnVDEpOworICAgIGVtaXRGdW5jdGlv
bkVwaWxvZ3VlKCk7CiAgICAgcmV0KCk7CiB9CiAKQEAgLTY1MCw2ICs2MzMsOSBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9jYXRjaChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAg
IG1vdmUoVHJ1c3RlZEltbVB0cihtX3ZtKSwgcmVnVDMpOwogICAgIGxvYWQ2NChBZGRyZXNzKHJl
Z1QzLCBWTTo6Y2FsbEZyYW1lRm9yVGhyb3dPZmZzZXQoKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsK
KworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoc3RhY2tQb2ludGVyT2Zmc2V0Rm9yKGNvZGVCbG9j
aygpKSAqIHNpemVvZihSZWdpc3RlcikpLCBjYWxsRnJhbWVSZWdpc3Rlciwgc3RhY2tQb2ludGVy
UmVnaXN0ZXIpOworCiAgICAgbG9hZDY0KEFkZHJlc3MocmVnVDMsIFZNOjpleGNlcHRpb25PZmZz
ZXQoKSksIHJlZ1QwKTsKICAgICBzdG9yZTY0KFRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUo
SlNWYWx1ZSgpKSksIEFkZHJlc3MocmVnVDMsIFZNOjpleGNlcHRpb25PZmZzZXQoKSkpOwogICAg
IGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7
CkBAIC0xMTAzLDIwICsxMDg5LDggQEAgdm9pZCBKSVQ6OmVtaXRfb3BfbG9vcF9oaW50KEluc3Ry
dWN0aW9uKikKIHsKICAgICAvLyBFbWl0IHRoZSBKSVQgb3B0aW1pemF0aW9uIGNoZWNrOiAKICAg
ICBpZiAoY2FuQmVPcHRpbWl6ZWQoKSkgewotICAgICAgICBpZiAoT3B0aW9uczo6ZW5hYmxlT1NS
RW50cnlJbkxvb3BzKCkpIHsKLSAgICAgICAgICAgIGFkZFNsb3dDYXNlKGJyYW5jaEFkZDMyKFBv
c2l0aXZlT3JaZXJvLCBUcnVzdGVkSW1tMzIoT3B0aW9uczo6ZXhlY3V0aW9uQ291bnRlckluY3Jl
bWVudEZvckxvb3AoKSksCi0gICAgICAgICAgICAgICAgQWJzb2x1dGVBZGRyZXNzKG1fY29kZUJs
b2NrLT5hZGRyZXNzT2ZKSVRFeGVjdXRlQ291bnRlcigpKSkpOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgLy8gQWRkIHdpdGggc2F0dXJhdGlvbi4KLSAgICAgICAgICAgIG1vdmUoVHJ1
c3RlZEltbVB0cihtX2NvZGVCbG9jay0+YWRkcmVzc09mSklURXhlY3V0ZUNvdW50ZXIoKSksIHJl
Z1QzKTsKLSAgICAgICAgICAgIGxvYWQzMihyZWdUMywgcmVnVDIpOwotICAgICAgICAgICAgSnVt
cCBkb250QWRkID0gYnJhbmNoMzIoCi0gICAgICAgICAgICAgICAgR3JlYXRlclRoYW4sIHJlZ1Qy
LAotICAgICAgICAgICAgICAgIFRydXN0ZWRJbW0zMihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMy
X3Q+OjptYXgoKSAtIE9wdGlvbnM6OmV4ZWN1dGlvbkNvdW50ZXJJbmNyZW1lbnRGb3JMb29wKCkp
KTsKLSAgICAgICAgICAgIGFkZDMyKFRydXN0ZWRJbW0zMihPcHRpb25zOjpleGVjdXRpb25Db3Vu
dGVySW5jcmVtZW50Rm9yTG9vcCgpKSwgcmVnVDIpOwotICAgICAgICAgICAgc3RvcmUzMihyZWdU
MiwgcmVnVDMpOwotICAgICAgICAgICAgZG9udEFkZC5saW5rKHRoaXMpOwotICAgICAgICB9Cisg
ICAgICAgIGFkZFNsb3dDYXNlKGJyYW5jaEFkZDMyKFBvc2l0aXZlT3JaZXJvLCBUcnVzdGVkSW1t
MzIoT3B0aW9uczo6ZXhlY3V0aW9uQ291bnRlckluY3JlbWVudEZvckxvb3AoKSksCisgICAgICAg
ICAgICBBYnNvbHV0ZUFkZHJlc3MobV9jb2RlQmxvY2stPmFkZHJlc3NPZkpJVEV4ZWN1dGVDb3Vu
dGVyKCkpKSk7CiAgICAgfQogCiAgICAgLy8gRW1pdCB0aGUgd2F0Y2hkb2cgdGltZXIgY2hlY2s6
CkBAIC0xMTI4LDExICsxMTAyLDEyIEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9sb29wX2hpbnQo
SW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpCiB7CiAjaWYg
RU5BQkxFKERGR19KSVQpCiAgICAgLy8gRW1pdCB0aGUgc2xvdyBwYXRoIGZvciB0aGUgSklUIG9w
dGltaXphdGlvbiBjaGVjazoKLSAgICBpZiAoY2FuQmVPcHRpbWl6ZWQoKSAmJiBPcHRpb25zOjpl
bmFibGVPU1JFbnRyeUluTG9vcHMoKSkgeworICAgIGlmIChjYW5CZU9wdGltaXplZCgpKSB7CiAg
ICAgICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKICAgICAgICAgCiAgICAgICAgIGNhbGxPcGVyYXRp
b24ob3BlcmF0aW9uT3B0aW1pemUsIG1fYnl0ZWNvZGVPZmZzZXQpOwogICAgICAgICBKdW1wIG5v
T3B0aW1pemVkRW50cnkgPSBicmFuY2hUZXN0UHRyKFplcm8sIHJldHVyblZhbHVlR1BSKTsKKyAg
ICAgICAgbW92ZShyZXR1cm5WYWx1ZUdQUjIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICAg
ICAganVtcChyZXR1cm5WYWx1ZUdQUik7CiAgICAgICAgIG5vT3B0aW1pemVkRW50cnkubGluayh0
aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
MzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3Bw
CmluZGV4IDI5ZTg4ODBhYTU2NWM1MmRkNjNiZjMyNDZhNTBiYTg5OTlmNWUwY2MuLjk4ZDEwYTNm
NGRjYjEyZDg5ZjM3YTEyZjIyNjA0Yjk0NmUwOGU2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA5LCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgUGF0cmljayBHYW5zdGVy
ZXIgPHBhcm9nYUBwYXJvZ2EuY29tPgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzksNiArMzksNyBA
QAogI2luY2x1ZGUgIkpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU1Zhcmlh
YmxlT2JqZWN0LmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgorI2luY2x1ZGUgIk1heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiU2xvd1BhdGhDYWxsLmgiCiAjaW5j
bHVkZSAiVmlydHVhbFJlZ2lzdGVyLmgiCiAKQEAgLTQ4LDYgKzQ5LDcgQEAgSklUOjpDb2RlUmVm
IEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKFZNKiB2bSwgTmF0aXZlRnVuY3Rpb24g
ZnVuYykKIHsKICAgICBDYWxsIG5hdGl2ZUNhbGw7CiAKKyAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1
ZSgpOwogICAgIGVtaXRQdXRJbW1lZGlhdGVUb0NhbGxGcmFtZUhlYWRlcigwLCBKU1N0YWNrOjpD
b2RlQmxvY2spOwogICAgIHN0b3JlUHRyKGNhbGxGcmFtZVJlZ2lzdGVyLCAmbV92bS0+dG9wQ2Fs
bEZyYW1lKTsKIApAQCAtNTgsMjEgKzYwLDE3IEBAIEpJVDo6Q29kZVJlZiBKSVQ6OnByaXZhdGVD
b21waWxlQ1RJTmF0aXZlQ2FsbChWTSogdm0sIE5hdGl2ZUZ1bmN0aW9uIGZ1bmMpCiAgICAgZW1p
dEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6U2NvcGVDaGFpbiwgcmVnVDEsIHJl
Z1QwKTsKICAgICBlbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBKU1N0YWNrOjpT
Y29wZUNoYWluKTsKIAotICAgIHBlZWsocmVnVDEpOwotICAgIGVtaXRQdXRSZXR1cm5QQ1RvQ2Fs
bEZyYW1lSGVhZGVyKHJlZ1QxKTsKLQogICAgIC8vIENhbGxpbmcgY29udmVudGlvbjogICAgICBm
KGVjeCwgZWR4LCAuLi4pOwogICAgIC8vIEhvc3QgZnVuY3Rpb24gc2lnbmF0dXJlOiBmKEV4ZWNT
dGF0ZSopOwogICAgIG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6ZWN4KTsK
IAotICAgIHN1YlB0cihUcnVzdGVkSW1tMzIoMTYgLSBzaXplb2Yodm9pZCopKSwgc3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOyAvLyBBbGlnbiBzdGFjayBhZnRlciBjYWxsLgotCi0gICAgbW92ZShyZWdU
MCwgY2FsbEZyYW1lUmVnaXN0ZXIpOyAvLyBFYWdlcmx5IHJlc3RvcmUgY2FsbGVyIGZyYW1lIHJl
Z2lzdGVyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjay4KKyAgICBzdWJQdHIoVHJ1c3RlZElt
bTMyKDgpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7IC8vIEFsaWduIHN0YWNrIGZvciBjYWxsLgor
ICAgIHN0b3JlUHRyKFg4NlJlZ2lzdGVyczo6ZWN4LCBBZGRyZXNzKHN0YWNrUG9pbnRlclJlZ2lz
dGVyKSk7CiAKICAgICAvLyBjYWxsIHRoZSBmdW5jdGlvbgogICAgIG5hdGl2ZUNhbGwgPSBjYWxs
KCk7CiAKLSAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKDE2IC0gc2l6ZW9mKHZvaWQqKSksIHN0YWNr
UG9pbnRlclJlZ2lzdGVyKTsKKyAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKDgpLCBzdGFja1BvaW50
ZXJSZWdpc3Rlcik7CiAKICNlbGlmIENQVShBUk0pIHx8IENQVShTSDQpIHx8IENQVShNSVBTKQog
ICAgIC8vIExvYWQgY2FsbGVyIGZyYW1lJ3Mgc2NvcGUgY2hhaW4gaW50byB0aGlzIGNhbGxmcmFt
ZSBzbyB0aGF0IHdoYXRldmVyIHdlIGNhbGwgY2FuIGdldCB0byBpdHMgZ2xvYmFsIGRhdGEuCkBA
IC04MCw5ICs3OCw2IEBAIEpJVDo6Q29kZVJlZiBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTmF0aXZl
Q2FsbChWTSogdm0sIE5hdGl2ZUZ1bmN0aW9uIGZ1bmMpCiAgICAgZW1pdEdldEZyb21DYWxsRnJh
bWVIZWFkZXJQdHIoSlNTdGFjazo6U2NvcGVDaGFpbiwgcmVnVDEsIHJlZ1QyKTsKICAgICBlbWl0
UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKHJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKIAot
ICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChyZWdUMyk7IC8vIENhbGxlZSBwcmVz
ZXJ2ZWQKLSAgICBlbWl0UHV0UmV0dXJuUENUb0NhbGxGcmFtZUhlYWRlcihyZWdUMyk7Ci0KICNp
ZiBDUFUoTUlQUykKICAgICAvLyBBbGxvY2F0ZSBzdGFjayBzcGFjZSBmb3IgKHVudXNlZCkgMTYg
Ynl0ZXMgKDgtYnl0ZSBhbGlnbmVkKSBmb3IgNCBhcmd1bWVudHMuCiAgICAgc3ViUHRyKFRydXN0
ZWRJbW0zMigxNiksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKQEAgLTkzLDcgKzg4LDYgQEAgSklU
OjpDb2RlUmVmIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElOYXRpdmVDYWxsKFZNKiB2bSwgTmF0aXZl
RnVuY3Rpb24gZnVuYykKICAgICBtb3ZlKGNhbGxGcmFtZVJlZ2lzdGVyLCBhcmd1bWVudEdQUjAp
OwogCiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6Q2FsbGVlLCBh
cmd1bWVudEdQUjEpOwotICAgIG1vdmUocmVnVDIsIGNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8gRWFn
ZXJseSByZXN0b3JlIGNhbGxlciBmcmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZyb20g
c3RhY2suCiAgICAgbG9hZFB0cihBZGRyZXNzKGFyZ3VtZW50R1BSMSwgT0JKRUNUX09GRlNFVE9G
KEpTRnVuY3Rpb24sIG1fZXhlY3V0YWJsZSkpLCByZWdUMik7CiAKICAgICAvLyBjYWxsIHRoZSBm
dW5jdGlvbgpAQCAtMTEzLDMwICsxMDcsMjcgQEAgSklUOjpDb2RlUmVmIEpJVDo6cHJpdmF0ZUNv
bXBpbGVDVElOYXRpdmVDYWxsKFZNKiB2bSwgTmF0aXZlRnVuY3Rpb24gZnVuYykKICAgICAvLyBD
aGVjayBmb3IgYW4gZXhjZXB0aW9uCiAgICAgSnVtcCBzYXdFeGNlcHRpb24gPSBicmFuY2gzMihO
b3RFcXVhbCwgQWJzb2x1dGVBZGRyZXNzKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHZtLT5hZGRy
ZXNzT2ZFeGNlcHRpb24oKSkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFn
KSksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpFbXB0eVZhbHVlVGFnKSk7IAogCisgICAgZW1pdEZ1
bmN0aW9uRXBpbG9ndWUoKTsKICAgICAvLyBSZXR1cm4uCiAgICAgcmV0KCk7CiAKICAgICAvLyBI
YW5kbGUgYW4gZXhjZXB0aW9uCiAgICAgc2F3RXhjZXB0aW9uLmxpbmsodGhpcyk7CiAKLSAgICAv
LyBHcmFiIHRoZSByZXR1cm4gYWRkcmVzcy4KLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRl
ckNhbGwocmVnVDEpOwotCi0gICAgbW92ZShUcnVzdGVkSW1tUHRyKCZ2bS0+ZXhjZXB0aW9uTG9j
YXRpb24pLCByZWdUMik7Ci0gICAgc3RvcmVQdHIocmVnVDEsIHJlZ1QyKTsKICAgICBzdG9yZVB0
cihjYWxsRnJhbWVSZWdpc3RlciwgJm1fdm0tPnRvcENhbGxGcmFtZSk7CiAKICNpZiBDUFUoWDg2
KQotICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLTEyKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwot
ICAgIHB1c2goY2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoLTQp
LCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgbG9hZFB0cihBZGRyZXNzKGNhbGxGcmFtZVJl
Z2lzdGVyKSwgWDg2UmVnaXN0ZXJzOjplY3gpOworICAgIHB1c2goWDg2UmVnaXN0ZXJzOjplY3gp
OwogI2Vsc2UKLSAgICBtb3ZlKGNhbGxGcmFtZVJlZ2lzdGVyLCBhcmd1bWVudEdQUjApOworICAg
IGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJhbWVSZWdpc3RlciksIGFyZ3VtZW50R1BSMCk7CiAjZW5k
aWYKICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoRnVuY3Rpb25QdHIob3BlcmF0aW9uVk1IYW5kbGVF
eGNlcHRpb24pLnZhbHVlKCkpLCByZWdUMyk7CiAgICAgY2FsbChyZWdUMyk7CiAKICNpZiBDUFUo
WDg2KQotICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoMTYpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7
CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMig4KSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogI2Vu
ZGlmCiAKICAgICBqdW1wVG9FeGNlcHRpb25IYW5kbGVyKCk7CkBAIC0xNzUsNyArMTY2LDcgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfZW5kKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7
CiAgICAgQVNTRVJUKHJldHVyblZhbHVlR1BSICE9IGNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICBl
bWl0TG9hZChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMSwgcmVnVDApOwot
ICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEFkZHJlc3MoY2FsbEZyYW1lUmVn
aXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOworICAgIGVtaXRGdW5jdGlvbkVw
aWxvZ3VlKCk7CiAgICAgcmV0KCk7CiB9CiAKQEAgLTkyNyw2ICs5MTgsOSBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9jYXRjaChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIG1vdmUo
VHJ1c3RlZEltbVB0cihtX3ZtKSwgcmVnVDMpOwogICAgIC8vIG9wZXJhdGlvblRocm93IHJldHVy
bnMgdGhlIGNhbGxGcmFtZSBmb3IgdGhlIGhhbmRsZXIuCiAgICAgbG9hZDMyKEFkZHJlc3MocmVn
VDMsIFZNOjpjYWxsRnJhbWVGb3JUaHJvd09mZnNldCgpKSwgY2FsbEZyYW1lUmVnaXN0ZXIpOwor
CisgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihzdGFja1BvaW50ZXJPZmZzZXRGb3IoY29kZUJsb2Nr
KCkpICogc2l6ZW9mKFJlZ2lzdGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJS
ZWdpc3Rlcik7CisKICAgICAvLyBOb3cgc3RvcmUgdGhlIGV4Y2VwdGlvbiByZXR1cm5lZCBieSBv
cGVyYXRpb25UaHJvdy4KICAgICBsb2FkMzIoQWRkcmVzcyhyZWdUMywgVk06OmV4Y2VwdGlvbk9m
ZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpKSwgcmVn
VDApOwogICAgIGxvYWQzMihBZGRyZXNzKHJlZ1QzLCBWTTo6ZXhjZXB0aW9uT2Zmc2V0KCkgKyBP
QkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSksIHJlZ1QxKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IDViNjYwYWRhNDg4ZDUx
ZmQzMjk3MTk2ZTUyMjdlYjJkNGE4MGYwM2MuLjUwM2NmN2Q5Njk1ZGUxMTBlMmNlOTFhYzFlYzJk
NGNiNzFhZGQ4MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzAsMTIgKzMwLDEyIEBACiAjaW5jbHVkZSAiQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAi
QXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZUlubGluZXMuaCIKLSNpbmNs
dWRlICJDb21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRlICJERkdDb21waWxhdGlvbk1vZGUuaCIK
ICNpbmNsdWRlICJERkdEcml2ZXIuaCIKICNpbmNsdWRlICJERkdPU1JFbnRyeS5oIgogI2luY2x1
ZGUgIkRGR1dvcmtsaXN0LmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJFcnJvckhh
bmRsaW5nU2NvcGUuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJIb3N0
Q2FsbFJldHVyblZhbHVlLmgiCiAjaW5jbHVkZSAiSklULmgiCkBAIC03MSw3ICs3MSw3IEBAIHZv
aWQgKiBfUmV0dXJuQWRkcmVzcyh2b2lkKTsKICNlbmRpZgogCiAKLXZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25TdGFja0NoZWNrKEV4ZWNTdGF0ZSogZXhlYywgQ29kZUJsb2NrKiBjb2RlQmxv
Y2spCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93RXJyb3Io
RXhlY1N0YXRlKiBleGVjLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKICAgICAvLyBXZSBwYXNz
IGluIG91ciBvd24gY29kZSBibG9jaywgYmVjYXVzZSB0aGUgY2FsbGZyYW1lIGhhc24ndCBiZWVu
IHBvcHVsYXRlZC4KICAgICBWTSogdm0gPSBjb2RlQmxvY2stPnZtKCk7CkBAIC04MCwxMSArODAs
OCBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RhY2tDaGVjayhFeGVjU3RhdGUqIGV4
ZWMsIENvZGVCbG9jayogY29kZUJsb2NrKQogICAgICAgICBjYWxsZXJGcmFtZSA9IGV4ZWM7CiAK
ICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsZXJGcmFtZSk7Ci0KLSAg
ICBKU1N0YWNrJiBzdGFjayA9IHZtLT5pbnRlcnByZXRlci0+c3RhY2soKTsKLQotICAgIGlmIChV
TkxJS0VMWSghc3RhY2suZ3JvdygmZXhlYy0+cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9y
TG9jYWwoY29kZUJsb2NrLT5mcmFtZVJlZ2lzdGVyQ291bnQoKSkub2Zmc2V0KCldKSkpCi0gICAg
ICAgIHZtLT50aHJvd0V4Y2VwdGlvbihjYWxsZXJGcmFtZSwgY3JlYXRlU3RhY2tPdmVyZmxvd0Vy
cm9yKGNhbGxlckZyYW1lKSk7CisgICAgRXJyb3JIYW5kbGluZ1Njb3BlIGVycm9yU2NvcGUoKnZt
KTsKKyAgICB2bS0+dGhyb3dFeGNlcHRpb24oY2FsbGVyRnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZs
b3dFcnJvcihjYWxsZXJGcmFtZSkpOwogfQogCiBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQ2FsbEFyaXR5Q2hlY2soRXhlY1N0YXRlKiBleGVjKQpAQCAtOTcsNyArOTQsNyBAQCBpbnQz
Ml90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2soRXhlY1N0YXRlKiBleGVj
KQogCiAgICAgaW50MzJfdCBtaXNzaW5nQXJnQ291bnQgPSBDb21tb25TbG93UGF0aHM6OmFyaXR5
Q2hlY2tGb3IoZXhlYywgJnN0YWNrLCBDb2RlRm9yQ2FsbCk7CiAgICAgaWYgKG1pc3NpbmdBcmdD
b3VudCA8IDApCi0gICAgICAgIHZtLT50aHJvd0V4Y2VwdGlvbihjYWxsZXJGcmFtZSwgY3JlYXRl
U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxlckZyYW1lKSk7CisgICAgICAgIHRocm93U3RhY2tPdmVy
Zmxvd0Vycm9yKGNhbGxlckZyYW1lKTsKIAogICAgIHJldHVybiBtaXNzaW5nQXJnQ291bnQ7CiB9
CkBAIC0xMTIsNyArMTA5LDcgQEAgaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnN0
cnVjdEFyaXR5Q2hlY2soRXhlY1N0YXRlKiBleGVjKQogCiAgICAgaW50MzJfdCBtaXNzaW5nQXJn
Q291bnQgPSBDb21tb25TbG93UGF0aHM6OmFyaXR5Q2hlY2tGb3IoZXhlYywgJnN0YWNrLCBDb2Rl
Rm9yQ29uc3RydWN0KTsKICAgICBpZiAobWlzc2luZ0FyZ0NvdW50IDwgMCkKLSAgICAgICAgdm0t
PnRocm93RXhjZXB0aW9uKGNhbGxlckZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2Fs
bGVyRnJhbWUpKTsKKyAgICAgICAgdGhyb3dTdGFja092ZXJmbG93RXJyb3IoY2FsbGVyRnJhbWUp
OwogCiAgICAgcmV0dXJuIG1pc3NpbmdBcmdDb3VudDsKIH0KQEAgLTYxMiwxNSArNjA5LDEzIEBA
IHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1CiAgICAgZGlyZWN0UHV0QnlWYWwoZXhlYywgYXNPYmpl
Y3QoYmFzZVZhbHVlKSwgc3Vic2NyaXB0LCB2YWx1ZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEV2YWwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsRXZhbChFeGVjU3RhdGUqIGV4
ZWMsIEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKIHsKLSAgICBDYWxsRnJhbWUqIGNhbGxlckZyYW1l
ID0gZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKTsKLSAgICBBU1NFUlQoZXhlY0NhbGxlZS0+Y2Fs
bGVyRnJhbWUoKS0+Y29kZUJsb2NrKCktPmNvZGVUeXBlKCkgIT0gRnVuY3Rpb25Db2RlCi0gICAg
ICAgIHx8ICFleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpLT5jb2RlQmxvY2soKS0+bmVlZHNGdWxs
U2NvcGVDaGFpbigpCi0gICAgICAgIHx8IGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCktPnVuY2hl
Y2tlZFIoZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCktPmFjdGl2YXRpb25S
ZWdpc3RlcigpLm9mZnNldCgpKS5qc1ZhbHVlKCkpOworICAgIEFTU0VSVChleGVjLT5jb2RlQmxv
Y2soKS0+Y29kZVR5cGUoKSAhPSBGdW5jdGlvbkNvZGUKKyAgICAgICAgfHwgIWV4ZWMtPmNvZGVC
bG9jaygpLT5uZWVkc0Z1bGxTY29wZUNoYWluKCkKKyAgICAgICAgfHwgZXhlYy0+dW5jaGVja2Vk
UihleGVjLT5jb2RlQmxvY2soKS0+YWN0aXZhdGlvblJlZ2lzdGVyKCkub2Zmc2V0KCkpLmpzVmFs
dWUoKSk7CiAKLSAgICBleGVjQ2FsbGVlLT5zZXRTY29wZShjYWxsZXJGcmFtZS0+c2NvcGUoKSk7
Ci0gICAgZXhlY0NhbGxlZS0+c2V0UmV0dXJuUEMoc3RhdGljX2Nhc3Q8SW5zdHJ1Y3Rpb24qPihP
VVJfUkVUVVJOX0FERFJFU1MpKTsKKyAgICBleGVjQ2FsbGVlLT5zZXRTY29wZShleGVjLT5zY29w
ZSgpKTsKICAgICBleGVjQ2FsbGVlLT5zZXRDb2RlQmxvY2soMCk7CiAKICAgICBpZiAoIWlzSG9z
dEZ1bmN0aW9uKGV4ZWNDYWxsZWUtPmNhbGxlZUFzVmFsdWUoKSwgZ2xvYmFsRnVuY0V2YWwpKQpA
QCAtNjg1LDcgKzY4MCw4IEBAIHN0YXRpYyB2b2lkKiBoYW5kbGVIb3N0Q2FsbChFeGVjU3RhdGUq
IGV4ZWNDYWxsZWUsIEpTVmFsdWUgY2FsbGVlLCBDb2RlU3BlY2lhbGl6CiAgICAgcmV0dXJuIHZt
LT5nZXRDVElTdHViKHRocm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVyYXRvcikuY29k
ZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCk7CiB9CiAKLWlubGluZSBjaGFyKiBsaW5rRm9yKEV4ZWNT
dGF0ZSogZXhlY0NhbGxlZSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQoraW5saW5lIGNo
YXIqIGxpbmtGb3IoCisgICAgRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBDb2RlU3BlY2lhbGl6YXRp
b25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCiB7CiAgICAg
RXhlY1N0YXRlKiBleGVjID0gZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKTsKICAgICBWTSogdm0g
PSAmZXhlYy0+dm0oKTsKQEAgLTcwMywzOSArNjk5LDUzIEBAIGlubGluZSBjaGFyKiBsaW5rRm9y
KEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQogICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyOwogICAgIENvZGVCbG9jayogY29kZUJsb2Nr
ID0gMDsKICAgICBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbyA9IGV4ZWMtPmNvZGVCbG9jaygp
LT5nZXRDYWxsTGlua0luZm8oZXhlY0NhbGxlZS0+cmV0dXJuUEMoKSk7Ci0gICAgaWYgKGV4ZWN1
dGFibGUtPmlzSG9zdEZ1bmN0aW9uKCkpCi0gICAgICAgIGNvZGVQdHIgPSBleGVjdXRhYmxlLT5n
ZW5lcmF0ZWRKSVRDb2RlRm9yKGtpbmQpLT5hZGRyZXNzRm9yQ2FsbCgpOwotICAgIGVsc2Ugewor
ICAgIGlmIChleGVjdXRhYmxlLT5pc0hvc3RGdW5jdGlvbigpKSB7CisgICAgICAgIGNvZGVQdHIg
PSBleGVjdXRhYmxlLT5lbnRyeXBvaW50Rm9yKCp2bSwga2luZCwgTXVzdENoZWNrQXJpdHksIHJl
Z2lzdGVycyk7CisgICAgfSBlbHNlIHsKICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5j
dGlvbkV4ZWN1dGFibGUgPSBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihleGVjdXRh
YmxlKTsKICAgICAgICAgSlNPYmplY3QqIGVycm9yID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5wcmVw
YXJlRm9yRXhlY3V0aW9uKGV4ZWNDYWxsZWUsIGNhbGxlZS0+c2NvcGUoKSwga2luZCk7CiAgICAg
ICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgdm0tPnRocm93RXhjZXB0aW9uKGV4ZWMsIGNy
ZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVjKSk7CisgICAgICAgICAgICB0aHJvd1N0YWNrT3Zl
cmZsb3dFcnJvcihleGVjKTsKICAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNo
YXIqPih2bS0+Z2V0Q1RJU3R1Yih0aHJvd0V4Y2VwdGlvbkZyb21DYWxsU2xvd1BhdGhHZW5lcmF0
b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKICAgICAgICAgfQogICAgICAgICBjb2Rl
QmxvY2sgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmNvZGVCbG9ja0ZvcihraW5kKTsKKyAgICAgICAg
QXJpdHlDaGVja01vZGUgYXJpdHk7CiAgICAgICAgIGlmIChleGVjQ2FsbGVlLT5hcmd1bWVudENv
dW50SW5jbHVkaW5nVGhpcygpIDwgc3RhdGljX2Nhc3Q8c2l6ZV90Pihjb2RlQmxvY2stPm51bVBh
cmFtZXRlcnMoKSkgfHwgY2FsbExpbmtJbmZvLmNhbGxUeXBlID09IENhbGxMaW5rSW5mbzo6Q2Fs
bFZhcmFyZ3MpCi0gICAgICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5l
cmF0ZWRKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3Ioa2luZCk7CisgICAgICAgICAgICBhcml0eSA9
IE11c3RDaGVja0FyaXR5OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb2RlUHRyID0gZnVu
Y3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlRm9yKGtpbmQpLT5hZGRyZXNzRm9yQ2Fs
bCgpOworICAgICAgICAgICAgYXJpdHkgPSBBcml0eUNoZWNrTm90UmVxdWlyZWQ7CisgICAgICAg
IGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmVudHJ5cG9pbnRGb3IoKnZtLCBraW5kLCBh
cml0eSwgcmVnaXN0ZXJzKTsKICAgICB9CiAgICAgaWYgKCFjYWxsTGlua0luZm8uc2Vlbk9uY2Uo
KSkKICAgICAgICAgY2FsbExpbmtJbmZvLnNldFNlZW4oKTsKICAgICBlbHNlCi0gICAgICAgIGxp
bmtGb3IoZXhlY0NhbGxlZSwgY2FsbExpbmtJbmZvLCBjb2RlQmxvY2ssIGNhbGxlZSwgY29kZVB0
ciwga2luZCk7CisgICAgICAgIGxpbmtGb3IoZXhlY0NhbGxlZSwgY2FsbExpbmtJbmZvLCBjb2Rl
QmxvY2ssIGNhbGxlZSwgY29kZVB0ciwga2luZCwgcmVnaXN0ZXJzKTsKICAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4oY29kZVB0ci5leGVjdXRhYmxlQWRkcmVzcygpKTsKIH0KIAog
Y2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2FsbChFeGVjU3RhdGUqIGV4ZWNDYWxs
ZWUpCiB7Ci0gICAgcmV0dXJuIGxpbmtGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwpOworICAg
IHJldHVybiBsaW5rRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxsLCBSZWdpc3RlclByZXNlcnZh
dGlvbk5vdFJlcXVpcmVkKTsKIH0KIAogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5r
Q29uc3RydWN0KEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKIHsKLSAgICByZXR1cm4gbGlua0Zvcihl
eGVjQ2FsbGVlLCBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICByZXR1cm4gbGlua0ZvcihleGVjQ2Fs
bGVlLCBDb2RlRm9yQ29uc3RydWN0LCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsK
K30KKworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNS
ZWdzKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKK3sKKyAgICByZXR1cm4gbGlua0ZvcihleGVjQ2Fs
bGVlLCBDb2RlRm9yQ2FsbCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKIH0KIAotaW5saW5lIGNo
YXIqIHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kIGtpbmQsIEpTQ2VsbComIGNhbGxlZUFzRnVuY3Rpb25DZWxsKQorY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3Mo
RXhlY1N0YXRlKiBleGVjQ2FsbGVlKQoreworICAgIHJldHVybiBsaW5rRm9yKGV4ZWNDYWxsZWUs
IENvZGVGb3JDb25zdHJ1Y3QsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7Cit9CisKK2lubGluZSBj
aGFyKiB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9uKAorICAgIEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwg
Q29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVn
aXN0ZXJzLAorICAgIEpTQ2VsbComIGNhbGxlZUFzRnVuY3Rpb25DZWxsKQogewogICAgIEV4ZWNT
dGF0ZSogZXhlYyA9IGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCk7CiAgICAgVk0qIHZtID0gJmV4
ZWMtPnZtKCk7CkBAIC03NTcsMTYgKzc2NywyMCBAQCBpbmxpbmUgY2hhciogdmlydHVhbEZvcldp
dGhGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIENvZGVTcGVjaWFsaXphdGlvbktpbgog
ICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHZtLT5nZXRDVElTdHVi
KHRocm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFi
bGVBZGRyZXNzKCkpOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PGNoYXIqPihleGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3Io
a2luZCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
Y2hhcio+KGV4ZWN1dGFibGUtPmVudHJ5cG9pbnRGb3IoCisgICAgICAgICp2bSwga2luZCwgTXVz
dENoZWNrQXJpdHksIHJlZ2lzdGVycykuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CiB9CiAKLWlubGlu
ZSBjaGFyKiB2aXJ0dWFsRm9yKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgQ29kZVNwZWNpYWxpemF0
aW9uS2luZCBraW5kKQoraW5saW5lIGNoYXIqIHZpcnR1YWxGb3IoCisgICAgRXhlY1N0YXRlKiBl
eGVjQ2FsbGVlLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0
aW9uTW9kZSByZWdpc3RlcnMpCiB7CiAgICAgSlNDZWxsKiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbEln
bm9yZWQ7Ci0gICAgcmV0dXJuIHZpcnR1YWxGb3JXaXRoRnVuY3Rpb24oZXhlY0NhbGxlZSwga2lu
ZCwgY2FsbGVlQXNGdW5jdGlvbkNlbGxJZ25vcmVkKTsKKyAgICByZXR1cm4gdmlydHVhbEZvcldp
dGhGdW5jdGlvbihleGVjQ2FsbGVlLCBraW5kLCByZWdpc3RlcnMsIGNhbGxlZUFzRnVuY3Rpb25D
ZWxsSWdub3JlZCk7CiB9CiAKLXN0YXRpYyBib29sIGF0dGVtcHRUb09wdGltaXplQ2xvc3VyZUNh
bGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsLCBD
YWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbykKK3N0YXRpYyBib29sIGF0dGVtcHRUb09wdGltaXpl
Q2xvc3VyZUNhbGwoCisgICAgRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBSZWdpc3RlclByZXNlcnZh
dGlvbk1vZGUgcmVnaXN0ZXJzLCBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsLAorICAgIENh
bGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvKQogewogICAgIGlmICghY2FsbGVlQXNGdW5jdGlvbkNl
bGwpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTc4MCw3ICs3OTQsMTAgQEAgc3RhdGljIGJv
b2wgYXR0ZW1wdFRvT3B0aW1pemVDbG9zdXJlQ2FsbChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUsIEpT
Q2VsbCogY2FsbGVlQXMKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIEFTU0VSVChj
YWxsZWUtPmV4ZWN1dGFibGUoKS0+aGFzSklUQ29kZUZvckNhbGwoKSk7Ci0gICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyIGNvZGVQdHIgPSBjYWxsZWUtPmV4ZWN1dGFibGUoKS0+Z2VuZXJhdGVkSklU
Q29kZUZvckNhbGwoKS0+YWRkcmVzc0ZvckNhbGwoKTsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgY29kZVB0ciA9CisgICAgICAgIGNhbGxlZS0+ZXhlY3V0YWJsZSgpLT5nZW5lcmF0ZWRKSVRD
b2RlRm9yQ2FsbCgpLT5hZGRyZXNzRm9yQ2FsbCgKKyAgICAgICAgICAgICpleGVjQ2FsbGVlLT5j
YWxsZXJGcmFtZSgpLT5jb2RlQmxvY2soKS0+dm0oKSwgY2FsbGVlLT5leGVjdXRhYmxlKCksCisg
ICAgICAgICAgICBBcml0eUNoZWNrTm90UmVxdWlyZWQsIHJlZ2lzdGVycyk7CiAgICAgCiAgICAg
Q29kZUJsb2NrKiBjb2RlQmxvY2s7CiAgICAgaWYgKGNhbGxlZS0+ZXhlY3V0YWJsZSgpLT5pc0hv
c3RGdW5jdGlvbigpKQpAQCAtNzkzLDcgKzgxMCw3IEBAIHN0YXRpYyBib29sIGF0dGVtcHRUb09w
dGltaXplQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBKU0NlbGwqIGNhbGxlZUFz
CiAgICAgCiAgICAgbGlua0Nsb3N1cmVDYWxsKAogICAgICAgICBleGVjQ2FsbGVlLCBjYWxsTGlu
a0luZm8sIGNvZGVCbG9jaywKLSAgICAgICAgY2FsbGVlLT5zdHJ1Y3R1cmUoKSwgY2FsbGVlLT5l
eGVjdXRhYmxlKCksIGNvZGVQdHIpOworICAgICAgICBjYWxsZWUtPnN0cnVjdHVyZSgpLCBjYWxs
ZWUtPmV4ZWN1dGFibGUoKSwgY29kZVB0ciwgcmVnaXN0ZXJzKTsKICAgICAKICAgICByZXR1cm4g
dHJ1ZTsKIH0KQEAgLTgwMSwyNSArODE4LDQ2IEBAIHN0YXRpYyBib29sIGF0dGVtcHRUb09wdGlt
aXplQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBKU0NlbGwqIGNhbGxlZUFzCiBj
aGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDbG9zdXJlQ2FsbChFeGVjU3RhdGUqIGV4
ZWNDYWxsZWUpCiB7CiAgICAgSlNDZWxsKiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbDsKLSAgICBjaGFy
KiByZXN1bHQgPSB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9uKGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxs
LCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCk7CisgICAgY2hhciogcmVzdWx0ID0gdmlydHVhbEZvcldp
dGhGdW5jdGlvbihleGVjQ2FsbGVlLCBDb2RlRm9yQ2FsbCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25O
b3RSZXF1aXJlZCwgY2FsbGVlQXNGdW5jdGlvbkNlbGwpOwogICAgIENhbGxMaW5rSW5mbyYgY2Fs
bExpbmtJbmZvID0gZXhlY0NhbGxlZS0+Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCktPmdldENh
bGxMaW5rSW5mbyhleGVjQ2FsbGVlLT5yZXR1cm5QQygpKTsKIAotICAgIGlmICghYXR0ZW1wdFRv
T3B0aW1pemVDbG9zdXJlQ2FsbChleGVjQ2FsbGVlLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCwgY2Fs
bExpbmtJbmZvKSkKLSAgICAgICAgbGlua1Nsb3dGb3IoZXhlY0NhbGxlZSwgY2FsbExpbmtJbmZv
LCBDb2RlRm9yQ2FsbCk7CisgICAgaWYgKCFhdHRlbXB0VG9PcHRpbWl6ZUNsb3N1cmVDYWxsKGV4
ZWNDYWxsZWUsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQsIGNhbGxlZUFzRnVuY3Rp
b25DZWxsLCBjYWxsTGlua0luZm8pKQorICAgICAgICBsaW5rU2xvd0ZvcihleGVjQ2FsbGVlLCBj
YWxsTGlua0luZm8sIENvZGVGb3JDYWxsLCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVk
KTsKICAgICAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblZpcnR1YWxDYWxsKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKIHsgICAgCi0gICAgcmV0
dXJuIHZpcnR1YWxGb3IoZXhlY0NhbGxlZSwgQ29kZUZvckNhbGwpOworICAgIHJldHVybiB2aXJ0
dWFsRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxsLCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJl
cXVpcmVkKTsKIH0KIAogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ29uc3Ry
dWN0KEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKIHsKLSAgICByZXR1cm4gdmlydHVhbEZvcihleGVj
Q2FsbGVlLCBDb2RlRm9yQ29uc3RydWN0KTsKKyAgICByZXR1cm4gdmlydHVhbEZvcihleGVjQ2Fs
bGVlLCBDb2RlRm9yQ29uc3RydWN0LCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsK
IH0KIAorY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGxUaGF0UHJl
c2VydmVzUmVncyhFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCit7CisgICAgSlNDZWxsKiBjYWxsZWVB
c0Z1bmN0aW9uQ2VsbDsKKyAgICBjaGFyKiByZXN1bHQgPSB2aXJ0dWFsRm9yV2l0aEZ1bmN0aW9u
KGV4ZWNDYWxsZWUsIENvZGVGb3JDYWxsLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMsIGNhbGxlZUFz
RnVuY3Rpb25DZWxsKTsKKyAgICBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbyA9IGV4ZWNDYWxs
ZWUtPmNhbGxlckZyYW1lKCktPmNvZGVCbG9jaygpLT5nZXRDYWxsTGlua0luZm8oZXhlY0NhbGxl
ZS0+cmV0dXJuUEMoKSk7CisKKyAgICBpZiAoIWF0dGVtcHRUb09wdGltaXplQ2xvc3VyZUNhbGwo
ZXhlY0NhbGxlZSwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzLCBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCwg
Y2FsbExpbmtJbmZvKSkKKyAgICAgICAgbGlua1Nsb3dGb3IoZXhlY0NhbGxlZSwgY2FsbExpbmtJ
bmZvLCBDb2RlRm9yQ2FsbCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKKyAgICAKKyAgICByZXR1
cm4gcmVzdWx0OworfQorCitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxDYWxs
VGhhdFByZXNlcnZlc1JlZ3MoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQoreyAgICAKKyAgICByZXR1
cm4gdmlydHVhbEZvcihleGVjQ2FsbGVlLCBDb2RlRm9yQ2FsbCwgTXVzdFByZXNlcnZlUmVnaXN0
ZXJzKTsKK30KKworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ29uc3RydWN0
VGhhdFByZXNlcnZlc1JlZ3MoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQoreworICAgIHJldHVybiB2
aXJ0dWFsRm9yKGV4ZWNDYWxsZWUsIENvZGVGb3JDb25zdHJ1Y3QsIE11c3RQcmVzZXJ2ZVJlZ2lz
dGVycyk7Cit9CiAKIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVMZXNzKEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMikKIHsKQEAgLTk3NCw3ICsxMDEyLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkRlYnVnKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBkZWJ1Z0hvb2tJRCkKIH0KIAog
I2lmIEVOQUJMRShERkdfSklUKQotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6
ZShFeGVjU3RhdGUqIGV4ZWMsIGludDMyX3QgYnl0ZWNvZGVJbmRleCkKK1Nsb3dQYXRoUmV0dXJu
VHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgaW50
MzJfdCBieXRlY29kZUluZGV4KQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0
aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwpAQCAtMTAyNCw3ICsxMDYyLDcg
QEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMs
IGludDMyX3QgYnl0ZWNvZGVJbmRleCkKICAgICAgICAgY29kZUJsb2NrLT51cGRhdGVBbGxQcmVk
aWN0aW9ucygpOwogICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQogICAgICAgICAg
ICAgZGF0YUxvZygiQ2hvb3Npbmcgbm90IHRvIG9wdGltaXplICIsICpjb2RlQmxvY2ssICIgeWV0
LCBiZWNhdXNlIHRoZSB0aHJlc2hvbGQgaGFzbid0IGJlZW4gcmVhY2hlZC5cbiIpOwotICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsKICAgICB9CiAg
ICAgCiAgICAgaWYgKGNvZGVCbG9jay0+bV9zaG91bGRBbHdheXNCZUlubGluZWQpIHsKQEAgLTEw
MzIsMTggKzEwNzAsMTkgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShF
eGVjU3RhdGUqIGV4ZWMsIGludDMyX3QgYnl0ZWNvZGVJbmRleCkKICAgICAgICAgY29kZUJsb2Nr
LT5vcHRpbWl6ZUFmdGVyV2FybVVwKCk7CiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NS
KCkpCiAgICAgICAgICAgICBkYXRhTG9nKCJDaG9vc2luZyBub3QgdG8gb3B0aW1pemUgIiwgKmNv
ZGVCbG9jaywgIiB5ZXQsIGJlY2F1c2UgbV9zaG91bGRBbHdheXNCZUlubGluZWQgPT0gdHJ1ZS5c
biIpOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAw
KTsKICAgICB9CiAKICAgICAvLyBXZSBjYW5ub3QgYmUgaW4gdGhlIHByb2Nlc3Mgb2YgYXN5bmNo
cm9ub3VzIGNvbXBpbGF0aW9uIGFuZCBhbHNvIGhhdmUgYW4gb3B0aW1pemVkCiAgICAgLy8gcmVw
bGFjZW1lbnQuCisgICAgREZHOjpXb3JrbGlzdCogd29ya2xpc3QgPSBERkc6OmV4aXN0aW5nR2xv
YmFsREZHV29ya2xpc3RPck51bGwoKTsKICAgICBBU1NFUlQoCi0gICAgICAgICF2bS53b3JrbGlz
dAotICAgICAgICB8fCAhKHZtLndvcmtsaXN0LT5jb21waWxhdGlvblN0YXRlKERGRzo6Q29tcGls
YXRpb25LZXkoY29kZUJsb2NrLCBERkc6OkRGR01vZGUpKSAhPSBERkc6OldvcmtsaXN0OjpOb3RL
bm93bgorICAgICAgICAhd29ya2xpc3QKKyAgICAgICAgfHwgISh3b3JrbGlzdC0+Y29tcGlsYXRp
b25TdGF0ZShERkc6OkNvbXBpbGF0aW9uS2V5KGNvZGVCbG9jaywgREZHOjpERkdNb2RlKSkgIT0g
REZHOjpXb3JrbGlzdDo6Tm90S25vd24KICAgICAgICAgJiYgY29kZUJsb2NrLT5oYXNPcHRpbWl6
ZWRSZXBsYWNlbWVudCgpKSk7CiAKICAgICBERkc6OldvcmtsaXN0OjpTdGF0ZSB3b3JrbGlzdFN0
YXRlOwotICAgIGlmICh2bS53b3JrbGlzdCkgeworICAgIGlmICh3b3JrbGlzdCkgewogICAgICAg
ICAvLyBUaGUgY2FsbCB0byBERkc6OldvcmtsaXN0Ojpjb21wbGV0ZUFsbFJlYWR5UGxhbnNGb3JW
TSgpIHdpbGwgY29tcGxldGUgYWxsIHJlYWR5CiAgICAgICAgIC8vIChpLmUuIGNvbXBpbGVkKSBj
b2RlIGJsb2Nrcy4gQnV0IGlmIGl0IGNvbXBsZXRlcyBvdXJzLCB3ZSBhbHNvIG5lZWQgdG8ga25v
dwogICAgICAgICAvLyB3aGF0IHRoZSByZXN1bHQgd2FzIHNvIHRoYXQgd2UgZG9uJ3QgcGxvdyBh
aGVhZCBhbmQgYXR0ZW1wdCBPU1Igb3IgaW1tZWRpYXRlCkBAIC0xMDYyLDcgKzExMDEsNyBAQCBj
aGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgaW50
MzJfdCBieXRlY29kZUluZGV4KQogICAgICAgICAvLyBwcm9iYWJseSBhIHdhc3RlIG9mIG1lbW9y
eS4gT3VyIGdvYWwgaGVyZSBpcyB0byBjb21wbGV0ZSBjb2RlIGJsb2NrcyBhcyBzb29uIGFzCiAg
ICAgICAgIC8vIHBvc3NpYmxlIGluIG9yZGVyIHRvIG1pbmltaXplIHRoZSBjaGFuY2VzIG9mIHVz
IGV4ZWN1dGluZyBiYXNlbGluZSBjb2RlIGFmdGVyCiAgICAgICAgIC8vIG9wdGltaXplZCBjb2Rl
IGlzIGFscmVhZHkgYXZhaWxhYmxlLgotICAgICAgICB3b3JrbGlzdFN0YXRlID0gdm0ud29ya2xp
c3QtPmNvbXBsZXRlQWxsUmVhZHlQbGFuc0ZvclZNKAorICAgICAgICB3b3JrbGlzdFN0YXRlID0g
d29ya2xpc3QtPmNvbXBsZXRlQWxsUmVhZHlQbGFuc0ZvclZNKAogICAgICAgICAgICAgdm0sIERG
Rzo6Q29tcGlsYXRpb25LZXkoY29kZUJsb2NrLCBERkc6OkRGR01vZGUpKTsKICAgICB9IGVsc2UK
ICAgICAgICAgd29ya2xpc3RTdGF0ZSA9IERGRzo6V29ya2xpc3Q6Ok5vdEtub3duOwpAQCAtMTA3
Miw3ICsxMTExLDcgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeGVj
U3RhdGUqIGV4ZWMsIGludDMyX3QgYnl0ZWNvZGVJbmRleCkKICAgICAgICAgLy8gcmVwbGFjZW1l
bnQuCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFjb2RlQmxvY2stPmhhc09wdGltaXplZFJlcGxh
Y2VtZW50KCkpOwogICAgICAgICBjb2RlQmxvY2stPnNldE9wdGltaXphdGlvblRocmVzaG9sZEJh
c2VkT25Db21waWxhdGlvblJlc3VsdChDb21waWxhdGlvbkRlZmVycmVkKTsKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7CiAgICAgfQogCiAgICAg
aWYgKHdvcmtsaXN0U3RhdGUgPT0gREZHOjpXb3JrbGlzdDo6Q29tcGlsZWQpIHsKQEAgLTEwODUs
NyArMTEyNCw3IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXhlY1N0
YXRlKiBleGVjLCBpbnQzMl90IGJ5dGVjb2RlSW5kZXgpCiAgICAgICAgICAgICBjb2RlQmxvY2st
PnVwZGF0ZUFsbFByZWRpY3Rpb25zKCk7CiAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9z
ZU9TUigpKQogICAgICAgICAgICAgICAgIGRhdGFMb2coIkNvZGUgYmxvY2sgIiwgKmNvZGVCbG9j
aywgIiB3YXMgY29tcGlsZWQgYnV0IGl0IGRvZXNuJ3QgaGF2ZSBhbiBvcHRpbWl6ZWQgcmVwbGFj
ZW1lbnQuXG4iKTsKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIGVu
Y29kZVJlc3VsdCgwLCAwKTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAoY29kZUJsb2NrLT5o
YXNPcHRpbWl6ZWRSZXBsYWNlbWVudCgpKSB7CiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3Nl
T1NSKCkpCkBAIC0xMTEwLDcgKzExNDksNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBieXRlY29kZUluZGV4KQogICAgICAg
ICAgICAgICAgICAgICAiKCIsICpjb2RlQmxvY2stPnJlcGxhY2VtZW50KCksICIpIChpbiBsb29w
KS5cbiIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgY29kZUJsb2NrLT5yZXBsYWNlbWVu
dCgpLT5qZXR0aXNvbihDb3VudFJlb3B0aW1pemF0aW9uKTsKLSAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgwLCAwKTsKICAgICAgICAgfQogICAg
IH0gZWxzZSB7CiAgICAgICAgIGlmICghY29kZUJsb2NrLT5zaG91bGRPcHRpbWl6ZU5vdygpKSB7
CkBAIC0xMTE5LDcgKzExNTgsNyBAQCBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGlt
aXplKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBieXRlY29kZUluZGV4KQogICAgICAgICAgICAg
ICAgICAgICAiRGVsYXlpbmcgb3B0aW1pemF0aW9uIGZvciAiLCAqY29kZUJsb2NrLAogICAgICAg
ICAgICAgICAgICAgICAiIGJlY2F1c2Ugb2YgaW5zdWZmaWNpZW50IHByb2ZpbGluZy5cbiIpOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4g
ZW5jb2RlUmVzdWx0KDAsIDApOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKE9wdGlvbnM6OnZl
cmJvc2VPU1IoKSkKQEAgLTExNDcsMTIgKzExODYsMTEgQEAgY2hhciogSklUX09QRVJBVElPTiBv
cGVyYXRpb25PcHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIGludDMyX3QgYnl0ZWNvZGVJbmRleCkK
ICAgICAgICAgfQogCiAgICAgICAgIENvbXBpbGF0aW9uUmVzdWx0IHJlc3VsdCA9IERGRzo6Y29t
cGlsZSgKLSAgICAgICAgICAgIHZtLCBjb2RlQmxvY2stPm5ld1JlcGxhY2VtZW50KCkuZ2V0KCks
IERGRzo6REZHTW9kZSwgYnl0ZWNvZGVJbmRleCwKLSAgICAgICAgICAgIG11c3RIYW5kbGVWYWx1
ZXMsIEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrOjpjcmVhdGUoKSwKLSAgICAg
ICAgICAgIHZtLmVuc3VyZVdvcmtsaXN0KCkpOworICAgICAgICAgICAgdm0sIGNvZGVCbG9jay0+
bmV3UmVwbGFjZW1lbnQoKS5nZXQoKSwgMCwgREZHOjpERkdNb2RlLCBieXRlY29kZUluZGV4LAor
ICAgICAgICAgICAgbXVzdEhhbmRsZVZhbHVlcywgSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2s6OmNyZWF0ZSgpKTsKICAgICAgICAgCiAgICAgICAgIGlmIChyZXN1bHQgIT0gQ29t
cGlsYXRpb25TdWNjZXNzZnVsKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBy
ZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOwogICAgIH0KICAgICAKICAgICBDb2RlQmxvY2sqIG9w
dGltaXplZENvZGVCbG9jayA9IGNvZGVCbG9jay0+cmVwbGFjZW1lbnQoKTsKQEAgLTExNjYsNyAr
MTIwNCw4IEBAIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1pemUoRXhlY1N0YXRl
KiBleGVjLCBpbnQzMl90IGJ5dGVjb2RlSW5kZXgpCiAgICAgICAgIH0KIAogICAgICAgICBjb2Rl
QmxvY2stPm9wdGltaXplU29vbigpOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y2hhcio+
KGFkZHJlc3MpOworICAgICAgICBBU1NFUlQoZXhlYy0+Y29kZUJsb2NrKCkgPT0gb3B0aW1pemVk
Q29kZUJsb2NrKTsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChhZGRyZXNzLCBleGVjLT50
b3BPZkZyYW1lKCkpOwogICAgIH0KIAogICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpIHsK
QEAgLTExOTUsMTQgKzEyMzQsMTQgQEAgY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRp
bWl6ZShFeGVjU3RhdGUqIGV4ZWMsIGludDMyX3QgYnl0ZWNvZGVJbmRleCkKICAgICAgICAgICAg
ICAgICAqY29kZUJsb2NrLT5yZXBsYWNlbWVudCgpLCAiIChhZnRlciBPU1IgZmFpbCkuXG4iKTsK
ICAgICAgICAgfQogICAgICAgICBvcHRpbWl6ZWRDb2RlQmxvY2stPmpldHRpc29uKENvdW50UmVv
cHRpbWl6YXRpb24pOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJl
c3VsdCgwLCAwKTsKICAgICB9CiAKICAgICAvLyBPU1IgZmFpbGVkIHRoaXMgdGltZSwgYnV0IGl0
IG1pZ2h0IHN1Y2NlZWQgbmV4dCB0aW1lISBMZXQgdGhlIGNvZGUgcnVuIGEgYml0CiAgICAgLy8g
bG9uZ2VyIGFuZCB0aGVuIHRyeSBhZ2Fpbi4KICAgICBjb2RlQmxvY2stPm9wdGltaXplQWZ0ZXJX
YXJtVXAoKTsKICAgICAKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAs
IDApOwogfQogI2VuZGlmCiAKQEAgLTE1MzAsMTMgKzE1NjksMTMgQEAgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25JbnN0YW5jZU9mKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZXN1bHQpKTsK
IH0KIAotQ2FsbEZyYW1lKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNpemVBbmRBbGxvY0ZyYW1l
Rm9yVmFyYXJncyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRBcmd1bWVu
dHMsIGludDMyX3QgZmlyc3RGcmVlUmVnaXN0ZXIpCitDYWxsRnJhbWUqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uU2l6ZUZyYW1lRm9yVmFyYXJncyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRBcmd1bWVudHMsIGludDMyX3QgZmlyc3RGcmVlUmVnaXN0ZXIpCiB7CiAgICAg
Vk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2
bSwgZXhlYyk7CiAgICAgSlNTdGFjayogc3RhY2sgPSAmZXhlYy0+aW50ZXJwcmV0ZXIoKS0+c3Rh
Y2soKTsKICAgICBKU1ZhbHVlIGFyZ3VtZW50cyA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQXJn
dW1lbnRzKTsKLSAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IHNpemVBbmRBbGxvY0ZyYW1l
Rm9yVmFyYXJncyhleGVjLCBzdGFjaywgYXJndW1lbnRzLCBmaXJzdEZyZWVSZWdpc3Rlcik7Cisg
ICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBzaXplRnJhbWVGb3JWYXJhcmdzKGV4ZWMsIHN0
YWNrLCBhcmd1bWVudHMsIGZpcnN0RnJlZVJlZ2lzdGVyKTsKICAgICByZXR1cm4gbmV3Q2FsbEZy
YW1lOwogfQogCkBAIC0xNzI5LDEyICsxNzY4LDExIEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25Jbml0R2xvYmFsQ29uc3QoRXhlY1N0YXRlKiBleGVjLCBJbnN0cnVjdGlvbiogcGMpCiAg
ICAgcGNbMV0udS5yZWdpc3RlclBvaW50ZXItPnNldCgqdm0sIGV4ZWMtPmNvZGVCbG9jaygpLT5n
bG9iYWxPYmplY3QoKSwgdmFsdWUpOwogfQogCi12b2lkIEpJVF9PUEVSQVRJT04gbG9va3VwRXhj
ZXB0aW9uSGFuZGxlcihFeGVjU3RhdGUqIGV4ZWMpCit2b2lkIEpJVF9PUEVSQVRJT04gbG9va3Vw
RXhjZXB0aW9uSGFuZGxlcihWTSogdm0sIEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBWTSogdm0g
PSAmZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVj
KTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjLCBOYXRpdmVDYWxs
RnJhbWVUcmFjZXI6OlZNRW50cnlTZW50aW5lbE9LKTsKIAotICAgIEpTVmFsdWUgZXhjZXB0aW9u
VmFsdWUgPSBleGVjLT5leGNlcHRpb24oKTsKKyAgICBKU1ZhbHVlIGV4Y2VwdGlvblZhbHVlID0g
dm0tPmV4Y2VwdGlvbigpOwogICAgIEFTU0VSVChleGNlcHRpb25WYWx1ZSk7CiAgICAgCiAgICAg
Z2VuZXJpY1Vud2luZCh2bSwgZXhlYywgZXhjZXB0aW9uVmFsdWUpOwpAQCAtMTc2Nyw3ICsxODA1
LDYgQEAgYXNtICgKICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFs
dWUpICJcbiIKIEhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKIFNZTUJP
TF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAibW92IDAoJXJi
cCksICVyYnBcbiIgLy8gQ2FsbGVyRnJhbWVBbmRQQzo6Y2FsbGVyRnJhbWUKICAgICAibW92ICVy
YnAsICVyZGlcbiIKICAgICAiam1wICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJu
VmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCiApOwpAQCAtMTc3OCw4ICsxODE1LDExIEBAIGFzbSAo
CiAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBI
SURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBTWU1CT0xfU1RSSU5HKGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgIm1vdiAwKCVlYnApLCAlZWJwXG4i
IC8vIENhbGxlckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCi0gICAgIm1vdiAlZWJwLCA0KCVlc3Ap
XG4iCisgICAgIm1vdiAoJWVzcCksICVlYXhcbiIKKyAgICAicHVzaCAlZWJwXG4iCisgICAgImxl
YWwgLTQoJWVzcCksICVlc3BcbiIKKyAgICAicHVzaCAlZWJwXG4iCisgICAgInB1c2ggJWVheFxu
IgogICAgICJqbXAgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhF
eGVjU3RhdGUpICJcbiIKICk7CiAKQEAgLTE3OTIsNyArMTgzMiw2IEBAIEhJREVfU1lNQk9MKGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKICIudGh1bWIiICJcbiIKICIudGh1bWJfZnVuYyAi
IFRIVU1CX0ZVTkNfUEFSQU0oZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogU1lNQk9MX1NU
UklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgotICAgICJsZHIgcjcsIFtyNywg
IzBdIiAiXG4iIC8vIENhbGxlckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCiAgICAgIm1vdiByMCwg
cjciICJcbiIKICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVl
V2l0aEV4ZWNTdGF0ZSkgIlxuIgogKTsKQEAgLTE4MDQsNyArMTg0Myw2IEBAIGFzbSAoCiBISURF
X1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBJTkxJTkVfQVJNX0ZVTkNUSU9O
KGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpCiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJu
VmFsdWUpICI6IiAiXG4iCi0gICAgImxkciByMTEsIFtyMTEsICMwXSIgIlxuIiAvLyBDYWxsZXJG
cmFtZUFuZFBDOjpjYWxsZXJGcmFtZQogICAgICJtb3YgcjAsIHIxMSIgIlxuIgogICAgICJiICIg
TE9DQUxfUkVGRVJFTkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4i
CiApOwpAQCAtMTgxNiw3ICsxODU0LDYgQEAgYXNtICgKICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5H
KGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKIEhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0
dXJuVmFsdWUpICJcbiIKIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoi
ICJcbiIKLSAgICAibGR1ciB4MjksIFt4MjksICMwXSIgIlxuIgogICAgICAibW92IHgwLCB4Mjki
ICJcbiIKICAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdp
dGhFeGVjU3RhdGUpICJcbiIKICk7CkBAIC0xODI4LDcgKzE4NjUsNiBAQCBhc20gKAogSElERV9T
WU1CT0woZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogU1lNQk9MX1NUUklORyhnZXRIb3N0
Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgogICAgIExPQURfRlVOQ1RJT05fVE9fVDkoZ2V0SG9z
dENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpCi0gICAgImx3ICRmcCwgMCgkZnApIiAiXG4i
IC8vIENhbGxlckZyYW1lQW5kUEM6OmNhbGxlckZyYW1lCiAgICAgIm1vdmUgJGEwLCAkZnAiICJc
biIKICAgICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4
ZWNTdGF0ZSkgIlxuIgogKTsKQEAgLTE4MzksNyArMTg3NSw2IEBAIGFzbSAoCiAiLmdsb2JsICIg
U1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBISURFX1NZTUJPTChn
ZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0
dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgIm1vdi5sIEByMTQsIHIxNCIgIlxuIiAvLyBDYWxsZXJG
cmFtZUFuZFBDOjpjYWxsZXJGcmFtZQogICAgICJtb3YgcjE0LCByNCIgIlxuIgogICAgICJtb3Yu
bCAyZiwgIiBTSDRfU0NSQVRDSF9SRUdJU1RFUiAiXG4iCiAgICAgImJyYWYgIiBTSDRfU0NSQVRD
SF9SRUdJU1RFUiAiXG4iCkBAIC0xODUyLDcgKzE4ODcsNiBAQCBTWU1CT0xfU1RSSU5HKGdldEhv
c3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCiBleHRlcm4gIkMiIHsKICAgICBfX2RlY2xzcGVj
KG5ha2VkKSBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJOX1ZBTFVFX09QVElPTiBnZXRI
b3N0Q2FsbFJldHVyblZhbHVlKCkKICAgICB7Ci0gICAgICAgIF9fYXNtIG1vdiBlYnAsIFtlYnAg
KyAwXTsgLy8gQ2FsbGVyRnJhbWVBbmRQQzo6Y2FsbGVyRnJhbWUKICAgICAgICAgX19hc20gbW92
IFtlc3AgKyA0XSwgZWJwOwogICAgICAgICBfX2FzbSBqbXAgZ2V0SG9zdENhbGxSZXR1cm5WYWx1
ZVdpdGhFeGVjU3RhdGUKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5oCmluZGV4IDQzY2E2MTc3YmZiZDFkNWQzNDQ4NTY0ZTAwMTEwZWRhMmVhOTcwMzcuLjkz
M2IzMTEyMWQ2NjIxYzZiMTUwMTRmN2EyYWJkZmNkYmZmNGJmOTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxF
KEpJVCkKIAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgorI2luY2x1ZGUgIkNvbW1vblNsb3dQYXRo
cy5oIgogI2luY2x1ZGUgIkpJVEV4Y2VwdGlvbnMuaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCiAj
aW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgpAQCAtNzIsNiArNzMsNyBAQCBleHRlcm4gIkMiIHsKICAg
ICBQYzogSW5zdHJ1Y3Rpb24qIGkuZS4gYnl0ZWNvZGUgUEMKICAgICBSOiBSZWdpc3RlcgogICAg
IFM6IHNpemVfdAorICAgIFNwcnQ6IFNsb3dQYXRoUmV0dXJuVHlwZQogICAgIFNzaTogU3RydWN0
dXJlU3R1YkluZm8qCiAgICAgU3Q6IFN0cnVjdHVyZSoKICAgICBWOiB2b2lkCkBAIC05Miw2ICs5
NCw3IEBAIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0
aW9uX0VDQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VDSSkoRXhlY1N0YXRlKiwgSlNDZWxsKiwgU3Ry
aW5nSW1wbCopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRP
cGVyYXRpb25fRUNKKShFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBl
ZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FREEpKEV4
ZWNTdGF0ZSosIGRvdWJsZSwgSlNBcnJheSopOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUUpKEV4ZWNTdGF0ZSosIEV4ZWNTdGF0ZSopOwog
dHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUkp
KEV4ZWNTdGF0ZSosIFN0cmluZ0ltcGwqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSk7
CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9F
SkEpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBKU0FycmF5Kik7CkBAIC0xMzMsNiArMTM2
LDcgQEAgdHlwZWRlZiBzaXplX3QgSklUX09QRVJBVElPTiAoKlNfSklUT3BlcmF0aW9uX0VKKShF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIHNpemVfdCBKSVRfT1BFUkFUSU9O
ICgqU19KSVRPcGVyYXRpb25fRUpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUpOwogdHlwZWRlZiBzaXplX3QgSklUX09QRVJBVElPTiAoKlNfSklUT3BlcmF0aW9u
X0VPSnNzKShFeGVjU3RhdGUqLCBKU09iamVjdCosIEpTU3RyaW5nKik7CiB0eXBlZGVmIHNpemVf
dCBKSVRfT1BFUkFUSU9OICgqU19KSVRPcGVyYXRpb25fSikoRW5jb2RlZEpTVmFsdWUpOwordHlw
ZWRlZiBTbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiAoKlNwcnRfSklUT3BlcmF0aW9u
X0VaKShFeGVjU3RhdGUqLCBpbnQzMl90KTsKIHR5cGVkZWYgdm9pZCBKSVRfT1BFUkFUSU9OICgq
Vl9KSVRPcGVyYXRpb25fRSkoRXhlY1N0YXRlKik7CiB0eXBlZGVmIHZvaWQgSklUX09QRVJBVElP
TiAoKlZfSklUT3BlcmF0aW9uX0VDKShFeGVjU3RhdGUqLCBKU0NlbGwqKTsKIHR5cGVkZWYgdm9p
ZCBKSVRfT1BFUkFUSU9OICgqVl9KSVRPcGVyYXRpb25fRUNiKShFeGVjU3RhdGUqLCBDb2RlQmxv
Y2sqKTsKQEAgLTE3NCwxOCArMTc4LDE3IEBAIHR5cGVkZWYgY2hhciogSklUX09QRVJBVElPTiAo
KlBfSklUT3BlcmF0aW9uX0VTdEopKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIEVuY29kCiB0eXBl
ZGVmIGNoYXIqIEpJVF9PUEVSQVRJT04gKCpQX0pJVE9wZXJhdGlvbl9FU3RQUykoRXhlY1N0YXRl
KiwgU3RydWN0dXJlKiwgdm9pZCosIHNpemVfdCk7CiB0eXBlZGVmIGNoYXIqIEpJVF9PUEVSQVRJ
T04gKCpQX0pJVE9wZXJhdGlvbl9FU3RTUykoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgc2l6ZV90
LCBzaXplX3QpOwogdHlwZWRlZiBjaGFyKiBKSVRfT1BFUkFUSU9OICgqUF9KSVRPcGVyYXRpb25f
RVN0WikoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgaW50MzJfdCk7Ci10eXBlZGVmIGNoYXIqIEpJ
VF9PUEVSQVRJT04gKCpQX0pJVE9wZXJhdGlvbl9FWikoRXhlY1N0YXRlKiwgaW50MzJfdCk7CiB0
eXBlZGVmIGNoYXIqIEpJVF9PUEVSQVRJT04gKCpQX0pJVE9wZXJhdGlvbl9FWlopKEV4ZWNTdGF0
ZSosIGludDMyX3QsIGludDMyX3QpOwogdHlwZWRlZiBTdHJpbmdJbXBsKiBKSVRfT1BFUkFUSU9O
ICgqSV9KSVRPcGVyYXRpb25fRUpzcykoRXhlY1N0YXRlKiwgSlNTdHJpbmcqKTsKIHR5cGVkZWYg
SlNTdHJpbmcqIEpJVF9PUEVSQVRJT04gKCpKc3NfSklUT3BlcmF0aW9uX0VaKShFeGVjU3RhdGUq
LCBpbnQzMl90KTsKIAogLy8gVGhpcyBtZXRob2QgaXMgdXNlZCB0byBsb29rdXAgYW4gZXhjZXB0
aW9uIGhhbmRlciwga2V5ZWQgYnkgZmF1bHRMb2NhdGlvbiwgd2hpY2ggaXMKIC8vIHRoZSByZXR1
cm4gbG9jYXRpb24gZnJvbSBvbmUgb2YgdGhlIGNhbGxzIG91dCB0byBvbmUgb2YgdGhlIGhlbHBl
ciBvcGVyYXRpb25zIGFib3ZlLgotICAgIAotdm9pZCBKSVRfT1BFUkFUSU9OIGxvb2t1cEV4Y2Vw
dGlvbkhhbmRsZXIoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworCit2b2lkIEpJVF9PUEVSQVRJ
T04gbG9va3VwRXhjZXB0aW9uSGFuZGxlcihWTSosIEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsK
IHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25WTUhhbmRsZUV4Y2VwdGlvbihFeGVjU3RhdGUq
KSBXVEZfSU5URVJOQUw7CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25TdGFja0NoZWNr
KEV4ZWNTdGF0ZSosIENvZGVCbG9jayopIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25UaHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihFeGVjU3RhdGUqLCBDb2RlQmxvY2sq
KSBXVEZfSU5URVJOQUw7CiBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2FsbEFyaXR5
Q2hlY2soRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkNvbnN0cnVjdEFyaXR5Q2hlY2soRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkKEV4ZWNTdGF0ZSosIFN0
cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIFN0cmluZ0ltcGwqKSBXVEZfSU5URVJO
QUw7CkBAIC0yMTMsMTIgKzIxNiwxOCBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0
QnlWYWwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLAogdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFM
Owogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsR2VuZXJpYyhFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBX
VEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxF
dmFsKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKLWNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVmlydHVhbENhbGwoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsRXZhbChFeGVjU3RhdGUqLCBFeGVjU3RhdGUqKSBX
VEZfSU5URVJOQUw7CiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDYWxsKEV4ZWNT
dGF0ZSopIFdURl9JTlRFUk5BTDsKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0Ns
b3N1cmVDYWxsKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKK2NoYXIqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uVmlydHVhbENhbGwoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogY2hhciogSklU
X09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ29uc3RydWN0KEV4ZWNTdGF0ZSopIFdURl9JTlRF
Uk5BTDsKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTGlua0NvbnN0cnVjdChFeGVjU3Rh
dGUqKSBXVEZfSU5URVJOQUw7CitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDYWxs
VGhhdFByZXNlcnZlc1JlZ3MoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworY2hhciogSklUX09Q
RVJBVElPTiBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2VydmVzUmVncyhFeGVjU3Rh
dGUqKSBXVEZfSU5URVJOQUw7CitjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxD
YWxsVGhhdFByZXNlcnZlc1JlZ3MoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworY2hhciogSklU
X09QRVJBVElPTiBvcGVyYXRpb25WaXJ0dWFsQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3MoRXhl
Y1N0YXRlKikgV1RGX0lOVEVSTkFMOworY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25MaW5r
Q29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3MoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOworCiBz
aXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlTGVzcyhFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHNpemVfdCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVMZXNzRXEoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBzaXplX3QgSklUX09QRVJBVElPTiBvcGVy
YXRpb25Db21wYXJlR3JlYXRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUpIFdURl9JTlRFUk5BTDsKQEAgLTI0Miw3ICsyNTEsNyBAQCB2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uVGhyb3dTdGF0aWNFcnJvcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwg
aW50MzJfdAogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93KEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
RGVidWcoRXhlY1N0YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwogI2lmIEVOQUJMRShERkdf
SklUKQotY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeGVjU3RhdGUqLCBp
bnQzMl90KSBXVEZfSU5URVJOQUw7CitTbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25PcHRpbWl6ZShFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CiAjZW5k
aWYKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUluZGV4KEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBpbnQzMl90LCBFbmNvZGVkSlNWYWx1ZSk7CiAjaWYgVVNFKEpTVkFMVUU2
NCkKQEAgLTI2Nyw3ICsyNzYsNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGVhck9m
ZkFyZ3VtZW50cyhFeGVjU3RhdGUqLCBKU0NlbGwqLCBKU0NlbGwqKSBXVEZfSQogRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWxldGVCeUlkKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlIGJhc2UsIGNvbnN0IElkZW50aWZpZXIqKSBXVEZfSU5URVJOQUw7CiBKU0NlbGwq
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0UE5hbWVzKEV4ZWNTdGF0ZSosIEpTT2JqZWN0Kikg
V1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnN0
YW5jZU9mKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBwcm90bykg
V1RGX0lOVEVSTkFMOwotQ2FsbEZyYW1lKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNpemVBbmRB
bGxvY0ZyYW1lRm9yVmFyYXJncyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMs
IGludDMyX3QgZmlyc3RGcmVlUmVnaXN0ZXIpIFdURl9JTlRFUk5BTDsKK0NhbGxGcmFtZSogSklU
X09QRVJBVElPTiBvcGVyYXRpb25TaXplRnJhbWVGb3JWYXJhcmdzKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlIGFyZ3VtZW50cywgaW50MzJfdCBmaXJzdEZyZWVSZWdpc3RlcikgV1RGX0lOVEVS
TkFMOwogQ2FsbEZyYW1lKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxvYWRWYXJhcmdzKEV4ZWNT
dGF0ZSosIENhbGxGcmFtZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgYXJndW1lbnRzKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblRvT2JqZWN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJO
QUw7CiAKQEAgLTI4Nyw2ICsyOTYsNjggQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbklu
aXRHbG9iYWxDb25zdChFeGVjU3RhdGUqLCBJbnN0cnVjdGlvbiopOwogCiB9IC8vIGV4dGVybiAi
QyIKIAoraW5saW5lIFBfSklUT3BlcmF0aW9uX0Ugb3BlcmF0aW9uTGlua0ZvcigKKyAgICBDb2Rl
U3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3Rl
cnMpCit7CisgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBDb2RlRm9yQ2FsbDoKKyAgICAg
ICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlv
bk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtDYWxsOworICAg
ICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgIHJldHVybiBvcGVy
YXRpb25MaW5rQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ29kZUZvckNvbnN0cnVjdDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMp
IHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAg
ICAgICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtDb25zdHJ1Y3Q7CisgICAgICAgIGNhc2UgTXVzdFBy
ZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkxpbmtDb25zdHJ1
Y3RUaGF0UHJlc2VydmVzUmVnczsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9Cisg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KKworaW5s
aW5lIFBfSklUT3BlcmF0aW9uX0Ugb3BlcmF0aW9uVmlydHVhbEZvcigKKyAgICBDb2RlU3BlY2lh
bGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCit7
CisgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBDb2RlRm9yQ2FsbDoKKyAgICAgICAgc3dp
dGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJl
cXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvblZpcnR1YWxDYWxsOworICAgICAg
ICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgIHJldHVybiBvcGVyYXRp
b25WaXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ29kZUZvckNvbnN0cnVjdDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMp
IHsKKyAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAg
ICAgICAgcmV0dXJuIG9wZXJhdGlvblZpcnR1YWxDb25zdHJ1Y3Q7CisgICAgICAgIGNhc2UgTXVz
dFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvblZpcnR1YWxD
b25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnczsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAg
ICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30K
KworaW5saW5lIFBfSklUT3BlcmF0aW9uX0Ugb3BlcmF0aW9uTGlua0Nsb3N1cmVDYWxsRm9yKFJl
Z2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dpdGNoIChyZWdpc3Rl
cnMpIHsKKyAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAg
IHJldHVybiBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGw7CisgICAgY2FzZSBNdXN0UHJlc2VydmVS
ZWdpc3RlcnM6CisgICAgICAgIHJldHVybiBvcGVyYXRpb25MaW5rQ2xvc3VyZUNhbGxUaGF0UHJl
c2VydmVzUmVnczsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICByZXR1cm4gMDsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUo
SklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNw
cAppbmRleCA0MjQxYmFmMzJhZDljNDUyZDU3MmYyOTQ2NzRmNjYxZGJhOTgxMGZiLi4yNmRkNGQx
YWY3NDVhZmExZmJjNTNhOWMwMjNhNmU0NzQxYTY2YTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTIwLDcgKzUy
MCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogCiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1fY29k
ZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3BlY2lh
bFJlZ2lzdGVycygpLAotICAgICAgICBjYWxsRnJhbWVSZWdpc3RlciwgSlNWYWx1ZVJlZ3MocmVn
VDApLCBKU1ZhbHVlUmVncyhyZWdUMCksIHRydWUpOworICAgICAgICBKU1ZhbHVlUmVncyhyZWdU
MCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgdHJ1ZSk7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgo
KnRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAgbV9nZXRC
eUlkcy5hcHBlbmQoZ2VuKTsKQEAgLTU2Niw4ICs1NjYsOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9w
dXRfYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogICAgIEpJVFB1dEJ5
SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9jaywgQ29kZU9yaWdpbihtX2J5dGVj
b2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdpc3RlcnMoKSwKLSAgICAgICAgY2Fs
bEZyYW1lUmVnaXN0ZXIsIEpTVmFsdWVSZWdzKHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDEpLCBy
ZWdUMiwgdHJ1ZSwKLSAgICAgICAgbV9jb2RlQmxvY2stPmVjbWFNb2RlKCksIGRpcmVjdCA/IERp
cmVjdCA6IE5vdERpcmVjdCk7CisgICAgICAgIEpTVmFsdWVSZWdzKHJlZ1QwKSwgSlNWYWx1ZVJl
Z3MocmVnVDEpLCByZWdUMiwgdHJ1ZSwgbV9jb2RlQmxvY2stPmVjbWFNb2RlKCksCisgICAgICAg
IGRpcmVjdCA/IERpcmVjdCA6IE5vdERpcmVjdCk7CiAgICAgCiAgICAgZ2VuLmdlbmVyYXRlRmFz
dFBhdGgoKnRoaXMpOwogICAgIGFkZFNsb3dDYXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CkBAIC0x
MDc4LDcgKzEwNzgsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVHZXRCeVZhbChCeVZhbElu
Zm8qIGJ5VmFsSW5mbywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZAogICAgIHBhdGNoQnVmZmVy
LmxpbmsoZG9uZSwgYnlWYWxJbmZvLT5iYWRUeXBlSnVtcC5sYWJlbEF0T2Zmc2V0KGJ5VmFsSW5m
by0+YmFkVHlwZUp1bXBUb0RvbmUpKTsKICAgICAKICAgICBieVZhbEluZm8tPnN0dWJSb3V0aW5l
ID0gRklOQUxJWkVfQ09ERV9GT1JfU1RVQigKLSAgICAgICAgcGF0Y2hCdWZmZXIsCisgICAgICAg
IG1fY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKICAgICAgICAgKCJCYXNlbGluZSBnZXRfYnlfdmFs
IHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLCB0b0NTdHJpbmcoKm1fY29kZUJsb2NrKS5k
YXRhKCksIHJldHVybkFkZHJlc3MudmFsdWUoKSkpOwogICAgIAogICAgIFJlcGF0Y2hCdWZmZXIg
cmVwYXRjaEJ1ZmZlcihtX2NvZGVCbG9jayk7CkBAIC0xMTQxLDEyICsxMTQxLDEyIEBAIHZvaWQg
SklUOjpwcml2YXRlQ29tcGlsZVB1dEJ5VmFsKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZXR1cm5B
ZGRyZXNzUHRyIHJldHVybkFkCiAgICAgYm9vbCBpc0RpcmVjdCA9IG1faW50ZXJwcmV0ZXItPmdl
dE9wY29kZUlEKGN1cnJlbnRJbnN0cnVjdGlvbi0+dS5vcGNvZGUpID09IG9wX3B1dF9ieV92YWxf
ZGlyZWN0OwogICAgIGlmICghaXNEaXJlY3QpIHsKICAgICAgICAgYnlWYWxJbmZvLT5zdHViUm91
dGluZSA9IEZJTkFMSVpFX0NPREVfRk9SX1NUVUIoCi0gICAgICAgICAgICBwYXRjaEJ1ZmZlciwK
KyAgICAgICAgICAgIG1fY29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKICAgICAgICAgICAgICgiQmFz
ZWxpbmUgcHV0X2J5X3ZhbCBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwgdG9DU3RyaW5n
KCptX2NvZGVCbG9jaykuZGF0YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkpKTsKICAgICAgICAg
CiAgICAgfSBlbHNlIHsKICAgICAgICAgYnlWYWxJbmZvLT5zdHViUm91dGluZSA9IEZJTkFMSVpF
X0NPREVfRk9SX1NUVUIoCi0gICAgICAgICAgICBwYXRjaEJ1ZmZlciwKKyAgICAgICAgICAgIG1f
Y29kZUJsb2NrLCBwYXRjaEJ1ZmZlciwKICAgICAgICAgICAgICgiQmFzZWxpbmUgcHV0X2J5X3Zh
bF9kaXJlY3Qgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsIHRvQ1N0cmluZygqbV9jb2Rl
QmxvY2spLmRhdGEoKSwgcmV0dXJuQWRkcmVzcy52YWx1ZSgpKSk7CiAgICAgfQogICAgIFJlcGF0
Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihtX2NvZGVCbG9jayk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAppbmRleCA1YmM4ZDFh
YmI0NDBhOTYwMzE0ZWRkMzY4ODY3NGNmZDAxYWEwYjc5Li5kMThmZWE3MTVjYjAzYjM3YWE5MjZk
ODQ5YThlNWFiOTU2M2VjZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ4Miw3ICs0ODIsNyBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKIAogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2NvZGVCbG9j
aywgQ29kZU9yaWdpbihtX2J5dGVjb2RlT2Zmc2V0KSwgUmVnaXN0ZXJTZXQ6OnNwZWNpYWxSZWdp
c3RlcnMoKSwKLSAgICAgICAgY2FsbEZyYW1lUmVnaXN0ZXIsIEpTVmFsdWVSZWdzOjpwYXlsb2Fk
T25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIHRydWUpOworICAgICAgICBK
U1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDAp
LCB0cnVlKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CiAgICAgYWRkU2xvd0Nh
c2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKICAgICBtX2dldEJ5SWRzLmFwcGVuZChnZW4pOwpAQCAt
NTMwLDcgKzUzMCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV9pZChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogCiAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBnZW4oCiAgICAg
ICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNl
dDo6c3BlY2lhbFJlZ2lzdGVycygpLAotICAgICAgICBjYWxsRnJhbWVSZWdpc3RlciwgSlNWYWx1
ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKSwKKyAg
ICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDMs
IHJlZ1QyKSwKICAgICAgICAgcmVnVDEsIHRydWUsIG1fY29kZUJsb2NrLT5lY21hTW9kZSgpLCBk
aXJlY3QgPyBEaXJlY3QgOiBOb3REaXJlY3QpOwogICAgIAogICAgIGdlbi5nZW5lcmF0ZUZhc3RQ
YXRoKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1
YlJvdXRpbmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YlJvdXRpbmUuaApp
bmRleCAwMjBlZjY5MDc5ZDMxN2JhNmEyY2EwNzYwMDYxYjQ5OTVkY2VkYjJkLi43NDg2NTRiYmM2
MTM0N2RlOWJjNjA5ZTg2YmMxMTU2NTFhM2RkNDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFN0dWJSb3V0aW5lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRTdHViUm91dGluZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0xNTAsMTEgKzE1MCw4IEBAIHByb3RlY3RlZDoKIH07CiAK
IC8vIEhlbHBlciBmb3IgdGhlIGNyZWF0aW9uIG9mIHNpbXBsZSBzdHViIHJvdXRpbmVzIHRoYXQg
bmVlZCBubyBoZWxwIGZyb20gdGhlIEdDLgotI2RlZmluZSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVC
KHBhdGNoQnVmZmVyLCBkYXRhTG9nRkFyZ3VtZW50cykgXAotICAgIChhZG9wdFJlZihuZXcgSklU
U3R1YlJvdXRpbmUoRklOQUxJWkVfQ09ERSgocGF0Y2hCdWZmZXIpLCBkYXRhTG9nRkFyZ3VtZW50
cykpKSkKLQotI2RlZmluZSBGSU5BTElaRV9DT0RFX0ZPUl9ERkdfU1RVQihwYXRjaEJ1ZmZlciwg
ZGF0YUxvZ0ZBcmd1bWVudHMpIFwKLSAgICAoYWRvcHRSZWYobmV3IEpJVFN0dWJSb3V0aW5lKEZJ
TkFMSVpFX0RGR19DT0RFKChwYXRjaEJ1ZmZlciksIGRhdGFMb2dGQXJndW1lbnRzKSkpKQorI2Rl
ZmluZSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKGNvZGVCbG9jaywgcGF0Y2hCdWZmZXIsIGRhdGFM
b2dGQXJndW1lbnRzKSBcCisgICAgKGFkb3B0UmVmKG5ldyBKSVRTdHViUm91dGluZShGSU5BTEla
RV9DT0RFX0ZPUigoY29kZUJsb2NrKSwgKHBhdGNoQnVmZmVyKSwgZGF0YUxvZ0ZBcmd1bWVudHMp
KSkpCiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFN0dWJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJz
LmgKaW5kZXggMjRkOTVkZmQ0OWI4ZTRhZjFjMjUwNmE4NDI5N2EyYzhmZmU5NDY3ZC4uMTMzMTQ0
ZTE4OWEzOGNhZGVmMWEzNmViM2UyMmUxMmI2NjI4ZjA5MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUU3R1YnMuaApAQCAtMzcsMTQgKzM3LDEzIEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVO
QUJMRShKSVQpCiAKICNpZiBPUyhXSU5ET1dTKQotY2xhc3MgRXhlY1N0YXRlOwotY2xhc3MgUmVn
aXN0ZXI7CiBzdHJ1Y3QgUHJvdG9DYWxsRnJhbWU7CitjbGFzcyBWTTsKIAogZXh0ZXJuICJDIiB7
Ci0gICAgRW5jb2RlZEpTVmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiwgRXhlY1N0YXRlKios
IFByb3RvQ2FsbEZyYW1lKiwgUmVnaXN0ZXIqKTsKLSAgICB2b2lkIHJldHVybkZyb21KYXZhU2Ny
aXB0KCk7Ci0gICAgRW5jb2RlZEpTVmFsdWUgY2FsbFRvTmF0aXZlRnVuY3Rpb24odm9pZCosIEV4
ZWNTdGF0ZSoqLCBQcm90b0NhbGxGcmFtZSosIFJlZ2lzdGVyKik7CisgICAgRW5jb2RlZEpTVmFs
dWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lkKiwgVk0qLCBQcm90b0NhbGxGcmFtZSopOworICAgIEVu
Y29kZWRKU1ZhbHVlIGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHZvaWQqLCBWTSosIFByb3RvQ2FsbEZy
YW1lKik7CisgICAgdm9pZCBoYW5kbGVVbmNhdWdodEV4Y2VwdGlvbigpOwogfQogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNNU1ZDNjQuYXNt
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBiY2Q5ZGRiNDlmZGQ3ZTZjMTY0ODE5YWQ3ZjY2OTI1NzI1
ZTUyZjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20KKysrIC9kZXYvbnVsbApA
QCAtMSwyNTUgKzAsMCBAQAotOy8qCi07IENvcHlyaWdodCAoQykgMjAxMyBEaWdpYSBQbGMuIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotOwotOyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLTsgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi07
IGFyZSBtZXQ6Ci07IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci07ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLTsgMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLTsgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotOyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotOwotOyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLTsgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLTsgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci07IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi07IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotOyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi07IFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotOyBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi07IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotOyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLTsgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLTsqLwotCi1FWFRFUk4g
Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUgOiBuZWFyCi0KLVBVQkxJQyBjYWxs
VG9KYXZhU2NyaXB0Ci1QVUJMSUMgcmV0dXJuRnJvbUphdmFTY3JpcHQKLVBVQkxJQyBnZXRIb3N0
Q2FsbFJldHVyblZhbHVlCi0KLV9URVhUICAgU0VHTUVOVAotCi1jYWxsVG9KYXZhU2NyaXB0IFBS
T0MKLSAgICA7OyBUaGlzIGZ1bmN0aW9uIGlzIGJlbGlldmVkIHRvIGJlIGFuIGFjY3VyYXRlIGFk
YXB0YXRpb24gb2YgdGhlIGFzc2VtYmx5IGNyZWF0ZWQgYnkgdGhlIGxsaW50IHN0dWIgb2YgdGhl
Ci0gICAgOzsgc2FtZSBuYW1lIHdpdGggY2hhbmdlcyBmb3IgYXJndW1lbnQgcmVnaXN0ZXIgZGlm
ZmVyZW5jZXMuCi0gICAgbW92IHIxMCwgcXdvcmQgcHRyW3JzcF0KLSAgICBwdXNoIHJicAotICAg
IG1vdiByYXgsIHJicCA7IFNhdmUgcHJldmlvdXMgZnJhbWUgcG9pbnRlcgotICAgIG1vdiByYnAs
IHJzcAotICAgIHB1c2ggcjEyCi0gICAgcHVzaCByMTMKLSAgICBwdXNoIHIxNAotICAgIHB1c2gg
cjE1Ci0gICAgcHVzaCByYngKLSAgICBwdXNoIHJzaQotICAgIHB1c2ggcmRpCi0KLSAgICA7IEpJ
VCBvcGVyYXRpb25zIGNhbiB1c2UgdXAgdG8gNiBhcmdzICg0IGluIHJlZ2lzdGVycyBhbmQgMiBv
biB0aGUgc3RhY2spLgotICAgIDsgSW4gYWRkaXRpb24sIFg4Nl82NCBBQkkgc3BlY2lmaWVzIHRo
YXQgdGhlIHdvcnNlIGNhc2Ugc3RhY2sgYWxpZ25tZW50Ci0gICAgOyByZXF1aXJlbWVudCBpcyAz
MiBieXRlcy4gQmFzZWQgb24gdGhlc2UgZmFjdG9ycywgd2UgbmVlZCB0byBwYWQgdGhlIHN0YWNr
Ci0gICAgOyBhbiBhZGRpdGlvbmFsIDI4aCBieXRlcy4KLSAgICBzdWIgcnNwLCAyOGgKLQotICAg
IG1vdiByYnAsIHI5Ci0gICAgc3ViIHJicCwgNDAKLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIDQw
XSwgMAotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgMzJdLCByZHgKLQotICAgIG1vdiByYXgsIHF3
b3JkIHB0cltyZHhdCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyAyNF0sIHJheAotICAgIG1vdiBx
d29yZCBwdHJbcmJwICsgMTZdLCAxCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyA4XSwgcjEwCi0g
ICAgbW92IHF3b3JkIHB0cltyYnBdLCByYXgKLSAgICBtb3YgcmF4LCByYnAKLQotICAgIG1vdiBl
YngsIGR3b3JkIHB0cltyOCArIDQwXQotICAgIGFkZCByYngsIDYKLSAgICBzYWwgcmJ4LCAzCi0g
ICAgc3ViIHJicCwgcmJ4Ci0gICAgbW92IHF3b3JkIHB0cltyYnBdLCByYXgKLQotICAgIG1vdiBy
YXgsIDUKLQotY29weUhlYWRlckxvb3A6Ci0gICAgc3ViIHJheCwgMQotICAgIG1vdiByMTAsIHF3
b3JkIHB0cltyOCArIHJheCAqIDhdCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyByYXggKiA4ICsg
MTZdLCByMTAKLSAgICB0ZXN0IHJheCwgcmF4Ci0gICAgam56IGNvcHlIZWFkZXJMb29wCi0KLSAg
ICBtb3YgZWJ4LCBkd29yZCBwdHJbcjggKyAyNF0KLSAgICBzdWIgcmJ4LCAxCi0gICAgbW92IHIx
MGQsIGR3b3JkIHB0cltyOCArIDQwXQotICAgIHN1YiByMTAsIDEKLSAgICBjbXAgcmJ4LCByMTAK
LSAgICBqZSBjb3B5QXJncwotICAgIG1vdiByYXgsIDBhaAotCi1maWxsRXh0cmFBcmdzTG9vcDoK
LSAgICBzdWIgcjEwLCAxCi0gICAgbW92IHF3b3JkIHB0cltyYnAgKyByMTAgKiA4ICsgNTZdLCBy
YXgKLSAgICBjbXAgcmJ4LCByMTAKLSAgICBqbmUgZmlsbEV4dHJhQXJnc0xvb3AKLQotY29weUFy
Z3M6Ci0gICAgbW92IHJheCwgcXdvcmQgcHRyW3I4ICsgNDhdCi0KLWNvcHlBcmdzTG9vcDoKLSAg
ICB0ZXN0IGVieCwgZWJ4Ci0gICAganogY29weUFyZ3NEb25lCi0gICAgc3ViIGVieCwgMQotICAg
IG1vdiByMTAsIHF3b3JkIHB0cltyYXggKyByYnggKiA4XQotICAgIG1vdiBxd29yZCBwdHJbcmJw
ICsgcmJ4ICogOCArIDU2XSwgcjEwCi0gICAgam1wIGNvcHlBcmdzTG9vcAotCi1jb3B5QXJnc0Rv
bmU6Ci0gICAgbW92IHF3b3JkIHB0cltyZHhdLCByYnAKLSAgICBtb3YgcjE0LCAwRkZGRjAwMDAw
MDAwMDAwMGgKLSAgICBtb3YgcjE1LCAwRkZGRjAwMDAwMDAwMDAwMmgKLSAgICBjYWxsIHJjeAot
ICAgIGNtcCBxd29yZCBwdHJbcmJwICsgMTZdLCAxCi0gICAgamUgY2FsbGVlRnJhbWVQb3BwZWQK
LSAgICBtb3YgcmJwLCBxd29yZCBwdHJbcmJwXQotCi1jYWxsZWVGcmFtZVBvcHBlZDoKLSAgICBt
b3YgcmJ4LCBxd29yZCBwdHJbcmJwICsgMzJdIDsgVk0udG9wQ2FsbEZyYW1lCi0gICAgbW92IHIx
MCwgcXdvcmQgcHRyW3JicCArIDI0XQotICAgIG1vdiBxd29yZCBwdHJbcmJ4XSwgcjEwCi0gICAg
YWRkIHJzcCwgMjhoCi0gICAgcG9wIHJkaQotICAgIHBvcCByc2kKLSAgICBwb3AgcmJ4Ci0gICAg
cG9wIHIxNQotICAgIHBvcCByMTQKLSAgICBwb3AgcjEzCi0gICAgcG9wIHIxMgotICAgIHBvcCBy
YnAKLSAgICByZXQKLWNhbGxUb0phdmFTY3JpcHQgRU5EUAotCi1jYWxsVG9OYXRpdmVGdW5jdGlv
biBQUk9DCi0gICAgOzsgVGhpcyBmdW5jdGlvbiBpcyBiZWxpZXZlZCB0byBiZSBhbiBhY2N1cmF0
ZSBhZGFwdGF0aW9uIG9mIHRoZSBhc3NlbWJseSBjcmVhdGVkIGJ5IHRoZSBsbGludCBzdHViIG9m
IHRoZQotICAgIDs7IHNhbWUgbmFtZSB3aXRoIGNoYW5nZXMgZm9yIGFyZ3VtZW50IHJlZ2lzdGVy
IGRpZmZlcmVuY2VzLgotICAgIG1vdiByMTAsIHF3b3JkIHB0cltyc3BdCi0gICAgcHVzaCByYnAK
LSAgICBtb3YgcmF4LCByYnAgOyBTYXZlIHByZXZpb3VzIGZyYW1lIHBvaW50ZXIKLSAgICBtb3Yg
cmJwLCByc3AKLSAgICBwdXNoIHIxMgotICAgIHB1c2ggcjEzCi0gICAgcHVzaCByMTQKLSAgICBw
dXNoIHIxNQotICAgIHB1c2ggcmJ4Ci0gICAgcHVzaCByc2kKLSAgICBwdXNoIHJkaQotCi0gICAg
OyBKSVQgb3BlcmF0aW9ucyBjYW4gdXNlIHVwIHRvIDYgYXJncyAoNCBpbiByZWdpc3RlcnMgYW5k
IDIgb24gdGhlIHN0YWNrKS4KLSAgICA7IEluIGFkZGl0aW9uLCBYODZfNjQgQUJJIHNwZWNpZmll
cyB0aGF0IHRoZSB3b3JzZSBjYXNlIHN0YWNrIGFsaWdubWVudAotICAgIDsgcmVxdWlyZW1lbnQg
aXMgMzIgYnl0ZXMuIEJhc2VkIG9uIHRoZXNlIGZhY3RvcnMsIHdlIG5lZWQgdG8gcGFkIHRoZSBz
dGFjawotICAgIDsgYW4gYWRkaXRpb25hbCAyOGggYnl0ZXMuCi0gICAgc3ViIHJzcCwgMjhoCi0K
LSAgICBtb3YgcmJwLCByOQotICAgIHN1YiByYnAsIDQwCi0gICAgbW92IHF3b3JkIHB0cltyYnAg
KyA0MF0sIDAKLSAgICBtb3YgcXdvcmQgcHRyW3JicCArIDMyXSwgcmR4Ci0KLSAgICBtb3YgcmF4
LCBxd29yZCBwdHJbcmR4XQotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgMjRdLCByYXgKLSAgICBt
b3YgcXdvcmQgcHRyW3JicCArIDE2XSwgMQotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgOF0sIHIx
MAotICAgIG1vdiBxd29yZCBwdHJbcmJwXSwgcmF4Ci0gICAgbW92IHJheCwgcmJwCi0KLSAgICBt
b3YgZWJ4LCBkd29yZCBwdHJbcjggKyA0MF0KLSAgICBhZGQgcmJ4LCA2Ci0gICAgc2FsIHJieCwg
MwotICAgIHN1YiByYnAsIHJieAotICAgIG1vdiBxd29yZCBwdHJbcmJwXSwgcmF4Ci0KLSAgICBt
b3YgcmF4LCA1Ci0KLWNvcHlIZWFkZXJMb29wOgotICAgIHN1YiByYXgsIDEKLSAgICBtb3YgcjEw
LCBxd29yZCBwdHJbcjggKyByYXggKiA4XQotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgcmF4ICog
OCArIDE2XSwgcjEwCi0gICAgdGVzdCByYXgsIHJheAotICAgIGpueiBjb3B5SGVhZGVyTG9vcAot
Ci0gICAgbW92IGVieCwgZHdvcmQgcHRyW3I4ICsgMjRdCi0gICAgc3ViIHJieCwgMQotICAgIG1v
diByMTBkLCBkd29yZCBwdHJbcjggKyA0MF0KLSAgICBzdWIgcjEwLCAxCi0gICAgY21wIHJieCwg
cjEwCi0gICAgamUgY29weUFyZ3MKLSAgICBtb3YgcmF4LCAwYWgKLQotZmlsbEV4dHJhQXJnc0xv
b3A6Ci0gICAgc3ViIHIxMCwgMQotICAgIG1vdiBxd29yZCBwdHJbcmJwICsgcjEwICogOCArIDU2
XSwgcmF4Ci0gICAgY21wIHJieCwgcjEwCi0gICAgam5lIGZpbGxFeHRyYUFyZ3NMb29wCi0KLWNv
cHlBcmdzOgotICAgIG1vdiByYXgsIHF3b3JkIHB0cltyOCArIDQ4XQotCi1jb3B5QXJnc0xvb3A6
Ci0gICAgdGVzdCByYngsIHJieAotICAgIGp6IGNvcHlBcmdzRG9uZQotICAgIHN1YiByYngsIDEK
LSAgICBtb3YgcjEwLCBxd29yZCBwdHJbcmF4ICsgcmJ4ICogOF0KLSAgICBtb3YgcXdvcmQgcHRy
W3JicCArIHJieCAqIDggKyA1Nl0sIHIxMAotICAgIGptcCBjb3B5QXJnc0xvb3AKLQotY29weUFy
Z3NEb25lOgotICAgIG1vdiBxd29yZCBwdHJbcmR4XSwgcmJwCi0gICAgbW92IHIxNCwgMEZGRkYw
MDAwMDAwMDAwMDBoCi0gICAgbW92IHIxNSwgMEZGRkYwMDAwMDAwMDAwMDJoCi0KLSAgICBtb3Yg
cmF4LCByY3gKLSAgICBtb3YgcmN4LCByYnAKLSAgICBjYWxsIHJheAotCi0gICAgY21wIHF3b3Jk
IHB0cltyYnAgKyAxNl0sIDEKLSAgICBqZSBjYWxsZWVGcmFtZVBvcHBlZAotICAgIG1vdiByYnAs
IHF3b3JkIHB0cltyYnBdCi0KLWNhbGxlZUZyYW1lUG9wcGVkOgotICAgIG1vdiByYngsIHF3b3Jk
IHB0cltyYnAgKyAzMl0gOyBWTS50b3BDYWxsRnJhbWUKLSAgICBtb3YgcjEwLCBxd29yZCBwdHJb
cmJwICsgMjRdCi0gICAgbW92IHF3b3JkIHB0cltyYnhdLCByMTAKLSAgICBhZGQgcnNwLCAyOGgK
LSAgICBwb3AgcmRpCi0gICAgcG9wIHJzaQotICAgIHBvcCByYngKLSAgICBwb3AgcjE1Ci0gICAg
cG9wIHIxNAotICAgIHBvcCByMTMKLSAgICBwb3AgcjEyCi0gICAgcG9wIHJicAotICAgIHJldAot
Y2FsbFRvTmF0aXZlRnVuY3Rpb24gRU5EUAotCi1yZXR1cm5Gcm9tSmF2YVNjcmlwdCBQUk9DCi0g
ICAgYWRkIHJzcCwgMjhoCi0gICAgcG9wIHJkaQotICAgIHBvcCByc2kKLSAgICBwb3AgcmJ4Ci0g
ICAgcG9wIHIxNQotICAgIHBvcCByMTQKLSAgICBwb3AgcjEzCi0gICAgcG9wIHIxMgotICAgIHBv
cCByYnAKLSAgICByZXQKLXJldHVybkZyb21KYXZhU2NyaXB0IEVORFAKLQkKLWdldEhvc3RDYWxs
UmV0dXJuVmFsdWUgUFJPQwotICAgIG1vdiByYnAsIFtyYnBdIDsgQ2FsbEZyYW1lCi0gICAgbW92
IHJjeCwgcmJwIDsgcmN4IGlzIGZpcnN0IGFyZ3VtZW50IHJlZ2lzdGVyIG9uIFdpbmRvd3MKLSAg
ICBqbXAgZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUKLWdldEhvc3RDYWxsUmV0
dXJuVmFsdWUgRU5EUAotCi1fVEVYVCAgIEVORFMKLQotRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzWDg2LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJzWDg2LmgKaW5kZXggYTFmYmRlZjJhMjRhMjZjMDE4NDBiYmFjNTU3MjA0ZTc1
NGViZWNjMS4uZGRkYjIxOTE3ZWFiODAzZGZjMDI1ZjViMjQ5NjVmMzVhZTg3NGM4YyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic1g4Ni5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNYODYuaApAQCAtMjAwLDIzMCArMjAwLDYgQEAg
U1lNQk9MX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKSAiOiIgIlxuIgogCiAjZW5k
aWYgLy8gQ09NUElMRVIoR0NDKQogCi0jaWYgQ09NUElMRVIoTVNWQykKLQotZXh0ZXJuICJDIiB7
Ci0KLSAgICAvLyBGSVhNRTogU2luY2UgV2luZG93cyBkb2Vzbid0IHVzZSB0aGUgTExJbnQsIHdl
IGhhdmUgaW5saW5lIHN0dWJzIGhlcmUuCi0gICAgLy8gVW50aWwgdGhlIExMSW50IGlzIGNoYW5n
ZWQgdG8gc3VwcG9ydCBXaW5kb3dzLCB0aGVzZSBzdHViIG5lZWRzIHRvIGJlIHVwZGF0ZWQuCi0g
ICAgX19kZWNsc3BlYyhuYWtlZCkgRW5jb2RlZEpTVmFsdWUgY2FsbFRvSmF2YVNjcmlwdCh2b2lk
KiBjb2RlLCBFeGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJhbWUqLCBSZWdpc3RlciopCi0gICAgewot
ICAgICAgICBfX2FzbSB7Ci0gICAgICAgICAgICBtb3YgZWR4LCBbZXNwXQotICAgICAgICAgICAg
cHVzaCBlYnA7Ci0gICAgICAgICAgICBtb3YgZWF4LCBlYnA7Ci0gICAgICAgICAgICBtb3YgZWJw
LCBlc3A7Ci0gICAgICAgICAgICBwdXNoIGVzaTsKLSAgICAgICAgICAgIHB1c2ggZWRpOwotICAg
ICAgICAgICAgcHVzaCBlYng7Ci0gICAgICAgICAgICBzdWIgZXNwLCAweDFjOwotICAgICAgICAg
ICAgbW92IGVjeCwgZHdvcmQgcHRyW2VzcCArIDB4MzRdOwotICAgICAgICAgICAgbW92IGVzaSwg
ZHdvcmQgcHRyW2VzcCArIDB4MzhdOwotICAgICAgICAgICAgbW92IGVicCwgZHdvcmQgcHRyW2Vz
cCArIDB4M2NdOwotICAgICAgICAgICAgc3ViIGVicCwgMHgyMDsKLSAgICAgICAgICAgIG1vdiBk
d29yZCBwdHJbZWJwICsgMHgyNF0sIDA7Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VicCAr
IDB4MjBdLCAwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDFjXSwgMDsKLSAg
ICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgxOF0sIGVjeDsKLSAgICAgICAgICAgIG1v
diBlYngsIFtlY3hdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDE0XSwgMDsK
LSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgxMF0sIGVieDsKLSAgICAgICAgICAg
IG1vdiBkd29yZCBwdHJbZWJwICsgMHhjXSwgMDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJb
ZWJwICsgMHg4XSwgMTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHg0XSwgZWR4
OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnBdLCBlYXg7Ci0gICAgICAgICAgICBtb3Yg
ZWF4LCBlYnA7Ci0KLSAgICAgICAgICAgIG1vdiBlZHgsIGR3b3JkIHB0cltlc2kgKyAweDI4XTsK
LSAgICAgICAgICAgIGFkZCBlZHgsIDU7Ci0gICAgICAgICAgICBzYWwgZWR4LCAzOwotICAgICAg
ICAgICAgc3ViIGVicCwgZWR4OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnBdLCBlYXg7
Ci0KLSAgICAgICAgICAgIG1vdiBlYXgsIDU7Ci0KLSAgICAgICAgY29weUhlYWRlckxvb3A6Ci0g
ICAgICAgICAgICBzdWIgZWF4LCAxOwotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyW2Vz
aSArIGVheCAqIDhdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0ciA4W2VicCArIGVheCAqIDhd
LCBlY3g7Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHIgNFtlc2kgKyBlYXggKiA4XTsK
LSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMTJbZWJwICsgZWF4ICogOF0sIGVjeDsKLSAgICAg
ICAgICAgIHRlc3QgZWF4LCBlYXg7Ci0gICAgICAgICAgICBqbnogY29weUhlYWRlckxvb3A7Ci0K
LSAgICAgICAgICAgIG1vdiBlZHgsIGR3b3JkIHB0cltlc2kgKyAweDE4XTsKLSAgICAgICAgICAg
IHN1YiBlZHgsIDE7Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZXNpICsgMHgyOF07
Ci0gICAgICAgICAgICBzdWIgZWN4LCAxOwotCi0gICAgICAgICAgICBjbXAgZWR4LCBlY3g7Ci0g
ICAgICAgICAgICBqZSBjb3B5QXJnczsKLQotICAgICAgICAgICAgeG9yIGVheCwgZWF4OwotICAg
ICAgICAgICAgbW92IGVieCwgLTQ7Ci0KLSAgICAgICAgZmlsbEV4dHJhQXJnc0xvb3A6Ci0gICAg
ICAgICAgICBzdWIgZWN4LCAxOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0ciAweDMwW2VicCAr
IGVjeCAqIDhdLCBlYXg7ICAgICAgICAgICAgCi0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDB4
MzRbZWJwICsgZWN4ICogOF0sIGVieDsKLSAgICAgICAgICAgIGNtcCBlZHgsIGVjeDsKLSAgICAg
ICAgICAgIGpuZSBmaWxsRXh0cmFBcmdzTG9vcDsKLQotICAgICAgICBjb3B5QXJnczoKLSAgICAg
ICAgICAgIG1vdiBlYXgsIGR3b3JkIHB0cltlc2kgKyAweDJjXTsKLQotICAgICAgICBjb3B5QXJn
c0xvb3A6Ci0gICAgICAgICAgICB0ZXN0IGVkeCwgZWR4OwotICAgICAgICAgICAganogY29weUFy
Z3NEb25lOwotICAgICAgICAgICAgc3ViIGVkeCwgMTsKLSAgICAgICAgICAgIG1vdiBlY3gsIGR3
b3JkIHB0ciAwW2VheCArIGVkeCAqIDhdOwotICAgICAgICAgICAgbW92IGVieCwgZHdvcmQgcHRy
IDRbZWF4ICsgZWR4ICogOF07Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyIDB4MzBbZWJwICsg
ZWR4ICogOF0sIGVjeDsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMHgzNFtlYnAgKyBlZHgg
KiA4XSwgZWJ4OwotICAgICAgICAgICAgam1wIGNvcHlBcmdzTG9vcDsKLQotICAgICAgICBjb3B5
QXJnc0RvbmU6Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZXNwICsgMHgzNF07Ci0g
ICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VjeF0sIGVicDsKLQotICAgICAgICAgICAgY2FsbCBk
d29yZCBwdHJbZXNwICsgMHgzMF07Ci0KLSAgICAgICAgICAgIGNtcCBkd29yZCBwdHJbZWJwICsg
OF0sIDE7Ci0gICAgICAgICAgICBqZSBjYWxsZWVGcmFtZVBvcHBlZDsKLSAgICAgICAgICAgIG1v
diBlYnAsIGR3b3JkIHB0cltlYnBdOwotCi0gICAgICAgIGNhbGxlZUZyYW1lUG9wcGVkOgotICAg
ICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyW2VicCArIDB4MThdOwotICAgICAgICAgICAgbW92
IGVieCwgZHdvcmQgcHRyW2VicCArIDB4MTBdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltl
Y3hdLCBlYng7Ci0KLSAgICAgICAgICAgIGFkZCBlc3AsIDB4MWM7Ci0gICAgICAgICAgICBwb3Ag
ZWJ4OwotICAgICAgICAgICAgcG9wIGVkaTsKLSAgICAgICAgICAgIHBvcCBlc2k7Ci0gICAgICAg
ICAgICBwb3AgZWJwOwotICAgICAgICAgICAgcmV0OwotICAgICAgICB9Ci0gICAgfQotCi0gICAg
X19kZWNsc3BlYyhuYWtlZCkgdm9pZCByZXR1cm5Gcm9tSmF2YVNjcmlwdCgpCi0gICAgewotICAg
ICAgICBfX2FzbSB7Ci0gICAgICAgICAgICBhZGQgZXNwLCAweDFjOwotICAgICAgICAgICAgcG9w
IGVieDsKLSAgICAgICAgICAgIHBvcCBlZGk7Ci0gICAgICAgICAgICBwb3AgZXNpOwotICAgICAg
ICAgICAgcG9wIGVicDsKLSAgICAgICAgICAgIHJldDsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IF9fZGVjbHNwZWMobmFrZWQpIEVuY29kZWRKU1ZhbHVlIGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHZv
aWQqIGNvZGUsIEV4ZWNTdGF0ZSoqLCBQcm90b0NhbGxGcmFtZSosIFJlZ2lzdGVyKikKLSAgICB7
Ci0gICAgICAgIF9fYXNtIHsKLSAgICAgICAgICAgIG1vdiBlZHgsIFtlc3BdCi0gICAgICAgICAg
ICBwdXNoIGVicDsKLSAgICAgICAgICAgIG1vdiBlYXgsIGVicDsKLSAgICAgICAgICAgIG1vdiBl
YnAsIGVzcDsKLSAgICAgICAgICAgIHB1c2ggZXNpOwotICAgICAgICAgICAgcHVzaCBlZGk7Ci0g
ICAgICAgICAgICBwdXNoIGVieDsKLSAgICAgICAgICAgIHN1YiBlc3AsIDB4MWM7Ci0gICAgICAg
ICAgICBtb3YgZWN4LCBbZXNwICsgMHgzNF07Ci0gICAgICAgICAgICBtb3YgZXNpLCBbZXNwICsg
MHgzOF07Ci0gICAgICAgICAgICBtb3YgZWJwLCBbZXNwICsgMHgzY107Ci0gICAgICAgICAgICBz
dWIgZWJwLCAweDIwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDI0XSwgMDsK
LSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJbZWJwICsgMHgyMF0sIDA7Ci0gICAgICAgICAgICBt
b3YgZHdvcmQgcHRyW2VicCArIDB4MWNdLCAwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltl
YnAgKyAweDE4XSwgZWN4OwotICAgICAgICAgICAgbW92IGVieCwgW2VjeF07Ci0gICAgICAgICAg
ICBtb3YgZHdvcmQgcHRyW2VicCArIDB4MTRdLCAwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0
cltlYnAgKyAweDEwXSwgZWJ4OwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweGNd
LCAwOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDhdLCAxOwotICAgICAgICAg
ICAgbW92IGR3b3JkIHB0cltlYnAgKyAweDRdLCBlZHg7Ci0gICAgICAgICAgICBtb3YgZHdvcmQg
cHRyW2VicF0sIGVheDsKLSAgICAgICAgICAgIG1vdiBlYXgsIGVicDsKLQotICAgICAgICAgICAg
bW92IGVkeCwgZHdvcmQgcHRyW2VzaSArIDB4MjhdOwotICAgICAgICAgICAgYWRkIGVkeCwgNTsK
LSAgICAgICAgICAgIHNhbCBlZHgsIDM7Ci0gICAgICAgICAgICBzdWIgZWJwLCBlZHg7Ci0gICAg
ICAgICAgICBtb3YgZHdvcmQgcHRyW2VicF0sIGVheDsKLQotICAgICAgICAgICAgbW92IGVheCwg
NTsKLQotICAgICAgICBjb3B5SGVhZGVyTG9vcDoKLSAgICAgICAgICAgIHN1YiBlYXgsIDE7Ci0g
ICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZXNpICsgZWF4ICogOF07Ci0gICAgICAgICAg
ICBtb3YgZHdvcmQgcHRyIDhbZWJwICsgZWF4ICogOF0sIGVjeDsKLSAgICAgICAgICAgIG1vdiBl
Y3gsIGR3b3JkIHB0ciA0W2VzaSArIGVheCAqIDhdOwotICAgICAgICAgICAgbW92IGR3b3JkIHB0
ciAxMltlYnAgKyBlYXggKiA4XSwgZWN4OwotICAgICAgICAgICAgdGVzdCBlYXgsIGVheDsKLSAg
ICAgICAgICAgIGpueiBjb3B5SGVhZGVyTG9vcDsKLQotICAgICAgICAgICAgbW92IGVkeCwgZHdv
cmQgcHRyW2VzaSArIDB4MThdOwotICAgICAgICAgICAgc3ViIGVkeCwgMTsKLSAgICAgICAgICAg
IG1vdiBlY3gsIGR3b3JkIHB0cltlc2kgKyAweDI4XTsKLSAgICAgICAgICAgIHN1YiBlY3gsIDE7
Ci0KLSAgICAgICAgICAgIGNtcCBlZHgsIGVjeDsKLSAgICAgICAgICAgIGplIGNvcHlBcmdzOwot
Ci0gICAgICAgICAgICB4b3IgZWF4LCBlYXg7Ci0gICAgICAgICAgICBtb3YgZWJ4LCAtNDsKLQot
ICAgICAgICBmaWxsRXh0cmFBcmdzTG9vcDoKLSAgICAgICAgICAgIHN1YiBlY3gsIDE7Ci0gICAg
ICAgICAgICBtb3YgZHdvcmQgcHRyIDB4MzBbZWJwICsgZWN4ICogOF0sIGVheDsgICAgICAgICAg
ICAKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHIgMHgzNFtlYnAgKyBlY3ggKiA4XSwgZWJ4Owot
ICAgICAgICAgICAgY21wIGVkeCwgZWN4OwotICAgICAgICAgICAgam5lIGZpbGxFeHRyYUFyZ3NM
b29wOwotCi0gICAgICAgIGNvcHlBcmdzOgotICAgICAgICAgICAgbW92IGVheCwgZHdvcmQgcHRy
W2VzaSArIDB4MmNdOwotCi0gICAgICAgIGNvcHlBcmdzTG9vcDoKLSAgICAgICAgICAgIHRlc3Qg
ZWR4LCBlZHg7Ci0gICAgICAgICAgICBqeiBjb3B5QXJnc0RvbmU7Ci0gICAgICAgICAgICBzdWIg
ZWR4LCAxOwotICAgICAgICAgICAgbW92IGVjeCwgZHdvcmQgcHRyIDBbZWF4ICsgZWR4ICogOF07
Ci0gICAgICAgICAgICBtb3YgZWJ4LCBkd29yZCBwdHIgNFtlYXggKyBlZHggKiA4XTsKLSAgICAg
ICAgICAgIG1vdiBkd29yZCBwdHIgMHgzMFtlYnAgKyBlZHggKiA4XSwgZWN4OwotICAgICAgICAg
ICAgbW92IGR3b3JkIHB0ciAweDM0W2VicCArIGVkeCAqIDhdLCBlYng7Ci0gICAgICAgICAgICBq
bXAgY29weUFyZ3NMb29wOwotCi0gICAgICAgIGNvcHlBcmdzRG9uZToKLSAgICAgICAgICAgIG1v
diBlY3gsIGR3b3JkIHB0cltlc3AgKyAweDM0XTsKLSAgICAgICAgICAgIG1vdiBkd29yZCBwdHJb
ZWN4XSwgZWJwOwotCi0gICAgICAgICAgICBtb3YgZWRpLCBkd29yZCBwdHJbZXNwICsgMHgzMF07
Ci0gICAgICAgICAgICBtb3YgZHdvcmQgcHRyW2VzcCArIDB4MzBdLCBlYnA7Ci0gICAgICAgICAg
ICBtb3YgZWN4LCBlYnA7Ci0gICAgICAgICAgICBjYWxsIGVkaTsKLQotICAgICAgICAgICAgY21w
IGR3b3JkIHB0cltlYnAgKyA4XSwgMTsKLSAgICAgICAgICAgIGplIGNhbGxlZUZyYW1lUG9wcGVk
OwotICAgICAgICAgICAgbW92IGVicCwgZHdvcmQgcHRyW2VicF07Ci0KLSAgICAgICAgY2FsbGVl
RnJhbWVQb3BwZWQ6Ci0gICAgICAgICAgICBtb3YgZWN4LCBkd29yZCBwdHJbZWJwICsgMHgxOF07
Ci0gICAgICAgICAgICBtb3YgZWJ4LCBkd29yZCBwdHJbZWJwICsgMHgxMF07Ci0gICAgICAgICAg
ICBtb3YgZHdvcmQgcHRyW2VjeF0sIGVieDsKLQotICAgICAgICAgICAgYWRkIGVzcCwgMHgxYzsK
LSAgICAgICAgICAgIHBvcCBlYng7Ci0gICAgICAgICAgICBwb3AgZWRpOwotICAgICAgICAgICAg
cG9wIGVzaTsKLSAgICAgICAgICAgIHBvcCBlYnA7Ci0gICAgICAgICAgICByZXQ7Ci0gICAgICAg
IH0KLSAgICB9Ci19Ci0KLSNlbmRpZiAvLyBDT01QSUxFUihNU1ZDKQotCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKIAogI2VuZGlmIC8vIEpJVFN0dWJzWDg2X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUVGh1bmtzLmNwcAppbmRleCA0YzQ4MTYzZTlmZDAzNzAyYmE2ZTllOWJhN2FlYjVkZmU4MWZh
OTlkLi41MGM3ZjY0YjYyMGU2YmMyM2I2YTQzYTVjNzBlNGFhMTRkNjU5NWE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwCkBAIC01Miw2ICs1Miw3IEBAIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0ciBKSVRUaHVua3M6OmN0aU5hdGl2ZUNhbGwoVk0qIHZtKQogI2VuZGlmCiAg
ICAgcmV0dXJuIGN0aVN0dWIodm0sIG5hdGl2ZUNhbGxHZW5lcmF0b3IpLmNvZGUoKTsKIH0KKwog
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3RpTmF0aXZlQ29uc3RydWN0KFZNKiB2
bSkKIHsKICNpZiBFTkFCTEUoTExJTlQpCkBAIC02MSw2ICs2MiwxMiBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIgSklUVGh1bmtzOjpjdGlOYXRpdmVDb25zdHJ1Y3QoVk0qIHZtKQogICAgIHJldHVy
biBjdGlTdHViKHZtLCBuYXRpdmVDb25zdHJ1Y3RHZW5lcmF0b3IpLmNvZGUoKTsKIH0KIAorTWFj
cm9Bc3NlbWJsZXJDb2RlUHRyIEpJVFRodW5rczo6Y3RpTmF0aXZlVGFpbENhbGwoVk0qIHZtKQor
eworICAgIEFTU0VSVCh2bS0+Y2FuVXNlSklUKCkpOworICAgIHJldHVybiBjdGlTdHViKHZtLCBu
YXRpdmVUYWlsQ2FsbEdlbmVyYXRvcikuY29kZSgpOworfQorCiBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgSklUVGh1bmtzOjpjdGlTdHViKFZNKiB2bSwgVGh1bmtHZW5lcmF0b3IgZ2VuZXJhdG9yKQog
ewogICAgIExvY2tlciBsb2NrZXIobV9sb2NrKTsKQEAgLTgwLDcgKzg3LDEyIEBAIE5hdGl2ZUV4
ZWN1dGFibGUqIEpJVFRodW5rczo6aG9zdEZ1bmN0aW9uU3R1YihWTSogdm0sIE5hdGl2ZUZ1bmN0
aW9uIGZ1bmN0aW9uLCBOCiAgICAgaWYgKE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFi
bGUgPSBtX2hvc3RGdW5jdGlvblN0dWJNYXAtPmdldChzdGQ6Om1ha2VfcGFpcihmdW5jdGlvbiwg
Y29uc3RydWN0b3IpKSkKICAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CiAKLSAgICBO
YXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3Jl
YXRlKCp2bSwgSklUOjpjb21waWxlQ1RJTmF0aXZlQ2FsbCh2bSwgZnVuY3Rpb24pLCBmdW5jdGlv
biwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYoY3RpTmF0
aXZlQ29uc3RydWN0KHZtKSksIGNvbnN0cnVjdG9yLCBOb0ludHJpbnNpYyk7CisgICAgTmF0aXZl
RXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IE5hdGl2ZUV4ZWN1dGFibGU6OmNyZWF0ZSgK
KyAgICAgICAgKnZtLAorICAgICAgICBhZG9wdFJlZihuZXcgTmF0aXZlSklUQ29kZShKSVQ6OmNv
bXBpbGVDVElOYXRpdmVDYWxsKHZtLCBmdW5jdGlvbiksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmsp
KSwKKyAgICAgICAgZnVuY3Rpb24sCisgICAgICAgIGFkb3B0UmVmKG5ldyBOYXRpdmVKSVRDb2Rl
KE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlU2VsZk1hbmFnZWRDb2RlUmVmKGN0aU5hdGl2
ZUNvbnN0cnVjdCh2bSkpLCBKSVRDb2RlOjpIb3N0Q2FsbFRodW5rKSksCisgICAgICAgIGNvbnN0
cnVjdG9yLCBOb0ludHJpbnNpYyk7CiAgICAgd2Vha0FkZCgqbV9ob3N0RnVuY3Rpb25TdHViTWFw
LCBzdGQ6Om1ha2VfcGFpcihmdW5jdGlvbiwgY29uc3RydWN0b3IpLCBXZWFrPE5hdGl2ZUV4ZWN1
dGFibGU+KG5hdGl2ZUV4ZWN1dGFibGUpKTsKICAgICByZXR1cm4gbmF0aXZlRXhlY3V0YWJsZTsK
IH0KQEAgLTkyLDE2ICsxMDQsMTggQEAgTmF0aXZlRXhlY3V0YWJsZSogSklUVGh1bmtzOjpob3N0
RnVuY3Rpb25TdHViKFZNKiB2bSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIFQKICAgICBpZiAo
TmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IG1faG9zdEZ1bmN0aW9uU3R1Yk1h
cC0+Z2V0KHN0ZDo6bWFrZV9wYWlyKGZ1bmN0aW9uLCAmY2FsbEhvc3RGdW5jdGlvbkFzQ29uc3Ry
dWN0b3IpKSkKICAgICAgICAgcmV0dXJuIG5hdGl2ZUV4ZWN1dGFibGU7CiAKLSAgICBNYWNyb0Fz
c2VtYmxlckNvZGVSZWYgY29kZTsKKyAgICBSZWZQdHI8SklUQ29kZT4gZm9yQ2FsbDsKICAgICBp
ZiAoZ2VuZXJhdG9yKSB7Ci0gICAgICAgIGlmICh2bS0+Y2FuVXNlSklUKCkpCi0gICAgICAgICAg
ICBjb2RlID0gZ2VuZXJhdG9yKHZtKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29kZSA9
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZigpOworICAgICAgICBpZiAodm0tPmNhblVzZUpJVCgpKSB7
CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZW50cnkgPSBnZW5lcmF0b3Iodm0p
OworICAgICAgICAgICAgZm9yQ2FsbCA9IGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKGVudHJ5
LCBlbnRyeS5jb2RlKCksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmspKTsKKyAgICAgICAgfQogICAg
IH0gZWxzZQotICAgICAgICBjb2RlID0gSklUOjpjb21waWxlQ1RJTmF0aXZlQ2FsbCh2bSwgZnVu
Y3Rpb24pOwotCi0gICAgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJsZSA9IE5hdGl2
ZUV4ZWN1dGFibGU6OmNyZWF0ZSgqdm0sIGNvZGUsIGZ1bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWY6OmNyZWF0ZVNlbGZNYW5hZ2VkQ29kZVJlZihjdGlOYXRpdmVDb25zdHJ1Y3Qodm0pKSwg
Y2FsbEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0b3IsIGludHJpbnNpYyk7CisgICAgICAgIGZvckNh
bGwgPSBhZG9wdFJlZihuZXcgTmF0aXZlSklUQ29kZShKSVQ6OmNvbXBpbGVDVElOYXRpdmVDYWxs
KHZtLCBmdW5jdGlvbiksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmspKTsKKyAgICAKKyAgICBSZWZQ
dHI8SklUQ29kZT4gZm9yQ29uc3RydWN0ID0gYWRvcHRSZWYobmV3IE5hdGl2ZUpJVENvZGUoTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVTZWxmTWFuYWdlZENvZGVSZWYoY3RpTmF0aXZlQ29u
c3RydWN0KHZtKSksIEpJVENvZGU6Okhvc3RDYWxsVGh1bmspKTsKKyAgICAKKyAgICBOYXRpdmVF
eGVjdXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlID0gTmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKCp2
bSwgZm9yQ2FsbCwgZnVuY3Rpb24sIGZvckNvbnN0cnVjdCwgY2FsbEhvc3RGdW5jdGlvbkFzQ29u
c3RydWN0b3IsIGludHJpbnNpYyk7CiAgICAgd2Vha0FkZCgqbV9ob3N0RnVuY3Rpb25TdHViTWFw
LCBzdGQ6Om1ha2VfcGFpcihmdW5jdGlvbiwgJmNhbGxIb3N0RnVuY3Rpb25Bc0NvbnN0cnVjdG9y
KSwgV2VhazxOYXRpdmVFeGVjdXRhYmxlPihuYXRpdmVFeGVjdXRhYmxlKSk7CiAgICAgcmV0dXJu
IG5hdGl2ZUV4ZWN1dGFibGU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFRodW5rcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaApp
bmRleCA5N2U3ZWNkNmJiNzRhOTA3MGQwNDlkMzI3MTQ4YzA5MzdkMzRiNTZmLi4yZGFhNTBhYTdh
NTdlMDIyODMzZTI5Mzg2YjgwNmExMzNkOTVlNjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFRodW5rcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUVGh1bmtzLmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogCiAgICAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyIGN0aU5hdGl2ZUNhbGwoVk0qKTsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Y3RpTmF0aXZlQ29uc3RydWN0KFZNKik7CisgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGN0aU5h
dGl2ZVRhaWxDYWxsKFZNKik7ICAgIAogCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGN0aVN0
dWIoVk0qLCBUaHVua0dlbmVyYXRvcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJhdG9y
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40OTcwNGNiY2I4YTJiYmZlOWI3MGU1ZmFhZjMwODQ1ZDg5NmE0YmE5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclBy
ZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuY3BwCkBAIC0wLDAgKzEsMjIzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaCIKKwor
I2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJBc3NlbWJseUhlbHBlcnMuaCIKKyNpbmNsdWRl
ICJMaW5rQnVmZmVyLmgiCisjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKKworbmFtZXNwYWNl
IEpTQyB7CisKK1JlZ2lzdGVyU2V0IHJlZ2lzdGVyc1RvUHJlc2VydmUoKQoreworICAgIFJlZ2lz
dGVyU2V0IGNhbGxlZVNhdmVzID0gUmVnaXN0ZXJTZXQ6OmNhbGxlZVNhdmVSZWdpc3RlcnMoKTsK
KyAgICAKKyAgICAvLyBObyBuZWVkIHRvIHByZXNlcnZlIEZQIHNpbmNlIHRoYXQgYWx3YXlzIGdl
dHMgcHJlc2VydmVkIGFueXdheS4KKyAgICBjYWxsZWVTYXZlcy5jbGVhcihHUFJJbmZvOjpjYWxs
RnJhbWVSZWdpc3Rlcik7CisgICAgCisgICAgcmV0dXJuIGNhbGxlZVNhdmVzOworfQorCitwdHJk
aWZmX3QgcmVnaXN0ZXJQcmVzZXJ2YXRpb25PZmZzZXQoKQoreworICAgIHVuc2lnbmVkIG51bWJl
ck9mQ2FsbGVlU2F2ZXMgPSByZWdpc3RlcnNUb1ByZXNlcnZlKCkubnVtYmVyT2ZTZXRSZWdpc3Rl
cnMoKTsKKyAgICAKKyAgICAvLyBOZWVkIHRvIHByZXNlcnZlIHRoZSBvbGQgcmV0dXJuIFBDLgor
ICAgIHVuc2lnbmVkIG51bWJlck9mVmFsdWVzVG9TYXZlID0gbnVtYmVyT2ZDYWxsZWVTYXZlcyAr
IDE7CisgICAgCisgICAgLy8gQWxpZ25tZW50LiBQcmVzZXJ2ZSB0aGUgc2FtZSBhbGlnbm1lbnQg
aW52YXJpYW50cyB0aGF0IHRoZSBjYWxsZXIgaW1wb3NlZC4KKyAgICB1bnNpZ25lZCBudW1iZXJP
Zk5ld1N0YWNrU2xvdHMgPQorICAgICAgICBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tB
bGlnbm1lbnRSZWdpc3RlcnMoKSwgbnVtYmVyT2ZWYWx1ZXNUb1NhdmUpOworICAgIAorICAgIHJl
dHVybiBzaXplb2YoUmVnaXN0ZXIpICogbnVtYmVyT2ZOZXdTdGFja1Nsb3RzOworfQorCitNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgZ2VuZXJhdGVSZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXIoVk0m
IHZtLCBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHRh
cmdldCkKK3sKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKyAgICAvLyBXZSBzaG91bGRuJ3QgZXZlciBi
ZSBnZW5lcmF0aW5nIHdyYXBwZXJzIGZvciBuYXRpdmUgZnVuY3Rpb25zLgorICAgIFJlZ2lzdGVy
U2V0IHRvU2F2ZSA9IHJlZ2lzdGVyc1RvUHJlc2VydmUoKTsKKyAgICBwdHJkaWZmX3Qgb2Zmc2V0
ID0gcmVnaXN0ZXJQcmVzZXJ2YXRpb25PZmZzZXQoKTsKKyAgICAKKyAgICBBc3NlbWJseUhlbHBl
cnMgaml0KCZ2bSwgMCk7CisgICAgCisgICAgaml0LnByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVy
Q2FsbChHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0LmxvYWQzMigKKyAgICAgICAgQXNzZW1ibHlI
ZWxwZXJzOjpBZGRyZXNzKAorICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50
ZXJSZWdpc3RlciwKKyAgICAgICAgICAgIChKU1N0YWNrOjpBcmd1bWVudENvdW50IC0gSlNTdGFj
azo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFBheWxvYWRPZmZz
ZXQpLAorICAgICAgICBHUFJJbmZvOjpyZWdUMik7CisgICAgCisgICAgLy8gUGxhY2UgdGhlIHN0
YWNrIHBvaW50ZXIgd2hlcmUgd2Ugd2FudCBpdCB0byBiZS4KKyAgICBqaXQuc3ViUHRyKEFzc2Vt
Ymx5SGVscGVyczo6VHJ1c3RlZEltbTMyKG9mZnNldCksIEFzc2VtYmx5SGVscGVyczo6c3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOworICAgIAorICAgIC8vIENvbXB1dGUgdGhlIG51bWJlciBvZiB0aGlu
Z3Mgd2Ugd2lsbCBiZSBjb3B5aW5nLgorICAgIGppdC5hZGQzMigKKyAgICAgICAgQXNzZW1ibHlI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoCisgICAgICAgICAgICBKU1N0YWNrOjpDYWxsRnJhbWVIZWFk
ZXJTaXplIC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpLAorICAgICAgICBHUFJJbmZv
OjpyZWdUMik7CisKKyAgICBBU1NFUlQoIXRvU2F2ZS5nZXQoR1BSSW5mbzo6cmVnVDQpKTsKKyAg
ICBqaXQubW92ZShBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBHUFJJbmZv
OjpyZWdUNCk7CisgICAgCisgICAgQXNzZW1ibHlIZWxwZXJzOjpMYWJlbCBsb29wID0gaml0Lmxh
YmVsKCk7CisgICAgaml0LnN1YjMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKDEpLCBH
UFJJbmZvOjpyZWdUMik7CisgICAgaml0LmxvYWQ2NChBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3Mo
R1BSSW5mbzo6cmVnVDQsIG9mZnNldCksIEdQUkluZm86OnJlZ1QwKTsKKyAgICBqaXQuc3RvcmU2
NChHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDQpOworICAgIGppdC5hZGRQdHIoQXNzZW1i
bHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoc2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OnJlZ1Q0
KTsKKyAgICBqaXQuYnJhbmNoVGVzdDMyKEFzc2VtYmx5SGVscGVyczo6Tm9uWmVybywgR1BSSW5m
bzo6cmVnVDIpLmxpbmtUbyhsb29wLCAmaml0KTsKKworICAgIC8vIEF0IHRoaXMgcG9pbnQgcmVn
VDQgKyBvZmZzZXQgcG9pbnRzIHRvIHdoZXJlIHdlIHNhdmUgdGhpbmdzLgorICAgIHB0cmRpZmZf
dCBjdXJyZW50T2Zmc2V0ID0gMDsKKyAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDEsIEFz
c2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUNCwgY3VycmVudE9mZnNldCkpOwor
ICAgIAorICAgIGZvciAoR1BSUmVnIGdwciA9IEFzc2VtYmx5SGVscGVyczo6Zmlyc3RSZWdpc3Rl
cigpOyBncHIgPD0gQXNzZW1ibHlIZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsgZ3ByID0gc3RhdGlj
X2Nhc3Q8R1BSUmVnPihncHIgKyAxKSkgeworICAgICAgICBpZiAoIXRvU2F2ZS5nZXQoZ3ByKSkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjdXJyZW50T2Zmc2V0ICs9IHNpemVvZihS
ZWdpc3Rlcik7CisgICAgICAgIGppdC5zdG9yZTY0KGdwciwgQXNzZW1ibHlIZWxwZXJzOjpBZGRy
ZXNzKEdQUkluZm86OnJlZ1Q0LCBjdXJyZW50T2Zmc2V0KSk7CisgICAgfQorICAgIAorICAgIC8v
IEFzc3VtZSB0aGF0IHRoZXJlIGFyZW4ndCBhbnkgc2F2ZWQgRlAgcmVnaXN0ZXJzLgorICAgIAor
ICAgIC8vIFJlc3RvcmUgdGhlIHRhZyByZWdpc3RlcnMuCisgICAgaml0Lm1vdmUoQXNzZW1ibHlI
ZWxwZXJzOjpUcnVzdGVkSW1tNjQoVGFnVHlwZU51bWJlciksIEdQUkluZm86OnRhZ1R5cGVOdW1i
ZXJSZWdpc3Rlcik7CisgICAgaml0LmFkZDY0KEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMy
KFRhZ01hc2sgLSBUYWdUeXBlTnVtYmVyKSwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVy
LCBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpOworICAgIAorICAgIGppdC5tb3ZlKAorICAgICAg
ICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoCisgICAgICAgICAgICB2bS5nZXRDVElT
dHViKHJlZ2lzdGVyUmVzdG9yYXRpb25UaHVua0dlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVB
ZGRyZXNzKCkpLAorICAgICAgICBHUFJJbmZvOjpub25BcmdHUFIwKTsKKyAgICBqaXQucmVzdG9y
ZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oR1BSSW5mbzo6bm9uQXJnR1BSMCk7CisgICAgQXNz
ZW1ibHlIZWxwZXJzOjpKdW1wIGp1bXAgPSBqaXQuanVtcCgpOworICAgIAorICAgIExpbmtCdWZm
ZXIgbGlua0J1ZmZlcih2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKKyAgICBsaW5rQnVmZmVy
LmxpbmsoanVtcCwgQ29kZUxvY2F0aW9uTGFiZWwodGFyZ2V0KSk7CisKKyAgICBpZiAoT3B0aW9u
czo6dmVyYm9zZUZUTFRvSlNUaHVuaygpKQorICAgICAgICBkYXRhTG9nKCJOZWVkIGEgdGh1bmsg
Zm9yIGNhbGxzIGZyb20gRlRMIHRvIG5vbi1GVEwgdmVyc2lvbiBvZiAiLCAqZXhlY3V0YWJsZSwg
IlxuIik7CisgICAgCisgICAgcmV0dXJuIEZJTkFMSVpFX0RGR19DT0RFKGxpbmtCdWZmZXIsICgi
UmVnaXN0ZXIgcHJlc2VydmF0aW9uIHdyYXBwZXIgZm9yICVzLyVzLCAlcCIsIHRvQ1N0cmluZyhl
eGVjdXRhYmxlLT5oYXNoRm9yKENvZGVGb3JDYWxsKSkuZGF0YSgpLCB0b0NTdHJpbmcoZXhlY3V0
YWJsZS0+aGFzaEZvcihDb2RlRm9yQ29uc3RydWN0KSkuZGF0YSgpLCB0YXJnZXQuZXhlY3V0YWJs
ZUFkZHJlc3MoKSkpOworI2Vsc2UgLy8gRU5BQkxFKEZUTF9KSVQpCisgICAgVU5VU0VEX1BBUkFN
KHZtKTsKKyAgICBVTlVTRURfUEFSQU0oZXhlY3V0YWJsZSk7CisgICAgVU5VU0VEX1BBUkFNKHRh
cmdldCk7CisgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBub24tRlRMIGJ1aWxkcyBmb3IgdHdvIHJl
YXNvbnM6CisgICAgLy8gLSBJdCBqdXN0IHNvIGhhcHBlbnMgdGhhdCBjdXJyZW50bHkgb25seSB0
aGUgRlRMIGJvdHRvbXMgb3V0IGluIHRoaXMgY29kZS4KKyAgICAvLyAtIFRoZSBjb2RlIGFib3Zl
IHVzZXMgNjQtYml0IGluc3RydWN0aW9ucy4gSXQgZG9lc24ndCBuZWNlc3NhcmlseSBoYXZlIHRv
OyBpdCB3b3VsZCBiZQorICAgIC8vICAgZWFzeSB0byBjaGFuZ2UgaXQgc28gdGhhdCBpdCBkb2Vz
bid0LiBCdXQgb2J2aW91c2x5IG1ha2luZyB0aGF0IGNoYW5nZSB3b3VsZCBiZSBhCisgICAgLy8g
ICBwcmVyZXF1aXNpdGUgdG8gcmVtb3ZpbmcgdGhpcyAjaWYuCisgICAgVU5SRUFDSEFCTEVfRk9S
X1BMQVRGT1JNKCk7CisgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQ29kZVJlZigpOworI2VuZGlm
IC8vIEVOQUJMRShGVExfSklUKQorfQorCitzdGF0aWMgdm9pZCBnZW5lcmF0ZVJlZ2lzdGVyUmVz
dG9yYXRpb24oQXNzZW1ibHlIZWxwZXJzJiBqaXQpCit7CisjaWYgRU5BQkxFKEZUTF9KSVQpCisg
ICAgUmVnaXN0ZXJTZXQgdG9TYXZlID0gcmVnaXN0ZXJzVG9QcmVzZXJ2ZSgpOworICAgIHB0cmRp
ZmZfdCBvZmZzZXQgPSByZWdpc3RlclByZXNlcnZhdGlvbk9mZnNldCgpOworICAgIAorICAgIEFT
U0VSVCghdG9TYXZlLmdldChHUFJJbmZvOjpyZWdUNCkpOworCisgICAgLy8gV2UgbmVlZCB0byBw
bGFjZSB0aGUgc3RhY2sgcG9pbnRlciBiYWNrIHRvIHdoZXJlIHRoZSBjYWxsZXIgdGhvdWdodCB0
aGV5IGxlZnQgaXQuCisgICAgLy8gQnV0IGFsc28sIGluIG9yZGVyIHRvIHJlY292ZXIgdGhlIHJl
Z2lzdGVycywgd2UgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyBiaWcgdGhlCisgICAgLy8gYXJndW1l
bnRzIGFyZWEgaXMuCisgICAgCisgICAgaml0LmxvYWQzMigKKyAgICAgICAgQXNzZW1ibHlIZWxw
ZXJzOjpBZGRyZXNzKAorICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJS
ZWdpc3RlciwKKyAgICAgICAgICAgIChKU1N0YWNrOjpBcmd1bWVudENvdW50IC0gSlNTdGFjazo6
Q2FsbGVyRnJhbWVBbmRQQ1NpemUpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFBheWxvYWRPZmZzZXQp
LAorICAgICAgICBHUFJJbmZvOjpyZWdUNCk7CisgICAgCisgICAgaml0Lm1vdmUoR1BSSW5mbzo6
cmVnVDQsIEdQUkluZm86OnJlZ1QyKTsKKyAgICBqaXQubHNoaWZ0MzIoQXNzZW1ibHlIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoMyksIEdQUkluZm86OnJlZ1QyKTsKKyAgICAKKyAgICBqaXQuYWRkUHRy
KEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKG9mZnNldCksIEFzc2VtYmx5SGVscGVyczo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGppdC5hZGRQdHIoQXNzZW1ibHlIZWxwZXJzOjpz
dGFja1BvaW50ZXJSZWdpc3RlciwgR1BSSW5mbzo6cmVnVDIpOworICAgIAorICAgIC8vIFdlIHNh
dmVkIHRoaW5ncyBhdDoKKyAgICAvLworICAgIC8vICAgICBhZGpTUCArIChKU1N0YWNrOjpDYWxs
RnJhbWVIZWFkZXJTaXplIC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUgKyBOdW1Bcmdz
KSAqIDgKKyAgICAvLworICAgIC8vIFdoZXJlOgorICAgIC8vCisgICAgLy8gICAgIGFkalNQID0g
b3JpZ1NQIC0gb2Zmc2V0CisgICAgLy8KKyAgICAvLyByZWdUMiBub3cgcG9pbnRzIGF0OgorICAg
IC8vCisgICAgLy8gICAgIG9yaWdTUCArIE51bUFyZ3MgKiA4CisgICAgLy8gICA9IGFkalNQICsg
b2Zmc2V0ICsgTnVtQXJncyAqIDgKKyAgICAvLyAKKyAgICAvLyBTbyBpZiB3ZSBzdWJ0cmFjdCBv
ZmZzZXQgYW5kIHRoZW4gYWRkIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUgYW5kIHN1YnRy
YWN0CisgICAgLy8gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUsIHdlJ2xsIGdldCB0aGUg
dGhpbmcgd2Ugd2FudC4KKyAgICBwdHJkaWZmX3QgY3VycmVudE9mZnNldCA9IC1vZmZzZXQgKyBz
aXplb2YoUmVnaXN0ZXIpICogKAorICAgICAgICBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXpl
IC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpOworICAgIGppdC5sb2FkUHRyKEFzc2Vt
Ymx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMiwgY3VycmVudE9mZnNldCksIEdQUklu
Zm86OnJlZ1QxKTsKKyAgICAKKyAgICBmb3IgKEdQUlJlZyBncHIgPSBBc3NlbWJseUhlbHBlcnM6
OmZpcnN0UmVnaXN0ZXIoKTsgZ3ByIDw9IEFzc2VtYmx5SGVscGVyczo6bGFzdFJlZ2lzdGVyKCk7
IGdwciA9IHN0YXRpY19jYXN0PEdQUlJlZz4oZ3ByICsgMSkpIHsKKyAgICAgICAgaWYgKCF0b1Nh
dmUuZ2V0KGdwcikpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY3VycmVudE9mZnNl
dCArPSBzaXplb2YoUmVnaXN0ZXIpOworICAgICAgICBqaXQubG9hZDY0KEFzc2VtYmx5SGVscGVy
czo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMiwgY3VycmVudE9mZnNldCksIGdwcik7CisgICAgfQor
ICAgIAorICAgIC8vIFRodW5rcyBsaWtlIHRoaXMgcmVseSBvbiB0aGUgQXJndW1lbnRDb3VudCBi
ZWluZyBpbnRhY3QuIFBheSBpdCBmb3J3YXJkLgorICAgIGppdC5zdG9yZTMyKAorICAgICAgICBH
UFJJbmZvOjpyZWdUNCwKKyAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKAorICAgICAg
ICAgICAgQXNzZW1ibHlIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwKKyAgICAgICAgICAg
IChKU1N0YWNrOjpBcmd1bWVudENvdW50IC0gSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUp
ICogc2l6ZW9mKFJlZ2lzdGVyKSArIFBheWxvYWRPZmZzZXQpKTsKKyAgICAKKyAgICBpZiAoIUFT
U0VSVF9ESVNBQkxFRCkgeworICAgICAgICBBc3NlbWJseUhlbHBlcnM6Okp1bXAgb2sgPSBqaXQu
YnJhbmNoUHRyKAorICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpBYm92ZSwgR1BSSW5mbzo6
cmVnVDEsIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0cihzdGF0aWNfY2FzdDxzaXplX3Q+
KDB4MTAwMCkpKTsKKyAgICAgICAgaml0LmJyZWFrcG9pbnQoKTsKKyAgICAgICAgb2subGluaygm
aml0KTsKKyAgICB9CisgICAgCisgICAgaml0Lmp1bXAoR1BSSW5mbzo6cmVnVDEpOworI2Vsc2Ug
Ly8gRU5BQkxFKEZUTF9KSVQpCisgICAgVU5VU0VEX1BBUkFNKGppdCk7CisgICAgVU5SRUFDSEFC
TEVfRk9SX1BMQVRGT1JNKCk7CisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCit9CisKK01hY3Jv
QXNzZW1ibGVyQ29kZVJlZiByZWdpc3RlclJlc3RvcmF0aW9uVGh1bmtHZW5lcmF0b3IoVk0qIHZt
KQoreworICAgIEFzc2VtYmx5SGVscGVycyBqaXQodm0sIDApOworICAgIGdlbmVyYXRlUmVnaXN0
ZXJSZXN0b3JhdGlvbihqaXQpOworICAgIExpbmtCdWZmZXIgbGlua0J1ZmZlcigqdm0sICZqaXQs
IEdMT0JBTF9USFVOS19JRCk7CisgICAgcmV0dXJuIEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwg
KCJSZWdpc3RlciByZXN0b3JhdGlvbiB0aHVuayIpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlND
CisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L1JlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclByZXNlcnZhdGlvbldyYXBwZXJHZW5lcmF0b3Iu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44ZWUxZmM2YWY3MWU3MjE4NDIxZjFlNzI1MDUyOGI1NWRiOGU1NzIwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclByZXNl
cnZhdGlvbldyYXBwZXJHZW5lcmF0b3IuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUmVnaXN0ZXJQcmVzZXJ2
YXRpb25XcmFwcGVyR2VuZXJhdG9yX2gKKyNkZWZpbmUgUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFw
cGVyR2VuZXJhdG9yX2gKKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJBcml0eUNoZWNr
TW9kZS5oIgorI2luY2x1ZGUgIkFzc2VtYmx5SGVscGVycy5oIgorI2luY2x1ZGUgIk1hY3JvQXNz
ZW1ibGVyQ29kZVJlZi5oIgorI2luY2x1ZGUgIlZNLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitS
ZWdpc3RlclNldCByZWdpc3RlcnNUb1ByZXNlcnZlKCk7CisKK3B0cmRpZmZfdCByZWdpc3RlclBy
ZXNlcnZhdGlvbk9mZnNldCgpOworCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgZ2VuZXJhdGVSZWdp
c3RlclByZXNlcnZhdGlvbldyYXBwZXIoVk0mLCBFeGVjdXRhYmxlQmFzZSosIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciB0YXJnZXQpOworCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcmVnaXN0ZXJSZXN0
b3JhdGlvblRodW5rR2VuZXJhdG9yKFZNKik7CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5k
aWYgLy8gRU5BQkxFKEpJVCkKKworI2VuZGlmIC8vIFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBl
ckdlbmVyYXRvcl9oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVw
YXRjaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCmluZGV4IDVj
OWFhOTY1ODY2MmE1MDZkNjk4YmRkNjJkNGQ4NDBlMjBmNWJiOTcuLjkyYjhjNDdkZGRjZTQ0YzYy
NDBkN2M2ZGQ3NWRmZGU4MjYwY2M2OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVwYXRjaC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNo
LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
LCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTEsMTEgKzUxLDYgQEAgbmFtZXNwYWNlIEpT
QyB7CiAvLyB0aGF0IHdvdWxkIG9yZGluYXJpbHkgaGF2ZSB3ZWxsLWtub3duIHZhbHVlczoKIC8v
IC0gdGFnVHlwZU51bWJlclJlZ2lzdGVyCiAvLyAtIHRhZ01hc2tSZWdpc3RlcgotLy8gLSBjYWxs
RnJhbWVSZWdpc3RlciAqKgotLy8KLS8vIFdlIGN1cnJlbnRseSBvbmx5IHVzZSB0aGUgY2FsbEZy
YW1lUmVnaXN0ZXIgZm9yIGNsb3N1cmUgY2FsbCBwYXRjaGluZywgYW5kIHdlJ3JlIG5vdCBnb2lu
ZyB0bwotLy8gZ2l2ZSB0aGUgRlRMIGNsb3N1cmUgY2FsbCBwYXRjaGluZyBzdXBwb3J0IHVudGls
IHdlIHN3aXRjaCB0byB0aGUgQyBzdGFjayAtIGJ1dCB3aGVuIHdlIGRvIHRoYXQsCi0vLyBjYWxs
RnJhbWVSZWdpc3RlciB3aWxsIGRpc2FwcGVhci4KIAogc3RhdGljIEZ1bmN0aW9uUHRyIHJlYWRD
YWxsVGFyZ2V0KFJlcGF0Y2hCdWZmZXImIHJlcGF0Y2hCdWZmZXIsIENvZGVMb2NhdGlvbkNhbGwg
Y2FsbCkKIHsKQEAgLTI5OCwyMyArMjkzLDIzIEBAIHN0YXRpYyBQcm90b0NoYWluR2VuZXJhdGlv
blJlc3VsdCBnZW5lcmF0ZVByb3RvQ2hhaW5BY2Nlc3NTdHViKEV4ZWNTdGF0ZSogZXhlYywKICNl
bmRpZgogICAgICAgICB9CiAgICAgfQorCiAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgb3BlcmF0
aW9uQ2FsbDsKICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBoYW5kbGVyQ2FsbDsKICAgICBGdW5j
dGlvblB0ciBvcGVyYXRpb25GdW5jdGlvbjsKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzdWNj
ZXNzLCBmYWlsOwogICAgIGlmIChpc0FjY2Vzc29yKSB7Ci0gICAgICAgIEdQUlJlZyBjYWxsRnJh
bWVSZWdpc3RlciA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2guY2FsbEZyYW1l
UmVnaXN0ZXIpOwogICAgICAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZUdldHRlcigpKSB7Ci0gICAg
ICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVyLCBzY3JhdGNo
R1BSLCByZXN1bHRHUFIpOworICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoc2NyYXRjaEdQUiwgcmVzdWx0R1BSKTsKICAgICAgICAgICAgIG9wZXJhdGlvbkZ1
bmN0aW9uID0gb3BlcmF0aW9uQ2FsbEdldHRlcjsKICAgICAgICAgfSBlbHNlIHsKICNpZiBVU0Uo
SlNWQUxVRTY0KQogICAgICAgICAgICAgLy8gRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMp
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0gICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRz
KGNhbGxGcmFtZVJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihwcm90b09i
amVjdCksIHNjcmF0Y2hHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHByb3BlcnR5
TmFtZS5pbXBsKCkpKTsKKyAgICAgICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHByb3RvT2JqZWN0KSwgc2NyYXRj
aEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocHJvcGVydHlOYW1lLmltcGwoKSkp
OwogICAgICAgICAgICAgb3BlcmF0aW9uRnVuY3Rpb24gPSBGdW5jdGlvblB0cihzbG90LmN1c3Rv
bUdldHRlcigpKTsKICNlbHNlCiAgICAgICAgICAgICBzdHViSml0Lm1vdmUoTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW1QdHIocHJvdG9PYmplY3QpLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAg
IHN0dWJKaXQuc2V0dXBBcmd1bWVudHMoY2FsbEZyYW1lUmVnaXN0ZXIsIHNjcmF0Y2hHUFIsCisg
ICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShzY3JhdGNoR1BS
LAogICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKEZ1bmN0aW9u
UHRyKHNsb3QuY3VzdG9tR2V0dGVyKCkpLmV4ZWN1dGFibGVBZGRyZXNzKCkpLAogICAgICAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHByb3BlcnR5TmFtZS5pbXBsKCkp
KTsKICAgICAgICAgICAgIG9wZXJhdGlvbkZ1bmN0aW9uID0gb3BlcmF0aW9uQ2FsbEN1c3RvbUdl
dHRlcjsKQEAgLTM1MCw5ICszNDUsMTAgQEAgc3RhdGljIFByb3RvQ2hhaW5HZW5lcmF0aW9uUmVz
dWx0IGdlbmVyYXRlUHJvdG9DaGFpbkFjY2Vzc1N0dWIoRXhlY1N0YXRlKiBleGVjLAogICAgICAg
ICBwYXRjaEJ1ZmZlci5saW5rKG9wZXJhdGlvbkNhbGwsIG9wZXJhdGlvbkZ1bmN0aW9uKTsKICAg
ICAgICAgcGF0Y2hCdWZmZXIubGluayhoYW5kbGVyQ2FsbCwgbG9va3VwRXhjZXB0aW9uSGFuZGxl
cik7CiAgICAgfQotICAgIHN0dWJSb3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfREZHX1NUVUIo
Ci0gICAgICAgIHBhdGNoQnVmZmVyLAotICAgICAgICAoIkRGRyBwcm90b3R5cGUgY2hhaW4gYWNj
ZXNzIHN0dWIgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAorICAgIAorICAgIHN0dWJSb3V0aW5l
ID0gRklOQUxJWkVfQ09ERV9GT1JfU1RVQigKKyAgICAgICAgZXhlYy0+Y29kZUJsb2NrKCksIHBh
dGNoQnVmZmVyLAorICAgICAgICAoIlByb3RvdHlwZSBjaGFpbiBhY2Nlc3Mgc3R1YiBmb3IgJXMs
IHJldHVybiBwb2ludCAlcCIsCiAgICAgICAgICAgICB0b0NTdHJpbmcoKmV4ZWMtPmNvZGVCbG9j
aygpKS5kYXRhKCksIHN1Y2Nlc3NMYWJlbC5leGVjdXRhYmxlQWRkcmVzcygpKSk7CiAgICAgcmV0
dXJuIFByb3RvQ2hhaW5HZW5lcmF0aW9uU3VjY2VlZGVkOwogfQpAQCAtNDEyLDkgKzQwOCw5IEBA
IHN0YXRpYyBib29sIHRyeUNhY2hlR2V0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFz
ZVZhbHVlLCBjb25zdCBJZGVudGlmaWVyCiAgICAgICAgIAogICAgICAgICBsaW5rUmVzdG9yZVNj
cmF0Y2gocGF0Y2hCdWZmZXIsIG5lZWRUb1Jlc3RvcmVTY3JhdGNoLCBzdHViSW5mbywgc3VjY2Vz
cywgZmFpbCwgZmFpbHVyZUNhc2VzKTsKICAgICAgICAgCi0gICAgICAgIHN0dWJJbmZvLnN0dWJS
b3V0aW5lID0gRklOQUxJWkVfQ09ERV9GT1JfREZHX1NUVUIoCi0gICAgICAgICAgICBwYXRjaEJ1
ZmZlciwKLSAgICAgICAgICAgICgiREZHIEdldEJ5SWQgYXJyYXkgbGVuZ3RoIHN0dWIgZm9yICVz
LCByZXR1cm4gcG9pbnQgJXAiLAorICAgICAgICBzdHViSW5mby5zdHViUm91dGluZSA9IEZJTkFM
SVpFX0NPREVfRk9SX1NUVUIoCisgICAgICAgICAgICBleGVjLT5jb2RlQmxvY2soKSwgcGF0Y2hC
dWZmZXIsCisgICAgICAgICAgICAoIkdldEJ5SWQgYXJyYXkgbGVuZ3RoIHN0dWIgZm9yICVzLCBy
ZXR1cm4gcG9pbnQgJXAiLAogICAgICAgICAgICAgICAgIHRvQ1N0cmluZygqZXhlYy0+Y29kZUJs
b2NrKCkpLmRhdGEoKSwgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQo
CiAgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRvRG9uZSkuZXhl
Y3V0YWJsZUFkZHJlc3MoKSkpOwogICAgICAgICAKQEAgLTU3Miw3ICs1NjgsNiBAQCBzdGF0aWMg
Ym9vbCB0cnlCdWlsZEdldEJ5SURMaXN0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFs
dWUsIGNvbnN0IElkZW50aQogICAgICAgICAKICAgICAgICAgc3R1YkluZm8udS5nZXRCeUlkU2Vs
Zkxpc3QubGlzdFNpemUrKzsKICAgICAgICAgCi0gICAgICAgIEdQUlJlZyBjYWxsRnJhbWVSZWdp
c3RlciA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2guY2FsbEZyYW1lUmVnaXN0
ZXIpOwogICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1Yklu
Zm8ucGF0Y2guYmFzZUdQUik7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAgR1BSUmVn
IHJlc3VsdFRhZ0dQUiA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2gudmFsdWVU
YWdHUFIpOwpAQCAtNTk2LDYgKzU5MSwxMCBAQCBzdGF0aWMgYm9vbCB0cnlCdWlsZEdldEJ5SURM
aXN0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElkZW50aQogICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzdWNjZXNzOwogICAgICAgICAKICAgICAgICAgaWYg
KHNsb3QuaXNDYWNoZWFibGVHZXR0ZXIoKSB8fCBzbG90LmlzQ2FjaGVhYmxlQ3VzdG9tKCkpIHsK
KyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgc2hvdWxkbid0IGJlIGFzc3VtaW5nIHRo
YXQgdGhlIHRvcCBvZiBzdGFjayBpcyBzZXQgdXAgZm9yIEpTQworICAgICAgICAgICAgLy8gSklU
LXN0eWxlIEMgY2FsbHMsIHNpbmNlIHdlIG1heSBiZSBjdXJyZW50bHkgb24gdG9wIG9mIGFuIEZU
TCBmcmFtZS4KKyAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjU3MTEKKyAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHNsb3QuaXNDYWNo
ZWFibGVHZXR0ZXIoKSkgewogICAgICAgICAgICAgICAgIEFTU0VSVChzY3JhdGNoR1BSICE9IElu
dmFsaWRHUFJSZWcpOwogICAgICAgICAgICAgICAgIEFTU0VSVChiYXNlR1BSICE9IHNjcmF0Y2hH
UFIpOwpAQCAtNjEzLDE2ICs2MTIsMTYgQEAgc3RhdGljIGJvb2wgdHJ5QnVpbGRHZXRCeUlETGlz
dChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGkKICAgICAg
ICAgICAgICAgICAgICAgc3R1YkppdC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc2Ny
YXRjaEdQUiwgb2Zmc2V0UmVsYXRpdmVUb0Jhc2Uoc2xvdC5jYWNoZWRPZmZzZXQoKSkpLCBzY3Jh
dGNoR1BSKTsKICNlbmRpZgogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzdHVi
Sml0LnNldHVwQXJndW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVyLCBiYXNlR1BSLCBzY3JhdGNoR1BS
KTsKKyAgICAgICAgICAgICAgICBzdHViSml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShi
YXNlR1BSLCBzY3JhdGNoR1BSKTsKICAgICAgICAgICAgICAgICBvcGVyYXRpb25GdW5jdGlvbiA9
IG9wZXJhdGlvbkNhbGxHZXR0ZXI7CiAgICAgICAgICAgICB9IGVsc2UgewogI2lmIFVTRShKU1ZB
TFVFNjQpCiAgICAgICAgICAgICAgICAgLy8gRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMp
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0gICAgICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3Vt
ZW50cyhjYWxsRnJhbWVSZWdpc3RlciwgYmFzZUdQUiwgYmFzZUdQUiwgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1wbCgpKSk7CisgICAgICAgICAgICAgICAgc3R1YkppdC5z
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYmFzZUdQUiwgYmFzZUdQUiwgTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1wbCgpKSk7CiAgICAgICAgICAgICAgICAgb3BlcmF0
aW9uRnVuY3Rpb24gPSBGdW5jdGlvblB0cihzbG90LmN1c3RvbUdldHRlcigpKTsKICNlbHNlCi0g
ICAgICAgICAgICAgICAgc3R1YkppdC5zZXR1cEFyZ3VtZW50cygKLSAgICAgICAgICAgICAgICAg
ICAgY2FsbEZyYW1lUmVnaXN0ZXIsIGJhc2VHUFIsCisgICAgICAgICAgICAgICAgc3R1YkppdC5z
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoCisgICAgICAgICAgICAgICAgICAgIGJhc2VHUFIs
CiAgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKEZ1bmN0
aW9uUHRyKHNsb3QuY3VzdG9tR2V0dGVyKCkpLmV4ZWN1dGFibGVBZGRyZXNzKCkpLAogICAgICAg
ICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihpZGVudC5pbXBsKCkp
KTsKICAgICAgICAgICAgICAgICBvcGVyYXRpb25GdW5jdGlvbiA9IG9wZXJhdGlvbkNhbGxDdXN0
b21HZXR0ZXI7CkBAIC02NDQsNyArNjQzLDcgQEAgc3RhdGljIGJvb2wgdHJ5QnVpbGRHZXRCeUlE
TGlzdChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGkKICNl
bmRpZgogICAgICAgICAgICAgc3VjY2VzcyA9IHN0dWJKaXQuZW1pdEV4Y2VwdGlvbkNoZWNrKEND
YWxsSGVscGVyczo6SW52ZXJ0ZWRFeGNlcHRpb25DaGVjayk7CiAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVudHNFeGVjU3RhdGUoKTsKKyAgICAgICAgICAgIHN0
dWJKaXQuc2V0dXBBcmd1bWVudHMoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHZtKSwgR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgICAgICAgICAgaGFuZGxlckNhbGwgPSBzdHVi
Sml0LmNhbGwoKTsKICAgICAgICAgICAgIHN0dWJKaXQuanVtcFRvRXhjZXB0aW9uSGFuZGxlcigp
OwogICAgICAgICB9IGVsc2UgewpAQCAtNjg0LDkgKzY4Myw5IEBAIHN0YXRpYyBib29sIHRyeUJ1
aWxkR2V0QnlJRExpc3QoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3Qg
SWRlbnRpCiAgICAgICAgIAogICAgICAgICBSZWZQdHI8SklUU3R1YlJvdXRpbmU+IHN0dWJSb3V0
aW5lID0KICAgICAgICAgICAgIGNyZWF0ZUpJVFN0dWJSb3V0aW5lKAotICAgICAgICAgICAgICAg
IEZJTkFMSVpFX0RGR19DT0RFKAotICAgICAgICAgICAgICAgICAgICBwYXRjaEJ1ZmZlciwKLSAg
ICAgICAgICAgICAgICAgICAgKCJERkcgR2V0QnlJZCBwb2x5bW9ycGhpYyBsaXN0IGFjY2VzcyBm
b3IgJXMsIHJldHVybiBwb2ludCAlcCIsCisgICAgICAgICAgICAgICAgRklOQUxJWkVfQ09ERV9G
T1IoCisgICAgICAgICAgICAgICAgICAgIGV4ZWMtPmNvZGVCbG9jaygpLCBwYXRjaEJ1ZmZlciwK
KyAgICAgICAgICAgICAgICAgICAgKCJHZXRCeUlkIHBvbHltb3JwaGljIGxpc3QgYWNjZXNzIGZv
ciAlcywgcmV0dXJuIHBvaW50ICVwIiwKICAgICAgICAgICAgICAgICAgICAgICAgIHRvQ1N0cmlu
ZygqZXhlYy0+Y29kZUJsb2NrKCkpLmRhdGEoKSwgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9u
LmxhYmVsQXRPZmZzZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R1YkluZm8ucGF0
Y2guZGVsdGFDYWxsVG9Eb25lKS5leGVjdXRhYmxlQWRkcmVzcygpKSksCiAgICAgICAgICAgICAg
ICAgKnZtLApAQCAtNzc1LDcgKzc3NCw3IEBAIHN0YXRpYyBWX0pJVE9wZXJhdGlvbl9FU3NpSkpJ
IGFwcHJvcHJpYXRlTGlzdEJ1aWxkaW5nUHV0QnlJZEZ1bmN0aW9uKGNvbnN0IFB1dFByCiB9CiAK
ICNpZiBFTkFCTEUoR0dDKQotc3RhdGljIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHN0b3JlVG9Xcml0
ZUJhcnJpZXJCdWZmZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBjZWxsLCBHUFJSZWcgc2Ny
YXRjaDEsIEdQUlJlZyBzY3JhdGNoMiwgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyLCBTY3JhdGNo
UmVnaXN0ZXJBbGxvY2F0b3ImIGFsbG9jYXRvcikKK3N0YXRpYyBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBzdG9yZVRvV3JpdGVCYXJyaWVyQnVmZmVyKENDYWxsSGVscGVycyYgaml0LCBHUFJSZWcgY2Vs
bCwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXRjaDIsIFNjcmF0Y2hSZWdpc3RlckFsbG9j
YXRvciYgYWxsb2NhdG9yKQogewogICAgIEFTU0VSVChzY3JhdGNoMSAhPSBzY3JhdGNoMik7CiAg
ICAgV3JpdGVCYXJyaWVyQnVmZmVyKiB3cml0ZUJhcnJpZXJCdWZmZXIgPSAmaml0LnZtKCktPmhl
YXAud3JpdGVCYXJyaWVyQnVmZmVyKCk7CkBAIC04MDgsNyArODA3LDcgQEAgc3RhdGljIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIHN0b3JlVG9Xcml0ZUJhcnJpZXJCdWZmZXIoQ0NhbGxIZWxwZXJzJiBq
aXQsIEdQUlJlZwogICAgIGlmIChieXRlc1RvU3VidHJhY3QpCiAgICAgICAgIGppdC5zdWJQdHIo
TWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihieXRlc1RvU3VidHJhY3QpLCBNYWNyb0Fzc2Vt
Ymxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOyAKIAotICAgIGppdC5zZXR1cEFyZ3VtZW50cyhj
YWxsRnJhbWVSZWdpc3RlciwgY2VsbCk7CisgICAgaml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShjZWxsKTsKICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsID0gaml0LmNhbGwoKTsK
IAogICAgIGlmIChieXRlc1RvU3VidHJhY3QpCkBAIC04MjAsMTMgKzgxOSwxMyBAQCBzdGF0aWMg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgc3RvcmVUb1dyaXRlQmFycmllckJ1ZmZlcihDQ2FsbEhlbHBl
cnMmIGppdCwgR1BSUmVnCiAgICAgcmV0dXJuIGNhbGw7CiB9CiAKLXN0YXRpYyBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCB3cml0ZUJhcnJpZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBvd25lciwg
R1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXRjaDIsIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3Rl
ciwgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yJiBhbGxvY2F0b3IpCitzdGF0aWMgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgd3JpdGVCYXJyaWVyKENDYWxsSGVscGVycyYgaml0LCBHUFJSZWcgb3duZXIs
IEdQUlJlZyBzY3JhdGNoMSwgR1BSUmVnIHNjcmF0Y2gyLCBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0
b3ImIGFsbG9jYXRvcikKIHsKICAgICBBU1NFUlQob3duZXIgIT0gc2NyYXRjaDEpOwogICAgIEFT
U0VSVChvd25lciAhPSBzY3JhdGNoMik7CiAKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBkZWZp
bml0ZWx5Tm90TWFya2VkID0gREZHOjpTcGVjdWxhdGl2ZUpJVDo6Z2VuZXJpY1dyaXRlQmFycmll
cihqaXQsIG93bmVyLCBzY3JhdGNoMSwgc2NyYXRjaDIpOwotICAgIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIGNhbGwgPSBzdG9yZVRvV3JpdGVCYXJyaWVyQnVmZmVyKGppdCwgb3duZXIsIHNjcmF0Y2gx
LCBzY3JhdGNoMiwgY2FsbEZyYW1lUmVnaXN0ZXIsIGFsbG9jYXRvcik7CisgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbCA9IHN0b3JlVG9Xcml0ZUJhcnJpZXJCdWZmZXIoaml0LCBvd25lciwg
c2NyYXRjaDEsIHNjcmF0Y2gyLCBhbGxvY2F0b3IpOwogICAgIGRlZmluaXRlbHlOb3RNYXJrZWQu
bGluaygmaml0KTsKICAgICByZXR1cm4gY2FsbDsKIH0KQEAgLTg0NCw5ICs4NDMsNiBAQCBzdGF0
aWMgdm9pZCBlbWl0UHV0UmVwbGFjZVN0dWIoCiAgICAgUmVmUHRyPEpJVFN0dWJSb3V0aW5lPiYg
c3R1YlJvdXRpbmUpCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7Ci0jaWYgRU5BQkxFKEdH
QykKLSAgICBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0
dWJJbmZvLnBhdGNoLmNhbGxGcmFtZVJlZ2lzdGVyKTsKLSNlbmRpZgogICAgIEdQUlJlZyBiYXNl
R1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5wYXRjaC5iYXNlR1BSKTsKICNpZiBV
U0UoSlNWQUxVRTMyXzY0KQogICAgIEdQUlJlZyB2YWx1ZVRhZ0dQUiA9IHN0YXRpY19jYXN0PEdQ
UlJlZz4oc3R1YkluZm8ucGF0Y2gudmFsdWVUYWdHUFIpOwpAQCAtODkzLDcgKzg4OSw3IEBAIHN0
YXRpYyB2b2lkIGVtaXRQdXRSZXBsYWNlU3R1YigKICNlbmRpZgogICAgIAogI2lmIEVOQUJMRShH
R0MpCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgd3JpdGVCYXJyaWVyT3BlcmF0aW9uID0gd3Jp
dGVCYXJyaWVyKHN0dWJKaXQsIGJhc2VHUFIsIHNjcmF0Y2hHUFIxLCBzY3JhdGNoR1BSMiwgY2Fs
bEZyYW1lUmVnaXN0ZXIsIGFsbG9jYXRvcik7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgd3Jp
dGVCYXJyaWVyT3BlcmF0aW9uID0gd3JpdGVCYXJyaWVyKHN0dWJKaXQsIGJhc2VHUFIsIHNjcmF0
Y2hHUFIxLCBzY3JhdGNoR1BSMiwgYWxsb2NhdG9yKTsKICNlbmRpZgogICAgIAogICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIHN1Y2Nlc3M7CkBAIC05MTgsOSArOTE0LDkgQEAgc3RhdGljIHZvaWQg
ZW1pdFB1dFJlcGxhY2VTdHViKAogICAgIHBhdGNoQnVmZmVyLmxpbmsoc3VjY2Vzcywgc3R1Yklu
Zm8uY2FsbFJldHVybkxvY2F0aW9uLmxhYmVsQXRPZmZzZXQoc3R1YkluZm8ucGF0Y2guZGVsdGFD
YWxsVG9Eb25lKSk7CiAgICAgcGF0Y2hCdWZmZXIubGluayhmYWlsdXJlLCBmYWlsdXJlTGFiZWwp
OwogICAgICAgICAgICAgCi0gICAgc3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9ERkdf
U1RVQigKLSAgICAgICAgcGF0Y2hCdWZmZXIsCi0gICAgICAgICgiREZHIFB1dEJ5SWQgcmVwbGFj
ZSBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwKKyAgICBzdHViUm91dGluZSA9IEZJTkFM
SVpFX0NPREVfRk9SX1NUVUIoCisgICAgICAgIGV4ZWMtPmNvZGVCbG9jaygpLCBwYXRjaEJ1ZmZl
ciwKKyAgICAgICAgKCJQdXRCeUlkIHJlcGxhY2Ugc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAl
cCIsCiAgICAgICAgICAgICB0b0NTdHJpbmcoKmV4ZWMtPmNvZGVCbG9jaygpKS5kYXRhKCksIHN0
dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KAogICAgICAgICAgICAgICAg
IHN0dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRvRG9uZSkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwog
fQpAQCAtOTQwLDcgKzkzNiw2IEBAIHN0YXRpYyB2b2lkIGVtaXRQdXRUcmFuc2l0aW9uU3R1YigK
IHsKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKIAotICAgIEdQUlJlZyBjYWxsRnJhbWVSZWdp
c3RlciA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2guY2FsbEZyYW1lUmVnaXN0
ZXIpOwogICAgIEdQUlJlZyBiYXNlR1BSID0gc3RhdGljX2Nhc3Q8R1BSUmVnPihzdHViSW5mby5w
YXRjaC5iYXNlR1BSKTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIEdQUlJlZyB2YWx1ZVRh
Z0dQUiA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2gudmFsdWVUYWdHUFIpOwpA
QCAtMTA2MCw3ICsxMDU1LDcgQEAgc3RhdGljIHZvaWQgZW1pdFB1dFRyYW5zaXRpb25TdHViKAog
I2VuZGlmCiAgICAgCiAjaWYgRU5BQkxFKEdHQykKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCB3
cml0ZUJhcnJpZXJPcGVyYXRpb24gPSB3cml0ZUJhcnJpZXIoc3R1YkppdCwgYmFzZUdQUiwgc2Ny
YXRjaEdQUjEsIHNjcmF0Y2hHUFIyLCBjYWxsRnJhbWVSZWdpc3RlciwgYWxsb2NhdG9yKTsKKyAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCB3cml0ZUJhcnJpZXJPcGVyYXRpb24gPSB3cml0ZUJhcnJp
ZXIoc3R1YkppdCwgYmFzZUdQUiwgc2NyYXRjaEdQUjEsIHNjcmF0Y2hHUFIyLCBhbGxvY2F0b3Ip
OwogI2VuZGlmCiAgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc3VjY2VzczsKQEAgLTEw
ODYsOSArMTA4MSw5IEBAIHN0YXRpYyB2b2lkIGVtaXRQdXRUcmFuc2l0aW9uU3R1YigKICAgICAg
ICAgU2NyYXRjaEJ1ZmZlciogc2NyYXRjaEJ1ZmZlciA9IHZtLT5zY3JhdGNoQnVmZmVyRm9yU2l6
ZShhbGxvY2F0b3IuZGVzaXJlZFNjcmF0Y2hCdWZmZXJTaXplKCkpOwogICAgICAgICBhbGxvY2F0
b3IucHJlc2VydmVVc2VkUmVnaXN0ZXJzVG9TY3JhdGNoQnVmZmVyKHN0dWJKaXQsIHNjcmF0Y2hC
dWZmZXIsIHNjcmF0Y2hHUFIxKTsKICNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBzdHViSml0
LnNldHVwQXJndW1lbnRzKGNhbGxGcmFtZVJlZ2lzdGVyLCBiYXNlR1BSLCBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbVB0cihzdHJ1Y3R1cmUpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
KHNsb3QuY2FjaGVkT2Zmc2V0KCkpLCB2YWx1ZUdQUik7CisgICAgICAgIHN0dWJKaXQuc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKGJhc2VHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
UHRyKHN0cnVjdHVyZSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2xvdC5jYWNoZWRP
ZmZzZXQoKSksIHZhbHVlR1BSKTsKICNlbHNlCi0gICAgICAgIHN0dWJKaXQuc2V0dXBBcmd1bWVu
dHMoY2FsbEZyYW1lUmVnaXN0ZXIsIGJhc2VHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
UHRyKHN0cnVjdHVyZSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2xvdC5jYWNoZWRP
ZmZzZXQoKSksIHZhbHVlR1BSLCB2YWx1ZVRhZ0dQUik7CisgICAgICAgIHN0dWJKaXQuc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKGJhc2VHUFIsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
UHRyKHN0cnVjdHVyZSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2xvdC5jYWNoZWRP
ZmZzZXQoKSksIHZhbHVlR1BSLCB2YWx1ZVRhZ0dQUik7CiAjZW5kaWYKICAgICAgICAgb3BlcmF0
aW9uQ2FsbCA9IHN0dWJKaXQuY2FsbCgpOwogICAgICAgICBhbGxvY2F0b3IucmVzdG9yZVVzZWRS
ZWdpc3RlcnNGcm9tU2NyYXRjaEJ1ZmZlcihzdHViSml0LCBzY3JhdGNoQnVmZmVyLCBzY3JhdGNo
R1BSMSk7CkBAIC0xMTExLDkgKzExMDYsOSBAQCBzdGF0aWMgdm9pZCBlbWl0UHV0VHJhbnNpdGlv
blN0dWIoCiAgICAgCiAgICAgc3R1YlJvdXRpbmUgPQogICAgICAgICBjcmVhdGVKSVRTdHViUm91
dGluZSgKLSAgICAgICAgICAgIEZJTkFMSVpFX0RGR19DT0RFKAotICAgICAgICAgICAgICAgIHBh
dGNoQnVmZmVyLAotICAgICAgICAgICAgICAgICgiREZHIFB1dEJ5SWQgJXN0cmFuc2l0aW9uIHN0
dWIgKCVwIC0+ICVwKSBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsCisgICAgICAgICAgICBGSU5B
TElaRV9DT0RFX0ZPUigKKyAgICAgICAgICAgICAgICBleGVjLT5jb2RlQmxvY2soKSwgcGF0Y2hC
dWZmZXIsCisgICAgICAgICAgICAgICAgKCJQdXRCeUlkICVzdHJhbnNpdGlvbiBzdHViICglcCAt
PiAlcCkgZm9yICVzLCByZXR1cm4gcG9pbnQgJXAiLAogICAgICAgICAgICAgICAgICAgICBzdHJ1
Y3R1cmUtPm91dE9mTGluZUNhcGFjaXR5KCkgIT0gb2xkU3RydWN0dXJlLT5vdXRPZkxpbmVDYXBh
Y2l0eSgpID8gInJlYWxsb2NhdGluZyAiIDogIiIsCiAgICAgICAgICAgICAgICAgICAgIG9sZFN0
cnVjdHVyZSwgc3RydWN0dXJlLAogICAgICAgICAgICAgICAgICAgICB0b0NTdHJpbmcoKmV4ZWMt
PmNvZGVCbG9jaygpKS5kYXRhKCksIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0
T2Zmc2V0KApAQCAtMTM5NCw5ICsxMzg5LDkgQEAgc3RhdGljIGJvb2wgdHJ5UmVwYXRjaEluKAog
CiAgICAgICAgIGxpbmtSZXN0b3JlU2NyYXRjaChwYXRjaEJ1ZmZlciwgbmVlZFRvUmVzdG9yZVNj
cmF0Y2gsIHN1Y2Nlc3MsIGZhaWwsIGZhaWx1cmVDYXNlcywgc3VjY2Vzc0xhYmVsLCBzbG93Q2Fz
ZUxhYmVsKTsKICAgICAgICAgCi0gICAgICAgIHN0dWJSb3V0aW5lID0gRklOQUxJWkVfQ09ERV9G
T1JfREZHX1NUVUIoCi0gICAgICAgICAgICBwYXRjaEJ1ZmZlciwKLSAgICAgICAgICAgICgiREZH
IEluIChmb3VuZCA9ICVzKSBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwKKyAgICAgICAg
c3R1YlJvdXRpbmUgPSBGSU5BTElaRV9DT0RFX0ZPUl9TVFVCKAorICAgICAgICAgICAgZXhlYy0+
Y29kZUJsb2NrKCksIHBhdGNoQnVmZmVyLAorICAgICAgICAgICAgKCJJbiAoZm91bmQgPSAlcykg
c3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsCiAgICAgICAgICAgICAgICAgd2FzRm91bmQg
PyAieWVzIiA6ICJubyIsIHRvQ1N0cmluZygqZXhlYy0+Y29kZUJsb2NrKCkpLmRhdGEoKSwKICAg
ICAgICAgICAgICAgICBzdWNjZXNzTGFiZWwuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwogICAgIH0K
QEAgLTE0MTksMTcgKzE0MTQsMTkgQEAgdm9pZCByZXBhdGNoSW4oCiAgICAgcmVwYXRjaENhbGwo
ZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiwgb3BlcmF0aW9u
SW4pOwogfQogCi1zdGF0aWMgdm9pZCBsaW5rU2xvd0ZvcihSZXBhdGNoQnVmZmVyJiByZXBhdGNo
QnVmZmVyLCBWTSogdm0sIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBDb2RlU3BlY2lhbGl6
YXRpb25LaW5kIGtpbmQpCitzdGF0aWMgdm9pZCBsaW5rU2xvd0ZvcigKKyAgICBSZXBhdGNoQnVm
ZmVyJiByZXBhdGNoQnVmZmVyLCBWTSogdm0sIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLAor
ICAgIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2Rl
IHJlZ2lzdGVycykKIHsKLSAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkgewotICAgICAgICBy
ZXBhdGNoQnVmZmVyLnJlbGluayhjYWxsTGlua0luZm8uY2FsbFJldHVybkxvY2F0aW9uLCB2bS0+
Z2V0Q1RJU3R1Yih2aXJ0dWFsQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIEFTU0VSVChraW5kID09IENvZGVGb3JDb25zdHJ1Y3QpOwotICAg
IHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24sIHZt
LT5nZXRDVElTdHViKHZpcnR1YWxDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcikuY29kZSgpKTsKKyAg
ICByZXBhdGNoQnVmZmVyLnJlbGluaygKKyAgICAgICAgY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5M
b2NhdGlvbiwKKyAgICAgICAgdm0tPmdldENUSVN0dWIodmlydHVhbFRodW5rR2VuZXJhdG9yRm9y
KGtpbmQsIHJlZ2lzdGVycykpLmNvZGUoKSk7CiB9CiAKLXZvaWQgbGlua0ZvcihFeGVjU3RhdGUq
IGV4ZWMsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBDb2RlQmxvY2sqIGNhbGxlZUNvZGVC
bG9jaywgSlNGdW5jdGlvbiogY2FsbGVlLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0ciwg
Q29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQordm9pZCBsaW5rRm9yKAorICAgIEV4ZWNTdGF0
ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8sIENvZGVCbG9jayogY2FsbGVlQ29k
ZUJsb2NrLAorICAgIEpTRnVuY3Rpb24qIGNhbGxlZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNv
ZGVQdHIsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwKKyAgICBSZWdpc3RlclByZXNlcnZh
dGlvbk1vZGUgcmVnaXN0ZXJzKQogewogICAgIEFTU0VSVCghY2FsbExpbmtJbmZvLnN0dWIpOwog
ICAgIApAQCAtMTQ0NSwzMSArMTQ0MiwzOCBAQCB2b2lkIGxpbmtGb3IoRXhlY1N0YXRlKiBleGVj
LCBDYWxsTGlua0luZm8mIGNhbGxMaW5rSW5mbywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQgogICAg
IEFTU0VSVCghY2FsbExpbmtJbmZvLmlzTGlua2VkKCkpOwogICAgIGNhbGxMaW5rSW5mby5jYWxs
ZWUuc2V0KGV4ZWMtPmNhbGxlckZyYW1lKCktPnZtKCksIGNhbGxMaW5rSW5mby5ob3RQYXRoQmVn
aW4sIGNhbGxlckNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIGNhbGxlZSk7CiAgICAgY2Fs
bExpbmtJbmZvLmxhc3RTZWVuQ2FsbGVlLnNldChleGVjLT5jYWxsZXJGcmFtZSgpLT52bSgpLCBj
YWxsZXJDb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLCBjYWxsZWUpOworICAgIGlmIChzaG91
bGRTaG93RGlzYXNzZW1ibHlGb3IoY2FsbGVyQ29kZUJsb2NrKSkKKyAgICAgICAgZGF0YUxvZygi
TGlua2luZyBjYWxsIGluICIsICpjYWxsZXJDb2RlQmxvY2ssICIgYXQgIiwgY2FsbExpbmtJbmZv
LmNvZGVPcmlnaW4sICIgdG8gIiwgcG9pbnRlckR1bXAoY2FsbGVlQ29kZUJsb2NrKSwgIiwgZW50
cnlwb2ludCBhdCAiLCBjb2RlUHRyLCAiXG4iKTsKICAgICByZXBhdGNoQnVmZmVyLnJlbGluayhj
YWxsTGlua0luZm8uaG90UGF0aE90aGVyLCBjb2RlUHRyKTsKICAgICAKICAgICBpZiAoY2FsbGVl
Q29kZUJsb2NrKQogICAgICAgICBjYWxsZWVDb2RlQmxvY2stPmxpbmtJbmNvbWluZ0NhbGwoZXhl
Yy0+Y2FsbGVyRnJhbWUoKSwgJmNhbGxMaW5rSW5mbyk7CiAgICAgCiAgICAgaWYgKGtpbmQgPT0g
Q29kZUZvckNhbGwpIHsKLSAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoY2FsbExpbmtJbmZv
LmNhbGxSZXR1cm5Mb2NhdGlvbiwgdm0tPmdldENUSVN0dWIobGlua0Nsb3N1cmVDYWxsVGh1bmtH
ZW5lcmF0b3IpLmNvZGUoKSk7CisgICAgICAgIHJlcGF0Y2hCdWZmZXIucmVsaW5rKGNhbGxMaW5r
SW5mby5jYWxsUmV0dXJuTG9jYXRpb24sIHZtLT5nZXRDVElTdHViKGxpbmtDbG9zdXJlQ2FsbFRo
dW5rR2VuZXJhdG9yRm9yKHJlZ2lzdGVycykpLmNvZGUoKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgCiAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7Ci0gICAgbGlu
a1Nsb3dGb3IocmVwYXRjaEJ1ZmZlciwgdm0sIGNhbGxMaW5rSW5mbywgQ29kZUZvckNvbnN0cnVj
dCk7CisgICAgbGlua1Nsb3dGb3IocmVwYXRjaEJ1ZmZlciwgdm0sIGNhbGxMaW5rSW5mbywgQ29k
ZUZvckNvbnN0cnVjdCwgcmVnaXN0ZXJzKTsKIH0KIAotdm9pZCBsaW5rU2xvd0ZvcihFeGVjU3Rh
dGUqIGV4ZWMsIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvLCBDb2RlU3BlY2lhbGl6YXRpb25L
aW5kIGtpbmQpCit2b2lkIGxpbmtTbG93Rm9yKAorICAgIEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExp
bmtJbmZvJiBjYWxsTGlua0luZm8sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwKKyAgICBS
ZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQogewogICAgIENvZGVCbG9jayogY2Fs
bGVyQ29kZUJsb2NrID0gZXhlYy0+Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCk7CiAgICAgVk0q
IHZtID0gY2FsbGVyQ29kZUJsb2NrLT52bSgpOwogICAgIAogICAgIFJlcGF0Y2hCdWZmZXIgcmVw
YXRjaEJ1ZmZlcihjYWxsZXJDb2RlQmxvY2spOwogICAgIAotICAgIGxpbmtTbG93Rm9yKHJlcGF0
Y2hCdWZmZXIsIHZtLCBjYWxsTGlua0luZm8sIGtpbmQpOworICAgIGxpbmtTbG93Rm9yKHJlcGF0
Y2hCdWZmZXIsIHZtLCBjYWxsTGlua0luZm8sIGtpbmQsIHJlZ2lzdGVycyk7CiB9CiAKLXZvaWQg
bGlua0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0lu
Zm8sIENvZGVCbG9jayogY2FsbGVlQ29kZUJsb2NrLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRXhl
Y3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyKQor
dm9pZCBsaW5rQ2xvc3VyZUNhbGwoCisgICAgRXhlY1N0YXRlKiBleGVjLCBDYWxsTGlua0luZm8m
IGNhbGxMaW5rSW5mbywgQ29kZUJsb2NrKiBjYWxsZWVDb2RlQmxvY2ssCisgICAgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlLCBNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIgY29kZVB0ciwKKyAgICBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQog
ewogICAgIEFTU0VSVCghY2FsbExpbmtJbmZvLnN0dWIpOwogICAgIApAQCAtMTQ4Miw2ICsxNDg2
LDE1IEBAIHZvaWQgbGlua0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZv
JiBjYWxsTGlua0luZm8sIENvZGVCbG9jayogY2FsCiAgICAgCiAgICAgQ0NhbGxIZWxwZXJzOjpK
dW1wTGlzdCBzbG93UGF0aDsKICAgICAKKyAgICBwdHJkaWZmX3Qgb2Zmc2V0VG9GcmFtZSA9IC1z
aXplb2YoQ2FsbGVyRnJhbWVBbmRQQyk7CisKKyAgICBpZiAoIUFTU0VSVF9ESVNBQkxFRCkgewor
ICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgb2tBcmd1bWVudENvdW50ID0gc3R1YkppdC5icmFu
Y2gzMigKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6QmVsb3csIENDYWxsSGVscGVyczo6QWRk
cmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJk
aWZmX3Q+KHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpBcmd1bWVudENvdW50KSArIG9mZnNl
dFRvRnJhbWUgKyBQYXlsb2FkT2Zmc2V0KSwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMTAw
MDAwMDApKTsKKyAgICAgICAgc3R1YkppdC5icmVha3BvaW50KCk7CisgICAgICAgIG9rQXJndW1l
bnRDb3VudC5saW5rKCZzdHViSml0KTsKKyAgICB9CisgICAgICAgICAgICAKICNpZiBVU0UoSlNW
QUxVRTY0KQogICAgIC8vIFdlIGNhbiBzYWZlbHkgY2xvYmJlciBldmVyeXRoaW5nIGV4Y2VwdCB0
aGUgY2FsbGVlR1BSLiBXZSBjYW4ndCByZWx5IG9uIHRhZ01hc2tSZWdpc3RlcgogICAgIC8vIGJl
aW5nIHNldC4gU28gd2UgZG8gdGhpcyB0aGUgaGFyZCB3YXkuCkBAIC0xNTA3LDE4ICsxNTIwLDE4
IEBAIHZvaWQgbGlua0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBj
YWxsTGlua0luZm8sIENvZGVCbG9jayogY2FsCiAgICAgc3R1YkppdC5sb2FkUHRyKAogICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoY2FsbGVlR1BSLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZlNj
b3BlQ2hhaW4oKSksCiAgICAgICAgIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKLQorICAgIAog
I2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgc3R1YkppdC5zdG9yZTY0KAogICAgICAgICBHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUiwKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3Rl
cikgKiBKU1N0YWNrOjpTY29wZUNoYWluKSkpOworICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBzdGF0aWNfY2FzdDxwdHJk
aWZmX3Q+KHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpTY29wZUNoYWluKSArIG9mZnNldFRv
RnJhbWUpKTsKICNlbHNlCiAgICAgc3R1YkppdC5zdG9yZVB0cigKICAgICAgICAgR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIsCi0gICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpj
YWxsRnJhbWVSZWdpc3Rlciwgc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoUmVnaXN0ZXIp
ICogSlNTdGFjazo6U2NvcGVDaGFpbikgKyBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVz
Y3JpcHRvciwgYXNCaXRzLnBheWxvYWQpKSk7CisgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVz
cyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRp
ZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pICsgT0JKRUNUX09G
RlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy5wYXlsb2FkKSArIG9mZnNldFRv
RnJhbWUpKTsKICAgICBzdHViSml0LnN0b3JlMzIoCiAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAotICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6
ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pICsgT0JKRUNUX09GRlNFVE9GKEVu
Y29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKSk7CisgICAgICAgIENDYWxsSGVscGVy
czo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIHN0YXRpY19j
YXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSAqIEpTU3RhY2s6OlNjb3BlQ2hhaW4pICsg
T0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpICsgb2Zm
c2V0VG9GcmFtZSkpOwogI2VuZGlmCiAgICAgCiAgICAgQXNzZW1ibHlIZWxwZXJzOjpDYWxsIGNh
bGwgPSBzdHViSml0Lm5lYXJDYWxsKCk7CkBAIC0xNTI5LDIwICsxNTQyLDI0IEBAIHZvaWQgbGlu
a0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8s
IENvZGVCbG9jayogY2FsCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICBzdHViSml0Lm1vdmUo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIEdQUkluZm86OnJl
Z1QxKTsKICNlbmRpZgotICAgIHN0dWJKaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1Q
dHIoY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbi5leGVjdXRhYmxlQWRkcmVzcygpKSwg
R1BSSW5mbzo6bm9uQXJnR1BSMik7Ci0gICAgc3R1YkppdC5yZXN0b3JlUmV0dXJuQWRkcmVzc0Jl
Zm9yZVJldHVybihHUFJJbmZvOjpub25BcmdHUFIyKTsKKyAgICBzdHViSml0Lm1vdmUoQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24uZXhl
Y3V0YWJsZUFkZHJlc3MoKSksIEdQUkluZm86OnJlZ1QyKTsKKyAgICAKKyAgICBzdHViSml0LnJl
c3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEdQUkluZm86OnJlZ1QyKTsKICAgICBBc3Nl
bWJseUhlbHBlcnM6Okp1bXAgc2xvdyA9IHN0dWJKaXQuanVtcCgpOwogICAgIAogICAgIExpbmtC
dWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmc3R1YkppdCwgY2FsbGVyQ29kZUJsb2NrKTsKICAgICAK
ICAgICBwYXRjaEJ1ZmZlci5saW5rKGNhbGwsIEZ1bmN0aW9uUHRyKGNvZGVQdHIuZXhlY3V0YWJs
ZUFkZHJlc3MoKSkpOwotICAgIHBhdGNoQnVmZmVyLmxpbmsoZG9uZSwgY2FsbExpbmtJbmZvLmNh
bGxSZXR1cm5Mb2NhdGlvbi5sYWJlbEF0T2Zmc2V0KDApKTsKLSAgICBwYXRjaEJ1ZmZlci5saW5r
KHNsb3csIENvZGVMb2NhdGlvbkxhYmVsKHZtLT5nZXRDVElTdHViKHZpcnR1YWxDYWxsVGh1bmtH
ZW5lcmF0b3IpLmNvZGUoKSkpOworICAgIGlmIChKSVRDb2RlOjppc09wdGltaXppbmdKSVQoY2Fs
bGVyQ29kZUJsb2NrLT5qaXRUeXBlKCkpKQorICAgICAgICBwYXRjaEJ1ZmZlci5saW5rKGRvbmUs
IGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNldCgwKSk7CisgICAg
ZWxzZQorICAgICAgICBwYXRjaEJ1ZmZlci5saW5rKGRvbmUsIGNhbGxMaW5rSW5mby5ob3RQYXRo
T3RoZXIubGFiZWxBdE9mZnNldCgwKSk7CisgICAgcGF0Y2hCdWZmZXIubGluayhzbG93LCBDb2Rl
TG9jYXRpb25MYWJlbCh2bS0+Z2V0Q1RJU3R1Yih2aXJ0dWFsVGh1bmtHZW5lcmF0b3JGb3IoQ29k
ZUZvckNhbGwsIHJlZ2lzdGVycykpLmNvZGUoKSkpOwogICAgIAogICAgIFJlZlB0cjxDbG9zdXJl
Q2FsbFN0dWJSb3V0aW5lPiBzdHViUm91dGluZSA9IGFkb3B0UmVmKG5ldyBDbG9zdXJlQ2FsbFN0
dWJSb3V0aW5lKAotICAgICAgICBGSU5BTElaRV9ERkdfQ09ERSgKLSAgICAgICAgICAgIHBhdGNo
QnVmZmVyLAotICAgICAgICAgICAgKCJERkcgY2xvc3VyZSBjYWxsIHN0dWIgZm9yICVzLCByZXR1
cm4gcG9pbnQgJXAsIHRhcmdldCAlcCAoJXMpIiwKKyAgICAgICAgRklOQUxJWkVfQ09ERV9GT1Io
CisgICAgICAgICAgICBjYWxsZXJDb2RlQmxvY2ssIHBhdGNoQnVmZmVyLAorICAgICAgICAgICAg
KCJDbG9zdXJlIGNhbGwgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCwgdGFyZ2V0ICVwICgl
cykiLAogICAgICAgICAgICAgICAgIHRvQ1N0cmluZygqY2FsbGVyQ29kZUJsb2NrKS5kYXRhKCks
IGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNldCgwKS5leGVjdXRh
YmxlQWRkcmVzcygpLAogICAgICAgICAgICAgICAgIGNvZGVQdHIuZXhlY3V0YWJsZUFkZHJlc3Mo
KSwgdG9DU3RyaW5nKHBvaW50ZXJEdW1wKGNhbGxlZUNvZGVCbG9jaykpLmRhdGEoKSkpLAogICAg
ICAgICAqdm0sIGNhbGxlckNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIHN0cnVjdHVyZSwg
ZXhlY3V0YWJsZSwgY2FsbExpbmtJbmZvLmNvZGVPcmlnaW4pKTsKQEAgLTE1NTIsNyArMTU2OSw3
IEBAIHZvaWQgbGlua0Nsb3N1cmVDYWxsKEV4ZWNTdGF0ZSogZXhlYywgQ2FsbExpbmtJbmZvJiBj
YWxsTGlua0luZm8sIENvZGVCbG9jayogY2FsCiAgICAgcmVwYXRjaEJ1ZmZlci5yZXBsYWNlV2l0
aEp1bXAoCiAgICAgICAgIFJlcGF0Y2hCdWZmZXI6OnN0YXJ0T2ZCcmFuY2hQdHJXaXRoUGF0Y2hP
blJlZ2lzdGVyKGNhbGxMaW5rSW5mby5ob3RQYXRoQmVnaW4pLAogICAgICAgICBDb2RlTG9jYXRp
b25MYWJlbChzdHViUm91dGluZS0+Y29kZSgpLmNvZGUoKSkpOwotICAgIGxpbmtTbG93Rm9yKHJl
cGF0Y2hCdWZmZXIsIHZtLCBjYWxsTGlua0luZm8sIENvZGVGb3JDYWxsKTsKKyAgICBsaW5rU2xv
d0ZvcihyZXBhdGNoQnVmZmVyLCB2bSwgY2FsbExpbmtJbmZvLCBDb2RlRm9yQ2FsbCwgcmVnaXN0
ZXJzKTsKICAgICAKICAgICBjYWxsTGlua0luZm8uc3R1YiA9IHN0dWJSb3V0aW5lLnJlbGVhc2Uo
KTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgKaW5kZXggZmFhNzg3NjEzMzAz
OGM1M2RmM2FkZmMwMjFiNWU2MmY3YTg3ZmE0ZC4uNzk2Yzg1NTkxZjNkMjE0MmIwYmM4NzI5ZTJh
YzY3MWFhZjFhMTUzOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBh
dGNoLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgKQEAgLTQxLDkg
KzQxLDkgQEAgdm9pZCBidWlsZEdldEJ5SURQcm90b0xpc3QoRXhlY1N0YXRlKiwgSlNWYWx1ZSwg
Y29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFByb3BlcnQKIHZvaWQgcmVwYXRjaFB1dEJ5SUQoRXhl
Y1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFB1dFByb3BlcnR5U2xv
dCYsIFN0cnVjdHVyZVN0dWJJbmZvJiwgUHV0S2luZCk7CiB2b2lkIGJ1aWxkUHV0QnlJZExpc3Qo
RXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFB1dFByb3BlcnR5
U2xvdCYsIFN0cnVjdHVyZVN0dWJJbmZvJiwgUHV0S2luZCk7CiB2b2lkIHJlcGF0Y2hJbihFeGVj
U3RhdGUqLCBKU0NlbGwqLCBjb25zdCBJZGVudGlmaWVyJiwgYm9vbCB3YXNGb3VuZCwgY29uc3Qg
UHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mKTsKLXZvaWQgbGlua0ZvcihFeGVjU3Rh
dGUqLCBDYWxsTGlua0luZm8mLCBDb2RlQmxvY2sqLCBKU0Z1bmN0aW9uKiBjYWxsZWUsIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7Ci12b2lkIGxpbmtTbG93
Rm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVTcGVjaWFsaXphdGlvbktpbmQpOwot
dm9pZCBsaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29kZUJsb2Nr
KiwgU3RydWN0dXJlKiwgRXhlY3V0YWJsZUJhc2UqLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIpOwor
dm9pZCBsaW5rRm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVCbG9jayosIEpTRnVu
Y3Rpb24qIGNhbGxlZSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyLCBDb2RlU3BlY2lhbGl6YXRpb25L
aW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUpOwordm9pZCBsaW5rU2xvd0ZvcihFeGVjU3Rh
dGUqLCBDYWxsTGlua0luZm8mLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLCBSZWdpc3RlclByZXNl
cnZhdGlvbk1vZGUpOwordm9pZCBsaW5rQ2xvc3VyZUNhbGwoRXhlY1N0YXRlKiwgQ2FsbExpbmtJ
bmZvJiwgQ29kZUJsb2NrKiwgU3RydWN0dXJlKiwgRXhlY3V0YWJsZUJhc2UqLCBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSk7CiB2b2lkIHJlc2V0R2V0QnlJ
RChSZXBhdGNoQnVmZmVyJiwgU3RydWN0dXJlU3R1YkluZm8mKTsKIHZvaWQgcmVzZXRQdXRCeUlE
KFJlcGF0Y2hCdWZmZXImLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwogdm9pZCByZXNldEluKFJlcGF0
Y2hCdWZmZXImLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9TcGVjaWFsaXplZFRodW5rSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1NwZWNpYWxpemVkVGh1bmtKSVQuaAppbmRleCA2ZWMxZTcxYTdiYTg3YTIyYmEyN2Mz
MTRjMjcwZjQ5YjM3OWU4OGMyLi5kODA1MzdiNDE4YmExYjYxNmNhOGMzMzJhZWM0MWM1YWE4Mjdh
MjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NwZWNpYWxpemVkVGh1
bmtKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NwZWNpYWxpemVkVGh1bmtK
SVQuaApAQCAtNDEsNiArNDEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3BlY2lhbGl6
ZWRUaHVua0pJVChWTSogdm0sIGludCBleHBlY3RlZEFyZ0NvdW50KQogICAgICAgICAgICAgOiBK
U0ludGVyZmFjZUpJVCh2bSkKICAgICAgICAgeworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uUHJv
bG9ndWUoKTsKICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgd2UgaGF2ZSB0aGUgZXhwZWN0ZWQg
bnVtYmVyIG9mIGFyZ3VtZW50cwogICAgICAgICAgICAgbV9mYWlsdXJlcy5hcHBlbmQoYnJhbmNo
MzIoTm90RXF1YWwsIHBheWxvYWRGb3IoSlNTdGFjazo6QXJndW1lbnRDb3VudCksIFRydXN0ZWRJ
bW0zMihleHBlY3RlZEFyZ0NvdW50ICsgMSkpKTsKICAgICAgICAgfQpAQCAtNDgsNiArNDksNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgZXhwbGljaXQgU3BlY2lhbGl6ZWRUaHVua0pJVChW
TSogdm0pCiAgICAgICAgICAgICA6IEpTSW50ZXJmYWNlSklUKHZtKQogICAgICAgICB7CisgICAg
ICAgICAgICBlbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogICAgICAgICB9CiAgICAgICAgIAogICAg
ICAgICB2b2lkIGxvYWREb3VibGVBcmd1bWVudChpbnQgYXJndW1lbnQsIEZQUmVnaXN0ZXJJRCBk
c3QsIFJlZ2lzdGVySUQgc2NyYXRjaCkKQEAgLTk3LDcgKzk5LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChzcmMgIT0gcmVnVDApCiAgICAgICAgICAgICAg
ICAgbW92ZShzcmMsIHJlZ1QwKTsKLSAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhjYWxsRnJh
bWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpKSwgY2FsbEZyYW1lUmVn
aXN0ZXIpOworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAg
IHJldCgpOwogICAgICAgICB9CiAjZWxzZQpAQCAtMTA1LDcgKzEwNyw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKHBheWxvYWQsIHBheWxv
YWQgPT0gcmVnVDApOwogICAgICAgICAgICAgQVNTRVJUX1VOVVNFRCh0YWcsIHRhZyA9PSByZWdU
MSk7Ci0gICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxG
cmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAg
ICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICByZXQoKTsKICAgICAgICAg
fQogI2VuZGlmCkBAIC0xMzYsNyArMTM4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAg
ICBsb3dOb25aZXJvLmxpbmsodGhpcyk7CiAgICAgICAgICAgICBoaWdoTm9uWmVyby5saW5rKHRo
aXMpOwogI2VuZGlmCi0gICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3MoY2FsbEZyYW1lUmVnaXN0
ZXIsIENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSksIGNhbGxGcmFtZVJlZ2lzdGVyKTsK
KyAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICByZXQoKTsK
ICAgICAgICAgfQogCkBAIC0xNDUsNyArMTQ3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
ICAgICBpZiAoc3JjICE9IHJlZ1QwKQogICAgICAgICAgICAgICAgIG1vdmUoc3JjLCByZWdUMCk7
CiAgICAgICAgICAgICB0YWdSZXR1cm5Bc0ludDMyKCk7Ci0gICAgICAgICAgICBsb2FkUHRyKEFk
ZHJlc3MoY2FsbEZyYW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6Y2FsbGVyRnJhbWVPZmZzZXQoKSks
IGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICAgICAgICAgIGVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7
CiAgICAgICAgICAgICByZXQoKTsKICAgICAgICAgfQogCkBAIC0xNTQsNyArMTU2LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBpZiAoc3JjICE9IHJlZ1QwKQogICAgICAgICAgICAg
ICAgIG1vdmUoc3JjLCByZWdUMCk7CiAgICAgICAgICAgICB0YWdSZXR1cm5Bc0pTQ2VsbCgpOwot
ICAgICAgICAgICAgbG9hZFB0cihBZGRyZXNzKGNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6
OmNhbGxlckZyYW1lT2Zmc2V0KCkpLCBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgICAgICBl
bWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgcmV0KCk7CiAgICAgICAgIH0KICAg
ICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJh
dG9ycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAK
aW5kZXggMTE4NzVjY2JmY2YyOGRlOWY5YjBlNmE4MGNiNmY3ZmY2ZTdkZGQxYi4uMjU3ODhmYzA5
N2JlMTdkNjEyMjEwMDNkYzY3ZWIzNzNmNmQxZWM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0FycmF5SXRlcmF0
b3IuaCIKICNpbmNsdWRlICJKU1N0YWNrLmgiCisjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JT
bG93UGF0aENhbGwuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU3BlY2lh
bGl6ZWRUaHVua0pJVC5oIgogI2luY2x1ZGUgPHd0Zi9JbmxpbmVBU00uaD4KQEAgLTY2LDEwICs2
Nyw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB0aHJvd0V4Y2VwdGlvbkZyb21DYWxsU2xvd1Bh
dGhHZW5lcmF0b3IoVk0qIHZtKQogICAgIC8vIGV2ZW4gdGhvdWdoIHdlIHdvbid0IHVzZSBpdC4K
ICAgICBqaXQucHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKEdQUkluZm86Om5vblByZXNl
cnZlZE5vblJldHVybkdQUik7CiAKLSAgICAvLyBUaGUgQ2FsbEZyYW1lIHJlZ2lzdGVyIHBvaW50
cyB0byB0aGUgKGZhaWxlZCkgY2FsbGVlIGZyYW1lLCBzbyB3ZSBuZWVkIHRvIHBvcCBiYWNrIG9u
ZSBmcmFtZS4KLSAgICBqaXQuZW1pdEdldENhbGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0
cihHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7Ci0KLSAgICBqaXQuc2V0dXBBcmd1bWVudHNF
eGVjU3RhdGUoKTsKKyAgICBqaXQuc2V0dXBBcmd1bWVudHMoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKHZtKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgIGppdC5tb3ZlKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KGxvb2t1cEV4Y2Vw
dGlvbkhhbmRsZXIpKSwgR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAgICAgZW1pdFBvaW50ZXJWYWxp
ZGF0aW9uKGppdCwgR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAgICAgaml0LmNhbGwoR1BSSW5mbzo6
bm9uQXJnR1BSMCk7CkBAIC04MiwyOSArODAsMjggQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHRo
cm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVyYXRvcihWTSogdm0pCiBzdGF0aWMgdm9p
ZCBzbG93UGF0aEZvcigKICAgICBDQ2FsbEhlbHBlcnMmIGppdCwgVk0qIHZtLCBQX0pJVE9wZXJh
dGlvbl9FIHNsb3dQYXRoRnVuY3Rpb24pCiB7Ci0gICAgaml0LnByZXNlcnZlUmV0dXJuQWRkcmVz
c0FmdGVyQ2FsbChHUFJJbmZvOjpub25BcmdHUFIyKTsKLSAgICBlbWl0UG9pbnRlclZhbGlkYXRp
b24oaml0LCBHUFJJbmZvOjpub25BcmdHUFIyKTsKLSAgICBqaXQuZW1pdFB1dFJldHVyblBDVG9D
YWxsRnJhbWVIZWFkZXIoR1BSSW5mbzo6bm9uQXJnR1BSMik7CisgICAgaml0LmVtaXRGdW5jdGlv
blByb2xvZ3VlKCk7CiAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
LCAmdm0tPnRvcENhbGxGcmFtZSk7CisgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhD
YWxsKQorICAgICAgICBqaXQuYWRkUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKC1tYXhG
cmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVn
aXN0ZXIpOwogICAgIGppdC5zZXR1cEFyZ3VtZW50c0V4ZWNTdGF0ZSgpOwogICAgIGppdC5tb3Zl
KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KHNsb3dQYXRo
RnVuY3Rpb24pKSwgR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAgICAgZW1pdFBvaW50ZXJWYWxpZGF0
aW9uKGppdCwgR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAgICAgaml0LmNhbGwoR1BSSW5mbzo6bm9u
QXJnR1BSMCk7CisgICAgaWYgKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQorICAgICAg
ICBqaXQuYWRkUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKG1heEZyYW1lRXh0ZW50Rm9y
U2xvd1BhdGhDYWxsKSwgQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAg
CiAgICAgLy8gVGhpcyBzbG93IGNhbGwgd2lsbCByZXR1cm4gdGhlIGFkZHJlc3Mgb2Ygb25lIG9m
IHRoZSBmb2xsb3dpbmc6CiAgICAgLy8gMSkgRXhjZXB0aW9uIHRocm93aW5nIHRodW5rLgogICAg
IC8vIDIpIEhvc3QgY2FsbCByZXR1cm4gdmFsdWUgcmV0dXJuZXIgdGhpbmd5LgogICAgIC8vIDMp
IFRoZSBmdW5jdGlvbiB0byBjYWxsLgotICAgIGppdC5lbWl0R2V0UmV0dXJuUENGcm9tQ2FsbEZy
YW1lSGVhZGVyUHRyKEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUik7Ci0gICAgaml0
LmVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bVB0cigwKSk7Ci0gICAgZW1pdFBvaW50ZXJWYWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6bm9uUHJl
c2VydmVkTm9uUmV0dXJuR1BSKTsKLSAgICBqaXQucmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVS
ZXR1cm4oR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKICAgICBlbWl0UG9pbnRl
clZhbGlkYXRpb24oaml0LCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisgICAgaml0LmVtaXRG
dW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgaml0Lmp1bXAoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIp
OwogfQogCiBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtGb3JUaHVua0dlbmVyYXRv
cigKLSAgICBWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKKyAgICBWTSogdm0s
IENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJl
Z2lzdGVycykKIHsKICAgICAvLyBUaGUgcmV0dXJuIGFkZHJlc3MgaXMgb24gdGhlIHN0YWNrIG9y
IGluIHRoZSBsaW5rIHJlZ2lzdGVyLiBXZSB3aWxsIGhlbmNlCiAgICAgLy8gc2F2ZSB0aGUgcmV0
dXJuIGFkZHJlc3MgdG8gdGhlIGNhbGwgZnJhbWUgd2hpbGUgd2UgbWFrZSBhIEMrKyBmdW5jdGlv
biBjYWxsCkBAIC0xMTQsMzggKzExMSw1OSBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
IGxpbmtGb3JUaHVua0dlbmVyYXRvcigKICAgICAKICAgICBDQ2FsbEhlbHBlcnMgaml0KHZtKTsK
ICAgICAKLSAgICBzbG93UGF0aEZvcihqaXQsIHZtLCBraW5kID09IENvZGVGb3JDYWxsID8gb3Bl
cmF0aW9uTGlua0NhbGwgOiBvcGVyYXRpb25MaW5rQ29uc3RydWN0KTsKKyAgICBzbG93UGF0aEZv
cihqaXQsIHZtLCBvcGVyYXRpb25MaW5rRm9yKGtpbmQsIHJlZ2lzdGVycykpOwogICAgIAogICAg
IExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0LCBHTE9CQUxfVEhVTktfSUQpOwogICAg
IHJldHVybiBGSU5BTElaRV9DT0RFKAogICAgICAgICBwYXRjaEJ1ZmZlciwKLSAgICAgICAgKCJM
aW5rICVzIHNsb3cgcGF0aCB0aHVuayIsIGtpbmQgPT0gQ29kZUZvckNhbGwgPyAiY2FsbCIgOiAi
Y29uc3RydWN0IikpOworICAgICAgICAoIkxpbmsgJXMlcyBzbG93IHBhdGggdGh1bmsiLCBraW5k
ID09IENvZGVGb3JDYWxsID8gImNhbGwiIDogImNvbnN0cnVjdCIsIHJlZ2lzdGVycyA9PSBNdXN0
UHJlc2VydmVSZWdpc3RlcnMgPyAiIHRoYXQgcHJlc2VydmVzIHJlZ2lzdGVycyIgOiAiIikpOwog
fQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NhbGxUaHVua0dlbmVyYXRvcihWTSogdm0p
CiB7Ci0gICAgcmV0dXJuIGxpbmtGb3JUaHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNhbGwpOwor
ICAgIHJldHVybiBsaW5rRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxsLCBSZWdpc3Rl
clByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxp
bmtDb25zdHJ1Y3RUaHVua0dlbmVyYXRvcihWTSogdm0pCiB7Ci0gICAgcmV0dXJuIGxpbmtGb3JU
aHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNvbnN0cnVjdCk7CisgICAgcmV0dXJuIGxpbmtGb3JU
aHVua0dlbmVyYXRvcih2bSwgQ29kZUZvckNvbnN0cnVjdCwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25O
b3RSZXF1aXJlZCk7CiB9CiAKLS8vIEZvciBjbG9zdXJlIG9wdGltaXphdGlvbnMsIHdlIG9ubHkg
aW5jbHVkZSBjYWxscywgc2luY2UgaWYgeW91J3JlIHVzaW5nIGNsb3N1cmVzIGZvcgotLy8gb2Jq
ZWN0IGNvbnN0cnVjdGlvbiB0aGVuIHlvdSdyZSBnb2luZyB0byBsb3NlIGJpZyB0aW1lIGFueXdh
eS4KLU1hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRvcihW
TSogdm0pCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NhbGxUaGF0UHJlc2VydmVzUmVnc1Ro
dW5rR2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4gbGlua0ZvclRodW5rR2VuZXJhdG9y
KHZtLCBDb2RlRm9yQ2FsbCwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKK30KKworTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIGxpbmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9y
KFZNKiB2bSkKK3sKKyAgICByZXR1cm4gbGlua0ZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9y
Q29uc3RydWN0LCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworfQorCitzdGF0aWMgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIGxpbmtDbG9zdXJlQ2FsbEZvclRodW5rR2VuZXJhdG9yKAorICAgIFZNKiB2
bSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlIHJlZ2lzdGVycykKIHsKICAgICBDQ2FsbEhlbHBl
cnMgaml0KHZtKTsKICAgICAKLSAgICBzbG93UGF0aEZvcihqaXQsIHZtLCBvcGVyYXRpb25MaW5r
Q2xvc3VyZUNhbGwpOworICAgIHNsb3dQYXRoRm9yKGppdCwgdm0sIG9wZXJhdGlvbkxpbmtDbG9z
dXJlQ2FsbEZvcihyZWdpc3RlcnMpKTsKICAgICAKICAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVy
KCp2bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKLSAgICByZXR1cm4gRklOQUxJWkVfQ09ERShw
YXRjaEJ1ZmZlciwgKCJMaW5rIGNsb3N1cmUgY2FsbCBzbG93IHBhdGggdGh1bmsiKSk7CisgICAg
cmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgiTGluayBjbG9zdXJlIGNhbGwgJXMg
c2xvdyBwYXRoIHRodW5rIiwgcmVnaXN0ZXJzID09IE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyA/ICIg
dGhhdCBwcmVzZXJ2ZXMgcmVnaXN0ZXJzIiA6ICIiKSk7Cit9CisKKy8vIEZvciBjbG9zdXJlIG9w
dGltaXphdGlvbnMsIHdlIG9ubHkgaW5jbHVkZSBjYWxscywgc2luY2UgaWYgeW91J3JlIHVzaW5n
IGNsb3N1cmVzIGZvcgorLy8gb2JqZWN0IGNvbnN0cnVjdGlvbiB0aGVuIHlvdSdyZSBnb2luZyB0
byBsb3NlIGJpZyB0aW1lIGFueXdheS4KK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2xvc3Vy
ZUNhbGxUaHVua0dlbmVyYXRvcihWTSogdm0pCit7CisgICAgcmV0dXJuIGxpbmtDbG9zdXJlQ2Fs
bEZvclRodW5rR2VuZXJhdG9yKHZtLCBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkKTsK
K30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxpbmtDbG9zdXJlQ2FsbFRoYXRQcmVzZXJ2ZXNS
ZWdzVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQoreworICAgIHJldHVybiBsaW5rQ2xvc3VyZUNhbGxG
b3JUaHVua0dlbmVyYXRvcih2bSwgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKIH0KIAogc3RhdGlj
IE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsRm9yVGh1bmtHZW5lcmF0b3IoCi0gICAgVk0q
IHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCisgICAgVk0qIHZtLCBDb2RlU3BlY2lh
bGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZSByZWdpc3RlcnMpCiB7
CiAgICAgLy8gVGhlIGNhbGxlZSBpcyBpbiByZWdUMCAoZm9yIEpTVkFMVUUzMl82NCwgdGhlIHRh
ZyBpcyBpbiByZWdUMSkuCiAgICAgLy8gVGhlIHJldHVybiBhZGRyZXNzIGlzIG9uIHRoZSBzdGFj
aywgb3IgaW4gdGhlIGxpbmsgcmVnaXN0ZXIuIFdlIHdpbGwgaGVuY2UKQEAgLTE2MCwzMyArMTc4
LDM0IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVhbEZvclRodW5rR2VuZXJh
dG9yKAogICAgIC8vIHRoZSBERkcga25vd3MgdGhhdCB0aGUgdmFsdWUgaXMgZGVmaW5pdGVseSBh
IGNlbGwsIG9yIGRlZmluaXRlbHkgYSBmdW5jdGlvbi4KICAgICAKICNpZiBVU0UoSlNWQUxVRTY0
KQorICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0KFRhZ01hc2spLCBHUFJJ
bmZvOjpyZWdUMik7CisgICAgCiAgICAgc2xvd0Nhc2UuYXBwZW5kKAogICAgICAgICBqaXQuYnJh
bmNoVGVzdDY0KAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpOb25aZXJvLCBHUFJJbmZvOjpy
ZWdUMCwgR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKSk7CisgICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6Ok5vblplcm8sIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMikpOwogI2Vsc2UKICAg
ICBzbG93Q2FzZS5hcHBlbmQoCiAgICAgICAgIGppdC5icmFuY2gzMigKICAgICAgICAgICAgIEND
YWxsSGVscGVyczo6Tm90RXF1YWwsIEdQUkluZm86OnJlZ1QxLAogICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpKTsKICNlbmRpZgotICAgIGpp
dC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgSlNDZWxsOjpz
dHJ1Y3R1cmVPZmZzZXQoKSksIEdQUkluZm86Om5vbkFyZ0dQUjIpOworICAgIGppdC5sb2FkUHRy
KENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgSlNDZWxsOjpzdHJ1Y3R1cmVP
ZmZzZXQoKSksIEdQUkluZm86OnJlZ1QyKTsKICAgICBzbG93Q2FzZS5hcHBlbmQoCiAgICAgICAg
IGppdC5icmFuY2hQdHIoCiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLAotICAg
ICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86Om5vbkFyZ0dQUjIsIFN0cnVj
dHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLAorICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKEdQUkluZm86OnJlZ1QyLCBTdHJ1Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgpKSwKICAgICAg
ICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihKU0Z1bmN0aW9uOjppbmZvKCkpKSk7
CiAgICAgCiAgICAgLy8gTm93IHdlIGtub3cgd2UgaGF2ZSBhIEpTRnVuY3Rpb24uCiAgICAgCiAg
ICAgaml0LmxvYWRQdHIoCiAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpy
ZWdUMCwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLAotICAgICAgICBHUFJJbmZv
Ojpub25BcmdHUFIyKTsKLSAgICBzbG93Q2FzZS5hcHBlbmQoCi0gICAgICAgIGppdC5icmFuY2gz
MigKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6TGVzc1RoYW4sCi0gICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MoCi0gICAgICAgICAgICAgICAgR1BSSW5mbzo6bm9uQXJnR1BSMiwg
RXhlY3V0YWJsZUJhc2U6Om9mZnNldE9mTnVtUGFyYW1ldGVyc0ZvcihraW5kKSksCi0gICAgICAg
ICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSkpOworICAgICAgICBHUFJJbmZvOjpy
ZWdUMik7CisgICAgaml0LmxvYWRQdHIoCisgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcygK
KyAgICAgICAgICAgIEdQUkluZm86OnJlZ1QyLCBFeGVjdXRhYmxlQmFzZTo6b2Zmc2V0T2ZKSVRD
b2RlV2l0aEFyaXR5Q2hlY2tGb3Ioa2luZCwgcmVnaXN0ZXJzKSksCisgICAgICAgIEdQUkluZm86
OnJlZ1QyKTsKKyAgICBzbG93Q2FzZS5hcHBlbmQoaml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxw
ZXJzOjpaZXJvLCBHUFJJbmZvOjpyZWdUMikpOwogICAgIAogICAgIC8vIE5vdyB3ZSBrbm93IHRo
YXQgd2UgaGF2ZSBhIENvZGVCbG9jaywgYW5kIHdlJ3JlIGNvbW1pdHRlZCB0byBtYWtpbmcgYSBm
YXN0CiAgICAgLy8gY2FsbC4KQEAgLTE5NSw2MiArMjE0LDYwIEBAIHN0YXRpYyBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgdmlydHVhbEZvclRodW5rR2VuZXJhdG9yKAogICAgICAgICBDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIEpTRnVuY3Rpb246Om9mZnNldE9mU2NvcGVDaGFp
bigpKSwKICAgICAgICAgR1BSSW5mbzo6cmVnVDEpOwogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAg
aml0LnN0b3JlNjQoCi0gICAgICAgIEdQUkluZm86OnJlZ1QxLAotICAgICAgICBDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoCi0gICAgICAgICAgICBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwKLSAg
ICAgICAgICAgIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJlZ2lzdGVyKSkgKiBKU1N0
YWNrOjpTY29wZUNoYWluKSk7CisgICAgaml0LmVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlckJlZm9y
ZVByb2xvZ3VlKEdQUkluZm86OnJlZ1QxLCBKU1N0YWNrOjpTY29wZUNoYWluKTsKICNlbHNlCi0g
ICAgaml0LnN0b3JlUHRyKAotICAgICAgICBHUFJJbmZvOjpyZWdUMSwKLSAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKAotICAgICAgICAgICAgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIs
Ci0gICAgICAgICAgICBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihSZWdpc3RlcikpICog
SlNTdGFjazo6U2NvcGVDaGFpbiArCi0gICAgICAgICAgICBPQkpFQ1RfT0ZGU0VUT0YoRW5jb2Rl
ZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQpKSk7Ci0gICAgaml0LnN0b3JlMzIoCi0g
ICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAotICAg
ICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoCi0gICAgICAgICAgICBHUFJJbmZvOjpjYWxsRnJh
bWVSZWdpc3RlciwKLSAgICAgICAgICAgIHN0YXRpY19jYXN0PHB0cmRpZmZfdD4oc2l6ZW9mKFJl
Z2lzdGVyKSkgKiBKU1N0YWNrOjpTY29wZUNoYWluICsKLSAgICAgICAgICAgIE9CSkVDVF9PRkZT
RVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMudGFnKSkpOworICAgIGppdC5lbWl0
UHV0UGF5bG9hZFRvQ2FsbEZyYW1lSGVhZGVyQmVmb3JlUHJvbG9ndWUoR1BSSW5mbzo6cmVnVDEs
IEpTU3RhY2s6OlNjb3BlQ2hhaW4pOworICAgIGppdC5lbWl0UHV0VGFnVG9DYWxsRnJhbWVIZWFk
ZXJCZWZvcmVQcm9sb2d1ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxs
VGFnKSwKKyAgICAgICAgSlNTdGFjazo6U2NvcGVDaGFpbik7CiAjZW5kaWYKICAgICAKLSAgICBq
aXQubG9hZFB0cigKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86Om5vbkFy
Z0dQUjIsIEV4ZWN1dGFibGVCYXNlOjpvZmZzZXRPZkpJVENvZGVXaXRoQXJpdHlDaGVja0Zvcihr
aW5kKSksCi0gICAgICAgIEdQUkluZm86OnJlZ1QwKTsKLSAgICAKICAgICAvLyBNYWtlIGEgdGFp
bCBjYWxsLiBUaGlzIHdpbGwgcmV0dXJuIGJhY2sgdG8gSklUIGNvZGUuCi0gICAgZW1pdFBvaW50
ZXJWYWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6cmVnVDApOwotICAgIGppdC5qdW1wKEdQUkluZm86
OnJlZ1QwKTsKKyAgICBlbWl0UG9pbnRlclZhbGlkYXRpb24oaml0LCBHUFJJbmZvOjpyZWdUMik7
CisgICAgaml0Lmp1bXAoR1BSSW5mbzo6cmVnVDIpOwogCiAgICAgc2xvd0Nhc2UubGluaygmaml0
KTsKICAgICAKICAgICAvLyBIZXJlIHdlIGRvbid0IGtub3cgYW55dGhpbmcsIHNvIHJldmVydCB0
byB0aGUgZnVsbCBzbG93IHBhdGguCiAgICAgCi0gICAgc2xvd1BhdGhGb3Ioaml0LCB2bSwga2lu
ZCA9PSBDb2RlRm9yQ2FsbCA/IG9wZXJhdGlvblZpcnR1YWxDYWxsIDogb3BlcmF0aW9uVmlydHVh
bENvbnN0cnVjdCk7CisgICAgc2xvd1BhdGhGb3Ioaml0LCB2bSwgb3BlcmF0aW9uVmlydHVhbEZv
cihraW5kLCByZWdpc3RlcnMpKTsKICAgICAKICAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKCp2
bSwgJmppdCwgR0xPQkFMX1RIVU5LX0lEKTsKICAgICByZXR1cm4gRklOQUxJWkVfQ09ERSgKICAg
ICAgICAgcGF0Y2hCdWZmZXIsCi0gICAgICAgICgiVmlydHVhbCAlcyBzbG93IHBhdGggdGh1bmsi
LCBraW5kID09IENvZGVGb3JDYWxsID8gImNhbGwiIDogImNvbnN0cnVjdCIpKTsKKyAgICAgICAg
KCJWaXJ0dWFsICVzJXMgc2xvdyBwYXRoIHRodW5rIiwga2luZCA9PSBDb2RlRm9yQ2FsbCA/ICJj
YWxsIiA6ICJjb25zdHJ1Y3QiLCByZWdpc3RlcnMgPT0gTXVzdFByZXNlcnZlUmVnaXN0ZXJzID8g
IiB0aGF0IHByZXNlcnZlcyByZWdpc3RlcnMiIDogIiIpKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIHZpcnR1YWxDYWxsVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogewotICAgIHJldHVybiB2
aXJ0dWFsRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDYWxsKTsKKyAgICByZXR1cm4gdmly
dHVhbEZvclRodW5rR2VuZXJhdG9yKHZtLCBDb2RlRm9yQ2FsbCwgUmVnaXN0ZXJQcmVzZXJ2YXRp
b25Ob3RSZXF1aXJlZCk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsQ29uc3Ry
dWN0VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogewotICAgIHJldHVybiB2aXJ0dWFsRm9yVGh1bmtH
ZW5lcmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1Y3QpOworICAgIHJldHVybiB2aXJ0dWFsRm9yVGh1
bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1Y3QsIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90
UmVxdWlyZWQpOwogfQogCi1zdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZUZvckdl
bmVyYXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKK01hY3JvQXNzZW1i
bGVyQ29kZVJlZiB2aXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0q
IHZtKQoreworICAgIHJldHVybiB2aXJ0dWFsRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JD
YWxsLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOworfQorCitNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
dmlydHVhbENvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQor
eworICAgIHJldHVybiB2aXJ0dWFsRm9yVGh1bmtHZW5lcmF0b3Iodm0sIENvZGVGb3JDb25zdHJ1
Y3QsIE11c3RQcmVzZXJ2ZVJlZ2lzdGVycyk7Cit9CisKK2VudW0gVGh1bmtFbnRyeVR5cGUgeyBF
bnRlclZpYUNhbGwsIEVudGVyVmlhSnVtcCB9OworCitzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIG5hdGl2ZUZvckdlbmVyYXRvcihWTSogdm0sIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2lu
ZCwgVGh1bmtFbnRyeVR5cGUgZW50cnlUeXBlID0gRW50ZXJWaWFDYWxsKQogewogICAgIGludCBl
eGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbiA9IE5hdGl2ZUV4ZWN1dGFibGU6Om9mZnNldE9mTmF0
aXZlRnVuY3Rpb25Gb3Ioa2luZCk7CiAgICAgCiAgICAgSlNJbnRlcmZhY2VKSVQgaml0KHZtKTsK
LSAgICAKKworICAgIGlmIChlbnRyeVR5cGUgPT0gRW50ZXJWaWFDYWxsKQorICAgICAgICBqaXQu
ZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKKwogICAgIGppdC5lbWl0UHV0SW1tZWRpYXRlVG9DYWxs
RnJhbWVIZWFkZXIoMCwgSlNTdGFjazo6Q29kZUJsb2NrKTsKICAgICBqaXQuc3RvcmVQdHIoSlNJ
bnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCAmdm0tPnRvcENhbGxGcmFtZSk7CiAKQEAg
LTI2MSwyMiArMjc4LDE4IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9y
R2VuZXJhdG9yKFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBrCiAgICAgaml0LmVtaXRH
ZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OlNjb3BlQ2hhaW4sIEpTSW50ZXJmYWNl
SklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQuZW1pdFB1dENlbGxU
b0NhbGxGcmFtZUhlYWRlcihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hh
aW4pOwogCi0gICAgaml0LnBlZWsoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQuZW1p
dFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLQog
ICAgIC8vIENhbGxpbmcgY29udmVudGlvbjogICAgICBmKGVjeCwgZWR4LCAuLi4pOwogICAgIC8v
IEhvc3QgZnVuY3Rpb24gc2lnbmF0dXJlOiBmKEV4ZWNTdGF0ZSopOwogICAgIGppdC5tb3ZlKEpT
SW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjplY3gpOwogCi0g
ICAgaml0LnN1YlB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDE2IC0gc2l6ZW9mKHZv
aWQqKSksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7IC8vIEFsaWduIHN0
YWNrIGFmdGVyIGNhbGwuCisgICAgaml0LnN1YlB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZElt
bTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOyAvLyBBbGlnbiBz
dGFjayBhZnRlciBwcm9sb2d1ZS4KIAogICAgIC8vIGNhbGwgdGhlIGZ1bmN0aW9uCiAgICAgaml0
LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OkNhbGxlZSwgSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QxKTsKICAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhK
U0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSwg
SlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6cmVn
VDAsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlcik7IC8vIEVhZ2VybHkgcmVzdG9y
ZSBjYWxsZXIgZnJhbWUgcmVnaXN0ZXIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrLgogICAg
IGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwg
ZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKIAotICAgIGppdC5hZGRQdHIoSlNJbnRlcmZh
Y2VKSVQ6OlRydXN0ZWRJbW0zMigxNiAtIHNpemVvZih2b2lkKikpLCBKU0ludGVyZmFjZUpJVDo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOworICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRy
dXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKIAog
I2VsaWYgQ1BVKFg4Nl82NCkKICAgICAvLyBMb2FkIGNhbGxlciBmcmFtZSdzIHNjb3BlIGNoYWlu
IGludG8gdGhpcyBjYWxsZnJhbWUgc28gdGhhdCB3aGF0ZXZlciB3ZSBjYWxsIGNhbgpAQCAtMjg0
LDIzICsyOTcsMTUgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5l
cmF0b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGsKICAgICBqaXQuZW1pdEdldENh
bGxlckZyYW1lRnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDApOwog
ICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpTY29wZUNoYWlu
LCBKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7CiAgICAgaml0
LmVtaXRQdXRDZWxsVG9DYWxsRnJhbWVIZWFkZXIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU1N0
YWNrOjpTY29wZUNoYWluKTsKLQotICAgIGppdC5wZWVrKEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7
Ci0gICAgaml0LmVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1lSGVhZGVyKEpTSW50ZXJmYWNlSklU
OjpyZWdUMSk7Ci0KICNpZiAhT1MoV0lORE9XUykKICAgICAvLyBDYWxsaW5nIGNvbnZlbnRpb246
ICAgICAgZihlZGksIGVzaSwgZWR4LCBlY3gsIC4uLik7CiAgICAgLy8gSG9zdCBmdW5jdGlvbiBz
aWduYXR1cmU6IGYoRXhlY1N0YXRlKik7CiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNh
bGxGcmFtZVJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVkaSk7CiAKLSAgICBqaXQuc3ViUHRyKEpT
SW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMTYgLSBzaXplb2YoaW50NjRfdCkpLCBKU0ludGVy
ZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOyAvLyBBbGlnbiBzdGFjayBhZnRlciBjYWxs
LgotCiAgICAgaml0LmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OkNhbGxl
ZSwgWDg2UmVnaXN0ZXJzOjplc2kpOwogICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpB
ZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZXNpLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUo
KSksIFg4NlJlZ2lzdGVyczo6cjkpOwotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdU
MCwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJseSByZXN0b3Jl
IGNhbGxlciBmcmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2suCiAgICAg
aml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjpyOSwgZXhlY3V0
YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKIAotICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6
OlRydXN0ZWRJbW0zMigxNiAtIHNpemVvZihpbnQ2NF90KSksIEpTSW50ZXJmYWNlSklUOjpzdGFj
a1BvaW50ZXJSZWdpc3Rlcik7CiAjZWxzZQogICAgIC8vIENhbGxpbmcgY29udmVudGlvbjogICAg
ICBmKGVjeCwgZWR4LCByOCwgcjksIC4uLik7CiAgICAgLy8gSG9zdCBmdW5jdGlvbiBzaWduYXR1
cmU6IGYoRXhlY1N0YXRlKik7CkBAIC0zMTEsNyArMzE2LDYgQEAgc3RhdGljIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0qIHZtLCBDb2RlU3BlY2lhbGl6YXRpb25L
aW5kIGsKIAogICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpD
YWxsZWUsIFg4NlJlZ2lzdGVyczo6ZWR4KTsKICAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJ
VDo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVkeCwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRh
YmxlKCkpLCBYODZSZWdpc3RlcnM6OnI5KTsKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6
cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlcik7IC8vIEVhZ2VybHkgcmVz
dG9yZSBjYWxsZXIgZnJhbWUgcmVnaXN0ZXIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrLgog
ICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6cjksIGV4
ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSk7CiAKICAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNl
SklUOjpUcnVzdGVkSW1tMzIoNCAqIHNpemVvZihpbnQ2NF90KSArIDE2IC0gc2l6ZW9mKGludDY0
X3QpKSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKQEAgLTMzMCwyOCAr
MzM0LDE4IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9y
KFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBrCiAgICAgaml0LmVtaXRHZXRGcm9tQ2Fs
bEZyYW1lSGVhZGVyUHRyKEpTU3RhY2s6OlNjb3BlQ2hhaW4sIEpTSW50ZXJmYWNlSklUOjpyZWdU
MSwgQVJNNjRSZWdpc3RlcnM6OngzKTsKICAgICBqaXQuZW1pdFB1dENlbGxUb0NhbGxGcmFtZUhl
YWRlcihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTU3RhY2s6OlNjb3BlQ2hhaW4pOwogCi0gICAg
aml0LnByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChKU0ludGVyZmFjZUpJVDo6cmVnVDMp
OyAvLyBDYWxsZWUgcHJlc2VydmVkCi0gICAgaml0LmVtaXRQdXRSZXR1cm5QQ1RvQ2FsbEZyYW1l
SGVhZGVyKEFSTTY0UmVnaXN0ZXJzOjpscik7Ci0KICAgICAvLyBIb3N0IGZ1bmN0aW9uIHNpZ25h
dHVyZTogZihFeGVjU3RhdGUqKTsKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIEFSTTY0UmVnaXN0ZXJzOjp4MCk7CiAKICAgICBqaXQuZW1pdEdldEZyb21D
YWxsRnJhbWVIZWFkZXJQdHIoSlNTdGFjazo6Q2FsbGVlLCBBUk02NFJlZ2lzdGVyczo6eDEpOwog
ICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEFSTTY0UmVnaXN0ZXJzOjp4
MSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBBUk02NFJlZ2lzdGVyczo6eDIp
OwotICAgIGppdC5tb3ZlKEFSTTY0UmVnaXN0ZXJzOjp4MywgSlNJbnRlcmZhY2VKSVQ6OmNhbGxG
cmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJseSByZXN0b3JlIGNhbGxlciBmcmFtZSByZWdpc3RlciB0
byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2suCiAgICAgaml0LmNhbGwoSlNJbnRlcmZhY2VKSVQ6
OkFkZHJlc3MoQVJNNjRSZWdpc3RlcnM6OngyLCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikp
OwotCi0gICAgaml0LnJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEpTSW50ZXJmYWNl
SklUOjpyZWdUMyk7Ci0KICNlbGlmIENQVShBUk0pIHx8IENQVShTSDQpIHx8IENQVShNSVBTKQog
ICAgIC8vIExvYWQgY2FsbGVyIGZyYW1lJ3Mgc2NvcGUgY2hhaW4gaW50byB0aGlzIGNhbGxmcmFt
ZSBzbyB0aGF0IHdoYXRldmVyIHdlIGNhbGwgY2FuIGdldCB0byBpdHMgZ2xvYmFsIGRhdGEuCiAg
ICAgaml0LmVtaXRHZXRDYWxsZXJGcmFtZUZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QyKTsKICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoSlNT
dGFjazo6U2NvcGVDaGFpbiwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxLCBKU0ludGVyZmFjZUpJVDo6
cmVnVDIpOwogICAgIGppdC5lbWl0UHV0Q2VsbFRvQ2FsbEZyYW1lSGVhZGVyKEpTSW50ZXJmYWNl
SklUOjpyZWdUMSwgSlNTdGFjazo6U2NvcGVDaGFpbik7CiAKLSAgICBqaXQucHJlc2VydmVSZXR1
cm5BZGRyZXNzQWZ0ZXJDYWxsKEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7IC8vIENhbGxlZSBwcmVz
ZXJ2ZWQKLSAgICBqaXQuZW1pdFB1dFJldHVyblBDVG9DYWxsRnJhbWVIZWFkZXIoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QzKTsKLQogI2lmIENQVShNSVBTKQogICAgIC8vIEFsbG9jYXRlIHN0YWNrIHNw
YWNlIGZvciAodW51c2VkKSAxNiBieXRlcyAoOC1ieXRlIGFsaWduZWQpIGZvciA0IGFyZ3VtZW50
cy4KICAgICBqaXQuc3ViUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMTYpLCBKU0lu
dGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwpAQCAtMzYyLDcgKzM1Niw2IEBAIHN0
YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2bSwgQ29k
ZVNwZWNpYWxpemF0aW9uS2luZCBrCiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxG
cmFtZVJlZ2lzdGVyLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwKTsKIAogICAgIGppdC5l
bWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihKU1N0YWNrOjpDYWxsZWUsIEpTSW50ZXJmYWNl
SklUOjphcmd1bWVudEdQUjEpOwotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdUMiwg
SlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsgLy8gRWFnZXJseSByZXN0b3JlIGNh
bGxlciBmcmFtZSByZWdpc3RlciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2suCiAgICAgaml0
LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmFyZ3VtZW50
R1BSMSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBKU0ludGVyZmFjZUpJVDo6
cmVnVDIpOwogICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNl
SklUOjpyZWdUMiwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pKTsKIApAQCAtMzcwLDggKzM2
Myw2IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZN
KiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBrCiAgICAgLy8gUmVzdG9yZSBzdGFjayBzcGFj
ZQogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxNiksIEpTSW50
ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAjZW5kaWYKLQotICAgIGppdC5yZXN0
b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwogI2Vs
c2UKICNlcnJvciAiSklUIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybS4iCiAgICAgVU5V
U0VEX1BBUkFNKGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKTsKQEAgLTM4OSwyNSArMzgwLDIx
IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9yKFZNKiB2
bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBrCiAgICAgICAgIEpTSW50ZXJmYWNlSklUOjpUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6RW1wdHlWYWx1ZVRhZykpOwogI2VuZGlmCiAKKyAgICBqaXQuZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAvLyBSZXR1cm4uCiAgICAgaml0LnJldCgpOwogCiAg
ICAgLy8gSGFuZGxlIGFuIGV4Y2VwdGlvbgogICAgIGV4Y2VwdGlvbkhhbmRsZXIubGluaygmaml0
KTsKIAotICAgIC8vIEdyYWIgdGhlIHJldHVybiBhZGRyZXNzLgotICAgIGppdC5wcmVzZXJ2ZVJl
dHVybkFkZHJlc3NBZnRlckNhbGwoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKLSAgICAKLSAgICBq
aXQubW92ZShKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbVB0cigmdm0tPmV4Y2VwdGlvbkxvY2F0
aW9uKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKLSAgICBqaXQuc3RvcmVQdHIoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QxLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwotCiAgICAgaml0LnN0b3JlUHRy
KEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgJnZtLT50b3BDYWxsRnJhbWUpOwog
CiAjaWYgQ1BVKFg4NikgJiYgVVNFKEpTVkFMVUUzMl82NCkKICAgICBqaXQuYWRkUHRyKEpTSW50
ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoLTEyKSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKLSAgICBqaXQucHVzaChKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0
ZXIpOworICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNl
SklUOjpjYWxsRnJhbWVSZWdpc3RlciksIEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7CisgICAgaml0
LnB1c2goSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICNlbHNlCi0gICAgaml0Lm1vdmUoSlNJbnRl
cmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIw
KTsKKyAgICBqaXQubG9hZFB0cihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJ
VDo6Y2FsbEZyYW1lUmVnaXN0ZXIpLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwKTsKICNl
bmRpZgogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tUHRyKEZ1bmN0aW9u
UHRyKG9wZXJhdGlvblZNSGFuZGxlRXhjZXB0aW9uKS52YWx1ZSgpKSwgSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QzKTsKICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6cmVnVDMpOwpAQCAtNDE4LDcg
KzQwNSw3IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbmF0aXZlRm9yR2VuZXJhdG9y
KFZNKiB2bSwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBrCiAgICAgaml0Lmp1bXBUb0V4Y2VwdGlv
bkhhbmRsZXIoKTsKIAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0LCBHTE9C
QUxfVEhVTktfSUQpOwotICAgIHJldHVybiBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIm5h
dGl2ZSAlcyB0cmFtcG9saW5lIiwgdG9DU3RyaW5nKGtpbmQpLmRhdGEoKSkpOworICAgIHJldHVy
biBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIm5hdGl2ZSAlcyVzIHRyYW1wb2xpbmUiLCBl
bnRyeVR5cGUgPT0gRW50ZXJWaWFKdW1wID8gIlRhaWwgIiA6ICIiLCB0b0NTdHJpbmcoa2luZCku
ZGF0YSgpKSk7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVDYWxsR2VuZXJhdG9y
KFZNKiB2bSkKQEAgLTQyNiw2ICs0MTMsMTEgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2
ZUNhbGxHZW5lcmF0b3IoVk0qIHZtKQogICAgIHJldHVybiBuYXRpdmVGb3JHZW5lcmF0b3Iodm0s
IENvZGVGb3JDYWxsKTsKIH0KIAorTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5hdGl2ZVRhaWxDYWxs
R2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICByZXR1cm4gbmF0aXZlRm9yR2VuZXJhdG9yKHZtLCBD
b2RlRm9yQ2FsbCwgRW50ZXJWaWFKdW1wKTsKK30KKwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG5h
dGl2ZUNvbnN0cnVjdEdlbmVyYXRvcihWTSogdm0pCiB7CiAgICAgcmV0dXJuIG5hdGl2ZUZvckdl
bmVyYXRvcih2bSwgQ29kZUZvckNvbnN0cnVjdCk7CkBAIC00MzUsMTQgKzQyNywxNiBAQCBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgYXJpdHlGaXh1cChWTSogdm0pCiB7CiAgICAgSlNJbnRlcmZhY2VK
SVQgaml0KHZtKTsKIAotICAgIC8vIFdlIGVudGVyIHdpdGggZml4dXAgY291bnQgaW4gcmVnVDAK
KyAgICAvLyBXZSBlbnRlciB3aXRoIGZpeHVwIGNvdW50LCBpbiBhbGlnbmVkIHN0YWNrIHVuaXRz
LCBpbiByZWdUMCBhbmQgdGhlIHJldHVybiB0aHVuayBpbgorICAgIC8vIHJlZ1Q1LiBXZSB1c2Ug
Vk06OmN1cnJlbnRSZXR1cm5UaHVua1BDIGluc3RlYWQgb2YgcmVnVDUgb24gWDg2LTMyLgogI2lm
IFVTRShKU1ZBTFVFNjQpCiAjICBpZiBDUFUoWDg2XzY0KQogICAgIGppdC5wb3AoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1Q0KTsKICMgIGVuZGlmCisgICAgaml0LmxzaGlmdDMyKEpTSW50ZXJmYWNlSklU
OjpUcnVzdGVkSW1tMzIobG9nU3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSksIEpTSW50ZXJmYWNl
SklUOjpyZWdUMCk7CiAgICAgaml0Lm5lZzY0KEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7CiAgICAg
aml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU0ludGVyZmFjZUpJ
VDo6cmVnVDMpOwotICAgIGppdC5sb2FkMzIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRl
cmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBKU1N0YWNrOjpBcmd1bWVudENvdW50ICogOCks
IEpTSW50ZXJmYWNlSklUOjpyZWdUMik7CisgICAgaml0LmxvYWQzMihKU0ludGVyZmFjZUpJVDo6
QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTU3RhY2s6OkFyZ3Vt
ZW50Q291bnQgKiBzaXplb2YoUmVnaXN0ZXIpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKICAg
ICBqaXQuYWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMihKU1N0YWNrOjpDYWxsRnJh
bWVIZWFkZXJTaXplKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKIAogICAgIC8vIE1vdmUgY3Vy
cmVudCBmcmFtZSBkb3duIHJlZ1QwIG51bWJlciBvZiBzbG90cwpAQCAtNDUyLDE3ICs0NDYsMjcg
QEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5Rml4dXAoVk0qIHZtKQogICAgIGppdC5hZGRQ
dHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qz
KTsKICAgICBqaXQuYnJhbmNoU3ViMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIEpTSW50ZXJm
YWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNlSklUOjpyZWdUMikubGlua1RvKGNv
cHlMb29wLCAmaml0KTsKIAotICAgIC8vIEZpbGwgaW4gcmVnVDAgbWlzc2luZyBhcmcgc2xvdHMg
d2l0aCB1bmRlZmluZWQKKyAgICAvLyBGaWxsIGluIHJlZ1QwIC0gMSBtaXNzaW5nIGFyZyBzbG90
cyB3aXRoIHVuZGVmaW5lZAogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QyKTsKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6VHJ1c3Rl
ZEltbTY0KFZhbHVlVW5kZWZpbmVkKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKKyAgICBqaXQu
YWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QyKTsKICAgICBKU0ludGVyZmFjZUpJVDo6TGFiZWwgZmlsbFVuZGVmaW5lZExvb3Aoaml0Lmxh
YmVsKCkpOwogICAgIGppdC5zdG9yZTY0KEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgTWFjcm9Bc3Nl
bWJsZXI6OkJhc2VJbmRleChKU0ludGVyZmFjZUpJVDo6cmVnVDMsIEpTSW50ZXJmYWNlSklUOjpy
ZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQpKTsKICAgICBqaXQuYWRkUHRyKEpTSW50
ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoOCksIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7CiAgICAg
aml0LmJyYW5jaEFkZDMyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCBKU0ludGVyZmFjZUpJVDo6
VHJ1c3RlZEltbTMyKDEpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpLmxpbmtUbyhmaWxsVW5kZWZp
bmVkTG9vcCwgJmppdCk7Ci0KLSAgICAvLyBBZGp1c3QgY2FsbCBmcmFtZSByZWdpc3RlciB0byBh
Y2NvdW50IGZvciBtaXNzaW5nIGFyZ3MKLSAgICBqaXQubHNoaWZ0NjQoSlNJbnRlcmZhY2VKSVQ6
OlRydXN0ZWRJbW0zMigzKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKLSAgICBqaXQuYWRkUHRy
KEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVy
KTsKKyAgICAKKyAgICAvLyBBZGp1c3QgY2FsbCBmcmFtZSByZWdpc3RlciBhbmQgc3RhY2sgcG9p
bnRlciB0byBhY2NvdW50IGZvciBtaXNzaW5nIGFyZ3MKKyAgICBqaXQubW92ZShKU0ludGVyZmFj
ZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7CisgICAgaml0LmxzaGlmdDY0KEpT
SW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMyksIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Cisg
ICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpTSW50ZXJmYWNlSklUOjpjYWxs
RnJhbWVSZWdpc3Rlcik7CisgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDEsIEpT
SW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisKKyAgICAvLyBTYXZlIHRoZSBv
cmlnaW5hbCByZXR1cm4gUEMuCisgICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJl
c3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBD
T2Zmc2V0KCkpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJl
Z1QxLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCkpOworICAgIAor
ICAgIC8vIEluc3RhbGwgdGhlIG5ldyByZXR1cm4gUEMuCisgICAgaml0LnN0b3JlUHRyKEdQUklu
Zm86OnJlZ1Q1LCBKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOwogCiAjICBpZiBDUFUo
WDg2XzY0KQogICAgIGppdC5wdXNoKEpTSW50ZXJmYWNlSklUOjpyZWdUNCk7CkBAIC00NzIsOSAr
NDc2LDEwIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcml0eUZpeHVwKFZNKiB2bSkKICMgIGlm
IENQVShYODYpCiAgICAgaml0LnBvcChKU0ludGVyZmFjZUpJVDo6cmVnVDQpOwogIyAgZW5kaWYK
KyAgICBqaXQubHNoaWZ0MzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMihsb2dTdGFja0Fs
aWdubWVudFJlZ2lzdGVycygpKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQubmVn
MzIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6
Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTSW50ZXJmYWNlSklUOjpyZWdUMyk7Ci0gICAgaml0LmxvYWQz
MihKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgKiA4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsK
KyAgICBqaXQubG9hZDMyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpj
YWxsRnJhbWVSZWdpc3RlciwgSlNTdGFjazo6QXJndW1lbnRDb3VudCAqIHNpemVvZihSZWdpc3Rl
cikpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOwogICAgIGppdC5hZGQzMihKU0ludGVyZmFjZUpJ
VDo6VHJ1c3RlZEltbTMyKEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpLCBKU0ludGVyZmFj
ZUpJVDo6cmVnVDIpOwogCiAgICAgLy8gTW92ZSBjdXJyZW50IGZyYW1lIGRvd24gcmVnVDAgbnVt
YmVyIG9mIHNsb3RzCkBAIC00ODYsOCArNDkxLDkgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFy
aXR5Rml4dXAoVk0qIHZtKQogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJ
bW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKICAgICBqaXQuYnJhbmNoU3ViMzIoTWFj
cm9Bc3NlbWJsZXI6Ok5vblplcm8sIEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpT
SW50ZXJmYWNlSklUOjpyZWdUMikubGlua1RvKGNvcHlMb29wLCAmaml0KTsKIAotICAgIC8vIEZp
bGwgaW4gcmVnVDAgbWlzc2luZyBhcmcgc2xvdHMgd2l0aCB1bmRlZmluZWQKKyAgICAvLyBGaWxs
IGluIHJlZ1QwIC0gMSBtaXNzaW5nIGFyZyBzbG90cyB3aXRoIHVuZGVmaW5lZAogICAgIGppdC5t
b3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKKyAgICBq
aXQuYWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigxKSwgSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QyKTsKICAgICBKU0ludGVyZmFjZUpJVDo6TGFiZWwgZmlsbFVuZGVmaW5lZExvb3Aoaml0
LmxhYmVsKCkpOwogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMCks
IEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7CiAgICAgaml0LnN0b3JlMzIoSlNJbnRlcmZhY2VKSVQ6
OnJlZ1QxLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUMywg
SlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFjZUpJVDo6VGltZXNFaWdodCkpOwpAQCAt
NDk3LDEwICs1MDMsMjUgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5Rml4dXAoVk0qIHZt
KQogICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QzKTsKICAgICBqaXQuYnJhbmNoQWRkMzIoTWFjcm9Bc3NlbWJsZXI6Ok5v
blplcm8sIEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoMSksIEpTSW50ZXJmYWNlSklUOjpy
ZWdUMikubGlua1RvKGZpbGxVbmRlZmluZWRMb29wLCAmaml0KTsKIAotICAgIC8vIEFkanVzdCBj
YWxsIGZyYW1lIHJlZ2lzdGVyIHRvIGFjY291bnQgZm9yIG1pc3NpbmcgYXJncwotICAgIGppdC5s
c2hpZnQzMihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDMpLCBKU0ludGVyZmFjZUpJVDo6
cmVnVDApOwotICAgIGppdC5hZGRQdHIoSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwLCBKU0ludGVyZmFj
ZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOworICAgIC8vIEFkanVzdCBjYWxsIGZyYW1lIHJlZ2lz
dGVyIGFuZCBzdGFjayBwb2ludGVyIHRvIGFjY291bnQgZm9yIG1pc3NpbmcgYXJncworICAgIGpp
dC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpyZWdUMCwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QxKTsKKyAg
ICBqaXQubHNoaWZ0MzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMigzKSwgSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QxKTsKKyAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNJ
bnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsKKyAgICBqaXQuYWRkUHRyKEpTSW50ZXJm
YWNlSklUOjpyZWdUMSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKIAor
ICAgIC8vIFNhdmUgdGhlIG9yaWdpbmFsIHJldHVybiBQQy4KKyAgICBqaXQubG9hZFB0cihKU0lu
dGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIENh
bGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSksIEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQuc3Rv
cmVQdHIoR1BSSW5mbzo6cmVnVDEsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QzLCBKU0ludGVyZmFjZUpJVDo6cmVnVDAsIEpTSW50ZXJmYWNlSklUOjpUaW1l
c0VpZ2h0KSk7CisgICAgCisgICAgLy8gSW5zdGFsbCB0aGUgbmV3IHJldHVybiBQQy4KKyAgICAv
LyBGSVhNRTogSSBkb24ndCB0aGluayBjdXJyZW50UmV0dXJuVGh1bmtQQyBpcyB1c2VkIGFuZCBz
aG91bGQgYmUgZGVsZXRlZC4KKyMgIGlmIDAKKyAgICBqaXQubG9hZFB0cigmdm0tPmN1cnJlbnRS
ZXR1cm5UaHVua1BDLCBHUFJJbmZvOjpyZWdUMik7CisgICAgaml0LnN0b3JlUHRyKEdQUkluZm86
OnJlZ1QyLCBKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSkpOworIyAgIGVsc2UKKyAgICBq
aXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDUsIEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50
ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgp
KSk7CisjICAgZW5kaWYKKyAgICAKICMgIGlmIENQVShYODYpCiAgICAgaml0LnB1c2goSlNJbnRl
cmZhY2VKSVQ6OnJlZ1Q0KTsKICMgIGVuZGlmCkBAIC01NTQsNyArNTc1LDcgQEAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIGNoYXJDb2RlQXRUaHVua0dlbmVyYXRvcihWTSogdm0pCiAgICAgU3BlY2lh
bGl6ZWRUaHVua0pJVCBqaXQodm0sIDEpOwogICAgIHN0cmluZ0NoYXJMb2FkKGppdCwgdm0pOwog
ICAgIGppdC5yZXR1cm5JbnQzMihTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7Ci0gICAgcmV0
dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiY2hhckNv
ZGVBdCIpOworICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVU
YWlsQ2FsbCh2bSksICJjaGFyQ29kZUF0Iik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBj
aGFyQXRUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC01NjMsNyArNTg0LDcgQEAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmIGNoYXJBdFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKICAgICBzdHJpbmdDaGFy
TG9hZChqaXQsIHZtKTsKICAgICBjaGFyVG9TdHJpbmcoaml0LCB2bSwgU3BlY2lhbGl6ZWRUaHVu
a0pJVDo6cmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwLCBTcGVjaWFsaXplZFRodW5r
SklUOjpyZWdUMSk7CiAgICAgaml0LnJldHVybkpTQ2VsbChTcGVjaWFsaXplZFRodW5rSklUOjpy
ZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNh
bGwodm0pLCAiY2hhckF0Iik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMt
PmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImNoYXJBdCIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgZnJvbUNoYXJDb2RlVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtNTczLDcgKzU5NCw3
IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBmcm9tQ2hhckNvZGVUaHVua0dlbmVyYXRvcihWTSog
dm0pCiAgICAgaml0LmxvYWRJbnQzMkFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJl
Z1QwKTsKICAgICBjaGFyVG9TdHJpbmcoaml0LCB2bSwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVn
VDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdU
MSk7CiAgICAgaml0LnJldHVybkpTQ2VsbChTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7Ci0g
ICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAi
ZnJvbUNoYXJDb2RlIik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0
aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImZyb21DaGFyQ29kZSIpOwogfQogCiBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWYgc3FydFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAgLTU4NSw3ICs2MDYsNyBAQCBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgc3FydFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKICAgICBqaXQu
bG9hZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNp
YWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKICAgICBqaXQuc3FydERvdWJsZShTcGVjaWFsaXplZFRo
dW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwKTsKICAgICBqaXQu
cmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwotICAgIHJldHVybiBq
aXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgInNxcnQiKTsKKyAg
ICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0p
LCAic3FydCIpOwogfQogCiAKQEAgLTYxMSw3ICs2MzIsOSBAQCBkb3VibGUganNSb3VuZChkb3Vi
bGUgZCkKICAgICAgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24jI1RodW5rKSAi
XG4iIFwKICAgICAgICAgSElERV9TWU1CT0woZnVuY3Rpb24jI1RodW5rKSAiXG4iIFwKICAgICAg
ICAgU1lNQk9MX1NUUklORyhmdW5jdGlvbiMjVGh1bmspICI6IiAiXG4iIFwKKyAgICAgICAgInB1
c2hxICVyYXhcbiIgXAogICAgICAgICAiY2FsbCAiIEdMT0JBTF9SRUZFUkVOQ0UoZnVuY3Rpb24p
ICJcbiIgXAorICAgICAgICAicG9wcSAlcmN4XG4iIFwKICAgICAgICAgInJldFxuIiBcCiAgICAg
KTtcCiAgICAgZXh0ZXJuICJDIiB7IFwKQEAgLTYyNiwxMiArNjQ5LDEyIEBAIGRvdWJsZSBqc1Jv
dW5kKGRvdWJsZSBkKQogICAgICAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhmdW5jdGlvbiMj
VGh1bmspICJcbiIgXAogICAgICAgICBISURFX1NZTUJPTChmdW5jdGlvbiMjVGh1bmspICJcbiIg
XAogICAgICAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uIyNUaHVuaykgIjoiICJcbiIgXAotICAg
ICAgICAic3VibCAkOCwgJWVzcFxuIiBcCisgICAgICAgICJzdWJsICQyMCwgJWVzcFxuIiBcCiAg
ICAgICAgICJtb3ZzZCAleG1tMCwgKCVlc3ApIFxuIiBcCiAgICAgICAgICJjYWxsICIgR0xPQkFM
X1JFRkVSRU5DRShmdW5jdGlvbikgIlxuIiBcCiAgICAgICAgICJmc3RwbCAoJWVzcCkgXG4iIFwK
ICAgICAgICAgIm1vdnNkICglZXNwKSwgJXhtbTAgXG4iIFwKLSAgICAgICAgImFkZGwgJDgsICVl
c3BcbiIgXAorICAgICAgICAiYWRkbCAkMjAsICVlc3BcbiIgXAogICAgICAgICAicmV0XG4iIFwK
ICAgICApO1wKICAgICBleHRlcm4gIkMiIHsgXApAQCAtNzMzLDcgKzc1Niw3IEBAIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBmbG9vclRodW5rR2VuZXJhdG9yKFZNKiB2bSkKICAgICBkb3VibGVSZXN1
bHQubGluaygmaml0KTsKICAgICBqaXQucmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6
OmZwUmVnVDApOwogI2VuZGlmIC8vIENQVShBUk02NCkKLSAgICByZXR1cm4gaml0LmZpbmFsaXpl
KHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJmbG9vciIpOworICAgIHJldHVybiBq
aXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJmbG9vciIp
OwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2VpbFRodW5rR2VuZXJhdG9yKFZNKiB2bSkK
QEAgLTc1Niw3ICs3NzksNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY2VpbFRodW5rR2VuZXJh
dG9yKFZNKiB2bSkKICAgICBqaXQucmV0dXJuSW50MzIoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVn
VDApOwogICAgIGRvdWJsZVJlc3VsdC5saW5rKCZqaXQpOwogICAgIGppdC5yZXR1cm5Eb3VibGUo
U3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2
bS0+aml0U3R1YnMtPmN0aU5hdGl2ZUNhbGwodm0pLCAiY2VpbCIpOworICAgIHJldHVybiBqaXQu
ZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJjZWlsIik7CiB9
CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiByb3VuZFRodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAg
LTc5MCw3ICs4MTMsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcm91bmRUaHVua0dlbmVyYXRv
cihWTSogdm0pCiAgICAgaml0LnJldHVybkludDMyKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1Qw
KTsKICAgICBkb3VibGVSZXN1bHQubGluaygmaml0KTsKICAgICBqaXQucmV0dXJuRG91YmxlKFNw
ZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwotICAgIHJldHVybiBqaXQuZmluYWxpemUodm0t
PmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgInJvdW5kIik7CisgICAgcmV0dXJuIGppdC5m
aW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgInJvdW5kIik7CiB9
CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBleHBUaHVua0dlbmVyYXRvcihWTSogdm0pCkBAIC04
MDMsNyArODI2LDcgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGV4cFRodW5rR2VuZXJhdG9yKFZN
KiB2bSkKICAgICBqaXQubG9hZERvdWJsZUFyZ3VtZW50KDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6
OmZwUmVnVDAsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKTsKICAgICBqaXQuY2FsbERvdWJs
ZVRvRG91YmxlUHJlc2VydmluZ1JldHVybihVbmFyeURvdWJsZU9wV3JhcHBlcihleHApKTsKICAg
ICBqaXQucmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwotICAgIHJl
dHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImV4cCIp
OworICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2Fs
bCh2bSksICJleHAiKTsKIH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGxvZ1RodW5rR2VuZXJh
dG9yKFZNKiB2bSkKQEAgLTgxNiw3ICs4MzksNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbG9n
VGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogICAgIGppdC5sb2FkRG91YmxlQXJndW1lbnQoMCwgU3Bl
Y2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVnVDApOwog
ICAgIGppdC5jYWxsRG91YmxlVG9Eb3VibGVQcmVzZXJ2aW5nUmV0dXJuKFVuYXJ5RG91YmxlT3BX
cmFwcGVyKGxvZykpOwogICAgIGppdC5yZXR1cm5Eb3VibGUoU3BlY2lhbGl6ZWRUaHVua0pJVDo6
ZnBSZWdUMCk7Ci0gICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2
ZUNhbGwodm0pLCAibG9nIik7CisgICAgcmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMt
PmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwgImxvZyIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgYWJzVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtODM2LDcgKzg1OSw3IEBAIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBhYnNUaHVua0dlbmVyYXRvcihWTSogdm0pCiAgICAgaml0LmxvYWREb3Vi
bGVBcmd1bWVudCgwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QwLCBTcGVjaWFsaXplZFRo
dW5rSklUOjpyZWdUMCk7CiAgICAgaml0LmFic0RvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpm
cFJlZ1QwLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QxKTsKICAgICBqaXQucmV0dXJuRG91
YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEpOwotICAgIHJldHVybiBqaXQuZmluYWxp
emUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVDYWxsKHZtKSwgImFicyIpOworICAgIHJldHVybiBq
aXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJhYnMiKTsK
IH0KIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHBvd1RodW5rR2VuZXJhdG9yKFZNKiB2bSkKQEAg
LTg4OCw3ICs5MTEsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgcG93VGh1bmtHZW5lcmF0b3Io
Vk0qIHZtKQogICAgIH0gZWxzZQogICAgICAgICBqaXQuYXBwZW5kRmFpbHVyZShub25JbnRFeHBv
bmVudCk7CiAKLSAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZl
Q2FsbCh2bSksICJwb3ciKTsKKyAgICByZXR1cm4gaml0LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+
Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAicG93Iik7CiB9CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZiBpbXVsVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQpAQCAtOTIxLDcgKzk0NCw3IEBAIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBpbXVsVGh1bmtHZW5lcmF0b3IoVk0qIHZtKQogICAgIH0gZWxzZQogICAg
ICAgICBqaXQuYXBwZW5kRmFpbHVyZShub25JbnRBcmcxSnVtcCk7CiAKLSAgICByZXR1cm4gaml0
LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlQ2FsbCh2bSksICJpbXVsIik7CisgICAg
cmV0dXJuIGppdC5maW5hbGl6ZSh2bS0+aml0U3R1YnMtPmN0aU5hdGl2ZVRhaWxDYWxsKHZtKSwg
ImltdWwiKTsKIH0KIAogc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcnJheUl0ZXJhdG9y
TmV4dFRodW5rR2VuZXJhdG9yKFZNKiB2bSwgQXJyYXlJdGVyYXRpb25LaW5kIGtpbmQpCkBAIC05
NjEsNyArOTg0LDcgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcnJheUl0ZXJhdG9y
TmV4dFRodW5rR2VuZXJhdG9yKFZNKiB2bSwgQXJyYXlJdGVyYXQKICAgICBpZiAoa2luZCA9PSBB
cnJheUl0ZXJhdGVLZXkpIHsKICAgICAgICAgaml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgQWRk
cmVzcyhTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUNCwgSlNBcnJheUl0ZXJhdG9yOjpvZmZzZXRP
Zk5leHRJbmRleCgpKSk7CiAgICAgICAgIGppdC5yZXR1cm5JbnQzMihTcGVjaWFsaXplZFRodW5r
SklUOjpyZWdUMSk7Ci0gICAgICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5j
dGlOYXRpdmVDYWxsKHZtKSwgImFycmF5LWl0ZXJhdG9yLW5leHQta2V5Iik7CisgICAgICAgIHJl
dHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRpdmVUYWlsQ2FsbCh2bSksICJh
cnJheS1pdGVyYXRvci1uZXh0LWtleSIpOwogICAgICAgICAKICAgICB9CiAgICAgQVNTRVJUKGtp
bmQgPT0gQXJyYXlJdGVyYXRlVmFsdWUpOwpAQCAtMTAxMiw3ICsxMDM1LDcgQEAgc3RhdGljIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZiBhcnJheUl0ZXJhdG9yTmV4dFRodW5rR2VuZXJhdG9yKFZNKiB2
bSwgQXJyYXlJdGVyYXQKICAgICBqaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBBZGRyZXNzKFNw
ZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1Q0LCBKU0FycmF5SXRlcmF0b3I6Om9mZnNldE9mTmV4dElu
ZGV4KCkpKTsKICAgICBqaXQucmV0dXJuRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVn
VDApOwogICAgIAotICAgIHJldHVybiBqaXQuZmluYWxpemUodm0tPmppdFN0dWJzLT5jdGlOYXRp
dmVDYWxsKHZtKSwgImFycmF5LWl0ZXJhdG9yLW5leHQtdmFsdWUiKTsKKyAgICByZXR1cm4gaml0
LmZpbmFsaXplKHZtLT5qaXRTdHVicy0+Y3RpTmF0aXZlVGFpbENhbGwodm0pLCAiYXJyYXktaXRl
cmF0b3ItbmV4dC12YWx1ZSIpOwogfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgYXJyYXlJdGVy
YXRvck5leHRLZXlUaHVua0dlbmVyYXRvcihWTSogdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9UaHVua0dlbmVyYXRvcnMuaAppbmRleCAwZTI3NjI4OTA4YzJmNzE2ZjIxZjBhZDZlYzA2
NmQzNTgyY2I2ZDU0Li5jMzVhMmY1NDc5OWNjOGE2YTQ0OGRmZWFmMTFiNWVmM2FmZGVjMDg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmgKQEAgLTI2LDYg
KzI2LDggQEAKICNpZm5kZWYgVGh1bmtHZW5lcmF0b3JzX2gKICNkZWZpbmUgVGh1bmtHZW5lcmF0
b3JzX2gKIAorI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKKyNpbmNsdWRlICJS
ZWdpc3RlclByZXNlcnZhdGlvbk1vZGUuaCIKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvci5oIgog
CiAjaWYgRU5BQkxFKEpJVCkKQEAgLTM1LDE0ICszNyw4MiBAQCBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWYgdGhyb3dFeGNlcHRpb25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9yKFZNKik7CiAKIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKFZNKik7CiBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgbGlua0NvbnN0cnVjdFRodW5rR2VuZXJhdG9yKFZNKik7CitNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYgbGlua0NhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKFZNKik7
CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbGlua0NvbnN0cnVjdFRoYXRQcmVzZXJ2ZXNSZWdzVGh1
bmtHZW5lcmF0b3IoVk0qKTsKKworaW5saW5lIFRodW5rR2VuZXJhdG9yIGxpbmtUaHVua0dlbmVy
YXRvckZvcigKKyAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTW9kZSByZWdpc3RlcnMpCit7CisgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBD
b2RlRm9yQ2FsbDoKKyAgICAgICAgc3dpdGNoIChyZWdpc3RlcnMpIHsKKyAgICAgICAgY2FzZSBS
ZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgcmV0dXJuIGxpbmtD
YWxsVGh1bmtHZW5lcmF0b3I7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgor
ICAgICAgICAgICAgcmV0dXJuIGxpbmtDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRv
cjsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIENvZGVGb3JDb25zdHJ1Y3Q6
CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgIGNhc2UgUmVnaXN0ZXJQcmVz
ZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgIHJldHVybiBsaW5rQ29uc3RydWN0VGh1
bmtHZW5lcmF0b3I7CisgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAg
ICAgICAgcmV0dXJuIGxpbmtDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9y
OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYg
bGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3IoVk0qKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJl
ZiBsaW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9yKFZNKik7CisK
K2lubGluZSBUaHVua0dlbmVyYXRvciBsaW5rQ2xvc3VyZUNhbGxUaHVua0dlbmVyYXRvckZvcihS
ZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQoreworICAgIHN3aXRjaCAocmVnaXN0
ZXJzKSB7CisgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAg
ICByZXR1cm4gbGlua0Nsb3N1cmVDYWxsVGh1bmtHZW5lcmF0b3I7CisgICAgY2FzZSBNdXN0UHJl
c2VydmVSZWdpc3RlcnM6CisgICAgICAgIHJldHVybiBsaW5rQ2xvc3VyZUNhbGxUaGF0UHJlc2Vy
dmVzUmVnc1RodW5rR2VuZXJhdG9yOworICAgIH0KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiAwOworfQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgdmlydHVh
bENhbGxUaHVua0dlbmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1YWxD
b25zdHJ1Y3RUaHVua0dlbmVyYXRvcihWTSopOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIHZpcnR1
YWxDYWxsVGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVyYXRvcihWTSopOworTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmIHZpcnR1YWxDb25zdHJ1Y3RUaGF0UHJlc2VydmVzUmVnc1RodW5rR2VuZXJhdG9y
KFZNKik7CisKK2lubGluZSBUaHVua0dlbmVyYXRvciB2aXJ0dWFsVGh1bmtHZW5lcmF0b3JGb3Io
CisgICAgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1v
ZGUgcmVnaXN0ZXJzKQoreworICAgIHN3aXRjaCAoa2luZCkgeworICAgIGNhc2UgQ29kZUZvckNh
bGw6CisgICAgICAgIHN3aXRjaCAocmVnaXN0ZXJzKSB7CisgICAgICAgIGNhc2UgUmVnaXN0ZXJQ
cmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgIHJldHVybiB2aXJ0dWFsQ2FsbFRo
dW5rR2VuZXJhdG9yOworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAg
ICAgICAgIHJldHVybiB2aXJ0dWFsQ2FsbFRoYXRQcmVzZXJ2ZXNSZWdzVGh1bmtHZW5lcmF0b3I7
CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2RlRm9yQ29uc3RydWN0Ogor
ICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2Vy
dmF0aW9uTm90UmVxdWlyZWQ6CisgICAgICAgICAgICByZXR1cm4gdmlydHVhbENvbnN0cnVjdFRo
dW5rR2VuZXJhdG9yOworICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAg
ICAgICAgIHJldHVybiB2aXJ0dWFsQ29uc3RydWN0VGhhdFByZXNlcnZlc1JlZ3NUaHVua0dlbmVy
YXRvcjsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KIAogTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmIG5hdGl2ZUNhbGxHZW5lcmF0b3IoVk0qKTsKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRp
dmVDb25zdHJ1Y3RHZW5lcmF0b3IoVk0qKTsKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBuYXRpdmVU
YWlsQ2FsbEdlbmVyYXRvcihWTSopOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGFyaXR5Rml4dXAo
Vk0qKTsKIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNoYXJDb2RlQXRUaHVua0dlbmVyYXRvcihW
TSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50Q0xvb3Au
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50Q0xvb3AuY3BwCmluZGV4IDE4
YzJiOTljMTJjNDhlZWUxMDFmMmUwNDZlZDNkYTJjNjVmODJhMmYuLjI3ZGIxMTVlMzFiNDRkOWFi
ZTYwM2M0OGJkZWI4MzYyYzBlNmZiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludENMb29wLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRDTG9vcC5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIExMSW50IHsKIAogdm9p
ZCBDTG9vcDo6aW5pdGlhbGl6ZSgpCiB7Ci0gICAgZXhlY3V0ZSgwLCBnZXRPcGNvZGUobGxpbnRf
dW51c2VkKSwgdHJ1ZSk7CisgICAgZXhlY3V0ZShsbGludF91bnVzZWQsIDAsIDAsIDAsIHRydWUp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBMTEludApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50Q0xvb3AuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludENMb29wLmgKaW5kZXggODc1OTU3MWYzNWRlNjYyYTkzNjViMzlkMGNiN2UzNzdhZDA3YTA4
OS4uYjM1NzcxMjhjY2Q2OWNjZmFiYmRjNDc0OTgyNzBlZTA3OWY1ODJhMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50Q0xvb3AuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRDTG9vcC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVk
ZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogI2luY2x1ZGUgIk9wY29k
ZS5oIgorI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogbmFt
ZXNwYWNlIExMSW50IHsKQEAgLTQwLDcgKzQxLDcgQEAgY29uc3QgT3Bjb2RlSUQgbGxpbnRfdW51
c2VkID0gbGxpbnRfZW5kOwogY2xhc3MgQ0xvb3AgewogcHVibGljOgogICAgIHN0YXRpYyB2b2lk
IGluaXRpYWxpemUoKTsKLSAgICBzdGF0aWMgSlNWYWx1ZSBleGVjdXRlKENhbGxGcmFtZSosIE9w
Y29kZSBlbnRyeU9wY29kZSwgYm9vbCBpc0luaXRpYWxpemF0aW9uUGFzcyA9IGZhbHNlKTsKKyAg
ICBzdGF0aWMgSlNWYWx1ZSBleGVjdXRlKE9wY29kZUlEIGVudHJ5T3Bjb2RlSUQsIHZvaWQqIGV4
ZWN1dGFibGVBZGRyZXNzLCBWTSosIFByb3RvQ2FsbEZyYW1lKiwgYm9vbCBpc0luaXRpYWxpemF0
aW9uUGFzcyA9IGZhbHNlKTsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAppbmRleCBhYzc3ODM2YzBiYjk0
MTlkZWRiZGU4YzY1MzhjZmY2M2I3YjA5ZGIwLi5lN2Y5YzZkN2E1YzQ4OWMxNWMwYjY2NTUxMmM5
M2UxNzMxZDk3MzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnREYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNw
cApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkluc3RydWN0aW9uLmgiCiAjaW5jbHVkZSAi
SlNTY29wZS5oIgogI2luY2x1ZGUgIkxMSW50Q0xvb3AuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIk9wY29kZS5oIgogI2luY2x1ZGUgIlBy
b3BlcnR5T2Zmc2V0LmgiCiAKQEAgLTg3LDYgKzg4LDcgQEAgdm9pZCBEYXRhOjpwZXJmb3JtQXNz
ZXJ0aW9ucyhWTSYgdm0pCiAgICAgQVNTRVJUKEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUg
PT0gQ2FsbEZyYW1lSGVhZGVyU2xvdHMpOwogCiAgICAgQVNTRVJUKCFDYWxsRnJhbWU6OmNhbGxl
ckZyYW1lT2Zmc2V0KCkpOworICAgIEFTU0VSVChKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6
ZSA9PSAoUHRyU2l6ZSAqIDIpIC8gU2xvdFNpemUpOwogICAgIEFTU0VSVChDYWxsRnJhbWU6OnJl
dHVyblBDT2Zmc2V0KCkgPT0gQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZU9mZnNldCgpICsgUHRyU2l6
ZSk7CiAgICAgQVNTRVJUKEpTU3RhY2s6OkNvZGVCbG9jayAqIHNpemVvZihSZWdpc3RlcikgPT0g
Q2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpICsgUHRyU2l6ZSk7CiAgICAgQVNTRVJUKEpTU3Rh
Y2s6OlNjb3BlQ2hhaW4gKiBzaXplb2YoUmVnaXN0ZXIpID09IEpTU3RhY2s6OkNvZGVCbG9jayAq
IHNpemVvZihSZWdpc3RlcikgKyBTbG90U2l6ZSk7CkBAIC0xMjMsNiArMTI1LDEzIEBAIHZvaWQg
RGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoVk0mIHZtKQogICAgIEFTU0VSVChWYWx1ZVVuZGVmaW5l
ZCA9PSAoVGFnQml0VHlwZU90aGVyIHwgVGFnQml0VW5kZWZpbmVkKSk7CiAgICAgQVNTRVJUKFZh
bHVlTnVsbCA9PSBUYWdCaXRUeXBlT3RoZXIpOwogI2VuZGlmCisjaWYgQ1BVKFg4Nl82NCkgfHwg
Q1BVKEFSTTY0KSB8fCBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIEFTU0VSVChtYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbCA9PSAwKTsKKyNlbGlmIENQVShBUk0pIHx8IENQVShTSDQpCisg
ICAgQVNTRVJUKG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsID09IDI0KTsKKyNlbGlmIENQ
VShYODYpIHx8IENQVShNSVBTKQorICAgIEFTU0VSVChtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRo
Q2FsbCA9PSA0MCk7CisjZW5kaWYKICAgICBBU1NFUlQoU3RyaW5nVHlwZSA9PSA1KTsKICAgICBB
U1NFUlQoT2JqZWN0VHlwZSA9PSAxNyk7CiAgICAgQVNTRVJUKEZpbmFsT2JqZWN0VHlwZSA9PSAx
OCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBv
aW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3Bw
CmluZGV4IDk5M2VjNjdiOTkzYjA0Zjg0NTQxMmUzN2JkZmE2ZGMxNWQ4ZDU3ZjkuLjVkOTFiZTYz
MDNkYmQ1ZDU2ZThjYzBjZTY1YjcxNWM1MmEyN2MyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCkBAIC0zMyw2ICszMyw4IEBACiAjaW5j
bHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJMTEludFRodW5rcy5oIgogI2luY2x1ZGUgIkxv
d0xldmVsSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRo
Q2FsbC5oIgorI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCiAjaW5jbHVkZSAiVk0uaCIKIAog
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTEludCB7CkBAIC00NSwxNCArNDcsMTIgQEAgc3Rh
dGljIHZvaWQgc2V0RnVuY3Rpb25FbnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxv
Y2spCiAgICAgaWYgKHZtLmNhblVzZUpJVCgpKSB7CiAgICAgICAgIGlmIChraW5kID09IENvZGVG
b3JDYWxsKSB7CiAgICAgICAgICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAgICAg
ICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZv
ckNhbGxFbnRyeVRodW5rR2VuZXJhdG9yKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpLAot
ICAgICAgICAgICAgICAgIHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDYWxsQXJpdHlDaGVja1Ro
dW5rR2VuZXJhdG9yKS5jb2RlKCkpOworICAgICAgICAgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJl
Y3RKSVRDb2RlKHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDYWxsRW50cnlUaHVua0dlbmVyYXRv
ciksIHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDYWxsQXJpdHlDaGVja1RodW5rR2VuZXJhdG9y
KS5jb2RlKCksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCk7
CiAgICAgICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZSgKLSAgICAgICAgICAgIGFkb3B0UmVmKG5l
dyBEaXJlY3RKSVRDb2RlKHZtLmdldENUSVN0dWIoZnVuY3Rpb25Gb3JDb25zdHJ1Y3RFbnRyeVRo
dW5rR2VuZXJhdG9yKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpLAotICAgICAgICAgICAg
dm0uZ2V0Q1RJU3R1YihmdW5jdGlvbkZvckNvbnN0cnVjdEFyaXR5Q2hlY2tUaHVua0dlbmVyYXRv
cikuY29kZSgpKTsKKyAgICAgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHZtLmdl
dENUSVN0dWIoZnVuY3Rpb25Gb3JDb25zdHJ1Y3RFbnRyeVRodW5rR2VuZXJhdG9yKSwgdm0uZ2V0
Q1RJU3R1YihmdW5jdGlvbkZvckNvbnN0cnVjdEFyaXR5Q2hlY2tUaHVua0dlbmVyYXRvcikuY29k
ZSgpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogI2VuZGlmIC8vIEVOQUJMRShKSVQpCkBAIC02MCwxNCArNjAsMTIgQEAgc3RhdGljIHZvaWQg
c2V0RnVuY3Rpb25FbnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCiAgICAg
VU5VU0VEX1BBUkFNKHZtKTsKICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ2FsbCkgewogICAgICAg
ICBjb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAgICAgICBhZG9wdFJlZihuZXcgRGlyZWN0
SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9m
dW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1ZSksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSwK
LSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxs
aW50X2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5X2NoZWNrKSk7CisgICAgICAgICAgICBhZG9wdFJl
ZihuZXcgRGlyZWN0SklUQ29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY6OmNyZWF0ZUxMSW50Q29k
ZVJlZihsbGludF9mdW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1ZSksIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5X2No
ZWNrKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ29uc3RydWN0KTsKICAgICBjb2RlQmxvY2st
PnNldEpJVENvZGUoCi0gICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X2Z1bmN0aW9uX2Zvcl9jb25z
dHJ1Y3RfcHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0gICAgICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3JlYXRlTExJbnRDb2RlUHRyKGxsaW50X2Z1bmN0aW9uX2Zv
cl9jb25zdHJ1Y3RfYXJpdHlfY2hlY2spKTsKKyAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJ
VENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfZnVu
Y3Rpb25fZm9yX2NvbnN0cnVjdF9wcm9sb2d1ZSksIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjo6Y3Jl
YXRlTExJbnRDb2RlUHRyKGxsaW50X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlfY2hlY2sp
LCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwogfQogCiBzdGF0aWMgdm9pZCBzZXRFdmFs
RW50cnlwb2ludChWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrKQpAQCAtNzUsMTYgKzczLDE0
IEBAIHN0YXRpYyB2b2lkIHNldEV2YWxFbnRyeXBvaW50KFZNJiB2bSwgQ29kZUJsb2NrKiBjb2Rl
QmxvY2spCiAjaWYgRU5BQkxFKEpJVCkKICAgICBpZiAodm0uY2FuVXNlSklUKCkpIHsKICAgICAg
ICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKAotICAgICAgICAgICAgYWRvcHRSZWYobmV3IERpcmVj
dEpJVENvZGUodm0uZ2V0Q1RJU3R1YihldmFsRW50cnlUaHVua0dlbmVyYXRvciksIEpJVENvZGU6
OkludGVycHJldGVyVGh1bmspKSwKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigp
KTsKKyAgICAgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKHZtLmdldENUSVN0dWIo
ZXZhbEVudHJ5VGh1bmtHZW5lcmF0b3IpLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKSwgSklUQ29k
ZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNlbmRpZiAv
LyBFTkFCTEUoSklUKQogCiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKICAgICBjb2RlQmxvY2stPnNl
dEpJVENvZGUoCi0gICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RKSVRDb2RlKE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50X2V2YWxfcHJvbG9ndWUpLCBKSVRD
b2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigp
KTsKKyAgICAgICAgYWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfZXZhbF9wcm9sb2d1ZSksIE1hY3JvQXNzZW1i
bGVyQ29kZVB0cigpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSkpOwogfQogCiBzdGF0aWMg
dm9pZCBzZXRQcm9ncmFtRW50cnlwb2ludChWTSYgdm0sIENvZGVCbG9jayogY29kZUJsb2NrKQpA
QCAtOTIsMTYgKzg4LDE0IEBAIHN0YXRpYyB2b2lkIHNldFByb2dyYW1FbnRyeXBvaW50KFZNJiB2
bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCiAjaWYgRU5BQkxFKEpJVCkKICAgICBpZiAodm0uY2Fu
VXNlSklUKCkpIHsKICAgICAgICAgY29kZUJsb2NrLT5zZXRKSVRDb2RlKAotICAgICAgICAgICAg
YWRvcHRSZWYobmV3IERpcmVjdEpJVENvZGUodm0uZ2V0Q1RJU3R1Yihwcm9ncmFtRW50cnlUaHVu
a0dlbmVyYXRvciksIEpJVENvZGU6OkludGVycHJldGVyVGh1bmspKSwKLSAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVB0cigpKTsKKyAgICAgICAgICAgIGFkb3B0UmVmKG5ldyBEaXJlY3RK
SVRDb2RlKHZtLmdldENUSVN0dWIocHJvZ3JhbUVudHJ5VGh1bmtHZW5lcmF0b3IpLCBNYWNyb0Fz
c2VtYmxlckNvZGVQdHIoKSwgSklUQ29kZTo6SW50ZXJwcmV0ZXJUaHVuaykpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoSklUKQogCiAgICAgVU5VU0VEX1BBUkFN
KHZtKTsKICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUoCi0gICAgICAgIGFkb3B0UmVmKG5ldyBE
aXJlY3RKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxs
aW50X3Byb2dyYW1fcHJvbG9ndWUpLCBKSVRDb2RlOjpJbnRlcnByZXRlclRodW5rKSksCi0gICAg
ICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpKTsKKyAgICAgICAgYWRvcHRSZWYobmV3IERpcmVj
dEpJVENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRf
cHJvZ3JhbV9wcm9sb2d1ZSksIE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpLCBKSVRDb2RlOjpJbnRl
cnByZXRlclRodW5rKSkpOwogfQogCiB2b2lkIHNldEVudHJ5cG9pbnQoVk0mIHZtLCBDb2RlQmxv
Y2sqIGNvZGVCbG9jaykKQEAgLTEyMyw3ICsxMTcsOSBAQCB2b2lkIHNldEVudHJ5cG9pbnQoVk0m
IHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKIAogdW5zaWduZWQgZnJhbWVSZWdpc3RlckNvdW50
Rm9yKENvZGVCbG9jayogY29kZUJsb2NrKQogewotICAgIHJldHVybiBjb2RlQmxvY2stPm1fbnVt
Q2FsbGVlUmVnaXN0ZXJzOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY29kZUJs
b2NrLT5tX251bUNhbGxlZVJlZ2lzdGVycykgPT0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0
YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihjb2RlQmxvY2st
Pm1fbnVtQ2FsbGVlUmVnaXN0ZXJzKSkpOworCisgICAgcmV0dXJuIHJvdW5kTG9jYWxSZWdpc3Rl
ckNvdW50Rm9yRnJhbWVQb2ludGVyT2Zmc2V0KGNvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdpc3Rl
cnMgKyBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbEluUmVnaXN0ZXJzKTsKIH0KIAogfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludE9mZnNldHNFeHRyYWN0b3IuY3BwCmluZGV4IGEwY2JmYTBiYTNlMDc2OWZj
NTQ0MWIyZTNhNzE5ZDA5NzQzZDQzYWYuLjYwNGNjMjYzY2Y5N2UwODZmZWQwNmVjOTAzYjBlYzE5
ODNlNzgxMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9m
ZnNldHNFeHRyYWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dE9mZnNldHNFeHRyYWN0b3IuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJBcnJh
eVByb2ZpbGUuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJDb21tb25TbG93
UGF0aHMuaCIKICNpbmNsdWRlICJEZWJ1Z2dlci5oIgogI2luY2x1ZGUgIkV4ZWN1dGFibGUuaCIK
ICNpbmNsdWRlICJIZWFwLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRPcGNvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9wY29k
ZS5oCmluZGV4IDdlZTUzZGY4MjNjZjUzODJkMDU4N2JkN2ExZWZiNDMxYmI0ZDc4YzYuLmZhMWZh
NmFhOGQ5ZmVhNGIxNDNiZDBmOGYwNzViYzRhYmZjMmNmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9wY29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludE9wY29kZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICszNCwxOCBAQAogCiAj
ZGVmaW5lIEZPUl9FQUNIX0xMSU5UX05PSklUX05BVElWRV9IRUxQRVIobWFjcm8pIFwKICAgICBt
YWNybyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlLCAxKSBcCi0gICAgbWFjcm8ocmV0dXJuRnJvbUph
dmFTY3JpcHQsIDEpCisgICAgbWFjcm8obGxpbnRfcmV0dXJuX3RvX2hvc3QsIDEpIFwKKyAgICBt
YWNybyhsbGludF9jYWxsX3RvX2phdmFzY3JpcHQsIDEpIFwKKyAgICBtYWNybyhsbGludF9jYWxs
X3RvX25hdGl2ZV9mdW5jdGlvbiwgMSkgXAorICAgIG1hY3JvKGhhbmRsZVVuY2F1Z2h0RXhjZXB0
aW9uLCAxKSBcCisgICAgXAorICAgIG1hY3JvKGxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9q
c18xLCAxKSBcCisgICAgbWFjcm8obGxpbnRfY2xvb3BfZGlkX3JldHVybl9mcm9tX2pzXzIsIDEp
IFwKKyAgICBtYWNybyhsbGludF9jbG9vcF9kaWRfcmV0dXJuX2Zyb21fanNfMywgMSkgXAorICAg
IG1hY3JvKGxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc180LCAxKSBcCisgICAgbWFjcm8o
bGxpbnRfY2xvb3BfZGlkX3JldHVybl9mcm9tX2pzXzUsIDEpIFwKKyAgICBtYWNybyhsbGludF9j
bG9vcF9kaWRfcmV0dXJuX2Zyb21fanNfNiwgMSkgXAorICAgIG1hY3JvKGxsaW50X2Nsb29wX2Rp
ZF9yZXR1cm5fZnJvbV9qc183LCAxKSBcCiAKICNlbHNlIC8vICFFTkFCTEUoTExJTlRfQ19MT09Q
KQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0
aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApp
bmRleCAyNjI2NDE3MWQ2YzcwMzg0Y2NkMDAzOTYwNjk2ZmIxMDgwZjI3NGJjLi44NjM1MmQ0NWQy
M2Q5NjY4NTQxY2Q3ZTljNmE0NWEwNTBlNjBkZjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDb21tb25TbG93
UGF0aHMuaCIKICNpbmNsdWRlICJDb21tb25TbG93UGF0aHNFeGNlcHRpb25zLmgiCisjaW5jbHVk
ZSAiRXJyb3JIYW5kbGluZ1Njb3BlLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCiAjaW5j
bHVkZSAiSG9zdENhbGxSZXR1cm5WYWx1ZS5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCkBA
IC01MSw2ICs1Miw3IEBACiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRlcnByZXRlci5oIgogI2luY2x1
ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgorI2luY2x1
ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlUmFyZURhdGFJbmxpbmVz
LmgiCiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAKQEAgLTgyLDcgKzg0LDcg
QEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTEludCB7CiAgICAgICAgIHJldHVybiBlbmNv
ZGVSZXN1bHQoZmlyc3QsIHNlY29uZCk7ICAgICAgICBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAK
LSNkZWZpbmUgTExJTlRfRU5EX0lNUEwoKSBMTElOVF9SRVRVUk5fVFdPKHBjLCBleGVjKQorI2Rl
ZmluZSBMTElOVF9FTkRfSU1QTCgpIExMSU5UX1JFVFVSTl9UV08ocGMsIDApCiAKICNkZWZpbmUg
TExJTlRfVEhST1coZXhjZXB0aW9uVG9UaHJvdykgZG8geyAgICAgICAgICAgICAgICAgICAgICAg
IFwKICAgICAgICAgdm0udGhyb3dFeGNlcHRpb24oZXhlYywgZXhjZXB0aW9uVG9UaHJvdyk7ICAg
ICAgICAgICAgICAgIFwKQEAgLTEzNywyMiArMTM5LDI4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgTExJbnQgewogI2RlZmluZSBMTElOVF9DQUxMX1RIUk9XKGV4ZWMsIGV4Y2VwdGlvblRv
VGhyb3cpIGRvIHsgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBFeGVjU3RhdGUqIF9fY3Rf
ZXhlYyA9IChleGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAg
ICB2bS50aHJvd0V4Y2VwdGlvbihfX2N0X2V4ZWMsIGV4Y2VwdGlvblRvVGhyb3cpOyAgICAgICAg
ICAgICAgICAgXAotICAgICAgICBMTElOVF9DQUxMX0VORF9JTVBMKF9fY3RfZXhlYywgY2FsbFRv
VGhyb3coX19jdF9leGVjKSk7ICAgICAgICAgXAorICAgICAgICBMTElOVF9DQUxMX0VORF9JTVBM
KDAsIGNhbGxUb1Rocm93KF9fY3RfZXhlYykpOyAgICAgICAgICAgICAgICAgXAogICAgIH0gd2hp
bGUgKGZhbHNlKQogCiAjZGVmaW5lIExMSU5UX0NBTExfQ0hFQ0tfRVhDRVBUSU9OKGV4ZWMpIGRv
IHsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIEV4ZWNTdGF0ZSogX19jY2Vf
ZXhlYyA9IChleGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAg
IGlmIChVTkxJS0VMWSh2bS5leGNlcHRpb24oKSkpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgICAgICAgICBMTElOVF9DQUxMX0VORF9JTVBMKF9fY2NlX2V4ZWMsIGNh
bGxUb1Rocm93KF9fY2NlX2V4ZWMpKTsgICBcCisgICAgICAgICAgICBMTElOVF9DQUxMX0VORF9J
TVBMKDAsIGNhbGxUb1Rocm93KF9fY2NlX2V4ZWMpKTsgICAgICAgICAgICBcCiAgICAgfSB3aGls
ZSAoZmFsc2UpCiAKICNkZWZpbmUgTExJTlRfQ0FMTF9SRVRVUk4oZXhlYywgY2FsbFRhcmdldCkg
ZG8geyAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgRXhlY1N0YXRlKiBfX2NyX2V4
ZWMgPSAoZXhlYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAg
dm9pZCogX19jcl9jYWxsVGFyZ2V0ID0gKGNhbGxUYXJnZXQpOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICAgICAgTExJTlRfQ0FMTF9DSEVDS19FWENFUFRJT04oX19jcl9leGVjLT5j
YWxsZXJGcmFtZSgpKTsgICAgICAgICAgIFwKKyAgICAgICAgTExJTlRfQ0FMTF9DSEVDS19FWENF
UFRJT04oX19jcl9leGVjKTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgTExJ
TlRfQ0FMTF9FTkRfSU1QTChfX2NyX2V4ZWMsIF9fY3JfY2FsbFRhcmdldCk7ICAgICAgICAgICAg
ICAgIFwKICAgICB9IHdoaWxlIChmYWxzZSkKIAorI2RlZmluZSBMTElOVF9SRVRVUk5fQ0FMTEVF
X0ZSQU1FKGV4ZWNDYWxsZWUpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBF
eGVjU3RhdGUqIF9fcmNmX2V4ZWMgPSAoZXhlY0NhbGxlZSk7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorICAgICAgICBMTElOVF9SRVRVUk5fVFdPKHBjLCBfX3JjZl9leGVjKTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gd2hpbGUgKGZhbHNlKQorICAgIAorCiBl
eHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF90cmFjZV9vcGVyYW5kKEV4ZWNTdGF0
ZSogZXhlYywgSW5zdHJ1Y3Rpb24qIHBjLCBpbnQgZnJvbVdoZXJlLCBpbnQgb3BlcmFuZCkKIHsK
ICAgICBMTElOVF9CRUdJTigpOwpAQCAtMjQyLDYgKzI1MCwxMCBAQCBMTElOVF9TTE9XX1BBVEhf
REVDTCh0cmFjZSkKICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludHB0cl90PihwYyAtIGV4ZWMt
PmNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpKSwKICAgICAgICAgICAgIG9wY29k
ZU5hbWVzW2V4ZWMtPnZtKCkuaW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bjb2Rl
KV0sCiAgICAgICAgICAgICBleGVjLT5zY29wZSgpLCBwYyk7CisgICAgaWYgKGV4ZWMtPnZtKCku
aW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bjb2RlKSA9PSBvcF9lbnRlcikgewor
ICAgICAgICBkYXRhTG9nRigiRnJhbWUgd2lsbCBldmVudHVhbGx5IHJldHVybiB0byAlcFxuIiwg
ZXhlYy0+cmV0dXJuUEMoKS52YWx1ZSgpKTsKKyAgICAgICAgKmJpdHdpc2VfY2FzdDx2b2xhdGls
ZSBjaGFyKj4oZXhlYy0+cmV0dXJuUEMoKS52YWx1ZSgpKTsKKyAgICB9CiAgICAgaWYgKGV4ZWMt
PnZtKCkuaW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bjb2RlKSA9PSBvcF9yZXQp
IHsKICAgICAgICAgZGF0YUxvZ0YoIldpbGwgYmUgcmV0dXJuaW5nIHRvICVwXG4iLCBleGVjLT5y
ZXR1cm5QQygpLnZhbHVlKCkpOwogICAgICAgICBkYXRhTG9nRigiVGhlIG5ldyBjZnIgd2lsbCBi
ZSAlcFxuIiwgZXhlYy0+Y2FsbGVyRnJhbWUoKSk7CkBAIC0zMjUsMTUgKzMzNywxNyBAQCBzdGF0
aWMgU2xvd1BhdGhSZXR1cm5UeXBlIGVudHJ5T1NSKEV4ZWNTdGF0ZSogZXhlYywgSW5zdHJ1Y3Rp
b24qLCBDb2RlQmxvY2sqIGNvZAogICAgIAogICAgIGlmICghc2hvdWxkSklUKGV4ZWMpKSB7CiAg
ICAgICAgIGNvZGVCbG9jay0+ZG9udEpJVEFueXRpbWVTb29uKCk7Ci0gICAgICAgIExMSU5UX1JF
VFVSTl9UV08oMCwgZXhlYyk7CisgICAgICAgIExMSU5UX1JFVFVSTl9UV08oMCwgMCk7CiAgICAg
fQogICAgIGlmICghaml0Q29tcGlsZUFuZFNldEhldXJpc3RpY3MoY29kZUJsb2NrLCBleGVjKSkK
LSAgICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCBleGVjKTsKKyAgICAgICAgTExJTlRfUkVUVVJO
X1RXTygwLCAwKTsKICAgICAKICAgICBpZiAoa2luZCA9PSBQcm9sb2d1ZSkKLSAgICAgICAgTExJ
TlRfUkVUVVJOX1RXTyhjb2RlQmxvY2stPmppdENvZGUoKS0+ZXhlY3V0YWJsZUFkZHJlc3MoKSwg
ZXhlYyk7CisgICAgICAgIExMSU5UX1JFVFVSTl9UV08oY29kZUJsb2NrLT5qaXRDb2RlKCktPmV4
ZWN1dGFibGVBZGRyZXNzKCksIDApOwogICAgIEFTU0VSVChraW5kID09IEFyaXR5Q2hlY2spOwot
ICAgIExMSU5UX1JFVFVSTl9UV08oY29kZUJsb2NrLT5qaXRDb2RlV2l0aEFyaXR5Q2hlY2soKS5l
eGVjdXRhYmxlQWRkcmVzcygpLCBleGVjKTsKKyAgICBMTElOVF9SRVRVUk5fVFdPKGNvZGVCbG9j
ay0+aml0Q29kZSgpLT5hZGRyZXNzRm9yQ2FsbCgKKyAgICAgICAgKmNvZGVCbG9jay0+dm0oKSwg
Y29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSwgTXVzdENoZWNrQXJpdHksCisgICAgICAgIFJl
Z2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQpLmV4ZWN1dGFibGVBZGRyZXNzKCksIDApOwog
fQogI2Vsc2UgLy8gRU5BQkxFKEpJVCkKIHN0YXRpYyBTbG93UGF0aFJldHVyblR5cGUgZW50cnlP
U1IoRXhlY1N0YXRlKiBleGVjLCBJbnN0cnVjdGlvbiosIENvZGVCbG9jayogY29kZUJsb2NrLCBj
b25zdCBjaGFyKiwgRW50cnlLaW5kKQpAQCAtMzgxLDExICszOTUsMTEgQEAgTExJTlRfU0xPV19Q
QVRIX0RFQ0wobG9vcF9vc3IpCiAgICAgCiAgICAgaWYgKCFzaG91bGRKSVQoZXhlYykpIHsKICAg
ICAgICAgY29kZUJsb2NrLT5kb250SklUQW55dGltZVNvb24oKTsKLSAgICAgICAgTExJTlRfUkVU
VVJOX1RXTygwLCBleGVjKTsKKyAgICAgICAgTExJTlRfUkVUVVJOX1RXTygwLCAwKTsKICAgICB9
CiAgICAgCiAgICAgaWYgKCFqaXRDb21waWxlQW5kU2V0SGV1cmlzdGljcyhjb2RlQmxvY2ssIGV4
ZWMpKQotICAgICAgICBMTElOVF9SRVRVUk5fVFdPKDAsIGV4ZWMpOworICAgICAgICBMTElOVF9S
RVRVUk5fVFdPKDAsIDApOwogICAgIAogICAgIEFTU0VSVChjb2RlQmxvY2stPmppdFR5cGUoKSA9
PSBKSVRDb2RlOjpCYXNlbGluZUpJVCk7CiAgICAgCkBAIC0zOTgsMTAgKzQxMiwxMCBAQCBMTElO
VF9TTE9XX1BBVEhfREVDTChsb29wX29zcikKICAgICB2b2lkKiBqdW1wVGFyZ2V0ID0gY29kZUJs
b2NrLT5qaXRDb2RlKCktPmV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQobWFwcGluZy0+bV9tYWNo
aW5lQ29kZU9mZnNldCk7CiAgICAgQVNTRVJUKGp1bXBUYXJnZXQpOwogICAgIAotICAgIExMSU5U
X1JFVFVSTl9UV08oanVtcFRhcmdldCwgZXhlYyk7CisgICAgTExJTlRfUkVUVVJOX1RXTyhqdW1w
VGFyZ2V0LCBleGVjLT50b3BPZkZyYW1lKCkpOwogI2Vsc2UgLy8gRU5BQkxFKEpJVCkKICAgICBj
b2RlQmxvY2stPmRvbnRKSVRBbnl0aW1lU29vbigpOwotICAgIExMSU5UX1JFVFVSTl9UV08oMCwg
ZXhlYyk7CisgICAgTExJTlRfUkVUVVJOX1RXTygwLCAwKTsKICNlbmRpZiAvLyBFTkFCTEUoSklU
KQogfQogCkBAIC00MzcsMTMgKzQ1MSwzNCBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzdGFja19j
aGVjaykKICAgICBkYXRhTG9nRigiTnVtIHZhcnMgPSAldS5cbiIsIGV4ZWMtPmNvZGVCbG9jaygp
LT5tX251bVZhcnMpOwogICAgIGRhdGFMb2dGKCJDdXJyZW50IGVuZCBpcyBhdCAlcC5cbiIsIGV4
ZWMtPnZtKCkuaW50ZXJwcmV0ZXItPnN0YWNrKCkuZW5kKCkpOwogI2VuZGlmCi0gICAgQVNTRVJU
KCFleGVjLT52bSgpLmludGVycHJldGVyLT5zdGFjaygpLmNvbnRhaW5zQWRkcmVzcygmZXhlYy0+
cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoZXhlYy0+Y29kZUJsb2NrKCktPm1f
bnVtQ2FsbGVlUmVnaXN0ZXJzKS5vZmZzZXQoKV0pKTsKLSAgICBpZiAoVU5MSUtFTFkoIXZtLmlu
dGVycHJldGVyLT5zdGFjaygpLmdyb3coJmV4ZWMtPnJlZ2lzdGVycygpW3ZpcnR1YWxSZWdpc3Rl
ckZvckxvY2FsKGV4ZWMtPmNvZGVCbG9jaygpLT5tX251bUNhbGxlZVJlZ2lzdGVycykub2Zmc2V0
KCldKSkpIHsKLSAgICAgICAgZXhlYyA9IGV4ZWMtPmNhbGxlckZyYW1lKCk7Ci0gICAgICAgIENv
bW1vblNsb3dQYXRoczo6aW50ZXJwcmV0ZXJUaHJvd0luQ2FsbGVyKGV4ZWMsIGNyZWF0ZVN0YWNr
T3ZlcmZsb3dFcnJvcihleGVjKSk7Ci0gICAgICAgIHBjID0gcmV0dXJuVG9UaHJvd0ZvclRocm93
bkV4Y2VwdGlvbihleGVjKTsKLSAgICB9Ci0gICAgTExJTlRfRU5EX0lNUEwoKTsKKworICAgIC8v
IFRoaXMgc3RhY2sgY2hlY2sgaXMgZG9uZSBpbiB0aGUgcHJvbG9ndWUgZm9yIGEgZnVuY3Rpb24g
Y2FsbCwgYW5kIHRoZQorICAgIC8vIENhbGxGcmFtZSBpcyBub3QgY29tcGxldGVseSBzZXQgdXAg
eWV0LiBGb3IgZXhhbXBsZSwgaWYgdGhlIGZyYW1lIG5lZWRzCisgICAgLy8gYW4gYWN0aXZhdGlv
biBvYmplY3QsIHRoZSBhY3RpdmF0aW9uIG9iamVjdCB3aWxsIG9ubHkgYmUgc2V0IHVwIGFmdGVy
CisgICAgLy8gd2Ugc3RhcnQgZXhlY3V0aW5nIHRoZSBmdW5jdGlvbi4gSWYgd2UgbmVlZCB0byB0
aHJvdyBhIFN0YWNrT3ZlcmZsb3dFcnJvcgorICAgIC8vIGhlcmUsIHRoZW4gd2UgbmVlZCB0byB0
ZWxsIHRoZSBwcm9sb2d1ZSB0byBzdGFydCB0aGUgc3RhY2sgdW53aW5kaW5nIGZyb20KKyAgICAv
LyB0aGUgY2FsbGVyIGZyYW1lICh3aGljaCBpcyBmdWxseSBzZXQgdXApIGluc3RlYWQuIFRvIGRv
IHRoYXQsIHdlIHJldHVybgorICAgIC8vIHRoZSBjYWxsZXIncyBDYWxsRnJhbWUgaW4gdGhlIHNl
Y29uZCByZXR1cm4gdmFsdWUuCisgICAgLy8KKyAgICAvLyBJZiB0aGUgc3RhY2sgY2hlY2sgc3Vj
Y2VlZHMgYW5kIHdlIGRvbid0IG5lZWQgdG8gdGhyb3cgdGhlIGVycm9yLCB0aGVuCisgICAgLy8g
d2UnbGwgcmV0dXJuIDAgaW5zdGVhZC4gVGhlIHByb2xvZ3VlIHdpbGwgY2hlY2sgZm9yIGEgbm9u
LXplcm8gdmFsdWUKKyAgICAvLyB3aGVuIGRldGVybWluaW5nIHdoZXRoZXIgdG8gc2V0IHRoZSBj
YWxsRnJhbWUgb3Igbm90LgorCisgICAgLy8gRm9yIEpJVCBlbmFibGVkIGJ1aWxkcyB3aGljaCB1
c2VzIHRoZSBDIHN0YWNrLCB0aGUgc3RhY2sgaXMgbm90IGdyb3dhYmxlLgorICAgIC8vIEhlbmNl
LCBpZiB3ZSBnZXQgaGVyZSwgdGhlbiB3ZSBrbm93IGEgc3RhY2sgb3ZlcmZsb3cgaXMgaW1taW5l
bnQuIFNvLCBqdXN0CisgICAgLy8gdGhyb3cgdGhlIFN0YWNrT3ZlcmZsb3dFcnJvciB1bmNvbmRp
dGlvbmFsbHkuCisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICBBU1NFUlQoIXZtLmludGVy
cHJldGVyLT5zdGFjaygpLmNvbnRhaW5zQWRkcmVzcyhleGVjLT50b3BPZkZyYW1lKCkpKTsKKyAg
ICBpZiAoTElLRUxZKHZtLmludGVycHJldGVyLT5zdGFjaygpLmVuc3VyZUNhcGFjaXR5Rm9yKGV4
ZWMtPnRvcE9mRnJhbWUoKSkpKQorICAgICAgICBMTElOVF9SRVRVUk5fVFdPKHBjLCAwKTsKKyNl
bmRpZgorCisgICAgZXhlYyA9IGV4ZWMtPmNhbGxlckZyYW1lKCk7CisgICAgdm0udG9wQ2FsbEZy
YW1lID0gZXhlYzsKKyAgICBFcnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29wZSh2bSk7CisgICAg
Q29tbW9uU2xvd1BhdGhzOjppbnRlcnByZXRlclRocm93SW5DYWxsZXIoZXhlYywgY3JlYXRlU3Rh
Y2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKKyAgICBwYyA9IHJldHVyblRvVGhyb3dGb3JUaHJvd25F
eGNlcHRpb24oZXhlYyk7CisgICAgTExJTlRfUkVUVVJOX1RXTyhwYywgZXhlYyk7CiB9CiAKIExM
SU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jcmVhdGVfYWN0aXZhdGlvbikKQEAgLTEwNDUs
NyArMTA4MCw3IEBAIGlubGluZSBTbG93UGF0aFJldHVyblR5cGUgc2V0VXBDYWxsKEV4ZWNTdGF0
ZSogZXhlY0NhbGxlZSwgSW5zdHJ1Y3Rpb24qIHBjLCBDb2RlCiAgICAgTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyIGNvZGVQdHI7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSAwOwogICAgIGlmIChl
eGVjdXRhYmxlLT5pc0hvc3RGdW5jdGlvbigpKQotICAgICAgICBjb2RlUHRyID0gZXhlY3V0YWJs
ZS0+aG9zdENvZGVFbnRyeUZvcihraW5kKTsKKyAgICAgICAgY29kZVB0ciA9IGV4ZWN1dGFibGUt
PmVudHJ5cG9pbnRGb3Iodm0sIGtpbmQsIE11c3RDaGVja0FyaXR5LCBSZWdpc3RlclByZXNlcnZh
dGlvbk5vdFJlcXVpcmVkKTsKICAgICBlbHNlIHsKICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxl
KiBmdW5jdGlvbkV4ZWN1dGFibGUgPSBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihl
eGVjdXRhYmxlKTsKICAgICAgICAgSlNPYmplY3QqIGVycm9yID0gZnVuY3Rpb25FeGVjdXRhYmxl
LT5wcmVwYXJlRm9yRXhlY3V0aW9uKGV4ZWNDYWxsZWUsIGNhbGxlZS0+c2NvcGUoKSwga2luZCk7
CkBAIC0xMDUzLDEyICsxMDg4LDE2IEBAIGlubGluZSBTbG93UGF0aFJldHVyblR5cGUgc2V0VXBD
YWxsKEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgSW5zdHJ1Y3Rpb24qIHBjLCBDb2RlCiAgICAgICAg
ICAgICBMTElOVF9DQUxMX1RIUk9XKGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCksIGVycm9yKTsK
ICAgICAgICAgY29kZUJsb2NrID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5jb2RlQmxvY2tGb3Ioa2lu
ZCk7CiAgICAgICAgIEFTU0VSVChjb2RlQmxvY2spOworICAgICAgICBBcml0eUNoZWNrTW9kZSBh
cml0eTsKICAgICAgICAgaWYgKGV4ZWNDYWxsZWUtPmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlz
KCkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KGNvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKSkKLSAg
ICAgICAgICAgIGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFibGUtPmpzQ29kZVdpdGhBcml0eUNo
ZWNrRW50cnlGb3Ioa2luZCk7CisgICAgICAgICAgICBhcml0eSA9IE11c3RDaGVja0FyaXR5Owog
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5q
c0NvZGVFbnRyeUZvcihraW5kKTsKKyAgICAgICAgICAgIGFyaXR5ID0gQXJpdHlDaGVja05vdFJl
cXVpcmVkOworICAgICAgICBjb2RlUHRyID0gZnVuY3Rpb25FeGVjdXRhYmxlLT5lbnRyeXBvaW50
Rm9yKHZtLCBraW5kLCBhcml0eSwgUmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZCk7CiAg
ICAgfQogICAgIAorICAgIEFTU0VSVCghIWNvZGVQdHIpOworICAgIAogICAgIGlmICghTExJTlRf
QUxXQVlTX0FDQ0VTU19TTE9XICYmIGNhbGxMaW5rSW5mbykgewogICAgICAgICBFeGVjU3RhdGUq
IGV4ZWNDYWxsZXIgPSBleGVjQ2FsbGVlLT5jYWxsZXJGcmFtZSgpOwogICAgICAgICAKQEAgLTEx
MTAsMTkgKzExNDksMTkgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2NvbnN0cnVj
dCkKICAgICByZXR1cm4gZ2VuZXJpY0NhbGwoZXhlYywgcGMsIENvZGVGb3JDb25zdHJ1Y3QpOwog
fQogCi1MTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfc2l6ZV9hbmRfYWxsb2NfZnJhbWVf
Zm9yX3ZhcmFyZ3MpCitMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfc2l6ZV9mcmFtZV9m
b3JfdmFyYXJncykKIHsKICAgICBMTElOVF9CRUdJTigpOwogICAgIC8vIFRoaXMgbmVlZHMgdG86
CiAgICAgLy8gLSBTZXQgdXAgYSBjYWxsIGZyYW1lIHdoaWxlIHJlc3BlY3RpbmcgdGhlIHZhcmlh
YmxlIGFyZ3VtZW50cy4KICAgICAKLSAgICBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUgPSBzaXplQW5k
QWxsb2NGcmFtZUZvclZhcmFyZ3MoZXhlYywgJnZtLmludGVycHJldGVyLT5zdGFjaygpLAorICAg
IEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSA9IHNpemVGcmFtZUZvclZhcmFyZ3MoZXhlYywgJnZtLmlu
dGVycHJldGVyLT5zdGFjaygpLAogICAgICAgICBMTElOVF9PUF9DKDQpLmpzVmFsdWUoKSwgcGNb
NV0udS5vcGVyYW5kKTsKICAgICBMTElOVF9DQUxMX0NIRUNLX0VYQ0VQVElPTihleGVjKTsKICAg
ICAKICAgICB2bS5uZXdDYWxsRnJhbWVSZXR1cm5WYWx1ZSA9IGV4ZWNDYWxsZWU7CiAKLSAgICBM
TElOVF9FTkQoKTsKKyAgICBMTElOVF9SRVRVUk5fQ0FMTEVFX0ZSQU1FKGV4ZWNDYWxsZWUpOwog
fQogCiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfY2FsbF92YXJhcmdzKQpAQCAtMTMx
MiwxMyArMTM1MSw2IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wcm9maWxlX2Rp
ZF9jYWxsKQogICAgIExMSU5UX0VORCgpOwogfQogCi1MTElOVF9TTE9XX1BBVEhfREVDTCh0aHJv
d19mcm9tX25hdGl2ZV9jYWxsKQotewotICAgIExMSU5UX0JFR0lOKCk7Ci0gICAgQVNTRVJUKHZt
LmV4Y2VwdGlvbigpKTsKLSAgICBMTElOVF9FTkQoKTsKLX0KLQogTExJTlRfU0xPV19QQVRIX0RF
Q0woc2xvd19wYXRoX2hhbmRsZV9leGNlcHRpb24pCiB7CiAgICAgTExJTlRfQkVHSU5fTk9fU0VU
X1BDKCk7CkBAIC0xMzg4LDYgKzE0MjAsMjMgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19w
YXRoX3B1dF90b19zY29wZSkKICAgICBMTElOVF9FTkQoKTsKIH0KIAorU2xvd1BhdGhSZXR1cm5U
eXBlIGxsaW50X3Rocm93X3N0YWNrX292ZXJmbG93X2Vycm9yKFZNKiB2bSwgUHJvdG9DYWxsRnJh
bWUqIHByb3RvRnJhbWUpCit7CisgICAgRXhlY1N0YXRlKiBleGVjID0gdm0tPnRvcENhbGxGcmFt
ZTsKKyAgICBpZiAoIWV4ZWMpCisgICAgICAgIGV4ZWMgPSBwcm90b0ZyYW1lLT5zY29wZSgpLT5n
bG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOworICAgIHRocm93U3RhY2tPdmVyZmxvd0Vycm9y
KGV4ZWMpOworICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7Cit9CisKKyNpZiBFTkFCTEUo
TExJTlRfQ19MT09QKQorU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3N0YWNrX2NoZWNrX2F0X3Zt
X2VudHJ5KFZNKiB2bSwgUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCit7CisgICAgYm9vbCBzdWNj
ZXNzID0gdm0tPmludGVycHJldGVyLT5zdGFjaygpLmVuc3VyZUNhcGFjaXR5Rm9yKG5ld1RvcE9m
U3RhY2spOworICAgIHJldHVybiBlbmNvZGVSZXN1bHQocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o
c3VjY2VzcyksIDApOworfQorI2VuZGlmCisKIGV4dGVybiAiQyIgdm9pZCBsbGludF93cml0ZV9i
YXJyaWVyX3Nsb3coRXhlY1N0YXRlKiwgSlNDZWxsKiBjZWxsKQogewogICAgIEhlYXA6OndyaXRl
QmFycmllcihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1Bh
dGhzLmgKaW5kZXggOGQ2MGFmYTI0YWRmYTMwMmIxNTI4YTBlNDNlYzIzMjc3MGU4ZmU3ZS4uOThh
ODcwMmI4MmIzMzQ2YjhmZTNjN2I1ZTYyNGVjNTQyNmQyMDgwZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2LDYgKzM2LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKIGNsYXNzIEV4ZWNTdGF0ZTsKIHN0cnVjdCBJbnN0cnVjdGlvbjsKK3N0cnVjdCBQ
cm90b0NhbGxGcmFtZTsKIAogbmFtZXNwYWNlIExMSW50IHsKIApAQCAtMTAxLDcgKzEwMiw3IEBA
IExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbmV3X2Z1bmMpOwogTExJTlRf
U0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZXdfZnVuY19leHApOwogTExJTlRfU0xP
V19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9jYWxsKTsKIExMSU5UX1NMT1dfUEFUSF9ISURE
RU5fREVDTChzbG93X3BhdGhfY29uc3RydWN0KTsKLUxMSU5UX1NMT1dfUEFUSF9ISURERU5fREVD
TChzbG93X3BhdGhfc2l6ZV9hbmRfYWxsb2NfZnJhbWVfZm9yX3ZhcmFyZ3MpOworTExJTlRfU0xP
V19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9zaXplX2ZyYW1lX2Zvcl92YXJhcmdzKTsKIExM
SU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfY2FsbF92YXJhcmdzKTsKIExMSU5U
X1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfY2FsbF9ldmFsKTsKIExMSU5UX1NMT1df
UEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfdGVhcl9vZmZfYWN0aXZhdGlvbik7CkBAIC0xMTks
MTEgKzEyMCwxNCBAQCBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2hhbmRs
ZV93YXRjaGRvZ190aW1lcik7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRo
X2RlYnVnKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHJvZmlsZV93
aWxsX2NhbGwpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wcm9maWxl
X2RpZF9jYWxsKTsKLUxMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTCh0aHJvd19mcm9tX25hdGl2
ZV9jYWxsKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaGFuZGxlX2V4
Y2VwdGlvbik7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3Jlc29sdmVf
c2NvcGUpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfZnJvbV9z
Y29wZSk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3B1dF90b19zY29w
ZSk7CitleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF90aHJvd19zdGFja19vdmVy
Zmxvd19lcnJvcihWTSosIFByb3RvQ2FsbEZyYW1lKik7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9P
UCkKK2V4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3N0YWNrX2NoZWNrX2F0X3Zt
X2VudHJ5KFZNKiwgUmVnaXN0ZXIqKTsKKyNlbmRpZgogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
TExJbnQKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1
bmtzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFRodW5rcy5jcHAKaW5k
ZXggOTQyOWU2Y2I1MmRiZTA5YzE3M2E1MWY2MjY5ZTEyOWY5YWQwODY3Ni4uM2VjMTRkMjQxMGQz
ZThkYzY0ODA4NTc5OTMzMmU1OTNlNWMzZjJkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRUaHVua3MuY3BwCkBAIC05NCw1OCArOTQsMTYgQEAgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmIHByb2dyYW1FbnRyeVRodW5rR2VuZXJhdG9yKFZNKiB2bSkKIAogLy8gTm9uLUpJVCAo
aS5lLiBDIExvb3AgTExJTlQpIGNhc2U6CiAKLXR5cGVkZWYgSlNWYWx1ZSAoKkV4ZWN1dGVDb2Rl
KSAoQ2FsbEZyYW1lKiwgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3MpOwotCi10ZW1wbGF0ZTxFeGVj
dXRlQ29kZSBleGVjdXRlPgotRW5jb2RlZEpTVmFsdWUgZG9DYWxsVG9KYXZhU2NyaXB0KHZvaWQq
IGV4ZWN1dGFibGVBZGRyZXNzLCBQcm90b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWUpCitFbmNv
ZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBWTSog
dm0sIFByb3RvQ2FsbEZyYW1lKiBwcm90b0NhbGxGcmFtZSkKIHsKLSAgICBDb2RlQmxvY2sqIGNv
ZGVCbG9jayA9IHByb3RvQ2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKLSAgICBKU1Njb3BlKiBzY29w
ZSA9IHByb3RvQ2FsbEZyYW1lLT5zY29wZSgpOwotICAgIEpTT2JqZWN0KiBjYWxsZWUgPSBwcm90
b0NhbGxGcmFtZS0+Y2FsbGVlKCk7Ci0gICAgaW50IGFyZ0NvdW50SW5jbHVkaW5nVGhpcyA9IHBy
b3RvQ2FsbEZyYW1lLT5hcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygpOwotICAgIGludCBhcmdD
b3VudCA9IHByb3RvQ2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCk7Ci0gICAgSlNWYWx1ZSB0aGlz
VmFsdWUgPSBwcm90b0NhbGxGcmFtZS0+dGhpc1ZhbHVlKCk7Ci0gICAgSlNTdGFjayYgc3RhY2sg
PSBzY29wZS0+dm0oKS0+aW50ZXJwcmV0ZXItPnN0YWNrKCk7Ci0KLSAgICBDYWxsRnJhbWUqIG5l
d0NhbGxGcmFtZSA9IHN0YWNrLnB1c2hGcmFtZShjb2RlQmxvY2ssIHNjb3BlLCBhcmdDb3VudElu
Y2x1ZGluZ1RoaXMsIGNhbGxlZSk7Ci0gICAgaWYgKFVOTElLRUxZKCFuZXdDYWxsRnJhbWUpKSB7
Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBzY29wZS0+Z2xvYmFsT2Jq
ZWN0KCk7Ci0gICAgICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhl
YygpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93U3RhY2tPdmVyZmxvd0Vy
cm9yKGV4ZWMpKTsKLSAgICB9Ci0KLSAgICAvLyBTZXQgdGhlIGFyZ3VtZW50cyBmb3IgdGhlIGNh
bGxlZToKLSAgICBuZXdDYWxsRnJhbWUtPnNldFRoaXNWYWx1ZSh0aGlzVmFsdWUpOwotICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgYXJnQ291bnQ7ICsraSkKLSAgICAgICAgbmV3Q2FsbEZyYW1lLT5z
ZXRBcmd1bWVudChpLCBwcm90b0NhbGxGcmFtZS0+YXJndW1lbnQoaSkpOwotCi0gICAgSlNWYWx1
ZSByZXN1bHQgPSBleGVjdXRlKG5ld0NhbGxGcmFtZSwgZXhlY3V0YWJsZUFkZHJlc3MpOwotCi0g
ICAgc3RhY2sucG9wRnJhbWUobmV3Q2FsbEZyYW1lKTsKLQorICAgIEpTVmFsdWUgcmVzdWx0ID0g
Q0xvb3A6OmV4ZWN1dGUobGxpbnRfY2FsbF90b19qYXZhc2NyaXB0LCBleGVjdXRhYmxlQWRkcmVz
cywgdm0sIHByb3RvQ2FsbEZyYW1lKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3Vs
dCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBleGVjdXRlSlMoQ2FsbEZyYW1lKiBuZXdD
YWxsRnJhbWUsIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzKQotewotICAgIE9wY29kZSBlbnRyeU9w
Y29kZSA9ICpyZWludGVycHJldF9jYXN0PE9wY29kZSo+KCZleGVjdXRhYmxlQWRkcmVzcyk7Ci0g
ICAgcmV0dXJuIENMb29wOjpleGVjdXRlKG5ld0NhbGxGcmFtZSwgZW50cnlPcGNvZGUpOwotfQot
Ci1FbmNvZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNz
LCBFeGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lLCBSZWdpc3Rlciop
Ci17Ci0gICAgcmV0dXJuIGRvQ2FsbFRvSmF2YVNjcmlwdDxleGVjdXRlSlM+KGV4ZWN1dGFibGVB
ZGRyZXNzLCBwcm90b0NhbGxGcmFtZSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBleGVj
dXRlTmF0aXZlKENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lLCB2b2lkKiBleGVjdXRhYmxlQWRkcmVz
cykKLXsKLSAgICBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8TmF0
aXZlRnVuY3Rpb24+KGV4ZWN1dGFibGVBZGRyZXNzKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZGVj
b2RlKGZ1bmN0aW9uKG5ld0NhbGxGcmFtZSkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBjYWxsVG9O
YXRpdmVGdW5jdGlvbih2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgRXhlY1N0YXRlKiosIFByb3Rv
Q2FsbEZyYW1lKiBwcm90b0NhbGxGcmFtZSwgUmVnaXN0ZXIqKQorRW5jb2RlZEpTVmFsdWUgY2Fs
bFRvTmF0aXZlRnVuY3Rpb24odm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFZNKiB2bSwgUHJvdG9D
YWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lKQogewotICAgIHJldHVybiBkb0NhbGxUb0phdmFTY3Jp
cHQ8ZXhlY3V0ZU5hdGl2ZT4oZXhlY3V0YWJsZUFkZHJlc3MsIHByb3RvQ2FsbEZyYW1lKTsKKyAg
ICBKU1ZhbHVlIHJlc3VsdCA9IENMb29wOjpleGVjdXRlKGxsaW50X2NhbGxfdG9fbmF0aXZlX2Z1
bmN0aW9uLCBleGVjdXRhYmxlQWRkcmVzcywgdm0sIHByb3RvQ2FsbEZyYW1lKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoSklUKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuaAppbmRleCA4YTg5NGFhNDFj
Mjg5MWY4Y2JiMzcyMDliZGFhMjk3ZDZhNjg5ZGM3Li4zNjE4Njk1MmNhZDg4ZGQyYzhkZTA0OGIx
ZjdjOGFiYTFhNGNiZmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRUaHVua3MuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVu
a3MuaApAQCAtMzQsMTYgKzM0LDE0IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBFeGVj
U3RhdGU7Ci1jbGFzcyBSZWdpc3RlcjsKIGNsYXNzIFZNOwogc3RydWN0IFByb3RvQ2FsbEZyYW1l
OwogCiBleHRlcm4gIkMiIHsKLSAgICBFbmNvZGVkSlNWYWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZv
aWQqLCBFeGVjU3RhdGUqKiwgUHJvdG9DYWxsRnJhbWUqLCBSZWdpc3RlciopOwotICAgIEVuY29k
ZWRKU1ZhbHVlIGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHZvaWQqLCBFeGVjU3RhdGUqKiwgUHJvdG9D
YWxsRnJhbWUqLCBSZWdpc3RlciopOworICAgIEVuY29kZWRKU1ZhbHVlIGNhbGxUb0phdmFTY3Jp
cHQodm9pZCosIFZNKiwgUHJvdG9DYWxsRnJhbWUqKTsKKyAgICBFbmNvZGVkSlNWYWx1ZSBjYWxs
VG9OYXRpdmVGdW5jdGlvbih2b2lkKiwgVk0qLCBQcm90b0NhbGxGcmFtZSopOwogI2lmIEVOQUJM
RShKSVQpCi0gICAgdm9pZCByZXR1cm5Gcm9tSmF2YVNjcmlwdCgpOworICAgIHZvaWQgaGFuZGxl
VW5jYXVnaHRFeGNlcHRpb24oKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KaW5kZXggYmU4NGRlZTM2NmNi
ZWRjMmIzZjE5NzdkMzkyMTQyYjBkOGE1N2UzYS4uMTllN2YzMzY1YThjNDA3ZWQxMDQwYTg3NTUz
MTBlYjY4Yjk1MWMyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtMzgsOSArMzgsMTIgQEAgY29uc3QgQ2FsbEZyYW1l
SGVhZGVyU2xvdHMgPSA2CiBlbHNlCiBjb25zdCBQdHJTaXplID0gNAogY29uc3QgQ2FsbEZyYW1l
SGVhZGVyU2xvdHMgPSA1Citjb25zdCBDYWxsRnJhbWVBbGlnblNsb3RzID0gMQogZW5kCiBjb25z
dCBTbG90U2l6ZSA9IDgKIAorY29uc3QgQ2FsbGVyRnJhbWVBbmRQQ1NpemUgPSAyICogUHRyU2l6
ZQorCiBjb25zdCBDYWxsZXJGcmFtZSA9IDAKIGNvbnN0IFJldHVyblBDID0gQ2FsbGVyRnJhbWUg
KyBQdHJTaXplCiBjb25zdCBDb2RlQmxvY2sgPSBSZXR1cm5QQyArIFB0clNpemUKQEAgLTcxLDYg
Kzc0LDE2IEBAIGNvbnN0IERlbGV0ZWRWYWx1ZVRhZyA9IC03CiBjb25zdCBMb3dlc3RUYWcgPSBE
ZWxldGVkVmFsdWVUYWcKIGVuZAogCitpZiBYODZfNjQgb3IgQVJNNjQgb3IgQ19MT09QCitjb25z
dCBtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCA9IDAKK2Vsc2lmIEFSTSBvciBBUk12N19U
UkFESVRJT05BTCBvciBBUk12NyBvciBTSDQKK2NvbnN0IG1heEZyYW1lRXh0ZW50Rm9yU2xvd1Bh
dGhDYWxsID0gMjQKK2Vsc2lmIFg4NgorY29uc3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENh
bGwgPSA0MAorZWxzaWYgTUlQUworY29uc3QgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwg
PSA0MAorZW5kCisKICMgV2F0Y2hwb2ludCBzdGF0ZXMKIGNvbnN0IENsZWFyV2F0Y2hwb2ludCA9
IDAKIGNvbnN0IElzV2F0Y2hlZCA9IDEKQEAgLTg1LDcgKzk4LDcgQEAgaWYgSlNWQUxVRTY0CiAg
ICAgIyAgIHRvIEMgZnVuY3Rpb25zLgogICAgICMgLSBDIGNhbGxzIGFyZSBzdGlsbCBnaXZlbiB0
aGUgSW5zdHJ1Y3Rpb24qIHJhdGhlciB0aGFuIHRoZSBQQyBpbmRleC4KICAgICAjICAgVGhpcyBy
ZXF1aXJlcyBhbiBhZGQgYmVmb3JlIHRoZSBjYWxsLCBhbmQgYSBzdWIgYWZ0ZXIuCi0gICAgY29u
c3QgUEMgPSB0NAorICAgIGNvbnN0IFBDID0gdDUKICAgICBjb25zdCBQQiA9IHQ2CiAgICAgY29u
c3QgdGFnVHlwZU51bWJlciA9IGNzcjEKICAgICBjb25zdCB0YWdNYXNrID0gY3NyMgpAQCAtMTAz
LDcgKzExNiw3IEBAIGlmIEpTVkFMVUU2NAogICAgIGVuZAogCiBlbHNlCi0gICAgY29uc3QgUEMg
PSB0NAorICAgIGNvbnN0IFBDID0gdDUKICAgICBtYWNybyBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24o
b2Zmc2V0LCBkZXN0KQogICAgICAgICBsb2FkaXMgb2Zmc2V0ICogNFtQQ10sIGRlc3QKICAgICBl
bmQKQEAgLTIxMCw2ICsyMjMsNTIgQEAgbWFjcm8gYXNzZXJ0KGFzc2VydGlvbikKICAgICBlbmQK
IGVuZAogCittYWNybyBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wUmVnLCBsb2NhdGlv
bikKKyAgICBpZiBBUk02NCBvciBDX0xPT1AKKyAgICAgICAgIyBBUk02NCB3aWxsIGNoZWNrIGZv
ciB1cyEKKyAgICAgICAgIyBDX0xPT1AgZG9lcyBub3QgbmVlZCB0aGUgYWxpZ25tZW50LCBhbmQg
Y2FuIHVzZSBhIGxpdHRsZSBwZXJmCisgICAgICAgICMgaW1wcm92ZW1lbnQgZnJvbSBhdm9pZGlu
ZyB1c2VsZXNzIHdvcmsuCisgICAgZWxzZQorICAgICAgICBpZiBBUk0gb3IgQVJNdjcgb3IgQVJN
djdfVFJBRElUSU9OQUwKKyAgICAgICAgICAgICMgQVJNIGNhbid0IGRvIGxvZ2ljYWwgb3BzIHdp
dGggdGhlIHNwIGFzIGEgc291cmNlCisgICAgICAgICAgICBtb3ZlIHNwLCB0ZW1wUmVnCisgICAg
ICAgICAgICBhbmRwIDB4ZiwgdGVtcFJlZworICAgICAgICBlbHNlCisgICAgICAgICAgICBhbmRw
IHNwLCAweGYsIHRlbXBSZWcKKyAgICAgICAgZW5kCisgICAgICAgIGJ0cHogdGVtcFJlZywgLnN0
YWNrUG9pbnRlck9rYXkKKyAgICAgICAgbW92ZSBsb2NhdGlvbiwgdGVtcFJlZworICAgICAgICBi
cmVhaworICAgIC5zdGFja1BvaW50ZXJPa2F5OgorICAgIGVuZAorZW5kCisKK21hY3JvIHByZXNl
cnZlQ2FsbGVyUENBbmRDRlIoKQorICAgIGlmIENfTE9PUCBvciBBUk0gb3IgQVJNdjcgb3IgQVJN
djdfVFJBRElUSU9OQUwgb3IgTUlQUyBvciBTSDQKKyAgICAgICAgcHVzaCBscgorICAgICAgICBw
dXNoIGNmcgorICAgIGVsc2lmIFg4NiBvciBYODZfNjQKKyAgICAgICAgcHVzaCBjZnIKKyAgICBl
bHNpZiBBUk02NAorICAgICAgICBwdXNoTFJBbmRGUAorICAgIGVsc2UKKyAgICAgICAgZXJyb3IK
KyAgICBlbmQKKyAgICBtb3ZlIHNwLCBjZnIKK2VuZAorCittYWNybyByZXN0b3JlQ2FsbGVyUENB
bmRDRlIoKQorICAgIG1vdmUgY2ZyLCBzcAorICAgIGlmIENfTE9PUCBvciBBUk0gb3IgQVJNdjcg
b3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUyBvciBTSDQKKyAgICAgICAgcG9wIGNmcgorICAg
ICAgICBwb3AgbHIKKyAgICBlbHNpZiBYODYgb3IgWDg2XzY0CisgICAgICAgIHBvcCBjZnIKKyAg
ICBlbHNpZiBBUk02NAorICAgICAgICBwb3BMUkFuZEZQCisgICAgZW5kCitlbmQKKwogbWFjcm8g
cHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKGRlc3RpbmF0aW9uUmVnaXN0ZXIpCiAgICAg
aWYgQ19MT09QIG9yIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBBUk02NCBv
ciBNSVBTIG9yIFNINAogICAgICAgICAjIEluIENfTE9PUCBjYXNlLCB3ZSdyZSBvbmx5IHByZXNl
cnZpbmcgdGhlIGJ5dGVjb2RlIHZQQy4KQEAgLTIzMiwzMSArMjkxLDEyMiBAQCBtYWNybyByZXN0
b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihzb3VyY2VSZWdpc3RlcikKICAgICBlbmQKIGVu
ZAogCittYWNybyBmdW5jdGlvblByb2xvZ3VlKCkKKyAgICBpZiBYODYgb3IgWDg2XzY0CisgICAg
ICAgIHB1c2ggY2ZyCisgICAgZWxzaWYgQVJNNjQKKyAgICAgICAgcHVzaExSQW5kRlAKKyAgICBl
bHNpZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMK
KyAgICAgICAgcHVzaCBscgorICAgICAgICBwdXNoIGNmcgorICAgIGVuZAorICAgIG1vdmUgc3As
IGNmcgorZW5kCisKK21hY3JvIGZ1bmN0aW9uRXBpbG9ndWUoKQorICAgIGlmIFg4NiBvciBYODZf
NjQKKyAgICAgICAgcG9wIGNmcgorICAgIGVsc2lmIEFSTTY0CisgICAgICAgIHBvcExSQW5kRlAK
KyAgICBlbHNpZiBDX0xPT1Agb3IgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9y
IE1JUFMKKyAgICAgICAgcG9wIGNmcgorICAgICAgICBwb3AgbHIKKyAgICBlbmQKK2VuZAorCitt
YWNybyBjYWxsVG9KYXZhU2NyaXB0UHJvbG9ndWUoKQorICAgIGlmIFg4Nl82NAorICAgICAgICBw
dXNoIGNmcgorICAgICAgICBwdXNoIHQwCisgICAgZWxzaWYgWDg2CisgICAgICAgIHB1c2ggY2Zy
CisgICAgZWxzaWYgQVJNNjQKKyAgICAgICAgcHVzaExSQW5kRlAKKyAgICBlbHNpZiBDX0xPT1Ag
b3IgQVJNIG9yIEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMKKyAgICAgICAgcHVz
aCBscgorICAgICAgICBwdXNoIGNmcgorICAgIGVuZAorICAgIHB1c2hDYWxsZWVTYXZlcworICAg
IGlmIFg4NgorICAgICAgICBzdWJwIDEyLCBzcAorICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBB
Uk12N19UUkFESVRJT05BTAorICAgICAgICBzdWJwIDQsIHNwCisgICAgICAgIG1vdmUgc3AsIHQ0
CisgICAgICAgIGNscmJwIHQ0LCAweGYsIHQ1CisgICAgICAgIG1vdmUgdDUsIHNwCisgICAgICAg
IHN0b3JlcCB0NCwgW3NwXQorICAgIGVuZAorZW5kCisKK21hY3JvIGNhbGxUb0phdmFTY3JpcHRF
cGlsb2d1ZSgpCisgICAgYWRkcCBDYWxsRnJhbWVIZWFkZXJTbG90cyAqIDgsIGNmciwgc3AKKyAg
ICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJdLCBjZnIKKworICAgIGlmIFg4NgorICAgICAgICBhZGRw
IDEyLCBzcAorICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTAorICAg
ICAgICBwb3AgdDQKKyAgICAgICAgbW92ZSB0NCwgc3AKKyAgICAgICAgYWRkcCA0LCBzcAorICAg
IGVuZAorCisgICAgcG9wQ2FsbGVlU2F2ZXMKKyAgICBpZiBYODZfNjQKKyAgICAgICAgcG9wIHQy
CisgICAgICAgIHBvcCBjZnIKKyAgICBlbHNpZiBYODYKKyAgICAgICAgcG9wIGNmcgorICAgIGVs
c2lmIEFSTTY0CisgICAgICAgIHBvcExSQW5kRlAKKyAgICBlbHNpZiBDX0xPT1Agb3IgQVJNIG9y
IEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMKKyAgICAgICAgcG9wIGNmcgorICAg
ICAgICBwb3AgbHIKKyAgICBlbmQKK2VuZAorCittYWNybyBtb3ZlU3RhY2tQb2ludGVyRm9yQ29k
ZUJsb2NrKGNvZGVCbG9jaywgc2NyYXRjaCkKKyAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVtQ2Fs
bGVlUmVnaXN0ZXJzW2NvZGVCbG9ja10sIHNjcmF0Y2gKKyAgICBsc2hpZnRwIDMsIHNjcmF0Y2gK
KyAgICBhZGRwIG1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCBzY3JhdGNoCisgICAgc3Vi
cCBjZnIsIHNjcmF0Y2gsIHNwCitlbmQKKworbWFjcm8gcmVzdG9yZVN0YWNrUG9pbnRlckFmdGVy
Q2FsbCgpCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQyCisgICAgbW92ZVN0YWNrUG9pbnRl
ckZvckNvZGVCbG9jayh0MiwgdDQpCitlbmQKKwogbWFjcm8gdHJhY2VFeGVjdXRpb24oKQogICAg
IGlmIEVYRUNVVElPTl9UUkFDSU5HCiAgICAgICAgIGNhbGxTbG93UGF0aChfbGxpbnRfdHJhY2Up
CiAgICAgZW5kCiBlbmQKIAotbWFjcm8gY2FsbFRhcmdldEZ1bmN0aW9uKGNhbGxMaW5rSW5mbykK
K21hY3JvIGNhbGxUYXJnZXRGdW5jdGlvbihjYWxsTGlua0luZm8sIGNhbGxlZUZyYW1lUHRyKQor
ICAgIG1vdmUgY2FsbGVlRnJhbWVQdHIsIHNwCiAgICAgaWYgQ19MT09QCiAgICAgICAgIGNsb29w
Q2FsbEpTRnVuY3Rpb24gTExJbnRDYWxsTGlua0luZm86Om1hY2hpbmVDb2RlVGFyZ2V0W2NhbGxM
aW5rSW5mb10KICAgICBlbHNlCiAgICAgICAgIGNhbGwgTExJbnRDYWxsTGlua0luZm86Om1hY2hp
bmVDb2RlVGFyZ2V0W2NhbGxMaW5rSW5mb10KLSAgICAgICAgZGlzcGF0Y2hBZnRlckNhbGwoKQog
ICAgIGVuZAorICAgIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQorICAgIGRpc3BhdGNo
QWZ0ZXJDYWxsKCkKIGVuZAogCiBtYWNybyBzbG93UGF0aEZvckNhbGwoc2xvd1BhdGgpCiAgICAg
Y2FsbENhbGxTbG93UGF0aCgKICAgICAgICAgc2xvd1BhdGgsCiAgICAgICAgIG1hY3JvIChjYWxs
ZWUpCisgICAgICAgICAgICBidHB6IHQxLCAuZG9udFVwZGF0ZVNQCisgICAgICAgICAgICBhZGRw
IENhbGxlckZyYW1lQW5kUENTaXplLCB0MSwgc3AKKyAgICAgICAgLmRvbnRVcGRhdGVTUDoKICAg
ICAgICAgICAgIGlmIENfTE9PUAogICAgICAgICAgICAgICAgIGNsb29wQ2FsbEpTRnVuY3Rpb24g
Y2FsbGVlCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgY2FsbCBjYWxsZWUKLSAg
ICAgICAgICAgICAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCiAgICAgICAgICAgICBlbmQKKyAgICAg
ICAgICAgIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQorICAgICAgICAgICAgZGlzcGF0
Y2hBZnRlckNhbGwoKQogICAgICAgICBlbmQpCiBlbmQKIApAQCAtMzI1LDI2ICs0NzUsNDggQEAg
ZW5kCiAjIERvIHRoZSBiYXJlIG1pbmltdW0gcmVxdWlyZWQgdG8gZXhlY3V0ZSBjb2RlLiBTZXRz
IHVwIHRoZSBQQywgbGVhdmUgdGhlIENvZGVCbG9jayoKICMgaW4gdDEuIE1heSBhbHNvIHRyaWdn
ZXIgcHJvbG9ndWUgZW50cnkgT1NSLgogbWFjcm8gcHJvbG9ndWUoY29kZUJsb2NrR2V0dGVyLCBj
b2RlQmxvY2tTZXR0ZXIsIG9zclNsb3dQYXRoLCB0cmFjZVNsb3dQYXRoKQotICAgIHByZXNlcnZl
UmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MikKLSAgICAKICAgICAjIFNldCB1cCB0aGUgY2FsbCBm
cmFtZSBhbmQgY2hlY2sgaWYgd2Ugc2hvdWxkIE9TUi4KLSAgICBzdG9yZXAgdDIsIFJldHVyblBD
W2Nmcl0KKyAgICBwcmVzZXJ2ZUNhbGxlclBDQW5kQ0ZSKCkKKwogICAgIGlmIEVYRUNVVElPTl9U
UkFDSU5HCisgICAgICAgIHN1YnAgbWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwsIHNwCiAg
ICAgICAgIGNhbGxTbG93UGF0aCh0cmFjZVNsb3dQYXRoKQorICAgICAgICBhZGRwIG1heEZyYW1l
RXh0ZW50Rm9yU2xvd1BhdGhDYWxsLCBzcAogICAgIGVuZAogICAgIGNvZGVCbG9ja0dldHRlcih0
MSkKK2lmIENfTE9PUAorZWxzZQogICAgIGJhZGRpcyA1LCBDb2RlQmxvY2s6Om1fbGxpbnRFeGVj
dXRlQ291bnRlciArIEV4ZWN1dGlvbkNvdW50ZXI6Om1fY291bnRlclt0MV0sIC5jb250aW51ZQot
ICAgIGNDYWxsMihvc3JTbG93UGF0aCwgY2ZyLCBQQykKLSAgICBtb3ZlIHQxLCBjZnIKKyAgICBp
ZiBKU1ZBTFVFNjQKKyAgICAgICAgY0NhbGwyKG9zclNsb3dQYXRoLCBjZnIsIFBDKQorICAgIGVs
c2UKKyAgICAgICAgIyBXZSBhcmUgYWZ0ZXIgdGhlIGZ1bmN0aW9uIHByb2xvZ3VlLCBidXQgYmVm
b3JlIHdlIGhhdmUgc2V0IHVwIHNwIGZyb20gdGhlIENvZGVCbG9jay4KKyAgICAgICAgIyBUZW1w
b3JhcmlseSBhbGlnbiBzdGFjayBwb2ludGVyIGZvciB0aGlzIGNhbGwuCisgICAgICAgIHN1YnAg
OCwgc3AKKyAgICAgICAgY0NhbGwyKG9zclNsb3dQYXRoLCBjZnIsIFBDKQorICAgICAgICBhZGRw
IDgsIHNwCisgICAgZW5kCiAgICAgYnRweiB0MCwgLnJlY292ZXIKLSAgICBsb2FkcCBSZXR1cm5Q
Q1tjZnJdLCB0MgotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQyKQorICAg
IG1vdmUgY2ZyLCBzcCAjIHJlc3RvcmUgdGhlIHByZXZpb3VzIHNwCisgICAgIyBwb3AgdGhlIGNh
bGxlckZyYW1lIHNpbmNlIHdlIHdpbGwganVtcCB0byBhIGZ1bmN0aW9uIHRoYXQgd2FudHMgdG8g
c2F2ZSBpdAorICAgIGlmIEFSTTY0CisgICAgICAgIHBvcExSQW5kRlAKKyAgICBlbHNpZiBBUk0g
b3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQUyBvciBTSDQKKyAgICAgICAgcG9w
IGNmcgorICAgICAgICBwb3AgbHIKKyAgICBlbHNlCisgICAgICAgIHBvcCBjZnIKKyAgICBlbmQK
ICAgICBqbXAgdDAKIC5yZWNvdmVyOgogICAgIGNvZGVCbG9ja0dldHRlcih0MSkKIC5jb250aW51
ZToKK2VuZAorCiAgICAgY29kZUJsb2NrU2V0dGVyKHQxKQogICAgIAorICAgIG1vdmVTdGFja1Bv
aW50ZXJGb3JDb2RlQmxvY2sodDEsIHQyKQorCiAgICAgIyBTZXQgdXAgdGhlIFBDLgogICAgIGlm
IEpTVkFMVUU2NAogICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW3QxXSwg
UEIKQEAgLTM4OSwxNCArNTYxLDE2IEBAIG1hY3JvIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24ocHJv
ZmlsZUFyZ1NraXApCiAgICAgICAgIAogICAgICMgQ2hlY2sgc3RhY2sgaGVpZ2h0LgogICAgIGxv
YWRpIENvZGVCbG9jazo6bV9udW1DYWxsZWVSZWdpc3RlcnNbdDFdLCB0MAotICAgIGFkZGkgMSwg
dDAgIyBBY2NvdW50IHRoYXQgbG9jYWwwIGdvZXMgYXQgc2xvdCAtMQogICAgIGxvYWRwIENvZGVC
bG9jazo6bV92bVt0MV0sIHQyCiAgICAgbHNoaWZ0cCAzLCB0MAorICAgIGFkZGkgbWF4RnJhbWVF
eHRlbnRGb3JTbG93UGF0aENhbGwsIHQwCiAgICAgc3VicCBjZnIsIHQwLCB0MAogICAgIGJwYmVx
IFZNOjptX2pzU3RhY2tMaW1pdFt0Ml0sIHQwLCAuc3RhY2tIZWlnaHRPSwogCiAgICAgIyBTdGFj
ayBoZWlnaHQgY2hlY2sgZmFpbGVkIC0gbmVlZCB0byBjYWxsIGEgc2xvd19wYXRoLgogICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc3RhY2tfY2hlY2spCisgICAgYnBlcSB0MSwgMCwgLnN0YWNrSGVp
Z2h0T0sKKyAgICBtb3ZlIHQxLCBjZnIKIC5zdGFja0hlaWdodE9LOgogZW5kCiAKQEAgLTQyMywy
NSArNTk3LDY5IEBAIG1hY3JvIGFsbG9jYXRlSlNPYmplY3QoYWxsb2NhdG9yLCBzdHJ1Y3R1cmUs
IHJlc3VsdCwgc2NyYXRjaDEsIHNsb3dDYXNlKQogZW5kCiAKIG1hY3JvIGRvUmV0dXJuKCkKLSAg
ICBsb2FkcCBSZXR1cm5QQ1tjZnJdLCB0MgotICAgIGxvYWRwIENhbGxlckZyYW1lW2Nmcl0sIGNm
cgotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQyKQorICAgIHJlc3RvcmVD
YWxsZXJQQ0FuZENGUigpCiAgICAgcmV0CiBlbmQKIAotaWYgQ19MT09QCi1lbHNlCiAjIHN0dWIg
dG8gY2FsbCBpbnRvIEphdmFTY3JpcHQgb3IgTmF0aXZlIGZ1bmN0aW9ucwotIyBFbmNvZGVkSlNW
YWx1ZSBjYWxsVG9KYXZhU2NyaXB0KHZvaWQqIGNvZGUsIEV4ZWNTdGF0ZSoqIHZtLCBQcm90b0Nh
bGxGcmFtZSogcHJvdG9GcmFtZSwgUmVnaXN0ZXIqIHRvcE9mU3RhY2spCi0jIEVuY29kZWRKU1Zh
bHVlIGNhbGxUb05hdGl2ZUZ1bmN0aW9uKHZvaWQqIGNvZGUsIEV4ZWNTdGF0ZSoqIHZtLCBQcm90
b0NhbGxGcmFtZSogcHJvdG9GcmFtZSwgUmVnaXN0ZXIqIHRvcE9mU3RhY2spCisjIEVuY29kZWRK
U1ZhbHVlIGNhbGxUb0phdmFTY3JpcHQodm9pZCogY29kZSwgRXhlY1N0YXRlKiogdm1Ub3BDYWxs
RnJhbWUsIFByb3RvQ2FsbEZyYW1lKiBwcm90b0ZyYW1lKQorIyBFbmNvZGVkSlNWYWx1ZSBjYWxs
VG9OYXRpdmVGdW5jdGlvbih2b2lkKiBjb2RlLCBFeGVjU3RhdGUqKiB2bVRvcENhbGxGcmFtZSwg
UHJvdG9DYWxsRnJhbWUqIHByb3RvRnJhbWUpCiAjIE5vdGUsIGlmIHRoZXNlIHN0dWJzIG9yIG9u
ZSBvZiB0aGVpciByZWxhdGVkIG1hY3JvcyBhcmUgY2hhbmdlZCwgbWFrZSB0aGUKICMgZXF1aXZh
bGVudCBjaGFuZ2VzIGluIGppdC9KSVRTdHVic1g4Ni5oIGFuZC9vciBqaXQvSklUU3R1YnNNU1ZD
NjQuYXNtCisKK2lmIENfTE9PUAorX2xsaW50X2NhbGxfdG9famF2YXNjcmlwdDoKK2Vsc2UKIF9j
YWxsVG9KYXZhU2NyaXB0OgotICAgIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlSmF2YVNjcmlwdENh
bGwsIGRvUmV0dXJuRnJvbUphdmFTY3JpcHQpCitlbmQKKyAgICBkb0NhbGxUb0phdmFTY3JpcHQo
bWFrZUphdmFTY3JpcHRDYWxsKQogCisKK2lmIENfTE9PUAorX2xsaW50X2NhbGxfdG9fbmF0aXZl
X2Z1bmN0aW9uOgorZWxzZQogX2NhbGxUb05hdGl2ZUZ1bmN0aW9uOgotICAgIGRvQ2FsbFRvSmF2
YVNjcmlwdChtYWtlSG9zdEZ1bmN0aW9uQ2FsbCwgZG9SZXR1cm5Gcm9tSG9zdEZ1bmN0aW9uKQog
ZW5kCisgICAgZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VIb3N0RnVuY3Rpb25DYWxsKQorCisKK2lm
IENfTE9PUAorZWxzZQorIyB2b2lkIHNhbml0aXplU3RhY2tGb3JWTUltcGwoVk0qIHZtKQorX3Nh
bml0aXplU3RhY2tGb3JWTUltcGw6CisgICAgaWYgWDg2XzY0CisgICAgICAgIGNvbnN0IHZtID0g
dDQKKyAgICAgICAgY29uc3QgYWRkcmVzcyA9IHQxCisgICAgICAgIGNvbnN0IHplcm9WYWx1ZSA9
IHQwCisgICAgZWxzaWYgWDg2CisgICAgICAgIGNvbnN0IHZtID0gdDIKKyAgICAgICAgY29uc3Qg
YWRkcmVzcyA9IHQxCisgICAgICAgIGNvbnN0IHplcm9WYWx1ZSA9IHQwCisgICAgZWxzZQorICAg
ICAgICBjb25zdCB2bSA9IGEwCisgICAgICAgIGNvbnN0IGFkZHJlc3MgPSB0MQorICAgICAgICBj
b25zdCB6ZXJvVmFsdWUgPSB0MgorICAgIGVuZAorCisgICAgaWYgWDg2CisgICAgICAgIGxvYWRw
IDRbc3BdLCB2bQorICAgIGVuZAorCisgICAgbG9hZHAgVk06Om1fbGFzdFN0YWNrVG9wW3ZtXSwg
YWRkcmVzcworICAgIGJwYmVxIHNwLCBhZGRyZXNzLCAuemVyb0ZpbGxEb25lCisKKyAgICBtb3Zl
IDAsIHplcm9WYWx1ZQorLnplcm9GaWxsTG9vcDoKKyAgICBzdG9yZXAgemVyb1ZhbHVlLCBbYWRk
cmVzc10KKyAgICBhZGRwIFB0clNpemUsIGFkZHJlc3MKKyAgICBicGEgc3AsIGFkZHJlc3MsIC56
ZXJvRmlsbExvb3AKKworLnplcm9GaWxsRG9uZToKKyAgICBtb3ZlIHNwLCBhZGRyZXNzCisgICAg
c3RvcmVwIGFkZHJlc3MsIFZNOjptX2xhc3RTdGFja1RvcFt2bV0KKyAgICByZXQKK2VuZAorCiAK
ICMgSW5kaWNhdGUgdGhlIGJlZ2lubmluZyBvZiBMTEludC4KIF9sbGludF9iZWdpbjoKQEAgLTcz
MSw4ICs5NDksMTUgQEAgX2xsaW50X29wX2NvbnN0cnVjdDoKIAogX2xsaW50X29wX2NhbGxfdmFy
YXJnczoKICAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfc2l6ZV9hbmRfYWxsb2NfZnJhbWVfZm9yX3ZhcmFyZ3MpCisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfc2l6ZV9mcmFtZV9mb3JfdmFyYXJncykKICAgICBicmFuY2hJZkV4
Y2VwdGlvbihfbGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZSkKKyAgICAjIGNh
bGxlZUZyYW1lIGluIHQxCisgICAgaWYgSlNWQUxVRTY0CisgICAgICAgIG1vdmUgdDEsIHNwCisg
ICAgZWxzZQorICAgICAgICAjIFRoZSBjYWxsZWVGcmFtZSBpcyBub3Qgc3RhY2sgYWxpZ25lZCwg
bW92ZSBkb3duIGJ5IENhbGxlckZyYW1lQW5kUENTaXplIHRvIGFsaWduCisgICAgICAgIHN1YnAg
dDEsIENhbGxlckZyYW1lQW5kUENTaXplLCBzcAorICAgIGVuZAogICAgIHNsb3dQYXRoRm9yQ2Fs
bChfbGxpbnRfc2xvd19wYXRoX2NhbGxfdmFyYXJncykKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5jcHAKaW5kZXggNDgxNDhjNmY0
NTRmOTI5NGMyMDM4YzIzZjdkY2IyYmM5YmQ0ZjRjMi4uOWJjNTVkZTI0NDZjMmRiNzg5YzA2N2E1
MTc4YzA0YzFiMTFhZDllYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEyLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTAsNiArOTAsMTIgQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzo6TExJbnQ7CiAjZGVmaW5lIE9GRkxJTkVfQVNNX0JFR0lOCiAjZGVmaW5lIE9GRkxJTkVf
QVNNX0VORAogCisjaWYgRU5BQkxFKE9QQ09ERV9UUkFDSU5HKQorI2RlZmluZSBUUkFDRV9PUENP
REUob3Bjb2RlKSBkYXRhTG9nRigiICAgb3AgJXNcbiIsICNvcGNvZGUpCisjZWxzZQorI2RlZmlu
ZSBUUkFDRV9PUENPREUob3Bjb2RlKQorI2VuZGlmCisKIC8vIFRvIGtlZXAgY29tcGlsZXJzIGhh
cHB5IGluIGNhc2Ugb2YgdW51c2VkIGxhYmVscywgZm9yY2UgdXNhZ2Ugb2YgdGhlIGxhYmVsOgog
I2RlZmluZSBVU0VfTEFCRUwobGFiZWwpIFwKICAgICBkbyB7IFwKQEAgLTk3LDcgKzEwMyw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M6OkxMSW50OwogICAgICAgICAgICAgZ290byBsYWJlbDsgXAog
ICAgIH0gd2hpbGUgKGZhbHNlKQogCi0jZGVmaW5lIE9GRkxJTkVfQVNNX09QQ09ERV9MQUJFTChv
cGNvZGUpIERFRklORV9PUENPREUob3Bjb2RlKSBVU0VfTEFCRUwob3Bjb2RlKTsKKyNkZWZpbmUg
T0ZGTElORV9BU01fT1BDT0RFX0xBQkVMKG9wY29kZSkgREVGSU5FX09QQ09ERShvcGNvZGUpIFVT
RV9MQUJFTChvcGNvZGUpOyBUUkFDRV9PUENPREUob3Bjb2RlKTsKIAogI2lmIEVOQUJMRShDT01Q
VVRFRF9HT1RPX09QQ09ERVMpCiAjZGVmaW5lIE9GRkxJTkVfQVNNX0dMVUVfTEFCRUwobGFiZWwp
ICBsYWJlbDogVVNFX0xBQkVMKGxhYmVsKTsKQEAgLTIxMiwxMCArMjE4LDE0IEBAIHN0cnVjdCBD
TG9vcFJlZ2lzdGVyIHsKICNlbmRpZiAvLyAhQ1BVKEJJR19FTkRJQU4pCiAjZW5kaWYgLy8gIVVT
RShKU1ZBTFVFNjQpCiAKKyAgICAgICAgaW50cHRyX3QqIGlwOwogICAgICAgICBpbnQ4X3QqIGk4
cDsKICAgICAgICAgdm9pZCogdnA7CisgICAgICAgIENhbGxGcmFtZSogY2FsbEZyYW1lOwogICAg
ICAgICBFeGVjU3RhdGUqIGV4ZWNTdGF0ZTsKICAgICAgICAgdm9pZCogaW5zdHJ1Y3Rpb247Cisg
ICAgICAgIFZNKiB2bTsKKyAgICAgICAgUHJvdG9DYWxsRnJhbWUqIHByb3RvQ2FsbEZyYW1lOwog
ICAgICAgICBOYXRpdmVGdW5jdGlvbiBuYXRpdmVGdW5jOwogI2lmIFVTRShKU1ZBTFVFNjQpCiAg
ICAgICAgIGludDY0X3QgaTY0OwpAQCAtMjI2LDYgKzIzNiwxMiBAQCBzdHJ1Y3QgQ0xvb3BSZWdp
c3RlciB7CiAgICAgICAgIE9wY29kZSBvcGNvZGU7CiAgICAgfTsKIAorICAgIG9wZXJhdG9yIEV4
ZWNTdGF0ZSooKSB7IHJldHVybiBleGVjU3RhdGU7IH0KKyAgICBvcGVyYXRvciBJbnN0cnVjdGlv
biooKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PEluc3RydWN0aW9uKj4oaW5zdHJ1Y3Rpb24p
OyB9CisgICAgb3BlcmF0b3IgVk0qKCkgeyByZXR1cm4gdm07IH0KKyAgICBvcGVyYXRvciBQcm90
b0NhbGxGcmFtZSooKSB7IHJldHVybiBwcm90b0NhbGxGcmFtZTsgfQorICAgIG9wZXJhdG9yIFJl
Z2lzdGVyKigpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UmVnaXN0ZXIqPih2cCk7IH0KKwog
I2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgaW5saW5lIHZvaWQgY2xlYXJIaWdoV29yZCgpIHsgaTMy
cGFkZGluZyA9IDA7IH0KICNlbHNlCkBAIC0yMzcsNyArMjUzLDcgQEAgc3RydWN0IENMb29wUmVn
aXN0ZXIgewogLy8gVGhlIGxsaW50IEMrKyBpbnRlcnByZXRlciBsb29wOgogLy8KIAotSlNWYWx1
ZSBDTG9vcDo6ZXhlY3V0ZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwgT3Bjb2RlIGVudHJ5T3Bjb2Rl
LCBib29sIGlzSW5pdGlhbGl6YXRpb25QYXNzKQorSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0ZShPcGNv
ZGVJRCBlbnRyeU9wY29kZUlELCB2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgVk0qIHZtLCBQcm90
b0NhbGxGcmFtZSogcHJvdG9DYWxsRnJhbWUsIGJvb2wgaXNJbml0aWFsaXphdGlvblBhc3MpCiB7
CiAgICAgI2RlZmluZSBDQVNUIHJlaW50ZXJwcmV0X2Nhc3QKICAgICAjZGVmaW5lIFNJR05fQklU
MzIoeCkgKCh4KSAmIDB4ODAwMDAwMDApCkBAIC0yNzIsOCArMjg4LDYgQEAgSlNWYWx1ZSBDTG9v
cDo6ZXhlY3V0ZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwgT3Bjb2RlIGVudHJ5T3Bjb2RlLCBib29s
IGlzSW5pdGlhbGkKICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAgICB9CiAKLSAgICBBU1NF
UlQoY2FsbEZyYW1lLT52bSgpLnRvcENhbGxGcmFtZSA9PSBjYWxsRnJhbWUpOwotCiAgICAgLy8g
RGVmaW5lIHRoZSBwc2V1ZG8gcmVnaXN0ZXJzIHVzZWQgYnkgdGhlIExMSU5UIEMgTG9vcCBiYWNr
ZW5kOgogICAgIEFTU0VSVChzaXplb2YoQ0xvb3BSZWdpc3RlcikgPT0gc2l6ZW9mKGludHB0cl90
KSk7CiAKQEAgLTMwOCw1MCArMzIyLDQ4IEBAIEpTVmFsdWUgQ0xvb3A6OmV4ZWN1dGUoQ2FsbEZy
YW1lKiBjYWxsRnJhbWUsIE9wY29kZSBlbnRyeU9wY29kZSwgYm9vbCBpc0luaXRpYWxpCiAgICAg
Ly8gMi4gMzIgYml0IHJlc3VsdCB2YWx1ZXMgd2lsbCBiZSBpbiB0aGUgbG93IDMyLWJpdCBvZiB0
MC4KICAgICAvLyAzLiA2NCBiaXQgcmVzdWx0IHZhbHVlcyB3aWxsIGJlIGluIHQwLgogCi0gICAg
Q0xvb3BSZWdpc3RlciB0MCwgdDEsIHQyLCB0MzsKKyAgICBDTG9vcFJlZ2lzdGVyIHQwLCB0MSwg
dDIsIHQzLCB0NSwgc3AsIGNmciwgbHIsIHBjOwogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgQ0xv
b3BSZWdpc3RlciByQmFzZVBDLCB0YWdUeXBlTnVtYmVyLCB0YWdNYXNrOworICAgIENMb29wUmVn
aXN0ZXIgcGNCYXNlLCB0YWdUeXBlTnVtYmVyLCB0YWdNYXNrOwogI2VuZGlmCi0gICAgQ0xvb3BS
ZWdpc3RlciByUmV0VlBDOwogICAgIENMb29wRG91YmxlUmVnaXN0ZXIgZDAsIGQxOwogCi0gICAg
Ly8gS2VlcCB0aGUgY29tcGlsZXIgaGFwcHkuIFdlIGRvbid0IHJlYWxseSBuZWVkIHRoaXMsIGJ1
dCB0aGUgY29tcGlsZXIKLSAgICAvLyB3aWxsIGNvbXBsYWluLiBUaGlzIG1ha2VzIHRoZSB3YXJu
aW5nIGdvIGF3YXkuCi0gICAgdDAuaSA9IDA7Ci0gICAgdDEuaSA9IDA7Ci0KLSAgICBWTSogdm0g
PSAmY2FsbEZyYW1lLT52bSgpOwotCi0gICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBjYWxsRnJh
bWUtPmNvZGVCbG9jaygpOwotICAgIEluc3RydWN0aW9uKiB2UEM7CisgICAgbHIub3Bjb2RlID0g
Z2V0T3Bjb2RlKGxsaW50X3JldHVybl90b19ob3N0KTsKKyAgICBzcC52cCA9IHZtLT5pbnRlcnBy
ZXRlci0+c3RhY2soKS50b3BPZlN0YWNrKCkgKyAxOworICAgIGNmci5jYWxsRnJhbWUgPSB2bS0+
dG9wQ2FsbEZyYW1lOworI2lmbmRlZiBOREVCVUcKKyAgICB2b2lkKiBzdGFydFNQID0gc3AudnA7
CisgICAgQ2FsbEZyYW1lKiBzdGFydENGUiA9IGNmci5jYWxsRnJhbWU7CisjZW5kaWYKIAotICAg
IC8vIHJQQyBpcyBhbiBhbGlhcyBmb3IgdlBDLiBTZXQgdXAgdGhlIGFsaWFzOgotICAgIENMb29w
UmVnaXN0ZXImIHJQQyA9ICpDQVNUPENMb29wUmVnaXN0ZXIqPigmdlBDKTsKLQotI2lmIFVTRShK
U1ZBTFVFMzJfNjQpCi0gICAgdlBDID0gY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigp
OwotI2Vsc2UgLy8gVVNFKEpTVkFMVUU2NCkKLSAgICB2UEMgPSAwOwotICAgIHJCYXNlUEMudnAg
PSBjb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7CisgICAgLy8gSW5pdGlhbGl6ZSB0
aGUgaW5jb21pbmcgYXJncyBmb3IgZG9DYWxsVG9KYXZhU2NyaXB0OgorICAgIHQwLnZwID0gZXhl
Y3V0YWJsZUFkZHJlc3M7CisgICAgdDEudm0gPSB2bTsKKyAgICB0Mi5wcm90b0NhbGxGcmFtZSA9
IHByb3RvQ2FsbEZyYW1lOwogCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAvLyBGb3IgdGhlIEFT
TSBsbGludCwgSklUU3R1YnMgdGFrZXMgY2FyZSBvZiB0aGlzIGluaXRpYWxpemF0aW9uLiBXZSBk
bwogICAgIC8vIGl0IGV4cGxpY2l0bHkgaGVyZSBmb3IgdGhlIEMgbG9vcDoKICAgICB0YWdUeXBl
TnVtYmVyLmkgPSAweEZGRkYwMDAwMDAwMDAwMDA7CiAgICAgdGFnTWFzay5pID0gMHhGRkZGMDAw
MDAwMDAwMDAyOwogI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiAKLSAgICAvLyBjZnIgaXMgYW4g
YWxpYXMgZm9yIGNhbGxGcmFtZS4gU2V0IHVwIHRoaXMgYWxpYXM6Ci0gICAgQ0xvb3BSZWdpc3Rl
ciYgY2ZyID0gKkNBU1Q8Q0xvb3BSZWdpc3Rlcio+KCZjYWxsRnJhbWUpOwotCi0gICAgLy8gU2lt
dWxhdGUgYSBuYXRpdmUgcmV0dXJuIFBDIHdoaWNoIHNob3VsZCBuZXZlciBiZSB1c2VkOgotICAg
IHJSZXRWUEMuaSA9IDB4YmJhZGJlZWY7Ci0KICAgICAvLyBJbnRlcnByZXRlciB2YXJpYWJsZXMg
Zm9yIHZhbHVlIHBhc3NpbmcgYmV0d2VlbiBvcGNvZGVzIGFuZC9vciBoZWxwZXJzOgogICAgIE5h
dGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmMgPSAwOwogICAgIEpTVmFsdWUgZnVuY3Rpb25SZXR1cm5W
YWx1ZTsKLSAgICBPcGNvZGUgb3Bjb2RlOworICAgIE9wY29kZSBvcGNvZGUgPSBnZXRPcGNvZGUo
ZW50cnlPcGNvZGVJRCk7CiAKLSAgICBvcGNvZGUgPSBlbnRyeU9wY29kZTsKKyAgICAjZGVmaW5l
IFBVU0goY2xvb3BSZWcpIFwKKyAgICAgICAgZG8geyBcCisgICAgICAgICAgICBzcC5pcC0tOyBc
CisgICAgICAgICAgICAqc3AuaXAgPSBjbG9vcFJlZy5pOyBcCisgICAgICAgIH0gd2hpbGUgKGZh
bHNlKQorICAgIAorICAgICNkZWZpbmUgUE9QKGNsb29wUmVnKSBcCisgICAgICAgIGRvIHsgXAor
ICAgICAgICAgICAgY2xvb3BSZWcuaSA9ICpzcC5pcDsgXAorICAgICAgICAgICAgc3AuaXArKzsg
XAorICAgICAgICB9IHdoaWxlIChmYWxzZSkKIAogICAgICNpZiBFTkFCTEUoT1BDT0RFX1NUQVRT
KQogICAgICAgICAjZGVmaW5lIFJFQ09SRF9PUENPREVfU1RBVFMoX19vcGNvZGUpIFwKQEAgLTM2
MSw5ICszNzMsOSBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKENhbGxGcmFtZSogY2FsbEZyYW1l
LCBPcGNvZGUgZW50cnlPcGNvZGUsIGJvb2wgaXNJbml0aWFsaQogICAgICNlbmRpZgogCiAgICAg
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgICNkZWZpbmUgRkVUQ0hfT1BDT0RFKCkgdlBD
LT51Lm9wY29kZQorICAgICAgICAjZGVmaW5lIEZFVENIX09QQ09ERSgpIHBjLm9wY29kZQogICAg
ICNlbHNlIC8vIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICNkZWZpbmUgRkVUQ0hfT1BDT0RFKCkg
KmJpdHdpc2VfY2FzdDxPcGNvZGUqPihyQmFzZVBDLmk4cCArIHJQQy5pICogOCkKKyAgICAgICAg
I2RlZmluZSBGRVRDSF9PUENPREUoKSAqYml0d2lzZV9jYXN0PE9wY29kZSo+KHBjQmFzZS5pOHAg
KyBwYy5pICogOCkKICAgICAjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKIAogICAgICNkZWZpbmUg
TkVYVF9JTlNUUlVDVElPTigpIFwKQEAgLTQxMiwxNCArNDI0LDIyIEBAIEpTVmFsdWUgQ0xvb3A6
OmV4ZWN1dGUoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIE9wY29kZSBlbnRyeU9wY29kZSwgYm9vbCBp
c0luaXRpYWxpCiAKICAgICAgICAgI2luY2x1ZGUgIkxMSW50QXNzZW1ibHkuaCIKIAorICAgICAg
ICBPRkZMSU5FX0FTTV9HTFVFX0xBQkVMKGxsaW50X3JldHVybl90b19ob3N0KQorICAgICAgICB7
CisgICAgICAgICAgICBBU1NFUlQoc3RhcnRTUCA9PSBzcC52cCk7CisgICAgICAgICAgICBBU1NF
UlQoc3RhcnRDRlIgPT0gY2ZyLmNhbGxGcmFtZSk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlKHQxLmksIHQwLmkpOyAvLyByZXR1cm5pbmcgSlNWYWx1
ZSh0YWcsIHBheWxvYWQpOworI2Vsc2UKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpkZWNv
ZGUodDAuZW5jb2RlZEpTVmFsdWUpOworI2VuZGlmCisgICAgICAgIH0KKwogICAgICAgICAvLyBJ
biB0aGUgQVNNIGxsaW50LCBnZXRIb3N0Q2FsbFJldHVyblZhbHVlKCkgaXMgYSBwaWVjZSBvZiBn
bHVlCi0gICAgICAgIC8vIGZ1bmN0aW9uIHByb3ZpZGVkIGJ5IHRoZSBKSVQgKHNlZSBkZmcvREZH
T3BlcmF0aW9ucy5jcHApLgorICAgICAgICAvLyBmdW5jdGlvbiBwcm92aWRlZCBieSB0aGUgSklU
IChzZWUgaml0L0pJVE9wZXJhdGlvbnMuY3BwKS4KICAgICAgICAgLy8gV2Ugc2ltdWxhdGUgaXQg
aGVyZSB3aXRoIGEgcHNlZHVvLW9wY29kZSBoYW5kbGVyLgogICAgICAgICBPRkZMSU5FX0FTTV9H
TFVFX0xBQkVMKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IC8vIFRoZSBBU00gcGFydCBwb3BzIHRoZSBmcmFtZToKLSAgICAgICAgICAgIGNhbGxGcmFtZSA9
IGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKTsKLQogICAgICAgICAgICAgLy8gVGhlIHBhcnQgaW4g
Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUoKToKICAgICAgICAgICAgIEpTVmFs
dWUgcmVzdWx0ID0gdm0tPmhvc3RDYWxsUmV0dXJuVmFsdWU7CiAjaWYgVVNFKEpTVkFMVUUzMl82
NCkKQEAgLTQyOCwxMiArNDQ4LDggQEAgSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0ZShDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgT3Bjb2RlIGVudHJ5T3Bjb2RlLCBib29sIGlzSW5pdGlhbGkKICNlbHNlCiAg
ICAgICAgICAgICB0MC5lbmNvZGVkSlNWYWx1ZSA9IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwog
I2VuZGlmCi0gICAgICAgICAgICBnb3RvIGRvUmV0dXJuSGVscGVyOwotICAgICAgICB9Ci0KLSAg
ICAgICAgT0ZGTElORV9BU01fR0xVRV9MQUJFTChyZXR1cm5Gcm9tSmF2YVNjcmlwdCkKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIHZtLT5leGNlcHRpb24oKTsKKyAgICAgICAgICAgIG9w
Y29kZSA9IGxyLm9wY29kZTsKKyAgICAgICAgICAgIERJU1BBVENIX09QQ09ERSgpOwogICAgICAg
ICB9CiAKICNpZiAhRU5BQkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykKQEAgLTQ0Myw1NSArNDU5
LDYgQEAgSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0ZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwgT3Bjb2Rl
IGVudHJ5T3Bjb2RlLCBib29sIGlzSW5pdGlhbGkKIAogICAgIH0gLy8gRU5EIGJ5dGVjb2RlIGhh
bmRsZXIgY2FzZXMuCiAKLSAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIC8vIEJ5dGVjb2RlIGhl
bHBlcnM6Ci0KLSAgICBkb1JldHVybkhlbHBlcjogewotICAgICAgICBBU1NFUlQoISFjYWxsRnJh
bWUpOwotICAgICAgICBpZiAoY2FsbEZyYW1lLT5pc1ZNRW50cnlTZW50aW5lbCgpKSB7Ci0jaWYg
VVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKHQxLmksIHQwLmkp
OyAvLyByZXR1cm5pbmcgSlNWYWx1ZSh0YWcsIHBheWxvYWQpOwotI2Vsc2UKLSAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodDAuZW5jb2RlZEpTVmFsdWUpOwotI2VuZGlmCi0gICAg
ICAgIH0KLQotICAgICAgICAvLyBUaGUgbm9ybWFsIEFTTSBsbGludCBjYWxsIGltcGxlbWVudGF0
aW9uIHJldHVybnMgdG8gdGhlIGNhbGxlciBhcwotICAgICAgICAvLyByZWNvcmRlZCBpbiByUmV0
VlBDLCBhbmQgdGhlIGNhbGxlciB3b3VsZCBmZXRjaCB0aGUgcmV0dXJuIGFkZHJlc3MKLSAgICAg
ICAgLy8gZnJvbSBBcmd1bWVudENvdW50LnRhZygpIChzZWUgdGhlIGRpc3BhdGNoQWZ0ZXJDYWxs
KCkgbWFjcm8gdXNlZCBpbgotICAgICAgICAvLyB0aGUgY2FsbFRhcmdldEZ1bmN0aW9uKCkgbWFj
cm8gaW4gdGhlIGxsaW50IGFzbSBmaWxlcykuCi0gICAgICAgIC8vCi0gICAgICAgIC8vIEZvciB0
aGUgQyBsb29wLCB3ZSBkb24ndCBoYXZlIHRoZSBKSVQgc3R1YiB0byBkbyB0aGlzIHdvcmsgZm9y
IHVzLiBTbywKLSAgICAgICAgLy8gd2UganVtcCB0byBsbGludF9nZW5lcmljX3JldHVybl9wb2lu
dC4KLQotICAgICAgICB2UEMgPSBjYWxsRnJhbWUtPmN1cnJlbnRWUEMoKTsKLQotI2lmIFVTRShK
U1ZBTFVFNjQpCi0gICAgICAgIC8vIEJhc2VkIG9uIExvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20n
cyBkaXNwYXRjaEFmdGVyQ2FsbCgpOgotCi0gICAgICAgIC8vIFdoZW4gcmV0dXJuaW5nIGZyb20g
YSBuYXRpdmUgdHJhbXBvbGluZSBjYWxsLCB1bmxpa2UgdGhlIGFzc2VtYmx5Ci0gICAgICAgIC8v
IExMSW50LCB3ZSBjYW4ndCBzaW1wbHkgcmV0dXJuIHRvIHRoZSBjYWxsZXIuIEluIG91ciBjYXNl
LCB3ZSBncmFiCi0gICAgICAgIC8vIHRoZSBjYWxsZXIncyBWUEMgYW5kIHJlc3VtZSBleGVjdXRp
b24gdGhlcmUuIEhvd2V2ZXIsIHRoZSBjYWxsZXIncwotICAgICAgICAvLyBWUEMgcmV0dXJuZWQg
YnkgY2FsbEZyYW1lLT5jdXJyZW50VlBDKCkgaXMgaW4gdGhlIGZvcm0gb2YgdGhlIHJlYWwKLSAg
ICAgICAgLy8gYWRkcmVzcyBvZiB0aGUgdGFyZ2V0IGJ5dGVjb2RlLCBidXQgdGhlIDY0LWJpdCBs
bGludCBleHBlY3RzIHRoZQotICAgICAgICAvLyBWUEMgdG8gYmUgYSBieXRlY29kZSBvZmZzZXQu
IEhlbmNlLCB3ZSBuZWVkIHRvIG1hcCBpdCBiYWNrIHRvIGEKLSAgICAgICAgLy8gYnl0ZWNvZGUg
b2Zmc2V0IGJlZm9yZSB3ZSBkaXNwYXRjaCB2aWEgdGhlIHVzdWFsIGRpc3BhdGNoIG1lY2hhbmlz
bQotICAgICAgICAvLyBpLmUuIE5FWFRfSU5TVFJVQ1RJT04oKToKLQotICAgICAgICBjb2RlQmxv
Y2sgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpOwotICAgICAgICBBU1NFUlQoY29kZUJsb2NrKTsK
LSAgICAgICAgclBDLnZwID0gY2FsbEZyYW1lLT5jdXJyZW50VlBDKCk7Ci0gICAgICAgIHJQQy5p
ID0gclBDLmk4cCAtIHJlaW50ZXJwcmV0X2Nhc3Q8aW50OF90Kj4oY29kZUJsb2NrLT5pbnN0cnVj
dGlvbnMoKS5iZWdpbigpKTsKLSAgICAgICAgclBDLmkgPj49IDM7Ci0KLSAgICAgICAgckJhc2VQ
Qy52cCA9IGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKTsKLSNlbmRpZiAvLyBVU0Uo
SlNWQUxVRTY0KQotCi0gICAgICAgIGdvdG8gbGxpbnRfZ2VuZXJpY19yZXR1cm5fcG9pbnQ7Ci0K
LSAgICB9IC8vIEVORCBkb1JldHVybkhlbHBlci4KLQotCiAjaWYgRU5BQkxFKENPTVBVVEVEX0dP
VE9fT1BDT0RFUykKICAgICAvLyBLZWVwIHRoZSBjb21waWxlciBoYXBweSBzbyB0aGF0IGl0IGRv
ZXNuJ3QgY29tcGxhaW4gYWJvdXQgdW51c2VkCiAgICAgLy8gbGFiZWxzIGZvciB0aGUgTExJbnQg
dHJhbXBvbGluZSBnbHVlLiBUaGUgbGFiZWxzIGFyZSBhdXRvbWF0aWNhbGx5CkBAIC01MjMsMTIg
KzQ5MCwxMiBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKENhbGxGcmFtZSogY2FsbEZyYW1lLCBP
cGNvZGUgZW50cnlPcGNvZGUsIGJvb2wgaXNJbml0aWFsaQogCiAvLyBUaGVzZSBhcmUgZm9yIGJ1
aWxkaW5nIGFuIGludGVycHJldGVyIGZyb20gZ2VuZXJhdGVkIGFzc2VtYmx5IGNvZGU6CiAjaWYg
Q1BVKFg4Nl82NCkgJiYgQ09NUElMRVIoQ0xBTkcpCi0jZGVmaW5lIE9GRkxJTkVfQVNNX0JFR0lO
ICAgYXNtICggXAorI2RlZmluZSBPRkZMSU5FX0FTTV9CRUdJTiAgIGFzbSAoICAgICAgICAgICAg
ICAgIFwKICAgICAiLmNmaV9zdGFydHByb2NcbiIKIAotI2RlZmluZSBPRkZMSU5FX0FTTV9FTkQg
ICAgIFwKLSAgICAiLmNmaV9lbmRwcm9jXG4iIFwKLSk7CisjZGVmaW5lIE9GRkxJTkVfQVNNX0VO
RCAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICIuY2ZpX2VuZHByb2NcbiIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwog
I2Vsc2UKICNkZWZpbmUgT0ZGTElORV9BU01fQkVHSU4gICBhc20gKAogI2RlZmluZSBPRkZMSU5F
X0FTTV9FTkQgICAgICk7CkBAIC01NTEsOSArNTE4LDkgQEAgSlNWYWx1ZSBDTG9vcDo6ZXhlY3V0
ZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwgT3Bjb2RlIGVudHJ5T3Bjb2RlLCBib29sIGlzSW5pdGlh
bGkKICAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhsYWJlbCkgIlxuIiAgICAgICAgIFwKICAg
ICBISURFX1NZTUJPTChsYWJlbCkgIlxuIiAgICAgICAgICAgICAgICAgICAgIFwKICAgICBTWU1C
T0xfU1RSSU5HKGxhYmVsKSAiOlxuIiAgICAgICAgICAgICAgICAgIFwKLSAgICAiLmNmaV9kZWZf
Y2ZhIHJicCwgMFxuIiAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAiLmNmaV9vZmZzZXQgMTYs
IDhcbiIgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAiLmNmaV9vZmZzZXQgNiwgMFxuIgor
ICAgICIuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2XG4iICAgICAgICAgICAgICAgICAgXAorICAgICIu
Y2ZpX29mZnNldCAlcmJwLCAtMTZcbiIgICAgICAgICAgICAgICAgICAgXAorICAgICIuY2ZpX2Rl
Zl9jZmFfcmVnaXN0ZXIgcmJwXG4iCiAjZWxzZQogI2RlZmluZSBPRkZMSU5FX0FTTV9HTE9CQUxf
TEFCRUwobGFiZWwpICAgICAgICAgXAogICAgICIudGV4dFxuIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCBmMWE0NzBlYWVhYjkwMWMzYTc0
MWM5MDllM2E1MzY2MDliNDhmYWI0Li5jODhmZmNlYmQ0NmI4MDVhMDkxMGFkMTYzMTMxMjliMDFl
NWQxZTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChD
KSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29w
eXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAyLDkgKzEwMiwxMSBA
QCBtYWNybyBjQ2FsbDIoZnVuY3Rpb24sIGFyZzEsIGFyZzIpCiAgICAgICAgIG1vdmUgYXJnMiwg
YTEKICAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgIGVsc2lmIFg4NgotICAgICAgICBwb2tlIGFy
ZzEsIDAKLSAgICAgICAgcG9rZSBhcmcyLCAxCisgICAgICAgIHN1YnAgOCwgc3AKKyAgICAgICAg
cHVzaCBhcmcyCisgICAgICAgIHB1c2ggYXJnMQogICAgICAgICBjYWxsIGZ1bmN0aW9uCisgICAg
ICAgIGFkZHAgMTYsIHNwCiAgICAgZWxzaWYgU0g0CiAgICAgICAgIHNldGFyZ3MgYXJnMSwgYXJn
MgogICAgICAgICBjYWxsIGZ1bmN0aW9uCkBAIC0xMjQsMTEgKzEyNiwxMiBAQCBtYWNybyBjQ2Fs
bDQoZnVuY3Rpb24sIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpCiAgICAgICAgIG1vdmUgYXJnNCwg
YTMKICAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgIGVsc2lmIFg4NgotICAgICAgICBwb2tlIGFy
ZzEsIDAKLSAgICAgICAgcG9rZSBhcmcyLCAxCi0gICAgICAgIHBva2UgYXJnMywgMgotICAgICAg
ICBwb2tlIGFyZzQsIDMKKyAgICAgICAgcHVzaCBhcmc0CisgICAgICAgIHB1c2ggYXJnMworICAg
ICAgICBwdXNoIGFyZzIKKyAgICAgICAgcHVzaCBhcmcxCiAgICAgICAgIGNhbGwgZnVuY3Rpb24K
KyAgICAgICAgYWRkcCAxNiwgc3AKICAgICBlbHNpZiBTSDQKICAgICAgICAgc2V0YXJncyBhcmcx
LCBhcmcyLCBhcmczLCBhcmc0CiAgICAgICAgIGNhbGwgZnVuY3Rpb24KQEAgLTE0Miw4NSArMTQ1
LDQyIEBAIGVuZAogbWFjcm8gY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQogICAgIGNDYWxsMihzbG93
UGF0aCwgY2ZyLCBQQykKICAgICBtb3ZlIHQwLCBQQwotICAgIG1vdmUgdDEsIGNmcgotZW5kCi0K
LW1hY3JvIGZ1bmN0aW9uUHJvbG9ndWUoZXh0cmFTdGFja1NwYWNlKQotICAgIGlmIFg4NgotICAg
ICAgICBwdXNoIGNmcgotICAgICAgICBtb3ZlIHNwLCBjZnIKLSAgICBlbmQKLSAgICBwdXNoQ2Fs
bGVlU2F2ZXMKLSAgICBpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdfVFJBRElUSU9OQUwgb3IgTUlQ
UwotICAgICAgICBwdXNoIGNmcgotICAgICAgICBwdXNoIGxyCi0gICAgZW5kCi0gICAgc3VicCBl
eHRyYVN0YWNrU3BhY2UsIHNwCiBlbmQKIAotbWFjcm8gZnVuY3Rpb25FcGlsb2d1ZShleHRyYVN0
YWNrU3BhY2UpCi0gICAgYWRkcCBleHRyYVN0YWNrU3BhY2UsIHNwCi0gICAgaWYgQVJNIG9yIEFS
TXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIE1JUFMKLSAgICAgICAgcG9wIGxyCi0gICAgICAg
IHBvcCBjZnIKLSAgICBlbmQKLSAgICBwb3BDYWxsZWVTYXZlcworbWFjcm8gZG9DYWxsVG9KYXZh
U2NyaXB0KG1ha2VDYWxsKQogICAgIGlmIFg4NgotICAgICAgICBwb3AgY2ZyCi0gICAgZW5kCi1l
bmQKKyAgICAgICAgY29uc3QgZW50cnkgPSB0NAorICAgICAgICBjb25zdCB2bSA9IHQzCisgICAg
ICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gdDUKIAotbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0
KG1ha2VDYWxsLCBkb1JldHVybikKLSAgICBpZiBYODYKLSAgICAgICAgY29uc3QgZW50cnkgPSB0
NQotICAgICAgICBjb25zdCB2bVRvcENhbGxGcmFtZSA9IHQyCi0gICAgICAgIGNvbnN0IHByb3Rv
Q2FsbEZyYW1lID0gdDQKLQotICAgICAgICBjb25zdCBleHRyYVN0YWNrU3BhY2UgPSAyOAogICAg
ICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQwCiAgICAgICAgIGNvbnN0IHByZXZpb3VzUEMgPSB0
MQogICAgICAgICBjb25zdCB0ZW1wMSA9IHQwICMgU2FtZSBhcyBwcmV2aW91c0NGUgogICAgICAg
ICBjb25zdCB0ZW1wMiA9IHQxICMgU2FtZSBhcyBwcmV2aW91c1BDCi0gICAgICAgIGNvbnN0IHRl
bXAzID0gdDIgIyBzYW1lIGFzIHZtVG9wQ2FsbEZyYW1lCi0gICAgICAgIGNvbnN0IHRlbXA0ID0g
dDMKLSAgICBlbHNpZiBBUk0gb3IgQVJNdjdfVFJBRElUSU9OQUwKLSAgICAgICAgY29uc3QgZW50
cnkgPSBhMAotICAgICAgICBjb25zdCB2bVRvcENhbGxGcmFtZSA9IGExCi0gICAgICAgIGNvbnN0
IHByb3RvQ2FsbEZyYW1lID0gYTIKLSAgICAgICAgY29uc3QgdG9wT2ZTdGFjayA9IGEzCi0KLSAg
ICAgICAgY29uc3QgZXh0cmFTdGFja1NwYWNlID0gMTYKLSAgICAgICAgY29uc3QgcHJldmlvdXND
RlIgPSB0MwotICAgICAgICBjb25zdCBwcmV2aW91c1BDID0gbHIKLSAgICAgICAgY29uc3QgdGVt
cDEgPSB0MyAjIFNhbWUgYXMgcHJldmlvdXNDRlIKLSAgICAgICAgY29uc3QgdGVtcDIgPSBhMyAj
IFNhbWUgYXMgdG9wT2ZTdGFjawotICAgICAgICBjb25zdCB0ZW1wMyA9IHQ0Ci0gICAgICAgIGNv
bnN0IHRlbXA0ID0gdDUKLSAgICBlbHNpZiBBUk12NworICAgICAgICBjb25zdCB0ZW1wMyA9IHQy
CisgICAgICAgIGNvbnN0IHRlbXA0ID0gdDMgIyBzYW1lIGFzIHZtCisgICAgZWxzaWYgQVJNIG9y
IEFSTXY3IG9yIEFSTXY3X1RSQURJVElPTkFMIG9yIENfTE9PUAogICAgICAgICBjb25zdCBlbnRy
eSA9IGEwCi0gICAgICAgIGNvbnN0IHZtVG9wQ2FsbEZyYW1lID0gYTEKKyAgICAgICAgY29uc3Qg
dm0gPSBhMQogICAgICAgICBjb25zdCBwcm90b0NhbGxGcmFtZSA9IGEyCi0gICAgICAgIGNvbnN0
IHRvcE9mU3RhY2sgPSBhMwogCi0gICAgICAgIGNvbnN0IGV4dHJhU3RhY2tTcGFjZSA9IDI4CiAg
ICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0gdDMKICAgICAgICAgY29uc3QgcHJldmlvdXNQQyA9
IGxyCiAgICAgICAgIGNvbnN0IHRlbXAxID0gdDMgIyBTYW1lIGFzIHByZXZpb3VzQ0ZSCi0gICAg
ICAgIGNvbnN0IHRlbXAyID0gYTMgIyBTYW1lIGFzIHRvcE9mU3RhY2sKLSAgICAgICAgY29uc3Qg
dGVtcDMgPSB0NAotICAgICAgICBjb25zdCB0ZW1wNCA9IHQ1CisgICAgICAgIGNvbnN0IHRlbXAy
ID0gdDQKKyAgICAgICAgY29uc3QgdGVtcDMgPSB0NQorICAgICAgICBjb25zdCB0ZW1wNCA9IHQ0
ICMgU2FtZSBhcyB0ZW1wMgogICAgIGVsc2lmIE1JUFMKICAgICAgICAgY29uc3QgZW50cnkgPSBh
MAogICAgICAgICBjb25zdCB2bVRvcENhbGxGcmFtZSA9IGExCiAgICAgICAgIGNvbnN0IHByb3Rv
Q2FsbEZyYW1lID0gYTIKICAgICAgICAgY29uc3QgdG9wT2ZTdGFjayA9IGEzCiAKLSAgICAgICAg
Y29uc3QgZXh0cmFTdGFja1NwYWNlID0gMzYKICAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0
MgogICAgICAgICBjb25zdCBwcmV2aW91c1BDID0gbHIKICAgICAgICAgY29uc3QgdGVtcDEgPSB0
MwotICAgICAgICBjb25zdCB0ZW1wMiA9IHQ0Ci0gICAgICAgIGNvbnN0IHRlbXAzID0gdDUKKyAg
ICAgICAgY29uc3QgdGVtcDIgPSB0NQorICAgICAgICBjb25zdCB0ZW1wMyA9IHQ0CiAgICAgICAg
IGNvbnN0IHRlbXA0ID0gdDYKICAgICBlbHNpZiBTSDQKICAgICAgICAgY29uc3QgZW50cnkgPSBh
MApAQCAtMjI4LDcgKzE4OCw2IEBAIG1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwg
ZG9SZXR1cm4pCiAgICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gYTIKICAgICAgICAgY29u
c3QgdG9wT2ZTdGFjayA9IGEzCiAKLSAgICAgICAgY29uc3QgZXh0cmFTdGFja1NwYWNlID0gMjAK
ICAgICAgICAgY29uc3QgcHJldmlvdXNDRlIgPSB0MwogICAgICAgICBjb25zdCBwcmV2aW91c1BD
ID0gbHIKICAgICAgICAgY29uc3QgdGVtcDEgPSB0MyAjIFNhbWUgYXMgcHJldmlvdXNDRlIKQEAg
LTIzNyw0OSArMTk2LDc4IEBAIG1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwgZG9S
ZXR1cm4pCiAgICAgICAgIGNvbnN0IHRlbXA0ID0gdDkKICAgICBlbmQKIAorICAgIGNhbGxUb0ph
dmFTY3JpcHRQcm9sb2d1ZSgpCisKICAgICBpZiBYODYKLSAgICAgICAgbG9hZHAgW3NwXSwgcHJl
dmlvdXNQQwotICAgICAgICBtb3ZlIGNmciwgcHJldmlvdXNDRlIKLSAgICBlbmQKLSAgICBmdW5j
dGlvblByb2xvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKLSAgICBpZiBYODYKLSAgICAgICAgbG9hZHAg
ZXh0cmFTdGFja1NwYWNlKzIwW3NwXSwgZW50cnkKLSAgICAgICAgbG9hZHAgZXh0cmFTdGFja1Nw
YWNlKzI0W3NwXSwgdm1Ub3BDYWxsRnJhbWUKLSAgICAgICAgbG9hZHAgZXh0cmFTdGFja1NwYWNl
KzI4W3NwXSwgcHJvdG9DYWxsRnJhbWUKLSAgICAgICAgbG9hZHAgZXh0cmFTdGFja1NwYWNlKzMy
W3NwXSwgY2ZyCisgICAgICAgIGxvYWRwIDM2W3NwXSwgdm0KKyAgICAgICAgbG9hZHAgMzJbc3Bd
LCBlbnRyeQogICAgIGVsc2UKICAgICAgICAgbW92ZSBjZnIsIHByZXZpb3VzQ0ZSCi0gICAgICAg
IG1vdmUgdG9wT2ZTdGFjaywgY2ZyCiAgICAgZW5kCiAKLSAgICBzdWJwIChDYWxsRnJhbWVIZWFk
ZXJTbG90cy0xKSo4LCBjZnIKLSAgICBzdG9yZXAgMCwgQXJndW1lbnRDb3VudCs0W2Nmcl0KKyAg
ICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wMiwgMHhiYWQwZGMwMSkKKworICAgICMg
VGhlIHN0YWNrIHJlc2VydmVkIHpvbmUgZW5zdXJlcyB0aGF0IHdlIGhhdmUgYWRlcXVhdGUgc3Bh
Y2UgZm9yIHRoZQorICAgICMgVk1FbnRyeVNlbnRpbmVsRnJhbWUuIFByb2NlZWQgd2l0aCBhbGxv
Y2F0aW5nIGFuZCBpbml0aWFsaXppbmcgdGhlCisgICAgIyBzZW50aW5lbCBmcmFtZS4KKyAgICBt
b3ZlIHNwLCBjZnIKKyAgICBzdWJwIENhbGxGcmFtZUhlYWRlclNsb3RzICogOCwgY2ZyCiAgICAg
c3RvcmVwIDAsIEFyZ3VtZW50Q291bnRbY2ZyXQotICAgIHN0b3JlcCAwLCBDYWxsZWUrNFtjZnJd
Ci0gICAgc3RvcmVwIHZtVG9wQ2FsbEZyYW1lLCBDYWxsZWVbY2ZyXQotICAgIGxvYWRwIFt2bVRv
cENhbGxGcmFtZV0sIHRlbXA0Ci0gICAgc3RvcmVwIDAsIFNjb3BlQ2hhaW4rNFtjZnJdCi0gICAg
c3RvcmVwIHRlbXA0LCBTY29wZUNoYWluW2Nmcl0KLSAgICBzdG9yZXAgMCwgQ29kZUJsb2NrKzRb
Y2ZyXQorICAgIHN0b3JlcCB2bSwgQ2FsbGVlW2Nmcl0KKyAgICBsb2FkcCBWTTo6dG9wQ2FsbEZy
YW1lW3ZtXSwgdGVtcDIKKyAgICBzdG9yZXAgdGVtcDIsIFNjb3BlQ2hhaW5bY2ZyXQogICAgIHN0
b3JlcCAxLCBDb2RlQmxvY2tbY2ZyXQorICAgIGlmIFg4NgorICAgICAgICBsb2FkcCAyOFtzcF0s
IHByZXZpb3VzUEMKKyAgICAgICAgbG9hZHAgMjRbc3BdLCBwcmV2aW91c0NGUgorICAgIGVuZAog
ICAgIHN0b3JlcCBwcmV2aW91c1BDLCBSZXR1cm5QQ1tjZnJdCiAgICAgc3RvcmVwIHByZXZpb3Vz
Q0ZSLCBDYWxsZXJGcmFtZVtjZnJdCi0gICAgbW92ZSBjZnIsIHRlbXAxCisKKyAgICBpZiBYODYK
KyAgICAgICAgbG9hZHAgNDBbc3BdLCBwcm90b0NhbGxGcmFtZQorICAgIGVuZAogCiAgICAgbG9h
ZGkgUHJvdG9DYWxsRnJhbWU6OnBhZGRlZEFyZ0NvdW50W3Byb3RvQ2FsbEZyYW1lXSwgdGVtcDIK
ICAgICBhZGRwIENhbGxGcmFtZUhlYWRlclNsb3RzLCB0ZW1wMiwgdGVtcDIKICAgICBsc2hpZnRw
IDMsIHRlbXAyCi0gICAgc3VicCB0ZW1wMiwgY2ZyCi0gICAgc3RvcmVwIHRlbXAxLCBDYWxsZXJG
cmFtZVtjZnJdCisgICAgc3VicCBjZnIsIHRlbXAyLCB0ZW1wMQorCisgICAgIyBFbnN1cmUgdGhh
dCB3ZSBoYXZlIGVub3VnaCBhZGRpdGlvbmFsIHN0YWNrIGNhcGFjaXR5IGZvciB0aGUgaW5jb21p
bmcgYXJncywKKyAgICAjIGFuZCB0aGUgZnJhbWUgZm9yIHRoZSBKUyBjb2RlIHdlJ3JlIGV4ZWN1
dGluZy4gV2UgbmVlZCB0byBkbyB0aGlzIGNoZWNrCisgICAgIyBiZWZvcmUgd2Ugc3RhcnQgY29w
eWluZyB0aGUgYXJncyBmcm9tIHRoZSBwcm90b0NhbGxGcmFtZSBiZWxvdy4KKyAgICBicGFlcSB0
ZW1wMSwgVk06Om1fanNTdGFja0xpbWl0W3ZtXSwgLnN0YWNrSGVpZ2h0T0sKKworICAgIHN1YnAg
Y2ZyLCA4LCBzcAorCisgICAgaWYgQ19MT09QCisgICAgICAgIG1vdmUgZW50cnksIHRlbXAyCisg
ICAgICAgIG1vdmUgdm0sIHRlbXAzCisgICAgICAgIGNsb29wQ2FsbFNsb3dQYXRoIF9sbGludF9z
dGFja19jaGVja19hdF92bV9lbnRyeSwgdm0sIHRlbXAxCisgICAgICAgIGJwZXEgdDAsIDAsIC5z
dGFja0NoZWNrRmFpbGVkCisgICAgICAgIG1vdmUgdGVtcDIsIGVudHJ5CisgICAgICAgIG1vdmUg
dGVtcDMsIHZtCisgICAgICAgIGptcCAuc3RhY2tIZWlnaHRPSworCisuc3RhY2tDaGVja0ZhaWxl
ZDoKKyAgICAgICAgbW92ZSB0ZW1wMiwgZW50cnkKKyAgICAgICAgbW92ZSB0ZW1wMywgdm0KKyAg
ICBlbmQKIAorICAgIGNDYWxsMihfbGxpbnRfdGhyb3dfc3RhY2tfb3ZlcmZsb3dfZXJyb3IsIHZt
LCBwcm90b0NhbGxGcmFtZSkKKyAgICBjYWxsVG9KYXZhU2NyaXB0RXBpbG9ndWUoKQorICAgIHJl
dAorCisuc3RhY2tIZWlnaHRPSzoKKyAgICBtb3ZlIHRlbXAxLCBzcAogICAgIG1vdmUgNSwgdGVt
cDEKIAogLmNvcHlIZWFkZXJMb29wOgogICAgIHN1YmkgMSwgdGVtcDEKLSAgICBsb2FkcCBbcHJv
dG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMKLSAgICBzdG9yZXAgdGVtcDMsIENvZGVCbG9j
a1tjZnIsIHRlbXAxLCA4XQotICAgIGxvYWRwIDRbcHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwg
dGVtcDMKLSAgICBzdG9yZXAgdGVtcDMsIENvZGVCbG9jays0W2NmciwgdGVtcDEsIDhdCisgICAg
bG9hZGkgVGFnT2Zmc2V0W3Byb3RvQ2FsbEZyYW1lLCB0ZW1wMSwgOF0sIHRlbXAzCisgICAgc3Rv
cmVpIHRlbXAzLCBUYWdPZmZzZXQgKyBDb2RlQmxvY2tbc3AsIHRlbXAxLCA4XQorICAgIGxvYWRp
IFBheWxvYWRPZmZzZXRbcHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMKKyAgICBzdG9y
ZWkgdGVtcDMsIFBheWxvYWRPZmZzZXQgKyBDb2RlQmxvY2tbc3AsIHRlbXAxLCA4XQogICAgIGJ0
aW56IHRlbXAxLCAuY29weUhlYWRlckxvb3AKIAogICAgIGxvYWRpIFByb3RvQ2FsbEZyYW1lOjph
cmdDb3VudEFuZENvZGVPcmlnaW5WYWx1ZVtwcm90b0NhbGxGcmFtZV0sIHRlbXAyCkBAIC0yODgs
MTIgKzI3NiwxMCBAQCBtYWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0dXJu
KQogICAgIHN1YmkgMSwgdGVtcDMKIAogICAgIGJpZXEgdGVtcDIsIHRlbXAzLCAuY29weUFyZ3MK
LSAgICBtb3ZlIDAsIHRlbXAxCi0gICAgbW92ZSBVbmRlZmluZWRUYWcsIHRlbXA0CiAuZmlsbEV4
dHJhQXJnc0xvb3A6CiAgICAgc3ViaSAxLCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMSwgVGhpc0Fy
Z3VtZW50T2Zmc2V0KzgrUGF5bG9hZE9mZnNldFtjZnIsIHRlbXAzLCA4XQotICAgIHN0b3JlcCB0
ZW1wNCwgVGhpc0FyZ3VtZW50T2Zmc2V0KzgrVGFnT2Zmc2V0W2NmciwgdGVtcDMsIDhdCisgICAg
c3RvcmVpIFVuZGVmaW5lZFRhZywgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOCArIFRhZ09mZnNldFtz
cCwgdGVtcDMsIDhdCisgICAgc3RvcmVpIDAsIFRoaXNBcmd1bWVudE9mZnNldCArIDggKyBQYXls
b2FkT2Zmc2V0W3NwLCB0ZW1wMywgOF0KICAgICBiaW5lcSB0ZW1wMiwgdGVtcDMsIC5maWxsRXh0
cmFBcmdzTG9vcAogCiAuY29weUFyZ3M6CkBAIC0zMDIsNTIgKzI4OCw4NyBAQCBtYWNybyBkb0Nh
bGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0dXJuKQogLmNvcHlBcmdzTG9vcDoKICAgICBi
dGl6IHRlbXAyLCAuY29weUFyZ3NEb25lCiAgICAgc3ViaSAxLCB0ZW1wMgotICAgIGxvYWRwIFBh
eWxvYWRPZmZzZXRbdGVtcDEsIHRlbXAyLCA4XSwgdGVtcDMKLSAgICBsb2FkcCBUYWdPZmZzZXRb
dGVtcDEsIHRlbXAyLCA4XSwgdGVtcDQKLSAgICBzdG9yZXAgdGVtcDMsIFRoaXNBcmd1bWVudE9m
ZnNldCs4K1BheWxvYWRPZmZzZXRbY2ZyLCB0ZW1wMiwgOF0KLSAgICBzdG9yZXAgdGVtcDQsIFRo
aXNBcmd1bWVudE9mZnNldCs4K1RhZ09mZnNldFtjZnIsIHRlbXAyLCA4XQorICAgIGxvYWRpIFRh
Z09mZnNldFt0ZW1wMSwgdGVtcDIsIDhdLCB0ZW1wMworICAgIHN0b3JlaSB0ZW1wMywgVGhpc0Fy
Z3VtZW50T2Zmc2V0ICsgOCArIFRhZ09mZnNldFtzcCwgdGVtcDIsIDhdCisgICAgbG9hZGkgUGF5
bG9hZE9mZnNldFt0ZW1wMSwgdGVtcDIsIDhdLCB0ZW1wMworICAgIHN0b3JlaSB0ZW1wMywgVGhp
c0FyZ3VtZW50T2Zmc2V0ICsgOCArIFBheWxvYWRPZmZzZXRbc3AsIHRlbXAyLCA4XQogICAgIGpt
cCAuY29weUFyZ3NMb29wCiAKIC5jb3B5QXJnc0RvbmU6Ci0gICAgaWYgWDg2Ci0gICAgICAgIGxv
YWRwIGV4dHJhU3RhY2tTcGFjZSsyNFtzcF0sIHZtVG9wQ2FsbEZyYW1lCi0gICAgZW5kCi0gICAg
c3RvcmVwIGNmciwgW3ZtVG9wQ2FsbEZyYW1lXQorICAgIHN0b3JlcCBzcCwgVk06OnRvcENhbGxG
cmFtZVt2bV0KIAotICAgIG1ha2VDYWxsKGVudHJ5LCB0ZW1wMSkKKyAgICBtYWtlQ2FsbChlbnRy
eSwgdGVtcDEsIHRlbXAyKQogCiAgICAgYnBlcSBDb2RlQmxvY2tbY2ZyXSwgMSwgLmNhbGxlZUZy
YW1lUG9wcGVkCiAgICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgY2ZyCiAKIC5jYWxsZWVGcmFt
ZVBvcHBlZDoKLSAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdGVtcDMgIyBWTS50b3BDYWxsRnJhbWUK
LSAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHRlbXA0Ci0gICAgc3RvcmVwIHRlbXA0LCBbdGVt
cDNdCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRlbXAzICMgVk0KKyAgICBsb2FkcCBTY29wZUNo
YWluW2Nmcl0sIHRlbXA0ICMgcHJldmlvdXMgdG9wQ2FsbEZyYW1lCisgICAgc3RvcmVwIHRlbXA0
LCBWTTo6dG9wQ2FsbEZyYW1lW3RlbXAzXQogCi0gICAgZG9SZXR1cm4oZXh0cmFTdGFja1NwYWNl
KQorICAgIGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1ZSgpCisgICAgcmV0CiBlbmQKIAotbWFjcm8g
bWFrZUphdmFTY3JpcHRDYWxsKGVudHJ5LCB0ZW1wKQotICAgIGNhbGwgZW50cnkKK21hY3JvIG1h
a2VKYXZhU2NyaXB0Q2FsbChlbnRyeSwgdGVtcCwgdW51c2VkKQorICAgIGFkZHAgQ2FsbGVyRnJh
bWVBbmRQQ1NpemUsIHNwCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDIsIDB4YmFk
MGRjMDIpCisgICAgaWYgQ19MT09QCisgICAgICAgIGNsb29wQ2FsbEpTRnVuY3Rpb24gZW50cnkK
KyAgICBlbHNlCisgICAgICAgIGNhbGwgZW50cnkKKyAgICBlbmQKKyAgICBjaGVja1N0YWNrUG9p
bnRlckFsaWdubWVudCh0MiwgMHhiYWQwZGMwMykKKyAgICBzdWJwIENhbGxlckZyYW1lQW5kUENT
aXplLCBzcAogZW5kCiAKLW1hY3JvIG1ha2VIb3N0RnVuY3Rpb25DYWxsKGVudHJ5LCB0ZW1wKQot
ICAgIG1vdmUgZW50cnksIHRlbXAKLSAgICBpZiBYODYKLSAgICAgICAgIyBQdXQgY2ZyIG9uIHN0
YWNrIGFzIGFyZzAsIGFsc28gcHV0IGl0IGluIGVjeCBmb3IgImZhc3RjYWxsIiB0YXJnZXRzCi0g
ICAgICAgIHBva2UgY2ZyLCAwCi0gICAgICAgIG1vdmUgY2ZyLCB0MgorbWFjcm8gbWFrZUhvc3RG
dW5jdGlvbkNhbGwoZW50cnksIHRlbXAxLCB0ZW1wMikKKyAgICBtb3ZlIGVudHJ5LCB0ZW1wMQor
ICAgIGlmIENfTE9PUAorICAgICAgICBtb3ZlIHNwLCBhMAorICAgICAgICBzdG9yZXAgY2ZyLCBb
c3BdCisgICAgICAgIHN0b3JlcCBsciwgUHRyU2l6ZVtzcF0KKyAgICAgICAgY2xvb3BDYWxsTmF0
aXZlIHRlbXAxCiAgICAgZWxzZQotICAgICAgICBtb3ZlIGNmciwgYTAKKyAgICAgICAgaWYgWDg2
CisgICAgICAgICAgICAjIFB1dCBjYWxsZWUgZnJhbWUgcG9pbnRlciBvbiBzdGFjayBhcyBhcmcw
LCBhbHNvIHB1dCBpdCBpbiBlY3ggZm9yICJmYXN0Y2FsbCIgdGFyZ2V0cworICAgICAgICAgICAg
bW92ZSAwLCB0ZW1wMgorICAgICAgICAgICAgbW92ZSB0ZW1wMiwgNFtzcF0gIyBwdXQgMCBpbiBS
ZXR1cm5QQworICAgICAgICAgICAgbW92ZSBjZnIsIFtzcF0gIyBwdXQgY2FsbGVyIGZyYW1lIHBv
aW50ZXIgaW50byBjYWxsZWUgZnJhbWUgc2luY2UgY2FsbGVlIHByb2xvZ3VlIGNhbid0CisgICAg
ICAgICAgICBtb3ZlIHNwLCB0MiAjIHQyIGlzIGVjeAorICAgICAgICAgICAgcHVzaCB0ZW1wMiAj
IFB1c2ggZHVtbXkgYXJnMQorICAgICAgICAgICAgcHVzaCB0MgorICAgICAgICBlbHNlCisgICAg
ICAgICAgICBtb3ZlIHNwLCBhMAorICAgICAgICAgICAgYWRkcCBDYWxsZXJGcmFtZUFuZFBDU2l6
ZSwgc3AKKyAgICAgICAgZW5kCisgICAgICAgIGNhbGwgdGVtcDEKKyAgICAgICAgaWYgWDg2Cisg
ICAgICAgICAgICBhZGRwIDgsIHNwCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHN1YnAgQ2Fs
bGVyRnJhbWVBbmRQQ1NpemUsIHNwCisgICAgICAgIGVuZAogICAgIGVuZAotICAgIGNhbGwgdGVt
cAogZW5kCiAKLW1hY3JvIGRvUmV0dXJuRnJvbUphdmFTY3JpcHQoZXh0cmFTdGFja1NwYWNlKQot
X3JldHVybkZyb21KYXZhU2NyaXB0OgotICAgIGZ1bmN0aW9uRXBpbG9ndWUoZXh0cmFTdGFja1Nw
YWNlKQorX2hhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uOgorICAgIGxvYWRwIFNjb3BlQ2hhaW4gKyBQ
YXlsb2FkT2Zmc2V0W2Nmcl0sIHQzCisgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCisgICAg
bG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MworICAg
IGxvYWRwIFZNOjpjYWxsRnJhbWVGb3JUaHJvd1t0M10sIGNmcgorCisgICAgIyBTbyBmYXIsIHdl
J3ZlIHVud291bmQgdGhlIHN0YWNrIHRvIHRoZSBmcmFtZSBqdXN0IGJlbG93IHRoZSBzZW50aW5l
bCBmcmFtZS4KKyAgICAjIFdlIG5lZWQgdG8gcG9wIHRvIHRoZSBzZW50aW5lbCBmcmFtZSBhbmQg
ZG8gdGhlIG5lY2Vzc2FyeSBjbGVhbiB1cCBmb3IKKyAgICAjIHJldHVybmluZyB0byB0aGUgY2Fs
bGVyIEMgZnJhbWUuCisgICAgbG9hZHAgQ2FsbGVyRnJhbWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0s
IGNmcgorCisgICAgbG9hZHAgQ2FsbGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MyAjIFZNCisg
ICAgbG9hZHAgU2NvcGVDaGFpbiArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDUgIyBwcmV2aW91cyB0
b3BDYWxsRnJhbWUKKyAgICBzdG9yZXAgdDUsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCisKKyAgICBj
YWxsVG9KYXZhU2NyaXB0RXBpbG9ndWUoKQogICAgIHJldAotZW5kCiAKIG1hY3JvIGRvUmV0dXJu
RnJvbUhvc3RGdW5jdGlvbihleHRyYVN0YWNrU3BhY2UpCiAgICAgZnVuY3Rpb25FcGlsb2d1ZShl
eHRyYVN0YWNrU3BhY2UpCkBAIC0zNzcsMTQgKzM5OCwxMiBAQCBlbmQKIG1hY3JvIGNhbGxDYWxs
U2xvd1BhdGgoc2xvd1BhdGgsIGFjdGlvbikKICAgICBzdG9yZXAgUEMsIEFyZ3VtZW50Q291bnQg
KyBUYWdPZmZzZXRbY2ZyXQogICAgIGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQQykKLSAgICBtb3Zl
IHQxLCBjZnIKICAgICBhY3Rpb24odDApCiBlbmQKIAogbWFjcm8gY2FsbFdhdGNoZG9nVGltZXJI
YW5kbGVyKHRocm93SGFuZGxlcikKICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBUYWdP
ZmZzZXRbY2ZyXQogICAgIGNDYWxsMihfbGxpbnRfc2xvd19wYXRoX2hhbmRsZV93YXRjaGRvZ190
aW1lciwgY2ZyLCBQQykKLSAgICBtb3ZlIHQxLCBjZnIKICAgICBidHBueiB0MCwgdGhyb3dIYW5k
bGVyCiAgICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdLCBQQwogZW5kCkBA
IC0zOTUsOCArNDE0LDggQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQogICAgICAg
ICBtYWNybyAoKQogICAgICAgICAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zm
c2V0W2Nmcl0KICAgICAgICAgICAgIGNDYWxsMihfbGxpbnRfbG9vcF9vc3IsIGNmciwgUEMpCi0g
ICAgICAgICAgICBtb3ZlIHQxLCBjZnIKICAgICAgICAgICAgIGJ0cHogdDAsIC5yZWNvdmVyCisg
ICAgICAgICAgICBtb3ZlIHQxLCBzcAogICAgICAgICAgICAgam1wIHQwCiAgICAgICAgIC5yZWNv
dmVyOgogICAgICAgICAgICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdLCBQ
QwpAQCAtNTUzLDE4ICs1NzIsMzQgQEAgZW5kCiAjIEVudHJ5cG9pbnRzIGludG8gdGhlIGludGVy
cHJldGVyCiAKICMgRXhwZWN0cyB0aGF0IENvZGVCbG9jayBpcyBpbiB0MSwgd2hpY2ggaXMgd2hh
dCBwcm9sb2d1ZSgpIGxlYXZlcyBiZWhpbmQuCi1tYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9u
ZUxhYmVsLCBzbG93X3BhdGgpCittYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBz
bG93UGF0aCkKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudFtjZnJdLCB0
MAogICAgIGJpYWVxIHQwLCBDb2RlQmxvY2s6Om1fbnVtUGFyYW1ldGVyc1t0MV0sIGRvbmVMYWJl
bAotICAgIGNDYWxsMihzbG93X3BhdGgsIGNmciwgUEMpICAgIyBUaGlzIHNsb3dfcGF0aCBoYXMg
YSBzaW1wbGUgcHJvdG9jb2w6IHQwID0gMCA9PiBubyBlcnJvciwgdDAgIT0gMCA9PiBlcnJvcgot
ICAgIGJ0aXogdDAsIC5pc0FyaXR5Rml4dXBOZWVkZWQKKyAgICBjQ2FsbDIoc2xvd1BhdGgsIGNm
ciwgUEMpICAgIyBUaGlzIHNsb3dQYXRoIGhhcyBhIHNpbXBsZSBwcm90b2NvbDogdDAgPSAwID0+
IG5vIGVycm9yLCB0MCAhPSAwID0+IGVycm9yCisgICAgYnRpeiB0MCwgLm5vRXJyb3IKICAgICBt
b3ZlIHQxLCBjZnIgICAjIHQxIGNvbnRhaW5zIGNhbGxlciBmcmFtZQogICAgIGptcCBfbGxpbnRf
dGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQogCi0uaXNBcml0eUZpeHVwTmVlZGVkOgor
Lm5vRXJyb3I6CisgICAgIyB0MSBwb2ludHMgdG8gQXJpdHlDaGVja0RhdGEuCisgICAgbG9hZHAg
Q29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YTo6dGh1bmtUb0NhbGxbdDFdLCB0MgorICAg
IGJ0cHogdDIsIC5wcm9jZWVkSW5saW5lCisgICAgCisgICAgbG9hZHAgQ29tbW9uU2xvd1BhdGhz
OjpBcml0eUNoZWNrRGF0YTo6cmV0dXJuUENbdDFdLCB0NQorICAgIGxvYWRwIENvbW1vblNsb3dQ
YXRoczo6QXJpdHlDaGVja0RhdGE6OnBhZGRlZFN0YWNrU3BhY2VbdDFdLCB0MAorICAgIGNhbGwg
dDIKKyAgICBpZiBBU1NFUlRfRU5BQkxFRAorICAgICAgICBsb2FkcCBSZXR1cm5QQ1tjZnJdLCB0
MAorICAgICAgICBsb2FkcCBbdDBdLCB0MAorICAgIGVuZAorICAgIGptcCAuY29udGludWUKKwor
LnByb2NlZWRJbmxpbmU6CisgICAgbG9hZGkgQ29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0
YTo6cGFkZGVkU3RhY2tTcGFjZVt0MV0sIHQxCiAgICAgYnRpeiB0MSwgLmNvbnRpbnVlCiAKLSAg
ICAvLyBNb3ZlIGZyYW1lIHVwICJ0MSIgc2xvdHMKKyAgICAvLyBNb3ZlIGZyYW1lIHVwICJ0MSAq
IDIiIHNsb3RzCisgICAgbHNoaWZ0cCAxLCB0MQogICAgIG5lZ2kgdDEKICAgICBtb3ZlIGNmciwg
dDMKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudFtjZnJdLCB0MgpAQCAt
NTg5LDYgKzYyNCw3IEBAIG1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNsb3df
cGF0aCkKIAogICAgIGxzaGlmdHAgMywgdDEKICAgICBhZGRwIHQxLCBjZnIKKyAgICBhZGRwIHQx
LCBzcAogLmNvbnRpbnVlOgogICAgICMgUmVsb2FkIENvZGVCbG9jayBhbmQgUEMsIHNpbmNlIHRo
ZSBzbG93X3BhdGggY2xvYmJlcmVkIGl0LgogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MQpA
QCAtNTk2LDcgKzYzMiw2IEBAIG1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNs
b3dfcGF0aCkKICAgICBqbXAgZG9uZUxhYmVsCiBlbmQKIAotCiBtYWNybyBicmFuY2hJZkV4Y2Vw
dGlvbihsYWJlbCkKICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCiAgICAgYW5kcCBNYXJr
ZWRCbG9ja01hc2ssIHQzCkBAIC02MTEsNiArNjQ2LDcgQEAgZW5kCiAKIF9sbGludF9vcF9lbnRl
cjoKICAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQo
dDIsIDB4ZGVhZDAwZTEpCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQyICAgICAgICAgICAg
ICAgIC8vIHQyPENvZGVCbG9jaz4gPSBjZnIuQ29kZUJsb2NrCiAgICAgbG9hZGkgQ29kZUJsb2Nr
OjptX251bVZhcnNbdDJdLCB0MiAgICAgIC8vIHQyPHNpemVfdD4gPSB0MjxDb2RlQmxvY2s+Lm1f
bnVtVmFycwogICAgIGJ0aXogdDIsIC5vcEVudGVyRG9uZQpAQCAtMTkyMCwxMiArMTk1NiwxMSBA
QCBtYWNybyBkb0NhbGwoc2xvd1BhdGgpCiAgICAgc3RvcmVpIHQwLCBTY29wZUNoYWluICsgUGF5
bG9hZE9mZnNldFt0M10KICAgICBsb2FkaSAxMltQQ10sIHQyCiAgICAgc3RvcmVpIFBDLCBBcmd1
bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KLSAgICBzdG9yZXAgY2ZyLCBDYWxsZXJGcmFtZVt0
M10KICAgICBzdG9yZWkgdDIsIEFyZ3VtZW50Q291bnQgKyBQYXlsb2FkT2Zmc2V0W3QzXQogICAg
IHN0b3JlaSBDZWxsVGFnLCBDYWxsZWUgKyBUYWdPZmZzZXRbdDNdCiAgICAgc3RvcmVpIENlbGxU
YWcsIFNjb3BlQ2hhaW4gKyBUYWdPZmZzZXRbdDNdCi0gICAgbW92ZSB0MywgY2ZyCi0gICAgY2Fs
bFRhcmdldEZ1bmN0aW9uKHQxKQorICAgIGFkZHAgQ2FsbGVyRnJhbWVBbmRQQ1NpemUsIHQzCisg
ICAgY2FsbFRhcmdldEZ1bmN0aW9uKHQxLCB0MykKIAogLm9wQ2FsbFNsb3c6CiAgICAgc2xvd1Bh
dGhGb3JDYWxsKHNsb3dQYXRoKQpAQCAtMjAzOSwxMCArMjA3NCwxMiBAQCBfbGxpbnRfb3BfY2F0
Y2g6CiAgICAgIyB0aGUgaW50ZXJwcmV0ZXIncyB0aHJvdyB0cmFtcG9saW5lIChzZWUgX2xsaW50
X3Rocm93X3RyYW1wb2xpbmUpLgogICAgICMgVGhlIHRocm93aW5nIGNvZGUgbXVzdCBoYXZlIGtu
b3duIHRoYXQgd2Ugd2VyZSB0aHJvd2luZyB0byB0aGUgaW50ZXJwcmV0ZXIsCiAgICAgIyBhbmQg
aGF2ZSBzZXQgVk06OnRhcmdldEludGVycHJldGVyUENGb3JUaHJvdy4KLSAgICBsb2FkcCBTY29w
ZUNoYWluW2Nmcl0sIHQzCisgICAgbG9hZHAgU2NvcGVDaGFpbiArIFBheWxvYWRPZmZzZXRbY2Zy
XSwgdDMKICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKICAgICBsb2FkcCBNYXJrZWRCbG9j
azo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCiAgICAgbG9hZHAgVk06OmNhbGxG
cmFtZUZvclRocm93W3QzXSwgY2ZyCisgICAgcmVzdG9yZVN0YWNrUG9pbnRlckFmdGVyQ2FsbCgp
CisKICAgICBsb2FkaSBWTTo6dGFyZ2V0SW50ZXJwcmV0ZXJQQ0ZvclRocm93W3QzXSwgUEMKICAg
ICBsb2FkaSBWTTo6bV9leGNlcHRpb24gKyBQYXlsb2FkT2Zmc2V0W3QzXSwgdDAKICAgICBsb2Fk
aSBWTTo6bV9leGNlcHRpb24gKyBUYWdPZmZzZXRbdDNdLCB0MQpAQCAtMjExNiw3NCArMjE1Myw2
MiBAQCBfbGxpbnRfdGhyb3dfZHVyaW5nX2NhbGxfdHJhbXBvbGluZToKIAogCiBtYWNybyBuYXRp
dmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikKKworICAgIGZ1bmN0
aW9uUHJvbG9ndWUoKQogICAgIHN0b3JlcCAwLCBDb2RlQmxvY2tbY2ZyXQogICAgIGxvYWRwIENh
bGxlckZyYW1lW2Nmcl0sIHQwCiAgICAgbG9hZGkgU2NvcGVDaGFpbiArIFBheWxvYWRPZmZzZXRb
dDBdLCB0MQogICAgIHN0b3JlaSBDZWxsVGFnLCBTY29wZUNoYWluICsgVGFnT2Zmc2V0W2Nmcl0K
ICAgICBzdG9yZWkgdDEsIFNjb3BlQ2hhaW4gKyBQYXlsb2FkT2Zmc2V0W2Nmcl0KICAgICBpZiBY
ODYKLSAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwotICAgICAgICBhbmRwIE1hcmtl
ZEJsb2NrTWFzaywgdDMKLSAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdl
YWtTZXQ6Om1fdm1bdDNdLCB0MworICAgICAgICBzdWJwIDgsIHNwICMgYWxpZ24gc3RhY2sgcG9p
bnRlcgorICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDEKKyAgICAgICAgbG9hZHAgTWFy
a2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDFdLCB0MwogICAgICAgICBzdG9y
ZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQotICAgICAgICBwZWVrIDAsIHQxCi0gICAgICAg
IHN0b3JlcCB0MSwgUmV0dXJuUENbY2ZyXQogICAgICAgICBtb3ZlIGNmciwgdDIgICMgdDIgPSBl
Y3gKLSAgICAgICAgc3VicCAxNiAtIDQsIHNwCisgICAgICAgIHN0b3JlcCB0MiwgW3NwXQogICAg
ICAgICBsb2FkaSBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCiAgICAgICAgIGxvYWRw
IEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0MV0sIHQxCi0gICAgICAgIG1vdmUgdDAsIGNmcgor
ICAgICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MywgMHhkZWFkMDAwMSkKICAgICAg
ICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAgICAgYWRkcCAxNiAt
IDQsIHNwCi0gICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKLSAgICAgICAgYW5kcCBN
YXJrZWRCbG9ja01hc2ssIHQzCi0gICAgICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQg
KyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKLSAgICBlbHNpZiBBUk0gb3IgQVJNdjcgb3IgQVJNdjdf
VFJBRElUSU9OQUwgb3IgTUlQUyBvciBTSDQKICAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJd
LCB0MwogICAgICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKICAgICAgICAgbG9hZHAgTWFy
a2VkQmxvY2s6Om1fd2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDNdLCB0MwotICAgICAgICBzdG9y
ZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1lW3QzXQotICAgICAgICBtb3ZlIHQwLCB0MgotICAgICAg
ICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDMpCi0gICAgICAgIHN0b3JlcCB0Mywg
UmV0dXJuUENbY2ZyXQotICAgICAgICBtb3ZlIGNmciwgdDAKLSAgICAgICAgbG9hZGkgQ2FsbGVl
ICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MQotICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4
ZWN1dGFibGVbdDFdLCB0MQotICAgICAgICBtb3ZlIHQyLCBjZnIKKyAgICAgICAgYWRkcCA4LCBz
cAorICAgIGVsc2lmIEFSTSBvciBBUk12NyBvciBBUk12N19UUkFESVRJT05BTCBvciBDX0xPT1Ag
b3IgTUlQUyBvciBTSDQKKyAgICAgICAgc3VicCA4LCBzcCAjIGFsaWduIHN0YWNrIHBvaW50ZXIK
KyAgICAgICAgIyB0MSBhbHJlYWR5IGNvbnRhaW5zIHRoZSBTY29wZUNoYWluLgorICAgICAgICBh
bmRwIE1hcmtlZEJsb2NrTWFzaywgdDEKKyAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vh
a1NldCArIFdlYWtTZXQ6Om1fdm1bdDFdLCB0MQorICAgICAgICBzdG9yZXAgY2ZyLCBWTTo6dG9w
Q2FsbEZyYW1lW3QxXQogICAgICAgICBpZiBNSVBTIG9yIFNINAotICAgICAgICAgICAgbW92ZSB0
MCwgYTAKKyAgICAgICAgICAgIG1vdmUgY2ZyLCBhMAorICAgICAgICBlbHNlCisgICAgICAgICAg
ICBtb3ZlIGNmciwgdDAKICAgICAgICAgZW5kCi0gICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNl
dFRvRnVuY3Rpb25bdDFdCi0gICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJu
KHQzKQotICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCi0gICAgICAgIGFuZHAgTWFy
a2VkQmxvY2tNYXNrLCB0MwotICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsg
V2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgZWxzaWYgQ19MT09QCi0gICAgICAgIGxvYWRwIFNj
b3BlQ2hhaW5bY2ZyXSwgdDMKLSAgICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCi0gICAg
ICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMK
LSAgICAgICAgc3RvcmVwIGNmciwgVk06OnRvcENhbGxGcmFtZVt0M10KLSAgICAgICAgbW92ZSB0
MCwgdDIKLSAgICAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQzKQotICAgICAg
ICBzdG9yZXAgdDMsIFJldHVyblBDW2Nmcl0KLSAgICAgICAgbW92ZSBjZnIsIHQwCiAgICAgICAg
IGxvYWRpIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKICAgICAgICAgbG9hZHAgSlNG
dW5jdGlvbjo6bV9leGVjdXRhYmxlW3QxXSwgdDEKLSAgICAgICAgbW92ZSB0MiwgY2ZyCi0gICAg
ICAgIGNsb29wQ2FsbE5hdGl2ZSBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KLSAgICAg
ICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDMpCisgICAgICAgIGNoZWNrU3Rh
Y2tQb2ludGVyQWxpZ25tZW50KHQzLCAweGRlYWQwMDAxKQorICAgICAgICBpZiBDX0xPT1AKKyAg
ICAgICAgICAgIGNsb29wQ2FsbE5hdGl2ZSBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0K
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlv
blt0MV0KKyAgICAgICAgZW5kCiAgICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKICAg
ICAgICAgYW5kcCBNYXJrZWRCbG9ja01hc2ssIHQzCiAgICAgICAgIGxvYWRwIE1hcmtlZEJsb2Nr
OjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3QzXSwgdDMKKyAgICAgICAgYWRkcCA4LCBzcAog
ICAgIGVsc2UKICAgICAgICAgZXJyb3IKICAgICBlbmQKLSAgICBiaW5lcSBWTTo6bV9leGNlcHRp
b24gKyBUYWdPZmZzZXRbdDNdLCBFbXB0eVZhbHVlVGFnLCAuZXhjZXB0aW9uCisgICAgCisgICAg
ZnVuY3Rpb25FcGlsb2d1ZSgpCisgICAgYmluZXEgVk06Om1fZXhjZXB0aW9uICsgVGFnT2Zmc2V0
W3QzXSwgRW1wdHlWYWx1ZVRhZywgLmhhbmRsZUV4Y2VwdGlvbgogICAgIHJldAotLmV4Y2VwdGlv
bjoKLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDEpICMgVGhpcyBpcyByZWFs
bHkgb25seSBuZWVkZWQgb24gWDg2Ci0gICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09mZnNl
dFtjZnJdLCBQQwotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfdGhyb3dfZnJvbV9uYXRpdmVfY2Fs
bCkKKworLmhhbmRsZUV4Y2VwdGlvbjoKKyAgICBzdG9yZXAgY2ZyLCBWTTo6dG9wQ2FsbEZyYW1l
W3QzXQorICAgIHJlc3RvcmVTdGFja1BvaW50ZXJBZnRlckNhbGwoKQogICAgIGptcCBfbGxpbnRf
dGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQogZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KaW5kZXggMWJj
NWVkNjhkN2U0NjQ0ZjdkNzEzOTAxYzZhNDUwYzVmOTVjNDgyNS4uZDIwYmI2NTkyZjBhNzRjNjVj
YTQyYmNmMjMwNGIyYzM0ODhmY2NhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KQEAgLTEsNCArMSw0IEBACi0jIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUyLDkg
KzUyLDEwIEBAIG1hY3JvIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKIGVuZAogCiBtYWNybyBjQ2FsbDIo
ZnVuY3Rpb24sIGFyZzEsIGFyZzIpCisgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDQs
IDB4YmFkMGMwMDIpCiAgICAgaWYgWDg2XzY0Ci0gICAgICAgIG1vdmUgYXJnMSwgdDUKLSAgICAg
ICAgbW92ZSBhcmcyLCB0NAorICAgICAgICBtb3ZlIGFyZzEsIHQ0CisgICAgICAgIG1vdmUgYXJn
MiwgdDUKICAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgIGVsc2lmIEFSTTY0CiAgICAgICAgIG1v
dmUgYXJnMSwgdDAKQEAgLTY5LDkgKzcwLDEwIEBAIGVuZAogCiAjIFRoaXMgYmFyZWx5IHdvcmtz
LiBhcmczIGFuZCBhcmc0IHNob3VsZCBwcm9iYWJseSBiZSBpbW1lZGlhdGVzLgogbWFjcm8gY0Nh
bGw0KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0KQorICAgIGNoZWNrU3RhY2tQb2lu
dGVyQWxpZ25tZW50KHQ0LCAweGJhZDBjMDA0KQogICAgIGlmIFg4Nl82NAotICAgICAgICBtb3Zl
IGFyZzEsIHQ1Ci0gICAgICAgIG1vdmUgYXJnMiwgdDQKKyAgICAgICAgbW92ZSBhcmcxLCB0NAor
ICAgICAgICBtb3ZlIGFyZzIsIHQ1CiAgICAgICAgIG1vdmUgYXJnMywgdDEKICAgICAgICAgbW92
ZSBhcmc0LCB0MgogICAgICAgICBjYWxsIGZ1bmN0aW9uCkBAIC04OCw2NiArOTAsNDkgQEAgbWFj
cm8gY0NhbGw0KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0KQogICAgIGVuZAogZW5k
CiAKLW1hY3JvIGZ1bmN0aW9uUHJvbG9ndWUoZXh0cmFTdGFja1NwYWNlKQorbWFjcm8gZG9DYWxs
VG9KYXZhU2NyaXB0KG1ha2VDYWxsKQogICAgIGlmIFg4Nl82NAotICAgICAgICBwdXNoIGNmcgot
ICAgICAgICBtb3ZlIHNwLCBjZnIKLSAgICBlbHNpZiBBUk02NAotICAgICAgICBwdXNoTFJBbmRG
UAotICAgIGVuZAotICAgIHB1c2hDYWxsZWVTYXZlcwotICAgIGlmIFg4Nl82NAotICAgICAgICBz
dWJwIGV4dHJhU3RhY2tTcGFjZSwgc3AKLSAgICBlbmQKLWVuZAotCi1tYWNybyBmdW5jdGlvbkVw
aWxvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKLSAgICBpZiBYODZfNjQKLSAgICAgICAgYWRkcCBleHRy
YVN0YWNrU3BhY2UsIHNwCi0gICAgZW5kCi0gICAgcG9wQ2FsbGVlU2F2ZXMKLSAgICBpZiBYODZf
NjQKLSAgICAgICAgcG9wIGNmcgotICAgIGVsc2lmIEFSTTY0Ci0gICAgICAgIHBvcExSQW5kRlAK
LSAgICBlbmQKLWVuZAotCi1tYWNybyBkb0NhbGxUb0phdmFTY3JpcHQobWFrZUNhbGwsIGRvUmV0
dXJuKQotICAgIGlmIFg4Nl82NAotICAgICAgICBjb25zdCBlbnRyeSA9IHQ1Ci0gICAgICAgIGNv
bnN0IHZtVG9wQ2FsbEZyYW1lID0gdDQKKyAgICAgICAgY29uc3QgZW50cnkgPSB0NAorICAgICAg
ICBjb25zdCB2bSA9IHQ1CiAgICAgICAgIGNvbnN0IHByb3RvQ2FsbEZyYW1lID0gdDEKLSAgICAg
ICAgY29uc3QgdG9wT2ZTdGFjayA9IHQyCiAKLSAgICAgICAgY29uc3QgZXh0cmFTdGFja1NwYWNl
ID0gOAogICAgICAgICBjb25zdCBwcmV2aW91c0NGUiA9IHQwCiAgICAgICAgIGNvbnN0IHByZXZp
b3VzUEMgPSB0NgogICAgICAgICBjb25zdCB0ZW1wMSA9IHQwCiAgICAgICAgIGNvbnN0IHRlbXAy
ID0gdDMKICAgICAgICAgY29uc3QgdGVtcDMgPSB0NgotICAgIGVsc2lmIEFSTTY0CisgICAgZWxz
aWYgQVJNNjQgb3IgQ19MT09QCiAgICAgICAgIGNvbnN0IGVudHJ5ID0gYTAKLSAgICAgICAgY29u
c3Qgdm1Ub3BDYWxsRnJhbWUgPSBhMQorICAgICAgICBjb25zdCB2bSA9IGExCiAgICAgICAgIGNv
bnN0IHByb3RvQ2FsbEZyYW1lID0gYTIKLSAgICAgICAgY29uc3QgdG9wT2ZTdGFjayA9IGEzCiAK
LSAgICAgICAgY29uc3QgZXh0cmFTdGFja1NwYWNlID0gMAotICAgICAgICBjb25zdCBwcmV2aW91
c0NGUiA9IHQ0CisgICAgICAgIGNvbnN0IHByZXZpb3VzQ0ZSID0gdDUKICAgICAgICAgY29uc3Qg
cHJldmlvdXNQQyA9IGxyCiAgICAgICAgIGNvbnN0IHRlbXAxID0gdDMKLSAgICAgICAgY29uc3Qg
dGVtcDIgPSB0NQorICAgICAgICBjb25zdCB0ZW1wMiA9IHQ0CiAgICAgICAgIGNvbnN0IHRlbXAz
ID0gdDYKICAgICBlbmQKIAotICAgIGZ1bmN0aW9uUHJvbG9ndWUoZXh0cmFTdGFja1NwYWNlKQor
ICAgIGNhbGxUb0phdmFTY3JpcHRQcm9sb2d1ZSgpCisKKyAgICBpZiBYODZfNjQKKyAgICAgICAg
bG9hZHAgNyo4W3NwXSwgcHJldmlvdXNQQworICAgICAgICBtb3ZlIDYqOFtzcF0sIHByZXZpb3Vz
Q0ZSCisgICAgZWxzaWYgQVJNNjQKKyAgICAgICAgbW92ZSBjZnIsIHByZXZpb3VzQ0ZSCisgICAg
ZW5kCisKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wMiwgMHhiYWQwZGMwMSkK
IAotICAgIG1vdmUgdG9wT2ZTdGFjaywgY2ZyCi0gICAgc3VicCAoQ2FsbEZyYW1lSGVhZGVyU2xv
dHMtMSkqOCwgY2ZyCisgICAgIyBUaGUgc3RhY2sgcmVzZXJ2ZWQgem9uZSBlbnN1cmVzIHRoYXQg
d2UgaGF2ZSBhZGVxdWF0ZSBzcGFjZSBmb3IgdGhlCisgICAgIyBWTUVudHJ5U2VudGluZWxGcmFt
ZS4gUHJvY2VlZCB3aXRoIGFsbG9jYXRpbmcgYW5kIGluaXRpYWxpemluZyB0aGUKKyAgICAjIHNl
bnRpbmVsIGZyYW1lLgorICAgIG1vdmUgc3AsIGNmcgorICAgIHN1YnAgQ2FsbEZyYW1lSGVhZGVy
U2xvdHMgKiA4LCBjZnIKICAgICBzdG9yZXAgMCwgQXJndW1lbnRDb3VudFtjZnJdCi0gICAgc3Rv
cmVwIHZtVG9wQ2FsbEZyYW1lLCBDYWxsZWVbY2ZyXQotICAgIGxvYWRwIFt2bVRvcENhbGxGcmFt
ZV0sIHRlbXAxCi0gICAgc3RvcmVwIHRlbXAxLCBTY29wZUNoYWluW2Nmcl0KKyAgICBzdG9yZXAg
dm0sIENhbGxlZVtjZnJdCisgICAgbG9hZHAgVk06OnRvcENhbGxGcmFtZVt2bV0sIHRlbXAyCisg
ICAgc3RvcmVwIHRlbXAyLCBTY29wZUNoYWluW2Nmcl0KICAgICBzdG9yZXAgMSwgQ29kZUJsb2Nr
W2Nmcl0KICAgICBpZiBYODZfNjQKICAgICAgICAgbG9hZHAgNyo4W3NwXSwgcHJldmlvdXNQQwpA
QCAtMTU1LDIwICsxNDAsNDUgQEAgbWFjcm8gZG9DYWxsVG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBk
b1JldHVybikKICAgICBlbmQKICAgICBzdG9yZXAgcHJldmlvdXNQQywgUmV0dXJuUENbY2ZyXQog
ICAgIHN0b3JlcCBwcmV2aW91c0NGUiwgQ2FsbGVyRnJhbWVbY2ZyXQotICAgIG1vdmUgY2ZyLCB0
ZW1wMQogCiAgICAgbG9hZGkgUHJvdG9DYWxsRnJhbWU6OnBhZGRlZEFyZ0NvdW50W3Byb3RvQ2Fs
bEZyYW1lXSwgdGVtcDIKICAgICBhZGRwIENhbGxGcmFtZUhlYWRlclNsb3RzLCB0ZW1wMiwgdGVt
cDIKICAgICBsc2hpZnRwIDMsIHRlbXAyCi0gICAgc3VicCB0ZW1wMiwgY2ZyCi0gICAgc3RvcmVw
IHRlbXAxLCBDYWxsZXJGcmFtZVtjZnJdCisgICAgc3VicCBjZnIsIHRlbXAyLCB0ZW1wMQorCisg
ICAgIyBFbnN1cmUgdGhhdCB3ZSBoYXZlIGVub3VnaCBhZGRpdGlvbmFsIHN0YWNrIGNhcGFjaXR5
IGZvciB0aGUgaW5jb21pbmcgYXJncywKKyAgICAjIGFuZCB0aGUgZnJhbWUgZm9yIHRoZSBKUyBj
b2RlIHdlJ3JlIGV4ZWN1dGluZy4gV2UgbmVlZCB0byBkbyB0aGlzIGNoZWNrCisgICAgIyBiZWZv
cmUgd2Ugc3RhcnQgY29weWluZyB0aGUgYXJncyBmcm9tIHRoZSBwcm90b0NhbGxGcmFtZSBiZWxv
dy4KKyAgICBicGFlcSB0ZW1wMSwgVk06Om1fanNTdGFja0xpbWl0W3ZtXSwgLnN0YWNrSGVpZ2h0
T0sKKworICAgIG1vdmUgY2ZyLCBzcAorCisgICAgaWYgQ19MT09QCisgICAgICAgIG1vdmUgZW50
cnksIHRlbXAyCisgICAgICAgIG1vdmUgdm0sIHRlbXAzCisgICAgICAgIGNsb29wQ2FsbFNsb3dQ
YXRoIF9sbGludF9zdGFja19jaGVja19hdF92bV9lbnRyeSwgdm0sIHRlbXAxCisgICAgICAgIGJw
ZXEgdDAsIDAsIC5zdGFja0NoZWNrRmFpbGVkCisgICAgICAgIG1vdmUgdGVtcDIsIGVudHJ5Cisg
ICAgICAgIG1vdmUgdGVtcDMsIHZtCisgICAgICAgIGptcCAuc3RhY2tIZWlnaHRPSworCisuc3Rh
Y2tDaGVja0ZhaWxlZDoKKyAgICAgICAgbW92ZSB0ZW1wMiwgZW50cnkKKyAgICAgICAgbW92ZSB0
ZW1wMywgdm0KKyAgICBlbmQKKworICAgIGNDYWxsMihfbGxpbnRfdGhyb3dfc3RhY2tfb3ZlcmZs
b3dfZXJyb3IsIHZtLCBwcm90b0NhbGxGcmFtZSkKKyAgICBjYWxsVG9KYXZhU2NyaXB0RXBpbG9n
dWUoKQorICAgIHJldAogCisuc3RhY2tIZWlnaHRPSzoKKyAgICBtb3ZlIHRlbXAxLCBzcAogICAg
IG1vdmUgNSwgdGVtcDEKIAogLmNvcHlIZWFkZXJMb29wOgogICAgIHN1YmkgMSwgdGVtcDEKLSAg
ICBsb2FkcCBbcHJvdG9DYWxsRnJhbWUsIHRlbXAxLCA4XSwgdGVtcDMKLSAgICBzdG9yZXAgdGVt
cDMsIENvZGVCbG9ja1tjZnIsIHRlbXAxLCA4XQorICAgIGxvYWRxIFtwcm90b0NhbGxGcmFtZSwg
dGVtcDEsIDhdLCB0ZW1wMworICAgIHN0b3JlcSB0ZW1wMywgQ29kZUJsb2NrW3NwLCB0ZW1wMSwg
OF0KICAgICBidGlueiB0ZW1wMSwgLmNvcHlIZWFkZXJMb29wCiAKICAgICBsb2FkaSBQcm90b0Nh
bGxGcmFtZTo6YXJnQ291bnRBbmRDb2RlT3JpZ2luVmFsdWVbcHJvdG9DYWxsRnJhbWVdLCB0ZW1w
MgpAQCAtMTgwLDcgKzE5MCw3IEBAIG1hY3JvIGRvQ2FsbFRvSmF2YVNjcmlwdChtYWtlQ2FsbCwg
ZG9SZXR1cm4pCiAgICAgbW92ZSBWYWx1ZVVuZGVmaW5lZCwgdGVtcDEKIC5maWxsRXh0cmFBcmdz
TG9vcDoKICAgICBzdWJpIDEsIHRlbXAzCi0gICAgc3RvcmVwIHRlbXAxLCBUaGlzQXJndW1lbnRP
ZmZzZXQrOFtjZnIsIHRlbXAzLCA4XQorICAgIHN0b3JlcSB0ZW1wMSwgVGhpc0FyZ3VtZW50T2Zm
c2V0ICsgOFtzcCwgdGVtcDMsIDhdCiAgICAgYmluZXEgdGVtcDIsIHRlbXAzLCAuZmlsbEV4dHJh
QXJnc0xvb3AKIAogLmNvcHlBcmdzOgpAQCAtMTg5LDUzICsxOTksOTcgQEAgbWFjcm8gZG9DYWxs
VG9KYXZhU2NyaXB0KG1ha2VDYWxsLCBkb1JldHVybikKIC5jb3B5QXJnc0xvb3A6CiAgICAgYnRp
eiB0ZW1wMiwgLmNvcHlBcmdzRG9uZQogICAgIHN1YmkgMSwgdGVtcDIKLSAgICBsb2FkcCBbdGVt
cDEsIHRlbXAyLCA4XSwgdGVtcDMKLSAgICBzdG9yZXAgdGVtcDMsIFRoaXNBcmd1bWVudE9mZnNl
dCs4W2NmciwgdGVtcDIsIDhdCisgICAgbG9hZHEgW3RlbXAxLCB0ZW1wMiwgOF0sIHRlbXAzCisg
ICAgc3RvcmVxIHRlbXAzLCBUaGlzQXJndW1lbnRPZmZzZXQgKyA4W3NwLCB0ZW1wMiwgOF0KICAg
ICBqbXAgLmNvcHlBcmdzTG9vcAogCiAuY29weUFyZ3NEb25lOgotICAgIHN0b3JlcCBjZnIsIFt2
bVRvcENhbGxGcmFtZV0KKyAgICBpZiBBUk02NAorICAgICAgICBtb3ZlIHNwLCB0ZW1wMgorICAg
ICAgICBzdG9yZXAgdGVtcDIsIFZNOjp0b3BDYWxsRnJhbWVbdm1dCisgICAgZWxzZQorICAgICAg
ICBzdG9yZXAgc3AsIFZNOjp0b3BDYWxsRnJhbWVbdm1dCisgICAgZW5kCiAKICAgICBtb3ZlIDB4
ZmZmZjAwMDAwMDAwMDAwMCwgY3NyMQogICAgIGFkZHAgMiwgY3NyMSwgY3NyMgogCisgICAgY2hl
Y2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodGVtcDMsIDB4YmFkMGRjMDIpCisKICAgICBtYWtlQ2Fs
bChlbnRyeSwgdGVtcDEpCiAKKyAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0ZW1wMywg
MHhiYWQwZGMwMykKKwogICAgIGJwZXEgQ29kZUJsb2NrW2Nmcl0sIDEsIC5jYWxsZWVGcmFtZVBv
cHBlZAogICAgIGxvYWRwIENhbGxlckZyYW1lW2Nmcl0sIGNmcgogCiAuY2FsbGVlRnJhbWVQb3Bw
ZWQ6Ci0gICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRlbXAyICMgVk0udG9wQ2FsbEZyYW1lCi0gICAg
bG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0ZW1wMwotICAgIHN0b3JlcCB0ZW1wMywgW3RlbXAyXQor
ICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0ZW1wMiAjIFZNCisgICAgbG9hZHAgU2NvcGVDaGFpbltj
ZnJdLCB0ZW1wMyAjIHByZXZpb3VzIHRvcENhbGxGcmFtZQorICAgIHN0b3JlcCB0ZW1wMywgVk06
OnRvcENhbGxGcmFtZVt0ZW1wMl0KKworICAgIGNoZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHRl
bXAzLCAweGJhZDBkYzA0KQogCi0gICAgZG9SZXR1cm4oZXh0cmFTdGFja1NwYWNlKQorICAgIGlm
IFg4Nl82NAorICAgICAgICBwb3AgdDUKKyAgICBlbmQKKyAgICBjYWxsVG9KYXZhU2NyaXB0RXBp
bG9ndWUoKQorCisgICAgcmV0CiBlbmQKIAorCiBtYWNybyBtYWtlSmF2YVNjcmlwdENhbGwoZW50
cnksIHRlbXApCi0gICAgY2FsbCBlbnRyeQorICAgIGFkZHAgMTYsIHNwCisgICAgaWYgQ19MT09Q
CisgICAgICAgIGNsb29wQ2FsbEpTRnVuY3Rpb24gZW50cnkKKyAgICBlbHNlCisgICAgICAgIGNh
bGwgZW50cnkKKyAgICBlbmQKKyAgICBzdWJwIDE2LCBzcAogZW5kCiAKKwogbWFjcm8gbWFrZUhv
c3RGdW5jdGlvbkNhbGwoZW50cnksIHRlbXApCiAgICAgbW92ZSBlbnRyeSwgdGVtcAogICAgIGlm
IFg4Nl82NAotICAgICAgICBtb3ZlIGNmciwgdDUKKyAgICAgICAgbW92ZSBzcCwgdDQKICAgICBl
bHNpZiBBUk02NCBvciBDX0xPT1AKLSAgICAgICAgbW92ZSBjZnIsIGEwCisgICAgICAgIG1vdmUg
c3AsIGEwCisgICAgZW5kCisgICAgaWYgQ19MT09QCisgICAgICAgIHN0b3JlcCBjZnIsIFtzcF0K
KyAgICAgICAgc3RvcmVwIGxyLCA4W3NwXQorICAgICAgICBjbG9vcENhbGxOYXRpdmUgdGVtcAor
ICAgIGVsc2UKKyAgICAgICAgYWRkcCAxNiwgc3AgCisgICAgICAgIGNhbGwgdGVtcAorICAgICAg
ICBzdWJwIDE2LCBzcAogICAgIGVuZAotICAgIGNhbGwgdGVtcAogZW5kCiAKLW1hY3JvIGRvUmV0
dXJuRnJvbUphdmFTY3JpcHQoZXh0cmFTdGFja1NwYWNlKQotX3JldHVybkZyb21KYXZhU2NyaXB0
OgotICAgIGZ1bmN0aW9uRXBpbG9ndWUoZXh0cmFTdGFja1NwYWNlKQotICAgIHJldAotZW5kCiAK
LW1hY3JvIGRvUmV0dXJuRnJvbUhvc3RGdW5jdGlvbihleHRyYVN0YWNrU3BhY2UpCi0gICAgZnVu
Y3Rpb25FcGlsb2d1ZShleHRyYVN0YWNrU3BhY2UpCitfaGFuZGxlVW5jYXVnaHRFeGNlcHRpb246
CisgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MworICAgIGFuZHAgTWFya2VkQmxvY2tNYXNr
LCB0MworICAgIGxvYWRwIE1hcmtlZEJsb2NrOjptX3dlYWtTZXQgKyBXZWFrU2V0OjptX3ZtW3Qz
XSwgdDMKKyAgICBsb2FkcCBWTTo6Y2FsbEZyYW1lRm9yVGhyb3dbdDNdLCBjZnIKKworICAgICMg
U28gZmFyLCB3ZSd2ZSB1bndvdW5kIHRoZSBzdGFjayB0byB0aGUgZnJhbWUganVzdCBiZWxvdyB0
aGUgc2VudGluZWwgZnJhbWUsIGV4Y2VwdAorICAgICMgaW4gdGhlIGNhc2Ugb2Ygc3RhY2sgb3Zl
cmZsb3cgaW4gdGhlIGZpcnN0IGZ1bmN0aW9uIGNhbGxlZCBmcm9tIGNhbGxUb0phdmFTY3JpcHQu
CisgICAgIyBDaGVjayBpZiB3ZSBuZWVkIHRvIHBvcCB0byB0aGUgc2VudGluZWwgZnJhbWUgYW5k
IGRvIHRoZSBuZWNlc3NhcnkgY2xlYW4gdXAgZm9yCisgICAgIyByZXR1cm5pbmcgdG8gdGhlIGNh
bGxlciBDIGZyYW1lLgorICAgIGJwZXEgQ29kZUJsb2NrW2Nmcl0sIDEsIC5oYW5kbGVVbmNhdWdo
dEV4Y2VwdGlvbkFscmVhZHlJc1NlbnRpbmVsCisgICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwg
Y2ZyCisuaGFuZGxlVW5jYXVnaHRFeGNlcHRpb25BbHJlYWR5SXNTZW50aW5lbDoKKworICAgIGxv
YWRwIENhbGxlZVtjZnJdLCB0MyAjIFZNCisgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0NSAj
IHByZXZpb3VzIHRvcENhbGxGcmFtZQorICAgIHN0b3JlcCB0NSwgVk06OnRvcENhbGxGcmFtZVt0
M10KKworICAgIGNhbGxUb0phdmFTY3JpcHRFcGlsb2d1ZSgpCiAgICAgcmV0Ci1lbmQKKwogCiBt
YWNybyBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCiAgICAgbGVhcCBbUEIsIFBDLCA4XSwgUEMKQEAg
LTI0NCw3ICsyOTgsNiBAQCBlbmQKIAogbWFjcm8gcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCiAg
ICAgbW92ZSB0MCwgUEMKLSAgICBtb3ZlIHQxLCBjZnIKICAgICBtb3ZlIHQzLCBQQgogICAgIHN1
YnAgUEIsIFBDCiAgICAgcnNoaWZ0cCAzLCBQQwpAQCAtMjczLDcgKzMyNiw2IEBAIG1hY3JvIGNh
bGxDYWxsU2xvd1BhdGgoc2xvd1BhdGgsIGFjdGlvbikKICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50
Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQogICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKICAgICBj
Q2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCi0gICAgbW92ZSB0MSwgY2ZyCiAgICAgYWN0aW9uKHQw
KQogZW5kCiAKQEAgLTI4MSw3ICszMzMsNiBAQCBtYWNybyBjYWxsV2F0Y2hkb2dUaW1lckhhbmRs
ZXIodGhyb3dIYW5kbGVyKQogICAgIHN0b3JlaSBQQywgQXJndW1lbnRDb3VudCArIFRhZ09mZnNl
dFtjZnJdCiAgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQogICAgIGNDYWxsMihfbGxpbnRfc2xv
d19wYXRoX2hhbmRsZV93YXRjaGRvZ190aW1lciwgY2ZyLCBQQykKLSAgICBtb3ZlIHQxLCBjZnIK
ICAgICBidHBueiB0MCwgdGhyb3dIYW5kbGVyCiAgICAgbW92ZSB0MywgUEIKICAgICBsb2FkaSBB
cmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCkBAIC0yOTQsOCArMzQ1LDggQEAgbWFj
cm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQogICAgICAgICAgICAgc3RvcmVpIFBDLCBBcmd1
bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KICAgICAgICAgICAgIHByZXBhcmVTdGF0ZUZvckND
YWxsKCkKICAgICAgICAgICAgIGNDYWxsMihfbGxpbnRfbG9vcF9vc3IsIGNmciwgUEMpCi0gICAg
ICAgICAgICBtb3ZlIHQxLCBjZnIKICAgICAgICAgICAgIGJ0cHogdDAsIC5yZWNvdmVyCisgICAg
ICAgICAgICBtb3ZlIHQxLCBzcAogICAgICAgICAgICAgam1wIHQwCiAgICAgICAgIC5yZWNvdmVy
OgogICAgICAgICAgICAgbW92ZSB0MywgUEIKQEAgLTM4NywxOSArNDM4LDM1IEBAIGVuZAogIyBF
bnRyeXBvaW50cyBpbnRvIHRoZSBpbnRlcnByZXRlci4KIAogIyBFeHBlY3RzIHRoYXQgQ29kZUJs
b2NrIGlzIGluIHQxLCB3aGljaCBpcyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KLW1h
Y3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNsb3dfcGF0aCkKK21hY3JvIGZ1bmN0
aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNsb3dQYXRoKQogICAgIGxvYWRpIFBheWxvYWRPZmZz
ZXQgKyBBcmd1bWVudENvdW50W2Nmcl0sIHQwCiAgICAgYmlhZXEgdDAsIENvZGVCbG9jazo6bV9u
dW1QYXJhbWV0ZXJzW3QxXSwgZG9uZUxhYmVsCiAgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQot
ICAgIGNDYWxsMihzbG93X3BhdGgsIGNmciwgUEMpICAgIyBUaGlzIHNsb3dfcGF0aCBoYXMgYSBz
aW1wbGUgcHJvdG9jb2w6IHQwID0gMCA9PiBubyBlcnJvciwgdDAgIT0gMCA9PiBlcnJvcgotICAg
IGJ0aXogdDAsIC5pc0FyaXR5Rml4dXBOZWVkZWQKKyAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwg
UEMpICAgIyBUaGlzIHNsb3dQYXRoIGhhcyB0aGUgcHJvdG9jb2w6IHQwID0gMCA9PiBubyBlcnJv
ciwgdDAgIT0gMCA9PiBlcnJvcgorICAgIGJ0aXogdDAsIC5ub0Vycm9yCiAgICAgbW92ZSB0MSwg
Y2ZyICAgIyB0MSBjb250YWlucyBjYWxsZXIgZnJhbWUKICAgICBqbXAgX2xsaW50X3Rocm93X2Zy
b21fc2xvd19wYXRoX3RyYW1wb2xpbmUKIAotLmlzQXJpdHlGaXh1cE5lZWRlZDoKKy5ub0Vycm9y
OgorICAgICMgdDEgcG9pbnRzIHRvIEFyaXR5Q2hlY2tEYXRhLgorICAgIGxvYWRwIENvbW1vblNs
b3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnRodW5rVG9DYWxsW3QxXSwgdDIKKyAgICBidHB6IHQy
LCAucHJvY2VlZElubGluZQorICAgIAorICAgIGxvYWRwIENvbW1vblNsb3dQYXRoczo6QXJpdHlD
aGVja0RhdGE6OnJldHVyblBDW3QxXSwgdDUKKyAgICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFy
aXR5Q2hlY2tEYXRhOjpwYWRkZWRTdGFja1NwYWNlW3QxXSwgdDAKKyAgICBjYWxsIHQyCisgICAg
aWYgQVNTRVJUX0VOQUJMRUQKKyAgICAgICAgbG9hZHAgUmV0dXJuUENbY2ZyXSwgdDAKKyAgICAg
ICAgbG9hZHAgW3QwXSwgdDAKKyAgICBlbmQKKyAgICBqbXAgLmNvbnRpbnVlCisKKy5wcm9jZWVk
SW5saW5lOgorICAgIGxvYWRpIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGE6OnBhZGRl
ZFN0YWNrU3BhY2VbdDFdLCB0MQogICAgIGJ0aXogdDEsIC5jb250aW51ZQogCi0gICAgLy8gTW92
ZSBmcmFtZSB1cCAidDEiIHNsb3RzCisgICAgLy8gTW92ZSBmcmFtZSB1cCAidDEgKiAyIiBzbG90
cworICAgIGxzaGlmdHAgMSwgdDEKICAgICBuZWdxIHQxCiAgICAgbW92ZSBjZnIsIHQzCiAgICAg
bG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRbY2ZyXSwgdDIKQEAgLTQyMCw2ICs0
ODcsNyBAQCBtYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93X3BhdGgpCiAK
ICAgICBsc2hpZnRwIDMsIHQxCiAgICAgYWRkcCB0MSwgY2ZyCisgICAgYWRkcCB0MSwgc3AKIAog
LmNvbnRpbnVlOgogICAgICMgUmVsb2FkIENvZGVCbG9jayBhbmQgcmVzZXQgUEMsIHNpbmNlIHRo
ZSBzbG93X3BhdGggY2xvYmJlcmVkIHRoZW0uCkBAIC00MjksNyArNDk3LDYgQEAgbWFjcm8gZnVu
Y3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvd19wYXRoKQogICAgIGptcCBkb25lTGFiZWwK
IGVuZAogCi0KIG1hY3JvIGJyYW5jaElmRXhjZXB0aW9uKGxhYmVsKQogICAgIGxvYWRwIFNjb3Bl
Q2hhaW5bY2ZyXSwgdDMKICAgICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDMKQEAgLTQ0NCw2ICs1
MTEsNyBAQCBlbmQKIAogX2xsaW50X29wX2VudGVyOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MiwgMHhkZWFkMDBlMSkKICAgICBsb2FkcCBD
b2RlQmxvY2tbY2ZyXSwgdDIgICAgICAgICAgICAgICAgLy8gdDI8Q29kZUJsb2NrPiA9IGNmci5D
b2RlQmxvY2sKICAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVtVmFyc1t0Ml0sIHQyICAgICAgLy8g
dDI8c2l6ZV90PiA9IHQyPENvZGVCbG9jaz4ubV9udW1WYXJzCiAgICAgYnRpeiB0MiwgLm9wRW50
ZXJEb25lCkBAIC0xNzE3LDEwICsxNzg1LDkgQEAgbWFjcm8gZG9DYWxsKHNsb3dQYXRoKQogICAg
IHN0b3JlcSB0MCwgU2NvcGVDaGFpblt0M10KICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMywg
dDIpCiAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KLSAgICBz
dG9yZXEgY2ZyLCBDYWxsZXJGcmFtZVt0M10KICAgICBzdG9yZWkgdDIsIEFyZ3VtZW50Q291bnQg
KyBQYXlsb2FkT2Zmc2V0W3QzXQotICAgIG1vdmUgdDMsIGNmcgotICAgIGNhbGxUYXJnZXRGdW5j
dGlvbih0MSkKKyAgICBhZGRwIENhbGxlckZyYW1lQW5kUENTaXplLCB0MworICAgIGNhbGxUYXJn
ZXRGdW5jdGlvbih0MSwgdDMpCiAKIC5vcENhbGxTbG93OgogICAgIHNsb3dQYXRoRm9yQ2FsbChz
bG93UGF0aCkKQEAgLTE4NDAsNiArMTkwNyw4IEBAIF9sbGludF9vcF9jYXRjaDoKICAgICBhbmRw
IE1hcmtlZEJsb2NrTWFzaywgdDMKICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsg
V2Vha1NldDo6bV92bVt0M10sIHQzCiAgICAgbG9hZHAgVk06OmNhbGxGcmFtZUZvclRocm93W3Qz
XSwgY2ZyCisgICAgcmVzdG9yZVN0YWNrUG9pbnRlckFmdGVyQ2FsbCgpCisKICAgICBsb2FkcCBD
b2RlQmxvY2tbY2ZyXSwgUEIKICAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW1BC
XSwgUEIKICAgICBsb2FkcCBWTTo6dGFyZ2V0SW50ZXJwcmV0ZXJQQ0ZvclRocm93W3QzXSwgUEMK
QEAgLTE4NzksNiArMTk0OCw4IEBAIF9sbGludF90aHJvd19kdXJpbmdfY2FsbF90cmFtcG9saW5l
OgogCiAKIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0
aW9uKQorCisgICAgZnVuY3Rpb25Qcm9sb2d1ZSgpCiAgICAgc3RvcmVwIDAsIENvZGVCbG9ja1tj
ZnJdCiAgICAgaWYgWDg2XzY0CiAgICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDAKQEAg
LTE4ODgsMTkgKzE5NTksMTUgQEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJs
ZU9mZnNldFRvRnVuY3Rpb24pCiAgICAgICAgIGxvYWRwIENhbGxlckZyYW1lW2Nmcl0sIHQwCiAg
ICAgICAgIGxvYWRxIFNjb3BlQ2hhaW5bdDBdLCB0MQogICAgICAgICBzdG9yZXEgdDEsIFNjb3Bl
Q2hhaW5bY2ZyXQotICAgICAgICBwZWVrIDAsIHQxCi0gICAgICAgIHN0b3JlcCB0MSwgUmV0dXJu
UENbY2ZyXQotICAgICAgICBtb3ZlIGNmciwgdDUgICMgdDUgPSByZGkKLSAgICAgICAgc3VicCAx
NiAtIDgsIHNwCi0gICAgICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0NCAjIHQ0ID0gcnNpCi0gICAg
ICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0NF0sIHQxCi0gICAgICAgIG1vdmUg
dDAsIGNmciAjIFJlc3RvcmUgY2ZyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjaworICAgICAg
ICBtb3ZlIGNmciwgdDQgICMgdDQgPSByZGkKKyAgICAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQ1
ICMgdDUgPSByc2kKKyAgICAgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3Q1XSwg
dDEKKyAgICAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQodDMsIDB4ZGVhZDAwMDEpCiAg
ICAgICAgIGNhbGwgZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb25bdDFdCi0gICAgICAgIGFkZHAg
MTYgLSA4LCBzcAogICAgICAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQzCiAgICAgICAgIGFu
ZHAgTWFya2VkQmxvY2tNYXNrLCB0MwogICAgICAgICBsb2FkcCBNYXJrZWRCbG9jazo6bV93ZWFr
U2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgZWxzaWYgQVJNNjQKKyAgICBlbHNpZiBB
Uk02NCBvciBDX0xPT1AKICAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MAogICAgICAg
ICBhbmRwIE1hcmtlZEJsb2NrTWFzaywgdDAKICAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1f
d2Vha1NldCArIFdlYWtTZXQ6Om1fdm1bdDBdLCB0MApAQCAtMTkxNCwzMCArMTk4MSwxMSBAQCBt
YWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikKICAg
ICAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQxCiAgICAgICAgIGxvYWRwIEpTRnVuY3Rpb246Om1f
ZXhlY3V0YWJsZVt0MV0sIHQxCiAgICAgICAgIG1vdmUgdDIsIGNmciAjIFJlc3RvcmUgY2ZyIHRv
IGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjawotICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRU
b0Z1bmN0aW9uW3QxXQotICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0
MykKLSAgICAgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MwotICAgICAgICBhbmRwIE1hcmtl
ZEJsb2NrTWFzaywgdDMKLSAgICAgICAgbG9hZHAgTWFya2VkQmxvY2s6Om1fd2Vha1NldCArIFdl
YWtTZXQ6Om1fdm1bdDNdLCB0MwotICAgIGVsc2lmIENfTE9PUAotICAgICAgICBsb2FkcCBDYWxs
ZXJGcmFtZVtjZnJdLCB0MAotICAgICAgICBsb2FkcCBTY29wZUNoYWluW3QwXSwgdDEKLSAgICAg
ICAgc3RvcmVwIHQxLCBTY29wZUNoYWluW2Nmcl0KLQotICAgICAgICBsb2FkcCBTY29wZUNoYWlu
W2Nmcl0sIHQzCi0gICAgICAgIGFuZHAgTWFya2VkQmxvY2tNYXNrLCB0MwotICAgICAgICBsb2Fk
cCBNYXJrZWRCbG9jazo6bV93ZWFrU2V0ICsgV2Vha1NldDo6bV92bVt0M10sIHQzCi0gICAgICAg
IHN0b3JlcCBjZnIsIFZNOjp0b3BDYWxsRnJhbWVbdDNdCi0KLSAgICAgICAgbW92ZSB0MCwgdDIK
LSAgICAgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQzKQotICAgICAgICBzdG9y
ZXAgdDMsIFJldHVyblBDW2Nmcl0KLSAgICAgICAgbW92ZSBjZnIsIHQwCi0gICAgICAgIGxvYWRw
IENhbGxlZVtjZnJdLCB0MQotICAgICAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVb
dDFdLCB0MQotICAgICAgICBtb3ZlIHQyLCBjZnIKLSAgICAgICAgY2xvb3BDYWxsTmF0aXZlIGV4
ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQotCisgICAgICAgIGlmIENfTE9PUAorICAgICAg
ICAgICAgY2xvb3BDYWxsTmF0aXZlIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQorICAg
ICAgICBlbHNlCisgICAgICAgICAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3Qx
XQorICAgICAgICBlbmQKICAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4o
dDMpCiAgICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDMKICAgICAgICAgYW5kcCBNYXJr
ZWRCbG9ja01hc2ssIHQzCkBAIC0xOTQ2LDE2ICsxOTk0LDE0IEBAIG1hY3JvIG5hdGl2ZUNhbGxU
cmFtcG9saW5lKGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKQogICAgICAgICBlcnJvcgogICAg
IGVuZAogCi0gICAgYnRxbnogVk06Om1fZXhjZXB0aW9uW3QzXSwgLmV4Y2VwdGlvbgorICAgIGZ1
bmN0aW9uRXBpbG9ndWUoKQorCisgICAgYnRxbnogVk06Om1fZXhjZXB0aW9uW3QzXSwgLmhhbmRs
ZUV4Y2VwdGlvbgogICAgIHJldAotLmV4Y2VwdGlvbjoKLSAgICBwcmVzZXJ2ZVJldHVybkFkZHJl
c3NBZnRlckNhbGwodDEpICMgVGhpcyBpcyByZWFsbHkgb25seSBuZWVkZWQgb24gWDg2XzY0Ci0g
ICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdLCBQQwotICAgIGxvYWRwIENv
ZGVCbG9ja1tjZnJdLCBQQgotICAgIGxvYWRwIENvZGVCbG9jazo6bV92bVtQQl0sIHQwCi0gICAg
bG9hZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9uc1tQQl0sIFBCCi0gICAgc3RvcmVwIGNmciwg
Vk06OnRvcENhbGxGcmFtZVt0MF0KLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Rocm93X2Zyb21f
bmF0aXZlX2NhbGwpCisKKy5oYW5kbGVFeGNlcHRpb246CisgICAgc3RvcmVwIGNmciwgVk06OnRv
cENhbGxGcmFtZVt0M10KKyAgICByZXN0b3JlU3RhY2tQb2ludGVyQWZ0ZXJDYWxsKCkKICAgICBq
bXAgX2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUKIGVuZAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGx2bS9saWJyYXJ5L0xMVk1FeHBvcnRzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbHZtL2xpYnJhcnkvTExWTUV4cG9ydHMuY3BwCmluZGV4
IDZlNzRiNTBhNDc1OWFlMzFiMGU3MWI3YmE4ZjU2MmUxYmRjMjY3N2YuLjQ5NDBhNGM3NjBlMDM5
MGNmMzNhMmUyOTdhNjhkNWMzNWQzNTcyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbHZtL2xpYnJhcnkvTExWTUV4cG9ydHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbHZtL2xpYnJhcnkvTExWTUV4cG9ydHMuY3BwCkBAIC00Miw2ICs0MiwxMCBAQCBleHRl
cm4gIkMiIEpTQzo6TExWTUFQSSogaW5pdGlhbGl6ZUFuZEdldEpTQ0xMVk1BUEkodm9pZCAoKmNh
bGxiYWNrKShjb25zdCBjaGFyKgogICAgIGdfbGx2bVRyYXBDYWxsYmFjayA9IGNhbGxiYWNrOwog
ICAgIAogICAgIExMVk1JbnN0YWxsRmF0YWxFcnJvckhhbmRsZXIobGx2bUNyYXNoKTsKKworICAg
IGlmICghTExWTVN0YXJ0TXVsdGl0aHJlYWRlZCgpKQorICAgICAgICBjYWxsYmFjaygiQ291bGQg
bm90IHN0YXJ0IExMVk0gbXVsdGl0aHJlYWRpbmciKTsKKyAgICAKICAgICBMTFZNTGlua0luTUNK
SVQoKTsKICAgICBMTFZNSW5pdGlhbGl6ZU5hdGl2ZVRhcmdldCgpOwogICAgIExMVk1Jbml0aWFs
aXplWDg2QXNtUHJpbnRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vYXJtLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtLnJi
CmluZGV4IDEwYjMzOWViNjdiOGMwODhhYjRhNzg3Y2VkOGY1ZmM2ZDE0ZjA2NWIuLmMzZGJjNTEw
YzA4NDY3NjgyYmUyNWM4OWU2YzUwNDQ3Yjk5ZWVjMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybS5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9hcm0ucmIKQEAgLTYwMSw2ICs2MDEsOCBAQCBjbGFzcyBJbnN0cnVjdGlvbgog
ICAgICAgICAgICAgJGFzbS5wdXRzICJzbXVsbCAje29wZXJhbmRzWzJdLmFybU9wZXJhbmR9LCAj
e29wZXJhbmRzWzNdLmFybU9wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybU9wZXJhbmR9LCAje29w
ZXJhbmRzWzFdLmFybU9wZXJhbmR9IgogICAgICAgICB3aGVuICJtZW1mZW5jZSIKICAgICAgICAg
ICAgICRhc20ucHV0cyAiZG1iIHN5IgorICAgICAgICB3aGVuICJjbHJicCIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAiYmljICN7b3BlcmFuZHNbMl0uYXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMF0u
YXJtT3BlcmFuZH0sICN7b3BlcmFuZHNbMV0uYXJtT3BlcmFuZH0iCiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIGxvd2VyRGVmYXVsdAogICAgICAgICBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vYXJtNjQucmIKaW5kZXggZTBhMjNmZjM3ODFlZWM5OWM4OTMxODE1YzgyZmM0
NTQwOTNlOGFlYi4uMjA4ODIxNmMwY2M5YWJhNmVmMGMwMTAyMzM0ZjY4YzFhY2RkYjZkZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIKQEAgLTQwLDE0ICs0MCwx
NCBAQCByZXF1aXJlICJyaXNjIgogIyAgeDEgID0+IHQxLCBhMSwgcjEKICMgIHgyICA9PiB0Miwg
YTIKICMgIHgzICA9PiBhMworIyAgeDUgID0+IHQ1CisjICB4NiAgPT4gdDYKICMgIHg5ICA9PiAo
bm9uQXJnR1BSMSBpbiBiYXNlbGluZSkKLSMgeDEwICA9PiB0NCAodW51c2VkIGluIGJhc2VsaW5l
KQotIyB4MTEgID0+IHQ1ICh1bnVzZWQgaW4gYmFzZWxpbmUpCi0jIHgxMiAgPT4gdDYgKHVudXNl
ZCBpbiBiYXNlbGluZSkKICMgeDEzICA9PiBzY3JhdGNoICh1bnVzZWQgaW4gYmFzZWxpbmUpCiAj
IHgxNiAgPT4gc2NyYXRjaAogIyB4MTcgID0+IHNjcmF0Y2gKICMgeDIzICA9PiB0MworIyB4MjQg
ID0+IHQ0CiAjIHgyNyAgPT4gY3NyMSAodGFnVHlwZU51bWJlcikKICMgeDI4ICA9PiBjc3IyICh0
YWdNYXNrKQogIyB4MjkgID0+IGNmcgpAQCAtMTEzLDExICsxMTMsMTEgQEAgY2xhc3MgUmVnaXN0
ZXJJRAogICAgICAgICB3aGVuICd0MycKICAgICAgICAgICAgIGFybTY0R1BSTmFtZSgneDIzJywg
a2luZCkKICAgICAgICAgd2hlbiAndDQnCi0gICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gxMCcs
IGtpbmQpCisgICAgICAgICAgICBhcm02NEdQUk5hbWUoJ3gyNCcsIGtpbmQpCiAgICAgICAgIHdo
ZW4gJ3Q1JwotICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4MTEnLCBraW5kKQorICAgICAgICAg
ICAgYXJtNjRHUFJOYW1lKCd4NScsIGtpbmQpCiAgICAgICAgIHdoZW4gJ3Q2JwotICAgICAgICAg
ICAgYXJtNjRHUFJOYW1lKCd4MTInLCBraW5kKQorICAgICAgICAgICAgYXJtNjRHUFJOYW1lKCd4
NicsIGtpbmQpCiAgICAgICAgIHdoZW4gJ2NmcicKICAgICAgICAgICAgIGFybTY0R1BSTmFtZSgn
eDI5Jywga2luZCkKICAgICAgICAgd2hlbiAnY3NyMScKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Nsb29wLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vY2xvb3AucmIKaW5kZXggODUyZTg2NGU5OWEzYjg3YjVkYzFkZWIwMGRhY2M0N2U1
ODkyZTNmOS4uOWI5MjA0N2RlMjE2ZjdlYjY4YTFiYjI2ZjJiNmJlYTk3ODdiMjI3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY2xvb3AucmIKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vY2xvb3AucmIKQEAgLTEsNCArMSw0IEBACi0j
IENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENv
cHlyaWdodCAoQykgMjAxMiwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAj
CiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTY4LDM0ICs2OCwyMiBAQCBDX0xPT1BfU0NS
QVRDSF9GUFIgPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCJkNiIpCiBjbGFzcyBSZWdpc3RlcklECiAg
ICAgZGVmIGNsRHVtcAogICAgICAgICBjYXNlIG5hbWUKLSAgICAgICAgd2hlbiAiYTAiCi0gICAg
ICAgICAgICAiYTAiCi0gICAgICAgIHdoZW4gImExIgotICAgICAgICAgICAgImExIgotICAgICAg
ICB3aGVuICJhMiIKLSAgICAgICAgICAgICJhMiIKLSAgICAgICAgd2hlbiAiYTMiCi0gICAgICAg
ICAgICAiYTMiCi0gICAgICAgIHdoZW4gImE0IgotICAgICAgICAgICAgImE0IgotICAgICAgICB3
aGVuICJhNSIKLSAgICAgICAgICAgICJhNSIKLSAgICAgICAgd2hlbiAiYTYiCi0gICAgICAgICAg
ICAiYTYiCi0gICAgICAgIHdoZW4gImE2IgotICAgICAgICAgICAgImE2IgotICAgICAgICB3aGVu
ICJ0MCIKKyAgICAgICAgIyBUaGUgY2xvb3AgaXMgbW9kZWxsZWQgb24gdGhlIEFSTSBpbXBsZW1l
bnRhdGlvbi4gSGVuY2UsIHRoZSBhMC1hMworICAgICAgICAjIHJlZ2lzdGVycyBhcmUgYWxpYXNl
cyBmb3IgcjAtcjMgaS5lLiB0MC10MyBpbiBvdXIgY2FzZS4KKyAgICAgICAgd2hlbiAidDAiLCAi
YTAiCiAgICAgICAgICAgICAidDAiCi0gICAgICAgIHdoZW4gInQxIgorICAgICAgICB3aGVuICJ0
MSIsICJhMSIKICAgICAgICAgICAgICJ0MSIKLSAgICAgICAgd2hlbiAidDIiCisgICAgICAgIHdo
ZW4gInQyIiwgImEyIgogICAgICAgICAgICAgInQyIgotICAgICAgICB3aGVuICJ0MyIKKyAgICAg
ICAgd2hlbiAidDMiLCAiYTMiCiAgICAgICAgICAgICAidDMiCiAgICAgICAgIHdoZW4gInQ0Igot
ICAgICAgICAgICAgInJQQyIKKyAgICAgICAgICAgICJwYyIKKyAgICAgICAgd2hlbiAidDUiCisg
ICAgICAgICAgICAidDUiCiAgICAgICAgIHdoZW4gInQ2IgotICAgICAgICAgICAgInJCYXNlUEMi
CisgICAgICAgICAgICAicGNCYXNlIgogICAgICAgICB3aGVuICJjc3IxIgogICAgICAgICAgICAg
InRhZ1R5cGVOdW1iZXIiCiAgICAgICAgIHdoZW4gImNzcjIiCkBAIC0xMDMsNyArOTEsNyBAQCBj
bGFzcyBSZWdpc3RlcklECiAgICAgICAgIHdoZW4gImNmciIKICAgICAgICAgICAgICJjZnIiCiAg
ICAgICAgIHdoZW4gImxyIgotICAgICAgICAgICAgInJSZXRWUEMiCisgICAgICAgICAgICAibHIi
CiAgICAgICAgIHdoZW4gInNwIgogICAgICAgICAgICAgInNwIgogICAgICAgICBlbHNlCkBAIC01
NTUsMTQgKzU0MywxNCBAQCBlbmQKICMgb3BlcmFuZHM6IGNhbGxUYXJnZXQsIGN1cnJlbnRGcmFt
ZSwgY3VycmVudFBDCiBkZWYgY2xvb3BFbWl0Q2FsbFNsb3dQYXRoKG9wZXJhbmRzKQogICAgICRh
c20ucHV0YyAieyIKLSAgICAkYXNtLnB1dGMgIiAgICBFeGVjU3RhdGUqIGV4ZWMgPSBDQVNUPEV4
ZWNTdGF0ZSo+KCN7b3BlcmFuZHNbMV0uY2xWYWx1ZSg6dm9pZFB0cil9KTsiCi0gICAgJGFzbS5w
dXRjICIgICAgSW5zdHJ1Y3Rpb24qIHBjID0gQ0FTVDxJbnN0cnVjdGlvbio+KCN7b3BlcmFuZHNb
Ml0uY2xWYWx1ZSg6dm9pZFB0cil9KTsiCi0gICAgJGFzbS5wdXRjICIgICAgU2xvd1BhdGhSZXR1
cm5UeXBlIHJlc3VsdCA9ICN7b3BlcmFuZHNbMF0uY0xhYmVsfShleGVjLCBwYyk7IgotICAgICRh
c20ucHV0YyAiICAgIGRlY29kZVJlc3VsdChyZXN1bHQsIHQwLmluc3RydWN0aW9uLCB0MS52cCk7
IgorICAgICRhc20ucHV0YyAiICAgIFNsb3dQYXRoUmV0dXJuVHlwZSByZXN1bHQgPSAje29wZXJh
bmRzWzBdLmNMYWJlbH0oI3tvcGVyYW5kc1sxXS5jbER1bXB9LCAje29wZXJhbmRzWzJdLmNsRHVt
cH0pOyIKKyAgICAkYXNtLnB1dGMgIiAgICBkZWNvZGVSZXN1bHQocmVzdWx0LCB0MC52cCwgdDEu
dnApOyIKICAgICAkYXNtLnB1dGMgIn0iCiBlbmQKIAogY2xhc3MgSW5zdHJ1Y3Rpb24KKyAgICBA
QGRpZFJldHVybkZyb21KU0xhYmVsQ291bnRlciA9IDAKKwogICAgIGRlZiBsb3dlckNfTE9PUAog
ICAgICAgICAkYXNtLmNvZGVPcmlnaW4gY29kZU9yaWdpblN0cmluZyBpZiAkZW5hYmxlQ29kZU9y
aWdpbkNvbW1lbnRzCiAgICAgICAgICRhc20uYW5ub3RhdGlvbiBhbm5vdGF0aW9uIGlmICRlbmFi
bGVJbnN0ckFubm90YXRpb25zICYmIChvcGNvZGUgIT0gImNsb29wRG8iKQpAQCAtODc2LDcgKzg2
NCw4IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgIHdoZW4gImJyZWFrIgogICAgICAgICAg
ICAgJGFzbS5wdXRjICJDUkFTSCgpOyAvLyBicmVhayBpbnN0cnVjdGlvbiBub3QgaW1wbGVtZW50
ZWQuIgogICAgICAgICB3aGVuICJyZXQiCi0gICAgICAgICAgICAkYXNtLnB1dGMgImdvdG8gZG9S
ZXR1cm5IZWxwZXI7IgorICAgICAgICAgICAgJGFzbS5wdXRjICJvcGNvZGUgPSBsci5vcGNvZGU7
IgorICAgICAgICAgICAgJGFzbS5wdXRjICJESVNQQVRDSF9PUENPREUoKTsiCiAKICAgICAgICAg
d2hlbiAiY2JlcSIKICAgICAgICAgICAgIGNsb29wRW1pdENvbXBhcmVBbmRTZXQob3BlcmFuZHMs
IDp1aW50OCwgIj09IikKQEAgLTEwOTcsNiArMTA4NiwxMiBAQCBjbGFzcyBJbnN0cnVjdGlvbgog
ICAgICAgICAgICAgY2xvb3BFbWl0T3BBbmRCcmFuY2gob3BlcmFuZHMsICJ8IiwgOmludDMyLCAi
IT0gMCIpCiAgICAgICAgICAgICAKICAgICAgICAgd2hlbiAibWVtZmVuY2UiCisKKyAgICAgICAg
d2hlbiAicHVzaCIKKyAgICAgICAgICAgICRhc20ucHV0YyAiUFVTSCgje29wZXJhbmRzWzBdLmNs
RHVtcH0pOyIKKyAgICAgICAgd2hlbiAicG9wIgorICAgICAgICAgICAgJGFzbS5wdXRjICJQT1Ao
I3tvcGVyYW5kc1swXS5jbER1bXB9KTsiCisKICAgICAgICAgd2hlbiAicHVzaENhbGxlZVNhdmVz
IgogICAgICAgICB3aGVuICJwb3BDYWxsZWVTYXZlcyIKIApAQCAtMTExMyw4ICsxMTA4LDExIEBA
IGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICMgdXNlIG9mIHRoZSBjYWxsIGluc3RydWN0aW9u
LiBJbnN0ZWFkLCB3ZSBqdXN0IGltcGxlbWVudCBKUyBjYWxscwogICAgICAgICAjIGFzIGFuIG9w
Y29kZSBkaXNwYXRjaC4KICAgICAgICAgd2hlbiAiY2xvb3BDYWxsSlNGdW5jdGlvbiIKKyAgICAg
ICAgICAgIEBAZGlkUmV0dXJuRnJvbUpTTGFiZWxDb3VudGVyICs9IDEKKyAgICAgICAgICAgICRh
c20ucHV0YyAibHIub3Bjb2RlID0gZ2V0T3Bjb2RlKGxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJv
bV9qc18je0BAZGlkUmV0dXJuRnJvbUpTTGFiZWxDb3VudGVyfSk7IgogICAgICAgICAgICAgJGFz
bS5wdXRjICJvcGNvZGUgPSAje29wZXJhbmRzWzBdLmNsVmFsdWUoOm9wY29kZSl9OyIKICAgICAg
ICAgICAgICRhc20ucHV0YyAiRElTUEFUQ0hfT1BDT0RFKCk7IgorICAgICAgICAgICAgJGFzbS5w
dXRzTGFiZWwoImxsaW50X2Nsb29wX2RpZF9yZXR1cm5fZnJvbV9qc18je0BAZGlkUmV0dXJuRnJv
bUpTTGFiZWxDb3VudGVyfSIpCiAKICAgICAgICAgIyBXZSBjYW4ndCBkbyBnZW5lcmljIGZ1bmN0
aW9uIGNhbGxzIHdpdGggYW4gYXJiaXRyYXJ5IHNldCBvZiBhcmdzLCBidXQKICAgICAgICAgIyBm
b3J0dW5hdGVseSB3ZSBkb24ndCBoYXZlIHRvIGhlcmUuIEFsbCBuYXRpdmUgZnVuY3Rpb24gY2Fs
bHMgYWx3YXlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9p
bnN0cnVjdGlvbnMucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVj
dGlvbnMucmIKaW5kZXggNWEzNDYzZmM5YWNjYTVlY2MyZTUyY2E4NTMzNGJkOTU3NDE5MDQ0MC4u
OTg5ZWU4MmMyNzgzYWU2MTEwOGM4MWQ4NGRlZmUxYjdlNjE1YzAzZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgpAQCAtMjU4LDYgKzI1
OCwxMSBAQCBYODZfSU5TVFJVQ1RJT05TID0KICAgICAgImlkaXZpIgogICAgIF0KIAorQVJNX0lO
U1RSVUNUSU9OUyA9CisgICAgWworICAgICAiY2xyYnAiCisgICAgXQorCiBBUk02NF9JTlNUUlVD
VElPTlMgPQogICAgIFsKICAgICAgInBvcExSQW5kRlAiLCAgICMgQVJNNjQgcmVxdWlyZXMgcmVn
aXN0ZXJzIHRvIGJlIHB1c2hlZCBhbmQgcG9wcGVkIGluIHBhaXJzLApAQCAtMzEzLDcgKzMxOCw3
IEBAIENYWF9JTlNUUlVDVElPTlMgPQogICAgICAiY2xvb3BEbyIsICAgICAgICAgICAgICAjIG5v
IG9wZXJhbmRzCiAgICAgXQogCi1JTlNUUlVDVElPTlMgPSBNQUNST19JTlNUUlVDVElPTlMgKyBY
ODZfSU5TVFJVQ1RJT05TICsgQVJNNjRfSU5TVFJVQ1RJT05TICsgUklTQ19JTlNUUlVDVElPTlMg
KyBNSVBTX0lOU1RSVUNUSU9OUyArIFNINF9JTlNUUlVDVElPTlMgKyBDWFhfSU5TVFJVQ1RJT05T
CitJTlNUUlVDVElPTlMgPSBNQUNST19JTlNUUlVDVElPTlMgKyBYODZfSU5TVFJVQ1RJT05TICsg
QVJNX0lOU1RSVUNUSU9OUyArIEFSTTY0X0lOU1RSVUNUSU9OUyArIFJJU0NfSU5TVFJVQ1RJT05T
ICsgTUlQU19JTlNUUlVDVElPTlMgKyBTSDRfSU5TVFJVQ1RJT05TICsgQ1hYX0lOU1RSVUNUSU9O
UwogCiBJTlNUUlVDVElPTl9QQVRURVJOID0gUmVnZXhwLm5ldygnXFxBKCgnICsgSU5TVFJVQ1RJ
T05TLmpvaW4oJyl8KCcpICsgJykpXFxaJykKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL29mZmxpbmVhc20veDg2LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20veDg2LnJiCmluZGV4IGU0N2YyOTU2MTE1MDc2ODRkMTY0ZWQ0ZjgyZWJlOWRmYTU2NDcyNzYu
LmMxNjEyNDJiZTY3NmJmNmZkYjYzZjU1NDYzOWVkYmUxNzY5M2VjMDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIKQEAgLTE1MCwxNSArMTUwLDE1IEBAIGNsYXNzIFJl
Z2lzdGVySUQKICAgICAgICAgd2hlbiAidDQiCiAgICAgICAgICAgICBjYXNlIGtpbmQKICAgICAg
ICAgICAgIHdoZW4gOmJ5dGUKLSAgICAgICAgICAgICAgICAiJXNpbCIKKyAgICAgICAgICAgICAg
ICAiJWRpbCIKICAgICAgICAgICAgIHdoZW4gOmhhbGYKLSAgICAgICAgICAgICAgICAiJXNpIgor
ICAgICAgICAgICAgICAgICIlZGkiCiAgICAgICAgICAgICB3aGVuIDppbnQKLSAgICAgICAgICAg
ICAgICAiJWVzaSIKKyAgICAgICAgICAgICAgICAiJWVkaSIKICAgICAgICAgICAgIHdoZW4gOnB0
cgotICAgICAgICAgICAgICAgIGlzWDY0ID8gIiVyc2kiIDogIiVlc2kiCisgICAgICAgICAgICAg
ICAgaXNYNjQgPyAiJXJkaSIgOiAiJWVkaSIKICAgICAgICAgICAgIHdoZW4gOnF1YWQKLSAgICAg
ICAgICAgICAgICBpc1g2NCA/ICIlcnNpIiA6IHJhaXNlCisgICAgICAgICAgICAgICAgaXNYNjQg
PyAiJXJkaSIgOiByYWlzZQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJhaXNl
CiAgICAgICAgICAgICBlbmQKQEAgLTIwNiwxNSArMjA2LDE1IEBAIGNsYXNzIFJlZ2lzdGVySUQK
ICAgICAgICAgd2hlbiAidDUiCiAgICAgICAgICAgICBjYXNlIGtpbmQKICAgICAgICAgICAgIHdo
ZW4gOmJ5dGUKLSAgICAgICAgICAgICAgICAiJWRpbCIKKyAgICAgICAgICAgICAgICAiJXNpbCIK
ICAgICAgICAgICAgIHdoZW4gOmhhbGYKLSAgICAgICAgICAgICAgICAiJWRpIgorICAgICAgICAg
ICAgICAgICIlc2kiCiAgICAgICAgICAgICB3aGVuIDppbnQKLSAgICAgICAgICAgICAgICAiJWVk
aSIKKyAgICAgICAgICAgICAgICAiJWVzaSIKICAgICAgICAgICAgIHdoZW4gOnB0cgotICAgICAg
ICAgICAgICAgIGlzWDY0ID8gIiVyZGkiIDogIiVlZGkiCisgICAgICAgICAgICAgICAgaXNYNjQg
PyAiJXJzaSIgOiAiJWVzaSIKICAgICAgICAgICAgIHdoZW4gOnF1YWQKLSAgICAgICAgICAgICAg
ICBpc1g2NCA/ICIlcmRpIiA6IHJhaXNlCisgICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJzaSIg
OiByYWlzZQogICAgICAgICAgICAgZW5kCiAgICAgICAgIHdoZW4gInQ2IgogICAgICAgICAgICAg
cmFpc2UgIkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdpblN0
cmluZ30iIHVubGVzcyBpc1g2NApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9QYXJzZXJFcnJvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJF
cnJvci5oCmluZGV4IGJhYTQ0NjVkMDc4ZGUxNzY0YWE4ZWYyN2I3NTU5MWE4YmJiZTVhYWMuLmRm
MzhhMDY3NDI5YWViMmJiNzY5YTVmYjgzOTY0MDRmZTg4YTQ1NjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyRXJyb3IuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1BhcnNlckVycm9yLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUg
UGFyc2VyRXJyb3JfaAogCiAjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNsdWRlICJFcnJvckhhbmRs
aW5nU2NvcGUuaCIKICNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCiAjaW5jbHVkZSAiUGFy
c2VyVG9rZW5zLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC05NCw4ICs5
NSwxMCBAQCBzdHJ1Y3QgUGFyc2VyRXJyb3IgewogICAgICAgICAgICAgcmV0dXJuIGFkZEVycm9y
SW5mbyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgY3JlYXRlU3ludGF4RXJyb3IoZ2xvYmFs
T2JqZWN0LCBtX21lc3NhZ2UpLCBtX2xpbmUsIHNvdXJjZSk7CiAgICAgICAgIGNhc2UgRXZhbEVy
cm9yOgogICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVN5bnRheEVycm9yKGdsb2JhbE9iamVjdCwg
bV9tZXNzYWdlKTsKLSAgICAgICAgY2FzZSBTdGFja092ZXJmbG93OgorICAgICAgICBjYXNlIFN0
YWNrT3ZlcmZsb3c6IHsKKyAgICAgICAgICAgIEVycm9ySGFuZGxpbmdTY29wZSBlcnJvclNjb3Bl
KGdsb2JhbE9iamVjdC0+dm0oKSk7CiAgICAgICAgICAgICByZXR1cm4gY3JlYXRlU3RhY2tPdmVy
Zmxvd0Vycm9yKGdsb2JhbE9iamVjdCk7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBPdXRPZk1l
bW9yeToKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9i
amVjdCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcAppbmRleCA1NTc2NmNlNWM4MGVhMTlmZTI4YzJk
OTI2NDM0MDNmOTgyYTE0YmE2Li4wMDhjYWYxY2Q5MWFmZGQzOTM0NWY5Yjk0Yzk3NzY2OTcyMjBk
OGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJD
b21waWxhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVyQ29tcGlsYXRpb24uY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02Nyw2ICs2NywxMSBAQCB2b2lkIENvbXBp
bGF0aW9uOjphZGREZXNjcmlwdGlvbihjb25zdCBDb21waWxlZEJ5dGVjb2RlJiBjb21waWxlZEJ5
dGVjb2RlKQogICAgIG1fZGVzY3JpcHRpb25zLmFwcGVuZChjb21waWxlZEJ5dGVjb2RlKTsKIH0K
IAordm9pZCBDb21waWxhdGlvbjo6YWRkRGVzY3JpcHRpb24oY29uc3QgT3JpZ2luU3RhY2smIHN0
YWNrLCBjb25zdCBDU3RyaW5nJiBkZXNjcmlwdGlvbikKK3sKKyAgICBhZGREZXNjcmlwdGlvbihD
b21waWxlZEJ5dGVjb2RlKHN0YWNrLCBkZXNjcmlwdGlvbikpOworfQorCiBFeGVjdXRpb25Db3Vu
dGVyKiBDb21waWxhdGlvbjo6ZXhlY3V0aW9uQ291bnRlckZvcihjb25zdCBPcmlnaW5TdGFjayYg
b3JpZ2luKQogewogICAgIHN0ZDo6dW5pcXVlX3B0cjxFeGVjdXRpb25Db3VudGVyPiYgY291bnRl
ciA9IG1fY291bnRlcnMuYWRkKG9yaWdpbiwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRp
b24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9u
LmgKaW5kZXggZGMyODEwNTI1Yjc3YzY4NmM2MTExYTM5MDQ0ODNhMmU0YjBhMjFkNS4uZDE2NzU3
ZTJhZWUzYzYxMWM4OGFiYmZhMTNiZWZiNTVhNjE2ZDZiZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbi5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMsIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICBDb21waWxhdGlvbktpbmQga2luZCgpIGNvbnN0
IHsgcmV0dXJuIG1fa2luZDsgfQogICAgIAogICAgIHZvaWQgYWRkRGVzY3JpcHRpb24oY29uc3Qg
Q29tcGlsZWRCeXRlY29kZSYpOworICAgIHZvaWQgYWRkRGVzY3JpcHRpb24oY29uc3QgT3JpZ2lu
U3RhY2smLCBjb25zdCBDU3RyaW5nJiBkZXNjcmlwdGlvbik7CiAgICAgRXhlY3V0aW9uQ291bnRl
ciogZXhlY3V0aW9uQ291bnRlckZvcihjb25zdCBPcmlnaW5TdGFjayYpOwogICAgIHZvaWQgYWRk
T1NSRXhpdFNpdGUoY29uc3QgVmVjdG9yPGNvbnN0IHZvaWQqPiYgY29kZUFkZHJlc3Nlcyk7CiAg
ICAgT1NSRXhpdCogYWRkT1NSRXhpdCh1bnNpZ25lZCBpZCwgY29uc3QgT3JpZ2luU3RhY2smLCBF
eGl0S2luZCwgYm9vbCBpc1dhdGNocG9pbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uS2luZC5jcHAKaW5kZXggNzhj
ZTcwNTg2ZGQwMWJlNWI2MzNjZWRiMmQwY2FmYWZjYTQyYzljZS4uM2ZiZTI1MTkyNWFkYjM4M2I3
OGJlNWExZWQxZTJjZTQ1YmI4ODMzOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxhdGlvbktpbmQuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Miw2ICs0Miwx
MiBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgSlNDOjpQcm9maWxlcjo6
Q29tcGlsYXRpb25LaW5kIGtpbmQpCiAgICAgY2FzZSBKU0M6OlByb2ZpbGVyOjpERkc6CiAgICAg
ICAgIG91dC5wcmludCgiREZHIik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEpTQzo6UHJv
ZmlsZXI6OkZUTDoKKyAgICAgICAgb3V0LnByaW50KCJGVEwiKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIGNhc2UgSlNDOjpQcm9maWxlcjo6RlRMRm9yT1NSRW50cnk6CisgICAgICAgIG91dC5wcmlu
dCgiRlRMRm9yT1NSRW50cnkiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIENSQVNIKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uS2luZC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmgKaW5kZXggNDgwNmQz
OWI5M2ZiMDg0NGZkNDA2MTQ0MjE3MjgxN2Q2Mzg1MDIwYi4uNTc1ZWMyOTQ3YTc2MWU0ZmZjZTVk
MjJjNDllOWFmZGMxYjQ1YTc4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmgKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDcgKzMxLDkgQEAgbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiBlbnVtIENvbXBpbGF0aW9uS2luZCB7
CiAgICAgTExJbnQsCiAgICAgQmFzZWxpbmUsCi0gICAgREZHCisgICAgREZHLAorICAgIEZUTCwK
KyAgICBGVExGb3JPU1JFbnRyeQogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OlByb2ZpbGVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcml0eUNoZWNrTW9k
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJpdHlDaGVja01vZGUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mMjA5MGMwNTdmZGFmMGNiMWEwOTRhOTJmYTk5NTY2MTQ3OWRmM2Y3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJpdHlDaGVja01vZGUu
aApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgQXJpdHlDaGVja01vZGVfaAorI2RlZmluZSBBcml0eUNoZWNrTW9k
ZV9oCisKK25hbWVzcGFjZSBKU0MgeworCitlbnVtIEFyaXR5Q2hlY2tNb2RlIHsKKyAgICBBcml0
eUNoZWNrTm90UmVxdWlyZWQsCisgICAgTXVzdENoZWNrQXJpdHkKK307CisKK30gLy8gbmFtZXNw
YWNlIEpTQworCisjZW5kaWYgLy8gQXJpdHlDaGVja01vZGVfaAorCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAppbmRleCBmNmExNDJlNmQy
YzA1NDIxMjE1MjQ4N2IzOTEzOThiNTg0ZGE3YmY2Li4wNzU4NzVmYjIzMTZhNTU1NzA1MGE2Njkw
Y2QwZjk4ODI0ODRmNWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25TbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vblNsb3dQYXRocy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDEwICsyOSwx
MiBAQAogI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJMRShMTElOVCkKIAogI2luY2x1ZGUgIkFyZ3Vt
ZW50cy5oIgorI2luY2x1ZGUgIkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgiCiAjaW5jbHVk
ZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUg
IkNvZGVQcm9maWxpbmcuaCIKICNpbmNsdWRlICJDb21tb25TbG93UGF0aHNFeGNlcHRpb25zLmgi
CisjaW5jbHVkZSAiRXJyb3JIYW5kbGluZ1Njb3BlLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVy
LmgiCiAjaW5jbHVkZSAiSG9zdENhbGxSZXR1cm5WYWx1ZS5oIgogI2luY2x1ZGUgIkludGVycHJl
dGVyLmgiCkBAIC0xNjEsMjggKzE2Myw0NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQ0FM
TF9FTkRfSU1QTChjckV4ZWMsIGNyQ2FsbFRhcmdldCk7ICAgICAgICAgICAgICAgIFwKICAgICB9
IHdoaWxlIChmYWxzZSkKIAorc3RhdGljIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGEq
IHNldHVwQXJpdHlDaGVja0RhdGEoVk0mIHZtLCBpbnQgc2xvdHNUb0FkZCkKK3sKKyAgICBDb21t
b25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhKiByZXN1bHQgPSB2bS5hcml0eUNoZWNrRGF0YS5n
ZXQoKTsKKyAgICByZXN1bHQtPnBhZGRlZFN0YWNrU3BhY2UgPSBzbG90c1RvQWRkOworI2lmIEVO
QUJMRShKSVQpCisgICAgaWYgKHZtLmNhblVzZUpJVCgpKSB7CisgICAgICAgIHJlc3VsdC0+dGh1
bmtUb0NhbGwgPSB2bS5nZXRDVElTdHViKGFyaXR5Rml4dXApLmNvZGUoKS5leGVjdXRhYmxlQWRk
cmVzcygpOworICAgICAgICByZXN1bHQtPnJldHVyblBDID0gdm0uYXJpdHlDaGVja0ZhaWxSZXR1
cm5UaHVua3MtPnJldHVyblBDRm9yKHZtLCBzbG90c1RvQWRkICogc3RhY2tBbGlnbm1lbnRSZWdp
c3RlcnMoKSkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKKyAgICB9IGVsc2UKKyNlbmRpZgorICAgIHsK
KyAgICAgICAgcmVzdWx0LT50aHVua1RvQ2FsbCA9IDA7CisgICAgICAgIHJlc3VsdC0+cmV0dXJu
UEMgPSAwOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBTTE9XX1BBVEhfREVDTChz
bG93X3BhdGhfY2FsbF9hcml0eUNoZWNrKQogewogICAgIEJFR0lOKCk7Ci0gICAgaW50IFNsb3Rz
VG9BZGQgPSBDb21tb25TbG93UGF0aHM6OmFyaXR5Q2hlY2tGb3IoZXhlYywgJnZtLmludGVycHJl
dGVyLT5zdGFjaygpLCBDb2RlRm9yQ2FsbCk7Ci0gICAgaWYgKFNsb3RzVG9BZGQgPCAwKSB7Cisg
ICAgaW50IHNsb3RzVG9BZGQgPSBDb21tb25TbG93UGF0aHM6OmFyaXR5Q2hlY2tGb3IoZXhlYywg
JnZtLmludGVycHJldGVyLT5zdGFjaygpLCBDb2RlRm9yQ2FsbCk7CisgICAgaWYgKHNsb3RzVG9B
ZGQgPCAwKSB7CiAgICAgICAgIGV4ZWMgPSBleGVjLT5jYWxsZXJGcmFtZSgpOworICAgICAgICBF
cnJvckhhbmRsaW5nU2NvcGUgZXJyb3JTY29wZShleGVjLT52bSgpKTsKICAgICAgICAgQ29tbW9u
U2xvd1BhdGhzOjppbnRlcnByZXRlclRocm93SW5DYWxsZXIoZXhlYywgY3JlYXRlU3RhY2tPdmVy
Zmxvd0Vycm9yKGV4ZWMpKTsKICAgICAgICAgUkVUVVJOX1RXTyhiaXR3aXNlX2Nhc3Q8dm9pZCo+
KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oMSkpLCBleGVjKTsKICAgICB9Ci0gICAgUkVUVVJOX1RX
TygwLCByZWludGVycHJldF9jYXN0PEV4ZWNTdGF0ZSo+KFNsb3RzVG9BZGQpKTsKKyAgICBSRVRV
Uk5fVFdPKDAsIHNldHVwQXJpdHlDaGVja0RhdGEodm0sIHNsb3RzVG9BZGQpKTsKIH0KIAogU0xP
V19QQVRIX0RFQ0woc2xvd19wYXRoX2NvbnN0cnVjdF9hcml0eUNoZWNrKQogewogICAgIEJFR0lO
KCk7Ci0gICAgaW50IFNsb3RzVG9BZGQgPSBDb21tb25TbG93UGF0aHM6OmFyaXR5Q2hlY2tGb3Io
ZXhlYywgJnZtLmludGVycHJldGVyLT5zdGFjaygpLCBDb2RlRm9yQ29uc3RydWN0KTsKLSAgICBp
ZiAoU2xvdHNUb0FkZCA8IDApIHsKKyAgICBpbnQgc2xvdHNUb0FkZCA9IENvbW1vblNsb3dQYXRo
czo6YXJpdHlDaGVja0ZvcihleGVjLCAmdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCksIENvZGVGb3JD
b25zdHJ1Y3QpOworICAgIGlmIChzbG90c1RvQWRkIDwgMCkgewogICAgICAgICBleGVjID0gZXhl
Yy0+Y2FsbGVyRnJhbWUoKTsKKyAgICAgICAgRXJyb3JIYW5kbGluZ1Njb3BlIGVycm9yU2NvcGUo
ZXhlYy0+dm0oKSk7CiAgICAgICAgIENvbW1vblNsb3dQYXRoczo6aW50ZXJwcmV0ZXJUaHJvd0lu
Q2FsbGVyKGV4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVjKSk7CiAgICAgICAgIFJF
VFVSTl9UV08oYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KDEpKSwg
ZXhlYyk7CiAgICAgfQotICAgIFJFVFVSTl9UV08oMCwgcmVpbnRlcnByZXRfY2FzdDxFeGVjU3Rh
dGUqPihTbG90c1RvQWRkKSk7CisgICAgUkVUVVJOX1RXTygwLCBzZXR1cEFyaXR5Q2hlY2tEYXRh
KHZtLCBzbG90c1RvQWRkKSk7CiB9CiAKIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF90b3VjaF9l
bnRyeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNs
b3dQYXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhz
LmgKaW5kZXggY2ZjOGJkYmI3NmFkZDczNzY5OTlmMWIyZjI2YWUyYjU5ZmM3YTliNy4uNjhmNjQw
ODRmYTI4MTEyZmVlMGQ5NDQyZGJkZWUzOGQ1MjExNDU3MSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKQEAgLTQ5LDYgKzQ5LDEyIEBAIG5h
bWVzcGFjZSBKU0MgewogCiBuYW1lc3BhY2UgQ29tbW9uU2xvd1BhdGhzIHsKIAorc3RydWN0IEFy
aXR5Q2hlY2tEYXRhIHsKKyAgICB1bnNpZ25lZCBwYWRkZWRTdGFja1NwYWNlOworICAgIHZvaWQq
IHRodW5rVG9DYWxsOworICAgIHZvaWQqIHJldHVyblBDOworfTsKKwogQUxXQVlTX0lOTElORSBp
bnQgYXJpdHlDaGVja0ZvcihFeGVjU3RhdGUqIGV4ZWMsIEpTU3RhY2sqIHN0YWNrLCBDb2RlU3Bl
Y2lhbGl6YXRpb25LaW5kIGtpbmQpCiB7CiAgICAgSlNGdW5jdGlvbiogY2FsbGVlID0ganNDYXN0
PEpTRnVuY3Rpb24qPihleGVjLT5jYWxsZWUoKSk7CkBAIC01OCwxOCArNjQsMTIgQEAgQUxXQVlT
X0lOTElORSBpbnQgYXJpdHlDaGVja0ZvcihFeGVjU3RhdGUqIGV4ZWMsIEpTU3RhY2sqIHN0YWNr
LCBDb2RlU3BlY2lhbGl6YXQKICAgICAKICAgICBBU1NFUlQoYXJndW1lbnRDb3VudEluY2x1ZGlu
Z1RoaXMgPCBuZXdDb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSk7CiAgICAgaW50IG1pc3NpbmdB
cmd1bWVudENvdW50ID0gbmV3Q29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkgLSBhcmd1bWVudENv
dW50SW5jbHVkaW5nVGhpczsKLSAgICBpbnQgcGFkZGVkTWlzc2luZ0FyZ3VtZW50Q291bnQgPSBX
VEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgbWlzc2lu
Z0FyZ3VtZW50Q291bnQpOworICAgIGludCBuZWVkZWRTdGFja1NwYWNlID0gbWlzc2luZ0FyZ3Vt
ZW50Q291bnQgKyAxOyAvLyBBbGxvdyBzcGFjZSB0byBzYXZlIHRoZSBvcmlnaW5hbCByZXR1cm4g
UEMuCisgICAgaW50IHBhZGRlZFN0YWNrU3BhY2UgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yo
c3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgbmVlZGVkU3RhY2tTcGFjZSk7CiAKLSNpZiBVU0Uo
U0VQQVJBVEVfQ19BTkRfSlNfU1RBQ0spCi0gICAgaWYgKCFzdGFjay0+Z3JvdyhleGVjLT5yZWdp
c3RlcnMoKSAtIHBhZGRlZE1pc3NpbmdBcmd1bWVudENvdW50KSkKKyAgICBpZiAoIXN0YWNrLT5l
bnN1cmVDYXBhY2l0eUZvcihleGVjLT5yZWdpc3RlcnMoKSAtIHBhZGRlZFN0YWNrU3BhY2UpKQog
ICAgICAgICByZXR1cm4gLTE7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzdGFjayk7Ci0gICAg
aWYgKCFleGVjLT52bSgpLmlzU2FmZVRvUmVjdXJzZShwYWRkZWRNaXNzaW5nQXJndW1lbnRDb3Vu
dCAqIHNpemVvZihSZWdpc3RlcikpKQotICAgICAgICByZXR1cm4gLTE7Ci0jZW5kaWYgLy8gVVNF
KFNFUEFSQVRFX0NfQU5EX0pTX1NUQUNLKQotCi0gICAgcmV0dXJuIHBhZGRlZE1pc3NpbmdBcmd1
bWVudENvdW50OworICAgIHJldHVybiBwYWRkZWRTdGFja1NwYWNlIC8gc3RhY2tBbGlnbm1lbnRS
ZWdpc3RlcnMoKTsKIH0KIAogaW5saW5lIGJvb2wgb3BJbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgcHJvcE5hbWUsIEpTVmFsdWUgYmFzZVZhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9ySGFuZGxpbmdTY29wZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyMmM1ZmU1
MjMxMTk3M2I0YzJlOGNiZDU2YjViZDc1ZWRjODJjOTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuY3BwCkBAIC0wLDAg
KzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkVycm9ySGFuZGxpbmdTY29wZS5oIgorCisj
aW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKKyNpbmNsdWRlICJPcHRpb25zLmgiCisjaW5jbHVkZSAi
Vk0uaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK0Vycm9ySGFuZGxpbmdTY29wZTo6RXJyb3JIYW5k
bGluZ1Njb3BlKFZNJiB2bSkKKyAgICA6IG1fdm0odm0pCit7CisgICAgaWYgKCFtX3ZtLnN0YWNr
UG9pbnRlckF0Vk1FbnRyeSkKKyAgICAgICAgbV92bS5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSB0
aGlzOworICAgIHNpemVfdCBuZXdSZXNlcnZlZFpvbmVTaXplID0gT3B0aW9uczo6ZXJyb3JNb2Rl
UmVzZXJ2ZWRab25lU2l6ZSgpOworICAgIG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplID0gbV92bS51
cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNpemUobmV3UmVzZXJ2ZWRab25lU2l6ZSk7
CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICBtX3ZtLmludGVycHJldGVyLT5zdGFjaygp
LnNldFJlc2VydmVkWm9uZVNpemUobmV3UmVzZXJ2ZWRab25lU2l6ZSk7CisjZW5kaWYKK30KKwor
RXJyb3JIYW5kbGluZ1Njb3BlOjp+RXJyb3JIYW5kbGluZ1Njb3BlKCkKK3sKKyAgICBpZiAobV92
bS5zdGFja1BvaW50ZXJBdFZNRW50cnkgPT0gdGhpcykKKyAgICAgICAgbV92bS5zdGFja1BvaW50
ZXJBdFZNRW50cnkgPSBudWxscHRyOworICAgIG1fdm0udXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNl
cnZlZFpvbmVTaXplKG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplKTsKKyNpZiBFTkFCTEUoTExJTlRf
Q19MT09QKQorICAgIG1fdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCkuc2V0UmVzZXJ2ZWRab25lU2l6
ZShtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2Ug
SlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckhhbmRs
aW5nU2NvcGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySGFuZGxpbmdT
Y29wZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ1MWIyNDFlNDhjMjUzY2EyYjdkODEzYTFiZDFmNmM2MTkyMzEz
OGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
ckhhbmRsaW5nU2NvcGUuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRXJyb3JIYW5kbGluZ1Njb3BlX2gKKyNk
ZWZpbmUgRXJyb3JIYW5kbGluZ1Njb3BlX2gKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIFZN
OworCitjbGFzcyBFcnJvckhhbmRsaW5nU2NvcGUgeworcHVibGljOgorICAgIEpTX0VYUE9SVF9Q
UklWQVRFIEVycm9ySGFuZGxpbmdTY29wZShWTSYpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIH5F
cnJvckhhbmRsaW5nU2NvcGUoKTsKK3ByaXZhdGU6CisgICAgVk0mIG1fdm07CisgICAgc2l6ZV90
IG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNl
bmRpZiAvLyBFcnJvckhhbmRsaW5nU2NvcGVfaAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCmluZGV4IDhmNDQyNDhlMzg2MTU5NTQ3
NWQyYzFjYTJjYWViZmE5MDYzZmRiZGQuLjA1ZTExZTBiODBhMzQzMGFlYWIyMmIwMjIyYTIxMmY0
YThlMmM0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2Vw
dGlvbkhlbHBlcnMuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRlICJDb2RlQmxvY2su
aCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKKyNpbmNsdWRlICJFcnJvckhhbmRsaW5nU2NvcGUu
aCIKICNpbmNsdWRlICJFcnJvckluc3RhbmNlLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3RG
dW5jdGlvbnMuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgpAQCAtMTYwLDE0ICsxNjEsMTYgQEAg
SlNPYmplY3QqIHRocm93T3V0T2ZNZW1vcnlFcnJvcihFeGVjU3RhdGUqIGV4ZWMpCiAKIEpTT2Jq
ZWN0KiB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSW50
ZXJwcmV0ZXI6OkVycm9ySGFuZGxpbmdNb2RlIG1vZGUoZXhlYyk7Ci0gICAgcmV0dXJuIGV4ZWMt
PnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMp
KTsKKyAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIEVycm9ySGFuZGxpbmdTY29wZSBlcnJv
clNjb3BlKHZtKTsKKyAgICByZXR1cm4gdm0udGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlU3Rh
Y2tPdmVyZmxvd0Vycm9yKGV4ZWMpKTsKIH0KIAogSlNPYmplY3QqIHRocm93VGVybWluYXRlZEV4
ZWN1dGlvbkV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSW50ZXJwcmV0ZXI6OkVy
cm9ySGFuZGxpbmdNb2RlIG1vZGUoZXhlYyk7Ci0gICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dF
eGNlcHRpb24oZXhlYywgY3JlYXRlVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbigmZXhlYy0+
dm0oKSkpOworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgRXJyb3JIYW5kbGluZ1Njb3Bl
IGVycm9yU2NvcGUodm0pOworICAgIHJldHVybiB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVh
dGVUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKCZ2bSkpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFi
bGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5k
ZXggYmJkNmVkMjNlMjZmYTJjZDk3NWQ2MzdjNTRhMmVkMmU2MTViMGY5MS4uNmJjNDY0ZDM3ZWU5
NTdlMDg4YjFiNzcyOTE0ODg0YjdmYjFlNzcxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJMTElu
dEVudHJ5cG9pbnQuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiUGFyc2Vy
LmgiCisjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTExOCwxMiArMTE5
LDE0IEBAIHZvaWQgU2NyaXB0RXhlY3V0YWJsZTo6aW5zdGFsbENvZGUoQ29kZUJsb2NrKiBnZW5l
cmljQ29kZUJsb2NrKQogICAgIHN3aXRjaCAoa2luZCkgewogICAgIGNhc2UgQ29kZUZvckNhbGw6
CiAgICAgICAgIG1faml0Q29kZUZvckNhbGwgPSBnZW5lcmljQ29kZUJsb2NrLT5qaXRDb2RlKCk7
Ci0gICAgICAgIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVjayA9IGdlbmVyaWNDb2RlQmxv
Y2stPmppdENvZGVXaXRoQXJpdHlDaGVjaygpOworICAgICAgICBtX2ppdENvZGVGb3JDYWxsV2l0
aEFyaXR5Q2hlY2sgPSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIoKTsKKyAgICAgICAgbV9qaXRDb2Rl
Rm9yQ2FsbFdpdGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdzID0gTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyKCk7CiAgICAgICAgIG1fbnVtUGFyYW1ldGVyc0ZvckNhbGwgPSBnZW5lcmljQ29kZUJsb2Nr
LT5udW1QYXJhbWV0ZXJzKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29kZUZvckNvbnN0
cnVjdDoKICAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0ID0gZ2VuZXJpY0NvZGVCbG9jay0+
aml0Q29kZSgpOwotICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayA9
IGdlbmVyaWNDb2RlQmxvY2stPmppdENvZGVXaXRoQXJpdHlDaGVjaygpOworICAgICAgICBtX2pp
dENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayA9IE1hY3JvQXNzZW1ibGVyQ29kZVB0cigp
OworICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZl
UmVncyA9IE1hY3JvQXNzZW1ibGVyQ29kZVB0cigpOwogICAgICAgICBtX251bVBhcmFtZXRlcnNG
b3JDb25zdHJ1Y3QgPSBnZW5lcmljQ29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KQEAgLTEzMyw3ICsxMzYsNiBAQCB2b2lkIFNjcmlwdEV4ZWN1dGFibGU6
Omluc3RhbGxDb2RlKENvZGVCbG9jayogZ2VuZXJpY0NvZGVCbG9jaykKICAgICAgICAgUHJvZ3Jh
bUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBqc0Nhc3Q8UHJvZ3JhbUV4ZWN1dGFibGUqPih0aGlz
KTsKICAgICAgICAgUHJvZ3JhbUNvZGVCbG9jayogY29kZUJsb2NrID0gc3RhdGljX2Nhc3Q8UHJv
Z3JhbUNvZGVCbG9jayo+KGdlbmVyaWNDb2RlQmxvY2spOwogICAgICAgICAKLSAgICAgICAgQVNT
RVJUKCFjb2RlQmxvY2stPmppdENvZGVXaXRoQXJpdHlDaGVjaygpKTsKICAgICAgICAgQVNTRVJU
KGtpbmQgPT0gQ29kZUZvckNhbGwpOwogICAgICAgICAKICAgICAgICAgb2xkQ29kZUJsb2NrID0g
ZXhlY3V0YWJsZS0+bV9wcm9ncmFtQ29kZUJsb2NrOwpAQCAtMTQ1LDcgKzE0Nyw2IEBAIHZvaWQg
U2NyaXB0RXhlY3V0YWJsZTo6aW5zdGFsbENvZGUoQ29kZUJsb2NrKiBnZW5lcmljQ29kZUJsb2Nr
KQogICAgICAgICBFdmFsRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IGpzQ2FzdDxFdmFsRXhlY3V0
YWJsZSo+KHRoaXMpOwogICAgICAgICBFdmFsQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBzdGF0aWNf
Y2FzdDxFdmFsQ29kZUJsb2NrKj4oZ2VuZXJpY0NvZGVCbG9jayk7CiAgICAgICAgIAotICAgICAg
ICBBU1NFUlQoIWNvZGVCbG9jay0+aml0Q29kZVdpdGhBcml0eUNoZWNrKCkpOwogICAgICAgICBB
U1NFUlQoa2luZCA9PSBDb2RlRm9yQ2FsbCk7CiAgICAgICAgIAogICAgICAgICBvbGRDb2RlQmxv
Y2sgPSBleGVjdXRhYmxlLT5tX2V2YWxDb2RlQmxvY2s7CkBAIC02MTAsNiArNjExLDQ2IEBAIFN0
cmluZyBGdW5jdGlvbkV4ZWN1dGFibGU6OnBhcmFtU3RyaW5nKCkgY29uc3QKICAgICByZXR1cm4g
bV91bmxpbmtlZEV4ZWN1dGFibGUtPnBhcmFtU3RyaW5nKCk7CiB9CiAKK3ZvaWQgRXhlY3V0YWJs
ZUJhc2U6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBFeGVjdXRhYmxlQmFz
ZSogcmVhbFRoaXMgPSBjb25zdF9jYXN0PEV4ZWN1dGFibGVCYXNlKj4odGhpcyk7CisgICAgCisg
ICAgaWYgKGNsYXNzSW5mbygpID09IE5hdGl2ZUV4ZWN1dGFibGU6OmluZm8oKSkgeworICAgICAg
ICBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmUgPSBqc0Nhc3Q8TmF0aXZlRXhlY3V0YWJsZSo+KHJl
YWxUaGlzKTsKKyAgICAgICAgb3V0LnByaW50KCJOYXRpdmVFeGVjdXRhYmxlOiIsIFJhd1BvaW50
ZXIoYml0d2lzZV9jYXN0PHZvaWQqPihuYXRpdmUtPmZ1bmN0aW9uKCkpKSwgIi8iLCBSYXdQb2lu
dGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4obmF0aXZlLT5jb25zdHJ1Y3RvcigpKSkpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIAorICAgIGlmIChjbGFzc0luZm8oKSA9PSBFdmFsRXhlY3V0
YWJsZTo6aW5mbygpKSB7CisgICAgICAgIEV2YWxFeGVjdXRhYmxlKiBldmFsID0ganNDYXN0PEV2
YWxFeGVjdXRhYmxlKj4ocmVhbFRoaXMpOworICAgICAgICBpZiAoQ29kZUJsb2NrKiBjb2RlQmxv
Y2sgPSBldmFsLT5jb2RlQmxvY2soKSkKKyAgICAgICAgICAgIG91dC5wcmludCgqY29kZUJsb2Nr
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgb3V0LnByaW50KCJFdmFsRXhlY3V0YWJsZSB3
L28gQ29kZUJsb2NrIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgaWYgKGNs
YXNzSW5mbygpID09IFByb2dyYW1FeGVjdXRhYmxlOjppbmZvKCkpIHsKKyAgICAgICAgUHJvZ3Jh
bUV4ZWN1dGFibGUqIGV2YWwgPSBqc0Nhc3Q8UHJvZ3JhbUV4ZWN1dGFibGUqPihyZWFsVGhpcyk7
CisgICAgICAgIGlmIChDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV2YWwtPmNvZGVCbG9jaygpKQor
ICAgICAgICAgICAgb3V0LnByaW50KCpjb2RlQmxvY2spOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBvdXQucHJpbnQoIlByb2dyYW1FeGVjdXRhYmxlIHcvbyBDb2RlQmxvY2siKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9u
ID0ganNDYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KHJlYWxUaGlzKTsKKyAgICBpZiAoIWZ1bmN0
aW9uLT5laXRoZXJDb2RlQmxvY2soKSkKKyAgICAgICAgb3V0LnByaW50KCJGdW5jdGlvbkV4ZWN1
dGFibGUgdy9vIENvZGVCbG9jayIpOworICAgIGVsc2UgeworICAgICAgICBDb21tYVByaW50ZXIg
Y29tbWEoIi8iKTsKKyAgICAgICAgaWYgKGZ1bmN0aW9uLT5jb2RlQmxvY2tGb3JDYWxsKCkpCisg
ICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsICpmdW5jdGlvbi0+Y29kZUJsb2NrRm9yQ2FsbCgp
KTsKKyAgICAgICAgaWYgKGZ1bmN0aW9uLT5jb2RlQmxvY2tGb3JDb25zdHJ1Y3QoKSkKKyAgICAg
ICAgICAgIG91dC5wcmludChjb21tYSwgKmZ1bmN0aW9uLT5jb2RlQmxvY2tGb3JDb25zdHJ1Y3Qo
KSk7CisgICAgfQorfQorCiBDb2RlQmxvY2tIYXNoIEV4ZWN1dGFibGVCYXNlOjpoYXNoRm9yKENv
ZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkgY29uc3QKIHsKICAgICBpZiAodGhpcy0+Y2xhc3NJ
bmZvKCkgPT0gTmF0aXZlRXhlY3V0YWJsZTo6aW5mbygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXhlY3V0YWJsZS5oCmluZGV4IDZmZjI3YWVlOWZjM2I4MjY4YWU2Yjk3NmE5ZWRk
ODZjM2Y5MDI1NWMuLjE5ODk3NmJiM2ZlNmU2ZTkxMTc5ODEyZDFjYWY5YjhiZjliZmQwYmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKQEAgLTI2LDYgKzI2
LDcgQEAKICNpZm5kZWYgRXhlY3V0YWJsZV9oCiAjZGVmaW5lIEV4ZWN1dGFibGVfaAogCisjaW5j
bHVkZSAiQXJpdHlDaGVja01vZGUuaCIKICNpbmNsdWRlICJDYWxsRGF0YS5oIgogI2luY2x1ZGUg
IkNvZGVCbG9ja0hhc2guaCIKICNpbmNsdWRlICJDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmgiCkBA
IC0zNiw2ICszNyw3IEBACiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKSVRD
b2RlLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJSZWdpc3RlclBy
ZXNlcnZhdGlvbk1vZGUuaCIKICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKICNpbmNsdWRlICJT
b3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiVW5saW5rZWRDb2RlQmxvY2suaCIKQEAgLTE0NCwzNyAr
MTQ2LDk0IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZvckNvbnN0cnVj
dCk7CiAgICAgICAgIHJldHVybiBnZW5lcmF0ZWRKSVRDb2RlRm9yQ29uc3RydWN0KCk7CiAgICAg
fQotCi0gICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGdlbmVyYXRlZEpJVENvZGVGb3JDYWxsV2l0
aEFyaXR5Q2hlY2soKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1faml0Q29kZUZvckNhbGwpOwot
ICAgICAgICBBU1NFUlQobV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrKTsKLSAgICAgICAg
cmV0dXJuIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVjazsKLSAgICB9Ci0KLSAgICBNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgZ2VuZXJhdGVkSklUQ29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNo
ZWNrKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX2ppdENvZGVGb3JDb25zdHJ1Y3QpOwotICAg
ICAgICBBU1NFUlQobV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2spOwotICAgICAg
ICByZXR1cm4gbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2s7Ci0gICAgfQotICAg
ICAgICAKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgZ2VuZXJhdGVkSklUQ29kZVdpdGhBcml0
eUNoZWNrRm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKLSAgICB7Ci0gICAgICAgIGlm
IChraW5kID09IENvZGVGb3JDYWxsKQotICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRlZEpJVENv
ZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2soKTsKLSAgICAgICAgQVNTRVJUKGtpbmQgPT0gQ29kZUZv
ckNvbnN0cnVjdCk7Ci0gICAgICAgIHJldHVybiBnZW5lcmF0ZWRKSVRDb2RlRm9yQ29uc3RydWN0
V2l0aEFyaXR5Q2hlY2soKTsKLSAgICB9Ci0gICAgICAgIAotICAgIHN0YXRpYyBwdHJkaWZmX3Qg
b2Zmc2V0T2ZKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCBr
aW5kKQotICAgIHsKLSAgICAgICAgaWYgKGtpbmQgPT0gQ29kZUZvckNhbGwpCi0gICAgICAgICAg
ICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEV4ZWN1dGFibGVCYXNlLCBtX2ppdENvZGVGb3JDYWxs
V2l0aEFyaXR5Q2hlY2spOwotICAgICAgICBBU1NFUlQoa2luZCA9PSBDb2RlRm9yQ29uc3RydWN0
KTsKLSAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihFeGVjdXRhYmxlQmFzZSwgbV9qaXRD
b2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2spOworICAgIAorICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVB0ciBlbnRyeXBvaW50Rm9yKAorICAgICAgICBWTSYgdm0sIENvZGVTcGVjaWFsaXphdGlv
bktpbmQga2luZCwgQXJpdHlDaGVja01vZGUgYXJpdHksIFJlZ2lzdGVyUHJlc2VydmF0aW9uTW9k
ZSByZWdpc3RlcnMpCisgICAgeworICAgICAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIGEgY2FjaGVk
IHJlc3VsdC4gV2Ugb25seSBoYXZlIGl0IGZvciBhcml0eSBjaGVjayBiZWNhdXNlIHdlIHVzZSB0
aGUKKyAgICAgICAgLy8gbm8tYXJpdHkgZW50cnlwb2ludCBpbiBub24tdmlydHVhbCBjYWxscywg
d2hpY2ggd2lsbCAiY2FjaGUiIHRoaXMgdmFsdWUgZGlyZWN0bHkgaW4KKyAgICAgICAgLy8gbWFj
aGluZSBjb2RlLgorICAgICAgICBpZiAoYXJpdHkgPT0gTXVzdENoZWNrQXJpdHkpIHsKKyAgICAg
ICAgICAgIHN3aXRjaCAoa2luZCkgeworICAgICAgICAgICAgY2FzZSBDb2RlRm9yQ2FsbDoKKyAg
ICAgICAgICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICAgICAgICAgIGNhc2Ug
UmVnaXN0ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgICAgICAgICAgaWYg
KE1hY3JvQXNzZW1ibGVyQ29kZVB0ciByZXN1bHQgPSBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5
Q2hlY2spCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lz
dGVyczoKKyAgICAgICAgICAgICAgICAgICAgaWYgKE1hY3JvQXNzZW1ibGVyQ29kZVB0ciByZXN1
bHQgPSBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MpCisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIENvZGVGb3JDb25zdHJ1Y3Q6CisgICAgICAgICAgICAgICAgc3dpdGNoIChyZWdp
c3RlcnMpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVx
dWlyZWQ6CisgICAgICAgICAgICAgICAgICAgIGlmIChNYWNyb0Fzc2VtYmxlckNvZGVQdHIgcmVz
dWx0ID0gbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2spCisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKE1hY3JvQXNzZW1ibGVyQ29kZVB0ciByZXN1bHQgPSBtX2ppdENvZGVGb3JDb25z
dHJ1Y3RXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZlUmVncykKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgcmVzdWx0ID0KKyAgICAgICAgICAgIGdl
bmVyYXRlZEpJVENvZGVGb3Ioa2luZCktPmFkZHJlc3NGb3JDYWxsKHZtLCB0aGlzLCBhcml0eSwg
cmVnaXN0ZXJzKTsKKyAgICAgICAgaWYgKGFyaXR5ID09IE11c3RDaGVja0FyaXR5KSB7CisgICAg
ICAgICAgICAvLyBDYWNoZSB0aGUgcmVzdWx0OyB0aGlzIGlzIG5lY2Vzc2FyeSBmb3IgdGhlIEpJ
VCdzIHZpcnR1YWwgY2FsbCBvcHRpbWl6YXRpb25zLgorICAgICAgICAgICAgc3dpdGNoIChraW5k
KSB7CisgICAgICAgICAgICBjYXNlIENvZGVGb3JDYWxsOgorICAgICAgICAgICAgICAgIHN3aXRj
aCAocmVnaXN0ZXJzKSB7CisgICAgICAgICAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlv
bk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgICAgICAgICBtX2ppdENvZGVGb3JDYWxsV2l0aEFy
aXR5Q2hlY2sgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgICAgICAgICBt
X2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MgPSByZXN1bHQ7Cisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ29kZUZvckNvbnN0cnVjdDoKKyAgICAgICAg
ICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICAgICAgICAgIGNhc2UgUmVnaXN0
ZXJQcmVzZXJ2YXRpb25Ob3RSZXF1aXJlZDoKKyAgICAgICAgICAgICAgICAgICAgbV9qaXRDb2Rl
Rm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgTXVzdFByZXNlcnZlUmVnaXN0ZXJzOgorICAg
ICAgICAgICAgICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVja0FuZFBy
ZXNlcnZlUmVncyA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgc3RhdGljIHB0cmRpZmZf
dCBvZmZzZXRPZkpJVENvZGVXaXRoQXJpdHlDaGVja0ZvcigKKyAgICAgICAgQ29kZVNwZWNpYWxp
emF0aW9uS2luZCBraW5kLCBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGUgcmVnaXN0ZXJzKQorICAg
IHsKKyAgICAgICAgc3dpdGNoIChraW5kKSB7CisgICAgICAgIGNhc2UgQ29kZUZvckNhbGw6Cisg
ICAgICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgeworICAgICAgICAgICAgY2FzZSBSZWdpc3Rl
clByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAgICAgICAgICAgIHJldHVybiBPQkpFQ1Rf
T0ZGU0VUT0YoRXhlY3V0YWJsZUJhc2UsIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVjayk7
CisgICAgICAgICAgICBjYXNlIE11c3RQcmVzZXJ2ZVJlZ2lzdGVyczoKKyAgICAgICAgICAgICAg
ICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEV4ZWN1dGFibGVCYXNlLCBtX2ppdENvZGVGb3JDYWxs
V2l0aEFyaXR5Q2hlY2tBbmRQcmVzZXJ2ZVJlZ3MpOworICAgICAgICAgICAgfQorICAgICAgICBj
YXNlIENvZGVGb3JDb25zdHJ1Y3Q6CisgICAgICAgICAgICBzd2l0Y2ggKHJlZ2lzdGVycykgewor
ICAgICAgICAgICAgY2FzZSBSZWdpc3RlclByZXNlcnZhdGlvbk5vdFJlcXVpcmVkOgorICAgICAg
ICAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRXhlY3V0YWJsZUJhc2UsIG1faml0Q29k
ZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrKTsKKyAgICAgICAgICAgIGNhc2UgTXVzdFByZXNl
cnZlUmVnaXN0ZXJzOgorICAgICAgICAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRXhl
Y3V0YWJsZUJhc2UsIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0eUNoZWNrQW5kUHJlc2Vy
dmVSZWdzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgICAgIAorICAg
IAogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZOdW1QYXJhbWV0ZXJzRm9yKENvZGVTcGVj
aWFsaXphdGlvbktpbmQga2luZCkKICAgICB7CiAgICAgICAgIGlmIChraW5kID09IENvZGVGb3JD
YWxsKQpAQCAtMjEwLDIyICsyNjksOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gaW50
cmluc2ljKCk7CiAgICAgICAgIHJldHVybiBOb0ludHJpbnNpYzsKICAgICB9CisgICAgCisgICAg
dm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgICAgIAotICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBob3N0Q29kZUVudHJ5Rm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBnZW5lcmF0ZWRKSVRDb2RlRm9yKGtpbmQpLT5hZGRyZXNz
Rm9yQ2FsbCgpOwotICAgIH0KLQotICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBqc0NvZGVFbnRy
eUZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCi0gICAgewotICAgICAgICByZXR1cm4g
Z2VuZXJhdGVkSklUQ29kZUZvcihraW5kKS0+YWRkcmVzc0ZvckNhbGwoKTsKLSAgICB9Ci0KLSAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIganNDb2RlV2l0aEFyaXR5Q2hlY2tFbnRyeUZvcihDb2Rl
U3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCi0gICAgewotICAgICAgICByZXR1cm4gZ2VuZXJhdGVk
SklUQ29kZVdpdGhBcml0eUNoZWNrRm9yKGtpbmQpOwotICAgIH0KLQogcHJvdGVjdGVkOgogICAg
IEV4ZWN1dGFibGVCYXNlKiBtX3ByZXY7CiAgICAgRXhlY3V0YWJsZUJhc2UqIG1fbmV4dDsKQEAg
LTIzNCw2ICsyODAsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVmUHRyPEpJVENvZGU+IG1faml0Q29k
ZUZvckNvbnN0cnVjdDsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgbV9qaXRDb2RlRm9yQ2Fs
bFdpdGhBcml0eUNoZWNrOwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBtX2ppdENvZGVGb3JD
b25zdHJ1Y3RXaXRoQXJpdHlDaGVjazsKKyAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgbV9qaXRD
b2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrQW5kUHJlc2VydmVSZWdzOworICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVja0FuZFByZXNlcnZl
UmVnczsKIH07CiAKIGNsYXNzIE5hdGl2ZUV4ZWN1dGFibGUgOiBwdWJsaWMgRXhlY3V0YWJsZUJh
c2UgewpAQCAtMjQyLDE0ICsyOTAsMTEgQEAgY2xhc3MgTmF0aXZlRXhlY3V0YWJsZSA6IHB1Ymxp
YyBFeGVjdXRhYmxlQmFzZSB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBFeGVjdXRhYmxlQmFzZSBC
YXNlOwogCi0gICAgc3RhdGljIE5hdGl2ZUV4ZWN1dGFibGUqIGNyZWF0ZShWTSYgdm0sIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZiBjYWxsVGh1bmssIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgY29uc3RydWN0VGh1bmssIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVj
dG9yLCBJbnRyaW5zaWMgaW50cmluc2ljKQorICAgIHN0YXRpYyBOYXRpdmVFeGVjdXRhYmxlKiBj
cmVhdGUoVk0mIHZtLCBQYXNzUmVmUHRyPEpJVENvZGU+IGNhbGxUaHVuaywgTmF0aXZlRnVuY3Rp
b24gZnVuY3Rpb24sIFBhc3NSZWZQdHI8SklUQ29kZT4gY29uc3RydWN0VGh1bmssIE5hdGl2ZUZ1
bmN0aW9uIGNvbnN0cnVjdG9yLCBJbnRyaW5zaWMgaW50cmluc2ljKQogICAgIHsKICAgICAgICAg
TmF0aXZlRXhlY3V0YWJsZSogZXhlY3V0YWJsZTsKICAgICAgICAgZXhlY3V0YWJsZSA9IG5ldyAo
Tm90TnVsbCwgYWxsb2NhdGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+KHZtLmhlYXApKSBOYXRpdmVF
eGVjdXRhYmxlKHZtLCBmdW5jdGlvbiwgY29uc3RydWN0b3IpOwotICAgICAgICBpZiAoIWNhbGxU
aHVuaykKLSAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9uKHZtLCAwLCAwLCBp
bnRyaW5zaWMpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBleGVjdXRhYmxlLT5maW5pc2hD
cmVhdGlvbih2bSwgSklUQ29kZTo6aG9zdEZ1bmN0aW9uKGNhbGxUaHVuayksIEpJVENvZGU6Omhv
c3RGdW5jdGlvbihjb25zdHJ1Y3RUaHVuayksIGludHJpbnNpYyk7CisgICAgICAgIGV4ZWN1dGFi
bGUtPmZpbmlzaENyZWF0aW9uKHZtLCBjYWxsVGh1bmssIGNvbnN0cnVjdFRodW5rLCBpbnRyaW5z
aWMpOwogICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICB9CiAKQEAgLTI4OCw4ICszMzMs
NiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFBhc3NSZWZQ
dHI8SklUQ29kZT4gY2FsbFRodW5rLCBQYXNzUmVmUHRyPEpJVENvZGU+IGNvbnN0cnVjdFRodW5r
LCBJbnRyaW5zaWMgaW50cmluc2ljKQogICAgIHsKICAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24odm0pOwotICAgICAgICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2sgPSBjYWxsVGh1
bmsgPyBjYWxsVGh1bmstPmFkZHJlc3NGb3JDYWxsKCkgOiBNYWNyb0Fzc2VtYmxlckNvZGVQdHIo
KTsKLSAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSBjb25zdHJ1
Y3RUaHVuayA/IGNvbnN0cnVjdFRodW5rLT5hZGRyZXNzRm9yQ2FsbCgpIDogTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyKCk7CiAgICAgICAgIG1faml0Q29kZUZvckNhbGwgPSBjYWxsVGh1bms7CiAgICAg
ICAgIG1faml0Q29kZUZvckNvbnN0cnVjdCA9IGNvbnN0cnVjdFRodW5rOwogICAgICAgICBtX2lu
dHJpbnNpYyA9IGludHJpbnNpYzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ0pTVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pT
VmFsdWUuaAppbmRleCA4NWFjMzJiZGRmZmRhNmY1NTU4YTgwY2UxYzBkYmJhNmUxZDUyM2MwLi45
MThkZTE0ZDUyODM1NDU1Y2RjNjdhZTc5ZjE3YzgzOGRjYmFjMDM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCkBAIC05Nyw2ICs5Nyw5IEBAIHVuaW9uIEVu
Y29kZWRWYWx1ZURlc2NyaXB0b3IgewogI2VuZGlmCiB9OwogCisjZGVmaW5lIFRhZ09mZnNldCAo
T0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0cy50YWcpKQorI2Rl
ZmluZSBQYXlsb2FkT2Zmc2V0IChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRv
ciwgYXNCaXRzLnBheWxvYWQpKQorCiBlbnVtIFdoaWNoVmFsdWVXb3JkIHsKICAgICBUYWdXb3Jk
LAogICAgIFBheWxvYWRXb3JkCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0xvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNw
cAppbmRleCA3NjA0MDc1ZjhiOWYzOTRmYWM0YWZiMmRjYWQ4M2ZlNzcwYjlmYTcxLi44NDE1YWQ1
ZWM1ZDgyZWFiYjdmMWEyM2NjYzRlMmM3ZWE0NzQ0YzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTTG9jay5jcHAKQEAgLTI5MCw2ICsyOTAsMTAgQEAgSlNMb2NrOjpEcm9wQWxs
TG9ja3M6OkRyb3BBbGxMb2NrcyhFeGVjU3RhdGUqIGV4ZWMsIEFsd2F5c0Ryb3BMb2Nrc1RhZyBh
bHdheXNEcm8KICNpZiBQTEFURk9STShJT1MpCiAgICAgU3BpbkxvY2tIb2xkZXIgaG9sZGVyKCZz
cGluTG9jayk7CiAjZW5kaWYKKyAgICBtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZSA9IG1fdm0tPnJl
c2VydmVkWm9uZVNpemUoKTsKKyAgICBtX3NhdmVkU3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gbV92
bS0+c3RhY2tQb2ludGVyQXRWTUVudHJ5OworICAgIG1fdm0tPnN0YWNrUG9pbnRlckF0Vk1FbnRy
eSA9IG51bGxwdHI7CisKICAgICBpZiAoYWx3YXlzRHJvcExvY2tzKQogICAgICAgICBtX2xvY2tD
b3VudCA9IG1fdm0tPmFwaUxvY2soKS5kcm9wQWxsTG9ja3NVbmNvbmRpdGlvbmFsbHkoc3Bpbkxv
Y2spOwogICAgIGVsc2UKQEAgLTMwNiw2ICszMTAsMTAgQEAgSlNMb2NrOjpEcm9wQWxsTG9ja3M6
OkRyb3BBbGxMb2NrcyhWTSogdm0sIEFsd2F5c0Ryb3BMb2Nrc1RhZyBhbHdheXNEcm9wTG9ja3Mp
CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFNwaW5Mb2NrSG9sZGVyIGhvbGRlcigmc3BpbkxvY2sp
OwogI2VuZGlmCisgICAgbV9zYXZlZFJlc2VydmVkWm9uZVNpemUgPSBtX3ZtLT5yZXNlcnZlZFpv
bmVTaXplKCk7CisgICAgbV9zYXZlZFN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9IG1fdm0tPnN0YWNr
UG9pbnRlckF0Vk1FbnRyeTsKKyAgICBtX3ZtLT5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSBudWxs
cHRyOworCiAgICAgaWYgKGFsd2F5c0Ryb3BMb2NrcykKICAgICAgICAgbV9sb2NrQ291bnQgPSBt
X3ZtLT5hcGlMb2NrKCkuZHJvcEFsbExvY2tzVW5jb25kaXRpb25hbGx5KHNwaW5Mb2NrKTsKICAg
ICBlbHNlCkBAIC0zMjEsNiArMzI5LDkgQEAgSlNMb2NrOjpEcm9wQWxsTG9ja3M6On5Ecm9wQWxs
TG9ja3MoKQogICAgIFNwaW5Mb2NrSG9sZGVyIGhvbGRlcigmc3BpbkxvY2spOwogI2VuZGlmCiAg
ICAgbV92bS0+YXBpTG9jaygpLmdyYWJBbGxMb2NrcyhtX2xvY2tDb3VudCwgc3BpbkxvY2spOwor
CisgICAgbV92bS0+c3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gbV9zYXZlZFN0YWNrUG9pbnRlckF0
Vk1FbnRyeTsKKyAgICBtX3ZtLT51cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNpemUo
bV9zYXZlZFJlc2VydmVkWm9uZVNpemUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgKaW5kZXggMzAwMmFkZDY0N2EyNTAwZDg1NWRh
YjBhZGZjOTc3M2VjODcyZGZmZS4uMGRhY2RmMGJjOWY4MWFhNWM2NzNjZWQ5ZGYyY2Q5YWU5ZGUx
NjI3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmgKQEAgLTk1LDEwICs5
NSw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wg
Y3VycmVudFRocmVhZElzSG9sZGluZ0xvY2soKTsKIAotICAgICAgICB1bnNpZ25lZCBkcm9wQWxs
TG9ja3MoU3BpbkxvY2smKTsKLSAgICAgICAgdW5zaWduZWQgZHJvcEFsbExvY2tzVW5jb25kaXRp
b25hbGx5KFNwaW5Mb2NrJik7Ci0gICAgICAgIHZvaWQgZ3JhYkFsbExvY2tzKHVuc2lnbmVkIGxv
Y2tDb3VudCwgU3BpbkxvY2smKTsKLQogICAgICAgICB2b2lkIHdpbGxEZXN0cm95Vk0oVk0qKTsK
IAogICAgICAgICBjbGFzcyBEcm9wQWxsTG9ja3MgewpAQCAtMTE0LDkgKzExMCwxNSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgcHJpdmF0ZToKICAgICAgICAgICAgIGludHB0cl90IG1fbG9j
a0NvdW50OwogICAgICAgICAgICAgUmVmUHRyPFZNPiBtX3ZtOworICAgICAgICAgICAgc2l6ZV90
IG1fc2F2ZWRSZXNlcnZlZFpvbmVTaXplOworICAgICAgICAgICAgdm9pZCogbV9zYXZlZFN0YWNr
UG9pbnRlckF0Vk1FbnRyeTsKICAgICAgICAgfTsKIAogICAgIHByaXZhdGU6CisgICAgICAgIHVu
c2lnbmVkIGRyb3BBbGxMb2NrcyhTcGluTG9jayYpOworICAgICAgICB1bnNpZ25lZCBkcm9wQWxs
TG9ja3NVbmNvbmRpdGlvbmFsbHkoU3BpbkxvY2smKTsKKyAgICAgICAgdm9pZCBncmFiQWxsTG9j
a3ModW5zaWduZWQgbG9ja0NvdW50LCBTcGluTG9jayYpOworCiAgICAgICAgIFNwaW5Mb2NrIG1f
c3BpbkxvY2s7CiAgICAgICAgIE11dGV4IG1fbG9jazsKICAgICAgICAgVGhyZWFkSWRlbnRpZmll
ciBtX293bmVyVGhyZWFkOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2Jq
ZWN0LmNwcAppbmRleCA5ODI2Mjg5MTcxYjhkNDBmY2Y4YWM0NTA1ZmJhYjY3N2RkNWFlMWZiLi4w
ZDNkN2UzZTBhY2U5MmQxN2I3ZDgxZmFlMWI5YmIyYWJlOThhZWIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcApAQCAtNjU0LDcgKzY1NCw3IEBAIE5F
VkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHVlIHVuZmlsdGVyZWQpCiAgICAg
ICAgICAgICAgICAgQVNTRVJUKGluVmFsdWUuaXNPYmplY3QoKSk7CiAgICAgICAgICAgICAgICAg
QVNTRVJUKGlzSlNBcnJheShhc09iamVjdChpblZhbHVlKSkgfHwgYXNPYmplY3QoaW5WYWx1ZSkt
PmluaGVyaXRzKEpTQXJyYXk6OmluZm8oKSkpOwogICAgICAgICAgICAgICAgIGlmIChvYmplY3RT
dGFjay5zaXplKCkgKyBhcnJheVN0YWNrLnNpemUoKSA+IG1heGltdW1GaWx0ZXJSZWN1cnNpb24p
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBtX2V4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24o
bV9leGVjLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IobV9leGVjKSk7CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB0aHJvd1N0YWNrT3ZlcmZsb3dFcnJvcihtX2V4ZWMpOwogCiAgICAgICAg
ICAgICAgICAgSlNBcnJheSogYXJyYXkgPSBhc0FycmF5KGluVmFsdWUpOwogICAgICAgICAgICAg
ICAgIGFycmF5U3RhY2sucHVzaChhcnJheSk7CkBAIC03MDUsNyArNzA1LDcgQEAgTkVWRVJfSU5M
SU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAg
ICAgICBBU1NFUlQoaW5WYWx1ZS5pc09iamVjdCgpKTsKICAgICAgICAgICAgICAgICBBU1NFUlQo
IWlzSlNBcnJheShhc09iamVjdChpblZhbHVlKSkgJiYgIWFzT2JqZWN0KGluVmFsdWUpLT5pbmhl
cml0cyhKU0FycmF5OjppbmZvKCkpKTsKICAgICAgICAgICAgICAgICBpZiAob2JqZWN0U3RhY2su
c2l6ZSgpICsgYXJyYXlTdGFjay5zaXplKCkgPiBtYXhpbXVtRmlsdGVyUmVjdXJzaW9uKQotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gbV9leGVjLT52bSgpLnRocm93RXhjZXB0aW9uKG1fZXhl
YywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKG1fZXhlYykpOworICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gdGhyb3dTdGFja092ZXJmbG93RXJyb3IobV9leGVjKTsKIAogICAgICAgICAgICAg
ICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChpblZhbHVlKTsKICAgICAgICAgICAgICAg
ICBvYmplY3RTdGFjay5wdXNoKG9iamVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnMuY3BwCmluZGV4IGFhOGNjYzc1MTc1NmQ1NmYzNjdjYmZjYmI2YzMxYjZlZDBkYmRj
YzIuLjkyNjNmMjgyZGZiNjZlNjVkMjUwZDAzMTMyN2ExNjU1MDk2NmJjMWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgor
I2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAjaW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4K
ICNpbmNsdWRlIDx3dGYvUGFnZUJsb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgpAQCAtMTc1LDYgKzE3Niw0NSBAQCBjb25zdCBPcHRpb25zOjpFbnRyeUluZm8gT3B0aW9uczo6
c19vcHRpb25zSW5mb1tPcHRpb25zOjpudW1iZXJPZk9wdGlvbnNdID0gewogI3VuZGVmIEZPUl9F
QUNIX09QVElPTgogfTsKIAorc3RhdGljIHZvaWQgcmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucygp
Cit7CisjaWYgIUVOQUJMRShKSVQpCisgICAgT3B0aW9uczo6dXNlSklUKCkgPSBmYWxzZTsKKyAg
ICBPcHRpb25zOjp1c2VERkdKSVQoKSA9IGZhbHNlOworI2VuZGlmCisjaWYgIUVOQUJMRShZQVJS
X0pJVCkKKyAgICBPcHRpb25zOjp1c2VSZWdFeHBKSVQoKSA9IGZhbHNlOworI2VuZGlmCisgICAg
CisgICAgaWYgKE9wdGlvbnM6OnNob3dEaXNhc3NlbWJseSgpCisgICAgICAgIHx8IE9wdGlvbnM6
OnNob3dERkdEaXNhc3NlbWJseSgpCisgICAgICAgIHx8IE9wdGlvbnM6OmR1bXBCeXRlY29kZUF0
REZHVGltZSgpCisgICAgICAgIHx8IE9wdGlvbnM6OmR1bXBHcmFwaEF0RWFjaFBoYXNlKCkKKyAg
ICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uKCkKKyAgICAgICAgfHwgT3B0aW9u
czo6bG9nQ29tcGlsYXRpb25DaGFuZ2VzKCkKKyAgICAgICAgfHwgT3B0aW9uczo6dmFsaWRhdGVH
cmFwaCgpCisgICAgICAgIHx8IE9wdGlvbnM6OnZhbGlkYXRlR3JhcGhBdEVhY2hQaGFzZSgpCisg
ICAgICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VPU1IoKQorICAgICAgICB8fCBPcHRpb25zOjp2ZXJi
b3NlQ29tcGlsYXRpb25RdWV1ZSgpCisgICAgICAgIHx8IE9wdGlvbnM6OnJlcG9ydENvbXBpbGVU
aW1lcygpCisgICAgICAgIHx8IE9wdGlvbnM6OnJlcG9ydEZUTENvbXBpbGVUaW1lcygpCisgICAg
ICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VDRkEoKQorICAgICAgICB8fCBPcHRpb25zOjp2ZXJib3Nl
RlRMRmFpbHVyZSgpKQorICAgICAgICBPcHRpb25zOjphbHdheXNDb21wdXRlSGFzaCgpID0gdHJ1
ZTsKKyAgICAKKyAgICAvLyBDb21wdXRlIHRoZSBtYXhpbXVtIHZhbHVlIG9mIHRoZSByZW9wdGlt
aXphdGlvbiByZXRyeSBjb3VudGVyLiBUaGlzIGlzIHNpbXBseQorICAgIC8vIHRoZSBsYXJnZXN0
IHZhbHVlIGF0IHdoaWNoIHdlIGRvbid0IG92ZXJmbG93IHRoZSBleGVjdXRlIGNvdW50ZXIsIHdo
ZW4gdXNpbmcgaXQKKyAgICAvLyB0byBsZWZ0LXNoaWZ0IHRoZSBleGVjdXRpb24gY291bnRlciBi
eSB0aGlzIGFtb3VudC4gQ3VycmVudGx5IHRoZSB2YWx1ZSBlbmRzCisgICAgLy8gdXAgYmVpbmcg
MTgsIHNvIHRoaXMgbG9vcCBpcyBub3Qgc28gdGVycmlibGU7IGl0IHByb2JhYmx5IHRha2VzIHVw
IH4xMDAgY3ljbGVzCisgICAgLy8gdG90YWwgb24gYSAzMi1iaXQgcHJvY2Vzc29yLgorICAgIE9w
dGlvbnM6OnJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4KCkgPSAwOworICAgIHdoaWxlICgo
c3RhdGljX2Nhc3Q8aW50NjRfdD4oT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxv
bmdXYXJtVXAoKSkgPDwgKE9wdGlvbnM6OnJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4KCkg
KyAxKSkgPD0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90
Pjo6bWF4KCkpKQorICAgICAgICBPcHRpb25zOjpyZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1h
eCgpKys7CisKKyAgICBBU1NFUlQoKHN0YXRpY19jYXN0PGludDY0X3Q+KE9wdGlvbnM6OnRocmVz
aG9sZEZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVwKCkpIDw8IE9wdGlvbnM6OnJlb3B0aW1pemF0
aW9uUmV0cnlDb3VudGVyTWF4KCkpID4gMCk7CisgICAgQVNTRVJUKChzdGF0aWNfY2FzdDxpbnQ2
NF90PihPcHRpb25zOjp0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpKSA8PCBP
cHRpb25zOjpyZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1heCgpKSA8PSBzdGF0aWNfY2FzdDxp
bnQ2NF90PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSkpOworfQorCiB2b2lk
IE9wdGlvbnM6OmluaXRpYWxpemUoKQogewogICAgIC8vIEluaXRpYWxpemUgZWFjaCBvZiB0aGUg
b3B0aW9ucyB3aXRoIHRoZWlyIGRlZmF1bHQgdmFsdWVzOgpAQCAtMjA0LDMwICsyNDQsMTIgQEAg
dm9pZCBPcHRpb25zOjppbml0aWFsaXplKCkKICAgICA7IC8vIERlY29uZnVzZSBlZGl0b3JzIHRo
YXQgZG8gYXV0byBpbmRlbnRhdGlvbgogI2VuZGlmCiAgICAgCi0jaWYgIUVOQUJMRShKSVQpCi0g
ICAgdXNlSklUKCkgPSBmYWxzZTsKLSAgICB1c2VERkdKSVQoKSA9IGZhbHNlOwotI2VuZGlmCi0j
aWYgIUVOQUJMRShZQVJSX0pJVCkKLSAgICB1c2VSZWdFeHBKSVQoKSA9IGZhbHNlOwotI2VuZGlm
CisgICAgcmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucygpOwogCiAgICAgLy8gRG8gcmFuZ2UgY2hl
Y2tzIHdoZXJlIG5lZWRlZCBhbmQgbWFrZSBjb3JyZWN0aW9ucyB0byB0aGUgb3B0aW9uczoKLSAg
ICBBU1NFUlQodGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSA+PSB0aHJlc2hv
bGRGb3JPcHRpbWl6ZUFmdGVyV2FybVVwKCkpOwotICAgIEFTU0VSVCh0aHJlc2hvbGRGb3JPcHRp
bWl6ZUFmdGVyV2FybVVwKCkgPj0gdGhyZXNob2xkRm9yT3B0aW1pemVTb29uKCkpOwotICAgIEFT
U0VSVCh0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyV2FybVVwKCkgPj0gMCk7Ci0KLSAgICAvLyBD
b21wdXRlIHRoZSBtYXhpbXVtIHZhbHVlIG9mIHRoZSByZW9wdGltaXphdGlvbiByZXRyeSBjb3Vu
dGVyLiBUaGlzIGlzIHNpbXBseQotICAgIC8vIHRoZSBsYXJnZXN0IHZhbHVlIGF0IHdoaWNoIHdl
IGRvbid0IG92ZXJmbG93IHRoZSBleGVjdXRlIGNvdW50ZXIsIHdoZW4gdXNpbmcgaXQKLSAgICAv
LyB0byBsZWZ0LXNoaWZ0IHRoZSBleGVjdXRpb24gY291bnRlciBieSB0aGlzIGFtb3VudC4gQ3Vy
cmVudGx5IHRoZSB2YWx1ZSBlbmRzCi0gICAgLy8gdXAgYmVpbmcgMTgsIHNvIHRoaXMgbG9vcCBp
cyBub3Qgc28gdGVycmlibGU7IGl0IHByb2JhYmx5IHRha2VzIHVwIH4xMDAgY3ljbGVzCi0gICAg
Ly8gdG90YWwgb24gYSAzMi1iaXQgcHJvY2Vzc29yLgotICAgIHJlb3B0aW1pemF0aW9uUmV0cnlD
b3VudGVyTWF4KCkgPSAwOwotICAgIHdoaWxlICgoc3RhdGljX2Nhc3Q8aW50NjRfdD4odGhyZXNo
b2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSkgPDwgKHJlb3B0aW1pemF0aW9uUmV0cnlD
b3VudGVyTWF4KCkgKyAxKSkgPD0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpudW1lcmljX2xp
bWl0czxpbnQzMj46Om1heCgpKSkKLSAgICAgICAgcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJN
YXgoKSsrOwotCi0gICAgQVNTRVJUKChzdGF0aWNfY2FzdDxpbnQ2NF90Pih0aHJlc2hvbGRGb3JP
cHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpKSA8PCByZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1h
eCgpKSA+IDApOwotICAgIEFTU0VSVCgoc3RhdGljX2Nhc3Q8aW50NjRfdD4odGhyZXNob2xkRm9y
T3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSkgPDwgcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJN
YXgoKSkgPD0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMj46
Om1heCgpKSk7CisgICAgQVNTRVJUKE9wdGlvbnM6OnRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJM
b25nV2FybVVwKCkgPj0gT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlcldhcm1VcCgp
KTsKKyAgICBBU1NFUlQoT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlcldhcm1VcCgp
ID49IE9wdGlvbnM6OnRocmVzaG9sZEZvck9wdGltaXplU29vbigpKTsKKyAgICBBU1NFUlQoT3B0
aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVBZnRlcldhcm1VcCgpID49IDApOwogfQogCiAvLyBQ
YXJzZXMgYSBzaW5nbGUgY29tbWFuZCBsaW5lIG9wdGlvbiBpbiB0aGUgZm9ybWF0ICI8b3B0aW9u
TmFtZT49PHZhbHVlPiIKQEAgLTI1MSw2ICsyNzMsNyBAQCBib29sIE9wdGlvbnM6OnNldE9wdGlv
bihjb25zdCBjaGFyKiBhcmcpCiAgICAgICAgIGJvb2wgc3VjY2VzcyA9IHBhcnNlKHZhbHVlU3Ry
LCB2YWx1ZSk7ICAgICAgICAgIFwKICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgbmFtZV8oKSA9IHZhbHVlOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICByZWNvbXB1dGVEZXBlbmRlbnRP
cHRpb25zKCk7ICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHJldHVybiB0cnVlOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICB9ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIHJldHVybiBmYWxzZTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTI1OSw3ICsyODIsNyBAQCBib29s
IE9wdGlvbnM6OnNldE9wdGlvbihjb25zdCBjaGFyKiBhcmcpCiAgICAgSlNDX09QVElPTlMoRk9S
X0VBQ0hfT1BUSU9OKQogI3VuZGVmIEZPUl9FQUNIX09QVElPTgogCi0gICAgICAgIHJldHVybiBm
YWxzZTsgLy8gTm8gb3B0aW9uIG1hdGNoZWQuCisgICAgcmV0dXJuIGZhbHNlOyAvLyBObyBvcHRp
b24gbWF0Y2hlZC4KIH0KIAogdm9pZCBPcHRpb25zOjpkdW1wQWxsT3B0aW9ucyhGSUxFKiBzdHJl
YW0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKaW5kZXggYzg4YjNhYzZj
MzZiZTkwOGEyMmUwNDI1MmNkNzU5NzZlMmFlMGRlYy4uMDViNmZlMDFkMWZhZDRlMjJhNDMxYWVj
Mzc2NzIzYTJjMWZhOTkyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLCAy
MDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkpTRXhw
b3J0TWFjcm9zLmgiCiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC05NCw2
ICs5NSwxMCBAQCB0eXBlZGVmIE9wdGlvblJhbmdlIG9wdGlvblJhbmdlOwogICAgIHYoYm9vbCwg
dXNlREZHSklULCB0cnVlKSBcCiAgICAgdihib29sLCB1c2VSZWdFeHBKSVQsIHRydWUpIFwKICAg
ICBcCisgICAgdih1bnNpZ25lZCwgbWF4UGVyVGhyZWFkU3RhY2tVc2FnZSwgNCAqIE1CKSBcCisg
ICAgdih1bnNpZ25lZCwgcmVzZXJ2ZWRab25lU2l6ZSwgMTI4ICogS0IpIFwKKyAgICB2KHVuc2ln
bmVkLCBlcnJvck1vZGVSZXNlcnZlZFpvbmVTaXplLCA2NCAqIEtCKSBcCisgICAgXAogICAgIHYo
Ym9vbCwgY3Jhc2hJZkNhbnRBbGxvY2F0ZUpJVE1lbW9yeSwgZmFsc2UpIFwKICAgICBcCiAgICAg
dihib29sLCBmb3JjZURGR0NvZGVCbG9ja0xpdmVuZXNzLCBmYWxzZSkgXApAQCAtMTE4LDExICsx
MjMsMTkgQEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25SYW5nZTsKICAgICB2KGJvb2wsIHZl
cmJvc2VDYWxsTGluaywgZmFsc2UpIFwKICAgICB2KGJvb2wsIHZlcmJvc2VDb21waWxhdGlvblF1
ZXVlLCBmYWxzZSkgXAogICAgIHYoYm9vbCwgcmVwb3J0Q29tcGlsZVRpbWVzLCBmYWxzZSkgXAor
ICAgIHYoYm9vbCwgcmVwb3J0RlRMQ29tcGlsZVRpbWVzLCBmYWxzZSkgXAogICAgIHYoYm9vbCwg
dmVyYm9zZUNGQSwgZmFsc2UpIFwKKyAgICB2KGJvb2wsIHZlcmJvc2VGVExUb0pTVGh1bmssIGZh
bHNlKSBcCisgICAgdihib29sLCB2ZXJib3NlRlRMRmFpbHVyZSwgZmFsc2UpIFwKKyAgICB2KGJv
b2wsIGFsd2F5c0NvbXB1dGVIYXNoLCBmYWxzZSkgXAorICAgIHYoYm9vbCwgdGVzdFRoZUZUTCwg
ZmFsc2UpIFwKKyAgICB2KGJvb2wsIHZlcmJvc2VTYW5pdGl6ZVN0YWNrLCBmYWxzZSkgXAogICAg
IFwKLSAgICB2KGJvb2wsIGVuYWJsZU9TUkVudHJ5SW5Mb29wcywgdHJ1ZSkgXAorICAgIHYoYm9v
bCwgZW5hYmxlT1NSRW50cnlUb0RGRywgdHJ1ZSkgXAorICAgIHYoYm9vbCwgZW5hYmxlT1NSRW50
cnlUb0ZUTCwgdHJ1ZSkgXAogICAgIFwKICAgICB2KGJvb2wsIHVzZUV4cGVyaW1lbnRhbEZUTCwg
ZmFsc2UpIFwKKyAgICB2KGJvb2wsIGVuYWJsZUV4cGVyaW1lbnRhbEZUTENvdmVyYWdlLCBmYWxz
ZSkgXAogICAgIHYoYm9vbCwgdXNlRlRMVEJBQSwgdHJ1ZSkgXAogICAgIHYoYm9vbCwgZW5hYmxl
TExWTUZhc3RJU2VsLCBmYWxzZSkgXAogICAgIHYoYm9vbCwgdXNlTExWTVNtYWxsQ29kZU1vZGVs
LCBmYWxzZSkgXApAQCAtMTM0LDEwICsxNDcsMTIgQEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRp
b25SYW5nZTsKICAgICB2KHVuc2lnbmVkLCBsbHZtQmFja2VuZE9wdGltaXphdGlvbkxldmVsLCAy
KSBcCiAgICAgdih1bnNpZ25lZCwgbGx2bU9wdGltaXphdGlvbkxldmVsLCAyKSBcCiAgICAgdih1
bnNpZ25lZCwgbGx2bVNpemVMZXZlbCwgMCkgXAorICAgIHYoYm9vbCwgbGx2bURpc2FsbG93QVZY
LCB0cnVlKSBcCiAgICAgdihib29sLCBmdGxDcmFzaGVzLCBmYWxzZSkgLyogZm9vbC1wcm9vZiB3
YXkgb2YgY2hlY2tpbmcgdGhhdCB5b3UgZW5kZWQgdXAgaW4gdGhlIEZUTC4gOy0pICovXAogICAg
IFwKICAgICB2KGJvb2wsIGVuYWJsZUNvbmN1cnJlbnRKSVQsIHRydWUpIFwKLSAgICB2KHVuc2ln
bmVkLCBudW1iZXJPZkNvbXBpbGVyVGhyZWFkcywgY29tcHV0ZU51bWJlck9mV29ya2VyVGhyZWFk
cygyKSAtIDEpIFwKKyAgICB2KHVuc2lnbmVkLCBudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcywg
Y29tcHV0ZU51bWJlck9mV29ya2VyVGhyZWFkcygyKSAtIDEpIFwKKyAgICB2KHVuc2lnbmVkLCBu
dW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkcywgY29tcHV0ZU51bWJlck9mV29ya2VyVGhyZWFkcyg4
KSAtIDEpIFwKICAgICBcCiAgICAgdihib29sLCBlbmFibGVQcm9maWxlciwgZmFsc2UpIFwKICAg
ICBcCkBAIC0xNDYsNiArMTYxLDggQEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25SYW5nZTsK
ICAgICBcCiAgICAgdihib29sLCBlbmFibGVBcmNoaXRlY3R1cmVTcGVjaWZpY09wdGltaXphdGlv
bnMsIHRydWUpIFwKICAgICBcCisgICAgdihib29sLCBicmVha09uVGhyb3csIGZhbHNlKSBcCisg
ICAgXAogICAgIHYodW5zaWduZWQsIG1heGltdW1PcHRpbWl6YXRpb25DYW5kaWRhdGVJbnN0cnVj
dGlvbkNvdW50LCAxMDAwMCkgXAogICAgIFwKICAgICB2KHVuc2lnbmVkLCBtYXhpbXVtRnVuY3Rp
b25Gb3JDYWxsSW5saW5lQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3VudCwgMTgwKSBcCkBAIC0xNTQs
NiArMTcxLDEyIEBAIHR5cGVkZWYgT3B0aW9uUmFuZ2Ugb3B0aW9uUmFuZ2U7CiAgICAgXAogICAg
IC8qIERlcHRoIG9mIGlubGluZSBzdGFjaywgc28gMSA9IG5vIGlubGluaW5nLCAyID0gb25lIGxl
dmVsLCBldGMuICovIFwKICAgICB2KHVuc2lnbmVkLCBtYXhpbXVtSW5saW5pbmdEZXB0aCwgNSkg
XAorICAgIHYodW5zaWduZWQsIG1heGltdW1JbmxpbmluZ1JlY3Vyc2lvbiwgMikgXAorICAgIHYo
dW5zaWduZWQsIG1heGltdW1JbmxpbmluZ0RlcHRoRm9yTXVzdElubGluZSwgNykgXAorICAgIHYo
dW5zaWduZWQsIG1heGltdW1JbmxpbmluZ1JlY3Vyc2lvbkZvck11c3RJbmxpbmUsIDMpIFwKKyAg
ICBcCisgICAgdihib29sLCBlbmFibGVQb2x5dmFyaWFudENhbGxJbmxpbmluZywgdHJ1ZSkgXAor
ICAgIHYoYm9vbCwgZW5hYmxlUG9seXZhcmlhbnRCeUlkSW5saW5pbmcsIHRydWUpIFwKICAgICBc
CiAgICAgdih1bnNpZ25lZCwgbWF4aW11bUJpbmFyeVN0cmluZ1N3aXRjaENhc2VMZW5ndGgsIDUw
KSBcCiAgICAgdih1bnNpZ25lZCwgbWF4aW11bUJpbmFyeVN0cmluZ1N3aXRjaFRvdGFsTGVuZ3Ro
LCAyMDAwKSBcCkBAIC0yMTAsNiArMjMzLDcgQEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25S
YW5nZTsKICAgICB2KGJvb2wsIHNob3dPYmplY3RTdGF0aXN0aWNzLCBmYWxzZSkgXAogICAgIFwK
ICAgICB2KGJvb2wsIGxvZ0dDLCBmYWxzZSkgXAorICAgIHYoYm9vbCwgZGlzYWJsZUdDLCBmYWxz
ZSkgXAogICAgIHYodW5zaWduZWQsIGdjTWF4SGVhcFNpemUsIDApIFwKICAgICB2KGJvb2wsIHJl
Y29yZEdDUGF1c2VUaW1lcywgZmFsc2UpIFwKICAgICB2KGJvb2wsIGxvZ0hlYXBTdGF0aXN0aWNz
QXRFeGl0LCBmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnaXN0ZXJQcmVzZXJ2YXRpb25Nb2RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzM1MWRiNGEzMjYzYTQ4
MTFmYTRjNGU4MmJjMDQ0YTllZGMzZTM4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ2lzdGVyUHJlc2VydmF0aW9uTW9kZS5oCkBAIC0wLDAgKzEs
MzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBSZWdpc3RlclByZXNlcnZhdGlvbk1vZGVfaAorI2RlZmluZSBSZWdpc3RlclByZXNlcnZh
dGlvbk1vZGVfaAorCituYW1lc3BhY2UgSlNDIHsKKworZW51bSBSZWdpc3RlclByZXNlcnZhdGlv
bk1vZGUgeworICAgIFJlZ2lzdGVyUHJlc2VydmF0aW9uTm90UmVxdWlyZWQsCisgICAgTXVzdFBy
ZXNlcnZlUmVnaXN0ZXJzCit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIFJl
Z2lzdGVyUHJlc2VydmF0aW9uTW9kZV9oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0YWNrQWxpZ25tZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdGFja0FsaWdubWVudC5oCmluZGV4IGI4MDNlNGRlZGQ5OGVkMjhhYjI5YzJkMTkwMjVk
NDM3Yzg2OTc2YzguLmQyOTgwMmIzZmRiY2U1NTkyNmM2M2EzYjEyY2RiYjRlNWI1MzQxNTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrQWxpZ25tZW50LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tBbGlnbm1lbnQuaApAQCAt
MjcsNiArMjcsOCBAQAogI2RlZmluZSBTdGFja0FsaWdubWVudF9oCiAKICNpbmNsdWRlICJKU0NK
U1ZhbHVlLmgiCisjaW5jbHVkZSAiSlNTdGFjay5oIgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFz
Lmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC0zOCw2ICs0MCwyNSBAQCBpbmxpbmUgdW5zaWdu
ZWQgc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKQogICAgIHJldHVybiBzdGFja0FsaWdubWVudEJ5
dGVzKCkgLyBzaXplb2YoRW5jb2RlZEpTVmFsdWUpOwogfQogCisvLyBBbGlnbiBhcmd1bWVudCBj
b3VudCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBDYWxsRnJhbWVIZWFkZXJTaXplIG1heSBiZQor
Ly8gYW4gInVuYWxpZ25lZCIgY291bnQgb2YgcmVnaXN0ZXJzLgoraW5saW5lIHVuc2lnbmVkIHJv
dW5kQXJndW1lbnRDb3VudFRvQWxpZ25GcmFtZSh1bnNpZ25lZCBhcmd1bWVudENvdW50KQorewor
ICAgIHJldHVybiBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3Rl
cnMoKSwgYXJndW1lbnRDb3VudCArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUpIC0gSlNT
dGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsKK30KKworLy8gQWxpZ24gbG9jYWwgcmVnaXN0ZXIg
Y291bnQgdG8gbWFrZSB0aGUgbGFzdCBsb2NhbCBlbmQgb24gYSBzdGFjayBhbGlnbmVkIGFkZHJl
c3MgZ2l2ZW4gdGhlCisvLyBDYWxsRnJhbWUgaXMgYXQgYW4gYWRkcmVzcyB0aGF0IGlzIHN0YWNr
IGFsaWduZWQgbWludXMgSlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUKK2lubGluZSB1bnNp
Z25lZCByb3VuZExvY2FsUmVnaXN0ZXJDb3VudEZvckZyYW1lUG9pbnRlck9mZnNldCh1bnNpZ25l
ZCBsb2NhbFJlZ2lzdGVyQ291bnQpCit7CisgICAgcmV0dXJuIFdURjo6cm91bmRVcFRvTXVsdGlw
bGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBsb2NhbFJlZ2lzdGVyQ291bnQgKyBKU1N0
YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSkgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6
ZTsKK30KKworaW5saW5lIHVuc2lnbmVkIGxvZ1N0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkKK3sK
KyAgICByZXR1cm4gV1RGOjpmYXN0TG9nMihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBTdGFja0FsaWdubWVudF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdSZWN1cnNpb25DaGVj
a2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1JlY3Vyc2lvbkNo
ZWNrZXIuY3BwCmluZGV4IDFmMjA0MjMxZTk2MjgyZjQ1MTMwMmQxMmM1OTYwNmZiN2ZmMjUwMmYu
LjY3MjQ2YWE2MDQ2OTI1Nzk5MTI0ZTZjZDgxNjUxNWI1ZDc1Yjk4Y2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1JlY3Vyc2lvbkNoZWNrZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1JlY3Vyc2lvbkNoZWNrZXIu
Y3BwCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBKU1ZhbHVlIFN0cmluZ1Jl
Y3Vyc2lvbkNoZWNrZXI6OnRocm93U3RhY2tPdmVyZmxvd0Vycm9yKCkKIHsKLSAgICByZXR1cm4g
bV9leGVjLT52bSgpLnRocm93RXhjZXB0aW9uKG1fZXhlYywgY3JlYXRlU3RhY2tPdmVyZmxvd0Vy
cm9yKG1fZXhlYykpOworICAgIHJldHVybiBKU0M6OnRocm93U3RhY2tPdmVyZmxvd0Vycm9yKG1f
ZXhlYyk7CiB9CiAKIEpTVmFsdWUgU3RyaW5nUmVjdXJzaW9uQ2hlY2tlcjo6ZW1wdHlTdHJpbmco
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKaW5kZXggODc4
MWFiMDA3MzRiMjBhMDljZGVlMTdjM2I1ZGVkNjVjZDBmZDc5OS4uMDQyOTFmN2U4ZGQyNGU4YWIz
M2Q3NWFmMWRhNDU2OGYyYmM5OWU2OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmUuY3BwCkBAIC0xMDQ4LDggKzEwNDgsMTMgQEAgdm9pZCBTdHJ1Y3R1cmU6OmR1
bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBpZiAodGFibGUpIHsKICAgICAgICAgUHJv
cGVydHlUYWJsZTo6aXRlcmF0b3IgaXRlciA9IHRhYmxlLT5iZWdpbigpOwogICAgICAgICBQcm9w
ZXJ0eVRhYmxlOjppdGVyYXRvciBlbmQgPSB0YWJsZS0+ZW5kKCk7Ci0gICAgICAgIGZvciAoOyBp
dGVyICE9IGVuZDsgKytpdGVyKQorICAgICAgICBmb3IgKDsgaXRlciAhPSBlbmQ7ICsraXRlcikg
ewogICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCBpdGVyLT5rZXksICI6Iiwgc3RhdGljX2Nh
c3Q8aW50PihpdGVyLT5vZmZzZXQpKTsKKyAgICAgICAgICAgIGlmIChpdGVyLT5zcGVjaWZpY1Zh
bHVlKSB7CisgICAgICAgICAgICAgICAgRHVtcENvbnRleHQgZHVtbXlDb250ZXh0OworICAgICAg
ICAgICAgICAgIG91dC5wcmludCgiPT4iLCBSYXdQb2ludGVyKGl0ZXItPnNwZWNpZmljVmFsdWUu
Z2V0KCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgc3Ry
dWN0dXJlLT5tX2xvY2sudW5sb2NrKCk7CiAgICAgfQpAQCAtMTA1OSw2ICsxMDY0LDEwIEBAIHZv
aWQgU3RydWN0dXJlOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgICAgIGlmICgh
c3RydWN0dXJlLT5tX25hbWVJblByZXZpb3VzKQogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIG91dC5wcmludChjb21tYSwgc3RydWN0dXJlLT5tX25hbWVJblByZXZpb3VzLmdldCgpLCAi
OiIsIHN0YXRpY19jYXN0PGludD4oc3RydWN0dXJlLT5tX29mZnNldCkpOworICAgICAgICBpZiAo
c3RydWN0dXJlLT5tX3NwZWNpZmljVmFsdWVJblByZXZpb3VzKSB7CisgICAgICAgICAgICBEdW1w
Q29udGV4dCBkdW1teUNvbnRleHQ7CisgICAgICAgICAgICBvdXQucHJpbnQoIj0+IiwgUmF3UG9p
bnRlcihzdHJ1Y3R1cmUtPm1fc3BlY2lmaWNWYWx1ZUluUHJldmlvdXMuZ2V0KCkpKTsKKyAgICAg
ICAgfQogICAgIH0KICAgICAKICAgICBvdXQucHJpbnQoIn0sICIsIEluZGV4aW5nVHlwZUR1bXAo
aW5kZXhpbmdUeXBlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCA5
NTU4YjhkNzIzNDEwYjAwZTE2MDE0ZDcwNTFmZDM1NmIwYmZmMDg2Li4zMzY1ZTQ1ZGJjYzMyZGZk
MDJjYmY3NDdkMmI5YmRkN2I3NWYwMmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0u
Y3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMSwgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgs
IDIwMTEsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCwxMSArMzAsMTMgQEAKICNpbmNsdWRlICJW
TS5oIgogCiAjaW5jbHVkZSAiQXJnTGlzdC5oIgorI2luY2x1ZGUgIkFyaXR5Q2hlY2tGYWlsUmV0
dXJuVGh1bmtzLmgiCiAjaW5jbHVkZSAiQXJyYXlCdWZmZXJOZXV0ZXJpbmdXYXRjaHBvaW50Lmgi
CiAjaW5jbHVkZSAiQ2FsbEZyYW1lSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgog
I2luY2x1ZGUgIkNvZGVDYWNoZS5oIgogI2luY2x1ZGUgIkNvbW1vbklkZW50aWZpZXJzLmgiCisj
aW5jbHVkZSAiQ29tbW9uU2xvd1BhdGhzLmgiCiAjaW5jbHVkZSAiREZHTG9uZ0xpdmVkU3RhdGUu
aCIKICNpbmNsdWRlICJERkdXb3JrbGlzdC5oIgogI2luY2x1ZGUgIkRlYnVnZ2VyQWN0aXZhdGlv
bi5oIgpAQCAtNDksNiArNTEsNyBAQAogI2luY2x1ZGUgIklkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJJbmNyZW1lbnRhbFN3ZWVwZXIuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1
ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRlICJKU0FQSVZhbHVlV3JhcHBlci5oIgogI2luY2x1ZGUg
IkpTQWN0aXZhdGlvbi5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKQEAgLTE2Niw2ICsxNjksNyBA
QCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgLCB2bVR5cGUo
dm1UeXBlKQogICAgICwgY2xpZW50RGF0YSgwKQogICAgICwgdG9wQ2FsbEZyYW1lKENhbGxGcmFt
ZTo6bm9DYWxsZXIoKSkKKyAgICAsIHN0YWNrUG9pbnRlckF0Vk1FbnRyeSgwKQogICAgICwgYXJy
YXlDb25zdHJ1Y3RvclRhYmxlKGFkb3B0UHRyKG5ldyBIYXNoVGFibGUoSlNDOjphcnJheUNvbnN0
cnVjdG9yVGFibGUpKSkKICAgICAsIGFycmF5UHJvdG90eXBlVGFibGUoYWRvcHRQdHIobmV3IEhh
c2hUYWJsZShKU0M6OmFycmF5UHJvdG90eXBlVGFibGUpKSkKICAgICAsIGJvb2xlYW5Qcm90b3R5
cGVUYWJsZShhZG9wdFB0cihuZXcgSGFzaFRhYmxlKEpTQzo6Ym9vbGVhblByb3RvdHlwZVRhYmxl
KSkpCkBAIC0yMTcsNyArMjIxLDcgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhl
YXBUeXBlKQogICAgICwgbV9pbml0aWFsaXppbmdPYmplY3RDbGFzcygwKQogI2VuZGlmCiAgICAg
LCBtX3N0YWNrTGltaXQoMCkKLSNpZiBVU0UoU0VQQVJBVEVfQ19BTkRfSlNfU1RBQ0spCisjaWYg
RU5BQkxFKExMSU5UX0NfTE9PUCkKICAgICAsIG1fanNTdGFja0xpbWl0KDApCiAjZW5kaWYKICAg
ICAsIG1faW5EZWZpbmVPd25Qcm9wZXJ0eShmYWxzZSkKQEAgLTIyNSw3ICsyMjksMTEgQEAgVk06
OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogewogICAgIGludGVycHJldGVy
ID0gbmV3IEludGVycHJldGVyKCp0aGlzKTsKICAgICBTdGFja0JvdW5kcyBzdGFjayA9IHd0ZlRo
cmVhZERhdGEoKS5zdGFjaygpOwotICAgIHNldFN0YWNrTGltaXQoc3RhY2sucmVjdXJzaW9uTGlt
aXQoKSk7CisgICAgdXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVTaXplKE9wdGlvbnM6
OnJlc2VydmVkWm9uZVNpemUoKSk7CisjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKKyAgICBpbnRl
cnByZXRlci0+c3RhY2soKS5zZXRSZXNlcnZlZFpvbmVTaXplKE9wdGlvbnM6OnJlc2VydmVkWm9u
ZVNpemUoKSk7CisjZW5kaWYKKyAgICBzZXRMYXN0U3RhY2tUb3Aoc3RhY2sub3JpZ2luKCkpOwog
CiAgICAgLy8gTmVlZCB0byBiZSBjYXJlZnVsIHRvIGtlZXAgZXZlcnl0aGluZyBjb25zaXN0ZW50
IGhlcmUKICAgICBKU0xvY2tIb2xkZXIgbG9jayh0aGlzKTsKQEAgLTI2Nyw3ICsyNzUsOSBAQCBW
TTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAKICNpZiBFTkFCTEUoSklU
KQogICAgIGppdFN0dWJzID0gYWRvcHRQdHIobmV3IEpJVFRodW5rcygpKTsKKyAgICBhcml0eUNo
ZWNrRmFpbFJldHVyblRodW5rcyA9IHN0ZDo6bWFrZV91bmlxdWU8QXJpdHlDaGVja0ZhaWxSZXR1
cm5UaHVua3M+KCk7CiAjZW5kaWYKKyAgICBhcml0eUNoZWNrRGF0YSA9IHN0ZDo6bWFrZV91bmlx
dWU8Q29tbW9uU2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YT4oKTsKIAogI2lmIEVOQUJMRShGVExf
SklUKQogICAgIGZ0bFRodW5rcyA9IHN0ZDo6bWFrZV91bmlxdWU8RlRMOjpUaHVua3M+KCk7CkBA
IC0yODAsNyArMjkwLDcgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBl
KQogI2VuZGlmCiAKICAgICBoZWFwLm5vdGlmeUlzU2FmZVRvQ29sbGVjdCgpOwotCisgICAgCiAg
ICAgTExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKCp0aGlzKTsKICAgICAKICAgICBpZiAo
T3B0aW9uczo6ZW5hYmxlUHJvZmlsZXIoKSkgewpAQCAtMzA2LDYgKzMxNiwxNiBAQCBWTTo6Vk0o
Vk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgbV90eXBlZEFycmF5Q29udHJv
bGxlciA9IGFkb3B0UmVmKG5ldyBTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcigpKTsKIH0KIAor
I2lmIEVOQUJMRShERkdfSklUKQorc3RhdGljIHZvaWQgY2xlYW5Xb3JrbGlzdChWTSYgdm0sIERG
Rzo6V29ya2xpc3QqIHdvcmtsaXN0KQoreworICAgIGlmICghd29ya2xpc3QpCisgICAgICAgIHJl
dHVybjsKKyAgICB3b3JrbGlzdC0+d2FpdFVudGlsQWxsUGxhbnNGb3JWTUFyZVJlYWR5KHZtKTsK
KyAgICB3b3JrbGlzdC0+cmVtb3ZlQWxsUmVhZHlQbGFuc0ZvclZNKHZtKTsKK30KKyNlbmRpZiAv
LyBFTkFCTEUoREZHX0pJVCkKKwogVk06On5WTSgpCiB7CiAgICAgLy8gTmV2ZXIgR0MsIGV2ZXIg
YWdhaW4uCkBAIC0zMTQsMTAgKzMzNCw4IEBAIFZNOjp+Vk0oKQogI2lmIEVOQUJMRShERkdfSklU
KQogICAgIC8vIE1ha2Ugc3VyZSBjb25jdXJyZW50IGNvbXBpbGF0aW9ucyBhcmUgZG9uZSwgYnV0
IGRvbid0IGluc3RhbGwgdGhlbSwgc2luY2UgdGhlcmUgaXMKICAgICAvLyBubyBwb2ludCB0byBk
b2luZyBzby4KLSAgICBpZiAod29ya2xpc3QpIHsKLSAgICAgICAgd29ya2xpc3QtPndhaXRVbnRp
bEFsbFBsYW5zRm9yVk1BcmVSZWFkeSgqdGhpcyk7Ci0gICAgICAgIHdvcmtsaXN0LT5yZW1vdmVB
bGxSZWFkeVBsYW5zRm9yVk0oKnRoaXMpOwotICAgIH0KKyAgICBjbGVhbldvcmtsaXN0KCp0aGlz
LCBERkc6OmV4aXN0aW5nR2xvYmFsREZHV29ya2xpc3RPck51bGwoKSk7CisgICAgY2xlYW5Xb3Jr
bGlzdCgqdGhpcywgREZHOjpleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxsKCkpOwogI2Vu
ZGlmIC8vIEVOQUJMRShERkdfSklUKQogICAgIAogICAgIC8vIENsZWFyIHRoaXMgZmlyc3QgdG8g
ZW5zdXJlIHRoYXQgbm9ib2R5IHRyaWVzIHRvIHJlbW92ZSB0aGVtc2VsdmVzIGZyb20gaXQuCkBA
IC00NjEsOCArNDc5LDggQEAgTmF0aXZlRXhlY3V0YWJsZSogVk06OmdldEhvc3RGdW5jdGlvbihO
YXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgSW50cmluc2ljIGludHJpbnMKIE5hdGl2ZUV4ZWN1dGFi
bGUqIFZNOjpnZXRIb3N0RnVuY3Rpb24oTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIE5hdGl2ZUZ1
bmN0aW9uIGNvbnN0cnVjdG9yKQogewogICAgIHJldHVybiBOYXRpdmVFeGVjdXRhYmxlOjpjcmVh
dGUoKnRoaXMsCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2Rl
UmVmKGxsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUpLCBmdW5jdGlvbiwKLSAgICAgICAgTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmOjpjcmVhdGVMTEludENvZGVSZWYobGxpbnRfbmF0aXZlX2NvbnN0
cnVjdF90cmFtcG9saW5lKSwgY29uc3RydWN0b3IsCisgICAgICAgIGFkb3B0UmVmKG5ldyBOYXRp
dmVKSVRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjo6Y3JlYXRlTExJbnRDb2RlUmVmKGxsaW50
X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmUpLCBKSVRDb2RlOjpIb3N0Q2FsbFRodW5rKSksIGZ1bmN0
aW9uLAorICAgICAgICBhZG9wdFJlZihuZXcgTmF0aXZlSklUQ29kZShNYWNyb0Fzc2VtYmxlckNv
ZGVSZWY6OmNyZWF0ZUxMSW50Q29kZVJlZihsbGludF9uYXRpdmVfY29uc3RydWN0X3RyYW1wb2xp
bmUpLCBKSVRDb2RlOjpIb3N0Q2FsbFRodW5rKSksIGNvbnN0cnVjdG9yLAogICAgICAgICBOb0lu
dHJpbnNpYyk7CiB9CiAKQEAgLTQ5MCwxNCArNTA4LDIxIEBAIHZvaWQgVk06OnN0b3BTYW1wbGlu
ZygpCiAgICAgaW50ZXJwcmV0ZXItPnN0b3BTYW1wbGluZygpOwogfQogCi12b2lkIFZNOjpwcmVw
YXJlVG9EaXNjYXJkQ29kZSgpCi17CiAjaWYgRU5BQkxFKERGR19KSVQpCitzdGF0aWMgdm9pZCBw
cmVwYXJlVG9EaXNjYXJkQ29kZUZvcihWTSYgdm0sIERGRzo6V29ya2xpc3QqIHdvcmtsaXN0KQor
ewogICAgIGlmICghd29ya2xpc3QpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICB3b3JrbGlz
dC0+Y29tcGxldGVBbGxQbGFuc0ZvclZNKCp0aGlzKTsKLSNlbmRpZgorICAgIHdvcmtsaXN0LT5j
b21wbGV0ZUFsbFBsYW5zRm9yVk0odm0pOworfQorI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQor
Cit2b2lkIFZNOjpwcmVwYXJlVG9EaXNjYXJkQ29kZSgpCit7CisjaWYgRU5BQkxFKERGR19KSVQp
CisgICAgcHJlcGFyZVRvRGlzY2FyZENvZGVGb3IoKnRoaXMsIERGRzo6ZXhpc3RpbmdHbG9iYWxE
RkdXb3JrbGlzdE9yTnVsbCgpKTsKKyAgICBwcmVwYXJlVG9EaXNjYXJkQ29kZUZvcigqdGhpcywg
REZHOjpleGlzdGluZ0dsb2JhbEZUTFdvcmtsaXN0T3JOdWxsKCkpOworI2VuZGlmIC8vIEVOQUJM
RShERkdfSklUKQogfQogCiB2b2lkIFZNOjpkaXNjYXJkQWxsQ29kZSgpCkBAIC02MzIsNiArNjU3
LDExIEBAIHN0YXRpYyB2b2lkIGFwcGVuZFNvdXJjZVRvRXJyb3IoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIEVycm9ySW5zdGFuY2UqIGV4Y2VwdGlvbiwKICAgICAKIEpTVmFsdWUgVk06OnRocm93RXhj
ZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBlcnJvcikKIHsKKyAgICBpZiAoT3B0aW9u
czo6YnJlYWtPblRocm93KCkpIHsKKyAgICAgICAgZGF0YUxvZygiSW4gY2FsbCBmcmFtZSAiLCBS
YXdQb2ludGVyKGV4ZWMpLCAiIGZvciBjb2RlIGJsb2NrICIsICpleGVjLT5jb2RlQmxvY2soKSwg
IlxuIik7CisgICAgICAgIENSQVNIKCk7CisgICAgfQorICAgIAogICAgIEFTU0VSVChleGVjID09
IHRvcENhbGxGcmFtZSB8fCBleGVjID09IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Z2xv
YmFsRXhlYygpIHx8IGV4ZWMgPT0gZXhlYy0+dm1FbnRyeUdsb2JhbE9iamVjdCgpLT5nbG9iYWxF
eGVjKCkpOwogICAgIAogICAgIFZlY3RvcjxTdGFja0ZyYW1lPiBzdGFja1RyYWNlOwpAQCAtNzA2
LDYgKzczNiwyNCBAQCB2b2lkIFZNOjogY2xlYXJFeGNlcHRpb25TdGFjaygpCiAgICAgbV9leGNl
cHRpb25TdGFjayA9IFJlZkNvdW50ZWRBcnJheTxTdGFja0ZyYW1lPigpOwogfQogCitzaXplX3Qg
Vk06OnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6ZShzaXplX3QgcmVzZXJ2ZWRa
b25lU2l6ZSkKK3sKKyAgICBzaXplX3Qgb2xkUmVzZXJ2ZWRab25lU2l6ZSA9IG1fcmVzZXJ2ZWRa
b25lU2l6ZTsKKyAgICBtX3Jlc2VydmVkWm9uZVNpemUgPSByZXNlcnZlZFpvbmVTaXplOworCisg
ICAgdm9pZCogc3RhY2tMaW1pdDsKKyAgICBpZiAoc3RhY2tQb2ludGVyQXRWTUVudHJ5KSB7Cisg
ICAgICAgIEFTU0VSVCh3dGZUaHJlYWREYXRhKCkuc3RhY2soKS5pc0dyb3dpbmdEb3dud2FyZCgp
KTsKKyAgICAgICAgY2hhciogc3RhcnRPZlN0YWNrID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4o
c3RhY2tQb2ludGVyQXRWTUVudHJ5KTsKKyAgICAgICAgY2hhciogZGVzaXJlZFN0YWNrTGltaXQg
PSBzdGFydE9mU3RhY2sgLSBPcHRpb25zOjptYXhQZXJUaHJlYWRTdGFja1VzYWdlKCkgKyByZXNl
cnZlZFpvbmVTaXplOworICAgICAgICBzdGFja0xpbWl0ID0gd3RmVGhyZWFkRGF0YSgpLnN0YWNr
KCkucmVjdXJzaW9uTGltaXQocmVzZXJ2ZWRab25lU2l6ZSwgZGVzaXJlZFN0YWNrTGltaXQpOwor
ICAgIH0gZWxzZQorICAgICAgICBzdGFja0xpbWl0ID0gd3RmVGhyZWFkRGF0YSgpLnN0YWNrKCku
cmVjdXJzaW9uTGltaXQocmVzZXJ2ZWRab25lU2l6ZSk7CisKKyAgICBzZXRTdGFja0xpbWl0KHN0
YWNrTGltaXQpOworICAgIHJldHVybiBvbGRSZXNlcnZlZFpvbmVTaXplOworfQorCiB2b2lkIHJl
bGVhc2VFeGVjdXRhYmxlTWVtb3J5KFZNJiB2bSkKIHsKICAgICB2bS5yZWxlYXNlRXhlY3V0YWJs
ZU1lbW9yeSgpOwpAQCAtNzIyLDE2ICs3NzAsMTkgQEAgdm9pZCBWTTo6Z2F0aGVyQ29uc2VydmF0
aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzKQogICAgICAgICB9
CiAgICAgfQogfQorI2VuZGlmCiAKLURGRzo6V29ya2xpc3QqIFZNOjplbnN1cmVXb3JrbGlzdCgp
Cit2b2lkIGxvZ1Nhbml0aXplU3RhY2soVk0qIHZtKQogewotICAgIGlmICghREZHOjplbmFibGVD
b25jdXJyZW50SklUKCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIGlmICghd29ya2xpc3QpCi0g
ICAgICAgIHdvcmtsaXN0ID0gREZHOjpnbG9iYWxXb3JrbGlzdCgpOwotICAgIHJldHVybiB3b3Jr
bGlzdC5nZXQoKTsKKyAgICBpZiAoT3B0aW9uczo6dmVyYm9zZVNhbml0aXplU3RhY2soKSAmJiB2
bS0+dG9wQ2FsbEZyYW1lKSB7CisgICAgICAgIGludCBkdW1teTsKKyAgICAgICAgZGF0YUxvZygK
KyAgICAgICAgICAgICJTYW5pdGl6aW5nIHN0YWNrIHdpdGggdG9wIGNhbGwgZnJhbWUgYXQgIiwg
UmF3UG9pbnRlcih2bS0+dG9wQ2FsbEZyYW1lKSwKKyAgICAgICAgICAgICIsIGN1cnJlbnQgc3Rh
Y2sgcG9pbnRlciBhdCAiLCBSYXdQb2ludGVyKCZkdW1teSksICIsIGluICIsCisgICAgICAgICAg
ICBwb2ludGVyRHVtcCh2bS0+dG9wQ2FsbEZyYW1lLT5jb2RlQmxvY2soKSksICIgYW5kIGxhc3Qg
Y29kZSBvcmlnaW4gPSAiLAorICAgICAgICAgICAgdm0tPnRvcENhbGxGcmFtZS0+Y29kZU9yaWdp
bigpLCAiXG4iKTsKKyAgICB9CiB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShSRUdFWFBfVFJBQ0lO
RykKIHZvaWQgVk06OmFkZFJlZ0V4cFRvVHJhY2UoUmVnRXhwKiByZWdFeHApCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk0uaAppbmRleCA1MGEzMTVlZTQzMzg5OWQwMDAxMDI5ZTgxMDY0NDlkZmJh
ZWJiMDQ3Li44MzZmMmFkNjczMmJmOWVmZGYyMjA0OGNkZmU3NjU2NzI3YzA3NTk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTY4LDYgKzY4LDcgQEAKIAogbmFtZXNwYWNlIEpT
QyB7CiAKKyAgICBjbGFzcyBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rczsKICAgICBjbGFzcyBD
b2RlQmxvY2s7CiAgICAgY2xhc3MgQ29kZUNhY2hlOwogICAgIGNsYXNzIENvbW1vbklkZW50aWZp
ZXJzOwpAQCAtMTAzLDcgKzEwNCw2IEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVOQUJMRShERkdf
SklUKQogICAgIG5hbWVzcGFjZSBERkcgewogICAgIGNsYXNzIExvbmdMaXZlZFN0YXRlOwotICAg
IGNsYXNzIFdvcmtsaXN0OwogICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKICNpZiBF
TkFCTEUoRlRMX0pJVCkKQEAgLTExMSw2ICsxMTEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBj
bGFzcyBUaHVua3M7CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQorICAgIG5hbWVz
cGFjZSBDb21tb25TbG93UGF0aHMgeworICAgIHN0cnVjdCBBcml0eUNoZWNrRGF0YTsKKyAgICB9
CiAKICAgICBzdHJ1Y3QgSGFzaFRhYmxlOwogICAgIHN0cnVjdCBJbnN0cnVjdGlvbjsKQEAgLTIw
NCwxMCArMjA3LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgdm9pZCBtYWtlVXNhYmxl
RnJvbU11bHRpcGxlVGhyZWFkcygpIHsgaGVhcC5tYWNoaW5lVGhyZWFkcygpLm1ha2VVc2FibGVG
cm9tTXVsdGlwbGVUaHJlYWRzKCk7IH0KICAgICAgICAgCi0jaWYgRU5BQkxFKERGR19KSVQpCi0g
ICAgICAgIERGRzo6V29ya2xpc3QqIGVuc3VyZVdvcmtsaXN0KCk7Ci0jZW5kaWYgLy8gRU5BQkxF
KERGR19KSVQpCi0KICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8SlNMb2NrPiBtX2FwaUxv
Y2s7CiAKQEAgLTIyNCwxMiArMjIzLDEyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAKICNp
ZiBFTkFCTEUoREZHX0pJVCkKICAgICAgICAgT3duUHRyPERGRzo6TG9uZ0xpdmVkU3RhdGU+IGRm
Z1N0YXRlOwotICAgICAgICBSZWZQdHI8REZHOjpXb3JrbGlzdD4gd29ya2xpc3Q7CiAjZW5kaWYg
Ly8gRU5BQkxFKERGR19KSVQpCiAKICAgICAgICAgVk1UeXBlIHZtVHlwZTsKICAgICAgICAgQ2xp
ZW50RGF0YSogY2xpZW50RGF0YTsKICAgICAgICAgRXhlY1N0YXRlKiB0b3BDYWxsRnJhbWU7Cisg
ICAgICAgIHZvaWQqIHN0YWNrUG9pbnRlckF0Vk1FbnRyeTsKICAgICAgICAgV2F0Y2hkb2cgd2F0
Y2hkb2c7CiAKICAgICAgICAgY29uc3QgT3duUHRyPGNvbnN0IEhhc2hUYWJsZT4gYXJyYXlDb25z
dHJ1Y3RvclRhYmxlOwpAQCAtMzQxLDcgKzM0MCwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgICAgIHJldHVybiBqaXRTdHVicy0+Y3RpU3R1Yih0aGlzLCBnZW5lcmF0b3IpOwogICAgICAg
ICB9CiAgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGdldEhvc3RGdW5jdGlvbihOYXRpdmVGdW5j
dGlvbiwgSW50cmluc2ljKTsKLSNlbmRpZgorICAgICAgICAKKyAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzPiBhcml0eUNoZWNrRmFpbFJldHVyblRodW5r
czsKKyNpZiBDUFUoWDg2KQorICAgICAgICB2b2lkKiBjdXJyZW50UmV0dXJuVGh1bmtQQzsKKyNl
bmRpZiAvLyBDUFUoWDg2KQorI2VuZGlmIC8vIEVOQUJMRShKSVQpCisgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhPiBhcml0eUNoZWNrRGF0YTsK
ICNpZiBFTkFCTEUoRlRMX0pJVCkKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEZUTDo6VGh1bmtz
PiBmdGxUaHVua3M7CiAjZW5kaWYKQEAgLTM3MywxMiArMzc4LDE2IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBKU1ZhbHVlIHRocm93RXhjZXB0aW9uKEV4ZWNT
dGF0ZSosIEpTVmFsdWUpOwogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogdGhy
b3dFeGNlcHRpb24oRXhlY1N0YXRlKiwgSlNPYmplY3QqKTsKICAgICAgICAgCisgICAgICAgIHNp
emVfdCByZXNlcnZlZFpvbmVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9yZXNlcnZlZFpvbmVTaXpl
OyB9CisgICAgICAgIHNpemVfdCB1cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNpemUo
c2l6ZV90IHJlc2VydmVkWm9uZVNpemUpOworCiAgICAgICAgIHZvaWQqKiBhZGRyZXNzT2ZKU1N0
YWNrTGltaXQoKSB7IHJldHVybiAmbV9qc1N0YWNrTGltaXQ7IH0KKyNpZiBFTkFCTEUoTExJTlRf
Q19MT09QKQogICAgICAgICB2b2lkKiBqc1N0YWNrTGltaXQoKSB7IHJldHVybiBtX2pzU3RhY2tM
aW1pdDsgfQogICAgICAgICB2b2lkIHNldEpTU3RhY2tMaW1pdCh2b2lkKiBsaW1pdCkgeyBtX2pz
U3RhY2tMaW1pdCA9IGxpbWl0OyB9Ci0KKyNlbmRpZgogICAgICAgICB2b2lkKiBzdGFja0xpbWl0
KCkgeyByZXR1cm4gbV9zdGFja0xpbWl0OyB9Ci0gICAgICAgIHZvaWQgc2V0U3RhY2tMaW1pdCh2
b2lkKiBsaW1pdCkgeyBtX3N0YWNrTGltaXQgPSBsaW1pdDsgfQorCiAgICAgICAgIGJvb2wgaXNT
YWZlVG9SZWN1cnNlKHNpemVfdCBuZWVkZWRTdGFja0luQnl0ZXMgPSAwKSBjb25zdAogICAgICAg
ICB7CiAgICAgICAgICAgICBBU1NFUlQod3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkuaXNHcm93aW5n
RG93bndhcmQoKSk7CkBAIC0zODcsMTAgKzM5NiwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgICAgIHJldHVybiBjdXJyID49IGxpbWl0ICYmIHN0YXRpY19jYXN0PHNpemVfdD4oY3VyciAt
IGxpbWl0KSA+PSBuZWVkZWRTdGFja0luQnl0ZXM7CiAgICAgICAgIH0KIAorICAgICAgICB2b2lk
KiBsYXN0U3RhY2tUb3AoKSB7IHJldHVybiBtX2xhc3RTdGFja1RvcDsgfQorICAgICAgICB2b2lk
IHNldExhc3RTdGFja1RvcCh2b2lkKiBsYXN0U3RhY2tUb3ApIHsgbV9sYXN0U3RhY2tUb3AgPSBs
YXN0U3RhY2tUb3A7IH0KKwogICAgICAgICBjb25zdCBDbGFzc0luZm8qIGNvbnN0IGpzQXJyYXlD
bGFzc0luZm87CiAgICAgICAgIGNvbnN0IENsYXNzSW5mbyogY29uc3QganNGaW5hbE9iamVjdENs
YXNzSW5mbzsKIAotICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIGV4Y2VwdGlvbkxvY2F0aW9uOwog
ICAgICAgICBKU1ZhbHVlIGhvc3RDYWxsUmV0dXJuVmFsdWU7CiAgICAgICAgIEV4ZWNTdGF0ZSog
bmV3Q2FsbEZyYW1lUmV0dXJuVmFsdWU7CiAgICAgICAgIEV4ZWNTdGF0ZSogY2FsbEZyYW1lRm9y
VGhyb3c7CkBAIC00MTMsNyArNDI0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAg
ICAgLy8gbWF4KHNjcmF0Y2ggYnVmZmVyIHNpemUpICogNC4KICAgICAgICAgICAgICAgICBzaXpl
T2ZMYXN0U2NyYXRjaEJ1ZmZlciA9IHNpemUgKiAyOwogCi0gICAgICAgICAgICAgICAgc2NyYXRj
aEJ1ZmZlcnMuYXBwZW5kKFNjcmF0Y2hCdWZmZXI6OmNyZWF0ZShzaXplT2ZMYXN0U2NyYXRjaEJ1
ZmZlcikpOworICAgICAgICAgICAgICAgIFNjcmF0Y2hCdWZmZXIqIG5ld0J1ZmZlciA9IFNjcmF0
Y2hCdWZmZXI6OmNyZWF0ZShzaXplT2ZMYXN0U2NyYXRjaEJ1ZmZlcik7CisgICAgICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQobmV3QnVmZmVyKTsKKyAgICAgICAgICAgICAgICBzY3JhdGNoQnVm
ZmVycy5hcHBlbmQobmV3QnVmZmVyKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgU2Ny
YXRjaEJ1ZmZlciogcmVzdWx0ID0gc2NyYXRjaEJ1ZmZlcnMubGFzdCgpOwpAQCAtNDk1LDYgKzUw
OCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBWTShWTVR5cGUsIEhlYXBUeXBlKTsKICAg
ICAgICAgc3RhdGljIFZNKiYgc2hhcmVkSW5zdGFuY2VJbnRlcm5hbCgpOwogICAgICAgICB2b2lk
IGNyZWF0ZU5hdGl2ZVRodW5rKCk7CisKKyAgICAgICAgdm9pZCBzZXRTdGFja0xpbWl0KHZvaWQq
IGxpbWl0KSB7IG1fc3RhY2tMaW1pdCA9IGxpbWl0OyB9CisKICNpZiBFTkFCTEUoQVNTRU1CTEVS
KQogICAgICAgICBib29sIG1fY2FuVXNlQXNzZW1ibGVyOwogI2VuZGlmCkBAIC01MDcsOCArNTIz
LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCiAgICAgICAg
IGNvbnN0IENsYXNzSW5mbyogbV9pbml0aWFsaXppbmdPYmplY3RDbGFzczsKICNlbmRpZgotCi0j
aWYgVVNFKFNFUEFSQVRFX0NfQU5EX0pTX1NUQUNLKQorICAgICAgICBzaXplX3QgbV9yZXNlcnZl
ZFpvbmVTaXplOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiAgICAgICAgIHN0cnVjdCB7CiAg
ICAgICAgICAgICB2b2lkKiBtX3N0YWNrTGltaXQ7CiAgICAgICAgICAgICB2b2lkKiBtX2pzU3Rh
Y2tMaW1pdDsKQEAgLTUxOSw2ICs1MzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAg
IHZvaWQqIG1fanNTdGFja0xpbWl0OwogICAgICAgICB9OwogI2VuZGlmCisgICAgICAgIHZvaWQq
IG1fbGFzdFN0YWNrVG9wOwogICAgICAgICBKU1ZhbHVlIG1fZXhjZXB0aW9uOwogICAgICAgICBi
b29sIG1faW5EZWZpbmVPd25Qcm9wZXJ0eTsKICAgICAgICAgT3duUHRyPENvZGVDYWNoZT4gbV9j
b2RlQ2FjaGU7CkBAIC01NDQsNiArNTYxLDIyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBy
ZXR1cm4gJm1fdm0tPmhlYXA7CiAgICAgfQogCisjaWYgIUVOQUJMRShMTElOVF9DX0xPT1ApCisg
ICAgZXh0ZXJuICJDIiB2b2lkIHNhbml0aXplU3RhY2tGb3JWTUltcGwoVk0qKTsKKyNlbmRpZgor
CisgICAgdm9pZCBsb2dTYW5pdGl6ZVN0YWNrKFZNKik7CisKKyAgICBBTFdBWVNfSU5MSU5FIHZv
aWQgc2FuaXRpemVTdGFja0ZvclZNKFZNKiB2bSkKKyAgICB7CisgICAgICAgIGxvZ1Nhbml0aXpl
U3RhY2sodm0pOworI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCisgICAgICAgIHZtLT5pbnRlcnBy
ZXRlci0+c3RhY2soKS5zYW5pdGl6ZVN0YWNrKCk7CisjZWxzZQorICAgICAgICBzYW5pdGl6ZVN0
YWNrRm9yVk1JbXBsKHZtKTsKKyNlbmRpZgorICAgIH0KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAK
ICNlbmRpZiAvLyBWTV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTUVudHJ5U2NvcGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRy
eVNjb3BlLmNwcAppbmRleCA0Nzc4MmNlM2JjYTNlYWQzZDlhZjRlYjNiNWZhZDViZDViOWFjZmU4
Li44NDkzYzYyYWVhNDAzOGEyNTY3NGFkODRkOTdjMTczMDdiMGQ5YTQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5jcHAKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYgKzI3LDcgQEAK
ICNpbmNsdWRlICJWTUVudHJ5U2NvcGUuaCIKIAogI2luY2x1ZGUgIkRlYnVnZ2VyLmgiCisjaW5j
bHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgiCiAjaW5jbHVkZSA8d3RmL1N0YWNrQm91
bmRzLmg+CiAKQEAgLTM0LDEyICszNSwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogVk1FbnRyeVNj
b3BlOjpWTUVudHJ5U2NvcGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQog
ICAgIDogbV92bSh2bSkKLSAgICAsIG1fc3RhY2sod3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkpCiAg
ICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3QpCi0gICAgLCBtX3ByZXYodm0uZW50cnlT
Y29wZSkKLSAgICAsIG1fcHJldlN0YWNrTGltaXQodm0uc3RhY2tMaW1pdCgpKQogICAgICwgbV9y
ZWNvbXBpbGF0aW9uTmVlZGVkKGZhbHNlKQogeworICAgIEFTU0VSVCh3dGZUaHJlYWREYXRhKCku
c3RhY2soKS5pc0dyb3dpbmdEb3dud2FyZCgpKTsKICAgICBpZiAoIXZtLmVudHJ5U2NvcGUpIHsK
ICNpZiBFTkFCTEUoQVNTRU1CTEVSKQogICAgICAgICBpZiAoRXhlY3V0YWJsZUFsbG9jYXRvcjo6
dW5kZXJNZW1vcnlQcmVzc3VyZSgpKQpAQCAtNTEsMTcgKzUwLDI0IEBAIFZNRW50cnlTY29wZTo6
Vk1FbnRyeVNjb3BlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICAg
ICAgLy8gb2JzZXJ2ZSB0aW1lIHhvbmUgY2hhbmdlcy4KICAgICAgICAgdm0ucmVzZXREYXRlQ2Fj
aGUoKTsKICAgICB9Ci0gICAgLy8gQ2xlYXIgdGhlIGV4Y2VwdGlvbiBzdGFjayBiZXR3ZWVuIGVu
dHJpZXMKLSAgICB2bS5jbGVhckV4Y2VwdGlvblN0YWNrKCk7CiAKLSAgICB2b2lkKiBsaW1pdCA9
IG1fc3RhY2sucmVjdXJzaW9uTGltaXQocmVxdWlyZWRDYXBhY2l0eSgpKTsKLSAgICB2bS5zZXRT
dGFja0xpbWl0KGxpbWl0KTsKKyAgICBpZiAoIXZtLnN0YWNrUG9pbnRlckF0Vk1FbnRyeSkgewor
ICAgICAgICB2bS5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSB0aGlzOworICAgICAgICBtX3NhdmVk
UmVzZXJ2ZWRab25lU2l6ZSA9IHZtLnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6
ZShPcHRpb25zOjpyZXNlcnZlZFpvbmVTaXplKCkpOworICAgIH0KKworICAgIC8vIENsZWFyIHRo
ZSBjYXB0dXJlZCBleGNlcHRpb24gc3RhY2sgYmV0d2VlbiBlbnRyaWVzCisgICAgdm0uY2xlYXJF
eGNlcHRpb25TdGFjaygpOwogfQogCiBWTUVudHJ5U2NvcGU6On5WTUVudHJ5U2NvcGUoKQogewot
ICAgIG1fdm0uZW50cnlTY29wZSA9IG1fcHJldjsKLSAgICBtX3ZtLnNldFN0YWNrTGltaXQobV9w
cmV2U3RhY2tMaW1pdCk7CisgICAgaWYgKG1fdm0uZW50cnlTY29wZSA9PSB0aGlzKQorICAgICAg
ICBtX3ZtLmVudHJ5U2NvcGUgPSBudWxscHRyOworICAgIGlmIChtX3ZtLnN0YWNrUG9pbnRlckF0
Vk1FbnRyeSA9PSB0aGlzKSB7CisgICAgICAgIG1fdm0uc3RhY2tQb2ludGVyQXRWTUVudHJ5ID0g
bnVsbHB0cjsKKyAgICAgICAgbV92bS51cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNp
emUobV9zYXZlZFJlc2VydmVkWm9uZVNpemUpOworICAgIH0KIAogICAgIGlmIChtX3JlY29tcGls
YXRpb25OZWVkZWQpIHsKICAgICAgICAgaWYgKG1fdm0uZW50cnlTY29wZSkKQEAgLTczLDIzICs3
OSw0IEBAIFZNRW50cnlTY29wZTo6flZNRW50cnlTY29wZSgpCiAgICAgfQogfQogCi1zaXplX3Qg
Vk1FbnRyeVNjb3BlOjpyZXF1aXJlZENhcGFjaXR5KCkgY29uc3QKLXsKLSAgICBJbnRlcnByZXRl
ciogaW50ZXJwcmV0ZXIgPSBtX3ZtLmludGVycHJldGVyOwotCi0gICAgLy8gV2UgcmVxdWlyZSBh
IHNtYWxsZXIgc3RhY2sgYnVkZ2V0IGZvciB0aGUgZXJyb3Igc3RhY2suIFRoaXMgaXMgdG8gYWxs
b3cKLSAgICAvLyBzb21lIG1pbmltYWwgSlMgZXhlY3V0aW9uIHRvIHByb2NlZWQgYW5kIGRvIHRo
ZSB3b3JrIG9mIHRocm93aW5nIGEgc3RhY2sKLSAgICAvLyBvdmVyZmxvdyBlcnJvciBpZiBuZWVk
ZWQuIEluIGNvbnRyYXN0LCBhcmJpdHJhcnkgSlMgY29kZSB3aWxsIHJlcXVpcmUgdGhlCi0gICAg
Ly8gbW9yZSBnZW5lcm91cyBzdGFjayBidWRnZXQgaW4gb3JkZXIgdG8gcHJvY2VlZC4KLSAgICAv
LwotICAgIC8vIFRoZXNlIHNpemVzIHdlcmUgZGVyaXZlZCBmcm9tIHRoZSBzdGFjayB1c2FnZSBv
ZiBhIG51bWJlciBvZiBzaXRlcyB3aGVuCi0gICAgLy8gbGF5b3V0IG9jY3VycyB3aGVuIHdlJ3Zl
IGFscmVhZHkgY29uc3VtZWQgbW9zdCBvZiB0aGUgQyBzdGFjay4KLSAgICBjb25zdCBzaXplX3Qg
cmVxdWlyZWRTdGFjayA9IDEyOCAqIEtCOwotICAgIGNvbnN0IHNpemVfdCBlcnJvck1vZGVSZXF1
aXJlZFN0YWNrID0gNjQgKiBLQjsKLQotICAgIHNpemVfdCByZXF1aXJlZENhcGFjaXR5ID0gaW50
ZXJwcmV0ZXItPmlzSW5FcnJvckhhbmRsaW5nTW9kZSgpID8gZXJyb3JNb2RlUmVxdWlyZWRTdGFj
ayA6IHJlcXVpcmVkU3RhY2s7Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9zdGFjay5zaXplKCkgPj0g
cmVxdWlyZWRDYXBhY2l0eSk7Ci0gICAgcmV0dXJuIHJlcXVpcmVkQ2FwYWNpdHk7Ci19Ci0KIH0g
Ly8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk1FbnRyeVNjb3BlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5
U2NvcGUuaAppbmRleCBkNWJhODIzZDA0YzIwODdhMGIyODBhODZlZjA1NDYwN2RmNmI2NjFhLi45
YTljY2JmZTQ1YjBiZjhmNWM2ZjVmYjliOTgwYjZjMmIwMGIyN2JjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDUsMTYgKzQ1LDEwIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFJlY29tcGlsYXRpb25OZWVkZWQoYm9vbCByZWNvbXBpbGVOZWVkZWQp
IHsgbV9yZWNvbXBpbGF0aW9uTmVlZGVkID0gcmVjb21waWxlTmVlZGVkOyB9CiAKIHByaXZhdGU6
Ci0gICAgc2l6ZV90IHJlcXVpcmVkQ2FwYWNpdHkoKSBjb25zdDsKLQogICAgIFZNJiBtX3ZtOwog
ICAgIFN0YWNrU3RhdHM6OkNoZWNrUG9pbnQgbV9zdGFja0NoZWNrUG9pbnQ7Ci0gICAgU3RhY2tC
b3VuZHMgbV9zdGFjazsKICAgICBKU0dsb2JhbE9iamVjdCogbV9nbG9iYWxPYmplY3Q7Ci0KLSAg
ICAvLyBtX3ByZXYgYW5kIG1fcHJldlN0YWNrTGltaXQgbWF5IGJlbG9uZyB0byBhIGRpZmZlcmVu
dCB0aHJlYWQncyBzdGFjay4KLSAgICBWTUVudHJ5U2NvcGUqIG1fcHJldjsKLSAgICB2b2lkKiBt
X3ByZXZTdGFja0xpbWl0OworICAgIHNpemVfdCBtX3NhdmVkUmVzZXJ2ZWRab25lU2l6ZTsKICAg
ICBib29sIG1fcmVjb21waWxhdGlvbk5lZWRlZDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5
LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtY29uc3RhbnQtb3Zl
cmZsb3ctcmVjb3ZlcnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjRiYjJjYmUzY2E3Y2Q2ZjIyYzEzZjBkNWZj
MDZiN2NlZTBhNDFkYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvYWRkLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCkBAIC0wLDAgKzEs
MTUgQEAKK2Z1bmN0aW9uIGZvbyhhKSB7CisgICAgcmV0dXJuIGEuZiArIDIwMDAwMDAwMDA7Cit9
CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsK
KyAgICB2YXIgcmVzdWx0ID0gZm9vKHtmOjF9KTsKKyAgICBpZiAocmVzdWx0ICE9IDIwMDAwMDAw
MDEpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwor
dmFyIHJlc3VsdCA9IGZvbyh7ZjoyMDAwMDAwMDAwfSk7CitpZiAocmVzdWx0ICE9IDQwMDAwMDAw
MDApCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtaW50NTItY29uc3RhbnQt
b3ZlcmZsb3ctcmVjb3ZlcnkuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2FkZC1pbnQ1Mi1jb25zdGFudC1vdmVyZmxvdy1yZWNvdmVyeS5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTQ4
ZDM0ZmMxOTBjNTk4NjIwMTRkZTYyNDBlNDhiYTZjZGY2NjFmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9hZGQtaW50NTItY29uc3RhbnQtb3Zl
cmZsb3ctcmVjb3ZlcnkuanMKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gZm9vKGEpIHsKKyAg
ICByZXR1cm4gYSAqIDIwOTcxNDQgKyAxMDczNzQ1OTIwOworfQorCitub0lubGluZShmb28pOwor
Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZv
bygxMDczNzM2MzgzKTsKKyAgICBpZiAocmVzdWx0ICE9IDIyNTE3ODA4ODY5MzYwNzIpCisgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3Vs
dCA9IGZvbygxMDczNzQ1OTE5KTsKK2lmIChyZXN1bHQgIT0gMjI1MTgwMDg4NTMwMTI1NikKKyAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1pbnQ1Mi1sYXJnZS1jb25zdGFudC1v
dmVyZmxvdy1yZWNvdmVyeS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
YWRkLWludDUyLWxhcmdlLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM2NGJjM2ZlNTI5ZWZkYzU5MjIyZDJlMDgzM2RmZmJiMzY5MWNhNWQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1pbnQ1Mi1sYXJnZS1j
b25zdGFudC1vdmVyZmxvdy1yZWNvdmVyeS5qcwpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiBm
b28oYSkgeworICAgIHJldHVybiBhICogMjA5NzE0NCArIDEwMDAwMDAwMDAwOworfQorCitub0lu
bGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFy
IHJlc3VsdCA9IGZvbygxMDczNzQxMTUxKTsKKyAgICBpZiAocmVzdWx0ICE9IDIyNTE3OTk4MTIz
NzI3NDQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30K
KwordmFyIHJlc3VsdCA9IGZvbygxMDczNzQxMTUyKTsKK2lmIChyZXN1bHQgIT0gMjI1MTc5OTgx
NDQ2OTg4OCkKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1vdmVyZmxvdy1y
ZWNvdmVyeS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYWRkLW92ZXJm
bG93LXJlY292ZXJ5LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlMTcxOGM1YzJiZTBlZGNkZGE2OTk4MGViYjMy
ZmEzMjgzZTQyZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2FkZC1vdmVyZmxvdy1yZWNvdmVyeS5qcwpAQCAtMCwwICsxLDE1IEBACitmdW5j
dGlvbiBmb28oYSwgYikgeworICAgIHJldHVybiBhLmYgKyBiLmY7Cit9CisKK25vSW5saW5lKGZv
byk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0
ID0gZm9vKHtmOjF9LCB7ZjoyfSk7CisgICAgaWYgKHJlc3VsdCAhPSAzKQorICAgICAgICB0aHJv
dyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28o
e2Y6MjAwMDAwMDAwMH0sIHtmOjIwMDAwMDAwMDB9KTsKK2lmIChyZXN1bHQgIT0gNDAwMDAwMDAw
MCkKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1zbWFsbC1jb25zdGFudC1v
dmVyZmxvdy1yZWNvdmVyeS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
YWRkLXNtYWxsLWNvbnN0YW50LW92ZXJmbG93LXJlY292ZXJ5LmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0ZDlm
MDRmNjhkZTg4ZDhkY2JjYjQ0ZGFkMTlmNTlhZDEyODQ2MzAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2FkZC1zbWFsbC1jb25zdGFudC1vdmVy
Zmxvdy1yZWNvdmVyeS5qcwpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiBmb28oYSkgeworICAg
IHJldHVybiBhLmYgKyAxMDAwOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyh7ZjoxfSk7CisgICAg
aWYgKHJlc3VsdCAhPSAxMDAxKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIg
KyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28oe2Y6MjE0NzQ4MzE0OH0pOworaWYgKHJl
c3VsdCAhPSAyMTQ3NDg0MTQ4KQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJy
YXktcHVzaC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvYXJyYXktcHVz
aC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wNTYwOTg3YWJlZTE3ZjEzYjMwNTFjOTliNDI0NWJkYTJlNTliMzAy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9h
cnJheS1wdXNoLmpzCkBAIC0wLDAgKzEsMTggQEAKK2Z1bmN0aW9uIGZvbygpIHsKKyAgICB2YXIg
YXJyYXkgPSBbXTsKKyAgICB2YXIgcmVzdWx0ID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCA0MjsgKytpKQorICAgICAgICByZXN1bHQucHVzaChhcnJheS5wdXNoKDcgLSBpKSk7CisgICAg
cmV0dXJuIFthcnJheSwgcmVzdWx0XTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oKTsKKyAgICBp
ZiAocmVzdWx0WzBdLnRvU3RyaW5nKCkgIT0gIjcsNiw1LDQsMywyLDEsMCwtMSwtMiwtMywtNCwt
NSwtNiwtNywtOCwtOSwtMTAsLTExLC0xMiwtMTMsLTE0LC0xNSwtMTYsLTE3LC0xOCwtMTksLTIw
LC0yMSwtMjIsLTIzLC0yNCwtMjUsLTI2LC0yNywtMjgsLTI5LC0zMCwtMzEsLTMyLC0zMywtMzQi
KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBhcnJheTogIiArIHJlc3VsdFswXTsKKyAgICBp
ZiAocmVzdWx0WzFdLnRvU3RyaW5nKCkgIT0gIjEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEz
LDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDI5LDMwLDMxLDMy
LDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyIikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBi
YWQgYXJyYXk6ICIgKyByZXN1bHRbMV07Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvZW1wdHktZnVuY3Rpb24uanMgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2VtcHR5LWZ1bmN0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxMmU1MTA1
ZWEyMzg1NTdhY2E5NmI3ZWU0ZDRlYjg4YjBkNTU4OGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2VtcHR5LWZ1bmN0aW9uLmpzCkBAIC0wLDAg
KzEsMTAgQEAKK2Z1bmN0aW9uIGZvbygpIHsgfQorCitub0lubGluZShmb28pOworCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbygpOworICAg
IGlmIChyZXN1bHQgIT09IHZvaWQgMCkKKyAgICAgICAgdGhyb3cgIllvdSBicm9rZSBKU0Mgc28g
aGFyZCB0aGF0IGV2ZW4gdGhlIGVtcHR5IGZ1bmN0aW9uIGRvZXNuJ3Qgd29yazogIiArIHJlc3Vs
dDsKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9l
eGl0LWFmdGVyLWludDMyLXRvLWRvdWJsZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvZXhpdC1hZnRlci1pbnQzMi10by1kb3VibGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTgwYzVh
OWI3MmE4ZGIzYzAwY2U4MDRjNDVjOGZiYzk1MDZhOTk3NgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1pbnQzMi10by1kb3Vi
bGUuanMKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gZm9vKHgsIG8pIHsKKyAgICByZXR1cm4g
by5mICsgeDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oNDIuNSwge2Y6NX0pOworICAgIGlmIChy
ZXN1bHQgIT0gNDcuNSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVz
dWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9vKCI0MiIsIHtmOjV9KTsKK2lmIChyZXN1bHQgIT0g
IjU0MiIpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9leGl0LWFmdGVyLWludDUy
LXRvLWRvdWJsZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1h
ZnRlci1pbnQ1Mi10by1kb3VibGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDZiYWIzYjFkYWMxNWY2OGQyM2E0
NzIyOWZiYmI3MWE2YzZmYTk4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvZXhpdC1hZnRlci1pbnQ1Mi10by1kb3VibGUuanMKQEAgLTAsMCAr
MSwxNiBAQAorZnVuY3Rpb24gZm9vKGEsIGIsIGMpIHsKKyAgICByZXR1cm4gYS5mICsgYi5mICsg
Yy5mOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsg
KytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyh7ZjoyMDAwMDAwMDAwfSwge2Y6MjAwMDAwMDAw
MH0sIHtmOjAuNX0pOworICAgIGlmIChyZXN1bHQgIT0gNDAwMDAwMDAwMC41KQorICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBm
b28oe2Y6MjAwMDAwMDAwMH0sIHtmOjIwMDAwMDAwMDB9LCB7ZjoiNDIifSk7CitpZiAocmVzdWx0
ICE9ICI0MDAwMDAwMDAwNDIiKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9l
eGl0LWFmdGVyLWludDUyLXRvLXZhbHVlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9leGl0LWFmdGVyLWludDUyLXRvLXZhbHVlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyZWQxZjg1
MzUwMjUwNjE4MDY2ZmJhYjI5Mzk5NGE0MjJmZTkwNTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItaW50NTItdG8tdmFsdWUu
anMKQEAgLTAsMCArMSwyNSBAQAorZnVuY3Rpb24gZm9vKGEsIGIsIGMpIHsKKyAgICBjLmYuZiA9
IGEuZiArIGIuZjsKK30KKworbm9JbmxpbmUoZm9vKTsKKwordmFyIGNvdW50ZXIgPSAwOworZnVu
Y3Rpb24gbWFrZVdlaXJkT2JqZWN0KCkgeworICAgIHZhciByZXN1bHQgPSB7fTsKKyAgICByZXN1
bHRbImJsYWgiICsgKGNvdW50ZXIrKyldID0gNDI7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciBvID0gbWFrZVdlaXJk
T2JqZWN0KCk7CisgICAgZm9vKHtmOjIwMDAwMDAwMDB9LCB7ZjoyMDAwMDAwMDAwfSwge2Y6b30p
OworICAgIGlmIChvLmYgIT0gNDAwMDAwMDAwMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgdGhpbmd5OworTnVtYmVyLnByb3RvdHlwZS5f
X2RlZmluZVNldHRlcl9fKCJmIiwgZnVuY3Rpb24odmFsdWUpIHsgdGhpbmd5ID0gdmFsdWU7IH0p
OworZm9vKHtmOjIwMDAwMDAwMDB9LCB7ZjoyMDAwMDAwMDAwfSwge2Y6NDJ9KTsKK2lmICh0aGlu
Z3kgIT0gNDAwMDAwMDAwMCkKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyB0aGlu
Z3k7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQt
YWZ0ZXItbGx2bS1mb2xkcy1sYXJnZS1pbnQtY29uc3RhbnQuanMgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtYWZ0ZXItbGx2bS1mb2xkcy1sYXJnZS1pbnQtY29uc3Rh
bnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDhkMzVmZTViZDMwYTA0OWQ2NjkxMDgzZDNhOWNhMWJjMzE0MDFh
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
ZXhpdC1hZnRlci1sbHZtLWZvbGRzLWxhcmdlLWludC1jb25zdGFudC5qcwpAQCAtMCwwICsxLDE4
IEBACitmdW5jdGlvbiBmb28obywgaW8pIHsKKyAgICB2YXIgaSA9IGlvLmY7CisgICAgaWYgKGkg
IT0gOTIxNjApCisgICAgICAgIG8uZyA9IDQyOworICAgIHJldHVybiBvLmYuZiArIGk7Cit9CisK
K25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAg
ICB2YXIgcmVzdWx0ID0gZm9vKHtmOntmOjQyfX0sIHtmOjkyMTYwfSk7CisgICAgaWYgKHJlc3Vs
dCAhPSA5MjIwMikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0
OworfQorCit2YXIgcmVzdWx0ID0gZm9vKHtmOntnOjIwLCBmOjIxfX0sIHtmOjkyMTYwfSk7Citp
ZiAocmVzdWx0ICE9IDkyMTgxKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZXhp
dC1mcm9tLWZ0bC13aXRoLWFyaXR5LWNoZWNrLWZhaWwuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2V4aXQtZnJvbS1mdGwtd2l0aC1hcml0eS1jaGVjay1mYWlsLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZiZTNiMjEwYTAxZTAwNTZlN2E2ZDRlY2MxMTlmZWY3Y2VkZDI5ZWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2V4aXQtZnJv
bS1mdGwtd2l0aC1hcml0eS1jaGVjay1mYWlsLmpzCkBAIC0wLDAgKzEsMTggQEAKK2Z1bmN0aW9u
IGZvbyhvLCBhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpLCBqKSB7CisgICAgcmV0dXJuIG8uZjsK
K30KKworZnVuY3Rpb24gYmFyKG8pIHsKKyAgICByZXR1cm4gZm9vKG8pOworfQorCitub0lubGlu
ZShmb28pOworbm9JbmxpbmUoYmFyKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsr
aSkKKyAgICBiYXIoe2Y6NDJ9KTsKKwordmFyIHJlc3VsdCA9IGJhcih7ZzoyNCwgZjo0M30pOwor
aWYgKHJlc3VsdCAhPSA0MykKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRs
LWFyaXRoY29zLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtYXJp
dGhjb3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhhMWY1ZmMzMDJmMjJiYzZjNjdiYjJkZmFmMjg1NGRhNmY0
YTM0NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvZnRsLWFyaXRoY29zLmpzCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7Cisg
ICAgcmV0dXJuIE1hdGguY29zKHgpOworfQorCitub0lubGluZShmb28pOworCit2YXIgaiA9IDA7
Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgIGogPSBmb28oaSk7CisKK2lm
ICgtMC41MDk4NzUzNzI0MTc5MDA5ICE9IGopeworICAgIHRocm93ICJFcnJvciIKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRoc2luLmpz
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtYXJpdGhzaW4uanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjU1OWY0ZDQ5MDUxOWQyNzcxOWQ1YjQzOTMwMThhOTQ4NDVhOTUyNgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRo
c2luLmpzCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIE1h
dGguc2luKHgpOworfQorCitub0lubGluZShmb28pOworCit2YXIgaiA9IDA7Citmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgIGogPSBmb28oaSk7CisKK2lmICgwLjg2MDI0ODI4
MDc4OTc0MiAhPSBqKXsKKyAgICB0aHJvdyAiRXJyb3IiCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1hcml0aHNxcnQuanMgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1hcml0aHNxcnQuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGJl
MDFjZTRiNzBlMjQwNTgwMDU0N2ZlZTZiMDFkNzE2MjcyN2NjMgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWFyaXRoc3FydC5qcwpAQCAt
MCwwICsxLDEzIEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBNYXRoLnNxcnQoeCk7
Cit9CisKK25vSW5saW5lKGZvbyk7CisKK3ZhciBqID0gMDsKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDAwOyArK2kpCisgICAgaiA9IGZvbyhpKTsKKworaWYgKCAzMTYuMjI2MTg0ODc0MDU1ICE9
IGopeworICAgIHRocm93ICJFcnJvciIKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dGJ5aWQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2Z0bC1wdXRieWlkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkZmQ5ZTRiZTY5ZjY1Yjk1
MjU2ZTBkMDM2MWMyOTY0NGQ1Mzk1NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1wdXRieWlkLmpzCkBAIC0wLDAgKzEsMTMgQEAKKwor
T2JqZWN0LnByb3RvdHlwZS5fX2RlZmluZVNldHRlcl9fKCJyIiwgZnVuY3Rpb24odmFsKXsgbyA9
IHZhbCB9KQorCitmdW5jdGlvbiBmb28oeCl7CisgICAgdmFyIG4gPSB7IH0KKyAgICBuLnIgPSB4
OworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytp
KQorICAgIGZvbyhpKTsKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9mdGwtcHV0YnlpZGRpcmVjdC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvZnRsLXB1dGJ5aWRkaXJlY3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjUwYWQwZGNiMjZkNDFh
ZjdhYmQ5ZTY3MWY3NDNhOTNiOGRmYjNmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLXB1dGJ5aWRkaXJlY3QuanMKQEAgLTAsMCArMSwx
MiBAQAorZnVuY3Rpb24gZm9vKHgpeworICAgIHJldHVybiB7IDAgOiAxICwgYSA6IHggfQorfQor
Citub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAg
IG8gPSBmb28oaSk7CisKK2lmIChvLmEgIT0gOTk5OTkgfHwgb1swXSAhPSAxKQorICAgIHRocm93
ICJFcnJvciIKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9nZXQtYnktaWQtdGhyb3ctZnJvbS1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZyb20t
Z2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWIzMDFkNzY5ZGQ3
NmZhZWQwNWFlZjYzZDc4YzA5OGJkYzE1YTY5ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZyb20tZ2V0dGVyLXRo
cm91Z2gtb3B0aW1pemVkLWNvZGUuanMKQEAgLTAsMCArMSwzNyBAQAorZnVuY3Rpb24gZm9vKG8p
IHsKKyAgICByZXR1cm4gby5mICsgMTsKK30KKworbm9JbmxpbmUoZm9vKTsKKwordmFyIHNob3Vs
ZFRocm93ID0gZmFsc2U7CisKK2Z1bmN0aW9uIG1ha2VXaXRoR2V0dGVyKCkgeworICAgIHZhciBv
ID0ge307CisgICAgby5fX2RlZmluZUdldHRlcl9fKCJmIiwgZnVuY3Rpb24oKSB7CisgICAgICAg
IGlmIChzaG91bGRUaHJvdykKKyAgICAgICAgICAgIHRocm93ICJoZWxsbyI7CisgICAgICAgIHJl
dHVybiA0MjsKKyAgICB9KTsKKyAgICByZXR1cm4gbzsKK30KKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oe2Y6MjN9KTsKKyAgICBpZiAo
cmVzdWx0ICE9IDI0KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7CisgICAgcmVzdWx0ID0gZm9vKG1ha2VXaXRoR2V0dGVyKCkpOworICAgIGlmIChyZXN1bHQg
IT0gNDMpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30K
KwordmFyIGRpZFRocm93OwordHJ5IHsKKyAgICBzaG91bGRUaHJvdyA9IHRydWU7CisgICAgZm9v
KG1ha2VXaXRoR2V0dGVyKCkpOworfSBjYXRjaCAoZSkgeworICAgIGRpZFRocm93ID0gZTsKK30K
KworaWYgKGRpZFRocm93ICE9ICJoZWxsbyIpCisgICAgdGhyb3cgIkVycm9yOiBkaWRuJ3QgdGhy
b3cgb3IgdGhyZXcgd3JvbmcgZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLXVu
ZXhwZWN0ZWQtZ2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUtdGhhdC1kb2VzLW5vdC1leGl0
LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9nZXQtYnktaWQtdGhyb3ct
ZnJvbS11bmV4cGVjdGVkLWdldHRlci10aHJvdWdoLW9wdGltaXplZC1jb2RlLXRoYXQtZG9lcy1u
b3QtZXhpdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTRkMGNlYjZlY2IwYWI5N2ZmMDk3MWQwNGFjZTYxOTNi
M2UwNGI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9nZXQtYnktaWQtdGhyb3ctZnJvbS11bmV4cGVjdGVkLWdldHRlci10aHJvdWdoLW9wdGlt
aXplZC1jb2RlLXRoYXQtZG9lcy1ub3QtZXhpdC5qcwpAQCAtMCwwICsxLDM1IEBACitmdW5jdGlv
biBmb28obykgeworICAgIHJldHVybiBvLmY7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0
aW9uIG1ha2VXaXRoR2V0dGVyKCkgeworICAgIHZhciBvID0ge307CisgICAgby5fX2RlZmluZUdl
dHRlcl9fKCJmIiwgZnVuY3Rpb24oKSB7CisgICAgICAgIHRocm93ICJoZWxsbyI7CisgICAgfSk7
CisgICAgcmV0dXJuIG87Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsK
KyAgICB2YXIgcmVzdWx0ID0gZm9vKHtmOjIzfSk7CisgICAgaWYgKHJlc3VsdCAhPSAyMykKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHJlc3VsdCA9
IGZvbyh7ZzoxMiwgZjoxM30pOworICAgIGlmIChyZXN1bHQgIT0gMTMpCisgICAgICAgIHRocm93
ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICByZXN1bHQgPSBmb28oe2c6MTIs
IGg6MTMsIGY6MTR9KTsKKyAgICBpZiAocmVzdWx0ICE9IDE0KQorICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciBkaWRUaHJvdzsKK3RyeSB7Cisg
ICAgZm9vKG1ha2VXaXRoR2V0dGVyKCkpOworfSBjYXRjaCAoZSkgeworICAgIGRpZFRocm93ID0g
ZTsKK30KKworaWYgKGRpZFRocm93ICE9ICJoZWxsbyIpCisgICAgdGhyb3cgIkVycm9yOiBkaWRu
J3QgdGhyb3cgb3IgdGhyZXcgd3JvbmcgZXhjZXB0aW9uOiAiICsgZGlkVGhyb3c7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1m
cm9tLXVuZXhwZWN0ZWQtZ2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2dldC1ieS1pZC10aHJvdy1mcm9tLXVuZXhwZWN0
ZWQtZ2V0dGVyLXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWVmNzcyNmE0
ODk4ZTU3NjQxYzJhZTNjMWUwYjAxNTdiZmZmMWFkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZ2V0LWJ5LWlkLXRocm93LWZyb20tdW5leHBl
Y3RlZC1nZXR0ZXItdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwpAQCAtMCwwICsxLDM1IEBACitm
dW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBvLmYgKyAxOworfQorCitub0lubGluZShmb28p
OworCitmdW5jdGlvbiBtYWtlV2l0aEdldHRlcigpIHsKKyAgICB2YXIgbyA9IHt9OworICAgIG8u
X19kZWZpbmVHZXR0ZXJfXygiZiIsIGZ1bmN0aW9uKCkgeworICAgICAgICB0aHJvdyAiaGVsbG8i
OworICAgIH0pOworICAgIHJldHVybiBvOworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
MDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyh7ZjoyM30pOworICAgIGlmIChyZXN1bHQg
IT0gMjQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAg
ICByZXN1bHQgPSBmb28oe2c6MTIsIGY6MTN9KTsKKyAgICBpZiAocmVzdWx0ICE9IDE0KQorICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0g
Zm9vKHtnOjEyLCBoOjEzLCBmOjE0fSk7CisgICAgaWYgKHJlc3VsdCAhPSAxNSkKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2YXIgZGlkVGhyb3c7
Cit0cnkgeworICAgIGZvbyhtYWtlV2l0aEdldHRlcigpKTsKK30gY2F0Y2ggKGUpIHsKKyAgICBk
aWRUaHJvdyA9IGU7Cit9CisKK2lmIChkaWRUaHJvdyAhPSAiaGVsbG8iKQorICAgIHRocm93ICJF
cnJvcjogZGlkbid0IHRocm93IG9yIHRocmV3IHdyb25nIGV4Y2VwdGlvbjogIiArIGRpZFRocm93
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pYy10aHJv
dy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9pYy10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2
NDA0MjY0YTQwMzY5MGZiNTk5ZjE2MDliMDliZTliNTNiMzQwNWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ljLXRocm93LXRocm91Z2gtb3B0
aW1pemVkLWNvZGUuanMKQEAgLTAsMCArMSwyOSBAQAorZnVuY3Rpb24gZm9vKG8pIHsKKyAgICBy
ZXR1cm4gby5mICsgMTsKK30KKworTnVtYmVyLnByb3RvdHlwZS5mID0gNDI7CisKK25vSW5saW5l
KGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVz
dWx0ID0gZm9vKDIzKTsKKyAgICBpZiAocmVzdWx0ICE9IDQzKQorICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0ID0gZm9vKHtmOjI1fSk7Cisg
ICAgaWYgKHJlc3VsdCAhPSAyNikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAi
ICsgcmVzdWx0OworICAgIHJlc3VsdCA9IGZvbyh7ZzoxMiwgZjoxM30pOworICAgIGlmIChyZXN1
bHQgIT0gMTQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsK
K30KKwordmFyIGRpZFRocm93OwordHJ5IHsKKyAgICBmb28odm9pZCAwKTsKK30gY2F0Y2ggKGUp
IHsKKyAgICBkaWRUaHJvdyA9IGU7Cit9CisKK2lmICghZGlkVGhyb3cgfHwgZGlkVGhyb3cudG9T
dHJpbmcoKS5pbmRleE9mKCJUeXBlRXJyb3I6IikgIT0gMCkKKyAgICB0aHJvdyAiRXJyb3I6IGRp
ZG4ndCB0aHJvdyBvciB0aHJldyB3cm9uZyBleGNlcHRpb246ICIgKyBkaWRUaHJvdzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW5saW5lLWNhbGwtdmFy
YXJncy1hbmQtY2FsbC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW5s
aW5lLWNhbGwtdmFyYXJncy1hbmQtY2FsbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDAxZDI1NjAwZGU0NTVk
OTIyMzY2NjJmMTZmZjY2MjAwYzI0ZTQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2FsbC12YXJhcmdzLWFuZC1jYWxsLmpzCkBA
IC0wLDAgKzEsMjUgQEAKK2Z1bmN0aW9uIGZvbyhhLCBiKSB7CisgICAgcmV0dXJuIGJhcihhLCBi
KTsKK30KKworZnVuY3Rpb24gYmFyKGEsIGIpIHsKKyAgICB2YXIgeCA9IGJhei5hcHBseShudWxs
LCBhcmd1bWVudHMpOworICAgIHZhciB5ID0gYmF6KGEsIGIpCisgICAgcmV0dXJuIHggKyB5ICog
MzsKK30KKworZnVuY3Rpb24gYmF6KGEsIGIpIHsKKyAgICByZXR1cm4gYSArIGIgKiAyOworfQor
Citub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7Cisg
ICAgdmFyIHJlc3VsdCA9IGZvbyg3LCAxMSk7CisgICAgaWYgKHJlc3VsdCAhPSAxMTYpCisgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3Vs
dCA9IGZvbyg1LCAyMTQ3NDgzNjQ2KTsKK2lmIChyZXN1bHQgIT0gMTcxNzk4NjkxODgpCisgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2FsbC12YXJhcmdzLmpzIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2FsbC12YXJhcmdzLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmFlN2E1NDUwOWE3MjkyMjk1MDljOWNmYjExZGFhMDFkYjM3NDFhNmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2lubGluZS1j
YWxsLXZhcmFyZ3MuanMKQEAgLTAsMCArMSwyMyBAQAorZnVuY3Rpb24gZm9vKGEsIGIpIHsKKyAg
ICByZXR1cm4gYmFyKGEsIGIpOworfQorCitmdW5jdGlvbiBiYXIoYSwgYikgeworICAgIHJldHVy
biBiYXouYXBwbHkobnVsbCwgYXJndW1lbnRzKTsKK30KKworZnVuY3Rpb24gYmF6KGEsIGIpIHsK
KyAgICByZXR1cm4gYSArIGIgKiAyOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyg3LCAxMSk7Cisg
ICAgaWYgKHJlc3VsdCAhPSAyOSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAi
ICsgcmVzdWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9vKDUsIDIxNDc0ODM2NDYpOworaWYgKHJl
c3VsdCAhPSA0Mjk0OTY3Mjk3KQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW5s
aW5lLWNsb3N1cmUtY2FsbC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
aW5saW5lLWNsb3N1cmUtY2FsbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDlhNjE0ZGZhNGVjOGYzNDZhMjAw
MTJhNjBiZGU4OThkYmFhYjBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9pbmxpbmUtY2xvc3VyZS1jYWxsLmpzCkBAIC0wLDAgKzEsMTYgQEAK
K2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIGZ1bmN0aW9uKHkpIHsgcmV0dXJuIHggKyB5
OyB9Cit9CisKK2Z1bmN0aW9uIGJhcihhLCBiKSB7CisgICAgcmV0dXJuIGZvbyhhKShiKTsKK30K
Kworbm9JbmxpbmUoZm9vKTsKK25vSW5saW5lKGJhcik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gYmFyKGksIGkgKyAxKTsKKyAgICBpZiAo
cmVzdWx0ICE9IGkgKiAyICsgMSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0IGZv
ciAiICsgaSArICI6ICIgKyByZXN1bHQ7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtaW4tYW5kLW91dC1vZi1ib3VuZHMu
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwt
aW4tYW5kLW91dC1vZi1ib3VuZHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTcwZjg1ZWZhNzdhZTY0NjM2NjVh
ZDM1NjVhNzk4ZjhhZmRlZGE3ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZhbC1pbi1hbmQtb3V0LW9mLWJvdW5kcy5q
cwpAQCAtMCwwICsxLDE4IEBACitmdW5jdGlvbiBmb28oYSkgeworICAgIGFbNDJdID0gOTUwMTA7
Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3QobGVuZ3RoLCBleHBlY3RlZCkg
eworICAgIHZhciBhID0gbmV3IEludDE2QXJyYXkobGVuZ3RoKTsKKyAgICBmb28oYSk7CisgICAg
dmFyIHJlc3VsdCA9IGFbNDJdOworICAgIGlmIChyZXN1bHQgIT0gZXhwZWN0ZWQpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHZhbHVlIGF0IGFbNDJdOiAiICsgcmVzdWx0OworfQorCitmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdGVzdCgxMCwgdm9pZCAwKTsKKyAg
ICB0ZXN0KDEwMCwgMjk0NzQpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9pbnQxNi1wdXQtYnktdmFsLWluLWJvdW5kcy10aGVuLWV4aXQtb3V0LW9m
LWJvdW5kcy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYtcHV0
LWJ5LXZhbC1pbi1ib3VuZHMtdGhlbi1leGl0LW91dC1vZi1ib3VuZHMuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGVkNzQ2MmE0MzIzMjdiZDIzOGQzOWU5M2IzOGY4NTM0NjkxNTQ2MwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZhbC1p
bi1ib3VuZHMtdGhlbi1leGl0LW91dC1vZi1ib3VuZHMuanMKQEAgLTAsMCArMSwxOSBAQAorZnVu
Y3Rpb24gZm9vKGEpIHsKKyAgICBhWzQyXSA9IDk1MDEwOworfQorCitub0lubGluZShmb28pOwor
CitmdW5jdGlvbiB0ZXN0KGxlbmd0aCwgZXhwZWN0ZWQpIHsKKyAgICB2YXIgYSA9IG5ldyBJbnQx
NkFycmF5KGxlbmd0aCk7CisgICAgZm9vKGEpOworICAgIHZhciByZXN1bHQgPSBhWzQyXTsKKyAg
ICBpZiAocmVzdWx0ICE9IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCB2YWx1
ZSBhdCBhWzQyXTogIiArIHJlc3VsdDsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7
ICsraSkKKyAgICB0ZXN0KDEwMCwgMjk0NzQpOworCit0ZXN0KDEwLCB2b2lkIDApOworCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12
YWwtb3V0LW9mLWJvdW5kcy1ib3VuZHMtdGhlbi1kby1pbi1ib3VuZHMuanMgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludDE2LXB1dC1ieS12YWwtb3V0LW9mLWJvdW5kcy1i
b3VuZHMtdGhlbi1kby1pbi1ib3VuZHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JiOTY0Y2EwNzM2ZDNhNjA0
MjYxNTM3MDVkNWNlYTMxZDE3ODE3NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50MTYtcHV0LWJ5LXZhbC1vdXQtb2YtYm91bmRzLWJvdW5k
cy10aGVuLWRvLWluLWJvdW5kcy5qcwpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiBmb28oYSkg
eworICAgIGFbNDJdID0gOTUwMTA7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRl
c3QobGVuZ3RoLCBleHBlY3RlZCkgeworICAgIHZhciBhID0gbmV3IEludDE2QXJyYXkobGVuZ3Ro
KTsKKyAgICBmb28oYSk7CisgICAgdmFyIHJlc3VsdCA9IGFbNDJdOworICAgIGlmIChyZXN1bHQg
IT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHZhbHVlIGF0IGFbNDJdOiAi
ICsgcmVzdWx0OworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKQorICAgIHRl
c3QoMTAsIHZvaWQgMCk7CisKK3Rlc3QoMTAwLCAyOTQ3NCk7CisKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW52YWxpZGF0aW9uLXBvaW50LmpzIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnZhbGlkYXRpb24tcG9pbnQuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmY4YjU1YzdjNjNiZWZiZjNjNjllOGE5ZDhjMjY1ZjVlMjA0YTdiYgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW52YWxpZGF0
aW9uLXBvaW50LmpzCkBAIC0wLDAgKzEsMjQgQEAKK2Z1bmN0aW9uIGZvbyhvLCBwKSB7CisgICAg
cG9zc2libHlEb0JhZFRoaW5ncyhwKTsKKyAgICByZXR1cm4gby5mKCk7Cit9Citub0lubGluZShm
b28pOworCitmdW5jdGlvbiBUaGluZ3koKSB7IH0KK1RoaW5neS5wcm90b3R5cGUuZiA9IGZ1bmN0
aW9uKCkgeyByZXR1cm4gNDI7IH0KKworZnVuY3Rpb24gcG9zc2libHlEb0JhZFRoaW5ncyhwKSB7
CisgICAgaWYgKHApCisgICAgICAgIFRoaW5neS5wcm90b3R5cGUuZiA9IGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gMjQ7IH0KK30KK25vSW5saW5lKHBvc3NpYmx5RG9CYWRUaGluZ3MpOworCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhuZXcgVGhp
bmd5KCksIGZhbHNlKTsKKyAgICBpZiAocmVzdWx0ICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28obmV3IFRo
aW5neSgpLCB0cnVlKTsKK2lmIChyZXN1bHQgIT0gMjQpCisgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0OiAiICsgcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9tYWtlLXJvcGUtMi5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvbWFrZS1yb3BlLTIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjJhMjNhYjU1ODMwYmVlMTViZGQ5NDRj
YzJkMWU4ODYyNTZjMWNhMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvbWFrZS1yb3BlLTIuanMKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24g
Zm9vKHgpIHsKKyAgICByZXR1cm4gImhlbGxvIiArIHg7Cit9CisKK25vSW5saW5lKGZvbyk7CisK
K2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9v
KCIgd29ybGQiKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAgICAg
ICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQgdHlw
ZTogIiArIHJlc3VsdDsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAiaGVsbG8gd29ybGQiKQor
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWFrZS1yb3BlLTMuanMg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0zLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjNhODUyY2MzNzFhYmU0ODM4NmEyMDBjMGM1NjdjMzVjMmFjYWVjOGQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL21ha2Utcm9wZS0z
LmpzCkBAIC0wLDAgKzEsMTYgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuICJoZWxs
byIgKyB4ICsgIiEhIjsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oIiB3b3JsZCIpOworICAgIGlm
ICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7
CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCB0eXBlOiAiICsgcmVzdWx0OworICAg
IH0KKyAgICBpZiAocmVzdWx0ICE9ICJoZWxsbyB3b3JsZCEhIikKKyAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1hcnJheS1zdG9yYWdlLWFycmF5LXdpdGgtc2l6
ZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWFycmF5LXN0b3Jh
Z2UtYXJyYXktd2l0aC1zaXplLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkNjFiZTk1NmFjNTVhYWYxMjBhOWQ4
NGFlYzRiNmVhOTJlYTNjMmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL25ldy1hcnJheS1zdG9yYWdlLWFycmF5LXdpdGgtc2l6ZS5qcwpAQCAt
MCwwICsxLDIzIEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBuZXcgQXJyYXkoeCk7
Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkgeworICAgIHZhciBy
ZXN1bHQgPSBmb28oc2l6ZSk7CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0gc2l6ZSkKKyAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHZhciBzYXdUaGlu
Z3MgPSBmYWxzZTsKKyAgICBmb3IgKHZhciBzIGluIHJlc3VsdCkKKyAgICAgICAgc2F3VGhpbmdz
ID0gdHJ1ZTsKKyAgICBpZiAoc2F3VGhpbmdzKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGFycmF5
IGlzIGluIGJhZCBzdGF0ZTogIiArIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAiNDIuNSI7Cisg
ICAgaWYgKHJlc3VsdFswXSAhPSAiNDIuNSIpCisgICAgICAgIHRocm93ICJFcnJvcjogYXJyYXkg
aXMgaW4gd2llcmQgc3RhdGU6ICIgKyByZXN1bHQ7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDAwOyArK2kpIHsKKyAgICB0ZXN0KDEwMDAwMDApOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctYXJyYXktd2l0aC1zaXplLXdpdGgtYmFk
LXRpbWUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1hcnJheS13
aXRoLXNpemUtd2l0aC1iYWQtdGltZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTY3NzQxNTZmMjljYjkxYmRi
NTk5MTNhZjQ1OTEyMTRiNTQ3NmQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctYXJyYXktd2l0aC1zaXplLXdpdGgtYmFkLXRpbWUuanMK
QEAgLTAsMCArMSwzNCBAQAorZnVuY3Rpb24gZm9vKHgpIHsKKyAgICByZXR1cm4gbmV3IEFycmF5
KHgpOworfQorCitub0lubGluZShmb28pOworCit2YXIgcG9rZTsKK0FycmF5LnByb3RvdHlwZS5f
X2RlZmluZVNldHRlcl9fKCIxIiwgZnVuY3Rpb24oKSB7CisgICAgcG9rZSA9ICJwb2tlIjsKK30p
OworCitmdW5jdGlvbiB0ZXN0KHNpemUpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKHNpemUpOwor
ICAgIGlmIChyZXN1bHQubGVuZ3RoICE9IHNpemUpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICB2YXIgc2F3VGhpbmdzID0gZmFsc2U7CisgICAgZm9y
ICh2YXIgcyBpbiByZXN1bHQpIHsKKyAgICAgICAgaWYgKHMgIT0gIjEiKQorICAgICAgICAgICAg
c2F3VGhpbmdzID0gdHJ1ZTsKKyAgICB9CisgICAgaWYgKHNhd1RoaW5ncykKKyAgICAgICAgdGhy
b3cgIkVycm9yOiBhcnJheSBpcyBpbiBiYWQgc3RhdGU6ICIgKyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gIjQyLjUiOworICAgIGlmIChyZXN1bHRbMF0gIT0gIjQyLjUiKQorICAgICAgICB0aHJv
dyAiRXJyb3I6IGFycmF5IGlzIGluIHdpZXJkIHN0YXRlOiAiICsgcmVzdWx0OworICAgIHBva2Ug
PSBudWxsOworICAgIHJlc3VsdFsxXSA9IDQyOworICAgIGlmIChwb2tlICE9ICJwb2tlIikKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiBzZXR0ZXIgbm90IGNhbGxlZC4iOworfQorCitmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgdGVzdCg0Mik7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1jb250aWd1b3VzLWFycmF5LXdp
dGgtc2l6ZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3LWNvbnRp
Z3VvdXMtYXJyYXktd2l0aC1zaXplLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwOGE2ZjY3ZTgxOTVhNWUyNTQx
MjY5ODdjOTk0NWJiZTZjNWQ5YzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL25ldy1jb250aWd1b3VzLWFycmF5LXdpdGgtc2l6ZS5qcwpAQCAt
MCwwICsxLDMxIEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBuZXcgQXJyYXkoeCk7
Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkgeworICAgIHZhciBy
ZXN1bHQgPSBmb28oc2l6ZSk7CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0gc2l6ZSkgeworICAg
ICAgICBwcmludCgiR290IGEgd2VpcmQgbGVuZ3RoOiAiICsgcmVzdWx0Lmxlbmd0aCk7CisgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICB9CisgICAgdmFy
IHNhd1RoaW5ncyA9IGZhbHNlOworICAgIGZvciAodmFyIHMgaW4gcmVzdWx0KQorICAgICAgICBz
YXdUaGluZ3MgPSB0cnVlOworICAgIGlmIChzYXdUaGluZ3MpIHsKKyAgICAgICAgcHJpbnQoIlNh
dyB0aGluZ3MhIik7CisgICAgICAgIHRocm93ICJFcnJvcjogYXJyYXkgaXMgaW4gYmFkIHN0YXRl
OiAiICsgcmVzdWx0OworICAgIH0KKyAgICByZXN1bHRbMF0gPSAiNDIuNSI7CisgICAgaWYgKHJl
c3VsdFswXSAhPSAiNDIuNSIpIHsKKyAgICAgICAgcHJpbnQoIkRpZG4ndCBzdG9yZSB3aGF0IEkg
dGhvdWdodCBJIHN0b3JlZC4iKTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiBhcnJheSBpcyBpbiB3
aWVyZCBzdGF0ZTogIiArIHJlc3VsdDsKKyAgICB9Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDAwOyArK2kpIHsKKyAgICB0ZXN0KDApOworICAgIHRlc3QoMSk7CisgICAgdGVzdCg0Mik7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy1k
b3VibGUtYXJyYXktd2l0aC1zaXplLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9uZXctZG91YmxlLWFycmF5LXdpdGgtc2l6ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NGYyOGJhNjQz
ODljZmMwYTVlMDA3ZGI2NWVhYmY5YjBlZTc2NDhhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctZG91YmxlLWFycmF5LXdpdGgtc2l6ZS5q
cwpAQCAtMCwwICsxLDI1IEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBuZXcgQXJy
YXkoeCk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkgeworICAg
IHZhciByZXN1bHQgPSBmb28oc2l6ZSk7CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0gc2l6ZSkK
KyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIHZhciBz
YXdUaGluZ3MgPSBmYWxzZTsKKyAgICBmb3IgKHZhciBzIGluIHJlc3VsdCkKKyAgICAgICAgc2F3
VGhpbmdzID0gdHJ1ZTsKKyAgICBpZiAoc2F3VGhpbmdzKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGFycmF5IGlzIGluIGJhZCBzdGF0ZTogIiArIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSA0Mi41
OworICAgIGlmIChyZXN1bHRbMF0gIT0gNDIuNSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBhcnJh
eSBpcyBpbiB3aWVyZCBzdGF0ZTogIiArIHJlc3VsdDsKK30KKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDA7ICsraSkgeworICAgIHRlc3QoMCk7CisgICAgdGVzdCgxKTsKKyAgICB0ZXN0KDQy
KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbmV3
LWludDMyLWFycmF5LXdpdGgtc2l6ZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvbmV3LWludDMyLWFycmF5LXdpdGgtc2l6ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjhjNWRiNzIw
N2VkYTQ0M2M3ZjIyYjJiMjMxNjVjMTFlZjRmMjQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctaW50MzItYXJyYXktd2l0aC1zaXplLmpz
CkBAIC0wLDAgKzEsMjUgQEAKK2Z1bmN0aW9uIGZvbyh4KSB7CisgICAgcmV0dXJuIG5ldyBBcnJh
eSh4KTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZnVuY3Rpb24gdGVzdChzaXplKSB7CisgICAg
dmFyIHJlc3VsdCA9IGZvbyhzaXplKTsKKyAgICBpZiAocmVzdWx0Lmxlbmd0aCAhPSBzaXplKQor
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgdmFyIHNh
d1RoaW5ncyA9IGZhbHNlOworICAgIGZvciAodmFyIHMgaW4gcmVzdWx0KQorICAgICAgICBzYXdU
aGluZ3MgPSB0cnVlOworICAgIGlmIChzYXdUaGluZ3MpCisgICAgICAgIHRocm93ICJFcnJvcjog
YXJyYXkgaXMgaW4gYmFkIHN0YXRlOiAiICsgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDQyOwor
ICAgIGlmIChyZXN1bHRbMF0gIT0gNDIpCisgICAgICAgIHRocm93ICJFcnJvcjogYXJyYXkgaXMg
aW4gd2llcmQgc3RhdGU6ICIgKyByZXN1bHQ7Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpIHsKKyAgICB0ZXN0KDApOworICAgIHRlc3QoMSk7CisgICAgdGVzdCg0Mik7Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL25ldy11bmRl
Y2lkZWQtYXJyYXktd2l0aC1zaXplLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9uZXctdW5kZWNpZGVkLWFycmF5LXdpdGgtc2l6ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTQyYzdl
MjExZGVlMzE0MDcyNmRmYzdkOWUxMGZhNDFmODAyZjlkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9uZXctdW5kZWNpZGVkLWFycmF5LXdpdGgt
c2l6ZS5qcwpAQCAtMCwwICsxLDIyIEBACitmdW5jdGlvbiBmb28oeCkgeworICAgIHJldHVybiBu
ZXcgQXJyYXkoeCk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2Z1bmN0aW9uIHRlc3Qoc2l6ZSkg
eworICAgIHZhciByZXN1bHQgPSBmb28oc2l6ZSk7CisgICAgaWYgKHJlc3VsdC5sZW5ndGggIT0g
c2l6ZSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAg
IHZhciBzYXdUaGluZ3MgPSBmYWxzZTsKKyAgICBmb3IgKHZhciBzIGluIHJlc3VsdCkKKyAgICAg
ICAgc2F3VGhpbmdzID0gdHJ1ZTsKKyAgICBpZiAoc2F3VGhpbmdzKQorICAgICAgICB0aHJvdyAi
RXJyb3I6IGFycmF5IGlzIGluIGJhZCBzdGF0ZTogIiArIHJlc3VsdDsKK30KKworZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHRlc3QoMCk7CisgICAgdGVzdCgxKTsKKyAg
ICB0ZXN0KDQyKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvcHV0LWJ5LWlkLXRocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3B1dC1ieS1pZC10aHJvdy10aHJvdWdoLW9wdGlt
aXplZC1jb2RlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3NTQxYmE5NjMyZTRlZjg5NjlmZTg2NDUyMTEyNjc3
Yzc5ZDE2NzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3B1dC1ieS1pZC10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2RlLmpzCkBAIC0wLDAg
KzEsMzMgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIG8uZiA9
IDQyOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsg
KytpKSB7CisgICAgdmFyIG8gPSB7fTsKKyAgICBmb28obyk7CisgICAgaWYgKG8uZiAhPSA0MikK
KyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgby5mOworICAgIG8gPSB7Zjoy
M307CisgICAgZm9vKG8pOworICAgIGlmIChvLmYgIT0gNDIpCisgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdDogIiArIG8uZjsKKyAgICBvID0ge2c6MTJ9OworICAgIGZvbyhvKTsKKyAg
ICBpZiAoby5mICE9IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyBv
LmY7Cit9CisKK3ZhciBkaWRUaHJvdzsKK3RyeSB7CisgICAgdmFyIG8gPSB7fTsKKyAgICBPYmpl
Y3QuZnJlZXplKG8pOworICAgIGZvbyhvKTsKK30gY2F0Y2ggKGUpIHsKKyAgICBkaWRUaHJvdyA9
IGU7Cit9CisKK2lmICghZGlkVGhyb3cgfHwgZGlkVGhyb3cudG9TdHJpbmcoKS5pbmRleE9mKCJU
eXBlRXJyb3I6IikgIT0gMCkKKyAgICB0aHJvdyAiRXJyb3I6IGRpZG4ndCB0aHJvdyBvciB0aHJl
dyB3cm9uZyBleGNlcHRpb246ICIgKyBkaWRUaHJvdzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVjdXJzZS1pbmZpbml0ZWx5LW9uLWdldHRlci5qcyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVjdXJzZS1pbmZpbml0ZWx5LW9u
LWdldHRlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTBiZThiNDJmNzA4MTBmZTExYThjMzk3NmI4NzQ3YzFk
YzhiNDdhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9yZWN1cnNlLWluZmluaXRlbHktb24tZ2V0dGVyLmpzCkBAIC0wLDAgKzEsMTkgQEAKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICB2YXIgbyA9IHt9OworICAgIG8uX19k
ZWZpbmVHZXR0ZXJfXygiZiIsIGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gby5mOworICAg
IH0pOworICAgIHZhciBkaWRUaHJvdzsKKyAgICB2YXIgcmVzdWx0OworICAgIHJlc3VsdCA9ICJu
b3Qgc2V0IjsKKyAgICB0cnkgeworICAgICAgICByZXN1bHQgPSBvLmY7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICBkaWRUaHJvdyA9IGU7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gIm5v
dCBzZXQiKQorICAgICAgICB0aHJvdyAiRGlkIHNldCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAg
aWYgKCFkaWRUaHJvdyB8fCBkaWRUaHJvdy50b1N0cmluZygpLmluZGV4T2YoIlJhbmdlRXJyb3Ii
KSAhPSAwKQorICAgICAgICB0aHJvdyAiQmFkIGV4Y2VwdGlvbjogIiArIGRpZFRocm93OworfQor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3JlcGVhdGVk
LWFyaXR5LWNoZWNrLWZhaWwuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3JlcGVhdGVkLWFyaXR5LWNoZWNrLWZhaWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODM4YzQ4ZjczMDJhYzA5
YTAwODQzYWIxM2IyYWFlMjgwYTVkYTY1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVwZWF0ZWQtYXJpdHktY2hlY2stZmFpbC5qcwpAQCAt
MCwwICsxLDggQEAKK2Z1bmN0aW9uIGJhcihhLGIsYyxkLGUsZixnLGgsaSxqLGspIHsKK30KKwor
bm9JbmxpbmUoYmFyKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwMDsgKytpKQorICAg
IGJhcigpOworCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3J1bnRpbWUtdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvcnVudGltZS10aHJvdy10aHJvdWdoLW9wdGltaXplZC1jb2Rl
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFkOWRmMWRkZmJjNTI3ZjcwN2FjNzJmYjBkNTM2MDhkZDZiNmYxOTgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3J1
bnRpbWUtdGhyb3ctdGhyb3VnaC1vcHRpbWl6ZWQtY29kZS5qcwpAQCAtMCwwICsxLDMzIEBACitm
dW5jdGlvbiBmb28oYSwgcykgeworICAgIHJldHVybiBhW3NdICsgMTsKK30KKwordmFyIHNob3Vs
ZFRocm93ID0gZmFsc2U7CitmdW5jdGlvbiBiYXIoKSB7CisgICAgaWYgKHNob3VsZFRocm93KQor
ICAgICAgICB0aHJvdyAiaGVsbG8iOworICAgIHJldHVybiA0MjsKK30KKwordmFyIGEgPSB7fTsK
K2EuX19kZWZpbmVHZXR0ZXJfXygiYmFyIiwgYmFyKTsKKworbm9JbmxpbmUoZm9vKTsKK25vSW5s
aW5lKGJhcik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIg
cmVzdWx0ID0gZm9vKGEsICJiYXIiKTsKKyAgICBpZiAocmVzdWx0ICE9IDQzKQorICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciBkaWRUaHJvdzsK
K3RyeSB7CisgICAgc2hvdWxkVGhyb3cgPSB0cnVlOworICAgIGZvbyhhLCAiYmFyIik7Cit9IGNh
dGNoIChlKSB7CisgICAgZGlkVGhyb3cgPSBlOworfQorCitpZiAoZGlkVGhyb3cgIT0gImhlbGxv
IikKKyAgICB0aHJvdyAiRXJyb3I6IGRpZG4ndCB0aHJvdyBvciB0aHJldyB3cm9uZyBleGNlcHRp
b246ICIgKyBkaWRUaHJvdzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3Mvc2ltcGxlLXBvbHl2YXJpYW50LWNhbGwtaW5saW5pbmctZXhhbXBsZS5qcyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2ltcGxlLXBvbHl2YXJpYW50LWNhbGwt
aW5saW5pbmctZXhhbXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzNiMjc2Y2FjYjhlNGE3MzRhYjIzYjQy
Yjg2MmY1NjVkOGY0ZTAzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtY2FsbC1pbmxpbmluZy1leGFtcGxlLmpz
CkBAIC0wLDAgKzEsMzIgQEAKK2Z1bmN0aW9uIGZvbyhiYXopIHsKKyAgICByZXR1cm4gYmFyKGJh
eik7Cit9CisKK2Z1bmN0aW9uIGZ1enooYmF6KSB7CisgICAgcmV0dXJuIGJhcihiYXopOworfQor
CitmdW5jdGlvbiBiYXIoYmF6KSB7CisgICAgcmV0dXJuIGJheigpOworfQorCitmdW5jdGlvbiBi
YXoxKCkgeworICAgIHJldHVybiA0MjsKK30KKworZnVuY3Rpb24gYmF6MigpIHsKKyAgICByZXR1
cm4gMjQ7Cit9CisKK25vSW5saW5lKGZvbyk7Citub0lubGluZShmdXp6KTsKKworZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oYmF6MSk7Cisg
ICAgaWYgKHJlc3VsdCAhPSA0MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAi
ICsgcmVzdWx0OworICAgIHZhciByZXN1bHQgPSBmdXp6KGJhejIpOworICAgIGlmIChyZXN1bHQg
IT0gMjQpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30K
KwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW1wbGUt
cG9seXZhcmlhbnQtZ2V0LWJ5LWlkLWlubGluaW5nLWV4YW1wbGUuanMgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL3NpbXBsZS1wb2x5dmFyaWFudC1nZXQtYnktaWQtaW5saW5p
bmctZXhhbXBsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTRhYjA5YzczMDg0MGZlZjFiN2QwZTU4ZGE4Mjk2
ODE0MmM1ZDhmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9zaW1wbGUtcG9seXZhcmlhbnQtZ2V0LWJ5LWlkLWlubGluaW5nLWV4YW1wbGUuanMK
QEAgLTAsMCArMSwyNCBAQAorZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gYmFyKG8pOwor
fQorCitmdW5jdGlvbiBmdXp6KG8pIHsKKyAgICByZXR1cm4gYmFyKG8pOworfQorCitmdW5jdGlv
biBiYXIobykgeworICAgIHJldHVybiBvLmY7Cit9CisKK25vSW5saW5lKGZvbyk7Citub0lubGlu
ZShmdXp6KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciBy
ZXN1bHQgPSBmb28oe2Y6NDJ9KTsKKyAgICBpZiAocmVzdWx0ICE9IDQyKQorICAgICAgICB0aHJv
dyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgdmFyIHJlc3VsdCA9IGZ1enoo
e2c6MjMsIGY6MjR9KTsKKyAgICBpZiAocmVzdWx0ICE9IDI0KQorICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2ltcGxlLXBvbHl2YXJpYW50LXB1dC1ieS1pZC1pbmxp
bmluZy1leGFtcGxlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW1w
bGUtcG9seXZhcmlhbnQtcHV0LWJ5LWlkLWlubGluaW5nLWV4YW1wbGUuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGViNjI3MmY3ZWU4ZmY0OTc5Nzg5MzkyNWQ5MmM5N2FkN2I1NzQxNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2ltcGxlLXBvbHl2YXJpYW50
LXB1dC1ieS1pZC1pbmxpbmluZy1leGFtcGxlLmpzCkBAIC0wLDAgKzEsMjYgQEAKK2Z1bmN0aW9u
IGZvbyhvKSB7CisgICAgYmFyKG8pOworfQorCitmdW5jdGlvbiBmdXp6KG8pIHsKKyAgICBiYXIo
byk7Cit9CisKK2Z1bmN0aW9uIGJhcihvKSB7CisgICAgby5mID0gNDI7Cit9CisKK25vSW5saW5l
KGZvbyk7Citub0lubGluZShmdXp6KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsr
aSkgeworICAgIHZhciBvID0ge307CisgICAgZm9vKG8pOworICAgIGlmIChvLmYgIT0gNDIpCisg
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIG8uZjsKKyAgICBvID0ge2Y6MjN9
OworICAgIHZhciByZXN1bHQgPSBmdXp6KG8pOworICAgIGlmIChvLmYgIT0gNDIpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIG8uZjsKK30KKwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90aHJvdy10aHJvdWdoLW9wdGltaXplZC1j
b2RlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90aHJvdy10aHJvdWdo
LW9wdGltaXplZC1jb2RlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmZWIyNDBlZDM3OGZhMWY4MWNhM2UwMGI1
MTdkODIwZDU1OTcxOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL3Rocm93LXRocm91Z2gtb3B0aW1pemVkLWNvZGUuanMKQEAgLTAsMCArMSwz
MCBAQAorZnVuY3Rpb24gZm9vKGYpIHsKKyAgICByZXR1cm4gZigxKSArIDE7Cit9CisKK3ZhciBz
aG91bGRUaHJvdyA9IGZhbHNlOworZnVuY3Rpb24gYmFyKHgpIHsKKyAgICBpZiAoc2hvdWxkVGhy
b3cpCisgICAgICAgIHRocm93ICJoZWxsbyI7CisgICAgcmV0dXJuIDQyIC0geDsKK30KKworbm9J
bmxpbmUoZm9vKTsKK25vSW5saW5lKGJhcik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAw
OyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKGJhcik7CisgICAgaWYgKHJlc3VsdCAhPSA0
MikKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQorCit2
YXIgZGlkVGhyb3c7Cit0cnkgeworICAgIHNob3VsZFRocm93ID0gdHJ1ZTsKKyAgICBmb28oYmFy
KTsKK30gY2F0Y2ggKGUpIHsKKyAgICBkaWRUaHJvdyA9IGU7Cit9CisKK2lmIChkaWRUaHJvdyAh
PSAiaGVsbG8iKQorICAgIHRocm93ICJFcnJvcjogZGlkbid0IHRocm93IG9yIHRocmV3IHdyb25n
IGV4Y2VwdGlvbjogIiArIGRpZFRocm93OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tb2JqZWN0LW9yLXN0cmluZy5qcyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLW9iamVjdC1vci1zdHJp
bmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDM2MzhjMTRjZjFlZDY3MTU0MzE3YWY4YWRhYTBhMGU4ZmVjNzE2
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
dG8tc3RyaW5nLW9uLW9iamVjdC1vci1zdHJpbmcuanMKQEAgLTAsMCArMSwyNyBAQAorZnVuY3Rp
b24gRm9vKCkgeyB9CisKK0Zvby5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHsgcmV0
dXJuICJoZWxsbyIgfTsKKworZnVuY3Rpb24gZm9vKG8pIHsKKyAgICByZXR1cm4gU3RyaW5nKG8p
OworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDsgKytp
KSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhuZXcgRm9vKCkpOworICAgIGlmICh0eXBlb2YgcmVz
dWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRo
cm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3Vs
dCAhPSAiaGVsbG8iKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7CisgICAgCisgICAgcmVzdWx0ID0gZm9vKCJ3b3JsZCIpOworICAgIGlmICh0eXBlb2YgcmVz
dWx0ICE9ICJzdHJpbmciKSB7CisgICAgICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRo
cm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3Vs
dCAhPSAid29ybGQiKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1
bHQ7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Rv
LXN0cmluZy1vbi1vYmplY3QuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3RvLXN0cmluZy1vbi1vYmplY3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBhODlhNGM0MzM1ZDdiM2UxZGUz
ZDRlZDNjYjg2NWI5YTBlMDU3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLW9iamVjdC5qcwpAQCAtMCwwICsxLDE5IEBA
CitmdW5jdGlvbiBGb28oKSB7IH0KKworRm9vLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9u
KCkgeyByZXR1cm4gImhlbGxvIiB9OworCitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBT
dHJpbmcobyk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKG5ldyBGb28oKSk7CisgICAgaWYgKHR5
cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBp
ZiAocmVzdWx0ICE9ICJoZWxsbyIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDog
IiArIHJlc3VsdDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vYmplY3QuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJpbmctb2JqZWN0LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmU0NDM1ZTVhYWMxYjRlNDMzYzAxOTNmYjM3MzFmNzc4ZGUxODIyNTIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJp
bmctb2JqZWN0LmpzCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0
dXJuIFN0cmluZyhvKTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28obmV3IFN0cmluZygiaGVsbG8i
KSk7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3Jp
YmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmci
OworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJoZWxsbyIpCisgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vci1zdHJpbmctb2JqZWN0
LXRoZW4tb2JqZWN0LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1z
dHJpbmctb24tc3RyaW5nLW9yLXN0cmluZy1vYmplY3QtdGhlbi1vYmplY3QuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOGViMDQwYjc4YTFmNmMyNDdiNzhmYWY4NWY1YWE1N2QzM2Y5MDE5YgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXN0
cmluZy1vci1zdHJpbmctb2JqZWN0LXRoZW4tb2JqZWN0LmpzCkBAIC0wLDAgKzEsMzUgQEAKK2Z1
bmN0aW9uIGZvbyhvKSB7CisgICAgcmV0dXJuIFN0cmluZyhvKTsKK30KKworbm9JbmxpbmUoZm9v
KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQg
PSBmb28obmV3IFN0cmluZygiaGVsbG8iKSk7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0
cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9y
OiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJoZWxs
byIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKKyAgICAK
KyAgICByZXN1bHQgPSBmb28oIndvcmxkIik7CisgICAgaWYgKHR5cGVvZiByZXN1bHQgIT0gInN0
cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9y
OiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBpZiAocmVzdWx0ICE9ICJ3b3Js
ZCIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwor
ZnVuY3Rpb24gRm9vKCkgeyB9CisKK0Zvby5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigp
IHsgcmV0dXJuICJoZWxsbyIgfTsKKwordmFyIHJlc3VsdCA9IGZvbyhuZXcgRm9vKCkpOworaWYg
KHR5cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICBkZXNjcmliZShyZXN1bHQpOworICAg
IHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0IGEgc3RyaW5nIjsKK30KK2lmIChyZXN1bHQgIT0g
ImhlbGxvIikKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1z
dHJpbmctb3Itc3RyaW5nLW9iamVjdC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvdG8tc3RyaW5nLW9uLXN0cmluZy1vci1zdHJpbmctb2JqZWN0LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVhNWRlOTZmNDdkYzEwNTc1MmVkMDIzNDM0MTRhOWRiNzg3ODI2NGIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi1zdHJp
bmctb3Itc3RyaW5nLW9iamVjdC5qcwpAQCAtMCwwICsxLDIzIEBACitmdW5jdGlvbiBmb28obykg
eworICAgIHJldHVybiBTdHJpbmcobyk7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKG5ldyBTdHJp
bmcoImhlbGxvIikpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAg
ICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0
IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAiaGVsbG8iKQorICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisgICAgCisgICAgcmVzdWx0ID0g
Zm9vKCJ3b3JsZCIpOworICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9ICJzdHJpbmciKSB7CisgICAg
ICAgIGRlc2NyaWJlKHJlc3VsdCk7CisgICAgICAgIHRocm93ICJFcnJvcjogcmVzdWx0IGlzbid0
IGEgc3RyaW5nIjsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAid29ybGQiKQorICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi12YWx1ZS1vci1zdHJp
bmcuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi12
YWx1ZS1vci1zdHJpbmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGNlZDZjMDgzYTRjOGNhMzg1OWU3ZjdhZmY3
MDFjYThjZTRkZDI2YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvdG8tc3RyaW5nLW9uLXZhbHVlLW9yLXN0cmluZy5qcwpAQCAtMCwwICsxLDIz
IEBACitmdW5jdGlvbiBmb28obykgeworICAgIHJldHVybiBTdHJpbmcobyk7Cit9CisKK25vSW5s
aW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIg
cmVzdWx0ID0gZm9vKDQyKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgewor
ICAgICAgICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBp
c24ndCBhIHN0cmluZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gIjQyIikKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworICAgIAorICAgIHJlc3VsdCA9
IGZvbygid29ybGQiKTsKKyAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAic3RyaW5nIikgeworICAg
ICAgICBkZXNjcmliZShyZXN1bHQpOworICAgICAgICB0aHJvdyAiRXJyb3I6IHJlc3VsdCBpc24n
dCBhIHN0cmluZyI7CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gIndvcmxkIikKKyAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJpbmctb24tdmFsdWUuanMgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RvLXN0cmluZy1vbi12YWx1ZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40MDhlNWJhNGM5ZWQxZTA2ODUwOWJjMzU1ZDBmZmE2ZjVkNGM3NDRjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90by1zdHJp
bmctb24tdmFsdWUuanMKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gZm9vKG8pIHsKKyAgICBy
ZXR1cm4gU3RyaW5nKG8pOworfQorCitub0lubGluZShmb28pOworCitmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyg0Mik7CisgICAgaWYgKHR5
cGVvZiByZXN1bHQgIT0gInN0cmluZyIpIHsKKyAgICAgICAgZGVzY3JpYmUocmVzdWx0KTsKKyAg
ICAgICAgdGhyb3cgIkVycm9yOiByZXN1bHQgaXNuJ3QgYSBzdHJpbmciOworICAgIH0KKyAgICBp
ZiAocmVzdWx0ICE9ICI0MiIpCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiAr
IHJlc3VsdDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0JhZ1RvSGFzaE1hcC5oIGIv
U291cmNlL1dURi93dGYvQmFnVG9IYXNoTWFwLmgKaW5kZXggYzFiZTdmZjk1MTA3YTNhMWY0NDUz
ZjQ4N2ZlOTMzYmYwMzRhNzZkYy4uNTM5Nzk1ZmRlMWY1NzcxMjY2MjFkNzRjMTNhNmYyZjU2NGE3
NTg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQmFnVG9IYXNoTWFwLmgKKysrIGIvU291
cmNlL1dURi93dGYvQmFnVG9IYXNoTWFwLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDggKzMyLDggQEAKIAogbmFtZXNwYWNlIFdU
RiB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEVsZW1lbnRUeXBlLCB0eXBlbmFtZSBLZXlUeXBlLCB0
eXBlbmFtZSBLZXlHZXR0ZXJGdW5jdG9yPgotdm9pZCB0b0hhc2hNYXAoQmFnPEVsZW1lbnRUeXBl
PiYgYmFnLCBLZXlHZXR0ZXJGdW5jdG9yJiBnZXRLZXksIEhhc2hNYXA8S2V5VHlwZSwgRWxlbWVu
dFR5cGUqPiYgcmVzdWx0KQordGVtcGxhdGU8dHlwZW5hbWUgRWxlbWVudFR5cGUsIHR5cGVuYW1l
IEtleVR5cGUsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIEtleUdldHRlckZ1bmN0b3I+Cit2
b2lkIHRvSGFzaE1hcChCYWc8RWxlbWVudFR5cGU+JiBiYWcsIEtleUdldHRlckZ1bmN0b3ImIGdl
dEtleSwgSGFzaE1hcDxLZXlUeXBlLCBFbGVtZW50VHlwZSosIEhhc2hBcmc+JiByZXN1bHQpCiB7
CiAgICAgZm9yICh0eXBlbmFtZSBCYWc8RWxlbWVudFR5cGU+OjppdGVyYXRvciBpdGVyID0gYmFn
LmJlZ2luKCk7ICEhaXRlcjsgKytpdGVyKSB7CiAgICAgICAgIEVsZW1lbnRUeXBlKiBlbGVtZW50
ID0gKml0ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm0uaAppbmRleCBhYTBhYzU3MzQxNGIzMjhkOWE1OWE3NTkxMzhmYmQ0
MWM0ZmYwYjJlLi43MmNhNjRhZTNkMzc3YTg1OWU3MzIxOGM4NWRhZjEwMjQxYjkxNTkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmgKQEAgLTY2MCwxMiArNjYwLDEyIEBACiAjZGVmaW5lIEVOQUJMRV9KSVQgMAogI2Vu
ZGlmCiAKLS8qIFRoZSBKSVQgaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9uIGFsbCB4ODYsIHg4Ni02
NCwgQVJNICYgTUlQUyBwbGF0Zm9ybXMgZXhjZXB0IFdpbjY0LiAqLworLyogVGhlIEpJVCBpcyBl
bmFibGVkIGJ5IGRlZmF1bHQgb24gYWxsIHg4NiwgeDg2LTY0LCBBUk0gJiBNSVBTIHBsYXRmb3Jt
cyBleGNlcHQgV2luZG93cy4gKi8KICNpZiAhZGVmaW5lZChFTkFCTEVfSklUKSBcCiAgICAgJiYg
KENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQVShBUk0pIHx8IENQVShBUk02NCkgfHwgQ1BV
KE1JUFMpKSBcCiAgICAgJiYgKE9TKERBUldJTikgfHwgIUNPTVBJTEVSKEdDQykgfHwgR0NDX1ZF
UlNJT05fQVRfTEVBU1QoNCwgMSwgMCkpIFwKICAgICAmJiAhT1MoV0lOQ0UpIFwKLSAgICAmJiAh
KE9TKFdJTkRPV1MpICYmIENQVShYODZfNjQpKQorICAgICYmICFPUyhXSU5ET1dTKQogI2RlZmlu
ZSBFTkFCTEVfSklUIDEKICNlbmRpZgogCkBAIC04MzUsMTQgKzgzNSw2IEBACiAjZW5kaWYKICNl
bmRpZgogCi0vKiBGSVhNRTogV2UgY3VycmVudGx5IHVuY29uZGl0aW9uYWxseSB1c2Ugc3BlYXJh
dGUgc3RhY2tzLiBXaGVuIHdlIHN3aXRjaCB0byB1c2luZyB0aGUKLSAgIEMgc3RhY2sgZm9yIEpT
IGZyYW1lcywgd2UnbGwgbmVlZCB0byBtYWtlIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uYWwgb24g
RU5BQkxFKExMSU5UX0NMT09QKQotICAgb25seS4KLSovCi0jaWYgRU5BQkxFKExMSU5UX0NMT09Q
KSB8fCAxCi0jZGVmaW5lIFdURl9VU0VfU0VQQVJBVEVfQ19BTkRfSlNfU1RBQ0sgMQotI2VuZGlm
Ci0KIC8qIFBpY2sgd2hpY2ggYWxsb2NhdG9yIHRvIHVzZTsgd2Ugb25seSBuZWVkIGFuIGV4ZWN1
dGFibGUgYWxsb2NhdG9yIGlmIHRoZSBhc3NlbWJsZXIgaXMgY29tcGlsZWQgaW4uCiAgICBPbiB4
ODYtNjQgd2UgdXNlIGEgc2luZ2xlIGZpeGVkIG1tYXAsIG9uIG90aGVyIHBsYXRmb3JtcyB3ZSBt
bWFwIG9uIGRlbWFuZC4gKi8KICNpZiBFTkFCTEUoQVNTRU1CTEVSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvU3RhY2tCb3VuZHMuaCBiL1NvdXJjZS9XVEYvd3RmL1N0YWNrQm91bmRzLmgK
aW5kZXggY2EzOTc0OTZmMDQ5MTVkZDQ5YTk4MTEwZjQzYjIwOTQ4NDQ2MTc4YS4uNzg3NjdjYzI4
NDY2NDQ4ZGM2MDA1OTNhN2I1MjMzNjZlYzY1Yjk2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvU3RhY2tCb3VuZHMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TdGFja0JvdW5kcy5oCkBAIC0y
Nyw2ICsyNyw4IEBACiAjaWZuZGVmIFN0YWNrQm91bmRzX2gKICNkZWZpbmUgU3RhY2tCb3VuZHNf
aAogCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorCiBuYW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgU3Rh
Y2tCb3VuZHMgewpAQCAtNjcsNiArNjksMTcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Y2hhcio+KG1fYm91bmQpIC0gbWluQXZhaWxhYmxlRGVsdGE7CiAgICAgfQogCisg
ICAgdm9pZCogcmVjdXJzaW9uTGltaXQoc2l6ZV90IGhvc3Rab25lU2l6ZSwgdm9pZCogZGVzaXJl
ZExpbWl0KSBjb25zdAorICAgIHsKKyAgICAgICAgY2hlY2tDb25zaXN0ZW5jeSgpOworICAgICAg
ICBpZiAoaXNHcm93aW5nRG93bndhcmQoKSkgeworICAgICAgICAgICAgY2hhciogZW5kT2ZTdGFj
a1dpdGhIb3N0Wm9uZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fYm91bmQpICsgaG9zdFpv
bmVTaXplOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KGRlc2lyZWRMaW1pdCwgcmVpbnRl
cnByZXRfY2FzdDx2b2lkKj4oZW5kT2ZTdGFja1dpdGhIb3N0Wm9uZSkpOworICAgICAgICB9Cisg
ICAgICAgIGNoYXIqIGVuZE9mU3RhY2tXaXRoSG9zdFpvbmUgPSByZWludGVycHJldF9jYXN0PGNo
YXIqPihtX2JvdW5kKSAtIGhvc3Rab25lU2l6ZTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWluKGRl
c2lyZWRMaW1pdCwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oZW5kT2ZTdGFja1dpdGhIb3N0Wm9u
ZSkpOworICAgIH0KKwogICAgIGJvb2wgaXNHcm93aW5nRG93bndhcmQoKSBjb25zdAogICAgIHsK
ICAgICAgICAgQVNTRVJUKG1fb3JpZ2luICYmIG1fYm91bmQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRp
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9Db250ZW50
U2VhcmNoVXRpbGl0aWVzLmgKaW5kZXggOGVlZTEyNTYxYmI3NTdkMjg0MzIzNWUyMmFkNjcxNTVh
MWU5MjhlNS4uMDdjNDdjYWEwZmEwODUxY2M0M2U1ZmIyODFiNjhiMjA0MTEzZTM1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvaW5zcGVjdG9yL0NvbnRlbnRT
ZWFyY2hVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9p
bnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxpdGllcy5oCkBAIC0yLDMgKzIsNyBAQAogI2RlZmlu
ZSBXZWJDb3JlX0ZXRF9Db250ZW50U2VhcmNoVXRpbGl0aWVzX2gKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmg+CiAjZW5kaWYKKyNpZm5kZWYgV2ViQ29y
ZV9GV0RfQ29udGVudFNlYXJjaFV0aWxpdGllc19oCisjZGVmaW5lIFdlYkNvcmVfRldEX0NvbnRl
bnRTZWFyY2hVdGlsaXRpZXNfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnRlbnRTZWFy
Y2hVdGlsaXRpZXMuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvaW5zcGVjdG9yL1NjcmlwdEJyZWFrcG9pbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L0ZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9TY3JpcHRCcmVha3BvaW50LmgKaW5kZXggMTlk
ZTQyNTczYmI5ZDI0YTE5OGI1MGRiZDA5MmI2OWI1ZWE5OThiYy4uMzYyMGE0ZjBiYzIxNjEyMjE0
MWQwYmVkMTBmNjcxYzcwODEzYzA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvaW5zcGVjdG9yL1NjcmlwdEJyZWFrcG9pbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Gb3J3YXJkaW5nSGVhZGVycy9pbnNwZWN0b3IvU2NyaXB0QnJlYWtwb2ludC5oCkBAIC0y
LDMgKzIsNyBAQAogI2RlZmluZSBXZWJDb3JlX0ZXRF9TY3JpcHRCcmVha3BvaW50X2gKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRCcmVha3BvaW50Lmg+CiAjZW5kaWYKKyNpZm5kZWYg
V2ViQ29yZV9GV0RfU2NyaXB0QnJlYWtwb2ludF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX1Njcmlw
dEJyZWFrcG9pbnRfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdEJyZWFrcG9pbnQu
aD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMv
aW5zcGVjdG9yL1NjcmlwdERlYnVnTGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL2luc3BlY3Rvci9TY3JpcHREZWJ1Z0xpc3RlbmVyLmgKaW5kZXggZWM2ZmVhN2Uy
NzAyODljOTJmYTA3NzYyMzFhM2M4Zjc4NWEzMjc1MS4uMTlkZDcwY2ViYmI3NGYxNzdkOTQ1MmE2
MTQxODQxYTE3Mzc0MGNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hl
YWRlcnMvaW5zcGVjdG9yL1NjcmlwdERlYnVnTGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy9pbnNwZWN0b3IvU2NyaXB0RGVidWdMaXN0ZW5lci5oCkBAIC0y
LDMgKzIsNyBAQAogI2RlZmluZSBXZWJDb3JlX0ZXRF9TY3JpcHREZWJ1Z0xpc3RlbmVyX2gKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHREZWJ1Z0xpc3RlbmVyLmg+CiAjZW5kaWYKKyNp
Zm5kZWYgV2ViQ29yZV9GV0RfU2NyaXB0RGVidWdMaXN0ZW5lcl9oCisjZGVmaW5lIFdlYkNvcmVf
RldEX1NjcmlwdERlYnVnTGlzdGVuZXJfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Njcmlw
dERlYnVnTGlzdGVuZXIuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9y
d2FyZGluZ0hlYWRlcnMvcnVudGltZS9FcnJvckhhbmRsaW5nU2NvcGUuaCBiL1NvdXJjZS9XZWJD
b3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvRXJyb3JIYW5kbGluZ1Njb3BlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjZmZDJmZTAxZDFhNWQzMTE4NmE0MmMwNTNmZDMzMjY2Y2ZlNTQyMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3J1bnRpbWUvRXJyb3JI
YW5kbGluZ1Njb3BlLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0Vycm9y
SGFuZGxpbmdTY29wZV9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0Vycm9ySGFuZGxpbmdTY29wZV9o
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRXJyb3JIYW5kbGluZ1Njb3BlLmg+CisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3lhcnIvUmVndWxh
ckV4cHJlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3lhcnIvUmVn
dWxhckV4cHJlc3Npb24uaAppbmRleCAwOTlmYTQ2NDZmYTlkNzI1ZWFkOTI0NmM5ZjRmNzhkOWNh
NDdhMjJiLi5iYzI5M2UwNDk2NjZlOTFjNzE4MTJiZDhiNTFkZWQxYjRkOGFkZWZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy95YXJyL1JlZ3VsYXJFeHByZXNz
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMveWFyci9SZWd1bGFy
RXhwcmVzc2lvbi5oCkBAIC0yLDMgKzIsNyBAQAogI2RlZmluZSBXZWJDb3JlX0ZXRF9SZWd1bGFy
RXhwcmVzc2lvbl9oCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVndWxhckV4cHJlc3Npb24u
aD4KICNlbmRpZgorI2lmbmRlZiBXZWJDb3JlX0ZXRF9SZWd1bGFyRXhwcmVzc2lvbl9oCisjZGVm
aW5lIFdlYkNvcmVfRldEX1JlZ3VsYXJFeHByZXNzaW9uX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9SZWd1bGFyRXhwcmVzc2lvbi5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBhMTM4NWI4YThkNjQ4MTAwN2I0NTk0
NzI5ZTdlMmE0OTIzNTMwYjRjLi42YTU3YmNmMjkwYjRhZjJlZGU5ZDY5Mzk0ZmI0MGVlZWFmNDU2
Nzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2oKQEAgLTE4NTAyLDYgKzE4NTAyLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZv
cndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcQ29uc3RydWN0RGF0YS5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxEYXRlSW5zdGFuY2UuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVc
RXJyb3IuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJz
XHJ1bnRpbWVcRXJyb3JIYW5kbGluZ1Njb3BlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEVycm9yUHJvdG90eXBlLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEV4Y2VwdGlv
bkhlbHBlcnMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFk
ZXJzXHJ1bnRpbWVcRXhlY3V0YWJsZS5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDkwMDY3MjFjMjlj
Nzc0NWM1YTc2MTQzZDI3ZTBlNDIxMTEyYmU4MWMuLmJkYjAyODJhOTgyY2UyZDk0NmI1NGM2YWU2
MWRlODEyNDYzNWQ2NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTEyNDkyLDYgKzEyNDkyLDkgQEAKICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcRXJyb3Iu
aCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHJ1bnRpbWU8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFk
ZXJzXHJ1bnRpbWVcRXJyb3JIYW5kbGluZ1Njb3BlLmgiPgorICAgICAgPEZpbHRlcj5Gb3J3YXJk
aW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXEVycm9yUHJvdG90eXBl
LmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUJpbmRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5n
LmNwcAppbmRleCBhMzJkMzMyYWQyZTlhN2I4ZDE1ZjMwYmU0YTk1Njk5OTljZjk4ZWRhLi41ODIy
MWQwMGU0OTZiN2EwOTdlMDk4MmI0NDM5MWMwM2IyOGY0YzJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRl
IDxpbnRlcnByZXRlci9JbnRlcnByZXRlci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRGF0ZUluc3Rh
bmNlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvRXJy
b3JIYW5kbGluZ1Njb3BlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmg+
CiAjaW5jbHVkZSA8cnVudGltZS9KU0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRy
YXMuaD4KQEAgLTE1NCw3ICsxNTUsNyBAQCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgZXhjZXB0aW9uLCBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcgogICAgIGlm
IChpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24oZXhjZXB0aW9uKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgSW50ZXJwcmV0ZXI6OkVycm9ySGFuZGxpbmdNb2RlIG1vZGUoZXhlYyk7Cisg
ICAgRXJyb3JIYW5kbGluZ1Njb3BlIGVycm9yU2NvcGUoZXhlYy0+dm0oKSk7CiAKICAgICBSZWZQ
dHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnJvbUV4
Y2VwdGlvbihleGVjLCBleGNlcHRpb24sIFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6
ZVRvQ2FwdHVyZSkpOwogICAgIGV4ZWMtPmNsZWFyRXhjZXB0aW9uKCk7CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzZiYmZiYjA1ZGYxNWQzZjE5
Y2ZkMzgyYjU4MTI1NzUxYzNjNDBlMy4uMTg2ODY5OTM5MTliZjk0NDUzNjRjZDg5NDYzZGQ2Yzdl
MTZjN2M1OSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDE0LTAxLTI4ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVu
YmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgTWVyZ2UgdGhlIGpzQ1N0YWNrIGJyYW5jaAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NzYzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2Rp
c3BsYXktcHJvZmlsZXItb3V0cHV0OgorICAgICAgICAqIFNjcmlwdHMvcnVuLWpzYy1zdHJlc3Mt
dGVzdHM6CisKIDIwMTQtMDEtMjggIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQgQVBJIHRvIGFsbG93IHNldHRpbmcgdGhlIHBy
b2Nlc3MgbW9kZWwgaW4gV2ViS2l0V2ViQ29udGV4dApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy9kaXNwbGF5LXByb2ZpbGVyLW91dHB1dCBiL1Rvb2xzL1NjcmlwdHMvZGlzcGxheS1wcm9maWxl
ci1vdXRwdXQKaW5kZXggOTZhZjNmNTljZjRmOWM3YTljYjFmYjJlMzg2MjkyMTdjZTQ4YmJiMy4u
OGIyNjIyYTlmZTBiMWM0YWIyZDI5ZjgyYmI3MTBkMjg0ZDRlODYzYSAxMDA3NTUKLS0tIGEvVG9v
bHMvU2NyaXB0cy9kaXNwbGF5LXByb2ZpbGVyLW91dHB1dAorKysgYi9Ub29scy9TY3JpcHRzL2Rp
c3BsYXktcHJvZmlsZXItb3V0cHV0CkBAIC0xLDYgKzEsNiBAQAogIyEvdXNyL2Jpbi9lbnYgcnVi
eQogCi0jIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQzNyw3ICs0
MzcsMTEgQEAgJGNvbXBpbGF0aW9ucyA9ICRqc29uWyJjb21waWxhdGlvbnMiXS5tYXAgewogICAg
IHwgc3ViSnNvbiB8CiAgICAgQ29tcGlsYXRpb24ubmV3KHN1Ykpzb24pCiB9Ci0kZW5naW5lcyA9
IFsiQmFzZWxpbmUiLCAiREZHIl0KKyRlbmdpbmVzID0gWyJCYXNlbGluZSIsICJERkciLCAiRlRM
IiwgIkZUTEZvck9TUkVudHJ5Il0KKworZGVmIGlzT3B0aW1pemluZyhlbmdpbmUpCisgICAgZW5n
aW5lID09ICJERkciIG9yIGVuZ2luZSA9PSAiRlRMIiBvciBlbmdpbmUgPT0gIkZUTEZvck9TUkVu
dHJ5IgorZW5kCiAKICRzaG93Q291bnRzID0gdHJ1ZQogJHNvcnRNb2RlID0gOnRpbWUKQEAgLTU3
Miw5ICs1NzYsOSBAQCBkZWYgc3VtbWFyeShtb2RlKQogICAgIGlmIG1vZGUgPT0gOmZ1bGwKICAg
ICAgICAgcHJpbnQoIiAiICsgKCIgIiAqIGluc3RydWN0aW9uQ291bnRDb2xzKSkKICAgICBlbmQK
LSAgICBwcmludCgiICIgKyBjZW50ZXIoIkJhc2UvREZHIiwgY291bnRDb2xzKSkKKyAgICBwcmlu
dCgiICIgKyBjZW50ZXIoIkJhc2UvREZHL0ZUTC9GVExPU1IiLCBjb3VudENvbHMpKQogICAgIGlm
IG1vZGUgPT0gOmZ1bGwKLSAgICAgICAgcHJpbnQoIiAiICsgY2VudGVyKCJCYXNlL0RGRyIsIG1h
Y2hpbmVDb3VudENvbHMpKQorICAgICAgICBwcmludCgiICIgKyBjZW50ZXIoIkJhc2UvREZHL0ZU
TC9GVExPU1IiLCBtYWNoaW5lQ291bnRDb2xzKSkKICAgICAgICAgcHJpbnQoIiAiICsgKCIgIiAq
IGNvbXBpbGF0aW9uc0NvbHMpKQogICAgICAgICBwcmludCgiICIgKyBjZW50ZXIoIlNyYy9Ub3Rh
bCIsIGlubGluZXNDb2xzKSkKICAgICAgICAgcHJpbnQoIiAiICsgKCIgIiAqIGV4aXRDb3VudENv
bHMpKQpAQCAtNjc0LDcgKzY3OCw3IEBAIGRlZiBleGVjdXRlQ29tbWFuZCgqY29tbWFuZEFycmF5
KQogICAgICAgICAgICAgaWYgJHNob3dDb3VudHMKICAgICAgICAgICAgICAgICBwdXRzKGNlbnRl
cigiU291cmNlIENvdW50cyIsIGNvdW50Q29scykgKyAiICIgKyBjZW50ZXIoIk1hY2hpbmUgQ291
bnRzIiwgbWFjaGluZUNvbHMpICsKICAgICAgICAgICAgICAgICAgICAgICgiICIgKiBwYWQpICsg
Y2VudGVyKCJCeXRlY29kZSBmb3IgI3tieXRlY29kZXN9Iiwgc2NyZWVuV2lkdGggLSBwYWQgLSBj
b3VudENvbHMgLSAxIC0gbWFjaGluZUNvbHMpKQotICAgICAgICAgICAgICAgIHB1dHMoY2VudGVy
KCJCYXNlL0RGRyIsIGNvdW50Q29scykgKyAiICIgKyBjZW50ZXIoIkJhc2UvREZHIiwgY291bnRD
b2xzKSkKKyAgICAgICAgICAgICAgICBwdXRzKGNlbnRlcigiQmFzZS9ERkcvRlRML0ZUTE9TUiIs
IGNvdW50Q29scykgKyAiICIgKyBjZW50ZXIoIkJhc2UvREZHL0ZUTC9GVExPU1IiLCBjb3VudENv
bHMpKQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHB1dHMoIkJ5dGVjb2RlIGZv
ciAje2J5dGVjb2Rlc306IikKICAgICAgICAgICAgIGVuZApAQCAtODk0LDcgKzg5OCw3IEBAIGRl
ZiBleGVjdXRlQ29tbWFuZCgqY29tbWFuZEFycmF5KQogICAgICAgICAgICAgcHV0cygiQ29tcGls
YXRpb24gI3tjb21waWxhdGlvbn06IikKICAgICAgICAgICAgIGlmICRzaG93Q291bnRzCiAgICAg
ICAgICAgICAgICAgcHV0cyhjZW50ZXIoIkFjdHVhbCBDb3VudHMiLCBhY3R1YWxDb3VudENvbHMp
ICsgIiAiICsgY2VudGVyKCJTb3VyY2UgQ291bnRzIiwgc291cmNlQ291bnRDb2xzKSArICIgIiAr
IGNlbnRlcigiRGlzYXNzZW1ibHkgaW4gI3tjb21waWxhdGlvbi5lbmdpbmV9Iiwgc2NyZWVuV2lk
dGggLSAxIC0gc291cmNlQ291bnRDb2xzIC0gMSAtIGFjdHVhbENvdW50Q29scykpCi0gICAgICAg
ICAgICAgICAgcHV0cygoIiAiICogYWN0dWFsQ291bnRDb2xzKSArICIgIiArIGNlbnRlcigiQmFz
ZS9ERkciLCBzb3VyY2VDb3VudENvbHMpKQorICAgICAgICAgICAgICAgIHB1dHMoKCIgIiAqIGFj
dHVhbENvdW50Q29scykgKyAiICIgKyBjZW50ZXIoIkJhc2UvREZHL0ZUTC9GVExPU1IiLCBzb3Vy
Y2VDb3VudENvbHMpKQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHB1dHMoIkRp
c2Fzc2VtYmx5IGluICN7Y29tcGlsYXRpb24uZW5naW5lfSIpCiAgICAgICAgICAgICBlbmQKQEAg
LTkwNSwxMSArOTA5LDE1IEBAIGRlZiBleGVjdXRlQ29tbWFuZCgqY29tbWFuZEFycmF5KQogICAg
ICAgICAgICAgICAgIHwgZGVzY3JpcHRpb24gfAogICAgICAgICAgICAgICAgICMgRklYTUU6IFdl
IHNob3VsZCBoYXZlIGEgYmV0dGVyIHdheSBvZiBkZXRlY3RpbmcgdGhpbmdzIGxpa2UgQ291bnRF
eGVjdXRpb24gbm9kZXMKICAgICAgICAgICAgICAgICAjIGFuZCBzbG93IHBhdGggZW50cmllcyBp
biB0aGUgYmFzZWxpbmUgSklULgotICAgICAgICAgICAgICAgIGlmIGRlc2NyaXB0aW9uLmRlc2Ny
aXB0aW9uID1+IC9Db3VudEV4ZWN1dGlvblwoLyBhbmQgY29tcGlsYXRpb24uZW5naW5lID09ICJE
RkciCisgICAgICAgICAgICAgICAgaWYgZGVzY3JpcHRpb24uZGVzY3JpcHRpb24gPX4gL0NvdW50
RXhlY3V0aW9uXCgvIGFuZCBpc09wdGltaXppbmcoY29tcGlsYXRpb24uZW5naW5lKQogICAgICAg
ICAgICAgICAgICAgICBzaG91bGRTaG93ID0gZmFsc2UKICAgICAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgICAgIHNob3VsZFNob3cgPSB0cnVlCiAgICAgICAgICAgICAgICAgZW5k
CisgICAgICAgICAgICAgICAgaWYgbm90IGRlc2NyaXB0aW9uLm9yaWdpbi5lbXB0eT8gYW5kIG5v
dCBkZXNjcmlwdGlvbi5vcmlnaW5bLTFdCisgICAgICAgICAgICAgICAgICAgIHAgZGVzY3JpcHRp
b24ub3JpZ2luCisgICAgICAgICAgICAgICAgICAgIHAgZGVzY3JpcHRpb24uZGVzY3JpcHRpb24K
KyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICBpZiBkZXNjcmlwdGlvbi5vcmln
aW4uZW1wdHk/IG9yIG5vdCBkZXNjcmlwdGlvbi5vcmlnaW5bLTFdLnNob3VsZEhhdmVDb3VudHM/
IG9yIChjb21waWxhdGlvbi5lbmdpbmUgPT0gIkJhc2VsaW5lIiBhbmQgZGVzY3JpcHRpb24uZGVz
Y3JpcHRpb24gPX4gL15ccypcKFNcKS8pCiAgICAgICAgICAgICAgICAgICAgIGFjdHVhbENvdW50
c1N0cmluZyA9ICIiCiAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUNvdW50c1N0cmluZyA9ICIi
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzIGIvVG9vbHMv
U2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwppbmRleCAxMTQ3Yzc3ZDA3NWQ2NDU4NmE5NTJl
OTljN2VkZGI1MGM1YzlmYjBhLi5hMmM0NWVhODNmMDJjMzZkOTdlMGU2ZDFkYzQ0YTk1MTI4Y2Ri
YjAxIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCisrKyBi
L1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKQEAgLTE4MCw2ICsxODAsOCBAQCAk
bnVtRmFpbHVyZXMgPSAwCiAKIEVBR0VSX09QVElPTlMgPSBbIi0tdGhyZXNob2xkRm9ySklUQWZ0
ZXJXYXJtVXA9MTAiLCAiLS10aHJlc2hvbGRGb3JKSVRTb29uPTEwIiwgIi0tdGhyZXNob2xkRm9y
T3B0aW1pemVBZnRlcldhcm1VcD0yMCIsICItLXRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJMb25n
V2FybVVwPTIwIiwgIi0tdGhyZXNob2xkRm9yT3B0aW1pemVTb29uPTIwIiwgIi0tdGhyZXNob2xk
Rm9yRlRMT3B0aW1pemVBZnRlcldhcm1VcD0yMCIsICItLXRocmVzaG9sZEZvckZUTE9wdGltaXpl
U29vbj0yMCJdCiAKK0ZUTF9PUFRJT05TID0gWyItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVlIiwg
Ii0tZW5hYmxlRXhwZXJpbWVudGFsRlRMQ292ZXJhZ2U9dHJ1ZSJdCisKICRydW5saXN0ID0gW10K
IAogZGVmIGZyYW1ld29ya0Zyb21KU0NQYXRoKGpzY1BhdGgpCkBAIC01MzIsMTkgKzUzNCwxOSBA
QCBkZWYgcnVuTm9DSklUVmFsaWRhdGVQaGFzZXMKIGVuZAogCiBkZWYgcnVuRGVmYXVsdEZUTAot
ICAgIHJ1bigiZGVmYXVsdC1mdGwiLCAiLS11c2VFeHBlcmltZW50YWxGVEw9dHJ1ZSIpCisgICAg
cnVuKCJkZWZhdWx0LWZ0bCIsICpGVExfT1BUSU9OUykKIGVuZAogCiBkZWYgcnVuRlRMTm9DSklU
Ci0gICAgcnVuKCJmdGwtbm8tY2ppdCIsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAi
LS11c2VFeHBlcmltZW50YWxGVEw9dHJ1ZSIpCisgICAgcnVuKCJmdGwtbm8tY2ppdCIsICItLWVu
YWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAqRlRMX09QVElPTlMpCiBlbmQKIAogZGVmIHJ1bkZU
TE5vQ0pJVFZhbGlkYXRlCi0gICAgcnVuKCJmdGwtbm8tY2ppdC12YWxpZGF0ZSIsICItLWVuYWJs
ZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS11c2VFeHBlcmltZW50YWxGVEw9dHJ1ZSIsICItLXZh
bGlkYXRlR3JhcGg9dHJ1ZSIpCisgICAgcnVuKCJmdGwtbm8tY2ppdC12YWxpZGF0ZSIsICItLWVu
YWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUdyYXBoPXRydWUiLCAqRlRMX09Q
VElPTlMpCiBlbmQKIAogZGVmIHJ1bkZUTE5vQ0pJVE9TUlZhbGlkYXRpb24KLSAgICBydW4oImZ0
bC1uby1jaml0LW9zci12YWxpZGF0aW9uIiwgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIs
ICItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVlIiwgIi0tdmFsaWRhdGVGVExPU1JFeGl0TGl2ZW5l
c3M9dHJ1ZSIpCisgICAgcnVuKCJmdGwtbm8tY2ppdC1vc3ItdmFsaWRhdGlvbiIsICItLWVuYWJs
ZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUZUTE9TUkV4aXRMaXZlbmVzcz10cnVl
IiwgKkZUTF9PUFRJT05TKQogZW5kCiAKIGRlZiBydW5ERkdFYWdlcgpAQCAtNTU2LDE1ICs1NTgs
MTUgQEAgZGVmIHJ1bkRGR0VhZ2VyTm9DSklUVmFsaWRhdGUKIGVuZAogCiBkZWYgcnVuRlRMRWFn
ZXIKLSAgICBydW4oImZ0bC1lYWdlciIsICItLXVzZUV4cGVyaW1lbnRhbEZUTD10cnVlIiwgKkVB
R0VSX09QVElPTlMpCisgICAgcnVuKCJmdGwtZWFnZXIiLCAqKEZUTF9PUFRJT05TICsgRUFHRVJf
T1BUSU9OUykpCiBlbmQKIAogZGVmIHJ1bkZUTEVhZ2VyTm9DSklUVmFsaWRhdGUKLSAgICBydW4o
ImZ0bC1lYWdlci1uby1jaml0IiwgIi0tdXNlRXhwZXJpbWVudGFsRlRMPXRydWUiLCAiLS1lbmFi
bGVDb25jdXJyZW50SklUPWZhbHNlIiwgIi0tdmFsaWRhdGVHcmFwaD10cnVlIiwgKkVBR0VSX09Q
VElPTlMpCisgICAgcnVuKCJmdGwtZWFnZXItbm8tY2ppdCIsICItLWVuYWJsZUNvbmN1cnJlbnRK
SVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUdyYXBoPXRydWUiLCAqKEZUTF9PUFRJT05TICsgRUFHRVJf
T1BUSU9OUykpCiBlbmQKIAogZGVmIHJ1bkZUTEVhZ2VyTm9DSklUT1NSVmFsaWRhdGlvbgotICAg
IHJ1bigiZnRsLWVhZ2VyLW5vLWNqaXQtb3NyLXZhbGlkYXRpb24iLCAiLS11c2VFeHBlcmltZW50
YWxGVEw9dHJ1ZSIsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUZU
TE9TUkV4aXRMaXZlbmVzcz10cnVlIiwgKkVBR0VSX09QVElPTlMpCisgICAgcnVuKCJmdGwtZWFn
ZXItbm8tY2ppdC1vc3ItdmFsaWRhdGlvbiIsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2Ui
LCAiLS12YWxpZGF0ZUZUTE9TUkV4aXRMaXZlbmVzcz10cnVlIiwgKihGVExfT1BUSU9OUyArIEVB
R0VSX09QVElPTlMpKQogZW5kCiAKIGRlZiBydW5BbHdheXNUcmlnZ2VyQ29weVBoYXNlCkBAIC02
NDYsMTMgKzY0OCwzNCBAQCBkZWYgcnVuTGF5b3V0VGVzdERGR0VhZ2VyTm9DSklUCiAgICAgcnVu
TGF5b3V0VGVzdCgiZGZnLWVhZ2VyLW5vLWNqaXQiLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZh
bHNlIiwgKkVBR0VSX09QVElPTlMpCiBlbmQKIAotZGVmIGRlZmF1bHRSdW5MYXlvdXRUZXN0Citk
ZWYgcnVuTGF5b3V0VGVzdERlZmF1bHRGVEwKKyAgICBydW5MYXlvdXRUZXN0KCJmdGwiLCAiLS10
ZXN0VGhlRlRMPXRydWUiLCAqRlRMX09QVElPTlMpCitlbmQKKworZGVmIHJ1bkxheW91dFRlc3RG
VExOb0NKSVQKKyAgICBydW5MYXlvdXRUZXN0KCJmdGwtbm8tY2ppdCIsICItLXRlc3RUaGVGVEw9
dHJ1ZSIsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAqRlRMX09QVElPTlMpCitlbmQK
KworZGVmIHJ1bkxheW91dFRlc3RGVExFYWdlck5vQ0pJVAorICAgIHJ1bkxheW91dFRlc3QoImZ0
bC1lYWdlci1uby1jaml0IiwgIi0tdGVzdFRoZUZUTD10cnVlIiwgIi0tZW5hYmxlQ29uY3VycmVu
dEpJVD1mYWxzZSIsICooRlRMX09QVElPTlMgKyBFQUdFUl9PUFRJT05TKSkKK2VuZAorCitkZWYg
bm9GVExSdW5MYXlvdXRUZXN0CiAgICAgcnVuTGF5b3V0VGVzdERlZmF1bHQKICAgICBydW5MYXlv
dXRUZXN0Tm9MTEludAogICAgIHJ1bkxheW91dFRlc3ROb0NKSVQKICAgICBydW5MYXlvdXRUZXN0
REZHRWFnZXJOb0NKSVQKIGVuZAogCitkZWYgZGVmYXVsdFJ1bkxheW91dFRlc3QKKyAgICBub0ZU
TFJ1bkxheW91dFRlc3QKKyAgICBpZiAkZW5hYmxlRlRMCisgICAgICAgIHJ1bkxheW91dFRlc3RE
ZWZhdWx0RlRMCisgICAgICAgIHJ1bkxheW91dFRlc3RGVExOb0NKSVQKKyAgICAgICAgcnVuTGF5
b3V0VGVzdEZUTEVhZ2VyTm9DSklUCisgICAgZW5kCitlbmQKKwogZGVmIHByZXBhcmVFeHRyYVJl
bGF0aXZlRmlsZXMoZXh0cmFGaWxlcywgZGVzdGluYXRpb24pCiAgICAgRGlyLmNoZGlyKCRvdXRw
dXREaXIpIHsKICAgICAgICAgZXh0cmFGaWxlcy5lYWNoIHsKQEAgLTcwNiw2ICs3MjksMTAgQEAg
ZGVmIHJ1bk1vemlsbGFUZXN0RGVmYXVsdChtb2RlLCAqZXh0cmFGaWxlcykKICAgICBydW5Nb3pp
bGxhVGVzdChuaWwsIG1vZGUsIGV4dHJhRmlsZXMpCiBlbmQKIAorZGVmIHJ1bk1vemlsbGFUZXN0
RGVmYXVsdEZUTChtb2RlLCAqZXh0cmFGaWxlcykKKyAgICBydW5Nb3ppbGxhVGVzdCgiZnRsIiwg
bW9kZSwgZXh0cmFGaWxlcywgKkZUTF9PUFRJT05TKQorZW5kCisKIGRlZiBydW5Nb3ppbGxhVGVz
dExMSW50KG1vZGUsICpleHRyYUZpbGVzKQogICAgIHJ1bk1vemlsbGFUZXN0KCJsbGludCIsIG1v
ZGUsIGV4dHJhRmlsZXMsICItLXVzZUpJVD1mYWxzZSIpCiBlbmQKQEAgLTcxOCwxMSArNzQ1LDE5
IEBAIGRlZiBydW5Nb3ppbGxhVGVzdERGR0VhZ2VyTm9DSklUVmFsaWRhdGVQaGFzZXMobW9kZSwg
KmV4dHJhRmlsZXMpCiAgICAgcnVuTW96aWxsYVRlc3QoImRmZy1lYWdlci1uby1jaml0LXZhbGlk
YXRlLXBoYXNlcyIsIG1vZGUsIGV4dHJhRmlsZXMsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFs
c2UiLCAiLS12YWxpZGF0ZUJ5dGVjb2RlPXRydWUiLCAiLS12YWxpZGF0ZUdyYXBoQXRFYWNoUGhh
c2U9dHJ1ZSIsICpFQUdFUl9PUFRJT05TKQogZW5kCiAKK2RlZiBydW5Nb3ppbGxhVGVzdEZUTEVh
Z2VyTm9DSklUVmFsaWRhdGVQaGFzZXMobW9kZSwgKmV4dHJhRmlsZXMpCisgICAgcnVuTW96aWxs
YVRlc3QoImZ0bC1lYWdlci1uby1jaml0LXZhbGlkYXRlLXBoYXNlcyIsIG1vZGUsIGV4dHJhRmls
ZXMsICItLWVuYWJsZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiLCAiLS12YWxpZGF0ZUJ5dGVjb2RlPXRy
dWUiLCAiLS12YWxpZGF0ZUdyYXBoQXRFYWNoUGhhc2U9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBF
QUdFUl9PUFRJT05TKSkKK2VuZAorCiBkZWYgZGVmYXVsdFJ1bk1vemlsbGFUZXN0KG1vZGUsICpl
eHRyYUZpbGVzKQogICAgIHJ1bk1vemlsbGFUZXN0RGVmYXVsdChtb2RlLCAqZXh0cmFGaWxlcykK
ICAgICBydW5Nb3ppbGxhVGVzdExMSW50KG1vZGUsICpleHRyYUZpbGVzKQogICAgIHJ1bk1vemls
bGFUZXN0QmFzZWxpbmVKSVQobW9kZSwgKmV4dHJhRmlsZXMpCiAgICAgcnVuTW96aWxsYVRlc3RE
RkdFYWdlck5vQ0pJVFZhbGlkYXRlUGhhc2VzKG1vZGUsICpleHRyYUZpbGVzKQorICAgIGlmICRl
bmFibGVGVEwKKyAgICAgICAgcnVuTW96aWxsYVRlc3REZWZhdWx0RlRMKG1vZGUsICpleHRyYUZp
bGVzKQorICAgICAgICBydW5Nb3ppbGxhVGVzdEZUTEVhZ2VyTm9DSklUVmFsaWRhdGVQaGFzZXMo
bW9kZSwgKmV4dHJhRmlsZXMpCisgICAgZW5kCiBlbmQKIAogZGVmIHNraXAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MjYw
MmI5ODgwYTQ0ZjM5OGY5YmVhZTk1ZjI3ZDIyODFhMGY2NGJjLi42YzU4ZWFkY2NlOTQ4MWY4NTFk
OGE2ZGVjZmM1Zjg0NmQxMjVjNjk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTQtMDEtMjgg
IE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBNZXJn
ZSB0aGUganNDU3RhY2sgYnJhbmNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjc3NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGpzL2xhcmdlLWV4cHJlc3Npb25zLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdGVwYW5vdl9jb250YWluZXIuanM6CisgICAg
ICAgICoganMvcmVncmVzcy9zdGVwYW5vdl9jb250YWluZXItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGpzL3JlZ3Jlc3Mvc3RlcGFub3ZfY29udGFpbmVyLmh0bWw6CisgICAgICAgICoganMvc2Ny
aXB0LXRlc3RzL2RmZy1hZGQtbm90LW51bWJlci5qczoKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVz
dHMvbGFyZ2UtZXhwcmVzc2lvbnMuanM6CisKIDIwMTQtMDEtMjcgIEJyaWFuIEJ1cmcgIDxiYnVy
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogY2xlYW4gdXAgaW5pdGlhbGl6
YXRpb24gb2YgbWFuYWdlcnMgYW5kIG9ic2VydmVycyBpbiBJbnNwZWN0b3JUZXN0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9sYXJnZS1leHByZXNzaW9ucy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9qcy9sYXJnZS1leHByZXNzaW9ucy1leHBlY3RlZC50eHQKaW5kZXggODc5ZTI2NDll
ZjRjOTlkYjU2ZjJlZmZmMThjMzEyZTI4NzJhYmM1NC4uYWEwNjE0M2I3NDJmOTI2MWM4MDRmMGY2
MzM5MjFmNWY5ZTc1OGVjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvbGFyZ2UtZXhwcmVz
c2lvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2xhcmdlLWV4cHJlc3Npb25z
LWV4cGVjdGVkLnR4dApAQCAtNSw3ICs1LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAog
UEFTUyBldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwKSkgaXMgcmVw
ZWF0ZWRTdHJpbmcoImEiLCAxMDApCiBQQVNTIGV2YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0
ZXJBIiwgIisiLCAxMDAwKSkgaXMgcmVwZWF0ZWRTdHJpbmcoImEiLCAxMDAwKQotUEFTUyBldmFs
KHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwMDApKSBpcyByZXBlYXRlZFN0
cmluZygiYSIsIDEwMDAwKQorUEFTUyBldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIs
ICIrIiwgMTAwMDApKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE91dCBvZiBtZW1vcnkuCiBQQVNT
IGV2YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDAwMDApKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IE91dCBvZiBtZW1vcnkuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L3N0ZXBhbm92X2NvbnRhaW5lci5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL3N0ZXBhbm92X2NvbnRhaW5lci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MzI4MzcxMDhkNzgwZGYyYWNiMjEwY2U3N2E0ODA2MWNjMGJiYzNhYi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9zdGVwYW5vdl9jb250YWluZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw2NDA0
ICswLDAgQEAKLS8vQCBzbG93IQotLy9AIHJ1bkRlZmF1bHQKLS8vQCBydW5EZWZhdWx0RlRMIGlm
ICRlbmFibGVGVEwKLQotLy8gTm90ZTogRm9yIG1heGltdW0tc3BlZWQgY29kZSwgc2VlICJPcHRp
bWl6aW5nIENvZGUiIG9uIHRoZSBFbXNjcmlwdGVuIHdpa2ksIGh0dHBzOi8vZ2l0aHViLmNvbS9r
cmlwa2VuL2Vtc2NyaXB0ZW4vd2lraS9PcHRpbWl6aW5nLUNvZGUKLS8vIE5vdGU6IFNvbWUgRW1z
Y3JpcHRlbiBzZXR0aW5ncyBtYXkgbGltaXQgdGhlIHNwZWVkIG9mIHRoZSBnZW5lcmF0ZWQgY29k
ZS4KLS8vIFRoZSBNb2R1bGUgb2JqZWN0OiBPdXIgaW50ZXJmYWNlIHRvIHRoZSBvdXRzaWRlIHdv
cmxkLiBXZSBpbXBvcnQKLS8vIGFuZCBleHBvcnQgdmFsdWVzIG9uIGl0LCBhbmQgZG8gdGhlIHdv
cmsgdG8gZ2V0IHRoYXQgdGhyb3VnaAotLy8gY2xvc3VyZSBjb21waWxlciBpZiBuZWNlc3Nhcnku
IFRoZXJlIGFyZSB2YXJpb3VzIHdheXMgTW9kdWxlIGNhbiBiZSB1c2VkOgotLy8gMS4gTm90IGRl
ZmluZWQuIFdlIGNyZWF0ZSBpdCBoZXJlCi0vLyAyLiBBIGZ1bmN0aW9uIHBhcmFtZXRlciwgZnVu
Y3Rpb24oTW9kdWxlKSB7IC4uZ2VuZXJhdGVkIGNvZGUuLiB9Ci0vLyAzLiBwcmUtcnVuIGFwcGVu
ZGVkIGl0LCB2YXIgTW9kdWxlID0ge307IC4uZ2VuZXJhdGVkIGNvZGUuLgotLy8gNC4gRXh0ZXJu
YWwgc2NyaXB0IHRhZyBkZWZpbmVzIHZhciBNb2R1bGUuCi0vLyBXZSBuZWVkIHRvIGRvIGFuIGV2
YWwgaW4gb3JkZXIgdG8gaGFuZGxlIHRoZSBjbG9zdXJlIGNvbXBpbGVyCi0vLyBjYXNlLCB3aGVy
ZSB0aGlzIGNvZGUgaGVyZSBpcyBtaW5pZmllZCBidXQgTW9kdWxlIHdhcyBkZWZpbmVkCi0vLyBl
bHNld2hlcmUgKGUuZy4gY2FzZSA0IGFib3ZlKS4gV2UgYWxzbyBuZWVkIHRvIGNoZWNrIGlmIE1v
ZHVsZQotLy8gYWxyZWFkeSBleGlzdHMgKGUuZy4gY2FzZSAzIGFib3ZlKS4KLS8vIE5vdGUgdGhh
dCBpZiB5b3Ugd2FudCB0byBydW4gY2xvc3VyZSwgYW5kIGFsc28gdG8gdXNlIE1vZHVsZQotLy8g
YWZ0ZXIgdGhlIGdlbmVyYXRlZCBjb2RlLCB5b3Ugd2lsbCBuZWVkIHRvIGRlZmluZSAgIHZhciBN
b2R1bGUgPSB7fTsKLS8vIGJlZm9yZSB0aGUgY29kZS4gVGhlbiB0aGF0IG9iamVjdCB3aWxsIGJl
IHVzZWQgaW4gdGhlIGNvZGUsIGFuZCB5b3UKLS8vIGNhbiBjb250aW51ZSB0byB1c2UgTW9kdWxl
IGFmdGVyd2FyZHMgYXMgd2VsbC4KLXZhciBNb2R1bGU7Ci1pZiAoIU1vZHVsZSkgTW9kdWxlID0g
ZXZhbCgnKGZ1bmN0aW9uKCkgeyB0cnkgeyByZXR1cm4gTW9kdWxlIHx8IHt9IH0gY2F0Y2goZSkg
eyByZXR1cm4ge30gfSB9KSgpJyk7Ci0vLyBTb21ldGltZXMgYW4gZXhpc3RpbmcgTW9kdWxlIG9i
amVjdCBleGlzdHMgd2l0aCBwcm9wZXJ0aWVzCi0vLyBtZWFudCB0byBvdmVyd3JpdGUgdGhlIGRl
ZmF1bHQgbW9kdWxlIGZ1bmN0aW9uYWxpdHkuIEhlcmUKLS8vIHdlIGNvbGxlY3QgdGhvc2UgcHJv
cGVydGllcyBhbmQgcmVhcHBseSBfYWZ0ZXJfIHdlIGNvbmZpZ3VyZQotLy8gdGhlIGN1cnJlbnQg
ZW52aXJvbm1lbnQncyBkZWZhdWx0cyB0byBhdm9pZCBoYXZpbmcgdG8gYmUgc28KLS8vIGRlZmVu
c2l2ZSBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCi12YXIgbW9kdWxlT3ZlcnJpZGVzID0ge307Ci1m
b3IgKHZhciBrZXkgaW4gTW9kdWxlKSB7Ci0gIGlmIChNb2R1bGUuaGFzT3duUHJvcGVydHkoa2V5
KSkgewotICAgIG1vZHVsZU92ZXJyaWRlc1trZXldID0gTW9kdWxlW2tleV07Ci0gIH0KLX0KLS8v
IFRoZSBlbnZpcm9ubWVudCBzZXR1cCBjb2RlIGJlbG93IGlzIGN1c3RvbWl6ZWQgdG8gdXNlIE1v
ZHVsZS4KLS8vICoqKiBFbnZpcm9ubWVudCBzZXR1cCBjb2RlICoqKgotdmFyIEVOVklST05NRU5U
X0lTX05PREUgPSB0eXBlb2YgcHJvY2VzcyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIHJlcXVpcmUg
PT09ICdmdW5jdGlvbic7Ci12YXIgRU5WSVJPTk1FTlRfSVNfV0VCID0gdHlwZW9mIHdpbmRvdyA9
PT0gJ29iamVjdCc7Ci12YXIgRU5WSVJPTk1FTlRfSVNfV09SS0VSID0gdHlwZW9mIGltcG9ydFNj
cmlwdHMgPT09ICdmdW5jdGlvbic7Ci12YXIgRU5WSVJPTk1FTlRfSVNfU0hFTEwgPSAhRU5WSVJP
Tk1FTlRfSVNfV0VCICYmICFFTlZJUk9OTUVOVF9JU19OT0RFICYmICFFTlZJUk9OTUVOVF9JU19X
T1JLRVI7Ci1pZiAoRU5WSVJPTk1FTlRfSVNfTk9ERSkgewotICAvLyBFeHBvc2UgZnVuY3Rpb25h
bGl0eSBpbiB0aGUgc2FtZSBzaW1wbGUgd2F5IHRoYXQgdGhlIHNoZWxscyB3b3JrCi0gIC8vIE5v
dGUgdGhhdCB3ZSBwb2xsdXRlIHRoZSBnbG9iYWwgbmFtZXNwYWNlIGhlcmUsIG90aGVyd2lzZSB3
ZSBicmVhayBpbiBub2RlCi0gIE1vZHVsZVsncHJpbnQnXSA9IGZ1bmN0aW9uKHgpIHsKLSAgICBw
cm9jZXNzWydzdGRvdXQnXS53cml0ZSh4ICsgJ1xuJyk7Ci0gIH07Ci0gIE1vZHVsZVsncHJpbnRF
cnInXSA9IGZ1bmN0aW9uKHgpIHsKLSAgICBwcm9jZXNzWydzdGRlcnInXS53cml0ZSh4ICsgJ1xu
Jyk7Ci0gIH07Ci0gIHZhciBub2RlRlMgPSByZXF1aXJlKCdmcycpOwotICB2YXIgbm9kZVBhdGgg
PSByZXF1aXJlKCdwYXRoJyk7Ci0gIE1vZHVsZVsncmVhZCddID0gZnVuY3Rpb24oZmlsZW5hbWUs
IGJpbmFyeSkgewotICAgIGZpbGVuYW1lID0gbm9kZVBhdGhbJ25vcm1hbGl6ZSddKGZpbGVuYW1l
KTsKLSAgICB2YXIgcmV0ID0gbm9kZUZTWydyZWFkRmlsZVN5bmMnXShmaWxlbmFtZSk7Ci0gICAg
Ly8gVGhlIHBhdGggaXMgYWJzb2x1dGUgaWYgdGhlIG5vcm1hbGl6ZWQgdmVyc2lvbiBpcyB0aGUg
c2FtZSBhcyB0aGUgcmVzb2x2ZWQuCi0gICAgaWYgKCFyZXQgJiYgZmlsZW5hbWUgIT0gbm9kZVBh
dGhbJ3Jlc29sdmUnXShmaWxlbmFtZSkpIHsKLSAgICAgIGZpbGVuYW1lID0gcGF0aC5qb2luKF9f
ZGlybmFtZSwgJy4uJywgJ3NyYycsIGZpbGVuYW1lKTsKLSAgICAgIHJldCA9IG5vZGVGU1sncmVh
ZEZpbGVTeW5jJ10oZmlsZW5hbWUpOwotICAgIH0KLSAgICBpZiAocmV0ICYmICFiaW5hcnkpIHJl
dCA9IHJldC50b1N0cmluZygpOwotICAgIHJldHVybiByZXQ7Ci0gIH07Ci0gIE1vZHVsZVsncmVh
ZEJpbmFyeSddID0gZnVuY3Rpb24oZmlsZW5hbWUpIHsgcmV0dXJuIE1vZHVsZVsncmVhZCddKGZp
bGVuYW1lLCB0cnVlKSB9OwotICBNb2R1bGVbJ2xvYWQnXSA9IGZ1bmN0aW9uKGYpIHsKLSAgICBn
bG9iYWxFdmFsKHJlYWQoZikpOwotICB9OwotICBNb2R1bGVbJ2FyZ3VtZW50cyddID0gcHJvY2Vz
c1snYXJndiddLnNsaWNlKDIpOwotICBtb2R1bGUuZXhwb3J0cyA9IE1vZHVsZTsKLX0KLWVsc2Ug
aWYgKEVOVklST05NRU5UX0lTX1NIRUxMKSB7Ci0gIE1vZHVsZVsncHJpbnQnXSA9IHByaW50Owot
ICBpZiAodHlwZW9mIHByaW50RXJyICE9ICd1bmRlZmluZWQnKSBNb2R1bGVbJ3ByaW50RXJyJ10g
PSBwcmludEVycjsgLy8gbm90IHByZXNlbnQgaW4gdjggb3Igb2xkZXIgc20KLSAgaWYgKHR5cGVv
ZiByZWFkICE9ICd1bmRlZmluZWQnKSB7Ci0gICAgTW9kdWxlWydyZWFkJ10gPSByZWFkOwotICB9
IGVsc2UgewotICAgIE1vZHVsZVsncmVhZCddID0gZnVuY3Rpb24oKSB7IHRocm93ICdubyByZWFk
KCkgYXZhaWxhYmxlIChqc2M/KScgfTsKLSAgfQotICBNb2R1bGVbJ3JlYWRCaW5hcnknXSA9IGZ1
bmN0aW9uKGYpIHsKLSAgICByZXR1cm4gcmVhZChmLCAnYmluYXJ5Jyk7Ci0gIH07Ci0gIGlmICh0
eXBlb2Ygc2NyaXB0QXJncyAhPSAndW5kZWZpbmVkJykgewotICAgIE1vZHVsZVsnYXJndW1lbnRz
J10gPSBzY3JpcHRBcmdzOwotICB9IGVsc2UgaWYgKHR5cGVvZiBhcmd1bWVudHMgIT0gJ3VuZGVm
aW5lZCcpIHsKLSAgICBNb2R1bGVbJ2FyZ3VtZW50cyddID0gYXJndW1lbnRzOwotICB9Ci0gIHRo
aXNbJ01vZHVsZSddID0gTW9kdWxlOwotfQotZWxzZSBpZiAoRU5WSVJPTk1FTlRfSVNfV0VCIHx8
IEVOVklST05NRU5UX0lTX1dPUktFUikgewotICBNb2R1bGVbJ3JlYWQnXSA9IGZ1bmN0aW9uKHVy
bCkgewotICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICB4aHIub3Blbign
R0VUJywgdXJsLCBmYWxzZSk7Ci0gICAgeGhyLnNlbmQobnVsbCk7Ci0gICAgcmV0dXJuIHhoci5y
ZXNwb25zZVRleHQ7Ci0gIH07Ci0gIGlmICh0eXBlb2YgYXJndW1lbnRzICE9ICd1bmRlZmluZWQn
KSB7Ci0gICAgTW9kdWxlWydhcmd1bWVudHMnXSA9IGFyZ3VtZW50czsKLSAgfQotICBpZiAoRU5W
SVJPTk1FTlRfSVNfV0VCKSB7Ci0gICAgTW9kdWxlWydwcmludCddID0gZnVuY3Rpb24oeCkgewot
ICAgICAgY29uc29sZS5sb2coeCk7Ci0gICAgfTsKLSAgICBNb2R1bGVbJ3ByaW50RXJyJ10gPSBm
dW5jdGlvbih4KSB7Ci0gICAgICBjb25zb2xlLmxvZyh4KTsKLSAgICB9OwotICAgIHRoaXNbJ01v
ZHVsZSddID0gTW9kdWxlOwotICB9IGVsc2UgaWYgKEVOVklST05NRU5UX0lTX1dPUktFUikgewot
ICAgIC8vIFdlIGNhbiBkbyB2ZXJ5IGxpdHRsZSBoZXJlLi4uCi0gICAgdmFyIFRSWV9VU0VfRFVN
UCA9IGZhbHNlOwotICAgIE1vZHVsZVsncHJpbnQnXSA9IChUUllfVVNFX0RVTVAgJiYgKHR5cGVv
ZihkdW1wKSAhPT0gInVuZGVmaW5lZCIpID8gKGZ1bmN0aW9uKHgpIHsKLSAgICAgIGR1bXAoeCk7
Ci0gICAgfSkgOiAoZnVuY3Rpb24oeCkgewotICAgICAgLy8gc2VsZi5wb3N0TWVzc2FnZSh4KTsg
Ly8gZW5hYmxlIHRoaXMgaWYgeW91IHdhbnQgc3Rkb3V0IHRvIGJlIHNlbnQgYXMgbWVzc2FnZXMK
LSAgICB9KSk7Ci0gICAgTW9kdWxlWydsb2FkJ10gPSBpbXBvcnRTY3JpcHRzOwotICB9Ci19Ci1l
bHNlIHsKLSAgLy8gVW5yZWFjaGFibGUgYmVjYXVzZSBTSEVMTCBpcyBkZXBlbmRhbnQgb24gdGhl
IG90aGVycwotICB0aHJvdyAnVW5rbm93biBydW50aW1lIGVudmlyb25tZW50LiBXaGVyZSBhcmUg
d2U/JzsKLX0KLWZ1bmN0aW9uIGdsb2JhbEV2YWwoeCkgewotICBldmFsLmNhbGwobnVsbCwgeCk7
Ci19Ci1pZiAoIU1vZHVsZVsnbG9hZCddID09ICd1bmRlZmluZWQnICYmIE1vZHVsZVsncmVhZCdd
KSB7Ci0gIE1vZHVsZVsnbG9hZCddID0gZnVuY3Rpb24oZikgewotICAgIGdsb2JhbEV2YWwoTW9k
dWxlWydyZWFkJ10oZikpOwotICB9OwotfQotaWYgKCFNb2R1bGVbJ3ByaW50J10pIHsKLSAgTW9k
dWxlWydwcmludCddID0gZnVuY3Rpb24oKXt9OwotfQotaWYgKCFNb2R1bGVbJ3ByaW50RXJyJ10p
IHsKLSAgTW9kdWxlWydwcmludEVyciddID0gTW9kdWxlWydwcmludCddOwotfQotaWYgKCFNb2R1
bGVbJ2FyZ3VtZW50cyddKSB7Ci0gIE1vZHVsZVsnYXJndW1lbnRzJ10gPSBbXTsKLX0KLS8vICoq
KiBFbnZpcm9ubWVudCBzZXR1cCBjb2RlICoqKgotLy8gQ2xvc3VyZSBoZWxwZXJzCi1Nb2R1bGUu
cHJpbnQgPSBNb2R1bGVbJ3ByaW50J107Ci1Nb2R1bGUucHJpbnRFcnIgPSBNb2R1bGVbJ3ByaW50
RXJyJ107Ci0vLyBDYWxsYmFja3MKLU1vZHVsZVsncHJlUnVuJ10gPSBbXTsKLU1vZHVsZVsncG9z
dFJ1biddID0gW107Ci0vLyBNZXJnZSBiYWNrIGluIHRoZSBvdmVycmlkZXMKLWZvciAodmFyIGtl
eSBpbiBtb2R1bGVPdmVycmlkZXMpIHsKLSAgaWYgKG1vZHVsZU92ZXJyaWRlcy5oYXNPd25Qcm9w
ZXJ0eShrZXkpKSB7Ci0gICAgTW9kdWxlW2tleV0gPSBtb2R1bGVPdmVycmlkZXNba2V5XTsKLSAg
fQotfQotLy8gPT09IEF1dG8tZ2VuZXJhdGVkIHByZWFtYmxlIGxpYnJhcnkgc3R1ZmYgPT09Ci0v
Lz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS8vIFJ1bnRpbWUgY29k
ZSBzaGFyZWQgd2l0aCBjb21waWxlcgotLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci12YXIgUnVudGltZSA9IHsKLSAgc3RhY2tTYXZlOiBmdW5jdGlvbiAoKSB7Ci0g
ICAgcmV0dXJuIFNUQUNLVE9QOwotICB9LAotICBzdGFja1Jlc3RvcmU6IGZ1bmN0aW9uIChzdGFj
a1RvcCkgewotICAgIFNUQUNLVE9QID0gc3RhY2tUb3A7Ci0gIH0sCi0gIGZvcmNlQWxpZ246IGZ1
bmN0aW9uICh0YXJnZXQsIHF1YW50dW0pIHsKLSAgICBxdWFudHVtID0gcXVhbnR1bSB8fCA0Owot
ICAgIGlmIChxdWFudHVtID09IDEpIHJldHVybiB0YXJnZXQ7Ci0gICAgaWYgKGlzTnVtYmVyKHRh
cmdldCkgJiYgaXNOdW1iZXIocXVhbnR1bSkpIHsKLSAgICAgIHJldHVybiBNYXRoLmNlaWwodGFy
Z2V0L3F1YW50dW0pKnF1YW50dW07Ci0gICAgfSBlbHNlIGlmIChpc051bWJlcihxdWFudHVtKSAm
JiBpc1Bvd2VyT2ZUd28ocXVhbnR1bSkpIHsKLSAgICAgIHZhciBsb2dnID0gbG9nMihxdWFudHVt
KTsKLSAgICAgIHJldHVybiAnKCgoKCcgK3RhcmdldCArICcpKycgKyAocXVhbnR1bS0xKSArICcp
Pj4nICsgbG9nZyArICcpPDwnICsgbG9nZyArICcpJzsKLSAgICB9Ci0gICAgcmV0dXJuICdNYXRo
LmNlaWwoKCcgKyB0YXJnZXQgKyAnKS8nICsgcXVhbnR1bSArICcpKicgKyBxdWFudHVtOwotICB9
LAotICBpc051bWJlclR5cGU6IGZ1bmN0aW9uICh0eXBlKSB7Ci0gICAgcmV0dXJuIHR5cGUgaW4g
UnVudGltZS5JTlRfVFlQRVMgfHwgdHlwZSBpbiBSdW50aW1lLkZMT0FUX1RZUEVTOwotICB9LAot
ICBpc1BvaW50ZXJUeXBlOiBmdW5jdGlvbiBpc1BvaW50ZXJUeXBlKHR5cGUpIHsKLSAgcmV0dXJu
IHR5cGVbdHlwZS5sZW5ndGgtMV0gPT0gJyonOwotfSwKLSAgaXNTdHJ1Y3RUeXBlOiBmdW5jdGlv
biBpc1N0cnVjdFR5cGUodHlwZSkgewotICBpZiAoaXNQb2ludGVyVHlwZSh0eXBlKSkgcmV0dXJu
IGZhbHNlOwotICBpZiAoaXNBcnJheVR5cGUodHlwZSkpIHJldHVybiB0cnVlOwotICBpZiAoLzw/
eyA/W159XSogP30+Py8udGVzdCh0eXBlKSkgcmV0dXJuIHRydWU7IC8vIHsgaTMyLCBpOCB9IGV0
Yy4gLSBhbm9ueW1vdXMgc3RydWN0IHR5cGVzCi0gIC8vIFNlZSBjb21tZW50IGluIGlzU3RydWN0
UG9pbnRlclR5cGUoKQotICByZXR1cm4gdHlwZVswXSA9PSAnJSc7Ci19LAotICBJTlRfVFlQRVM6
IHsiaTEiOjAsImk4IjowLCJpMTYiOjAsImkzMiI6MCwiaTY0IjowfSwKLSAgRkxPQVRfVFlQRVM6
IHsiZmxvYXQiOjAsImRvdWJsZSI6MH0sCi0gIG9yNjQ6IGZ1bmN0aW9uICh4LCB5KSB7Ci0gICAg
dmFyIGwgPSAoeCB8IDApIHwgKHkgfCAwKTsKLSAgICB2YXIgaCA9IChNYXRoLnJvdW5kKHggLyA0
Mjk0OTY3Mjk2KSB8IE1hdGgucm91bmQoeSAvIDQyOTQ5NjcyOTYpKSAqIDQyOTQ5NjcyOTY7Ci0g
ICAgcmV0dXJuIGwgKyBoOwotICB9LAotICBhbmQ2NDogZnVuY3Rpb24gKHgsIHkpIHsKLSAgICB2
YXIgbCA9ICh4IHwgMCkgJiAoeSB8IDApOwotICAgIHZhciBoID0gKE1hdGgucm91bmQoeCAvIDQy
OTQ5NjcyOTYpICYgTWF0aC5yb3VuZCh5IC8gNDI5NDk2NzI5NikpICogNDI5NDk2NzI5NjsKLSAg
ICByZXR1cm4gbCArIGg7Ci0gIH0sCi0gIHhvcjY0OiBmdW5jdGlvbiAoeCwgeSkgewotICAgIHZh
ciBsID0gKHggfCAwKSBeICh5IHwgMCk7Ci0gICAgdmFyIGggPSAoTWF0aC5yb3VuZCh4IC8gNDI5
NDk2NzI5NikgXiBNYXRoLnJvdW5kKHkgLyA0Mjk0OTY3Mjk2KSkgKiA0Mjk0OTY3Mjk2OwotICAg
IHJldHVybiBsICsgaDsKLSAgfSwKLSAgZ2V0TmF0aXZlVHlwZVNpemU6IGZ1bmN0aW9uICh0eXBl
LCBxdWFudHVtU2l6ZSkgewotICAgIGlmIChSdW50aW1lLlFVQU5UVU1fU0laRSA9PSAxKSByZXR1
cm4gMTsKLSAgICB2YXIgc2l6ZSA9IHsKLSAgICAgICclaTEnOiAxLAotICAgICAgJyVpOCc6IDEs
Ci0gICAgICAnJWkxNic6IDIsCi0gICAgICAnJWkzMic6IDQsCi0gICAgICAnJWk2NCc6IDgsCi0g
ICAgICAiJWZsb2F0IjogNCwKLSAgICAgICIlZG91YmxlIjogOAotICAgIH1bJyUnK3R5cGVdOyAv
LyBhZGQgJyUnIHNpbmNlIGZsb2F0IGFuZCBkb3VibGUgY29uZnVzZSBDbG9zdXJlIGNvbXBpbGVy
IGFzIGtleXMsIGFuZCBhbHNvIHNwaWRlcm1vbmtleSBhcyBhIGNvbXBpbGVyIHdpbGwgcmVtb3Zl
ICdzIGZyb20gJ19pOCcgZXRjCi0gICAgaWYgKCFzaXplKSB7Ci0gICAgICBpZiAodHlwZS5jaGFy
QXQodHlwZS5sZW5ndGgtMSkgPT0gJyonKSB7Ci0gICAgICAgIHNpemUgPSBSdW50aW1lLlFVQU5U
VU1fU0laRTsgLy8gQSBwb2ludGVyCi0gICAgICB9IGVsc2UgaWYgKHR5cGVbMF0gPT0gJ2knKSB7
Ci0gICAgICAgIHZhciBiaXRzID0gcGFyc2VJbnQodHlwZS5zdWJzdHIoMSkpOwotICAgICAgICBh
c3NlcnQoYml0cyAlIDggPT0gMCk7Ci0gICAgICAgIHNpemUgPSBiaXRzLzg7Ci0gICAgICB9Ci0g
ICAgfQotICAgIHJldHVybiBzaXplOwotICB9LAotICBnZXROYXRpdmVGaWVsZFNpemU6IGZ1bmN0
aW9uICh0eXBlKSB7Ci0gICAgcmV0dXJuIE1hdGgubWF4KFJ1bnRpbWUuZ2V0TmF0aXZlVHlwZVNp
emUodHlwZSksIFJ1bnRpbWUuUVVBTlRVTV9TSVpFKTsKLSAgfSwKLSAgZGVkdXA6IGZ1bmN0aW9u
IGRlZHVwKGl0ZW1zLCBpZGVudCkgewotICB2YXIgc2VlbiA9IHt9OwotICBpZiAoaWRlbnQpIHsK
LSAgICByZXR1cm4gaXRlbXMuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0pIHsKLSAgICAgIGlmIChzZWVu
W2l0ZW1baWRlbnRdXSkgcmV0dXJuIGZhbHNlOwotICAgICAgc2VlbltpdGVtW2lkZW50XV0gPSB0
cnVlOwotICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSk7Ci0gIH0gZWxzZSB7Ci0gICAgcmV0dXJu
IGl0ZW1zLmZpbHRlcihmdW5jdGlvbihpdGVtKSB7Ci0gICAgICBpZiAoc2VlbltpdGVtXSkgcmV0
dXJuIGZhbHNlOwotICAgICAgc2VlbltpdGVtXSA9IHRydWU7Ci0gICAgICByZXR1cm4gdHJ1ZTsK
LSAgICB9KTsKLSAgfQotfSwKLSAgc2V0OiBmdW5jdGlvbiBzZXQoKSB7Ci0gIHZhciBhcmdzID0g
dHlwZW9mIGFyZ3VtZW50c1swXSA9PT0gJ29iamVjdCcgPyBhcmd1bWVudHNbMF0gOiBhcmd1bWVu
dHM7Ci0gIHZhciByZXQgPSB7fTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsg
aSsrKSB7Ci0gICAgcmV0W2FyZ3NbaV1dID0gMDsKLSAgfQotICByZXR1cm4gcmV0OwotfSwKLSAg
U1RBQ0tfQUxJR046IDgsCi0gIGdldEFsaWduU2l6ZTogZnVuY3Rpb24gKHR5cGUsIHNpemUsIHZh
cmFyZykgewotICAgIC8vIHdlIGFsaWduIGk2NHMgYW5kIGRvdWJsZXMgb24gNjQtYml0IGJvdW5k
YXJpZXMsIHVubGlrZSB4ODYKLSAgICBpZiAodHlwZSA9PSAnaTY0JyB8fCB0eXBlID09ICdkb3Vi
bGUnIHx8IHZhcmFyZykgcmV0dXJuIDg7Ci0gICAgaWYgKCF0eXBlKSByZXR1cm4gTWF0aC5taW4o
c2l6ZSwgOCk7IC8vIGFsaWduIHN0cnVjdHVyZXMgaW50ZXJuYWxseSB0byA2NCBiaXRzCi0gICAg
cmV0dXJuIE1hdGgubWluKHNpemUgfHwgKHR5cGUgPyBSdW50aW1lLmdldE5hdGl2ZUZpZWxkU2l6
ZSh0eXBlKSA6IDApLCBSdW50aW1lLlFVQU5UVU1fU0laRSk7Ci0gIH0sCi0gIGNhbGN1bGF0ZVN0
cnVjdEFsaWdubWVudDogZnVuY3Rpb24gY2FsY3VsYXRlU3RydWN0QWxpZ25tZW50KHR5cGUpIHsK
LSAgICB0eXBlLmZsYXRTaXplID0gMDsKLSAgICB0eXBlLmFsaWduU2l6ZSA9IDA7Ci0gICAgdmFy
IGRpZmZzID0gW107Ci0gICAgdmFyIHByZXYgPSAtMTsKLSAgICB2YXIgaW5kZXggPSAwOwotICAg
IHR5cGUuZmxhdEluZGV4ZXMgPSB0eXBlLmZpZWxkcy5tYXAoZnVuY3Rpb24oZmllbGQpIHsKLSAg
ICAgIGluZGV4Kys7Ci0gICAgICB2YXIgc2l6ZSwgYWxpZ25TaXplOwotICAgICAgaWYgKFJ1bnRp
bWUuaXNOdW1iZXJUeXBlKGZpZWxkKSB8fCBSdW50aW1lLmlzUG9pbnRlclR5cGUoZmllbGQpKSB7
Ci0gICAgICAgIHNpemUgPSBSdW50aW1lLmdldE5hdGl2ZVR5cGVTaXplKGZpZWxkKTsgLy8gcGFj
ayBjaGFyOyBjaGFyOyBpbiBzdHJ1Y3RzLCBhbHNvIGNoYXJbWF1zLgotICAgICAgICBhbGlnblNp
emUgPSBSdW50aW1lLmdldEFsaWduU2l6ZShmaWVsZCwgc2l6ZSk7Ci0gICAgICB9IGVsc2UgaWYg
KFJ1bnRpbWUuaXNTdHJ1Y3RUeXBlKGZpZWxkKSkgewotICAgICAgICBpZiAoZmllbGRbMV0gPT09
ICcwJykgewotICAgICAgICAgIC8vIHRoaXMgaXMgWzAgeCBzb21ldGhpbmddLiBXaGVuIGluc2lk
ZSBhbm90aGVyIHN0cnVjdHVyZSBsaWtlIGhlcmUsIGl0IG11c3QgYmUgYXQgdGhlIGVuZCwKLSAg
ICAgICAgICAvLyBhbmQgaXQgYWRkcyBubyBzaXplCi0gICAgICAgICAgLy8gWFhYIHRoaXMgaGFw
cGVucyBpbiBqYXZhLW5ib2R5IGZvciBleGFtcGxlLi4uIGFzc2VydChpbmRleCA9PT0gdHlwZS5m
aWVsZHMubGVuZ3RoLCAnemVyby1sZW5ndGggaW4gdGhlIG1pZGRsZSEnKTsKLSAgICAgICAgICBz
aXplID0gMDsKLSAgICAgICAgICBhbGlnblNpemUgPSB0eXBlLmFsaWduU2l6ZSB8fCBRVUFOVFVN
X1NJWkU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgc2l6ZSA9IFR5cGVzLnR5cGVzW2Zp
ZWxkXS5mbGF0U2l6ZTsKLSAgICAgICAgICBhbGlnblNpemUgPSBSdW50aW1lLmdldEFsaWduU2l6
ZShudWxsLCBUeXBlcy50eXBlc1tmaWVsZF0uYWxpZ25TaXplKTsKLSAgICAgICAgfQotICAgICAg
fSBlbHNlIGlmIChmaWVsZFswXSA9PSAnYicpIHsKLSAgICAgICAgLy8gYk4sIGxhcmdlIG51bWJl
ciBmaWVsZCwgbGlrZSBhIFtOIHggaThdCi0gICAgICAgIHNpemUgPSBmaWVsZC5zdWJzdHIoMSl8
MDsKLSAgICAgICAgYWxpZ25TaXplID0gMTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHRocm93
ICdVbmNsZWFyIHR5cGUgaW4gc3RydWN0OiAnICsgZmllbGQgKyAnLCBpbiAnICsgdHlwZS5uYW1l
XyArICcgOjogJyArIGR1bXAoVHlwZXMudHlwZXNbdHlwZS5uYW1lX10pOwotICAgICAgfQotICAg
ICAgaWYgKHR5cGUucGFja2VkKSBhbGlnblNpemUgPSAxOwotICAgICAgdHlwZS5hbGlnblNpemUg
PSBNYXRoLm1heCh0eXBlLmFsaWduU2l6ZSwgYWxpZ25TaXplKTsKLSAgICAgIHZhciBjdXJyID0g
UnVudGltZS5hbGlnbk1lbW9yeSh0eXBlLmZsYXRTaXplLCBhbGlnblNpemUpOyAvLyBpZiBuZWNl
c3NhcnksIHBsYWNlIHRoaXMgb24gYWxpZ25lZCBtZW1vcnkKLSAgICAgIHR5cGUuZmxhdFNpemUg
PSBjdXJyICsgc2l6ZTsKLSAgICAgIGlmIChwcmV2ID49IDApIHsKLSAgICAgICAgZGlmZnMucHVz
aChjdXJyLXByZXYpOwotICAgICAgfQotICAgICAgcHJldiA9IGN1cnI7Ci0gICAgICByZXR1cm4g
Y3VycjsKLSAgICB9KTsKLSAgICB0eXBlLmZsYXRTaXplID0gUnVudGltZS5hbGlnbk1lbW9yeSh0
eXBlLmZsYXRTaXplLCB0eXBlLmFsaWduU2l6ZSk7Ci0gICAgaWYgKGRpZmZzLmxlbmd0aCA9PSAw
KSB7Ci0gICAgICB0eXBlLmZsYXRGYWN0b3IgPSB0eXBlLmZsYXRTaXplOwotICAgIH0gZWxzZSBp
ZiAoUnVudGltZS5kZWR1cChkaWZmcykubGVuZ3RoID09IDEpIHsKLSAgICAgIHR5cGUuZmxhdEZh
Y3RvciA9IGRpZmZzWzBdOwotICAgIH0KLSAgICB0eXBlLm5lZWRzRmxhdHRlbmluZyA9ICh0eXBl
LmZsYXRGYWN0b3IgIT0gMSk7Ci0gICAgcmV0dXJuIHR5cGUuZmxhdEluZGV4ZXM7Ci0gIH0sCi0g
IGdlbmVyYXRlU3RydWN0SW5mbzogZnVuY3Rpb24gKHN0cnVjdCwgdHlwZU5hbWUsIG9mZnNldCkg
ewotICAgIHZhciB0eXBlLCBhbGlnbm1lbnQ7Ci0gICAgaWYgKHR5cGVOYW1lKSB7Ci0gICAgICBv
ZmZzZXQgPSBvZmZzZXQgfHwgMDsKLSAgICAgIHR5cGUgPSAodHlwZW9mIFR5cGVzID09PSAndW5k
ZWZpbmVkJyA/IFJ1bnRpbWUudHlwZUluZm8gOiBUeXBlcy50eXBlcylbdHlwZU5hbWVdOwotICAg
ICAgaWYgKCF0eXBlKSByZXR1cm4gbnVsbDsKLSAgICAgIGlmICh0eXBlLmZpZWxkcy5sZW5ndGgg
IT0gc3RydWN0Lmxlbmd0aCkgewotICAgICAgICBwcmludEVycignTnVtYmVyIG9mIG5hbWVkIGZp
ZWxkcyBtdXN0IG1hdGNoIHRoZSB0eXBlIGZvciAnICsgdHlwZU5hbWUgKyAnOiBwb3NzaWJseSBk
dXBsaWNhdGUgc3RydWN0IG5hbWVzLiBDYW5ub3QgcmV0dXJuIHN0cnVjdEluZm8nKTsKLSAgICAg
ICAgcmV0dXJuIG51bGw7Ci0gICAgICB9Ci0gICAgICBhbGlnbm1lbnQgPSB0eXBlLmZsYXRJbmRl
eGVzOwotICAgIH0gZWxzZSB7Ci0gICAgICB2YXIgdHlwZSA9IHsgZmllbGRzOiBzdHJ1Y3QubWFw
KGZ1bmN0aW9uKGl0ZW0pIHsgcmV0dXJuIGl0ZW1bMF0gfSkgfTsKLSAgICAgIGFsaWdubWVudCA9
IFJ1bnRpbWUuY2FsY3VsYXRlU3RydWN0QWxpZ25tZW50KHR5cGUpOwotICAgIH0KLSAgICB2YXIg
cmV0ID0gewotICAgICAgX19zaXplX186IHR5cGUuZmxhdFNpemUKLSAgICB9OwotICAgIGlmICh0
eXBlTmFtZSkgewotICAgICAgc3RydWN0LmZvckVhY2goZnVuY3Rpb24oaXRlbSwgaSkgewotICAg
ICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgcmV0W2l0ZW1d
ID0gYWxpZ25tZW50W2ldICsgb2Zmc2V0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIC8v
IGVtYmVkZGVkIHN0cnVjdAotICAgICAgICAgIHZhciBrZXk7Ci0gICAgICAgICAgZm9yICh2YXIg
ayBpbiBpdGVtKSBrZXkgPSBrOwotICAgICAgICAgIHJldFtrZXldID0gUnVudGltZS5nZW5lcmF0
ZVN0cnVjdEluZm8oaXRlbVtrZXldLCB0eXBlLmZpZWxkc1tpXSwgYWxpZ25tZW50W2ldKTsKLSAg
ICAgICAgfQotICAgICAgfSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHN0cnVjdC5mb3JFYWNoKGZ1
bmN0aW9uKGl0ZW0sIGkpIHsKLSAgICAgICAgcmV0W2l0ZW1bMV1dID0gYWxpZ25tZW50W2ldOwot
ICAgICAgfSk7Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci0gIH0sCi0gIGR5bkNhbGw6IGZ1bmN0
aW9uIChzaWcsIHB0ciwgYXJncykgewotICAgIGlmIChhcmdzICYmIGFyZ3MubGVuZ3RoKSB7Ci0g
ICAgICBpZiAoIWFyZ3Muc3BsaWNlKSBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwo
YXJncyk7Ci0gICAgICBhcmdzLnNwbGljZSgwLCAwLCBwdHIpOwotICAgICAgcmV0dXJuIE1vZHVs
ZVsnZHluQ2FsbF8nICsgc2lnXS5hcHBseShudWxsLCBhcmdzKTsKLSAgICB9IGVsc2UgewotICAg
ICAgcmV0dXJuIE1vZHVsZVsnZHluQ2FsbF8nICsgc2lnXS5jYWxsKG51bGwsIHB0cik7Ci0gICAg
fQotICB9LAotICBmdW5jdGlvblBvaW50ZXJzOiBbXSwKLSAgYWRkRnVuY3Rpb246IGZ1bmN0aW9u
IChmdW5jKSB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBSdW50aW1lLmZ1bmN0aW9uUG9pbnRl
cnMubGVuZ3RoOyBpKyspIHsKLSAgICAgIGlmICghUnVudGltZS5mdW5jdGlvblBvaW50ZXJzW2ld
KSB7Ci0gICAgICAgIFJ1bnRpbWUuZnVuY3Rpb25Qb2ludGVyc1tpXSA9IGZ1bmM7Ci0gICAgICAg
IHJldHVybiAyICsgMippOwotICAgICAgfQotICAgIH0KLSAgICB0aHJvdyAnRmluaXNoZWQgdXAg
YWxsIHJlc2VydmVkIGZ1bmN0aW9uIHBvaW50ZXJzLiBVc2UgYSBoaWdoZXIgdmFsdWUgZm9yIFJF
U0VSVkVEX0ZVTkNUSU9OX1BPSU5URVJTLic7Ci0gIH0sCi0gIHJlbW92ZUZ1bmN0aW9uOiBmdW5j
dGlvbiAoaW5kZXgpIHsKLSAgICBSdW50aW1lLmZ1bmN0aW9uUG9pbnRlcnNbKGluZGV4LTIpLzJd
ID0gbnVsbDsKLSAgfSwKLSAgd2Fybk9uY2U6IGZ1bmN0aW9uICh0ZXh0KSB7Ci0gICAgaWYgKCFS
dW50aW1lLndhcm5PbmNlLnNob3duKSBSdW50aW1lLndhcm5PbmNlLnNob3duID0ge307Ci0gICAg
aWYgKCFSdW50aW1lLndhcm5PbmNlLnNob3duW3RleHRdKSB7Ci0gICAgICBSdW50aW1lLndhcm5P
bmNlLnNob3duW3RleHRdID0gMTsKLSAgICAgIE1vZHVsZS5wcmludEVycih0ZXh0KTsKLSAgICB9
Ci0gIH0sCi0gIGZ1bmNXcmFwcGVyczoge30sCi0gIGdldEZ1bmNXcmFwcGVyOiBmdW5jdGlvbiAo
ZnVuYywgc2lnKSB7Ci0gICAgYXNzZXJ0KHNpZyk7Ci0gICAgaWYgKCFSdW50aW1lLmZ1bmNXcmFw
cGVyc1tmdW5jXSkgewotICAgICAgUnVudGltZS5mdW5jV3JhcHBlcnNbZnVuY10gPSBmdW5jdGlv
bigpIHsKLSAgICAgICAgcmV0dXJuIFJ1bnRpbWUuZHluQ2FsbChzaWcsIGZ1bmMsIGFyZ3VtZW50
cyk7Ci0gICAgICB9OwotICAgIH0KLSAgICByZXR1cm4gUnVudGltZS5mdW5jV3JhcHBlcnNbZnVu
Y107Ci0gIH0sCi0gIFVURjhQcm9jZXNzb3I6IGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgYnVmZmVy
ID0gW107Ci0gICAgdmFyIG5lZWRlZCA9IDA7Ci0gICAgdGhpcy5wcm9jZXNzQ0NoYXIgPSBmdW5j
dGlvbiAoY29kZSkgewotICAgICAgY29kZSA9IGNvZGUgJiAweEZGOwotICAgICAgaWYgKGJ1ZmZl
ci5sZW5ndGggPT0gMCkgewotICAgICAgICBpZiAoKGNvZGUgJiAweDgwKSA9PSAweDAwKSB7ICAg
ICAgICAvLyAweHh4eHh4eAotICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGNv
ZGUpOwotICAgICAgICB9Ci0gICAgICAgIGJ1ZmZlci5wdXNoKGNvZGUpOwotICAgICAgICBpZiAo
KGNvZGUgJiAweEUwKSA9PSAweEMwKSB7ICAgICAgICAvLyAxMTB4eHh4eAotICAgICAgICAgIG5l
ZWRlZCA9IDE7Ci0gICAgICAgIH0gZWxzZSBpZiAoKGNvZGUgJiAweEYwKSA9PSAweEUwKSB7IC8v
IDExMTB4eHh4Ci0gICAgICAgICAgbmVlZGVkID0gMjsKLSAgICAgICAgfSBlbHNlIHsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gMTExMTB4eHgKLSAgICAgICAgICBuZWVkZWQgPSAzOwot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiAnJzsKLSAgICAgIH0KLSAgICAgIGlmIChuZWVkZWQp
IHsKLSAgICAgICAgYnVmZmVyLnB1c2goY29kZSk7Ci0gICAgICAgIG5lZWRlZC0tOwotICAgICAg
ICBpZiAobmVlZGVkID4gMCkgcmV0dXJuICcnOwotICAgICAgfQotICAgICAgdmFyIGMxID0gYnVm
ZmVyWzBdOwotICAgICAgdmFyIGMyID0gYnVmZmVyWzFdOwotICAgICAgdmFyIGMzID0gYnVmZmVy
WzJdOwotICAgICAgdmFyIGM0ID0gYnVmZmVyWzNdOwotICAgICAgdmFyIHJldDsKLSAgICAgIGlm
IChidWZmZXIubGVuZ3RoID09IDIpIHsKLSAgICAgICAgcmV0ID0gU3RyaW5nLmZyb21DaGFyQ29k
ZSgoKGMxICYgMHgxRikgPDwgNikgIHwgKGMyICYgMHgzRikpOwotICAgICAgfSBlbHNlIGlmIChi
dWZmZXIubGVuZ3RoID09IDMpIHsKLSAgICAgICAgcmV0ID0gU3RyaW5nLmZyb21DaGFyQ29kZSgo
KGMxICYgMHgwRikgPDwgMTIpIHwgKChjMiAmIDB4M0YpIDw8IDYpICB8IChjMyAmIDB4M0YpKTsK
LSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIGh0dHA6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVz
L2phdmFzY3JpcHQtZW5jb2Rpbmcjc3Vycm9nYXRlLWZvcm11bGFlCi0gICAgICAgIHZhciBjb2Rl
UG9pbnQgPSAoKGMxICYgMHgwNykgPDwgMTgpIHwgKChjMiAmIDB4M0YpIDw8IDEyKSB8Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAoKGMzICYgMHgzRikgPDwgNikgIHwgKGM0ICYgMHgzRik7Ci0g
ICAgICAgIHJldCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoCi0gICAgICAgICAgTWF0aC5mbG9vcigo
Y29kZVBvaW50IC0gMHgxMDAwMCkgLyAweDQwMCkgKyAweEQ4MDAsCi0gICAgICAgICAgKGNvZGVQ
b2ludCAtIDB4MTAwMDApICUgMHg0MDAgKyAweERDMDApOwotICAgICAgfQotICAgICAgYnVmZmVy
Lmxlbmd0aCA9IDA7Ci0gICAgICByZXR1cm4gcmV0OwotICAgIH0KLSAgICB0aGlzLnByb2Nlc3NK
U1N0cmluZyA9IGZ1bmN0aW9uKHN0cmluZykgewotICAgICAgc3RyaW5nID0gdW5lc2NhcGUoZW5j
b2RlVVJJQ29tcG9uZW50KHN0cmluZykpOwotICAgICAgdmFyIHJldCA9IFtdOwotICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgcmV0LnB1c2go
c3RyaW5nLmNoYXJDb2RlQXQoaSkpOwotICAgICAgfQotICAgICAgcmV0dXJuIHJldDsKLSAgICB9
Ci0gIH0sCi0gIHN0YWNrQWxsb2M6IGZ1bmN0aW9uIChzaXplKSB7IHZhciByZXQgPSBTVEFDS1RP
UDtTVEFDS1RPUCA9IChTVEFDS1RPUCArIHNpemUpfDA7U1RBQ0tUT1AgPSAoKCgoU1RBQ0tUT1Ap
KzcpPj4zKTw8Myk7IHJldHVybiByZXQ7IH0sCi0gIHN0YXRpY0FsbG9jOiBmdW5jdGlvbiAoc2l6
ZSkgeyB2YXIgcmV0ID0gU1RBVElDVE9QO1NUQVRJQ1RPUCA9IChTVEFUSUNUT1AgKyBzaXplKXww
O1NUQVRJQ1RPUCA9ICgoKChTVEFUSUNUT1ApKzcpPj4zKTw8Myk7IHJldHVybiByZXQ7IH0sCi0g
IGR5bmFtaWNBbGxvYzogZnVuY3Rpb24gKHNpemUpIHsgdmFyIHJldCA9IERZTkFNSUNUT1A7RFlO
QU1JQ1RPUCA9IChEWU5BTUlDVE9QICsgc2l6ZSl8MDtEWU5BTUlDVE9QID0gKCgoKERZTkFNSUNU
T1ApKzcpPj4zKTw8Myk7IGlmIChEWU5BTUlDVE9QID49IFRPVEFMX01FTU9SWSkgZW5sYXJnZU1l
bW9yeSgpOzsgcmV0dXJuIHJldDsgfSwKLSAgYWxpZ25NZW1vcnk6IGZ1bmN0aW9uIChzaXplLHF1
YW50dW0pIHsgdmFyIHJldCA9IHNpemUgPSBNYXRoLmNlaWwoKHNpemUpLyhxdWFudHVtID8gcXVh
bnR1bSA6IDgpKSoocXVhbnR1bSA/IHF1YW50dW0gOiA4KTsgcmV0dXJuIHJldDsgfSwKLSAgbWFr
ZUJpZ0ludDogZnVuY3Rpb24gKGxvdyxoaWdoLHVuc2lnbmVkKSB7IHZhciByZXQgPSAodW5zaWdu
ZWQgPyAoKCsoKChsb3cpPj4+KDApKSkpKygoKygoKGhpZ2gpPj4+KDApKSkpKigrKDQyOTQ5Njcy
OTYpKSkpIDogKCgrKCgobG93KT4+PigwKSkpKSsoKCsoKChoaWdoKXwoMCkpKSkqKCsoNDI5NDk2
NzI5NikpKSkpOyByZXR1cm4gcmV0OyB9LAotICBHTE9CQUxfQkFTRTogOCwKLSAgUVVBTlRVTV9T
SVpFOiA0LAotICBfX2R1bW15X186IDAKLX0KLS8vPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLy8gUnVudGltZSBlc3NlbnRpYWxzCi0vLz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLXZhciBfX1RIUkVXX18gPSAwOyAvLyBVc2VkIGluIGNo
ZWNraW5nIGZvciB0aHJvd24gZXhjZXB0aW9ucy4KLXZhciBBQk9SVCA9IGZhbHNlOyAvLyB3aGV0
aGVyIHdlIGFyZSBxdWl0dGluZyB0aGUgYXBwbGljYXRpb24uIG5vIGNvZGUgc2hvdWxkIHJ1biBh
ZnRlciB0aGlzLiBzZXQgaW4gZXhpdCgpIGFuZCBhYm9ydCgpCi12YXIgRVhJVFNUQVRVUyA9IDA7
Ci12YXIgdW5kZWYgPSAwOwotLy8gdGVtcEludCBpcyB1c2VkIGZvciAzMi1iaXQgc2lnbmVkIHZh
bHVlcyBvciBzbWFsbGVyLiB0ZW1wQmlnSW50IGlzIHVzZWQKLS8vIGZvciAzMi1iaXQgdW5zaWdu
ZWQgdmFsdWVzIG9yIG1vcmUgdGhhbiAzMiBiaXRzLiBUT0RPOiBhdWRpdCBhbGwgdXNlcyBvZiB0
ZW1wSW50Ci12YXIgdGVtcFZhbHVlLCB0ZW1wSW50LCB0ZW1wQmlnSW50LCB0ZW1wSW50MiwgdGVt
cEJpZ0ludDIsIHRlbXBQYWlyLCB0ZW1wQmlnSW50SSwgdGVtcEJpZ0ludFIsIHRlbXBCaWdJbnRT
LCB0ZW1wQmlnSW50UCwgdGVtcEJpZ0ludEQ7Ci12YXIgdGVtcEk2NCwgdGVtcEk2NGI7Ci12YXIg
dGVtcFJldDAsIHRlbXBSZXQxLCB0ZW1wUmV0MiwgdGVtcFJldDMsIHRlbXBSZXQ0LCB0ZW1wUmV0
NSwgdGVtcFJldDYsIHRlbXBSZXQ3LCB0ZW1wUmV0OCwgdGVtcFJldDk7Ci1mdW5jdGlvbiBhc3Nl
cnQoY29uZGl0aW9uLCB0ZXh0KSB7Ci0gIGlmICghY29uZGl0aW9uKSB7Ci0gICAgYWJvcnQoJ0Fz
c2VydGlvbiBmYWlsZWQ6ICcgKyB0ZXh0KTsKLSAgfQotfQotdmFyIGdsb2JhbFNjb3BlID0gdGhp
czsKLS8vIEMgY2FsbGluZyBpbnRlcmZhY2UuIEEgY29udmVuaWVudCB3YXkgdG8gY2FsbCBDIGZ1
bmN0aW9ucyAoaW4gQyBmaWxlcywgb3IKLS8vIGRlZmluZWQgd2l0aCBleHRlcm4gIkMiKS4KLS8v
Ci0vLyBOb3RlOiBMTFZNIG9wdGltaXphdGlvbnMgY2FuIGlubGluZSBhbmQgcmVtb3ZlIGZ1bmN0
aW9ucywgYWZ0ZXIgd2hpY2ggeW91IHdpbGwgbm90IGJlCi0vLyAgICAgICBhYmxlIHRvIGNhbGwg
dGhlbS4gQ2xvc3VyZSBjYW4gYWxzbyBkbyBzby4gVG8gYXZvaWQgdGhhdCwgYWRkIHlvdXIgZnVu
Y3Rpb24gdG8KLS8vICAgICAgIHRoZSBleHBvcnRzIHVzaW5nIHNvbWV0aGluZyBsaWtlCi0vLwot
Ly8gICAgICAgICAtcyBFWFBPUlRFRF9GVU5DVElPTlM9J1siX21haW4iLCAiX215ZnVuYyJdJwot
Ly8KLS8vIEBwYXJhbSBpZGVudCAgICAgIFRoZSBuYW1lIG9mIHRoZSBDIGZ1bmN0aW9uIChub3Rl
IHRoYXQgQysrIGZ1bmN0aW9ucyB3aWxsIGJlIG5hbWUtbWFuZ2xlZCAtIHVzZSBleHRlcm4gIkMi
KQotLy8gQHBhcmFtIHJldHVyblR5cGUgVGhlIHJldHVybiB0eXBlIG9mIHRoZSBmdW5jdGlvbiwg
b25lIG9mIHRoZSBKUyB0eXBlcyAnbnVtYmVyJywgJ3N0cmluZycgb3IgJ2FycmF5JyAodXNlICdu
dW1iZXInIGZvciBhbnkgQyBwb2ludGVyLCBhbmQKLS8vICAgICAgICAgICAgICAgICAgICdhcnJh
eScgZm9yIEphdmFTY3JpcHQgYXJyYXlzIGFuZCB0eXBlZCBhcnJheXM7IG5vdGUgdGhhdCBhcnJh
eXMgYXJlIDgtYml0KS4KLS8vIEBwYXJhbSBhcmdUeXBlcyAgIEFuIGFycmF5IG9mIHRoZSB0eXBl
cyBvZiBhcmd1bWVudHMgZm9yIHRoZSBmdW5jdGlvbiAoaWYgdGhlcmUgYXJlIG5vIGFyZ3VtZW50
cywgdGhpcyBjYW4gYmUgb21taXR0ZWQpLiBUeXBlcyBhcmUgYXMgaW4gcmV0dXJuVHlwZSwKLS8v
ICAgICAgICAgICAgICAgICAgIGV4Y2VwdCB0aGF0ICdhcnJheScgaXMgbm90IHBvc3NpYmxlICh0
aGVyZSBpcyBubyB3YXkgZm9yIHVzIHRvIGtub3cgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkpCi0v
LyBAcGFyYW0gYXJncyAgICAgICBBbiBhcnJheSBvZiB0aGUgYXJndW1lbnRzIHRvIHRoZSBmdW5j
dGlvbiwgYXMgbmF0aXZlIEpTIHZhbHVlcyAoYXMgaW4gcmV0dXJuVHlwZSkKLS8vICAgICAgICAg
ICAgICAgICAgIE5vdGUgdGhhdCBzdHJpbmcgYXJndW1lbnRzIHdpbGwgYmUgc3RvcmVkIG9uIHRo
ZSBzdGFjayAodGhlIEpTIHN0cmluZyB3aWxsIGJlY29tZSBhIEMgc3RyaW5nIG9uIHRoZSBzdGFj
aykuCi0vLyBAcmV0dXJuICAgICAgICAgICBUaGUgcmV0dXJuIHZhbHVlLCBhcyBhIG5hdGl2ZSBK
UyB2YWx1ZSAoYXMgaW4gcmV0dXJuVHlwZSkKLWZ1bmN0aW9uIGNjYWxsKGlkZW50LCByZXR1cm5U
eXBlLCBhcmdUeXBlcywgYXJncykgewotICByZXR1cm4gY2NhbGxGdW5jKGdldENGdW5jKGlkZW50
KSwgcmV0dXJuVHlwZSwgYXJnVHlwZXMsIGFyZ3MpOwotfQotTW9kdWxlWyJjY2FsbCJdID0gY2Nh
bGw7Ci0vLyBSZXR1cm5zIHRoZSBDIGZ1bmN0aW9uIHdpdGggYSBzcGVjaWZpZWQgaWRlbnRpZmll
ciAoZm9yIEMrKywgeW91IG5lZWQgdG8gZG8gbWFudWFsIG5hbWUgbWFuZ2xpbmcpCi1mdW5jdGlv
biBnZXRDRnVuYyhpZGVudCkgewotICB0cnkgewotICAgIHZhciBmdW5jID0gTW9kdWxlWydfJyAr
IGlkZW50XTsgLy8gY2xvc3VyZSBleHBvcnRlZCBmdW5jdGlvbgotICAgIGlmICghZnVuYykgZnVu
YyA9IGV2YWwoJ18nICsgaWRlbnQpOyAvLyBleHBsaWNpdCBsb29rdXAKLSAgfSBjYXRjaChlKSB7
Ci0gIH0KLSAgYXNzZXJ0KGZ1bmMsICdDYW5ub3QgY2FsbCB1bmtub3duIGZ1bmN0aW9uICcgKyBp
ZGVudCArICcgKHBlcmhhcHMgTExWTSBvcHRpbWl6YXRpb25zIG9yIGNsb3N1cmUgcmVtb3ZlZCBp
dD8pJyk7Ci0gIHJldHVybiBmdW5jOwotfQotLy8gSW50ZXJuYWwgZnVuY3Rpb24gdGhhdCBkb2Vz
IGEgQyBjYWxsIHVzaW5nIGEgZnVuY3Rpb24sIG5vdCBhbiBpZGVudGlmaWVyCi1mdW5jdGlvbiBj
Y2FsbEZ1bmMoZnVuYywgcmV0dXJuVHlwZSwgYXJnVHlwZXMsIGFyZ3MpIHsKLSAgdmFyIHN0YWNr
ID0gMDsKLSAgZnVuY3Rpb24gdG9DKHZhbHVlLCB0eXBlKSB7Ci0gICAgaWYgKHR5cGUgPT0gJ3N0
cmluZycpIHsKLSAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVk
IHx8IHZhbHVlID09PSAwKSByZXR1cm4gMDsgLy8gbnVsbCBzdHJpbmcKLSAgICAgIGlmICghc3Rh
Y2spIHN0YWNrID0gUnVudGltZS5zdGFja1NhdmUoKTsKLSAgICAgIHZhciByZXQgPSBSdW50aW1l
LnN0YWNrQWxsb2ModmFsdWUubGVuZ3RoKzEpOwotICAgICAgd3JpdGVTdHJpbmdUb01lbW9yeSh2
YWx1ZSwgcmV0KTsKLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfSBlbHNlIGlmICh0eXBlID09ICdh
cnJheScpIHsKLSAgICAgIGlmICghc3RhY2spIHN0YWNrID0gUnVudGltZS5zdGFja1NhdmUoKTsK
LSAgICAgIHZhciByZXQgPSBSdW50aW1lLnN0YWNrQWxsb2ModmFsdWUubGVuZ3RoKTsKLSAgICAg
IHdyaXRlQXJyYXlUb01lbW9yeSh2YWx1ZSwgcmV0KTsKLSAgICAgIHJldHVybiByZXQ7Ci0gICAg
fQotICAgIHJldHVybiB2YWx1ZTsKLSAgfQotICBmdW5jdGlvbiBmcm9tQyh2YWx1ZSwgdHlwZSkg
ewotICAgIGlmICh0eXBlID09ICdzdHJpbmcnKSB7Ci0gICAgICByZXR1cm4gUG9pbnRlcl9zdHJp
bmdpZnkodmFsdWUpOwotICAgIH0KLSAgICBhc3NlcnQodHlwZSAhPSAnYXJyYXknKTsKLSAgICBy
ZXR1cm4gdmFsdWU7Ci0gIH0KLSAgdmFyIGkgPSAwOwotICB2YXIgY0FyZ3MgPSBhcmdzID8gYXJn
cy5tYXAoZnVuY3Rpb24oYXJnKSB7Ci0gICAgcmV0dXJuIHRvQyhhcmcsIGFyZ1R5cGVzW2krK10p
OwotICB9KSA6IFtdOwotICB2YXIgcmV0ID0gZnJvbUMoZnVuYy5hcHBseShudWxsLCBjQXJncyks
IHJldHVyblR5cGUpOwotICBpZiAoc3RhY2spIFJ1bnRpbWUuc3RhY2tSZXN0b3JlKHN0YWNrKTsK
LSAgcmV0dXJuIHJldDsKLX0KLS8vIFJldHVybnMgYSBuYXRpdmUgSlMgd3JhcHBlciBmb3IgYSBD
IGZ1bmN0aW9uLiBUaGlzIGlzIHNpbWlsYXIgdG8gY2NhbGwsIGJ1dAotLy8gcmV0dXJucyBhIGZ1
bmN0aW9uIHlvdSBjYW4gY2FsbCByZXBlYXRlZGx5IGluIGEgbm9ybWFsIHdheS4gRm9yIGV4YW1w
bGU6Ci0vLwotLy8gICB2YXIgbXlfZnVuY3Rpb24gPSBjd3JhcCgnbXlfY19mdW5jdGlvbicsICdu
dW1iZXInLCBbJ251bWJlcicsICdudW1iZXInXSk7Ci0vLyAgIGFsZXJ0KG15X2Z1bmN0aW9uKDUs
IDIyKSk7Ci0vLyAgIGFsZXJ0KG15X2Z1bmN0aW9uKDk5LCAxMikpOwotLy8KLWZ1bmN0aW9uIGN3
cmFwKGlkZW50LCByZXR1cm5UeXBlLCBhcmdUeXBlcykgewotICB2YXIgZnVuYyA9IGdldENGdW5j
KGlkZW50KTsKLSAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgIHJldHVybiBjY2FsbEZ1bmMoZnVu
YywgcmV0dXJuVHlwZSwgYXJnVHlwZXMsIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3Vt
ZW50cykpOwotICB9Ci19Ci1Nb2R1bGVbImN3cmFwIl0gPSBjd3JhcDsKLS8vIFNldHMgYSB2YWx1
ZSBpbiBtZW1vcnkgaW4gYSBkeW5hbWljIHdheSBhdCBydW4tdGltZS4gVXNlcyB0aGUKLS8vIHR5
cGUgZGF0YS4gVGhpcyBpcyB0aGUgc2FtZSBhcyBtYWtlU2V0VmFsdWUsIGV4Y2VwdCB0aGF0Ci0v
LyBtYWtlU2V0VmFsdWUgaXMgZG9uZSBhdCBjb21waWxlLXRpbWUgYW5kIGdlbmVyYXRlcyB0aGUg
bmVlZGVkCi0vLyBjb2RlIHRoZW4sIHdoZXJlYXMgdGhpcyBmdW5jdGlvbiBwaWNrcyB0aGUgcmln
aHQgY29kZSBhdAotLy8gcnVuLXRpbWUuCi0vLyBOb3RlIHRoYXQgc2V0VmFsdWUgYW5kIGdldFZh
bHVlIG9ubHkgZG8gKmFsaWduZWQqIHdyaXRlcyBhbmQgcmVhZHMhCi0vLyBOb3RlIHRoYXQgY2Nh
bGwgdXNlcyBKUyB0eXBlcyBhcyBmb3IgZGVmaW5pbmcgdHlwZXMsIHdoaWxlIHNldFZhbHVlIGFu
ZAotLy8gZ2V0VmFsdWUgbmVlZCBMTFZNIHR5cGVzICgnaTgnLCAnaTMyJykgLSB0aGlzIGlzIGEg
bG93ZXItbGV2ZWwgb3BlcmF0aW9uCi1mdW5jdGlvbiBzZXRWYWx1ZShwdHIsIHZhbHVlLCB0eXBl
LCBub1NhZmUpIHsKLSAgdHlwZSA9IHR5cGUgfHwgJ2k4JzsKLSAgaWYgKHR5cGUuY2hhckF0KHR5
cGUubGVuZ3RoLTEpID09PSAnKicpIHR5cGUgPSAnaTMyJzsgLy8gcG9pbnRlcnMgYXJlIDMyLWJp
dAotICAgIHN3aXRjaCh0eXBlKSB7Ci0gICAgICBjYXNlICdpMSc6IEhFQVA4WyhwdHIpXT12YWx1
ZTsgYnJlYWs7Ci0gICAgICBjYXNlICdpOCc6IEhFQVA4WyhwdHIpXT12YWx1ZTsgYnJlYWs7Ci0g
ICAgICBjYXNlICdpMTYnOiBIRUFQMTZbKChwdHIpPj4xKV09dmFsdWU7IGJyZWFrOwotICAgICAg
Y2FzZSAnaTMyJzogSEVBUDMyWygocHRyKT4+MildPXZhbHVlOyBicmVhazsKLSAgICAgIGNhc2Ug
J2k2NCc6ICh0ZW1wSTY0ID0gW3ZhbHVlPj4+MCwodGVtcERvdWJsZT12YWx1ZSwoKyhNYXRoLmFi
cyh0ZW1wRG91YmxlKSkpID49ICgrKDEpKSA/ICh0ZW1wRG91YmxlID4gKCsoMCkpID8gKChNYXRo
Lm1pbigoKyhNYXRoLmZsb29yKCh0ZW1wRG91YmxlKS8oKyg0Mjk0OTY3Mjk2KSkpKSksICgrKDQy
OTQ5NjcyOTUpKSkpfDApPj4+MCA6ICh+figoKyhNYXRoLmNlaWwoKHRlbXBEb3VibGUgLSArKCgo
fn4odGVtcERvdWJsZSkpKT4+PjApKS8oKyg0Mjk0OTY3Mjk2KSkpKSkpKT4+PjApIDogMCldLEhF
QVAzMlsoKHB0cik+PjIpXT10ZW1wSTY0WzBdLEhFQVAzMlsoKChwdHIpKyg0KSk+PjIpXT10ZW1w
STY0WzFdKTsgYnJlYWs7Ci0gICAgICBjYXNlICdmbG9hdCc6IEhFQVBGMzJbKChwdHIpPj4yKV09
dmFsdWU7IGJyZWFrOwotICAgICAgY2FzZSAnZG91YmxlJzogSEVBUEY2NFsoKHB0cik+PjMpXT12
YWx1ZTsgYnJlYWs7Ci0gICAgICBkZWZhdWx0OiBhYm9ydCgnaW52YWxpZCB0eXBlIGZvciBzZXRW
YWx1ZTogJyArIHR5cGUpOwotICAgIH0KLX0KLU1vZHVsZVsnc2V0VmFsdWUnXSA9IHNldFZhbHVl
OwotLy8gUGFyYWxsZWwgdG8gc2V0VmFsdWUuCi1mdW5jdGlvbiBnZXRWYWx1ZShwdHIsIHR5cGUs
IG5vU2FmZSkgewotICB0eXBlID0gdHlwZSB8fCAnaTgnOwotICBpZiAodHlwZS5jaGFyQXQodHlw
ZS5sZW5ndGgtMSkgPT09ICcqJykgdHlwZSA9ICdpMzInOyAvLyBwb2ludGVycyBhcmUgMzItYml0
Ci0gICAgc3dpdGNoKHR5cGUpIHsKLSAgICAgIGNhc2UgJ2kxJzogcmV0dXJuIEhFQVA4WyhwdHIp
XTsKLSAgICAgIGNhc2UgJ2k4JzogcmV0dXJuIEhFQVA4WyhwdHIpXTsKLSAgICAgIGNhc2UgJ2kx
Nic6IHJldHVybiBIRUFQMTZbKChwdHIpPj4xKV07Ci0gICAgICBjYXNlICdpMzInOiByZXR1cm4g
SEVBUDMyWygocHRyKT4+MildOwotICAgICAgY2FzZSAnaTY0JzogcmV0dXJuIEhFQVAzMlsoKHB0
cik+PjIpXTsKLSAgICAgIGNhc2UgJ2Zsb2F0JzogcmV0dXJuIEhFQVBGMzJbKChwdHIpPj4yKV07
Ci0gICAgICBjYXNlICdkb3VibGUnOiByZXR1cm4gSEVBUEY2NFsoKHB0cik+PjMpXTsKLSAgICAg
IGRlZmF1bHQ6IGFib3J0KCdpbnZhbGlkIHR5cGUgZm9yIHNldFZhbHVlOiAnICsgdHlwZSk7Ci0g
ICAgfQotICByZXR1cm4gbnVsbDsKLX0KLU1vZHVsZVsnZ2V0VmFsdWUnXSA9IGdldFZhbHVlOwot
dmFyIEFMTE9DX05PUk1BTCA9IDA7IC8vIFRyaWVzIHRvIHVzZSBfbWFsbG9jKCkKLXZhciBBTExP
Q19TVEFDSyA9IDE7IC8vIExpdmVzIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIGN1cnJlbnQgZnVu
Y3Rpb24gY2FsbAotdmFyIEFMTE9DX1NUQVRJQyA9IDI7IC8vIENhbm5vdCBiZSBmcmVlZAotdmFy
IEFMTE9DX0RZTkFNSUMgPSAzOyAvLyBDYW5ub3QgYmUgZnJlZWQgZXhjZXB0IHRocm91Z2ggc2Jy
awotdmFyIEFMTE9DX05PTkUgPSA0OyAvLyBEbyBub3QgYWxsb2NhdGUKLU1vZHVsZVsnQUxMT0Nf
Tk9STUFMJ10gPSBBTExPQ19OT1JNQUw7Ci1Nb2R1bGVbJ0FMTE9DX1NUQUNLJ10gPSBBTExPQ19T
VEFDSzsKLU1vZHVsZVsnQUxMT0NfU1RBVElDJ10gPSBBTExPQ19TVEFUSUM7Ci1Nb2R1bGVbJ0FM
TE9DX0RZTkFNSUMnXSA9IEFMTE9DX0RZTkFNSUM7Ci1Nb2R1bGVbJ0FMTE9DX05PTkUnXSA9IEFM
TE9DX05PTkU7Ci0vLyBhbGxvY2F0ZSgpOiBUaGlzIGlzIGZvciBpbnRlcm5hbCB1c2UuIFlvdSBj
YW4gdXNlIGl0IHlvdXJzZWxmIGFzIHdlbGwsIGJ1dCB0aGUgaW50ZXJmYWNlCi0vLyAgICAgICAg
ICAgICBpcyBhIGxpdHRsZSB0cmlja3kgKHNlZSBkb2NzIHJpZ2h0IGJlbG93KS4gVGhlIHJlYXNv
biBpcyB0aGF0IGl0IGlzIG9wdGltaXplZAotLy8gICAgICAgICAgICAgZm9yIG11bHRpcGxlIHN5
bnRheGVzIHRvIHNhdmUgc3BhY2UgaW4gZ2VuZXJhdGVkIGNvZGUuIFNvIHlvdSBzaG91bGQKLS8v
ICAgICAgICAgICAgIG5vcm1hbGx5IG5vdCB1c2UgYWxsb2NhdGUoKSwgYW5kIGluc3RlYWQgYWxs
b2NhdGUgbWVtb3J5IHVzaW5nIF9tYWxsb2MoKSwKLS8vICAgICAgICAgICAgIGluaXRpYWxpemUg
aXQgd2l0aCBzZXRWYWx1ZSgpLCBhbmQgc28gZm9ydGguCi0vLyBAc2xhYjogQW4gYXJyYXkgb2Yg
ZGF0YSwgb3IgYSBudW1iZXIuIElmIGEgbnVtYmVyLCB0aGVuIHRoZSBzaXplIG9mIHRoZSBibG9j
ayB0byBhbGxvY2F0ZSwKLS8vICAgICAgICBpbiAqYnl0ZXMqIChub3RlIHRoYXQgdGhpcyBpcyBz
b21ldGltZXMgY29uZnVzaW5nOiB0aGUgbmV4dCBwYXJhbWV0ZXIgZG9lcyBub3QKLS8vICAgICAg
ICBhZmZlY3QgdGhpcyEpCi0vLyBAdHlwZXM6IEVpdGhlciBhbiBhcnJheSBvZiB0eXBlcywgb25l
IGZvciBlYWNoIGJ5dGUgKG9yIDAgaWYgbm8gdHlwZSBhdCB0aGF0IHBvc2l0aW9uKSwKLS8vICAg
ICAgICAgb3IgYSBzaW5nbGUgdHlwZSB3aGljaCBpcyB1c2VkIGZvciB0aGUgZW50aXJlIGJsb2Nr
LiBUaGlzIG9ubHkgbWF0dGVycyBpZiB0aGVyZQotLy8gICAgICAgICBpcyBpbml0aWFsIGRhdGEg
LSBpZiBAc2xhYiBpcyBhIG51bWJlciwgdGhlbiB0aGlzIGRvZXMgbm90IG1hdHRlciBhdCBhbGwg
YW5kIGlzCi0vLyAgICAgICAgIGlnbm9yZWQuCi0vLyBAYWxsb2NhdG9yOiBIb3cgdG8gYWxsb2Nh
dGUgbWVtb3J5LCBzZWUgQUxMT0NfKgotZnVuY3Rpb24gYWxsb2NhdGUoc2xhYiwgdHlwZXMsIGFs
bG9jYXRvciwgcHRyKSB7Ci0gIHZhciB6ZXJvaW5pdCwgc2l6ZTsKLSAgaWYgKHR5cGVvZiBzbGFi
ID09PSAnbnVtYmVyJykgewotICAgIHplcm9pbml0ID0gdHJ1ZTsKLSAgICBzaXplID0gc2xhYjsK
LSAgfSBlbHNlIHsKLSAgICB6ZXJvaW5pdCA9IGZhbHNlOwotICAgIHNpemUgPSBzbGFiLmxlbmd0
aDsKLSAgfQotICB2YXIgc2luZ2xlVHlwZSA9IHR5cGVvZiB0eXBlcyA9PT0gJ3N0cmluZycgPyB0
eXBlcyA6IG51bGw7Ci0gIHZhciByZXQ7Ci0gIGlmIChhbGxvY2F0b3IgPT0gQUxMT0NfTk9ORSkg
ewotICAgIHJldCA9IHB0cjsKLSAgfSBlbHNlIHsKLSAgICByZXQgPSBbX21hbGxvYywgUnVudGlt
ZS5zdGFja0FsbG9jLCBSdW50aW1lLnN0YXRpY0FsbG9jLCBSdW50aW1lLmR5bmFtaWNBbGxvY11b
YWxsb2NhdG9yID09PSB1bmRlZmluZWQgPyBBTExPQ19TVEFUSUMgOiBhbGxvY2F0b3JdKE1hdGgu
bWF4KHNpemUsIHNpbmdsZVR5cGUgPyAxIDogdHlwZXMubGVuZ3RoKSk7Ci0gIH0KLSAgaWYgKHpl
cm9pbml0KSB7Ci0gICAgdmFyIHB0ciA9IHJldCwgc3RvcDsKLSAgICBhc3NlcnQoKHJldCAmIDMp
ID09IDApOwotICAgIHN0b3AgPSByZXQgKyAoc2l6ZSAmIH4zKTsKLSAgICBmb3IgKDsgcHRyIDwg
c3RvcDsgcHRyICs9IDQpIHsKLSAgICAgIEhFQVAzMlsoKHB0cik+PjIpXT0wOwotICAgIH0KLSAg
ICBzdG9wID0gcmV0ICsgc2l6ZTsKLSAgICB3aGlsZSAocHRyIDwgc3RvcCkgewotICAgICAgSEVB
UDhbKChwdHIrKyl8MCldPTA7Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci0gIH0KLSAgaWYgKHNp
bmdsZVR5cGUgPT09ICdpOCcpIHsKLSAgICBpZiAoc2xhYi5zdWJhcnJheSB8fCBzbGFiLnNsaWNl
KSB7Ci0gICAgICBIRUFQVTguc2V0KHNsYWIsIHJldCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIEhF
QVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkoc2xhYiksIHJldCk7Ci0gICAgfQotICAgIHJldHVybiBy
ZXQ7Ci0gIH0KLSAgdmFyIGkgPSAwLCB0eXBlLCB0eXBlU2l6ZSwgcHJldmlvdXNUeXBlOwotICB3
aGlsZSAoaSA8IHNpemUpIHsKLSAgICB2YXIgY3VyciA9IHNsYWJbaV07Ci0gICAgaWYgKHR5cGVv
ZiBjdXJyID09PSAnZnVuY3Rpb24nKSB7Ci0gICAgICBjdXJyID0gUnVudGltZS5nZXRGdW5jdGlv
bkluZGV4KGN1cnIpOwotICAgIH0KLSAgICB0eXBlID0gc2luZ2xlVHlwZSB8fCB0eXBlc1tpXTsK
LSAgICBpZiAodHlwZSA9PT0gMCkgewotICAgICAgaSsrOwotICAgICAgY29udGludWU7Ci0gICAg
fQotICAgIGlmICh0eXBlID09ICdpNjQnKSB0eXBlID0gJ2kzMic7IC8vIHNwZWNpYWwgY2FzZTog
d2UgaGF2ZSBvbmUgaTMyIGhlcmUsIGFuZCBvbmUgaTMyIGxhdGVyCi0gICAgc2V0VmFsdWUocmV0
K2ksIGN1cnIsIHR5cGUpOwotICAgIC8vIG5vIG5lZWQgdG8gbG9vayB1cCBzaXplIHVubGVzcyB0
eXBlIGNoYW5nZXMsIHNvIGNhY2hlIGl0Ci0gICAgaWYgKHByZXZpb3VzVHlwZSAhPT0gdHlwZSkg
ewotICAgICAgdHlwZVNpemUgPSBSdW50aW1lLmdldE5hdGl2ZVR5cGVTaXplKHR5cGUpOwotICAg
ICAgcHJldmlvdXNUeXBlID0gdHlwZTsKLSAgICB9Ci0gICAgaSArPSB0eXBlU2l6ZTsKLSAgfQot
ICByZXR1cm4gcmV0OwotfQotTW9kdWxlWydhbGxvY2F0ZSddID0gYWxsb2NhdGU7Ci1mdW5jdGlv
biBQb2ludGVyX3N0cmluZ2lmeShwdHIsIC8qIG9wdGlvbmFsICovIGxlbmd0aCkgewotICAvLyBU
T0RPOiB1c2UgVGV4dERlY29kZXIKLSAgLy8gRmluZCB0aGUgbGVuZ3RoLCBhbmQgY2hlY2sgZm9y
IFVURiB3aGlsZSBkb2luZyBzbwotICB2YXIgaGFzVXRmID0gZmFsc2U7Ci0gIHZhciB0OwotICB2
YXIgaSA9IDA7Ci0gIHdoaWxlICgxKSB7Ci0gICAgdCA9IEhFQVBVOFsoKChwdHIpKyhpKSl8MCld
OwotICAgIGlmICh0ID49IDEyOCkgaGFzVXRmID0gdHJ1ZTsKLSAgICBlbHNlIGlmICh0ID09IDAg
JiYgIWxlbmd0aCkgYnJlYWs7Ci0gICAgaSsrOwotICAgIGlmIChsZW5ndGggJiYgaSA9PSBsZW5n
dGgpIGJyZWFrOwotICB9Ci0gIGlmICghbGVuZ3RoKSBsZW5ndGggPSBpOwotICB2YXIgcmV0ID0g
Jyc7Ci0gIGlmICghaGFzVXRmKSB7Ci0gICAgdmFyIE1BWF9DSFVOSyA9IDEwMjQ7IC8vIHNwbGl0
IHVwIGludG8gY2h1bmtzLCBiZWNhdXNlIC5hcHBseSBvbiBhIGh1Z2Ugc3RyaW5nIGNhbiBvdmVy
ZmxvdyB0aGUgc3RhY2sKLSAgICB2YXIgY3VycjsKLSAgICB3aGlsZSAobGVuZ3RoID4gMCkgewot
ICAgICAgY3VyciA9IFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLCBIRUFQVTguc3Vi
YXJyYXkocHRyLCBwdHIgKyBNYXRoLm1pbihsZW5ndGgsIE1BWF9DSFVOSykpKTsKLSAgICAgIHJl
dCA9IHJldCA/IHJldCArIGN1cnIgOiBjdXJyOwotICAgICAgcHRyICs9IE1BWF9DSFVOSzsKLSAg
ICAgIGxlbmd0aCAtPSBNQVhfQ0hVTks7Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci0gIH0KLSAg
dmFyIHV0ZjggPSBuZXcgUnVudGltZS5VVEY4UHJvY2Vzc29yKCk7Ci0gIGZvciAoaSA9IDA7IGkg
PCBsZW5ndGg7IGkrKykgewotICAgIHQgPSBIRUFQVThbKCgocHRyKSsoaSkpfDApXTsKLSAgICBy
ZXQgKz0gdXRmOC5wcm9jZXNzQ0NoYXIodCk7Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0KLU1vZHVs
ZVsnUG9pbnRlcl9zdHJpbmdpZnknXSA9IFBvaW50ZXJfc3RyaW5naWZ5OwotLy8gTWVtb3J5IG1h
bmFnZW1lbnQKLXZhciBQQUdFX1NJWkUgPSA0MDk2OwotZnVuY3Rpb24gYWxpZ25NZW1vcnlQYWdl
KHgpIHsKLSAgcmV0dXJuICgoeCs0MDk1KT4+MTIpPDwxMjsKLX0KLXZhciBIRUFQOwotdmFyIEhF
QVA4LCBIRUFQVTgsIEhFQVAxNiwgSEVBUFUxNiwgSEVBUDMyLCBIRUFQVTMyLCBIRUFQRjMyLCBI
RUFQRjY0OwotdmFyIFNUQVRJQ19CQVNFID0gMCwgU1RBVElDVE9QID0gMCwgc3RhdGljU2VhbGVk
ID0gZmFsc2U7IC8vIHN0YXRpYyBhcmVhCi12YXIgU1RBQ0tfQkFTRSA9IDAsIFNUQUNLVE9QID0g
MCwgU1RBQ0tfTUFYID0gMDsgLy8gc3RhY2sgYXJlYQotdmFyIERZTkFNSUNfQkFTRSA9IDAsIERZ
TkFNSUNUT1AgPSAwOyAvLyBkeW5hbWljIGFyZWEgaGFuZGxlZCBieSBzYnJrCi1mdW5jdGlvbiBl
bmxhcmdlTWVtb3J5KCkgewotICBhYm9ydCgnQ2Fubm90IGVubGFyZ2UgbWVtb3J5IGFycmF5cyBp
biBhc20uanMuIEVpdGhlciAoMSkgY29tcGlsZSB3aXRoIC1zIFRPVEFMX01FTU9SWT1YIHdpdGgg
WCBoaWdoZXIgdGhhbiB0aGUgY3VycmVudCB2YWx1ZSwgb3IgKDIpIHNldCBNb2R1bGUuVE9UQUxf
TUVNT1JZIGJlZm9yZSB0aGUgcHJvZ3JhbSBydW5zLicpOwotfQotdmFyIFRPVEFMX1NUQUNLID0g
TW9kdWxlWydUT1RBTF9TVEFDSyddIHx8IDUyNDI4ODA7Ci12YXIgVE9UQUxfTUVNT1JZID0gTW9k
dWxlWydUT1RBTF9NRU1PUlknXSB8fCAxNjc3NzIxNjsKLXZhciBGQVNUX01FTU9SWSA9IE1vZHVs
ZVsnRkFTVF9NRU1PUlknXSB8fCAyMDk3MTUyOwotLy8gSW5pdGlhbGl6ZSB0aGUgcnVudGltZSdz
IG1lbW9yeQotLy8gY2hlY2sgZm9yIGZ1bGwgZW5naW5lIHN1cHBvcnQgKHVzZSBzdHJpbmcgJ3N1
YmFycmF5JyB0byBhdm9pZCBjbG9zdXJlIGNvbXBpbGVyIGNvbmZ1c2lvbikKLWFzc2VydCghIUlu
dDMyQXJyYXkgJiYgISFGbG9hdDY0QXJyYXkgJiYgISEobmV3IEludDMyQXJyYXkoMSlbJ3N1YmFy
cmF5J10pICYmICEhKG5ldyBJbnQzMkFycmF5KDEpWydzZXQnXSksCi0gICAgICAgJ0Nhbm5vdCBm
YWxsYmFjayB0byBub24tdHlwZWQgYXJyYXkgY2FzZTogQ29kZSBpcyB0b28gc3BlY2lhbGl6ZWQn
KTsKLXZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoVE9UQUxfTUVNT1JZKTsKLUhFQVA4ID0g
bmV3IEludDhBcnJheShidWZmZXIpOwotSEVBUDE2ID0gbmV3IEludDE2QXJyYXkoYnVmZmVyKTsK
LUhFQVAzMiA9IG5ldyBJbnQzMkFycmF5KGJ1ZmZlcik7Ci1IRUFQVTggPSBuZXcgVWludDhBcnJh
eShidWZmZXIpOwotSEVBUFUxNiA9IG5ldyBVaW50MTZBcnJheShidWZmZXIpOwotSEVBUFUzMiA9
IG5ldyBVaW50MzJBcnJheShidWZmZXIpOwotSEVBUEYzMiA9IG5ldyBGbG9hdDMyQXJyYXkoYnVm
ZmVyKTsKLUhFQVBGNjQgPSBuZXcgRmxvYXQ2NEFycmF5KGJ1ZmZlcik7Ci0vLyBFbmRpYW5uZXNz
IGNoZWNrIChub3RlOiBhc3N1bWVzIGNvbXBpbGVyIGFyY2ggd2FzIGxpdHRsZS1lbmRpYW4pCi1I
RUFQMzJbMF0gPSAyNTU7Ci1hc3NlcnQoSEVBUFU4WzBdID09PSAyNTUgJiYgSEVBUFU4WzNdID09
PSAwLCAnVHlwZWQgYXJyYXlzIDIgbXVzdCBiZSBydW4gb24gYSBsaXR0bGUtZW5kaWFuIHN5c3Rl
bScpOwotTW9kdWxlWydIRUFQJ10gPSBIRUFQOwotTW9kdWxlWydIRUFQOCddID0gSEVBUDg7Ci1N
b2R1bGVbJ0hFQVAxNiddID0gSEVBUDE2OwotTW9kdWxlWydIRUFQMzInXSA9IEhFQVAzMjsKLU1v
ZHVsZVsnSEVBUFU4J10gPSBIRUFQVTg7Ci1Nb2R1bGVbJ0hFQVBVMTYnXSA9IEhFQVBVMTY7Ci1N
b2R1bGVbJ0hFQVBVMzInXSA9IEhFQVBVMzI7Ci1Nb2R1bGVbJ0hFQVBGMzInXSA9IEhFQVBGMzI7
Ci1Nb2R1bGVbJ0hFQVBGNjQnXSA9IEhFQVBGNjQ7Ci1mdW5jdGlvbiBjYWxsUnVudGltZUNhbGxi
YWNrcyhjYWxsYmFja3MpIHsKLSAgd2hpbGUoY2FsbGJhY2tzLmxlbmd0aCA+IDApIHsKLSAgICB2
YXIgY2FsbGJhY2sgPSBjYWxsYmFja3Muc2hpZnQoKTsKLSAgICBpZiAodHlwZW9mIGNhbGxiYWNr
ID09ICdmdW5jdGlvbicpIHsKLSAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICBjb250aW51ZTsKLSAg
ICB9Ci0gICAgdmFyIGZ1bmMgPSBjYWxsYmFjay5mdW5jOwotICAgIGlmICh0eXBlb2YgZnVuYyA9
PT0gJ251bWJlcicpIHsKLSAgICAgIGlmIChjYWxsYmFjay5hcmcgPT09IHVuZGVmaW5lZCkgewot
ICAgICAgICBSdW50aW1lLmR5bkNhbGwoJ3YnLCBmdW5jKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgIFJ1bnRpbWUuZHluQ2FsbCgndmknLCBmdW5jLCBbY2FsbGJhY2suYXJnXSk7Ci0gICAgICB9
Ci0gICAgfSBlbHNlIHsKLSAgICAgIGZ1bmMoY2FsbGJhY2suYXJnID09PSB1bmRlZmluZWQgPyBu
dWxsIDogY2FsbGJhY2suYXJnKTsKLSAgICB9Ci0gIH0KLX0KLXZhciBfX0FUUFJFUlVOX18gID0g
W107IC8vIGZ1bmN0aW9ucyBjYWxsZWQgYmVmb3JlIHRoZSBydW50aW1lIGlzIGluaXRpYWxpemVk
Ci12YXIgX19BVElOSVRfXyAgICA9IFtdOyAvLyBmdW5jdGlvbnMgY2FsbGVkIGR1cmluZyBzdGFy
dHVwCi12YXIgX19BVE1BSU5fXyAgICA9IFtdOyAvLyBmdW5jdGlvbnMgY2FsbGVkIHdoZW4gbWFp
bigpIGlzIHRvIGJlIHJ1bgotdmFyIF9fQVRFWElUX18gICAgPSBbXTsgLy8gZnVuY3Rpb25zIGNh
bGxlZCBkdXJpbmcgc2h1dGRvd24KLXZhciBfX0FUUE9TVFJVTl9fID0gW107IC8vIGZ1bmN0aW9u
cyBjYWxsZWQgYWZ0ZXIgdGhlIHJ1bnRpbWUgaGFzIGV4aXRlZAotdmFyIHJ1bnRpbWVJbml0aWFs
aXplZCA9IGZhbHNlOwotZnVuY3Rpb24gcHJlUnVuKCkgewotICAvLyBjb21wYXRpYmlsaXR5IC0g
bWVyZ2UgaW4gYW55dGhpbmcgZnJvbSBNb2R1bGVbJ3ByZVJ1biddIGF0IHRoaXMgdGltZQotICBp
ZiAoTW9kdWxlWydwcmVSdW4nXSkgewotICAgIGlmICh0eXBlb2YgTW9kdWxlWydwcmVSdW4nXSA9
PSAnZnVuY3Rpb24nKSBNb2R1bGVbJ3ByZVJ1biddID0gW01vZHVsZVsncHJlUnVuJ11dOwotICAg
IHdoaWxlIChNb2R1bGVbJ3ByZVJ1biddLmxlbmd0aCkgewotICAgICAgYWRkT25QcmVSdW4oTW9k
dWxlWydwcmVSdW4nXS5zaGlmdCgpKTsKLSAgICB9Ci0gIH0KLSAgY2FsbFJ1bnRpbWVDYWxsYmFj
a3MoX19BVFBSRVJVTl9fKTsKLX0KLWZ1bmN0aW9uIGVuc3VyZUluaXRSdW50aW1lKCkgewotICBp
ZiAocnVudGltZUluaXRpYWxpemVkKSByZXR1cm47Ci0gIHJ1bnRpbWVJbml0aWFsaXplZCA9IHRy
dWU7Ci0gIGNhbGxSdW50aW1lQ2FsbGJhY2tzKF9fQVRJTklUX18pOwotfQotZnVuY3Rpb24gcHJl
TWFpbigpIHsKLSAgY2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVE1BSU5fXyk7Ci19Ci1mdW5jdGlv
biBleGl0UnVudGltZSgpIHsKLSAgY2FsbFJ1bnRpbWVDYWxsYmFja3MoX19BVEVYSVRfXyk7Ci19
Ci1mdW5jdGlvbiBwb3N0UnVuKCkgewotICAvLyBjb21wYXRpYmlsaXR5IC0gbWVyZ2UgaW4gYW55
dGhpbmcgZnJvbSBNb2R1bGVbJ3Bvc3RSdW4nXSBhdCB0aGlzIHRpbWUKLSAgaWYgKE1vZHVsZVsn
cG9zdFJ1biddKSB7Ci0gICAgaWYgKHR5cGVvZiBNb2R1bGVbJ3Bvc3RSdW4nXSA9PSAnZnVuY3Rp
b24nKSBNb2R1bGVbJ3Bvc3RSdW4nXSA9IFtNb2R1bGVbJ3Bvc3RSdW4nXV07Ci0gICAgd2hpbGUg
KE1vZHVsZVsncG9zdFJ1biddLmxlbmd0aCkgewotICAgICAgYWRkT25Qb3N0UnVuKE1vZHVsZVsn
cG9zdFJ1biddLnNoaWZ0KCkpOwotICAgIH0KLSAgfQotICBjYWxsUnVudGltZUNhbGxiYWNrcyhf
X0FUUE9TVFJVTl9fKTsKLX0KLWZ1bmN0aW9uIGFkZE9uUHJlUnVuKGNiKSB7Ci0gIF9fQVRQUkVS
VU5fXy51bnNoaWZ0KGNiKTsKLX0KLU1vZHVsZVsnYWRkT25QcmVSdW4nXSA9IE1vZHVsZS5hZGRP
blByZVJ1biA9IGFkZE9uUHJlUnVuOwotZnVuY3Rpb24gYWRkT25Jbml0KGNiKSB7Ci0gIF9fQVRJ
TklUX18udW5zaGlmdChjYik7Ci19Ci1Nb2R1bGVbJ2FkZE9uSW5pdCddID0gTW9kdWxlLmFkZE9u
SW5pdCA9IGFkZE9uSW5pdDsKLWZ1bmN0aW9uIGFkZE9uUHJlTWFpbihjYikgewotICBfX0FUTUFJ
Tl9fLnVuc2hpZnQoY2IpOwotfQotTW9kdWxlWydhZGRPblByZU1haW4nXSA9IE1vZHVsZS5hZGRP
blByZU1haW4gPSBhZGRPblByZU1haW47Ci1mdW5jdGlvbiBhZGRPbkV4aXQoY2IpIHsKLSAgX19B
VEVYSVRfXy51bnNoaWZ0KGNiKTsKLX0KLU1vZHVsZVsnYWRkT25FeGl0J10gPSBNb2R1bGUuYWRk
T25FeGl0ID0gYWRkT25FeGl0OwotZnVuY3Rpb24gYWRkT25Qb3N0UnVuKGNiKSB7Ci0gIF9fQVRQ
T1NUUlVOX18udW5zaGlmdChjYik7Ci19Ci1Nb2R1bGVbJ2FkZE9uUG9zdFJ1biddID0gTW9kdWxl
LmFkZE9uUG9zdFJ1biA9IGFkZE9uUG9zdFJ1bjsKLS8vIFRvb2xzCi0vLyBUaGlzIHByb2Nlc3Nl
cyBhIEpTIHN0cmluZyBpbnRvIGEgQy1saW5lIGFycmF5IG9mIG51bWJlcnMsIDAtdGVybWluYXRl
ZC4KLS8vIEZvciBMTFZNLW9yaWdpbmF0aW5nIHN0cmluZ3MsIHNlZSBwYXJzZXIuanM6cGFyc2VM
TFZNU3RyaW5nIGZ1bmN0aW9uCi1mdW5jdGlvbiBpbnRBcnJheUZyb21TdHJpbmcoc3RyaW5neSwg
ZG9udEFkZE51bGwsIGxlbmd0aCAvKiBvcHRpb25hbCAqLykgewotICB2YXIgcmV0ID0gKG5ldyBS
dW50aW1lLlVURjhQcm9jZXNzb3IoKSkucHJvY2Vzc0pTU3RyaW5nKHN0cmluZ3kpOwotICBpZiAo
bGVuZ3RoKSB7Ci0gICAgcmV0Lmxlbmd0aCA9IGxlbmd0aDsKLSAgfQotICBpZiAoIWRvbnRBZGRO
dWxsKSB7Ci0gICAgcmV0LnB1c2goMCk7Ci0gIH0KLSAgcmV0dXJuIHJldDsKLX0KLU1vZHVsZVsn
aW50QXJyYXlGcm9tU3RyaW5nJ10gPSBpbnRBcnJheUZyb21TdHJpbmc7Ci1mdW5jdGlvbiBpbnRB
cnJheVRvU3RyaW5nKGFycmF5KSB7Ci0gIHZhciByZXQgPSBbXTsKLSAgZm9yICh2YXIgaSA9IDA7
IGkgPCBhcnJheS5sZW5ndGg7IGkrKykgewotICAgIHZhciBjaHIgPSBhcnJheVtpXTsKLSAgICBp
ZiAoY2hyID4gMHhGRikgewotICAgICAgY2hyICY9IDB4RkY7Ci0gICAgfQotICAgIHJldC5wdXNo
KFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyKSk7Ci0gIH0KLSAgcmV0dXJuIHJldC5qb2luKCcnKTsK
LX0KLU1vZHVsZVsnaW50QXJyYXlUb1N0cmluZyddID0gaW50QXJyYXlUb1N0cmluZzsKLS8vIFdy
aXRlIGEgSmF2YXNjcmlwdCBhcnJheSB0byBzb21ld2hlcmUgaW4gdGhlIGhlYXAKLWZ1bmN0aW9u
IHdyaXRlU3RyaW5nVG9NZW1vcnkoc3RyaW5nLCBidWZmZXIsIGRvbnRBZGROdWxsKSB7Ci0gIHZh
ciBhcnJheSA9IGludEFycmF5RnJvbVN0cmluZyhzdHJpbmcsIGRvbnRBZGROdWxsKTsKLSAgdmFy
IGkgPSAwOwotICB3aGlsZSAoaSA8IGFycmF5Lmxlbmd0aCkgewotICAgIHZhciBjaHIgPSBhcnJh
eVtpXTsKLSAgICBIRUFQOFsoKChidWZmZXIpKyhpKSl8MCldPWNocgotICAgIGkgPSBpICsgMTsK
LSAgfQotfQotTW9kdWxlWyd3cml0ZVN0cmluZ1RvTWVtb3J5J10gPSB3cml0ZVN0cmluZ1RvTWVt
b3J5OwotZnVuY3Rpb24gd3JpdGVBcnJheVRvTWVtb3J5KGFycmF5LCBidWZmZXIpIHsKLSAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykgewotICAgIEhFQVA4WygoKGJ1ZmZl
cikrKGkpKXwwKV09YXJyYXlbaV07Ci0gIH0KLX0KLU1vZHVsZVsnd3JpdGVBcnJheVRvTWVtb3J5
J10gPSB3cml0ZUFycmF5VG9NZW1vcnk7Ci1mdW5jdGlvbiB1blNpZ24odmFsdWUsIGJpdHMsIGln
bm9yZSwgc2lnKSB7Ci0gIGlmICh2YWx1ZSA+PSAwKSB7Ci0gICAgcmV0dXJuIHZhbHVlOwotICB9
Ci0gIHJldHVybiBiaXRzIDw9IDMyID8gMipNYXRoLmFicygxIDw8IChiaXRzLTEpKSArIHZhbHVl
IC8vIE5lZWQgc29tZSB0cmlja2VyeSwgc2luY2UgaWYgYml0cyA9PSAzMiwgd2UgYXJlIHJpZ2h0
IGF0IHRoZSBsaW1pdCBvZiB0aGUgYml0cyBKUyB1c2VzIGluIGJpdHNoaWZ0cwotICAgICAgICAg
ICAgICAgICAgICA6IE1hdGgucG93KDIsIGJpdHMpICAgICAgICAgKyB2YWx1ZTsKLX0KLWZ1bmN0
aW9uIHJlU2lnbih2YWx1ZSwgYml0cywgaWdub3JlLCBzaWcpIHsKLSAgaWYgKHZhbHVlIDw9IDAp
IHsKLSAgICByZXR1cm4gdmFsdWU7Ci0gIH0KLSAgdmFyIGhhbGYgPSBiaXRzIDw9IDMyID8gTWF0
aC5hYnMoMSA8PCAoYml0cy0xKSkgLy8gYWJzIGlzIG5lZWRlZCBpZiBiaXRzID09IDMyCi0gICAg
ICAgICAgICAgICAgICAgICAgICA6IE1hdGgucG93KDIsIGJpdHMtMSk7Ci0gIGlmICh2YWx1ZSA+
PSBoYWxmICYmIChiaXRzIDw9IDMyIHx8IHZhbHVlID4gaGFsZikpIHsgLy8gZm9yIGh1Z2UgdmFs
dWVzLCB3ZSBjYW4gaGl0IHRoZSBwcmVjaXNpb24gbGltaXQgYW5kIGFsd2F5cyBnZXQgdHJ1ZSBo
ZXJlLiBzbyBkb24ndCBkbyB0aGF0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gYnV0LCBpbiBnZW5lcmFsIHRoZXJlIGlzIG5vIHBlcmZl
Y3Qgc29sdXRpb24gaGVyZS4gV2l0aCA2NC1iaXQgaW50cywgd2UgZ2V0IHJvdW5kaW5nIGFuZCBl
cnJvcnMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBUT0RPOiBJbiBpNjQgbW9kZSAxLCByZXNpZ24gdGhlIHR3byBwYXJ0cyBzZXBhcmF0
ZWx5IGFuZCBzYWZlbHkKLSAgICB2YWx1ZSA9IC0yKmhhbGYgKyB2YWx1ZTsgLy8gQ2Fubm90IGJp
dHNoaWZ0IGhhbGYsIGFzIGl0IG1heSBiZSBhdCB0aGUgbGltaXQgb2YgdGhlIGJpdHMgSlMgdXNl
cyBpbiBiaXRzaGlmdHMKLSAgfQotICByZXR1cm4gdmFsdWU7Ci19Ci1pZiAoIU1hdGhbJ2ltdWwn
XSkgTWF0aFsnaW11bCddID0gZnVuY3Rpb24oYSwgYikgewotICB2YXIgYWggID0gYSA+Pj4gMTY7
Ci0gIHZhciBhbCA9IGEgJiAweGZmZmY7Ci0gIHZhciBiaCAgPSBiID4+PiAxNjsKLSAgdmFyIGJs
ID0gYiAmIDB4ZmZmZjsKLSAgcmV0dXJuIChhbCpibCArICgoYWgqYmwgKyBhbCpiaCkgPDwgMTYp
KXwwOwotfTsKLU1hdGguaW11bCA9IE1hdGhbJ2ltdWwnXTsKLS8vIEEgY291bnRlciBvZiBkZXBl
bmRlbmNpZXMgZm9yIGNhbGxpbmcgcnVuKCkuIElmIHdlIG5lZWQgdG8KLS8vIGRvIGFzeW5jaHJv
bm91cyB3b3JrIGJlZm9yZSBydW5uaW5nLCBpbmNyZW1lbnQgdGhpcyBhbmQKLS8vIGRlY3JlbWVu
dCBpdC4gSW5jcmVtZW50aW5nIG11c3QgaGFwcGVuIGluIGEgcGxhY2UgbGlrZQotLy8gUFJFX1JV
Tl9BRERJVElPTlMgKHVzZWQgYnkgZW1jYyB0byBhZGQgZmlsZSBwcmVsb2FkaW5nKS4KLS8vIE5v
dGUgdGhhdCB5b3UgY2FuIGFkZCBkZXBlbmRlbmNpZXMgaW4gcHJlUnVuLCBldmVuIHRob3VnaAot
Ly8gaXQgaGFwcGVucyByaWdodCBiZWZvcmUgcnVuIC0gcnVuIHdpbGwgYmUgcG9zdHBvbmVkIHVu
dGlsCi0vLyB0aGUgZGVwZW5kZW5jaWVzIGFyZSBtZXQuCi12YXIgcnVuRGVwZW5kZW5jaWVzID0g
MDsKLXZhciBydW5EZXBlbmRlbmN5VHJhY2tpbmcgPSB7fTsKLXZhciBjYWxsZWRJbml0ID0gZmFs
c2UsIGNhbGxlZFJ1biA9IGZhbHNlOwotdmFyIHJ1bkRlcGVuZGVuY3lXYXRjaGVyID0gbnVsbDsK
LWZ1bmN0aW9uIGFkZFJ1bkRlcGVuZGVuY3koaWQpIHsKLSAgcnVuRGVwZW5kZW5jaWVzKys7Ci0g
IGlmIChNb2R1bGVbJ21vbml0b3JSdW5EZXBlbmRlbmNpZXMnXSkgewotICAgIE1vZHVsZVsnbW9u
aXRvclJ1bkRlcGVuZGVuY2llcyddKHJ1bkRlcGVuZGVuY2llcyk7Ci0gIH0KLSAgaWYgKGlkKSB7
Ci0gICAgYXNzZXJ0KCFydW5EZXBlbmRlbmN5VHJhY2tpbmdbaWRdKTsKLSAgICBydW5EZXBlbmRl
bmN5VHJhY2tpbmdbaWRdID0gMTsKLSAgfSBlbHNlIHsKLSAgICBNb2R1bGUucHJpbnRFcnIoJ3dh
cm5pbmc6IHJ1biBkZXBlbmRlbmN5IGFkZGVkIHdpdGhvdXQgSUQnKTsKLSAgfQotfQotTW9kdWxl
WydhZGRSdW5EZXBlbmRlbmN5J10gPSBhZGRSdW5EZXBlbmRlbmN5OwotZnVuY3Rpb24gcmVtb3Zl
UnVuRGVwZW5kZW5jeShpZCkgewotICBydW5EZXBlbmRlbmNpZXMtLTsKLSAgaWYgKE1vZHVsZVsn
bW9uaXRvclJ1bkRlcGVuZGVuY2llcyddKSB7Ci0gICAgTW9kdWxlWydtb25pdG9yUnVuRGVwZW5k
ZW5jaWVzJ10ocnVuRGVwZW5kZW5jaWVzKTsKLSAgfQotICBpZiAoaWQpIHsKLSAgICBhc3NlcnQo
cnVuRGVwZW5kZW5jeVRyYWNraW5nW2lkXSk7Ci0gICAgZGVsZXRlIHJ1bkRlcGVuZGVuY3lUcmFj
a2luZ1tpZF07Ci0gIH0gZWxzZSB7Ci0gICAgTW9kdWxlLnByaW50RXJyKCd3YXJuaW5nOiBydW4g
ZGVwZW5kZW5jeSByZW1vdmVkIHdpdGhvdXQgSUQnKTsKLSAgfQotICBpZiAocnVuRGVwZW5kZW5j
aWVzID09IDApIHsKLSAgICBpZiAocnVuRGVwZW5kZW5jeVdhdGNoZXIgIT09IG51bGwpIHsKLSAg
ICAgIGNsZWFySW50ZXJ2YWwocnVuRGVwZW5kZW5jeVdhdGNoZXIpOwotICAgICAgcnVuRGVwZW5k
ZW5jeVdhdGNoZXIgPSBudWxsOwotICAgIH0gCi0gICAgLy8gSWYgcnVuIGhhcyBuZXZlciBiZWVu
IGNhbGxlZCwgYW5kIHdlIHNob3VsZCBjYWxsIHJ1biAoSU5WT0tFX1JVTiBpcyB0cnVlLCBhbmQg
TW9kdWxlLm5vSW5pdGlhbFJ1biBpcyBub3QgZmFsc2UpCi0gICAgaWYgKCFjYWxsZWRSdW4gJiYg
c2hvdWxkUnVuTm93KSBydW4oKTsKLSAgfQotfQotTW9kdWxlWydyZW1vdmVSdW5EZXBlbmRlbmN5
J10gPSByZW1vdmVSdW5EZXBlbmRlbmN5OwotTW9kdWxlWyJwcmVsb2FkZWRJbWFnZXMiXSA9IHt9
OyAvLyBtYXBzIHVybCB0byBpbWFnZSBkYXRhCi1Nb2R1bGVbInByZWxvYWRlZEF1ZGlvcyJdID0g
e307IC8vIG1hcHMgdXJsIHRvIGF1ZGlvIGRhdGEKLWZ1bmN0aW9uIGxvYWRNZW1vcnlJbml0aWFs
aXplcihmaWxlbmFtZSkgewotICBmdW5jdGlvbiBhcHBseURhdGEoZGF0YSkgewotICAgIEhFQVBV
OC5zZXQoZGF0YSwgU1RBVElDX0JBU0UpOwotICB9Ci0gIC8vIGFsd2F5cyBkbyB0aGlzIGFzeW5j
aHJvbm91c2x5LCB0byBrZWVwIHNoZWxsIGFuZCB3ZWIgYXMgc2ltaWxhciBhcyBwb3NzaWJsZQot
ICBhZGRPblByZVJ1bihmdW5jdGlvbigpIHsKLSAgICBpZiAoRU5WSVJPTk1FTlRfSVNfTk9ERSB8
fCBFTlZJUk9OTUVOVF9JU19TSEVMTCkgewotICAgICAgYXBwbHlEYXRhKE1vZHVsZVsncmVhZEJp
bmFyeSddKGZpbGVuYW1lKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIEJyb3dzZXIuYXN5bmNMb2Fk
KGZpbGVuYW1lLCBmdW5jdGlvbihkYXRhKSB7Ci0gICAgICAgIGFwcGx5RGF0YShkYXRhKTsKLSAg
ICAgIH0sIGZ1bmN0aW9uKGRhdGEpIHsKLSAgICAgICAgdGhyb3cgJ2NvdWxkIG5vdCBsb2FkIG1l
bW9yeSBpbml0aWFsaXplciAnICsgZmlsZW5hbWU7Ci0gICAgICB9KTsKLSAgICB9Ci0gIH0pOwot
fQotLy8gPT09IEJvZHkgPT09Ci1TVEFUSUNfQkFTRSA9IDg7Ci1TVEFUSUNUT1AgPSBTVEFUSUNf
QkFTRSArIDE2MzkyOwotdmFyIF9zdGRvdXQ7Ci12YXIgX3N0ZGluOwotdmFyIF9zdGRlcnI7Ci0v
KiBnbG9iYWwgaW5pdGlhbGl6ZXJzICovIF9fQVRJTklUX18ucHVzaCh7IGZ1bmM6IGZ1bmN0aW9u
KCkgeyBydW5Qb3N0U2V0cygpIH0gfSx7IGZ1bmM6IGZ1bmN0aW9uKCkgeyBfX0dMT0JBTF9fSV9h
KCkgfSB9LHsgZnVuYzogZnVuY3Rpb24oKSB7IF9fR0xPQkFMX19JX2E4KCkgfSB9KTsKLXZhciBf
X19mc211ODsKLXZhciBfX19kc29faGFuZGxlOwotdmFyIF9fWlRWTjEwX19jeHhhYml2MTIwX19z
aV9jbGFzc190eXBlX2luZm9FOwotdmFyIF9fWlRWTjEwX19jeHhhYml2MTE3X19jbGFzc190eXBl
X2luZm9FOwotdmFyIF9fWk5TdDNfXzExMl9fcnNfZGVmYXVsdEQxRXY7Ci12YXIgX19aTlN0MTNy
dW50aW1lX2Vycm9yQzFFUEtjOwotdmFyIF9fWk5TdDEzcnVudGltZV9lcnJvckQxRXY7Ci12YXIg
X19aTlN0MTJsZW5ndGhfZXJyb3JEMUV2OwotdmFyIF9fWk5TdDNfXzE2bG9jYWxlQzFFdjsKLXZh
ciBfX1pOU3QzX18xNmxvY2FsZUMxRVJLUzBfOwotdmFyIF9fWk5TdDNfXzE2bG9jYWxlRDFFdjsK
LXZhciBfX1pOU3Q4YmFkX2Nhc3RDMUV2OwotdmFyIF9fWk5TdDhiYWRfY2FzdEQxRXY7Ci12YXIg
X3N0ZG91dCA9IF9zdGRvdXQ9YWxsb2NhdGUoWzAsMCwwLDAsMCwwLDAsMF0sICJpOCIsIEFMTE9D
X1NUQVRJQyk7Ci12YXIgX3N0ZGluID0gX3N0ZGluPWFsbG9jYXRlKFswLDAsMCwwLDAsMCwwLDBd
LCAiaTgiLCBBTExPQ19TVEFUSUMpOwotdmFyIF9zdGRlcnIgPSBfc3RkZXJyPWFsbG9jYXRlKFsw
LDAsMCwwLDAsMCwwLDBdLCAiaTgiLCBBTExPQ19TVEFUSUMpOwotX19aVFZOMTBfX2N4eGFiaXYx
MjBfX3NpX2NsYXNzX3R5cGVfaW5mb0U9YWxsb2NhdGUoWzAsMCwwLDAsMjAwLDM3LDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwXSwgImk4IiwgQUxMT0NfU1RBVElDKTsKLV9fWlRWTjEwX19jeHhh
Yml2MTE3X19jbGFzc190eXBlX2luZm9FPWFsbG9jYXRlKFswLDAsMCwwLDIxNiwzNywwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMF0sICJpOCIsIEFMTE9DX1NUQVRJQyk7Ci0vKiBtZW1vcnkgaW5p
dGlhbGl6ZXIgKi8gYWxsb2NhdGUoWzAsMCwwLDAsMCwwLDM2LDY0LDAsMCwwLDAsMCwwLDg5LDY0
LDAsMCwwLDAsMCwxMzYsMTk1LDY0LDAsMCwwLDAsMTMyLDIxNSwxNTEsNjUsMCwxMjgsMjI0LDU1
LDEyMSwxOTUsNjUsNjcsMjMsMTEwLDUsMTgxLDE4MSwxODQsMTQ3LDcwLDI0NSwyNDksNjMsMjMz
LDMsNzksNTYsNzcsNTAsMjksNDgsMjQ5LDcyLDExOSwxMzAsOTAsNjAsMTkxLDExNSwxMjcsMjIx
LDc5LDIxLDExNyw3NCwxMTcsMTA4LDAsMCwwLDAsMCw3NCwxMTcsMTEwLDAsMCwwLDAsMCw2NSwx
MTIsMTE0LDAsMCwwLDAsMCw3Nyw5NywxMTQsMCwwLDAsMCwwLDcwLDEwMSw5OCwwLDAsMCwwLDAs
NzQsOTcsMTEwLDAsMCwwLDAsMCw2OCwxMDEsOTksMTAxLDEwOSw5OCwxMDEsMTE0LDAsMCwwLDAs
MCwwLDAsMCw3OCwxMTEsMTE4LDEwMSwxMDksOTgsMTAxLDExNCwwLDAsMCwwLDAsMCwwLDAsNzks
OTksMTE2LDExMSw5OCwxMDEsMTE0LDAsODMsMTAxLDExMiwxMTYsMTAxLDEwOSw5OCwxMDEsMTE0
LDAsMCwwLDAsMCwwLDAsMTE3LDExMCwxMTUsMTE3LDExMiwxMTIsMTExLDExNCwxMTYsMTAxLDEw
MCwzMiwxMDgsMTExLDk5LDk3LDEwOCwxMDEsMzIsMTAyLDExMSwxMTQsMzIsMTE1LDExNiw5Nywx
MTAsMTAwLDk3LDExNCwxMDAsMzIsMTA1LDExMCwxMTIsMTE3LDExNiwwLDAsMCw2NSwxMTcsMTAz
LDExNywxMTUsMTE2LDAsMCw3NCwxMTcsMTA4LDEyMSwwLDAsMCwwLDc0LDExNywxMTAsMTAxLDAs
MCwwLDAsNzcsOTcsMTIxLDAsMCwwLDAsMCw2NSwxMTIsMTE0LDEwNSwxMDgsMCwwLDAsNzcsOTcs
MTE0LDk5LDEwNCwwLDAsMCw3MCwxMDEsOTgsMTE0LDExNyw5NywxMTQsMTIxLDAsMCwwLDAsMCww
LDAsMCw3NCw5NywxMTAsMTE3LDk3LDExNCwxMjEsMCw2OCwwLDAsMCwxMDEsMCwwLDAsOTksMCww
LDAsMCwwLDAsMCw3OCwwLDAsMCwxMTEsMCwwLDAsMTE4LDAsMCwwLDAsMCwwLDAsNzksMCwwLDAs
OTksMCwwLDAsMTE2LDAsMCwwLDAsMCwwLDAsODMsMCwwLDAsMTAxLDAsMCwwLDExMiwwLDAsMCww
LDAsMCwwLDk4LDk3LDExNSwxMDUsOTksOTUsMTE1LDExNiwxMTQsMTA1LDExMCwxMDMsMCwwLDAs
MCw2NSwwLDAsMCwxMTcsMCwwLDAsMTAzLDAsMCwwLDAsMCwwLDAsNzQsMCwwLDAsMTE3LDAsMCww
LDEwOCwwLDAsMCwwLDAsMCwwLDc0LDAsMCwwLDExNywwLDAsMCwxMTAsMCwwLDAsMCwwLDAsMCw3
NywwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCw2NSwwLDAsMCwxMTIsMCwwLDAsMTE0
LDAsMCwwLDAsMCwwLDAsNzcsMCwwLDAsOTcsMCwwLDAsMTE0LDAsMCwwLDAsMCwwLDAsNzAsMCww
LDAsMTAxLDAsMCwwLDk4LDAsMCwwLDAsMCwwLDAsNzQsMCwwLDAsOTcsMCwwLDAsMTEwLDAsMCww
LDAsMCwwLDAsNjgsMCwwLDAsMTAxLDAsMCwwLDk5LDAsMCwwLDEwMSwwLDAsMCwxMDksMCwwLDAs
OTgsMCwwLDAsMTAxLDAsMCwwLDExNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNzgsMCwwLDAsMTEx
LDAsMCwwLDExOCwwLDAsMCwxMDEsMCwwLDAsMTA5LDAsMCwwLDk4LDAsMCwwLDEwMSwwLDAsMCwx
MTQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDc5LDAsMCwwLDk5LDAsMCwwLDExNiwwLDAsMCwxMTEs
MCwwLDAsOTgsMCwwLDAsMTAxLDAsMCwwLDExNCwwLDAsMCwwLDAsMCwwLDgzLDAsMCwwLDEwMSww
LDAsMCwxMTIsMCwwLDAsMTE2LDAsMCwwLDEwMSwwLDAsMCwxMDksMCwwLDAsOTgsMCwwLDAsMTAx
LDAsMCwwLDExNCwwLDAsMCwwLDAsMCwwLDY1LDAsMCwwLDExNywwLDAsMCwxMDMsMCwwLDAsMTE3
LDAsMCwwLDExNSwwLDAsMCwxMTYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDc0LDAsMCwwLDExNyww
LDAsMCwxMDgsMCwwLDAsMTIxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw3NCwwLDAsMCwxMTcsMCww
LDAsMTEwLDAsMCwwLDEwMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjUsMCwwLDAsMTEyLDAsMCww
LDExNCwwLDAsMCwxMDUsMCwwLDAsMTA4LDAsMCwwLDAsMCwwLDAsNzcsMCwwLDAsOTcsMCwwLDAs
MTE0LDAsMCwwLDk5LDAsMCwwLDEwNCwwLDAsMCwwLDAsMCwwLDcwLDAsMCwwLDEwMSwwLDAsMCw5
OCwwLDAsMCwxMTQsMCwwLDAsMTE3LDAsMCwwLDk3LDAsMCwwLDExNCwwLDAsMCwxMjEsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDc0LDAsMCwwLDk3LDAsMCwwLDExMCwwLDAsMCwxMTcsMCwwLDAsOTcs
MCwwLDAsMTE0LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDgwLDc3LDAsMCwwLDAsMCwwLDY1LDc3
LDAsMCwwLDAsMCwwLDgwLDAsMCwwLDc3LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw2NSwwLDAsMCw3
NywwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTA4LDExMSw5OSw5NywxMDgsMTAxLDMyLDExMCwxMTEs
MTE2LDMyLDExNSwxMTcsMTEyLDExMiwxMTEsMTE0LDExNiwxMDEsMTAwLDAsMCwwLDAsMzcsMCww
LDAsNzMsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsNzcsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAs
ODMsMCwwLDAsMzIsMCwwLDAsMzcsMCwwLDAsMTEyLDAsMCwwLDAsMCwwLDAsMzcsNzMsNTgsMzcs
NzcsNTgsMzcsODMsMzIsMzcsMTEyLDAsMCwwLDAsMCwzNywwLDAsMCw5NywwLDAsMCwzMiwwLDAs
MCwzNywwLDAsMCw5OCwwLDAsMCwzMiwwLDAsMCwzNywwLDAsMCwxMDAsMCwwLDAsMzIsMCwwLDAs
MzcsMCwwLDAsNzIsMCwwLDAsNTgsMCwwLDAsMzcsMCwwLDAsNzcsMCwwLDAsNTgsMCwwLDAsMzcs
MCwwLDAsODMsMCwwLDAsMzIsMCwwLDAsMzcsMCwwLDAsODksMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDM3LDk3LDMyLDM3LDk4LDMyLDM3LDEwMCwzMiwzNyw3Miw1OCwzNyw3Nyw1OCwzNyw4MywzMiwz
Nyw4OSwwLDAsMCwwLDM3LDAsMCwwLDcyLDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDc3LDAsMCww
LDU4LDAsMCwwLDM3LDAsMCwwLDgzLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzNyw3Miw1OCwzNyw3
Nyw1OCwzNyw4MywwLDAsMCwwLDAsMCwwLDAsMTE1LDExNiwxMDAsNTgsNTgsOTgsOTcsMTAwLDk1
LDk3LDEwOCwxMDgsMTExLDk5LDAsMCwzNywwLDAsMCwxMDksMCwwLDAsNDcsMCwwLDAsMzcsMCww
LDAsMTAwLDAsMCwwLDQ3LDAsMCwwLDM3LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MzcsMTA5LDQ3LDM3LDEwMCw0NywzNywxMjEsMCwwLDAsMCwwLDAsMCwwLDEwMiwwLDAsMCw5Nyww
LDAsMCwxMDgsMCwwLDAsMTE1LDAsMCwwLDEwMSwwLDAsMCwwLDAsMCwwLDEwMiw5NywxMDgsMTE1
LDEwMSwwLDAsMCwxMTYsMCwwLDAsMTE0LDAsMCwwLDExNywwLDAsMCwxMDEsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDExNiwxMTQsMTE3LDEwMSwwLDAsMCwwLDU4LDMyLDAsMCwwLDAsMCwwLDEwNSwx
MTEsMTE1LDk1LDk4LDk3LDExNSwxMDEsNTgsNTgsOTksMTA4LDEwMSw5NywxMTQsMCwzNywxMTIs
MCwwLDAsMCwwLDAsMTE1LDExNiwxMDAsNTgsNTgsOTgsOTcsMTAwLDk1LDk5LDk3LDExNSwxMTYs
MCwwLDAsNjcsMCwwLDAsMCwwLDAsMCwxMTgsMTAxLDk5LDExNiwxMTEsMTE0LDAsMCwzNyw0Niw0
OCw3NiwxMDIsMCwwLDAsMTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMDMsMTAxLDExNiwzMiwxMDEs
MTE0LDExNCwxMTEsMTE0LDAsODMsOTcsMTE2LDAsMCwwLDAsMCw3MCwxMTQsMTA1LDAsMCwwLDAs
MCw4NCwxMDQsMTE3LDAsMCwwLDAsMCwzNyw3NiwxMDIsMCwwLDAsMCwwLDEwNSwxMTEsMTE1LDEx
NiwxMTQsMTAxLDk3LDEwOSwwLDAsMCwwLDAsMCwwLDAsODcsMTAxLDEwMCwwLDAsMCwwLDAsODQs
MTE3LDEwMSwwLDAsMCwwLDAsNzcsMTExLDExMCwwLDAsMCwwLDAsODMsMTE3LDExMCwwLDAsMCww
LDAsODMsOTcsMTE2LDExNywxMTQsMTAwLDk3LDEyMSwwLDAsMCwwLDAsMCwwLDAsNzAsMTE0LDEw
NSwxMDAsOTcsMTIxLDAsMCw4NCwxMDQsMTE3LDExNCwxMTUsMTAwLDk3LDEyMSwwLDAsMCwwLDAs
MCwwLDAsODcsMTAxLDEwMCwxMTAsMTAxLDExNSwxMDAsOTcsMTIxLDAsMCwwLDAsMCwwLDAsODQs
MTE3LDEwMSwxMTUsMTAwLDk3LDEyMSwwLDc3LDExMSwxMTAsMTAwLDk3LDEyMSwwLDAsODMsMTE3
LDExMCwxMDAsOTcsMTIxLDAsMCw4MywwLDAsMCw5NywwLDAsMCwxMTYsMCwwLDAsMCwwLDAsMCw3
MCwwLDAsMCwxMTQsMCwwLDAsMTA1LDAsMCwwLDAsMCwwLDAsODQsMCwwLDAsMTA0LDAsMCwwLDEx
NywwLDAsMCwwLDAsMCwwLDg3LDAsMCwwLDEwMSwwLDAsMCwxMDAsMCwwLDAsMCwwLDAsMCw4NCww
LDAsMCwxMTcsMCwwLDAsMTAxLDAsMCwwLDAsMCwwLDAsNzcsMCwwLDAsMTExLDAsMCwwLDExMCww
LDAsMCwwLDAsMCwwLDExNywxMTAsMTE1LDExMiwxMDEsOTksMTA1LDEwMiwxMDUsMTAxLDEwMCwz
MiwxMDUsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTUsOTksOTcsMTE2LDEwMSwxMDMsMTEx
LDExNCwxMjEsMzIsMTAxLDExNCwxMTQsMTExLDExNCwwLDAsMCwwLDAsODMsMCwwLDAsMTE3LDAs
MCwwLDExMCwwLDAsMCwwLDAsMCwwLDgzLDAsMCwwLDk3LDAsMCwwLDExNiwwLDAsMCwxMTcsMCww
LDAsMTE0LDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDcwLDAsMCwwLDExNCwwLDAsMCwxMDUsMCwwLDAsMTAwLDAsMCwwLDk3LDAsMCwwLDEyMSwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsODQsMCwwLDAsMTA0LDAsMCwwLDExNywwLDAsMCwxMTQsMCwwLDAs
MTE1LDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDg3
LDAsMCwwLDEwMSwwLDAsMCwxMDAsMCwwLDAsMTEwLDAsMCwwLDEwMSwwLDAsMCwxMTUsMCwwLDAs
MTAwLDAsMCwwLDk3LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDg0LDAsMCwwLDExNywwLDAsMCwx
MDEsMCwwLDAsMTE1LDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAsMCwwLDAsMCw3
NywwLDAsMCwxMTEsMCwwLDAsMTEwLDAsMCwwLDEwMCwwLDAsMCw5NywwLDAsMCwxMjEsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDgzLDAsMCwwLDExNywwLDAsMCwxMTAsMCwwLDAsMTAwLDAsMCwwLDk3
LDAsMCwwLDEyMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjgsMTAxLDk5LDAsMCwwLDAsMCw3OCwx
MTEsMTE4LDAsMCwwLDAsMCw3OSw5OSwxMTYsMCwwLDAsMCwwLDgzLDEwMSwxMTIsMCwwLDAsMCww
LDY1LDExNywxMDMsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsMCwwLDAsMCww
LDAsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsMCwwLDAsMCwwLDAsMzcsMCwwLDAsODks
MCwwLDAsNDUsMCwwLDAsMzcsMCwwLDAsMTA5LDAsMCwwLDQ1LDAsMCwwLDM3LDAsMCwwLDEwMCww
LDAsMCwzNywwLDAsMCw3MiwwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw3NywwLDAsMCw1OCwwLDAs
MCwzNywwLDAsMCw4MywwLDAsMCwzNywwLDAsMCw3MiwwLDAsMCw1OCwwLDAsMCwzNywwLDAsMCw3
NywwLDAsMCwwLDAsMCwwLDM3LDAsMCwwLDczLDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDc3LDAs
MCwwLDU4LDAsMCwwLDM3LDAsMCwwLDgzLDAsMCwwLDMyLDAsMCwwLDM3LDAsMCwwLDExMiwwLDAs
MCwwLDAsMCwwLDM3LDAsMCwwLDEwOSwwLDAsMCw0NywwLDAsMCwzNywwLDAsMCwxMDAsMCwwLDAs
NDcsMCwwLDAsMzcsMCwwLDAsMTIxLDAsMCwwLDM3LDAsMCwwLDcyLDAsMCwwLDU4LDAsMCwwLDM3
LDAsMCwwLDc3LDAsMCwwLDU4LDAsMCwwLDM3LDAsMCwwLDgzLDAsMCwwLDM3LDcyLDU4LDM3LDc3
LDU4LDM3LDgzLDM3LDcyLDU4LDM3LDc3LDAsMCwwLDM3LDczLDU4LDM3LDc3LDU4LDM3LDgzLDMy
LDM3LDExMiwwLDAsMCwwLDAsMzcsODksNDUsMzcsMTA5LDQ1LDM3LDEwMCwzNywxMDksNDcsMzcs
MTAwLDQ3LDM3LDEyMSwzNyw3Miw1OCwzNyw3Nyw1OCwzNyw4MywzNywwLDAsMCwwLDAsMCwwLDM3
LDExMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDIyNCwzMSwwLDAsMzAsMCwwLDAsMTE2LDAsMCwwLDk4
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjQwLDMxLDAsMCwxOTYsMCww
LDAsMTY0LDAsMCwwLDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwz
MiwwLDAsNzAsMCwwLDAsNiwxLDAsMCwzOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDE2LDMyLDAsMCw5NCwwLDAsMCw4LDAsMCwwLDExMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDMyLDMyLDAsMCw5NCwwLDAsMCwyMCwwLDAsMCwxMTAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw1NiwzMiwwLDAsMTY4LDAsMCwwLDg0LDAs
MCwwLDQ4LDAsMCwwLDIsMCwwLDAsOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDg4LDMyLDAsMCwyMzAsMCwwLDAsMTg2LDAsMCwwLDQ4LDAsMCwwLDQsMCwwLDAsMTQsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMjAsMzIsMCwwLDE2MiwwLDAsMCwx
ODgsMCwwLDAsNDgsMCwwLDAsOCwwLDAsMCwxMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDE1MiwzMiwwLDAsMjU0LDAsMCwwLDE0MCwwLDAsMCw0OCwwLDAsMCw2LDAsMCww
LDEwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNTYsMzMsMCwwLDI1Miww
LDAsMCwxNiwwLDAsMCw0OCwwLDAsMCwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDg4
LDMzLDAsMCwxNjAsMCwwLDAsMTA4LDAsMCwwLDQ4LDAsMCwwLDQsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMTIwLDMzLDAsMCwzOCwwLDAsMCwxMTAsMCwwLDAsNDgsMCwwLDAsMTIwLDAs
MCwwLDQsMCwwLDAsMzIsMCwwLDAsNiwwLDAsMCwyMCwwLDAsMCw1NiwwLDAsMCwyLDAsMCwwLDI0
OCwyNTUsMjU1LDI1NSwxMjAsMzMsMCwwLDIyLDAsMCwwLDgsMCwwLDAsMzIsMCwwLDAsMTIsMCww
LDAsMiwwLDAsMCwzMCwwLDAsMCwxMjQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwxNjAsMzMsMCwwLDI0MiwwLDAsMCwyMjIsMCwwLDAsNDgsMCwwLDAsMjAsMCwwLDAsMTYs
MCwwLDAsNjAsMCwwLDAsMjYsMCwwLDAsMTgsMCwwLDAsMiwwLDAsMCw0LDAsMCwwLDI0OCwyNTUs
MjU1LDI1NSwxNjAsMzMsMCwwLDcwLDAsMCwwLDEwNCwwLDAsMCwxMTYsMCwwLDAsMTIyLDAsMCww
LDY0LDAsMCwwLDQ0LDAsMCwwLDU0LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMjAwLDMzLDAsMCw3OCwwLDAsMCwxOTAsMCwwLDAsNDgsMCwwLDAsNDgsMCwwLDAsNDAsMCww
LDAsOCwwLDAsMCwzOCwwLDAsMCw0OCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyMTYs
MzMsMCwwLDU4LDAsMCwwLDY0LDAsMCwwLDQ4LDAsMCwwLDQyLDAsMCwwLDg0LDAsMCwwLDEyLDAs
MCwwLDU0LDAsMCwwLDIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjMyLDMzLDAsMCwy
NDYsMCwwLDAsMiwwLDAsMCw0OCwwLDAsMCwyNCwwLDAsMCwzMCwwLDAsMCw2NCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCw4LDM0LDAsMCw0NiwwLDAsMCwyMDgsMCwwLDAsNDgsMCwwLDAs
MzYsMCwwLDAsMTQsMCwwLDAsMTQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNDAsMzQs
MCwwLDIxMCwwLDAsMCwxMTIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNDgsMzQsMCww
LDI4LDAsMCwwLDEzOCwwLDAsMCwzOCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDY0LDM0LDAsMCw2LDAsMCwwLDE3NCwwLDAsMCw0OCwwLDAsMCw4LDAsMCwwLDYsMCwwLDAs
MTIsMCwwLDAsNCwwLDAsMCwxMCwwLDAsMCw0LDAsMCwwLDIsMCwwLDAsMTIsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw5NiwzNCwwLDAsOTgsMCwwLDAsMTgsMCwwLDAsNDgs
MCwwLDAsMjAsMCwwLDAsMjQsMCwwLDAsMzQsMCwwLDAsMjIsMCwwLDAsMjIsMCwwLDAsOCwwLDAs
MCw2LDAsMCwwLDE4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTI4LDM0
LDAsMCw0MCwwLDAsMCwyNCwwLDAsMCw0OCwwLDAsMCw0OCwwLDAsMCw0NiwwLDAsMCwzOCwwLDAs
MCw0MCwwLDAsMCwzMCwwLDAsMCw0NCwwLDAsMCwzNiwwLDAsMCw1NCwwLDAsMCw1MiwwLDAsMCw1
MCwwLDAsMCwyNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNjAsMzQsMCwwLDUyLDAs
MCwwLDQsMCwwLDAsNDgsMCwwLDAsNzYsMCwwLDAsNzAsMCwwLDAsNjQsMCwwLDAsNjYsMCwwLDAs
NTgsMCwwLDAsNjgsMCwwLDAsNjIsMCwwLDAsMjgsMCwwLDAsNzQsMCwwLDAsNzIsMCwwLDAsNDIs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTkyLDM0LDAsMCw3NCwwLDAsMCw5MiwwLDAs
MCw0OCwwLDAsMCwxNiwwLDAsMCwxMiwwLDAsMCwxMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwyMDgsMzQsMCwwLDI2LDAsMCwwLDE3NiwwLDAsMCw0OCwwLDAsMCwyMiwwLDAsMCwxNCww
LDAsMCwyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIyNCwzNCwwLDAsMjI4LDAsMCww
LDEzMCwwLDAsMCw0OCwwLDAsMCwxNCwwLDAsMCw0LDAsMCwwLDIwLDAsMCwwLDE2LDAsMCwwLDYy
LDAsMCwwLDQsMCwwLDAsNzYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzNSwwLDAs
MTgwLDAsMCwwLDYwLDAsMCwwLDQ4LDAsMCwwLDIsMCwwLDAsOCwwLDAsMCw4LDAsMCwwLDEwNiww
LDAsMCw5NiwwLDAsMCwxOCwwLDAsMCw5NCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwz
MiwzNSwwLDAsMTgwLDAsMCwwLDEzMiwwLDAsMCw0OCwwLDAsMCwxNiwwLDAsMCw2LDAsMCwwLDIs
MCwwLDAsMTI2LDAsMCwwLDQ2LDAsMCwwLDEyLDAsMCwwLDE4LDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDY0LDM1LDAsMCwxODAsMCwwLDAsMTUyLDAsMCwwLDQ4LDAsMCwwLDEwLDAsMCww
LDEyLDAsMCwwLDI0LDAsMCwwLDM0LDAsMCwwLDc0LDAsMCwwLDYsMCwwLDAsNjYsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsOTYsMzUsMCwwLDE4MCwwLDAsMCwzNCwwLDAsMCw0OCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDExMiwzNSwwLDAsNTYsMCwwLDAsMTU2
LDAsMCwwLDQ4LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTI4LDM1LDAs
MCwxODAsMCwwLDAsODAsMCwwLDAsNDgsMCwwLDAsMjAsMCwwLDAsMiwwLDAsMCw0LDAsMCwwLDEw
LDAsMCwwLDE2LDAsMCwwLDI4LDAsMCwwLDIyLDAsMCwwLDYsMCwwLDAsNiwwLDAsMCw4LDAsMCww
LDEwLDAsMCwwLDEwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTYwLDM1
LDAsMCw0LDEsMCwwLDM2LDAsMCwwLDQ4LDAsMCwwLDIsMCwwLDAsNCwwLDAsMCwxOCwwLDAsMCwz
NCwwLDAsMCw4LDAsMCwwLDYsMCwwLDAsMjYsMCwwLDAsMTQsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwyMDgsMzUsMCwwLDY2LDAsMCwwLDIxOCwwLDAsMCw3OCwwLDAsMCwy
LDAsMCwwLDE0LDAsMCwwLDMyLDAsMCwwLDQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwyMjQsMzUsMCwwLDE4MCwwLDAsMCw4NiwwLDAsMCw0OCwwLDAsMCwxMCwwLDAsMCwx
MiwwLDAsMCwyNCwwLDAsMCwzNCwwLDAsMCw3NCwwLDAsMCw2LDAsMCwwLDY2LDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDI0MCwzNSwwLDAsMTgwLDAsMCwwLDIzOCwwLDAsMCw0OCwwLDAs
MCwxMCwwLDAsMCwxMiwwLDAsMCwyNCwwLDAsMCwzNCwwLDAsMCw3NCwwLDAsMCw2LDAsMCwwLDY2
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMzYsMCwwLDEyNiwwLDAsMCwyMzQsMCww
LDAsMTYsMCwwLDAsMjIsMCwwLDAsMTYsMCwwLDAsMTAsMCwwLDAsODgsMCwwLDAsMTAwLDAsMCww
LDMwLDAsMCwwLDI4LDAsMCwwLDI2LDAsMCwwLDI4LDAsMCwwLDQwLDAsMCwwLDIwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDgsMzYsMCwwLDEwLDAsMCwwLDExOCwwLDAsMCw1OCwwLDAs
MCwzOCwwLDAsMCwyOCwwLDAsMCw2LDAsMCwwLDUwLDAsMCwwLDg2LDAsMCwwLDE4LDAsMCwwLDYs
MCwwLDAsMTAsMCwwLDAsMjQsMCwwLDAsMTYsMCwwLDAsMTAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMTYsMzYsMCwwLDEwMCwwLDAsMCwxOTQsMCwwLDAsMiwwLDAsMCwyLDAsMCwwLDE0
LDAsMCwwLDMyLDAsMCwwLDIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNCwwLDAsMCww
LDAsMCwwLDU2LDM2LDAsMCw0NCwwLDAsMCwyMDYsMCwwLDAsMjUyLDI1NSwyNTUsMjU1LDI1Miwy
NTUsMjU1LDI1NSw1NiwzNiwwLDAsMTQ2LDAsMCwwLDEyNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
NCwwLDAsMCwwLDAsMCwwLDgwLDM2LDAsMCwyMTIsMCwwLDAsMjM2LDAsMCwwLDI1MiwyNTUsMjU1
LDI1NSwyNTIsMjU1LDI1NSwyNTUsODAsMzYsMCwwLDEwNiwwLDAsMCwyMDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDgsMCwwLDAsMCwwLDAsMCwxMDQsMzYsMCwwLDg4LDAsMCwwLDgsMSwwLDAsMjQ4
LDI1NSwyNTUsMjU1LDI0OCwyNTUsMjU1LDI1NSwxMDQsMzYsMCwwLDE4MiwwLDAsMCwyMzIsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDgsMCwwLDAsMCwwLDAsMCwxMjgsMzYsMCwwLDEwNCwwLDAsMCwy
MDQsMCwwLDAsMjQ4LDI1NSwyNTUsMjU1LDI0OCwyNTUsMjU1LDI1NSwxMjgsMzYsMCwwLDEzNiww
LDAsMCw1MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNTIsMzYsMCwwLDIwMiwwLDAs
MCwxODQsMCwwLDAsMzgsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxOTIs
MzYsMCwwLDI0OCwwLDAsMCwyMjYsMCwwLDAsNCwwLDAsMCwyMiwwLDAsMCwxNiwwLDAsMCwxMCww
LDAsMCw1OCwwLDAsMCwxMDAsMCwwLDAsMzAsMCwwLDAsMjgsMCwwLDAsMjYsMCwwLDAsMjgsMCww
LDAsNDAsMCwwLDAsMjYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjA4LDM2LDAsMCwx
NTQsMCwwLDAsMTc4LDAsMCwwLDM0LDAsMCwwLDM4LDAsMCwwLDI4LDAsMCwwLDYsMCwwLDAsOTAs
MCwwLDAsODYsMCwwLDAsMTgsMCwwLDAsNiwwLDAsMCwxMCwwLDAsMCwyNCwwLDAsMCwxNiwwLDAs
MCwxNCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDM3LDAsMCwyMjAsMCwwLDAsMTQ0
LDAsMCwwLDQ4LDAsMCwwLDY4LDAsMCwwLDExOCwwLDAsMCw0MCwwLDAsMCw4MCwwLDAsMCw2LDAs
MCwwLDI4LDAsMCwwLDUyLDAsMCwwLDIwLDAsMCwwLDM2LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDMyLDM3LDAsMCwxMDIsMCwwLDAsNTQsMCwwLDAsNDgsMCwwLDAsMTEyLDAsMCwwLDQs
MCwwLDAsNjYsMCwwLDAsNzQsMCwwLDAsNzYsMCwwLDAsMjIsMCwwLDAsMTE0LDAsMCwwLDUwLDAs
MCwwLDEwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDY0LDM3LDAsMCwyMjQsMCwwLDAs
MTE0LDAsMCwwLDQ4LDAsMCwwLDE0LDAsMCwwLDYwLDAsMCwwLDQ2LDAsMCwwLDQyLDAsMCwwLDc4
LDAsMCwwLDUyLDAsMCwwLDkyLDAsMCwwLDU2LDAsMCwwLDMyLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDk2LDM3LDAsMCw3NiwwLDAsMCwxNzIsMCwwLDAsNDgsMCwwLDAsMTAyLDAsMCww
LDEwOCwwLDAsMCwyNiwwLDAsMCw3MiwwLDAsMCwyNCwwLDAsMCwxOCwwLDAsMCw4MCwwLDAsMCw3
MCwwLDAsMCw2OCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNTIsMzcsMCwwLDkwLDAs
MCwwLDY4LDAsMCwwLDYyLDAsMCwwLDIyLDAsMCwwLDE2LDAsMCwwLDEwLDAsMCwwLDg4LDAsMCww
LDEwMCwwLDAsMCwzMCwwLDAsMCw3MiwwLDAsMCw4MiwwLDAsMCwxMiwwLDAsMCw0MCwwLDAsMCwy
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNjgsMzcsMCwwLDE0LDAsMCwwLDIxNCww
LDAsMCw2MCwwLDAsMCwzOCwwLDAsMCwyOCwwLDAsMCw2LDAsMCwwLDUwLDAsMCwwLDg2LDAsMCww
LDE4LDAsMCwwLDU2LDAsMCwwLDI0LDAsMCwwLDQsMCwwLDAsMTYsMCwwLDAsMTAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMTg0LDM3LDAsMCwyNTAsMCwwLDAsMTk4LDAsMCwwLDYyLDAs
MCwwLDE1MCwwLDAsMCw4LDAsMCwwLDIsMCwwLDAsNiwwLDAsMCw0LDAsMCwwLDAsMCwwLDAsMCww
LDAsMCw4MywxMTYsNTcsMTE2LDEyMSwxMTIsMTAxLDk1LDEwNSwxMTAsMTAyLDExMSwwLDAsMCww
LDgzLDExNiw1NywxMDEsMTIwLDk5LDEwMSwxMTIsMTE2LDEwNSwxMTEsMTEwLDAsMCwwLDAsODMs
MTE2LDU3LDk4LDk3LDEwMCw5NSw5NywxMDgsMTA4LDExMSw5OSwwLDAsMCwwLDgzLDExNiw1Niw5
OCw5NywxMDAsOTUsOTksOTcsMTE1LDExNiwwLDAsMCwwLDAsODMsMTE2LDQ5LDUxLDExNCwxMTcs
MTEwLDExNiwxMDUsMTA5LDEwMSw5NSwxMDEsMTE0LDExNCwxMTEsMTE0LDAsMCwwLDAsMCwwLDAs
ODMsMTE2LDQ5LDUwLDEwOCwxMDEsMTEwLDEwMywxMTYsMTA0LDk1LDEwMSwxMTQsMTE0LDExMSwx
MTQsMCwwLDAsMCwwLDAsMCwwLDgzLDExNiw0OSw0OSwxMDgsMTExLDEwMywxMDUsOTksOTUsMTAx
LDExNCwxMTQsMTExLDExNCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NywxMTYsMTA1LDEwOSwx
MDEsOTUsOTgsOTcsMTE1LDEwMSw2OSwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDks
NTcsMTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMTIsMTE3LDExNiw3MywxMTksNzgsODMsOTUsNDks
NTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwx
MTQsOTcsMTE2LDExMSwxMTQsNzMsMTE5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUs
MTE2LDExNCw5NywxMDUsMTE2LDExNSw3MywxMTksNjksNjksNjksNjksNjksNjksMCwwLDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDU3LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTEyLDExNywxMTYs
NzMsOTksNzgsODMsOTUsNDksNTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEw
Miw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMsOTUsNDksNDks
OTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5
LDY5LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NywxMDksMTExLDExMCwxMDEsMTIx
LDk1LDEwMywxMDEsMTE2LDczLDExOSw3OCw4Myw5NSw0OSw1NywxMDUsMTE1LDExNiwxMTQsMTAx
LDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYsMTExLDExNCw3Mywx
MTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1
LDczLDExOSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcs
MTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMDMsMTAxLDExNiw3Myw5OSw3OCw4Myw5NSw0OSw1Nywx
MDUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5
NywxMTYsMTExLDExNCw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwx
MTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksNjksNjksMCwwLDAsNzgsODMsMTE2
LDUxLDk1LDk1LDQ5LDU3LDk4LDk3LDExNSwxMDUsOTksOTUsMTA1LDExMSwxMTUsNzMsMTE5LDc4
LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3Mywx
MTksNjksNjksNjksNjksMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsOTgs
OTcsMTE1LDEwNSw5OSw5NSwxMDUsMTExLDExNSw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQs
OTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksMCwwLDAs
MCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTcsOTUsOTUsMTEwLDExNywxMDksOTUsMTEy
LDExNywxMTYsNzMsMTE5LDY5LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Nyw5NSw5
NSwxMTAsMTE3LDEwOSw5NSwxMTIsMTE3LDExNiw3Myw5OSw2OSw2OSwwLDAsMCw3OCw4MywxMTYs
NTEsOTUsOTUsNDksNTcsOTUsOTUsMTEwLDExNywxMDksOTUsMTAzLDEwMSwxMTYsNzMsMTE5LDY5
LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1Nyw5NSw5NSwxMTAsMTE3LDEwOSw5NSwx
MDMsMTAxLDExNiw3Myw5OSw2OSw2OSwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTE2
LDEwNSwxMDksMTAxLDk1LDExMiwxMTcsMTE2LDczLDExOSw3OCw4Myw5NSw0OSw1NywxMTEsMTE1
LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDk1LDEwNSwxMTYsMTAxLDExNCw5NywxMTYs
MTExLDExNCw3MywxMTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3
LDEwNSwxMTYsMTE1LDczLDExOSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1
MSw5NSw5NSw0OSw1NiwxMTYsMTA1LDEwOSwxMDEsOTUsMTEyLDExNywxMTYsNzMsOTksNzgsODMs
OTUsNDksNTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2
LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDEx
NCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCww
LDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDExNiwxMDUsMTA5LDEwMSw5NSwxMDMsMTAxLDEx
Niw3MywxMTksNzgsODMsOTUsNDksNTcsMTA1LDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3
LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsMTE5LDc4LDgzLDk1LDQ5
LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDExNSw3MywxMTksNjksNjks
NjksNjksNjksNjksMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTYsMTE2LDEwNSwxMDks
MTAxLDk1LDEwMywxMDEsMTE2LDczLDk5LDc4LDgzLDk1LDQ5LDU3LDEwNSwxMTUsMTE2LDExNCwx
MDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDcz
LDk5LDc4LDgzLDk1LDQ5LDQ5LDk5LDEwNCw5NywxMTQsOTUsMTE2LDExNCw5NywxMDUsMTE2LDEx
NSw3Myw5OSw2OSw2OSw2OSw2OSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1
NiwxMTAsMTE3LDEwOSwxMTIsMTE3LDExMCw5OSwxMTYsNzMsMTE5LDY5LDY5LDAsMCwwLDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDExMCwxMTcsMTA5LDExMiwxMTcsMTEwLDk5LDExNiw3Myw5
OSw2OSw2OSwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMDksMTAxLDExNSwxMTUs
OTcsMTAzLDEwMSwxMTUsNzMsMTE5LDY5LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5
LDU2LDEwOSwxMDEsMTE1LDExNSw5NywxMDMsMTAxLDExNSw3Myw5OSw2OSw2OSwwLDAsMCwwLDc4
LDgzLDExNiw1MSw5NSw5NSw0OSw1NiwxMDUsMTExLDExNSw5NSw5OCw5NywxMTUsMTAxLDY5LDAs
MCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDU2LDEwNSwxMTEsMTE1LDk1LDk4LDk3
LDExNSwxMDEsNTUsMTAyLDk3LDEwNSwxMDgsMTE3LDExNCwxMDEsNjksMCwwLDAsMCwwLDAsMCw3
OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsMTEwLDExNywxMDksOTUsMTEyLDExNywxMTYsNzMsMTE5
LDc4LDgzLDk1LDQ5LDU3LDExMSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUs
MTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwx
MDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDY5
LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsMTEwLDExNywxMDksOTUsMTEy
LDExNywxMTYsNzMsOTksNzgsODMsOTUsNDksNTcsMTExLDExNSwxMTYsMTE0LDEwMSw5NywxMDks
OTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQsOTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMs
OTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5
LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsMTEwLDEx
NywxMDksOTUsMTAzLDEwMSwxMTYsNzMsMTE5LDc4LDgzLDk1LDQ5LDU3LDEwNSwxMTUsMTE2LDEx
NCwxMDEsOTcsMTA5LDk4LDExNywxMDIsOTUsMTA1LDExNiwxMDEsMTE0LDk3LDExNiwxMTEsMTE0
LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDEx
NiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUs
OTUsNDksNTUsMTEwLDExNywxMDksOTUsMTAzLDEwMSwxMTYsNzMsOTksNzgsODMsOTUsNDksNTcs
MTA1LDExNSwxMTYsMTE0LDEwMSw5NywxMDksOTgsMTE3LDEwMiw5NSwxMDUsMTE2LDEwMSwxMTQs
OTcsMTE2LDExMSwxMTQsNzMsOTksNzgsODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYs
MTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5LDY5LDY5LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4
MywxMTYsNTEsOTUsOTUsNDksNTUsOTksMTExLDEwOCwxMDgsOTcsMTE2LDEwMSw3MywxMTksNjks
NjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw1NSw5OSwxMTEsMTA4LDEwOCw5Nywx
MTYsMTAxLDczLDk5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsOTks
MTExLDEwMCwxMDEsOTksMTE4LDExNiw3MywxMTksOTksNDksNDgsOTUsMTA5LDk4LDExNSwxMTYs
OTcsMTE2LDEwMSw5NSwxMTYsNjksNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5
NSw0OSw1NSw5OSwxMTEsMTAwLDEwMSw5OSwxMTgsMTE2LDczLDk5LDk5LDQ5LDQ4LDk1LDEwOSw5
OCwxMTUsMTE2LDk3LDExNiwxMDEsOTUsMTE2LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4Mywx
MTYsNTEsOTUsOTUsNDksNTUsOTksMTExLDEwMCwxMDEsOTksMTE4LDExNiw3Myw2OCwxMTUsOTks
NDksNDgsOTUsMTA5LDk4LDExNSwxMTYsOTcsMTE2LDEwMSw5NSwxMTYsNjksNjksMCwwLDAsMCww
LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTUsOTksMTExLDEwMCwxMDEsOTksMTE4LDExNiw3
Myw2OCwxMDUsOTksNDksNDgsOTUsMTA5LDk4LDExNSwxMTYsOTcsMTE2LDEwMSw5NSwxMTYsNjks
NjksMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTQsMTA4LDExMSw5OSw5Nywx
MDgsMTAxLDUzLDEwMiw5Nyw5OSwxMDEsMTE2LDY5LDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0
OSw1NCwxMDgsMTExLDk5LDk3LDEwOCwxMDEsNTMsOTUsOTUsMTA1LDEwOSwxMTIsNjksMCwwLDAs
NzgsODMsMTE2LDUxLDk1LDk1LDQ5LDUzLDk5LDExNiwxMjEsMTEyLDEwMSw3MywxMTksNjksNjks
MCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNTMsOTksMTE2LDEyMSwxMTIsMTAx
LDczLDk5LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDUwLDQ4LDk1
LDk1LDExNiwxMDUsMTA5LDEwMSw5NSwxMDMsMTAxLDExNiw5NSw5OSw5NSwxMTUsMTE2LDExMSwx
MTQsOTcsMTAzLDEwMSw3MywxMTksNjksNjksMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUs
OTUsNDksNTAsNDgsOTUsOTUsMTE2LDEwNSwxMDksMTAxLDk1LDEwMywxMDEsMTE2LDk1LDk5LDk1
LDExNSwxMTYsMTExLDExNCw5NywxMDMsMTAxLDczLDk5LDY5LDY5LDAsMCwwLDAsMCwwLDAsNzgs
ODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDU3LDk1LDk1LDEwNSwxMTEsMTE1LDExNiwxMTQsMTAxLDk3
LDEwOSw5NSw5OSw5NywxMTYsMTAxLDEwMywxMTEsMTE0LDEyMSw2OSwwLDAsMCw3OCw4MywxMTYs
NTEsOTUsOTUsNDksNDksNTUsOTUsOTUsMTE5LDEwNSwxMDAsMTAxLDExMCw5NSwxMDIsMTE0LDEx
MSwxMDksOTUsMTE3LDExNiwxMDIsNTYsNzMsNzYsMTA2LDUxLDUwLDY5LDY5LDY5LDAsMCwwLDAs
MCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1NCw5NSw5NSwxMTAsOTcsMTE0LDExNCwxMTEs
MTE5LDk1LDExNiwxMTEsOTUsMTE3LDExNiwxMDIsNTYsNzMsNzYsMTA2LDUxLDUwLDY5LDY5LDY5
LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUzLDk4LDk3LDExNSwxMDUs
OTksOTUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw5OCwxMTcsMTAyLDczLDExOSw3OCw4Myw5NSw0
OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5
LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTMsOTgsOTcs
MTE1LDEwNSw5OSw5NSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDk4LDExNywxMDIsNzMsOTksNzgs
ODMsOTUsNDksNDksOTksMTA0LDk3LDExNCw5NSwxMTYsMTE0LDk3LDEwNSwxMTYsMTE1LDczLDk5
LDY5LDY5LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTIs
MTAxLDExNCwxMTQsMTExLDExNCw5NSw5OSw5NywxMTYsMTAxLDEwMywxMTEsMTE0LDEyMSw2OSww
LDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDUyLDk1LDk1LDExNSwxMDQs
OTcsMTE0LDEwMSwxMDAsOTUsOTksMTExLDExNywxMTAsMTE2LDY5LDAsMCwwLDAsMCwwLDAsMCw3
OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTIsOTUsOTUsMTEwLDExNywxMDksOTUsMTEyLDExNywx
MTYsOTUsOTgsOTcsMTE1LDEwMSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1
LDQ5LDQ5LDUyLDk1LDk1LDExMCwxMTcsMTA5LDk1LDEwMywxMDEsMTE2LDk1LDk4LDk3LDExNSwx
MDEsNjksMCwwLDAsMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MSwxMDksMTAx
LDExNSwxMTUsOTcsMTAzLDEwMSwxMTUsOTUsOTgsOTcsMTE1LDEwMSw2OSwwLDc4LDgzLDExNiw1
MSw5NSw5NSw0OSw0OSw1MSw5OCw5NywxMTUsMTA1LDk5LDk1LDExMSwxMTUsMTE2LDExNCwxMDEs
OTcsMTA5LDczLDExOSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcs
MTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5LDY5LDY5LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDks
NDksNTEsOTgsOTcsMTE1LDEwNSw5OSw5NSwxMTEsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw3Myw5
OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUs
NzMsOTksNjksNjksNjksNjksMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MSw5OCw5Nywx
MTUsMTA1LDk5LDk1LDEwNSwxMTUsMTE2LDExNCwxMDEsOTcsMTA5LDczLDExOSw3OCw4Myw5NSw0
OSw0OSw5OSwxMDQsOTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsMTE5LDY5LDY5
LDY5LDY5LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTEsOTgsOTcsMTE1LDEwNSw5OSw5
NSwxMDUsMTE1LDExNiwxMTQsMTAxLDk3LDEwOSw3Myw5OSw3OCw4Myw5NSw0OSw0OSw5OSwxMDQs
OTcsMTE0LDk1LDExNiwxMTQsOTcsMTA1LDExNiwxMTUsNzMsOTksNjksNjksNjksNjksMCwwLDc4
LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw1MCwxMTUsMTIxLDExNSwxMTYsMTAxLDEwOSw5NSwxMDEs
MTE0LDExNCwxMTEsMTE0LDY5LDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNTAsOTksMTEx
LDEwMCwxMDEsOTksMTE4LDExNiw5NSw5OCw5NywxMTUsMTAxLDY5LDAsMCw3OCw4MywxMTYsNTEs
OTUsOTUsNDksNDksNTAsOTUsOTUsMTAwLDExMSw5NSwxMDksMTAxLDExNSwxMTUsOTcsMTAzLDEw
MSw2OSwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ5LDk1LDk1LDExNSwxMTYsMTAwLDEx
MSwxMTcsMTE2LDk4LDExNywxMDIsNzMsMTE5LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4Mywx
MTYsNTEsOTUsOTUsNDksNDksNDksOTUsOTUsMTE1LDExNiwxMDAsMTExLDExNywxMTYsOTgsMTE3
LDEwMiw3Myw5OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5
LDQ5LDk1LDk1LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUsMTEyLDExNywxMTYsNzMsMTE5LDY5LDY5
LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDksOTUsOTUsMTA5LDEx
MSwxMTAsMTAxLDEyMSw5NSwxMTIsMTE3LDExNiw3Myw5OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAs
NzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ5LDk1LDk1LDEwOSwxMTEsMTEwLDEwMSwxMjEsOTUs
MTAzLDEwMSwxMTYsNzMsMTE5LDY5LDY5LDAsMCwwLDAsMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUs
OTUsNDksNDksNDksOTUsOTUsMTA5LDExMSwxMTAsMTAxLDEyMSw5NSwxMDMsMTAxLDExNiw3Myw5
OSw2OSw2OSwwLDAsMCwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDEwOSwx
MTEsMTEwLDEwMSwxMjEsMTEyLDExNywxMTAsOTksMTE2LDczLDExOSw3Niw5OCw0OSw2OSw2OSw2
OSwwLDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDEwOSwxMTEsMTEwLDEwMSwx
MjEsMTEyLDExNywxMTAsOTksMTE2LDczLDExOSw3Niw5OCw0OCw2OSw2OSw2OSwwLDAsMCwwLDAs
NzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4LDEwOSwxMTEsMTEwLDEwMSwxMjEsMTEyLDExNywx
MTAsOTksMTE2LDczLDk5LDc2LDk4LDQ5LDY5LDY5LDY5LDAsMCwwLDAsMCw3OCw4MywxMTYsNTEs
OTUsOTUsNDksNDksNDgsMTA5LDExMSwxMTAsMTAxLDEyMSwxMTIsMTE3LDExMCw5OSwxMTYsNzMs
OTksNzYsOTgsNDgsNjksNjksNjksMCwwLDAsMCwwLDc4LDgzLDExNiw1MSw5NSw5NSw0OSw0OSw0
OCwxMDksMTExLDExMCwxMDEsMTIxLDk1LDk4LDk3LDExNSwxMDEsNjksMCwwLDAsMCw3OCw4Mywx
MTYsNTEsOTUsOTUsNDksNDksNDgsOTksMTE2LDEyMSwxMTIsMTAxLDk1LDk4LDk3LDExNSwxMDEs
NjksMCwwLDAsMCw3OCw4MywxMTYsNTEsOTUsOTUsNDksNDksNDgsOTUsOTUsMTE2LDEwNSwxMDks
MTAxLDk1LDExMiwxMTcsMTE2LDY5LDAsMCwwLDAsNzgsODMsMTE2LDUxLDk1LDk1LDQ5LDQ5LDQ4
LDk1LDk1LDExNSwxMTYsMTAwLDEwNSwxMTAsOTgsMTE3LDEwMiw3MywxMTksNjksNjksMCw3OCw4
MywxMTYsNTEsOTUsOTUsNDksNDksNDgsOTUsOTUsMTE1LDExNiwxMDAsMTA1LDExMCw5OCwxMTcs
MTAyLDczLDk5LDY5LDY5LDAsNzgsNDksNDgsOTUsOTUsOTksMTIwLDEyMCw5Nyw5OCwxMDUsMTE4
LDQ5LDUwLDQ5LDk1LDk1LDExOCwxMDksMTA1LDk1LDk5LDEwOCw5NywxMTUsMTE1LDk1LDExNiwx
MjEsMTEyLDEwMSw5NSwxMDUsMTEwLDEwMiwxMTEsNjksMCwwLDAsNzgsNDksNDgsOTUsOTUsOTks
MTIwLDEyMCw5Nyw5OCwxMDUsMTE4LDQ5LDUwLDQ4LDk1LDk1LDExNSwxMDUsOTUsOTksMTA4LDk3
LDExNSwxMTUsOTUsMTE2LDEyMSwxMTIsMTAxLDk1LDEwNSwxMTAsMTAyLDExMSw2OSwwLDAsMCww
LDc4LDQ5LDQ4LDk1LDk1LDk5LDEyMCwxMjAsOTcsOTgsMTA1LDExOCw0OSw0OSw1NSw5NSw5NSw5
OSwxMDgsOTcsMTE1LDExNSw5NSwxMTYsMTIxLDExMiwxMDEsOTUsMTA1LDExMCwxMDIsMTExLDY5
LDAsMCwwLDAsMCwwLDAsNzgsNDksNDgsOTUsOTUsOTksMTIwLDEyMCw5Nyw5OCwxMDUsMTE4LDQ5
LDQ5LDU0LDk1LDk1LDExNSwxMDQsMTA1LDEwOSw5NSwxMTYsMTIxLDExMiwxMDEsOTUsMTA1LDEx
MCwxMDIsMTExLDY5LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDQwLDIwLDAsMCwwLDAsMCwwLDU2
LDIwLDAsMCwwLDAsMCwwLDcyLDIwLDAsMCwyMTYsMzEsMCwwLDAsMCwwLDAsMCwwLDAsMCw4OCwy
MCwwLDAsMjE2LDMxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTA0LDIwLDAsMCwyMTYsMzEsMCwwLDAs
MCwwLDAsMCwwLDAsMCwxMjgsMjAsMCwwLDMyLDMyLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTUyLDIw
LDAsMCwyMTYsMzEsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNjgsMjAsMCwwLDAsMjAsMCwwLDE5Miwy
MCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDIyNCwzNiwwLDAsMCwwLDAs
MCwwLDIwLDAsMCw4LDIxLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMjMy
LDM2LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDgwLDIxLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUs
MCwwLDIsMCwwLDAsMjQwLDM2LDAsMCwwLDAsMCwwLDAsMjAsMCwwLDE1MiwyMSwwLDAsMCwwLDAs
MCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDI0OCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDIy
NCwyMSwwLDAsNDAsMzQsMCwwLDAsMCwwLDAsMCwwLDAsMCwxNiwyMiwwLDAsNDAsMzQsMCwwLDAs
MCwwLDAsMCwyMCwwLDAsNjQsMjIsMCwwLDAsMCwwLDAsMSwwLDAsMCwzMiwzNiwwLDAsMCwwLDAs
MCwwLDIwLDAsMCw4OCwyMiwwLDAsMCwwLDAsMCwxLDAsMCwwLDMyLDM2LDAsMCwwLDAsMCwwLDAs
MjAsMCwwLDExMiwyMiwwLDAsMCwwLDAsMCwxLDAsMCwwLDQwLDM2LDAsMCwwLDAsMCwwLDAsMjAs
MCwwLDEzNiwyMiwwLDAsMCwwLDAsMCwxLDAsMCwwLDQwLDM2LDAsMCwwLDAsMCwwLDAsMjAsMCww
LDE2MCwyMiwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDE0NCwzNywwLDAs
MCw4LDAsMCwwLDIwLDAsMCwyMzIsMjIsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiww
LDAsMCwxNDQsMzcsMCwwLDAsOCwwLDAsMCwyMCwwLDAsNDgsMjMsMCwwLDAsMCwwLDAsMywwLDAs
MCw5NiwzNSwwLDAsMiwwLDAsMCw0OCwzMiwwLDAsMiwwLDAsMCwxOTIsMzUsMCwwLDAsOCwwLDAs
MCwyMCwwLDAsMTIwLDIzLDAsMCwwLDAsMCwwLDMsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsNDgs
MzIsMCwwLDIsMCwwLDAsMjAwLDM1LDAsMCwwLDgsMCwwLDAsMCwwLDAsMTkyLDIzLDAsMCw5Niwz
NSwwLDAsMCwwLDAsMCwwLDAsMCwwLDIxNiwyMywwLDAsOTYsMzUsMCwwLDAsMCwwLDAsMCwyMCww
LDAsMjQwLDIzLDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsNDgsMzYsMCww
LDIsMCwwLDAsMCwyMCwwLDAsOCwyNCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAs
MCwwLDQ4LDM2LDAsMCwyLDAsMCwwLDAsMCwwLDAsMzIsMjQsMCwwLDAsMCwwLDAsNTYsMjQsMCww
LDE1MiwzNiwwLDAsMCwwLDAsMCwwLDIwLDAsMCw4OCwyNCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2
LDM1LDAsMCwyLDAsMCwwLDIxNiwzMiwwLDAsMCwwLDAsMCwwLDIwLDAsMCwxNjAsMjQsMCwwLDAs
MCwwLDAsMiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwyNDAsMzIsMCwwLDAsMCwwLDAsMCwyMCww
LDAsMjMyLDI0LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsOCwzMywwLDAs
MCwwLDAsMCwwLDIwLDAsMCw0OCwyNSwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAs
MCwwLDMyLDMzLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTIwLDI1LDAsMCw5NiwzNSwwLDAsMCwwLDAs
MCwwLDAsMCwwLDE0NCwyNSwwLDAsOTYsMzUsMCwwLDAsMCwwLDAsMCwyMCwwLDAsMTY4LDI1LDAs
MCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTY4LDM2LDAsMCwyLDAsMCwwLDAs
MjAsMCwwLDIwOCwyNSwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDE2OCwz
NiwwLDAsMiwwLDAsMCwwLDIwLDAsMCwyNDgsMjUsMCwwLDAsMCwwLDAsMiwwLDAsMCw5NiwzNSww
LDAsMiwwLDAsMCwxNjgsMzYsMCwwLDIsMCwwLDAsMCwyMCwwLDAsMzIsMjYsMCwwLDAsMCwwLDAs
MiwwLDAsMCw5NiwzNSwwLDAsMiwwLDAsMCwxNjgsMzYsMCwwLDIsMCwwLDAsMCwwLDAsMCw3Miwy
NiwwLDAsMjQsMzYsMCwwLDAsMCwwLDAsMCwwLDAsMCw5NiwyNiwwLDAsOTYsMzUsMCwwLDAsMCww
LDAsMCwyMCwwLDAsMTIwLDI2LDAsMCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAs
MTM2LDM3LDAsMCwyLDAsMCwwLDAsMjAsMCwwLDE0NCwyNiwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2
LDM1LDAsMCwyLDAsMCwwLDEzNiwzNywwLDAsMiwwLDAsMCwwLDAsMCwwLDE2OCwyNiwwLDAsMCww
LDAsMCwyMDgsMjYsMCwwLDAsMCwwLDAsMjQ4LDI2LDAsMCwxNzYsMzYsMCwwLDAsMCwwLDAsMCww
LDAsMCwyNCwyNywwLDAsNjQsMzUsMCwwLDAsMCwwLDAsMCwwLDAsMCw2NCwyNywwLDAsNjQsMzUs
MCwwLDAsMCwwLDAsMCwwLDAsMCwxMDQsMjcsMCwwLDAsMCwwLDAsMTYwLDI3LDAsMCwwLDAsMCww
LDIxNiwyNywwLDAsMCwwLDAsMCwyNDgsMjcsMCwwLDAsMCwwLDAsMjQsMjgsMCwwLDAsMCwwLDAs
NTYsMjgsMCwwLDAsMCwwLDAsODgsMjgsMCwwLDAsMjAsMCwwLDExMiwyOCwwLDAsMCwwLDAsMCwx
LDAsMCwwLDE4NCwzMiwwLDAsMywyNDQsMjU1LDI1NSwwLDIwLDAsMCwxNjAsMjgsMCwwLDAsMCww
LDAsMSwwLDAsMCwyMDAsMzIsMCwwLDMsMjQ0LDI1NSwyNTUsMCwyMCwwLDAsMjA4LDI4LDAsMCww
LDAsMCwwLDEsMCwwLDAsMTg0LDMyLDAsMCwzLDI0NCwyNTUsMjU1LDAsMjAsMCwwLDAsMjksMCww
LDAsMCwwLDAsMSwwLDAsMCwyMDAsMzIsMCwwLDMsMjQ0LDI1NSwyNTUsMCwwLDAsMCw0OCwyOSww
LDAsMCwzMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDcyLDI5LDAsMCwwLDAsMCwwLDk2LDI5LDAsMCwx
NiwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDEyMCwyOSwwLDAsMCwzNiwwLDAsMCwwLDAsMCwwLDAs
MCwwLDE1MiwyOSwwLDAsOCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDE4NCwyOSwwLDAsMCwwLDAs
MCwyMTYsMjksMCwwLDAsMCwwLDAsMjQ4LDI5LDAsMCwwLDAsMCwwLDI0LDMwLDAsMCwwLDIwLDAs
MCw1NiwzMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAsMCwwLDEyOCwzNywwLDAs
MiwwLDAsMCwwLDIwLDAsMCw4OCwzMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDk2LDM1LDAsMCwyLDAs
MCwwLDEyOCwzNywwLDAsMiwwLDAsMCwwLDIwLDAsMCwxMjAsMzAsMCwwLDAsMCwwLDAsMiwwLDAs
MCw5NiwzNSwwLDAsMiwwLDAsMCwxMjgsMzcsMCwwLDIsMCwwLDAsMCwyMCwwLDAsMTUyLDMwLDAs
MCwwLDAsMCwwLDIsMCwwLDAsOTYsMzUsMCwwLDIsMCwwLDAsMTI4LDM3LDAsMCwyLDAsMCwwLDAs
MCwwLDAsMTg0LDMwLDAsMCwwLDAsMCwwLDIwOCwzMCwwLDAsMCwwLDAsMCwyMzIsMzAsMCwwLDAs
MCwwLDAsMCwzMSwwLDAsMCwzNiwwLDAsMCwwLDAsMCwwLDAsMCwwLDI0LDMxLDAsMCw4LDM2LDAs
MCwwLDAsMCwwLDAsMCwwLDAsNDgsMzEsMCwwLDIxNiwzNywwLDAsMCwwLDAsMCwwLDAsMCwwLDg4
LDMxLDAsMCwyMTYsMzcsMCwwLDAsMCwwLDAsMCwwLDAsMCwxMjgsMzEsMCwwLDIzMiwzNywwLDAs
MCwwLDAsMCwwLDAsMCwwLDE2OCwzMSwwLDAsMjA4LDMxLDAsMCwwLDAsMCwwLDI1NSwyNTUsMjU1
LDI1NSwwLDAsMCwwLDI1NSwyNTUsMjU1LDI1NSwwLDAsMCwwLDI1NSwyNTUsMjU1LDI1NSwwLDAs
MCwwLDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDk3LDk4LDk5LDEwMCwxMDEsMTAyLDY1
LDY2LDY3LDY4LDY5LDcwLDEyMCw4OCw0Myw0NSwxMTIsODAsMTA1LDczLDExMCw3OCwwLDAsMCww
LDAsMCwwLDBdLCAiaTgiLCBBTExPQ19OT05FLCBSdW50aW1lLkdMT0JBTF9CQVNFKQotdmFyIHRl
bXBEb3VibGVQdHIgPSBSdW50aW1lLmFsaWduTWVtb3J5KGFsbG9jYXRlKDEyLCAiaTgiLCBBTExP
Q19TVEFUSUMpLCA4KTsKLWFzc2VydCh0ZW1wRG91YmxlUHRyICUgOCA9PSAwKTsKLWZ1bmN0aW9u
IGNvcHlUZW1wRmxvYXQocHRyKSB7IC8vIGZ1bmN0aW9ucywgYmVjYXVzZSBpbmxpbmluZyB0aGlz
IGNvZGUgaW5jcmVhc2VzIGNvZGUgc2l6ZSB0b28gbXVjaAotICBIRUFQOFt0ZW1wRG91YmxlUHRy
XSA9IEhFQVA4W3B0cl07Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHIrMV0gPSBIRUFQOFtwdHIrMV07
Ci0gIEhFQVA4W3RlbXBEb3VibGVQdHIrMl0gPSBIRUFQOFtwdHIrMl07Ci0gIEhFQVA4W3RlbXBE
b3VibGVQdHIrM10gPSBIRUFQOFtwdHIrM107Ci19Ci1mdW5jdGlvbiBjb3B5VGVtcERvdWJsZShw
dHIpIHsKLSAgSEVBUDhbdGVtcERvdWJsZVB0cl0gPSBIRUFQOFtwdHJdOwotICBIRUFQOFt0ZW1w
RG91YmxlUHRyKzFdID0gSEVBUDhbcHRyKzFdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzJdID0g
SEVBUDhbcHRyKzJdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzNdID0gSEVBUDhbcHRyKzNdOwot
ICBIRUFQOFt0ZW1wRG91YmxlUHRyKzRdID0gSEVBUDhbcHRyKzRdOwotICBIRUFQOFt0ZW1wRG91
YmxlUHRyKzVdID0gSEVBUDhbcHRyKzVdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzZdID0gSEVB
UDhbcHRyKzZdOwotICBIRUFQOFt0ZW1wRG91YmxlUHRyKzddID0gSEVBUDhbcHRyKzddOwotfQot
ICBmdW5jdGlvbiBfYXRleGl0KGZ1bmMsIGFyZykgewotICAgICAgX19BVEVYSVRfXy51bnNoaWZ0
KHsgZnVuYzogZnVuYywgYXJnOiBhcmcgfSk7Ci0gICAgfXZhciBfX19jeGFfYXRleGl0PV9hdGV4
aXQ7Ci0gIGZ1bmN0aW9uIF9sbHZtX3VtdWxfd2l0aF9vdmVyZmxvd19pMzIoeCwgeSkgewotICAg
ICAgeCA9IHg+Pj4wOwotICAgICAgeSA9IHk+Pj4wOwotICAgICAgcmV0dXJuICgoYXNtWyJzZXRU
ZW1wUmV0MCJdKHgqeSA+IDQyOTQ5NjcyOTUpLCh4KnkpPj4+MCl8MCk7Ci0gICAgfQotICBmdW5j
dGlvbiBfX19neHhfcGVyc29uYWxpdHlfdjAoKSB7Ci0gICAgfQotICBmdW5jdGlvbiBfX2V4aXQo
c3RhdHVzKSB7Ci0gICAgICAvLyB2b2lkIF9leGl0KGludCBzdGF0dXMpOwotICAgICAgLy8gaHR0
cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvZXhp
dC5odG1sCi0gICAgICBNb2R1bGUucHJpbnQoJ2V4aXQoJyArIHN0YXR1cyArICcpIGNhbGxlZCcp
OwotICAgICAgTW9kdWxlWydleGl0J10oc3RhdHVzKTsKLSAgICB9ZnVuY3Rpb24gX2V4aXQoc3Rh
dHVzKSB7Ci0gICAgICBfX2V4aXQoc3RhdHVzKTsKLSAgICB9ZnVuY3Rpb24gX19aU3Q5dGVybWlu
YXRldigpIHsKLSAgICAgIF9leGl0KC0xMjM0KTsKLSAgICB9Ci0gIE1vZHVsZVsiX21lbWNweSJd
ID0gX21lbWNweTt2YXIgX2xsdm1fbWVtY3B5X3AwaThfcDBpOF9pMzI9X21lbWNweTsKLSAgdmFy
IF9sb2c9TWF0aC5sb2c7Ci0gIHZhciBfZmxvb3I9TWF0aC5mbG9vcjsKLSAgdmFyIGN0bHpfaTgg
PSBhbGxvY2F0ZShbOCw3LDYsNiw1LDUsNSw1LDQsNCw0LDQsNCw0LDQsNCwzLDMsMywzLDMsMywz
LDMsMywzLDMsMywzLDMsMywzLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIs
MiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEs
MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMF0sICJpOCIsIEFMTE9DX1NUQVRJQyk7IAotICBNb2R1bGVbIl9sbHZtX2N0bHpf
aTMyIl0gPSBfbGx2bV9jdGx6X2kzMjsKLSAgZnVuY3Rpb24gX19aU3QxOHVuY2F1Z2h0X2V4Y2Vw
dGlvbnYoKSB7IC8vIHN0ZDo6dW5jYXVnaHRfZXhjZXB0aW9uKCkKLSAgICAgIHJldHVybiAhIV9f
WlN0MTh1bmNhdWdodF9leGNlcHRpb252LnVuY2F1Z2h0X2V4Y2VwdGlvbjsKLSAgICB9ZnVuY3Rp
b24gX19fY3hhX2JlZ2luX2NhdGNoKHB0cikgewotICAgICAgX19aU3QxOHVuY2F1Z2h0X2V4Y2Vw
dGlvbnYudW5jYXVnaHRfZXhjZXB0aW9uLS07Ci0gICAgICByZXR1cm4gcHRyOwotICAgIH0KLSAg
ZnVuY3Rpb24gX2xsdm1fZWhfZXhjZXB0aW9uKCkgewotICAgICAgcmV0dXJuIEhFQVAzMlsoKF9s
bHZtX2VoX2V4Y2VwdGlvbi5idWYpPj4yKV07Ci0gICAgfQotICBmdW5jdGlvbiBfX19jeGFfZnJl
ZV9leGNlcHRpb24ocHRyKSB7Ci0gICAgICB0cnkgewotICAgICAgICByZXR1cm4gX2ZyZWUocHRy
KTsKLSAgICAgIH0gY2F0Y2goZSkgeyAvLyBYWFggRklYTUUKLSAgICAgIH0KLSAgICB9ZnVuY3Rp
b24gX19fY3hhX2VuZF9jYXRjaCgpIHsKLSAgICAgIGlmIChfX19jeGFfZW5kX2NhdGNoLnJldGhy
b3duKSB7Ci0gICAgICAgIF9fX2N4YV9lbmRfY2F0Y2gucmV0aHJvd24gPSBmYWxzZTsKLSAgICAg
ICAgcmV0dXJuOwotICAgICAgfQotICAgICAgLy8gQ2xlYXIgc3RhdGUgZmxhZy4KLSAgICAgIGFz
bVsnc2V0VGhyZXcnXSgwKTsKLSAgICAgIC8vIENsZWFyIHR5cGUuCi0gICAgICBIRUFQMzJbKCgo
X2xsdm1fZWhfZXhjZXB0aW9uLmJ1ZikrKDQpKT4+MildPTAKLSAgICAgIC8vIENhbGwgZGVzdHJ1
Y3RvciBpZiBvbmUgaXMgcmVnaXN0ZXJlZCB0aGVuIGNsZWFyIGl0LgotICAgICAgdmFyIHB0ciA9
IEhFQVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpPj4yKV07Ci0gICAgICB2YXIgZGVzdHJ1
Y3RvciA9IEhFQVAzMlsoKChfbGx2bV9laF9leGNlcHRpb24uYnVmKSsoOCkpPj4yKV07Ci0gICAg
ICBpZiAoZGVzdHJ1Y3RvcikgewotICAgICAgICBSdW50aW1lLmR5bkNhbGwoJ3ZpJywgZGVzdHJ1
Y3RvciwgW3B0cl0pOwotICAgICAgICBIRUFQMzJbKCgoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zikr
KDgpKT4+MildPTAKLSAgICAgIH0KLSAgICAgIC8vIEZyZWUgcHRyIGlmIGl0IGlzbid0IG51bGwu
Ci0gICAgICBpZiAocHRyKSB7Ci0gICAgICAgIF9fX2N4YV9mcmVlX2V4Y2VwdGlvbihwdHIpOwot
ICAgICAgICBIRUFQMzJbKChfbGx2bV9laF9leGNlcHRpb24uYnVmKT4+MildPTAKLSAgICAgIH0K
LSAgICB9ZnVuY3Rpb24gX19fY3hhX3JldGhyb3coKSB7Ci0gICAgICBfX19jeGFfZW5kX2NhdGNo
LnJldGhyb3duID0gdHJ1ZTsKLSAgICAgIHRocm93IEhFQVAzMlsoKF9sbHZtX2VoX2V4Y2VwdGlv
bi5idWYpPj4yKV0gKyAiIC0gRXhjZXB0aW9uIGNhdGNoaW5nIGlzIGRpc2FibGVkLCB0aGlzIGV4
Y2VwdGlvbiBjYW5ub3QgYmUgY2F1Z2h0LiBDb21waWxlIHdpdGggLXMgRElTQUJMRV9FWENFUFRJ
T05fQ0FUQ0hJTkc9MCBvciBESVNBQkxFX0VYQ0VQVElPTl9DQVRDSElORz0yIHRvIGNhdGNoLiI7
OwotICAgIH0KLSAgTW9kdWxlWyJfbWVtbW92ZSJdID0gX21lbW1vdmU7dmFyIF9sbHZtX21lbW1v
dmVfcDBpOF9wMGk4X2kzMj1fbWVtbW92ZTsKLSAgTW9kdWxlWyJfbWVtc2V0Il0gPSBfbWVtc2V0
O3ZhciBfbGx2bV9tZW1zZXRfcDBpOF9pNjQ9X21lbXNldDsKLSAgZnVuY3Rpb24gX2xsdm1fbGlm
ZXRpbWVfc3RhcnQoKSB7fQotICBmdW5jdGlvbiBfbGx2bV9saWZldGltZV9lbmQoKSB7fQotICBm
dW5jdGlvbiBfcHRocmVhZF9tdXRleF9sb2NrKCkge30KLSAgZnVuY3Rpb24gX3B0aHJlYWRfbXV0
ZXhfdW5sb2NrKCkge30KLSAgZnVuY3Rpb24gX19fY3hhX2d1YXJkX2FjcXVpcmUodmFyaWFibGUp
IHsKLSAgICAgIGlmICghSEVBUDhbKHZhcmlhYmxlKV0pIHsgLy8gaWdub3JlIFNBRkVfSEVBUCBz
dHVmZiBiZWNhdXNlIGxsdm0gbWl4ZXMgaTY0IGFuZCBpOCBoZXJlCi0gICAgICAgIEhFQVA4Wyh2
YXJpYWJsZSldPTE7Ci0gICAgICAgIHJldHVybiAxOwotICAgICAgfQotICAgICAgcmV0dXJuIDA7
Ci0gICAgfQotICBmdW5jdGlvbiBfX19jeGFfZ3VhcmRfcmVsZWFzZSgpIHt9Ci0gIGZ1bmN0aW9u
IF9wdGhyZWFkX2NvbmRfYnJvYWRjYXN0KCkgewotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICBm
dW5jdGlvbiBfcHRocmVhZF9jb25kX3dhaXQoKSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0g
IGZ1bmN0aW9uIF9fX2N4YV9hbGxvY2F0ZV9leGNlcHRpb24oc2l6ZSkgewotICAgICAgcmV0dXJu
IF9tYWxsb2Moc2l6ZSk7Ci0gICAgfQotICBmdW5jdGlvbiBfX19jeGFfaXNfbnVtYmVyX3R5cGUo
dHlwZSkgewotICAgICAgdmFyIGlzTnVtYmVyID0gZmFsc2U7Ci0gICAgICB0cnkgeyBpZiAodHlw
ZSA9PSBfX1pUSWkpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlm
ICh0eXBlID09IF9fWlRJaikgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5
IHsgaWYgKHR5cGUgPT0gX19aVElsKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAg
ICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSW0pIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30K
LSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJeCkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2go
ZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVEl5KSBpc051bWJlciA9IHRydWUgfSBj
YXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSWYpIGlzTnVtYmVyID0gdHJ1
ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9fWlRJZCkgaXNOdW1iZXIg
PSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUgPT0gX19aVEllKSBpc051
bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAodHlwZSA9PSBfX1pUSWMp
IGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7IGlmICh0eXBlID09IF9f
WlRJYSkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAgdHJ5IHsgaWYgKHR5cGUg
PT0gX19aVEloKSBpc051bWJlciA9IHRydWUgfSBjYXRjaChlKXt9Ci0gICAgICB0cnkgeyBpZiAo
dHlwZSA9PSBfX1pUSXMpIGlzTnVtYmVyID0gdHJ1ZSB9IGNhdGNoKGUpe30KLSAgICAgIHRyeSB7
IGlmICh0eXBlID09IF9fWlRJdCkgaXNOdW1iZXIgPSB0cnVlIH0gY2F0Y2goZSl7fQotICAgICAg
cmV0dXJuIGlzTnVtYmVyOwotICAgIH1mdW5jdGlvbiBfX19jeGFfZG9lc19pbmhlcml0KGRlZmlu
aXRlVHlwZSwgcG9zc2liaWxpdHlUeXBlLCBwb3NzaWJpbGl0eSkgewotICAgICAgaWYgKHBvc3Np
YmlsaXR5ID09IDApIHJldHVybiBmYWxzZTsKLSAgICAgIGlmIChwb3NzaWJpbGl0eVR5cGUgPT0g
MCB8fCBwb3NzaWJpbGl0eVR5cGUgPT0gZGVmaW5pdGVUeXBlKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgIHZhciBwb3NzaWJpbGl0eV90eXBlX2luZm87Ci0gICAgICBpZiAoX19fY3hhX2lz
X251bWJlcl90eXBlKHBvc3NpYmlsaXR5VHlwZSkpIHsKLSAgICAgICAgcG9zc2liaWxpdHlfdHlw
ZV9pbmZvID0gcG9zc2liaWxpdHlUeXBlOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgdmFyIHBv
c3NpYmlsaXR5X3R5cGVfaW5mb0FkZHIgPSBIRUFQMzJbKChwb3NzaWJpbGl0eVR5cGUpPj4yKV0g
LSA4OwotICAgICAgICBwb3NzaWJpbGl0eV90eXBlX2luZm8gPSBIRUFQMzJbKChwb3NzaWJpbGl0
eV90eXBlX2luZm9BZGRyKT4+MildOwotICAgICAgfQotICAgICAgc3dpdGNoIChwb3NzaWJpbGl0
eV90eXBlX2luZm8pIHsKLSAgICAgIGNhc2UgMDogLy8gcG9zc2liaWxpdHkgaXMgYSBwb2ludGVy
Ci0gICAgICAgIC8vIFNlZSBpZiBkZWZpbml0ZSB0eXBlIGlzIGEgcG9pbnRlcgotICAgICAgICB2
YXIgZGVmaW5pdGVfdHlwZV9pbmZvQWRkciA9IEhFQVAzMlsoKGRlZmluaXRlVHlwZSk+PjIpXSAt
IDg7Ci0gICAgICAgIHZhciBkZWZpbml0ZV90eXBlX2luZm8gPSBIRUFQMzJbKChkZWZpbml0ZV90
eXBlX2luZm9BZGRyKT4+MildOwotICAgICAgICBpZiAoZGVmaW5pdGVfdHlwZV9pbmZvID09IDAp
IHsKLSAgICAgICAgICAvLyBBbHNvIGEgcG9pbnRlcjsgY29tcGFyZSBiYXNlIHR5cGVzIG9mIHBv
aW50ZXJzCi0gICAgICAgICAgdmFyIGRlZlBvaW50ZXJCYXNlQWRkciA9IGRlZmluaXRlVHlwZSs4
OwotICAgICAgICAgIHZhciBkZWZQb2ludGVyQmFzZVR5cGUgPSBIRUFQMzJbKChkZWZQb2ludGVy
QmFzZUFkZHIpPj4yKV07Ci0gICAgICAgICAgdmFyIHBvc3NQb2ludGVyQmFzZUFkZHIgPSBwb3Nz
aWJpbGl0eVR5cGUrODsKLSAgICAgICAgICB2YXIgcG9zc1BvaW50ZXJCYXNlVHlwZSA9IEhFQVAz
MlsoKHBvc3NQb2ludGVyQmFzZUFkZHIpPj4yKV07Ci0gICAgICAgICAgcmV0dXJuIF9fX2N4YV9k
b2VzX2luaGVyaXQoZGVmUG9pbnRlckJhc2VUeXBlLCBwb3NzUG9pbnRlckJhc2VUeXBlLCBwb3Nz
aWJpbGl0eSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gb25l
IHBvaW50ZXIgYW5kIG9uZSBub24tcG9pbnRlcgotICAgICAgY2FzZSAxOiAvLyBjbGFzcyB3aXRo
IG5vIGJhc2UgY2xhc3MKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgY2FzZSAyOiAvLyBj
bGFzcyB3aXRoIGJhc2UgY2xhc3MKLSAgICAgICAgdmFyIHBhcmVudFR5cGVBZGRyID0gcG9zc2li
aWxpdHlUeXBlICsgODsKLSAgICAgICAgdmFyIHBhcmVudFR5cGUgPSBIRUFQMzJbKChwYXJlbnRU
eXBlQWRkcik+PjIpXTsKLSAgICAgICAgcmV0dXJuIF9fX2N4YV9kb2VzX2luaGVyaXQoZGVmaW5p
dGVUeXBlLCBwYXJlbnRUeXBlLCBwb3NzaWJpbGl0eSk7Ci0gICAgICBkZWZhdWx0OgotICAgICAg
ICByZXR1cm4gZmFsc2U7IC8vIHNvbWUgdW5lbmNvdW50ZXJlZCB0eXBlCi0gICAgICB9Ci0gICAg
fQotICBmdW5jdGlvbiBfX19yZXN1bWVFeGNlcHRpb24ocHRyKSB7Ci0gICAgICBpZiAoSEVBUDMy
WygoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXSA9PSAwKSBIRUFQMzJbKChfbGx2bV9laF9l
eGNlcHRpb24uYnVmKT4+MildPXB0cjsKLSAgICAgIHRocm93IHB0ciArICIgLSBFeGNlcHRpb24g
Y2F0Y2hpbmcgaXMgZGlzYWJsZWQsIHRoaXMgZXhjZXB0aW9uIGNhbm5vdCBiZSBjYXVnaHQuIENv
bXBpbGUgd2l0aCAtcyBESVNBQkxFX0VYQ0VQVElPTl9DQVRDSElORz0wIG9yIERJU0FCTEVfRVhD
RVBUSU9OX0NBVENISU5HPTIgdG8gY2F0Y2guIjs7Ci0gICAgfWZ1bmN0aW9uIF9fX2N4YV9maW5k
X21hdGNoaW5nX2NhdGNoKHRocm93biwgdGhyb3dudHlwZSkgewotICAgICAgaWYgKHRocm93biA9
PSAtMSkgdGhyb3duID0gSEVBUDMyWygoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXTsKLSAg
ICAgIGlmICh0aHJvd250eXBlID09IC0xKSB0aHJvd250eXBlID0gSEVBUDMyWygoKF9sbHZtX2Vo
X2V4Y2VwdGlvbi5idWYpKyg0KSk+PjIpXTsKLSAgICAgIHZhciB0eXBlQXJyYXkgPSBBcnJheS5w
cm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDIpOwotICAgICAgLy8gSWYgdGhyb3dudHlw
ZSBpcyBhIHBvaW50ZXIsIHRoaXMgbWVhbnMgYSBwb2ludGVyIGhhcyBiZWVuCi0gICAgICAvLyB0
aHJvd24uIFdoZW4gYSBwb2ludGVyIGlzIHRocm93biwgYWN0dWFsbHkgd2hhdCdzIHRocm93bgot
ICAgICAgLy8gaXMgYSBwb2ludGVyIHRvIHRoZSBwb2ludGVyLiBXZSdsbCBkZXJlZmVyZW5jZSBp
dC4KLSAgICAgIGlmICh0aHJvd250eXBlICE9IDAgJiYgIV9fX2N4YV9pc19udW1iZXJfdHlwZSh0
aHJvd250eXBlKSkgewotICAgICAgICB2YXIgdGhyb3dudHlwZUluZm9BZGRyPSBIRUFQMzJbKCh0
aHJvd250eXBlKT4+MildIC0gODsKLSAgICAgICAgdmFyIHRocm93bnR5cGVJbmZvPSBIRUFQMzJb
KCh0aHJvd250eXBlSW5mb0FkZHIpPj4yKV07Ci0gICAgICAgIGlmICh0aHJvd250eXBlSW5mbyA9
PSAwKQotICAgICAgICAgIHRocm93biA9IEhFQVAzMlsoKHRocm93bik+PjIpXTsKLSAgICAgIH0K
LSAgICAgIC8vIFRoZSBkaWZmZXJlbnQgY2F0Y2ggYmxvY2tzIGFyZSBkZW5vdGVkIGJ5IGRpZmZl
cmVudCB0eXBlcy4KLSAgICAgIC8vIER1ZSB0byBpbmhlcml0YW5jZSwgdGhvc2UgdHlwZXMgbWF5
IG5vdCBwcmVjaXNlbHkgbWF0Y2ggdGhlCi0gICAgICAvLyB0eXBlIG9mIHRoZSB0aHJvd24gb2Jq
ZWN0LiBGaW5kIG9uZSB3aGljaCBtYXRjaGVzLCBhbmQKLSAgICAgIC8vIHJldHVybiB0aGUgdHlw
ZSBvZiB0aGUgY2F0Y2ggYmxvY2sgd2hpY2ggc2hvdWxkIGJlIGNhbGxlZC4KLSAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgdHlwZUFycmF5Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmIChfX19j
eGFfZG9lc19pbmhlcml0KHR5cGVBcnJheVtpXSwgdGhyb3dudHlwZSwgdGhyb3duKSkKLSAgICAg
ICAgICByZXR1cm4gKChhc21bInNldFRlbXBSZXQwIl0odHlwZUFycmF5W2ldKSx0aHJvd24pfDAp
OwotICAgICAgfQotICAgICAgLy8gU2hvdWxkbid0IGhhcHBlbiB1bmxlc3Mgd2UgaGF2ZSBib2d1
cyBkYXRhIGluIHR5cGVBcnJheQotICAgICAgLy8gb3IgZW5jb3VudGVyIGEgdHlwZSBmb3Igd2hp
Y2ggZW1zY3JpcHRlbiBkb2Vzbid0IGhhdmUgc3VpdGFibGUKLSAgICAgIC8vIHR5cGVpbmZvIGRl
ZmluZWQuIEJlc3QtZWZmb3J0cyBtYXRjaCBqdXN0IGluIGNhc2UuCi0gICAgICByZXR1cm4gKChh
c21bInNldFRlbXBSZXQwIl0odGhyb3dudHlwZSksdGhyb3duKXwwKTsKLSAgICB9ZnVuY3Rpb24g
X19fY3hhX3Rocm93KHB0ciwgdHlwZSwgZGVzdHJ1Y3RvcikgewotICAgICAgaWYgKCFfX19jeGFf
dGhyb3cuaW5pdGlhbGl6ZWQpIHsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBIRUFQMzJbKChf
X1pUVk4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FKT4+MildPTA7IC8vIFdvcmth
cm91bmQgZm9yIGxpYmN4eGFiaSBpbnRlZ3JhdGlvbiBidWcKLSAgICAgICAgfSBjYXRjaChlKXt9
Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgSEVBUDMyWygoX19aVFZOMTBfX2N4eGFiaXYxMTdf
X2NsYXNzX3R5cGVfaW5mb0UpPj4yKV09MTsgLy8gV29ya2Fyb3VuZCBmb3IgbGliY3h4YWJpIGlu
dGVncmF0aW9uIGJ1ZwotICAgICAgICB9IGNhdGNoKGUpe30KLSAgICAgICAgdHJ5IHsKLSAgICAg
ICAgICBIRUFQMzJbKChfX1pUVk4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRSk+
PjIpXT0yOyAvLyBXb3JrYXJvdW5kIGZvciBsaWJjeHhhYmkgaW50ZWdyYXRpb24gYnVnCi0gICAg
ICAgIH0gY2F0Y2goZSl7fQotICAgICAgICBfX19jeGFfdGhyb3cuaW5pdGlhbGl6ZWQgPSB0cnVl
OwotICAgICAgfQotICAgICAgSEVBUDMyWygoX2xsdm1fZWhfZXhjZXB0aW9uLmJ1Zik+PjIpXT1w
dHIKLSAgICAgIEhFQVAzMlsoKChfbGx2bV9laF9leGNlcHRpb24uYnVmKSsoNCkpPj4yKV09dHlw
ZQotICAgICAgSEVBUDMyWygoKF9sbHZtX2VoX2V4Y2VwdGlvbi5idWYpKyg4KSk+PjIpXT1kZXN0
cnVjdG9yCi0gICAgICBpZiAoISgidW5jYXVnaHRfZXhjZXB0aW9uIiBpbiBfX1pTdDE4dW5jYXVn
aHRfZXhjZXB0aW9udikpIHsKLSAgICAgICAgX19aU3QxOHVuY2F1Z2h0X2V4Y2VwdGlvbnYudW5j
YXVnaHRfZXhjZXB0aW9uID0gMTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIF9fWlN0MTh1bmNh
dWdodF9leGNlcHRpb252LnVuY2F1Z2h0X2V4Y2VwdGlvbisrOwotICAgICAgfQotICAgICAgdGhy
b3cgcHRyICsgIiAtIEV4Y2VwdGlvbiBjYXRjaGluZyBpcyBkaXNhYmxlZCwgdGhpcyBleGNlcHRp
b24gY2Fubm90IGJlIGNhdWdodC4gQ29tcGlsZSB3aXRoIC1zIERJU0FCTEVfRVhDRVBUSU9OX0NB
VENISU5HPTAgb3IgRElTQUJMRV9FWENFUFRJT05fQ0FUQ0hJTkc9MiB0byBjYXRjaC4iOzsKLSAg
ICB9Ci0gIHZhciBFUlJOT19DT0RFUz17RVBFUk06MSxFTk9FTlQ6MixFU1JDSDozLEVJTlRSOjQs
RUlPOjUsRU5YSU86NixFMkJJRzo3LEVOT0VYRUM6OCxFQkFERjo5LEVDSElMRDoxMCxFQUdBSU46
MTEsRVdPVUxEQkxPQ0s6MTEsRU5PTUVNOjEyLEVBQ0NFUzoxMyxFRkFVTFQ6MTQsRU5PVEJMSzox
NSxFQlVTWToxNixFRVhJU1Q6MTcsRVhERVY6MTgsRU5PREVWOjE5LEVOT1RESVI6MjAsRUlTRElS
OjIxLEVJTlZBTDoyMixFTkZJTEU6MjMsRU1GSUxFOjI0LEVOT1RUWToyNSxFVFhUQlNZOjI2LEVG
QklHOjI3LEVOT1NQQzoyOCxFU1BJUEU6MjksRVJPRlM6MzAsRU1MSU5LOjMxLEVQSVBFOjMyLEVE
T006MzMsRVJBTkdFOjM0LEVOT01TRzozNSxFSURSTTozNixFQ0hSTkc6MzcsRUwyTlNZTkM6Mzgs
RUwzSExUOjM5LEVMM1JTVDo0MCxFTE5STkc6NDEsRVVOQVRDSDo0MixFTk9DU0k6NDMsRUwySExU
OjQ0LEVERUFETEs6NDUsRU5PTENLOjQ2LEVCQURFOjUwLEVCQURSOjUxLEVYRlVMTDo1MixFTk9B
Tk86NTMsRUJBRFJRQzo1NCxFQkFEU0xUOjU1LEVERUFETE9DSzo1NixFQkZPTlQ6NTcsRU5PU1RS
OjYwLEVOT0RBVEE6NjEsRVRJTUU6NjIsRU5PU1I6NjMsRU5PTkVUOjY0LEVOT1BLRzo2NSxFUkVN
T1RFOjY2LEVOT0xJTks6NjcsRUFEVjo2OCxFU1JNTlQ6NjksRUNPTU06NzAsRVBST1RPOjcxLEVN
VUxUSUhPUDo3NCxFRE9URE9UOjc2LEVCQURNU0c6NzcsRU5PVFVOSVE6ODAsRUJBREZEOjgxLEVS
RU1DSEc6ODIsRUxJQkFDQzo4MyxFTElCQkFEOjg0LEVMSUJTQ046ODUsRUxJQk1BWDo4NixFTElC
RVhFQzo4NyxFTk9TWVM6ODgsRU5PVEVNUFRZOjkwLEVOQU1FVE9PTE9ORzo5MSxFTE9PUDo5MixF
T1BOT1RTVVBQOjk1LEVQRk5PU1VQUE9SVDo5NixFQ09OTlJFU0VUOjEwNCxFTk9CVUZTOjEwNSxF
QUZOT1NVUFBPUlQ6MTA2LEVQUk9UT1RZUEU6MTA3LEVOT1RTT0NLOjEwOCxFTk9QUk9UT09QVDox
MDksRVNIVVRET1dOOjExMCxFQ09OTlJFRlVTRUQ6MTExLEVBRERSSU5VU0U6MTEyLEVDT05OQUJP
UlRFRDoxMTMsRU5FVFVOUkVBQ0g6MTE0LEVORVRET1dOOjExNSxFVElNRURPVVQ6MTE2LEVIT1NU
RE9XTjoxMTcsRUhPU1RVTlJFQUNIOjExOCxFSU5QUk9HUkVTUzoxMTksRUFMUkVBRFk6MTIwLEVE
RVNUQUREUlJFUToxMjEsRU1TR1NJWkU6MTIyLEVQUk9UT05PU1VQUE9SVDoxMjMsRVNPQ0tUTk9T
VVBQT1JUOjEyNCxFQUREUk5PVEFWQUlMOjEyNSxFTkVUUkVTRVQ6MTI2LEVJU0NPTk46MTI3LEVO
T1RDT05OOjEyOCxFVE9PTUFOWVJFRlM6MTI5LEVVU0VSUzoxMzEsRURRVU9UOjEzMixFU1RBTEU6
MTMzLEVOT1RTVVA6MTM0LEVOT01FRElVTToxMzUsRUlMU0VROjEzOCxFT1ZFUkZMT1c6MTM5LEVD
QU5DRUxFRDoxNDAsRU5PVFJFQ09WRVJBQkxFOjE0MSxFT1dORVJERUFEOjE0MixFU1RSUElQRTox
NDN9OwotICB2YXIgRVJSTk9fTUVTU0FHRVM9ezA6IlN1Y2Nlc3MiLDE6Ik5vdCBzdXBlci11c2Vy
IiwyOiJObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IiwzOiJObyBzdWNoIHByb2Nlc3MiLDQ6Iklu
dGVycnVwdGVkIHN5c3RlbSBjYWxsIiw1OiJJL08gZXJyb3IiLDY6Ik5vIHN1Y2ggZGV2aWNlIG9y
IGFkZHJlc3MiLDc6IkFyZyBsaXN0IHRvbyBsb25nIiw4OiJFeGVjIGZvcm1hdCBlcnJvciIsOToi
QmFkIGZpbGUgbnVtYmVyIiwxMDoiTm8gY2hpbGRyZW4iLDExOiJObyBtb3JlIHByb2Nlc3NlcyIs
MTI6Ik5vdCBlbm91Z2ggY29yZSIsMTM6IlBlcm1pc3Npb24gZGVuaWVkIiwxNDoiQmFkIGFkZHJl
c3MiLDE1OiJCbG9jayBkZXZpY2UgcmVxdWlyZWQiLDE2OiJNb3VudCBkZXZpY2UgYnVzeSIsMTc6
IkZpbGUgZXhpc3RzIiwxODoiQ3Jvc3MtZGV2aWNlIGxpbmsiLDE5OiJObyBzdWNoIGRldmljZSIs
MjA6Ik5vdCBhIGRpcmVjdG9yeSIsMjE6IklzIGEgZGlyZWN0b3J5IiwyMjoiSW52YWxpZCBhcmd1
bWVudCIsMjM6IlRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtIiwyNDoiVG9vIG1hbnkgb3Bl
biBmaWxlcyIsMjU6Ik5vdCBhIHR5cGV3cml0ZXIiLDI2OiJUZXh0IGZpbGUgYnVzeSIsMjc6IkZp
bGUgdG9vIGxhcmdlIiwyODoiTm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UiLDI5OiJJbGxlZ2FsIHNl
ZWsiLDMwOiJSZWFkIG9ubHkgZmlsZSBzeXN0ZW0iLDMxOiJUb28gbWFueSBsaW5rcyIsMzI6IkJy
b2tlbiBwaXBlIiwzMzoiTWF0aCBhcmcgb3V0IG9mIGRvbWFpbiBvZiBmdW5jIiwzNDoiTWF0aCBy
ZXN1bHQgbm90IHJlcHJlc2VudGFibGUiLDM1OiJObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZSIs
MzY6IklkZW50aWZpZXIgcmVtb3ZlZCIsMzc6IkNoYW5uZWwgbnVtYmVyIG91dCBvZiByYW5nZSIs
Mzg6IkxldmVsIDIgbm90IHN5bmNocm9uaXplZCIsMzk6IkxldmVsIDMgaGFsdGVkIiw0MDoiTGV2
ZWwgMyByZXNldCIsNDE6IkxpbmsgbnVtYmVyIG91dCBvZiByYW5nZSIsNDI6IlByb3RvY29sIGRy
aXZlciBub3QgYXR0YWNoZWQiLDQzOiJObyBDU0kgc3RydWN0dXJlIGF2YWlsYWJsZSIsNDQ6Ikxl
dmVsIDIgaGFsdGVkIiw0NToiRGVhZGxvY2sgY29uZGl0aW9uIiw0NjoiTm8gcmVjb3JkIGxvY2tz
IGF2YWlsYWJsZSIsNTA6IkludmFsaWQgZXhjaGFuZ2UiLDUxOiJJbnZhbGlkIHJlcXVlc3QgZGVz
Y3JpcHRvciIsNTI6IkV4Y2hhbmdlIGZ1bGwiLDUzOiJObyBhbm9kZSIsNTQ6IkludmFsaWQgcmVx
dWVzdCBjb2RlIiw1NToiSW52YWxpZCBzbG90Iiw1NjoiRmlsZSBsb2NraW5nIGRlYWRsb2NrIGVy
cm9yIiw1NzoiQmFkIGZvbnQgZmlsZSBmbXQiLDYwOiJEZXZpY2Ugbm90IGEgc3RyZWFtIiw2MToi
Tm8gZGF0YSAoZm9yIG5vIGRlbGF5IGlvKSIsNjI6IlRpbWVyIGV4cGlyZWQiLDYzOiJPdXQgb2Yg
c3RyZWFtcyByZXNvdXJjZXMiLDY0OiJNYWNoaW5lIGlzIG5vdCBvbiB0aGUgbmV0d29yayIsNjU6
IlBhY2thZ2Ugbm90IGluc3RhbGxlZCIsNjY6IlRoZSBvYmplY3QgaXMgcmVtb3RlIiw2NzoiVGhl
IGxpbmsgaGFzIGJlZW4gc2V2ZXJlZCIsNjg6IkFkdmVydGlzZSBlcnJvciIsNjk6IlNybW91bnQg
ZXJyb3IiLDcwOiJDb21tdW5pY2F0aW9uIGVycm9yIG9uIHNlbmQiLDcxOiJQcm90b2NvbCBlcnJv
ciIsNzQ6Ik11bHRpaG9wIGF0dGVtcHRlZCIsNzY6IkNyb3NzIG1vdW50IHBvaW50IChub3QgcmVh
bGx5IGVycm9yKSIsNzc6IlRyeWluZyB0byByZWFkIHVucmVhZGFibGUgbWVzc2FnZSIsODA6Ikdp
dmVuIGxvZy4gbmFtZSBub3QgdW5pcXVlIiw4MToiZi5kLiBpbnZhbGlkIGZvciB0aGlzIG9wZXJh
dGlvbiIsODI6IlJlbW90ZSBhZGRyZXNzIGNoYW5nZWQiLDgzOiJDYW4gICBhY2Nlc3MgYSBuZWVk
ZWQgc2hhcmVkIGxpYiIsODQ6IkFjY2Vzc2luZyBhIGNvcnJ1cHRlZCBzaGFyZWQgbGliIiw4NToi
LmxpYiBzZWN0aW9uIGluIGEub3V0IGNvcnJ1cHRlZCIsODY6IkF0dGVtcHRpbmcgdG8gbGluayBp
biB0b28gbWFueSBsaWJzIiw4NzoiQXR0ZW1wdGluZyB0byBleGVjIGEgc2hhcmVkIGxpYnJhcnki
LDg4OiJGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQiLDkwOiJEaXJlY3Rvcnkgbm90IGVtcHR5Iiw5
MToiRmlsZSBvciBwYXRoIG5hbWUgdG9vIGxvbmciLDkyOiJUb28gbWFueSBzeW1ib2xpYyBsaW5r
cyIsOTU6Ik9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIHRyYW5zcG9ydCBlbmRwb2ludCIsOTY6
IlByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkIiwxMDQ6IkNvbm5lY3Rpb24gcmVzZXQgYnkg
cGVlciIsMTA1OiJObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlIiwxMDY6IkFkZHJlc3MgZmFtaWx5
IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wgZmFtaWx5IiwxMDc6IlByb3RvY29sIHdyb25nIHR5
cGUgZm9yIHNvY2tldCIsMTA4OiJTb2NrZXQgb3BlcmF0aW9uIG9uIG5vbi1zb2NrZXQiLDEwOToi
UHJvdG9jb2wgbm90IGF2YWlsYWJsZSIsMTEwOiJDYW4ndCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0
ZG93biIsMTExOiJDb25uZWN0aW9uIHJlZnVzZWQiLDExMjoiQWRkcmVzcyBhbHJlYWR5IGluIHVz
ZSIsMTEzOiJDb25uZWN0aW9uIGFib3J0ZWQiLDExNDoiTmV0d29yayBpcyB1bnJlYWNoYWJsZSIs
MTE1OiJOZXR3b3JrIGludGVyZmFjZSBpcyBub3QgY29uZmlndXJlZCIsMTE2OiJDb25uZWN0aW9u
IHRpbWVkIG91dCIsMTE3OiJIb3N0IGlzIGRvd24iLDExODoiSG9zdCBpcyB1bnJlYWNoYWJsZSIs
MTE5OiJDb25uZWN0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MiLDEyMDoiU29ja2V0IGFscmVhZHkg
Y29ubmVjdGVkIiwxMjE6IkRlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQiLDEyMjoiTWVzc2Fn
ZSB0b28gbG9uZyIsMTIzOiJVbmtub3duIHByb3RvY29sIiwxMjQ6IlNvY2tldCB0eXBlIG5vdCBz
dXBwb3J0ZWQiLDEyNToiQWRkcmVzcyBub3QgYXZhaWxhYmxlIiwxMjY6IkNvbm5lY3Rpb24gcmVz
ZXQgYnkgbmV0d29yayIsMTI3OiJTb2NrZXQgaXMgYWxyZWFkeSBjb25uZWN0ZWQiLDEyODoiU29j
a2V0IGlzIG5vdCBjb25uZWN0ZWQiLDEyOToiVG9vIG1hbnkgcmVmZXJlbmNlcyIsMTMxOiJUb28g
bWFueSB1c2VycyIsMTMyOiJRdW90YSBleGNlZWRlZCIsMTMzOiJTdGFsZSBmaWxlIGhhbmRsZSIs
MTM0OiJOb3Qgc3VwcG9ydGVkIiwxMzU6Ik5vIG1lZGl1bSAoaW4gdGFwZSBkcml2ZSkiLDEzODoi
SWxsZWdhbCBieXRlIHNlcXVlbmNlIiwxMzk6IlZhbHVlIHRvbyBsYXJnZSBmb3IgZGVmaW5lZCBk
YXRhIHR5cGUiLDE0MDoiT3BlcmF0aW9uIGNhbmNlbGVkIiwxNDE6IlN0YXRlIG5vdCByZWNvdmVy
YWJsZSIsMTQyOiJQcmV2aW91cyBvd25lciBkaWVkIiwxNDM6IlN0cmVhbXMgcGlwZSBlcnJvciJ9
OwotICB2YXIgX19fZXJybm9fc3RhdGU9MDtmdW5jdGlvbiBfX19zZXRFcnJObyh2YWx1ZSkgewot
ICAgICAgLy8gRm9yIGNvbnZlbmllbnQgc2V0dGluZyBhbmQgcmV0dXJuaW5nIG9mIGVycm5vLgot
ICAgICAgSEVBUDMyWygoX19fZXJybm9fc3RhdGUpPj4yKV09dmFsdWUKLSAgICAgIHJldHVybiB2
YWx1ZTsKLSAgICB9Ci0gIHZhciBWRlM9dW5kZWZpbmVkOwotICB2YXIgUEFUSD17c3BsaXRQYXRo
OmZ1bmN0aW9uIChmaWxlbmFtZSkgewotICAgICAgICB2YXIgc3BsaXRQYXRoUmUgPSAvXihcLz98
KShbXHNcU10qPykoKD86XC57MSwyfXxbXlwvXSs/fCkoXC5bXi5cL10qfCkpKD86W1wvXSopJC87
Ci0gICAgICAgIHJldHVybiBzcGxpdFBhdGhSZS5leGVjKGZpbGVuYW1lKS5zbGljZSgxKTsKLSAg
ICAgIH0sbm9ybWFsaXplQXJyYXk6ZnVuY3Rpb24gKHBhcnRzLCBhbGxvd0Fib3ZlUm9vdCkgewot
ICAgICAgICAvLyBpZiB0aGUgcGF0aCB0cmllcyB0byBnbyBhYm92ZSB0aGUgcm9vdCwgYHVwYCBl
bmRzIHVwID4gMAotICAgICAgICB2YXIgdXAgPSAwOwotICAgICAgICBmb3IgKHZhciBpID0gcGFy
dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKLSAgICAgICAgICB2YXIgbGFzdCA9IHBhcnRz
W2ldOwotICAgICAgICAgIGlmIChsYXN0ID09PSAnLicpIHsKLSAgICAgICAgICAgIHBhcnRzLnNw
bGljZShpLCAxKTsKLSAgICAgICAgICB9IGVsc2UgaWYgKGxhc3QgPT09ICcuLicpIHsKLSAgICAg
ICAgICAgIHBhcnRzLnNwbGljZShpLCAxKTsKLSAgICAgICAgICAgIHVwKys7Ci0gICAgICAgICAg
fSBlbHNlIGlmICh1cCkgewotICAgICAgICAgICAgcGFydHMuc3BsaWNlKGksIDEpOwotICAgICAg
ICAgICAgdXAtLTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgLy8gaWYgdGhlIHBh
dGggaXMgYWxsb3dlZCB0byBnbyBhYm92ZSB0aGUgcm9vdCwgcmVzdG9yZSBsZWFkaW5nIC4ucwot
ICAgICAgICBpZiAoYWxsb3dBYm92ZVJvb3QpIHsKLSAgICAgICAgICBmb3IgKDsgdXAtLTsgdXAp
IHsKLSAgICAgICAgICAgIHBhcnRzLnVuc2hpZnQoJy4uJyk7Ci0gICAgICAgICAgfQotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiBwYXJ0czsKLSAgICAgIH0sbm9ybWFsaXplOmZ1bmN0aW9uIChw
YXRoKSB7Ci0gICAgICAgIHZhciBpc0Fic29sdXRlID0gcGF0aC5jaGFyQXQoMCkgPT09ICcvJywK
LSAgICAgICAgICAgIHRyYWlsaW5nU2xhc2ggPSBwYXRoLnN1YnN0cigtMSkgPT09ICcvJzsKLSAg
ICAgICAgLy8gTm9ybWFsaXplIHRoZSBwYXRoCi0gICAgICAgIHBhdGggPSBQQVRILm5vcm1hbGl6
ZUFycmF5KHBhdGguc3BsaXQoJy8nKS5maWx0ZXIoZnVuY3Rpb24ocCkgewotICAgICAgICAgIHJl
dHVybiAhIXA7Ci0gICAgICAgIH0pLCAhaXNBYnNvbHV0ZSkuam9pbignLycpOwotICAgICAgICBp
ZiAoIXBhdGggJiYgIWlzQWJzb2x1dGUpIHsKLSAgICAgICAgICBwYXRoID0gJy4nOwotICAgICAg
ICB9Ci0gICAgICAgIGlmIChwYXRoICYmIHRyYWlsaW5nU2xhc2gpIHsKLSAgICAgICAgICBwYXRo
ICs9ICcvJzsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gKGlzQWJzb2x1dGUgPyAnLycgOiAn
JykgKyBwYXRoOwotICAgICAgfSxkaXJuYW1lOmZ1bmN0aW9uIChwYXRoKSB7Ci0gICAgICAgIHZh
ciByZXN1bHQgPSBQQVRILnNwbGl0UGF0aChwYXRoKSwKLSAgICAgICAgICAgIHJvb3QgPSByZXN1
bHRbMF0sCi0gICAgICAgICAgICBkaXIgPSByZXN1bHRbMV07Ci0gICAgICAgIGlmICghcm9vdCAm
JiAhZGlyKSB7Ci0gICAgICAgICAgLy8gTm8gZGlybmFtZSB3aGF0c29ldmVyCi0gICAgICAgICAg
cmV0dXJuICcuJzsKLSAgICAgICAgfQotICAgICAgICBpZiAoZGlyKSB7Ci0gICAgICAgICAgLy8g
SXQgaGFzIGEgZGlybmFtZSwgc3RyaXAgdHJhaWxpbmcgc2xhc2gKLSAgICAgICAgICBkaXIgPSBk
aXIuc3Vic3RyKDAsIGRpci5sZW5ndGggLSAxKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
cm9vdCArIGRpcjsKLSAgICAgIH0sYmFzZW5hbWU6ZnVuY3Rpb24gKHBhdGgsIGV4dCkgewotICAg
ICAgICAvLyBFTVNDUklQVEVOIHJldHVybiAnLycnIGZvciAnLycsIG5vdCBhbiBlbXB0eSBzdHJp
bmcKLSAgICAgICAgaWYgKHBhdGggPT09ICcvJykgcmV0dXJuICcvJzsKLSAgICAgICAgdmFyIGYg
PSBQQVRILnNwbGl0UGF0aChwYXRoKVsyXTsKLSAgICAgICAgaWYgKGV4dCAmJiBmLnN1YnN0cigt
MSAqIGV4dC5sZW5ndGgpID09PSBleHQpIHsKLSAgICAgICAgICBmID0gZi5zdWJzdHIoMCwgZi5s
ZW5ndGggLSBleHQubGVuZ3RoKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gZjsKLSAgICAg
IH0sam9pbjpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciBwYXRocyA9IEFycmF5LnByb3RvdHlw
ZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCk7Ci0gICAgICAgIHJldHVybiBQQVRILm5vcm1hbGl6
ZShwYXRocy5maWx0ZXIoZnVuY3Rpb24ocCwgaW5kZXgpIHsKLSAgICAgICAgICBpZiAodHlwZW9m
IHAgIT09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1
bWVudHMgdG8gcGF0aC5qb2luIG11c3QgYmUgc3RyaW5ncycpOwotICAgICAgICAgIH0KLSAgICAg
ICAgICByZXR1cm4gcDsKLSAgICAgICAgfSkuam9pbignLycpKTsKLSAgICAgIH0scmVzb2x2ZTpm
dW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciByZXNvbHZlZFBhdGggPSAnJywKLSAgICAgICAgICBy
ZXNvbHZlZEFic29sdXRlID0gZmFsc2U7Ci0gICAgICAgIGZvciAodmFyIGkgPSBhcmd1bWVudHMu
bGVuZ3RoIC0gMTsgaSA+PSAtMSAmJiAhcmVzb2x2ZWRBYnNvbHV0ZTsgaS0tKSB7Ci0gICAgICAg
ICAgdmFyIHBhdGggPSAoaSA+PSAwKSA/IGFyZ3VtZW50c1tpXSA6IEZTLmN3ZCgpOwotICAgICAg
ICAgIC8vIFNraXAgZW1wdHkgYW5kIGludmFsaWQgZW50cmllcwotICAgICAgICAgIGlmICh0eXBl
b2YgcGF0aCAhPT0gJ3N0cmluZycpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3Io
J0FyZ3VtZW50cyB0byBwYXRoLnJlc29sdmUgbXVzdCBiZSBzdHJpbmdzJyk7Ci0gICAgICAgICAg
fSBlbHNlIGlmICghcGF0aCkgewotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgfQot
ICAgICAgICAgIHJlc29sdmVkUGF0aCA9IHBhdGggKyAnLycgKyByZXNvbHZlZFBhdGg7Ci0gICAg
ICAgICAgcmVzb2x2ZWRBYnNvbHV0ZSA9IHBhdGguY2hhckF0KDApID09PSAnLyc7Ci0gICAgICAg
IH0KLSAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB0aGUgcGF0aCBzaG91bGQgYmUgcmVzb2x2ZWQg
dG8gYSBmdWxsIGFic29sdXRlIHBhdGgsIGJ1dAotICAgICAgICAvLyBoYW5kbGUgcmVsYXRpdmUg
cGF0aHMgdG8gYmUgc2FmZSAobWlnaHQgaGFwcGVuIHdoZW4gcHJvY2Vzcy5jd2QoKSBmYWlscykK
LSAgICAgICAgcmVzb2x2ZWRQYXRoID0gUEFUSC5ub3JtYWxpemVBcnJheShyZXNvbHZlZFBhdGgu
c3BsaXQoJy8nKS5maWx0ZXIoZnVuY3Rpb24ocCkgewotICAgICAgICAgIHJldHVybiAhIXA7Ci0g
ICAgICAgIH0pLCAhcmVzb2x2ZWRBYnNvbHV0ZSkuam9pbignLycpOwotICAgICAgICByZXR1cm4g
KChyZXNvbHZlZEFic29sdXRlID8gJy8nIDogJycpICsgcmVzb2x2ZWRQYXRoKSB8fCAnLic7Ci0g
ICAgICB9LHJlbGF0aXZlOmZ1bmN0aW9uIChmcm9tLCB0bykgewotICAgICAgICBmcm9tID0gUEFU
SC5yZXNvbHZlKGZyb20pLnN1YnN0cigxKTsKLSAgICAgICAgdG8gPSBQQVRILnJlc29sdmUodG8p
LnN1YnN0cigxKTsKLSAgICAgICAgZnVuY3Rpb24gdHJpbShhcnIpIHsKLSAgICAgICAgICB2YXIg
c3RhcnQgPSAwOwotICAgICAgICAgIGZvciAoOyBzdGFydCA8IGFyci5sZW5ndGg7IHN0YXJ0Kysp
IHsKLSAgICAgICAgICAgIGlmIChhcnJbc3RhcnRdICE9PSAnJykgYnJlYWs7Ci0gICAgICAgICAg
fQotICAgICAgICAgIHZhciBlbmQgPSBhcnIubGVuZ3RoIC0gMTsKLSAgICAgICAgICBmb3IgKDsg
ZW5kID49IDA7IGVuZC0tKSB7Ci0gICAgICAgICAgICBpZiAoYXJyW2VuZF0gIT09ICcnKSBicmVh
azsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHN0YXJ0ID4gZW5kKSByZXR1cm4gW107Ci0g
ICAgICAgICAgcmV0dXJuIGFyci5zbGljZShzdGFydCwgZW5kIC0gc3RhcnQgKyAxKTsKLSAgICAg
ICAgfQotICAgICAgICB2YXIgZnJvbVBhcnRzID0gdHJpbShmcm9tLnNwbGl0KCcvJykpOwotICAg
ICAgICB2YXIgdG9QYXJ0cyA9IHRyaW0odG8uc3BsaXQoJy8nKSk7Ci0gICAgICAgIHZhciBsZW5n
dGggPSBNYXRoLm1pbihmcm9tUGFydHMubGVuZ3RoLCB0b1BhcnRzLmxlbmd0aCk7Ci0gICAgICAg
IHZhciBzYW1lUGFydHNMZW5ndGggPSBsZW5ndGg7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgbGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICBpZiAoZnJvbVBhcnRzW2ldICE9PSB0b1BhcnRz
W2ldKSB7Ci0gICAgICAgICAgICBzYW1lUGFydHNMZW5ndGggPSBpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHZhciBvdXRwdXRQYXJ0cyA9IFtd
OwotICAgICAgICBmb3IgKHZhciBpID0gc2FtZVBhcnRzTGVuZ3RoOyBpIDwgZnJvbVBhcnRzLmxl
bmd0aDsgaSsrKSB7Ci0gICAgICAgICAgb3V0cHV0UGFydHMucHVzaCgnLi4nKTsKLSAgICAgICAg
fQotICAgICAgICBvdXRwdXRQYXJ0cyA9IG91dHB1dFBhcnRzLmNvbmNhdCh0b1BhcnRzLnNsaWNl
KHNhbWVQYXJ0c0xlbmd0aCkpOwotICAgICAgICByZXR1cm4gb3V0cHV0UGFydHMuam9pbignLycp
OwotICAgICAgfX07Ci0gIHZhciBUVFk9e3R0eXM6W10scmVnaXN0ZXI6ZnVuY3Rpb24gKGRldiwg
b3BzKSB7Ci0gICAgICAgIFRUWS50dHlzW2Rldl0gPSB7IGlucHV0OiBbXSwgb3V0cHV0OiBbXSwg
b3BzOiBvcHMgfTsKLSAgICAgICAgRlMucmVnaXN0ZXJEZXZpY2UoZGV2LCBUVFkuc3RyZWFtX29w
cyk7Ci0gICAgICB9LHN0cmVhbV9vcHM6e29wZW46ZnVuY3Rpb24gKHN0cmVhbSkgewotICAgICAg
ICAgIC8vIHRoaXMgd291bGRuJ3QgYmUgcmVxdWlyZWQgaWYgdGhlIGxpYnJhcnkgd2Fzbid0IGV2
YWwnZCBhdCBmaXJzdC4uLgotICAgICAgICAgIGlmICghVFRZLnV0ZjgpIHsKLSAgICAgICAgICAg
IFRUWS51dGY4ID0gbmV3IFJ1bnRpbWUuVVRGOFByb2Nlc3NvcigpOwotICAgICAgICAgIH0KLSAg
ICAgICAgICB2YXIgdHR5ID0gVFRZLnR0eXNbc3RyZWFtLm5vZGUucmRldl07Ci0gICAgICAgICAg
aWYgKCF0dHkpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NP
REVTLkVOT0RFVik7Ci0gICAgICAgICAgfQotICAgICAgICAgIHN0cmVhbS50dHkgPSB0dHk7Ci0g
ICAgICAgICAgc3RyZWFtLnNlZWthYmxlID0gZmFsc2U7Ci0gICAgICAgIH0sY2xvc2U6ZnVuY3Rp
b24gKHN0cmVhbSkgewotICAgICAgICAgIC8vIGZsdXNoIGFueSBwZW5kaW5nIGxpbmUgZGF0YQot
ICAgICAgICAgIGlmIChzdHJlYW0udHR5Lm91dHB1dC5sZW5ndGgpIHsKLSAgICAgICAgICAgIHN0
cmVhbS50dHkub3BzLnB1dF9jaGFyKHN0cmVhbS50dHksIDEwKTsKLSAgICAgICAgICB9Ci0gICAg
ICAgIH0scmVhZDpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3Mg
LyogaWdub3JlZCAqLykgewotICAgICAgICAgIGlmICghc3RyZWFtLnR0eSB8fCAhc3RyZWFtLnR0
eS5vcHMuZ2V0X2NoYXIpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVOWElPKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgdmFyIGJ5dGVzUmVhZCA9
IDA7Ci0gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewotICAgICAg
ICAgICAgdmFyIHJlc3VsdDsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgIHJlc3Vs
dCA9IHN0cmVhbS50dHkub3BzLmdldF9jaGFyKHN0cmVhbS50dHkpOwotICAgICAgICAgICAgfSBj
YXRjaCAoZSkgewotICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FSU8pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdW5k
ZWZpbmVkICYmIGJ5dGVzUmVhZCA9PT0gMCkgewotICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMu
RXJybm9FcnJvcihFUlJOT19DT0RFUy5FQUdBSU4pOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHVuZGVmaW5lZCkgYnJlYWs7Ci0g
ICAgICAgICAgICBieXRlc1JlYWQrKzsKLSAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQraV0gPSBy
ZXN1bHQ7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChieXRlc1JlYWQpIHsKLSAgICAgICAg
ICAgIHN0cmVhbS5ub2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7Ci0gICAgICAgICAgfQotICAg
ICAgICAgIHJldHVybiBieXRlc1JlYWQ7Ci0gICAgICAgIH0sd3JpdGU6ZnVuY3Rpb24gKHN0cmVh
bSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zKSB7Ci0gICAgICAgICAgaWYgKCFzdHJlYW0u
dHR5IHx8ICFzdHJlYW0udHR5Lm9wcy5wdXRfY2hhcikgewotICAgICAgICAgICAgdGhyb3cgbmV3
IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5YSU8pOwotICAgICAgICAgIH0KLSAgICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICB0cnkgewot
ICAgICAgICAgICAgICBzdHJlYW0udHR5Lm9wcy5wdXRfY2hhcihzdHJlYW0udHR5LCBidWZmZXJb
b2Zmc2V0K2ldKTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlPKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICB9Ci0gICAgICAgICAgaWYgKGxlbmd0aCkgewotICAgICAgICAgICAgc3RyZWFtLm5v
ZGUudGltZXN0YW1wID0gRGF0ZS5ub3coKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJu
IGk7Ci0gICAgICAgIH19LGRlZmF1bHRfdHR5X29wczp7Z2V0X2NoYXI6ZnVuY3Rpb24gKHR0eSkg
ewotICAgICAgICAgIGlmICghdHR5LmlucHV0Lmxlbmd0aCkgewotICAgICAgICAgICAgdmFyIHJl
c3VsdCA9IG51bGw7Ci0gICAgICAgICAgICBpZiAoRU5WSVJPTk1FTlRfSVNfTk9ERSkgewotICAg
ICAgICAgICAgICBpZiAocHJvY2Vzcy5zdGRpbi5kZXN0cm95ZWQpIHsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gdW5kZWZpbmVkOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIHJlc3Vs
dCA9IHByb2Nlc3Muc3RkaW4ucmVhZCgpOwotICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Yg
d2luZG93ICE9ICd1bmRlZmluZWQnICYmCi0gICAgICAgICAgICAgIHR5cGVvZiB3aW5kb3cucHJv
bXB0ID09ICdmdW5jdGlvbicpIHsKLSAgICAgICAgICAgICAgLy8gQnJvd3Nlci4KLSAgICAgICAg
ICAgICAgcmVzdWx0ID0gd2luZG93LnByb21wdCgnSW5wdXQ6ICcpOyAgLy8gcmV0dXJucyBudWxs
IG9uIGNhbmNlbAotICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7Ci0gICAgICAg
ICAgICAgICAgcmVzdWx0ICs9ICdcbic7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0g
ZWxzZSBpZiAodHlwZW9mIHJlYWRsaW5lID09ICdmdW5jdGlvbicpIHsKLSAgICAgICAgICAgICAg
Ly8gQ29tbWFuZCBsaW5lLgotICAgICAgICAgICAgICByZXN1bHQgPSByZWFkbGluZSgpOwotICAg
ICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0
ICs9ICdcbic7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
ICghcmVzdWx0KSB7Ci0gICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgdHR5LmlucHV0ID0gaW50QXJyYXlGcm9tU3RyaW5nKHJlc3VsdCwgdHJ1ZSk7
Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiB0dHkuaW5wdXQuc2hpZnQoKTsKLSAgICAg
ICAgfSxwdXRfY2hhcjpmdW5jdGlvbiAodHR5LCB2YWwpIHsKLSAgICAgICAgICBpZiAodmFsID09
PSBudWxsIHx8IHZhbCA9PT0gMTApIHsKLSAgICAgICAgICAgIE1vZHVsZVsncHJpbnQnXSh0dHku
b3V0cHV0LmpvaW4oJycpKTsKLSAgICAgICAgICAgIHR0eS5vdXRwdXQgPSBbXTsKLSAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgdHR5Lm91dHB1dC5wdXNoKFRUWS51dGY4LnByb2Nlc3ND
Q2hhcih2YWwpKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH19LGRlZmF1bHRfdHR5MV9vcHM6e3B1
dF9jaGFyOmZ1bmN0aW9uICh0dHksIHZhbCkgewotICAgICAgICAgIGlmICh2YWwgPT09IG51bGwg
fHwgdmFsID09PSAxMCkgewotICAgICAgICAgICAgTW9kdWxlWydwcmludEVyciddKHR0eS5vdXRw
dXQuam9pbignJykpOwotICAgICAgICAgICAgdHR5Lm91dHB1dCA9IFtdOwotICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICB0dHkub3V0cHV0LnB1c2goVFRZLnV0ZjgucHJvY2Vzc0NDaGFy
KHZhbCkpOwotICAgICAgICAgIH0KLSAgICAgICAgfX19OwotICB2YXIgTUVNRlM9e21vdW50OmZ1
bmN0aW9uIChtb3VudCkgewotICAgICAgICByZXR1cm4gTUVNRlMuY3JlYXRlX25vZGUobnVsbCwg
Jy8nLCAwMDQwMDAwIHwgMDc3NywgMCk7Ci0gICAgICB9LGNyZWF0ZV9ub2RlOmZ1bmN0aW9uIChw
YXJlbnQsIG5hbWUsIG1vZGUsIGRldikgewotICAgICAgICBpZiAoRlMuaXNCbGtkZXYobW9kZSkg
fHwgRlMuaXNGSUZPKG1vZGUpKSB7Ci0gICAgICAgICAgLy8gbm8gc3VwcG9ydGVkCi0gICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9
Ci0gICAgICAgIHZhciBub2RlID0gRlMuY3JlYXRlTm9kZShwYXJlbnQsIG5hbWUsIG1vZGUsIGRl
dik7Ci0gICAgICAgIGlmIChGUy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgbm9kZS5u
b2RlX29wcyA9IHsKLSAgICAgICAgICAgIGdldGF0dHI6IE1FTUZTLm5vZGVfb3BzLmdldGF0dHIs
Ci0gICAgICAgICAgICBzZXRhdHRyOiBNRU1GUy5ub2RlX29wcy5zZXRhdHRyLAotICAgICAgICAg
ICAgbG9va3VwOiBNRU1GUy5ub2RlX29wcy5sb29rdXAsCi0gICAgICAgICAgICBta25vZDogTUVN
RlMubm9kZV9vcHMubWtub2QsCi0gICAgICAgICAgICBta25vZDogTUVNRlMubm9kZV9vcHMubWtu
b2QsCi0gICAgICAgICAgICByZW5hbWU6IE1FTUZTLm5vZGVfb3BzLnJlbmFtZSwKLSAgICAgICAg
ICAgIHVubGluazogTUVNRlMubm9kZV9vcHMudW5saW5rLAotICAgICAgICAgICAgcm1kaXI6IE1F
TUZTLm5vZGVfb3BzLnJtZGlyLAotICAgICAgICAgICAgcmVhZGRpcjogTUVNRlMubm9kZV9vcHMu
cmVhZGRpciwKLSAgICAgICAgICAgIHN5bWxpbms6IE1FTUZTLm5vZGVfb3BzLnN5bWxpbmsKLSAg
ICAgICAgICB9OwotICAgICAgICAgIG5vZGUuc3RyZWFtX29wcyA9IHsKLSAgICAgICAgICAgIGxs
c2VlazogTUVNRlMuc3RyZWFtX29wcy5sbHNlZWsKLSAgICAgICAgICB9OwotICAgICAgICAgIG5v
ZGUuY29udGVudHMgPSB7fTsKLSAgICAgICAgfSBlbHNlIGlmIChGUy5pc0ZpbGUobm9kZS5tb2Rl
KSkgewotICAgICAgICAgIG5vZGUubm9kZV9vcHMgPSB7Ci0gICAgICAgICAgICBnZXRhdHRyOiBN
RU1GUy5ub2RlX29wcy5nZXRhdHRyLAotICAgICAgICAgICAgc2V0YXR0cjogTUVNRlMubm9kZV9v
cHMuc2V0YXR0cgotICAgICAgICAgIH07Ci0gICAgICAgICAgbm9kZS5zdHJlYW1fb3BzID0gewot
ICAgICAgICAgICAgbGxzZWVrOiBNRU1GUy5zdHJlYW1fb3BzLmxsc2VlaywKLSAgICAgICAgICAg
IHJlYWQ6IE1FTUZTLnN0cmVhbV9vcHMucmVhZCwKLSAgICAgICAgICAgIHdyaXRlOiBNRU1GUy5z
dHJlYW1fb3BzLndyaXRlLAotICAgICAgICAgICAgYWxsb2NhdGU6IE1FTUZTLnN0cmVhbV9vcHMu
YWxsb2NhdGUsCi0gICAgICAgICAgICBtbWFwOiBNRU1GUy5zdHJlYW1fb3BzLm1tYXAKLSAgICAg
ICAgICB9OwotICAgICAgICAgIG5vZGUuY29udGVudHMgPSBbXTsKLSAgICAgICAgfSBlbHNlIGlm
IChGUy5pc0xpbmsobm9kZS5tb2RlKSkgewotICAgICAgICAgIG5vZGUubm9kZV9vcHMgPSB7Ci0g
ICAgICAgICAgICBnZXRhdHRyOiBNRU1GUy5ub2RlX29wcy5nZXRhdHRyLAotICAgICAgICAgICAg
c2V0YXR0cjogTUVNRlMubm9kZV9vcHMuc2V0YXR0ciwKLSAgICAgICAgICAgIHJlYWRsaW5rOiBN
RU1GUy5ub2RlX29wcy5yZWFkbGluawotICAgICAgICAgIH07Ci0gICAgICAgICAgbm9kZS5zdHJl
YW1fb3BzID0ge307Ci0gICAgICAgIH0gZWxzZSBpZiAoRlMuaXNDaHJkZXYobm9kZS5tb2RlKSkg
ewotICAgICAgICAgIG5vZGUubm9kZV9vcHMgPSB7Ci0gICAgICAgICAgICBnZXRhdHRyOiBNRU1G
Uy5ub2RlX29wcy5nZXRhdHRyLAotICAgICAgICAgICAgc2V0YXR0cjogTUVNRlMubm9kZV9vcHMu
c2V0YXR0cgotICAgICAgICAgIH07Ci0gICAgICAgICAgbm9kZS5zdHJlYW1fb3BzID0gRlMuY2hy
ZGV2X3N0cmVhbV9vcHM7Ci0gICAgICAgIH0KLSAgICAgICAgbm9kZS50aW1lc3RhbXAgPSBEYXRl
Lm5vdygpOwotICAgICAgICAvLyBhZGQgdGhlIG5ldyBub2RlIHRvIHRoZSBwYXJlbnQKLSAgICAg
ICAgaWYgKHBhcmVudCkgewotICAgICAgICAgIHBhcmVudC5jb250ZW50c1tuYW1lXSA9IG5vZGU7
Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICB9LG5vZGVfb3BzOntnZXRh
dHRyOmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAgICAgdmFyIGF0dHIgPSB7fTsKLSAgICAgICAg
ICAvLyBkZXZpY2UgbnVtYmVycyByZXVzZSBpbm9kZSBudW1iZXJzLgotICAgICAgICAgIGF0dHIu
ZGV2ID0gRlMuaXNDaHJkZXYobm9kZS5tb2RlKSA/IG5vZGUuaWQgOiAxOwotICAgICAgICAgIGF0
dHIuaW5vID0gbm9kZS5pZDsKLSAgICAgICAgICBhdHRyLm1vZGUgPSBub2RlLm1vZGU7Ci0gICAg
ICAgICAgYXR0ci5ubGluayA9IDE7Ci0gICAgICAgICAgYXR0ci51aWQgPSAwOwotICAgICAgICAg
IGF0dHIuZ2lkID0gMDsKLSAgICAgICAgICBhdHRyLnJkZXYgPSBub2RlLnJkZXY7Ci0gICAgICAg
ICAgaWYgKEZTLmlzRGlyKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICAgIGF0dHIuc2l6ZSA9IDQw
OTY7Ci0gICAgICAgICAgfSBlbHNlIGlmIChGUy5pc0ZpbGUobm9kZS5tb2RlKSkgewotICAgICAg
ICAgICAgYXR0ci5zaXplID0gbm9kZS5jb250ZW50cy5sZW5ndGg7Ci0gICAgICAgICAgfSBlbHNl
IGlmIChGUy5pc0xpbmsobm9kZS5tb2RlKSkgewotICAgICAgICAgICAgYXR0ci5zaXplID0gbm9k
ZS5saW5rLmxlbmd0aDsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXR0ci5zaXpl
ID0gMDsKLSAgICAgICAgICB9Ci0gICAgICAgICAgYXR0ci5hdGltZSA9IG5ldyBEYXRlKG5vZGUu
dGltZXN0YW1wKTsKLSAgICAgICAgICBhdHRyLm10aW1lID0gbmV3IERhdGUobm9kZS50aW1lc3Rh
bXApOwotICAgICAgICAgIGF0dHIuY3RpbWUgPSBuZXcgRGF0ZShub2RlLnRpbWVzdGFtcCk7Ci0g
ICAgICAgICAgLy8gTk9URTogSW4gb3VyIGltcGxlbWVudGF0aW9uLCBzdF9ibG9ja3MgPSBNYXRo
LmNlaWwoc3Rfc2l6ZS9zdF9ibGtzaXplKSwKLSAgICAgICAgICAvLyAgICAgICBidXQgdGhpcyBp
cyBub3QgcmVxdWlyZWQgYnkgdGhlIHN0YW5kYXJkLgotICAgICAgICAgIGF0dHIuYmxrc2l6ZSA9
IDQwOTY7Ci0gICAgICAgICAgYXR0ci5ibG9ja3MgPSBNYXRoLmNlaWwoYXR0ci5zaXplIC8gYXR0
ci5ibGtzaXplKTsKLSAgICAgICAgICByZXR1cm4gYXR0cjsKLSAgICAgICAgfSxzZXRhdHRyOmZ1
bmN0aW9uIChub2RlLCBhdHRyKSB7Ci0gICAgICAgICAgaWYgKGF0dHIubW9kZSAhPT0gdW5kZWZp
bmVkKSB7Ci0gICAgICAgICAgICBub2RlLm1vZGUgPSBhdHRyLm1vZGU7Ci0gICAgICAgICAgfQot
ICAgICAgICAgIGlmIChhdHRyLnRpbWVzdGFtcCAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAg
ICBub2RlLnRpbWVzdGFtcCA9IGF0dHIudGltZXN0YW1wOwotICAgICAgICAgIH0KLSAgICAgICAg
ICBpZiAoYXR0ci5zaXplICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgIHZhciBjb250ZW50
cyA9IG5vZGUuY29udGVudHM7Ci0gICAgICAgICAgICBpZiAoYXR0ci5zaXplIDwgY29udGVudHMu
bGVuZ3RoKSBjb250ZW50cy5sZW5ndGggPSBhdHRyLnNpemU7Ci0gICAgICAgICAgICBlbHNlIHdo
aWxlIChhdHRyLnNpemUgPiBjb250ZW50cy5sZW5ndGgpIGNvbnRlbnRzLnB1c2goMCk7Ci0gICAg
ICAgICAgfQotICAgICAgICB9LGxvb2t1cDpmdW5jdGlvbiAocGFyZW50LCBuYW1lKSB7Ci0gICAg
ICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PRU5UKTsKLSAgICAg
ICAgfSxta25vZDpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBtb2RlLCBkZXYpIHsKLSAgICAgICAg
ICByZXR1cm4gTUVNRlMuY3JlYXRlX25vZGUocGFyZW50LCBuYW1lLCBtb2RlLCBkZXYpOwotICAg
ICAgICB9LHJlbmFtZTpmdW5jdGlvbiAob2xkX25vZGUsIG5ld19kaXIsIG5ld19uYW1lKSB7Ci0g
ICAgICAgICAgLy8gaWYgd2UncmUgb3ZlcndyaXRpbmcgYSBkaXJlY3RvcnkgYXQgbmV3X25hbWUs
IG1ha2Ugc3VyZSBpdCdzIGVtcHR5LgotICAgICAgICAgIGlmIChGUy5pc0RpcihvbGRfbm9kZS5t
b2RlKSkgewotICAgICAgICAgICAgdmFyIG5ld19ub2RlOwotICAgICAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICAgICAgbmV3X25vZGUgPSBGUy5sb29rdXBOb2RlKG5ld19kaXIsIG5ld19uYW1lKTsK
LSAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
IChuZXdfbm9kZSkgewotICAgICAgICAgICAgICBmb3IgKHZhciBpIGluIG5ld19ub2RlLmNvbnRl
bnRzKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09E
RVMuRU5PVEVNUFRZKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAg
IH0KLSAgICAgICAgICAvLyBkbyB0aGUgaW50ZXJuYWwgcmV3aXJpbmcKLSAgICAgICAgICBkZWxl
dGUgb2xkX25vZGUucGFyZW50LmNvbnRlbnRzW29sZF9ub2RlLm5hbWVdOwotICAgICAgICAgIG9s
ZF9ub2RlLm5hbWUgPSBuZXdfbmFtZTsKLSAgICAgICAgICBuZXdfZGlyLmNvbnRlbnRzW25ld19u
YW1lXSA9IG9sZF9ub2RlOwotICAgICAgICB9LHVubGluazpmdW5jdGlvbiAocGFyZW50LCBuYW1l
KSB7Ci0gICAgICAgICAgZGVsZXRlIHBhcmVudC5jb250ZW50c1tuYW1lXTsKLSAgICAgICAgfSxy
bWRpcjpmdW5jdGlvbiAocGFyZW50LCBuYW1lKSB7Ci0gICAgICAgICAgdmFyIG5vZGUgPSBGUy5s
b29rdXBOb2RlKHBhcmVudCwgbmFtZSk7Ci0gICAgICAgICAgZm9yICh2YXIgaSBpbiBub2RlLmNv
bnRlbnRzKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RF
Uy5FTk9URU1QVFkpOwotICAgICAgICAgIH0KLSAgICAgICAgICBkZWxldGUgcGFyZW50LmNvbnRl
bnRzW25hbWVdOwotICAgICAgICB9LHJlYWRkaXI6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAg
ICB2YXIgZW50cmllcyA9IFsnLicsICcuLiddCi0gICAgICAgICAgZm9yICh2YXIga2V5IGluIG5v
ZGUuY29udGVudHMpIHsKLSAgICAgICAgICAgIGlmICghbm9kZS5jb250ZW50cy5oYXNPd25Qcm9w
ZXJ0eShrZXkpKSB7Ci0gICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgZW50cmllcy5wdXNoKGtleSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVy
biBlbnRyaWVzOwotICAgICAgICB9LHN5bWxpbms6ZnVuY3Rpb24gKHBhcmVudCwgbmV3bmFtZSwg
b2xkcGF0aCkgewotICAgICAgICAgIHZhciBub2RlID0gTUVNRlMuY3JlYXRlX25vZGUocGFyZW50
LCBuZXduYW1lLCAwNzc3IHwgMDEyMDAwMCwgMCk7Ci0gICAgICAgICAgbm9kZS5saW5rID0gb2xk
cGF0aDsKLSAgICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAgICAgfSxyZWFkbGluazpmdW5jdGlv
biAobm9kZSkgewotICAgICAgICAgIGlmICghRlMuaXNMaW5rKG5vZGUubW9kZSkpIHsKLSAgICAg
ICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAg
ICAgICAgfQotICAgICAgICAgIHJldHVybiBub2RlLmxpbms7Ci0gICAgICAgIH19LHN0cmVhbV9v
cHM6e3JlYWQ6ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRp
b24pIHsKLSAgICAgICAgICB2YXIgY29udGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAg
ICAgICAgICB2YXIgc2l6ZSA9IE1hdGgubWluKGNvbnRlbnRzLmxlbmd0aCAtIHBvc2l0aW9uLCBs
ZW5ndGgpOwotICAgICAgICAgIGlmIChjb250ZW50cy5zdWJhcnJheSkgeyAvLyB0eXBlZCBhcnJh
eQotICAgICAgICAgICAgYnVmZmVyLnNldChjb250ZW50cy5zdWJhcnJheShwb3NpdGlvbiwgcG9z
aXRpb24gKyBzaXplKSwgb2Zmc2V0KTsKLSAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICB7Ci0g
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKykgewotICAgICAgICAgICAg
ICBidWZmZXJbb2Zmc2V0ICsgaV0gPSBjb250ZW50c1twb3NpdGlvbiArIGldOwotICAgICAgICAg
ICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gc2l6ZTsKLSAgICAgICAgfSx3cml0
ZTpmdW5jdGlvbiAoc3RyZWFtLCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbikgewot
ICAgICAgICAgIHZhciBjb250ZW50cyA9IHN0cmVhbS5ub2RlLmNvbnRlbnRzOwotICAgICAgICAg
IHdoaWxlIChjb250ZW50cy5sZW5ndGggPCBwb3NpdGlvbikgY29udGVudHMucHVzaCgwKTsKLSAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBj
b250ZW50c1twb3NpdGlvbiArIGldID0gYnVmZmVyW29mZnNldCArIGldOwotICAgICAgICAgIH0K
LSAgICAgICAgICBzdHJlYW0ubm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpOwotICAgICAgICAg
IHJldHVybiBsZW5ndGg7Ci0gICAgICAgIH0sbGxzZWVrOmZ1bmN0aW9uIChzdHJlYW0sIG9mZnNl
dCwgd2hlbmNlKSB7Ci0gICAgICAgICAgdmFyIHBvc2l0aW9uID0gb2Zmc2V0OwotICAgICAgICAg
IGlmICh3aGVuY2UgPT09IDEpIHsgIC8vIFNFRUtfQ1VSLgotICAgICAgICAgICAgcG9zaXRpb24g
Kz0gc3RyZWFtLnBvc2l0aW9uOwotICAgICAgICAgIH0gZWxzZSBpZiAod2hlbmNlID09PSAyKSB7
ICAvLyBTRUVLX0VORC4KLSAgICAgICAgICAgIGlmIChGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9k
ZSkpIHsKLSAgICAgICAgICAgICAgcG9zaXRpb24gKz0gc3RyZWFtLm5vZGUuY29udGVudHMubGVu
Z3RoOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAocG9zaXRpb24g
PCAwKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5F
SU5WQUwpOwotICAgICAgICAgIH0KLSAgICAgICAgICBzdHJlYW0udW5nb3R0ZW4gPSBbXTsKLSAg
ICAgICAgICBzdHJlYW0ucG9zaXRpb24gPSBwb3NpdGlvbjsKLSAgICAgICAgICByZXR1cm4gcG9z
aXRpb247Ci0gICAgICAgIH0sYWxsb2NhdGU6ZnVuY3Rpb24gKHN0cmVhbSwgb2Zmc2V0LCBsZW5n
dGgpIHsKLSAgICAgICAgICB2YXIgY29udGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAg
ICAgICAgICB2YXIgbGltaXQgPSBvZmZzZXQgKyBsZW5ndGg7Ci0gICAgICAgICAgd2hpbGUgKGxp
bWl0ID4gY29udGVudHMubGVuZ3RoKSBjb250ZW50cy5wdXNoKDApOwotICAgICAgICB9LG1tYXA6
ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24sIHByb3Qs
IGZsYWdzKSB7Ci0gICAgICAgICAgaWYgKCFGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9kZSkpIHsK
LSAgICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT0RFVik7
Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBwdHI7Ci0gICAgICAgICAgdmFyIGFsbG9jYXRl
ZDsKLSAgICAgICAgICB2YXIgY29udGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAgICAg
ICAgICAvLyBPbmx5IG1ha2UgYSBuZXcgY29weSB3aGVuIE1BUF9QUklWQVRFIGlzIHNwZWNpZmll
ZC4KLSAgICAgICAgICBpZiAoIShmbGFncyAmIDB4MDIpKSB7Ci0gICAgICAgICAgICAvLyBXZSBj
YW4ndCBlbXVsYXRlIE1BUF9TSEFSRUQgd2hlbiB0aGUgZmlsZSBpcyBub3QgYmFja2VkIGJ5IHRo
ZSBidWZmZXIKLSAgICAgICAgICAgIC8vIHdlJ3JlIG1hcHBpbmcgdG8gKGUuZy4gdGhlIEhFQVAg
YnVmZmVyKS4KLSAgICAgICAgICAgIGFzc2VydChjb250ZW50cy5idWZmZXIgPT09IGJ1ZmZlciB8
fCBjb250ZW50cy5idWZmZXIgPT09IGJ1ZmZlci5idWZmZXIpOwotICAgICAgICAgICAgYWxsb2Nh
dGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBwdHIgPSBjb250ZW50cy5ieXRlT2Zmc2V0OwotICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBUcnkgdG8gYXZvaWQgdW5uZWNlc3Nhcnkg
c2xpY2VzLgotICAgICAgICAgICAgaWYgKHBvc2l0aW9uID4gMCB8fCBwb3NpdGlvbiArIGxlbmd0
aCA8IGNvbnRlbnRzLmxlbmd0aCkgewotICAgICAgICAgICAgICBpZiAoY29udGVudHMuc3ViYXJy
YXkpIHsKLSAgICAgICAgICAgICAgICBjb250ZW50cyA9IGNvbnRlbnRzLnN1YmFycmF5KHBvc2l0
aW9uLCBwb3NpdGlvbiArIGxlbmd0aCk7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgY29udGVudHMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChjb250ZW50cywg
cG9zaXRpb24sIHBvc2l0aW9uICsgbGVuZ3RoKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgYWxsb2NhdGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIHB0ciA9IF9t
YWxsb2MobGVuZ3RoKTsKLSAgICAgICAgICAgIGlmICghcHRyKSB7Ci0gICAgICAgICAgICAgIHRo
cm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVOT01FTSk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBidWZmZXIuc2V0KGNvbnRlbnRzLCBwdHIpOwotICAgICAgICAgIH0KLSAg
ICAgICAgICByZXR1cm4geyBwdHI6IHB0ciwgYWxsb2NhdGVkOiBhbGxvY2F0ZWQgfTsKLSAgICAg
ICAgfX19OwotICB2YXIgX3N0ZGluPWFsbG9jYXRlKDEsICJpMzIqIiwgQUxMT0NfU1RBVElDKTsK
LSAgdmFyIF9zdGRvdXQ9YWxsb2NhdGUoMSwgImkzMioiLCBBTExPQ19TVEFUSUMpOwotICB2YXIg
X3N0ZGVycj1hbGxvY2F0ZSgxLCAiaTMyKiIsIEFMTE9DX1NUQVRJQyk7Ci0gIGZ1bmN0aW9uIF9m
Zmx1c2goc3RyZWFtKSB7Ci0gICAgICAvLyBpbnQgZmZsdXNoKEZJTEUgKnN0cmVhbSk7Ci0gICAg
ICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0
aW9ucy9mZmx1c2guaHRtbAotICAgICAgLy8gd2UgZG9uJ3QgY3VycmVudGx5IHBlcmZvcm0gYW55
IHVzZXItc3BhY2UgYnVmZmVyaW5nIG9mIGRhdGEKLSAgICB9dmFyIEZTPXtyb290Om51bGwsbm9k
ZXM6W251bGxdLGRldmljZXM6W251bGxdLHN0cmVhbXM6W251bGxdLG5leHRJbm9kZToxLG5hbWVf
dGFibGU6bnVsbCxjdXJyZW50UGF0aDoiLyIsaW5pdGlhbGl6ZWQ6ZmFsc2UsaWdub3JlUGVybWlz
c2lvbnM6dHJ1ZSxFcnJub0Vycm9yOmZ1bmN0aW9uIEVycm5vRXJyb3IoZXJybm8pIHsKLSAgICAg
ICAgICB0aGlzLmVycm5vID0gZXJybm87Ci0gICAgICAgICAgZm9yICh2YXIga2V5IGluIEVSUk5P
X0NPREVTKSB7Ci0gICAgICAgICAgICBpZiAoRVJSTk9fQ09ERVNba2V5XSA9PT0gZXJybm8pIHsK
LSAgICAgICAgICAgICAgdGhpcy5jb2RlID0ga2V5OwotICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAgICAgICAgdGhpcy5tZXNzYWdlID0gRVJSTk9f
TUVTU0FHRVNbZXJybm9dOwotICAgICAgICB9LGhhbmRsZUZTRXJyb3I6ZnVuY3Rpb24gKGUpIHsK
LSAgICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIEZTLkVycm5vRXJyb3IpKSB0aHJvdyBlICsgJyA6
ICcgKyBuZXcgRXJyb3IoKS5zdGFjazsKLSAgICAgICAgcmV0dXJuIF9fX3NldEVyck5vKGUuZXJy
bm8pOwotICAgICAgfSxoYXNoTmFtZTpmdW5jdGlvbiAocGFyZW50aWQsIG5hbWUpIHsKLSAgICAg
ICAgdmFyIGhhc2ggPSAwOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWUubGVuZ3Ro
OyBpKyspIHsKLSAgICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCArIG5hbWUuY2hh
ckNvZGVBdChpKSkgfCAwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAoKHBhcmVudGlkICsg
aGFzaCkgPj4+IDApICUgRlMubmFtZV90YWJsZS5sZW5ndGg7Ci0gICAgICB9LGhhc2hBZGROb2Rl
OmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAgIHZhciBoYXNoID0gRlMuaGFzaE5hbWUobm9kZS5w
YXJlbnQuaWQsIG5vZGUubmFtZSk7Ci0gICAgICAgIG5vZGUubmFtZV9uZXh0ID0gRlMubmFtZV90
YWJsZVtoYXNoXTsKLSAgICAgICAgRlMubmFtZV90YWJsZVtoYXNoXSA9IG5vZGU7Ci0gICAgICB9
LGhhc2hSZW1vdmVOb2RlOmZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAgIHZhciBoYXNoID0gRlMu
aGFzaE5hbWUobm9kZS5wYXJlbnQuaWQsIG5vZGUubmFtZSk7Ci0gICAgICAgIGlmIChGUy5uYW1l
X3RhYmxlW2hhc2hdID09PSBub2RlKSB7Ci0gICAgICAgICAgRlMubmFtZV90YWJsZVtoYXNoXSA9
IG5vZGUubmFtZV9uZXh0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIHZhciBjdXJyZW50
ID0gRlMubmFtZV90YWJsZVtoYXNoXTsKLSAgICAgICAgICB3aGlsZSAoY3VycmVudCkgewotICAg
ICAgICAgICAgaWYgKGN1cnJlbnQubmFtZV9uZXh0ID09PSBub2RlKSB7Ci0gICAgICAgICAgICAg
IGN1cnJlbnQubmFtZV9uZXh0ID0gbm9kZS5uYW1lX25leHQ7Ci0gICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubmFtZV9uZXh0
OwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfSxsb29rdXBOb2RlOmZ1bmN0aW9uIChw
YXJlbnQsIG5hbWUpIHsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heUxvb2t1cChwYXJlbnQpOwot
ICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJy
KTsKLSAgICAgICAgfQotICAgICAgICB2YXIgaGFzaCA9IEZTLmhhc2hOYW1lKHBhcmVudC5pZCwg
bmFtZSk7Ci0gICAgICAgIGZvciAodmFyIG5vZGUgPSBGUy5uYW1lX3RhYmxlW2hhc2hdOyBub2Rl
OyBub2RlID0gbm9kZS5uYW1lX25leHQpIHsKLSAgICAgICAgICBpZiAobm9kZS5wYXJlbnQuaWQg
PT09IHBhcmVudC5pZCAmJiBub2RlLm5hbWUgPT09IG5hbWUpIHsKLSAgICAgICAgICAgIHJldHVy
biBub2RlOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAvLyBpZiB3ZSBmYWlsZWQg
dG8gZmluZCBpdCBpbiB0aGUgY2FjaGUsIGNhbGwgaW50byB0aGUgVkZTCi0gICAgICAgIHJldHVy
biBGUy5sb29rdXAocGFyZW50LCBuYW1lKTsKLSAgICAgIH0sY3JlYXRlTm9kZTpmdW5jdGlvbiAo
cGFyZW50LCBuYW1lLCBtb2RlLCByZGV2KSB7Ci0gICAgICAgIHZhciBub2RlID0gewotICAgICAg
ICAgIGlkOiBGUy5uZXh0SW5vZGUrKywKLSAgICAgICAgICBuYW1lOiBuYW1lLAotICAgICAgICAg
IG1vZGU6IG1vZGUsCi0gICAgICAgICAgbm9kZV9vcHM6IHt9LAotICAgICAgICAgIHN0cmVhbV9v
cHM6IHt9LAotICAgICAgICAgIHJkZXY6IHJkZXYsCi0gICAgICAgICAgcGFyZW50OiBudWxsLAot
ICAgICAgICAgIG1vdW50OiBudWxsCi0gICAgICAgIH07Ci0gICAgICAgIGlmICghcGFyZW50KSB7
Ci0gICAgICAgICAgcGFyZW50ID0gbm9kZTsgIC8vIHJvb3Qgbm9kZSBzZXRzIHBhcmVudCB0byBp
dHNlbGYKLSAgICAgICAgfQotICAgICAgICBub2RlLnBhcmVudCA9IHBhcmVudDsKLSAgICAgICAg
bm9kZS5tb3VudCA9IHBhcmVudC5tb3VudDsKLSAgICAgICAgLy8gY29tcGF0aWJpbGl0eQotICAg
ICAgICB2YXIgcmVhZE1vZGUgPSAyOTIgfCA3MzsKLSAgICAgICAgdmFyIHdyaXRlTW9kZSA9IDE0
NjsKLSAgICAgICAgLy8gTk9URSB3ZSBtdXN0IHVzZSBPYmplY3QuZGVmaW5lUHJvcGVydGllcyBp
bnN0ZWFkIG9mIGluZGl2aWR1YWwgY2FsbHMgdG8KLSAgICAgICAgLy8gT2JqZWN0LmRlZmluZVBy
b3BlcnR5IGluIG9yZGVyIHRvIG1ha2UgY2xvc3VyZSBjb21waWxlciBoYXBweQotICAgICAgICBP
YmplY3QuZGVmaW5lUHJvcGVydGllcyhub2RlLCB7Ci0gICAgICAgICAgcmVhZDogewotICAgICAg
ICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIChub2RlLm1vZGUgJiByZWFkTW9kZSkgPT09
IHJlYWRNb2RlOyB9LAotICAgICAgICAgICAgc2V0OiBmdW5jdGlvbih2YWwpIHsgdmFsID8gbm9k
ZS5tb2RlIHw9IHJlYWRNb2RlIDogbm9kZS5tb2RlICY9IH5yZWFkTW9kZTsgfQotICAgICAgICAg
IH0sCi0gICAgICAgICAgd3JpdGU6IHsKLSAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7IHJl
dHVybiAobm9kZS5tb2RlICYgd3JpdGVNb2RlKSA9PT0gd3JpdGVNb2RlOyB9LAotICAgICAgICAg
ICAgc2V0OiBmdW5jdGlvbih2YWwpIHsgdmFsID8gbm9kZS5tb2RlIHw9IHdyaXRlTW9kZSA6IG5v
ZGUubW9kZSAmPSB+d3JpdGVNb2RlOyB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBpc0ZvbGRl
cjogewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIEZTLmlzRGlyKG5vZGUu
bW9kZSk7IH0sCi0gICAgICAgICAgfSwKLSAgICAgICAgICBpc0RldmljZTogewotICAgICAgICAg
ICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIEZTLmlzQ2hyZGV2KG5vZGUubW9kZSk7IH0sCi0g
ICAgICAgICAgfSwKLSAgICAgICAgfSk7Ci0gICAgICAgIEZTLmhhc2hBZGROb2RlKG5vZGUpOwot
ICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAgIH0sZGVzdHJveU5vZGU6ZnVuY3Rpb24gKG5vZGUp
IHsKLSAgICAgICAgRlMuaGFzaFJlbW92ZU5vZGUobm9kZSk7Ci0gICAgICB9LGlzUm9vdDpmdW5j
dGlvbiAobm9kZSkgewotICAgICAgICByZXR1cm4gbm9kZSA9PT0gbm9kZS5wYXJlbnQ7Ci0gICAg
ICB9LGlzTW91bnRwb2ludDpmdW5jdGlvbiAobm9kZSkgewotICAgICAgICByZXR1cm4gbm9kZS5t
b3VudGVkOwotICAgICAgfSxpc0ZpbGU6ZnVuY3Rpb24gKG1vZGUpIHsKLSAgICAgICAgcmV0dXJu
IChtb2RlICYgMDE3MDAwMCkgPT09IDAxMDAwMDA7Ci0gICAgICB9LGlzRGlyOmZ1bmN0aW9uICht
b2RlKSB7Ci0gICAgICAgIHJldHVybiAobW9kZSAmIDAxNzAwMDApID09PSAwMDQwMDAwOwotICAg
ICAgfSxpc0xpbms6ZnVuY3Rpb24gKG1vZGUpIHsKLSAgICAgICAgcmV0dXJuIChtb2RlICYgMDE3
MDAwMCkgPT09IDAxMjAwMDA7Ci0gICAgICB9LGlzQ2hyZGV2OmZ1bmN0aW9uIChtb2RlKSB7Ci0g
ICAgICAgIHJldHVybiAobW9kZSAmIDAxNzAwMDApID09PSAwMDIwMDAwOwotICAgICAgfSxpc0Js
a2RldjpmdW5jdGlvbiAobW9kZSkgewotICAgICAgICByZXR1cm4gKG1vZGUgJiAwMTcwMDAwKSA9
PT0gMDA2MDAwMDsKLSAgICAgIH0saXNGSUZPOmZ1bmN0aW9uIChtb2RlKSB7Ci0gICAgICAgIHJl
dHVybiAobW9kZSAmIDAxNzAwMDApID09PSAwMDEwMDAwOwotICAgICAgfSxjd2Q6ZnVuY3Rpb24g
KCkgewotICAgICAgICByZXR1cm4gRlMuY3VycmVudFBhdGg7Ci0gICAgICB9LGxvb2t1cFBhdGg6
ZnVuY3Rpb24gKHBhdGgsIG9wdHMpIHsKLSAgICAgICAgcGF0aCA9IFBBVEgucmVzb2x2ZShGUy5j
dXJyZW50UGF0aCwgcGF0aCk7Ci0gICAgICAgIG9wdHMgPSBvcHRzIHx8IHsgcmVjdXJzZV9jb3Vu
dDogMCB9OwotICAgICAgICBpZiAob3B0cy5yZWN1cnNlX2NvdW50ID4gOCkgeyAgLy8gbWF4IHJl
Y3Vyc2l2ZSBsb29rdXAgb2YgOAotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVMT09QKTsKLSAgICAgICAgfQotICAgICAgICAvLyBzcGxpdCB0aGUgcGF0aAot
ICAgICAgICB2YXIgcGFydHMgPSBQQVRILm5vcm1hbGl6ZUFycmF5KHBhdGguc3BsaXQoJy8nKS5m
aWx0ZXIoZnVuY3Rpb24ocCkgewotICAgICAgICAgIHJldHVybiAhIXA7Ci0gICAgICAgIH0pLCBm
YWxzZSk7Ci0gICAgICAgIC8vIHN0YXJ0IGF0IHRoZSByb290Ci0gICAgICAgIHZhciBjdXJyZW50
ID0gRlMucm9vdDsKLSAgICAgICAgdmFyIGN1cnJlbnRfcGF0aCA9ICcvJzsKLSAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykgewotICAgICAgICAgIHZhciBpc2xh
c3QgPSAoaSA9PT0gcGFydHMubGVuZ3RoLTEpOwotICAgICAgICAgIGlmIChpc2xhc3QgJiYgb3B0
cy5wYXJlbnQpIHsKLSAgICAgICAgICAgIC8vIHN0b3AgcmVzb2x2aW5nCi0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICB9Ci0gICAgICAgICAgY3VycmVudCA9IEZTLmxvb2t1cE5vZGUoY3Vy
cmVudCwgcGFydHNbaV0pOwotICAgICAgICAgIGN1cnJlbnRfcGF0aCA9IFBBVEguam9pbihjdXJy
ZW50X3BhdGgsIHBhcnRzW2ldKTsKLSAgICAgICAgICAvLyBqdW1wIHRvIHRoZSBtb3VudCdzIHJv
b3Qgbm9kZSBpZiB0aGlzIGlzIGEgbW91bnRwb2ludAotICAgICAgICAgIGlmIChGUy5pc01vdW50
cG9pbnQoY3VycmVudCkpIHsKLSAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm1vdW50LnJv
b3Q7Ci0gICAgICAgICAgfQotICAgICAgICAgIC8vIGZvbGxvdyBzeW1saW5rcwotICAgICAgICAg
IC8vIGJ5IGRlZmF1bHQsIGxvb2t1cFBhdGggd2lsbCBub3QgZm9sbG93IGEgc3ltbGluayBpZiBp
dCBpcyB0aGUgZmluYWwgcGF0aCBjb21wb25lbnQuCi0gICAgICAgICAgLy8gc2V0dGluZyBvcHRz
LmZvbGxvdyA9IHRydWUgd2lsbCBvdmVycmlkZSB0aGlzIGJlaGF2aW9yLgotICAgICAgICAgIGlm
ICghaXNsYXN0IHx8IG9wdHMuZm9sbG93KSB7Ci0gICAgICAgICAgICB2YXIgY291bnQgPSAwOwot
ICAgICAgICAgICAgd2hpbGUgKEZTLmlzTGluayhjdXJyZW50Lm1vZGUpKSB7Ci0gICAgICAgICAg
ICAgIHZhciBsaW5rID0gRlMucmVhZGxpbmsoY3VycmVudF9wYXRoKTsKLSAgICAgICAgICAgICAg
Y3VycmVudF9wYXRoID0gUEFUSC5yZXNvbHZlKFBBVEguZGlybmFtZShjdXJyZW50X3BhdGgpLCBs
aW5rKTsKLSAgICAgICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgoY3VycmVudF9w
YXRoLCB7IHJlY3Vyc2VfY291bnQ6IG9wdHMucmVjdXJzZV9jb3VudCB9KTsKLSAgICAgICAgICAg
ICAgY3VycmVudCA9IGxvb2t1cC5ub2RlOwotICAgICAgICAgICAgICBpZiAoY291bnQrKyA+IDQw
KSB7ICAvLyBsaW1pdCBtYXggY29uc2VjdXRpdmUgc3ltbGlua3MgdG8gNDAgKFNZTUxPT1BfTUFY
KS4KLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5F
TE9PUCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIHsgcGF0aDogY3VycmVudF9wYXRoLCBub2RlOiBjdXJyZW50
IH07Ci0gICAgICB9LGdldFBhdGg6ZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAgICAgdmFyIHBhdGg7
Ci0gICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgICAgaWYgKEZTLmlzUm9vdChub2RlKSkg
ewotICAgICAgICAgICAgcmV0dXJuIHBhdGggPyBQQVRILmpvaW4obm9kZS5tb3VudC5tb3VudHBv
aW50LCBwYXRoKSA6IG5vZGUubW91bnQubW91bnRwb2ludDsKLSAgICAgICAgICB9Ci0gICAgICAg
ICAgcGF0aCA9IHBhdGggPyBQQVRILmpvaW4obm9kZS5uYW1lLCBwYXRoKSA6IG5vZGUubmFtZTsK
LSAgICAgICAgICBub2RlID0gbm9kZS5wYXJlbnQ7Ci0gICAgICAgIH0KLSAgICAgIH0sZmxhZ01v
ZGVzOnsiciI6MCwicnMiOjgxOTIsInIrIjoyLCJ3IjoxNTM3LCJ3eCI6MzU4NSwieHciOjM1ODUs
IncrIjoxNTM4LCJ3eCsiOjM1ODYsInh3KyI6MzU4NiwiYSI6NTIxLCJheCI6MjU2OSwieGEiOjI1
NjksImErIjo1MjIsImF4KyI6MjU3MCwieGErIjoyNTcwfSxtb2RlU3RyaW5nVG9GbGFnczpmdW5j
dGlvbiAoc3RyKSB7Ci0gICAgICAgIHZhciBmbGFncyA9IEZTLmZsYWdNb2Rlc1tzdHJdOwotICAg
ICAgICBpZiAodHlwZW9mIGZsYWdzID09PSAndW5kZWZpbmVkJykgewotICAgICAgICAgIHRocm93
IG5ldyBFcnJvcignVW5rbm93biBmaWxlIG9wZW4gbW9kZTogJyArIHN0cik7Ci0gICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIGZsYWdzOwotICAgICAgfSxmbGFnc1RvUGVybWlzc2lvblN0cmluZzpm
dW5jdGlvbiAoZmxhZykgewotICAgICAgICB2YXIgYWNjbW9kZSA9IGZsYWcgJiAzOwotICAgICAg
ICB2YXIgcGVybXMgPSBbJ3InLCAndycsICdydyddW2FjY21vZGVdOwotICAgICAgICBpZiAoKGZs
YWcgJiAxMDI0KSkgewotICAgICAgICAgIHBlcm1zICs9ICd3JzsKLSAgICAgICAgfQotICAgICAg
ICByZXR1cm4gcGVybXM7Ci0gICAgICB9LG5vZGVQZXJtaXNzaW9uczpmdW5jdGlvbiAobm9kZSwg
cGVybXMpIHsKLSAgICAgICAgaWYgKEZTLmlnbm9yZVBlcm1pc3Npb25zKSB7Ci0gICAgICAgICAg
cmV0dXJuIDA7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gcmV0dXJuIDAgaWYgYW55IHVzZXIsIGdy
b3VwIG9yIG93bmVyIGJpdHMgYXJlIHNldC4KLSAgICAgICAgaWYgKHBlcm1zLmluZGV4T2YoJ3In
KSAhPT0gLTEgJiYgIShub2RlLm1vZGUgJiAyOTIpKSB7Ci0gICAgICAgICAgcmV0dXJuIEVSUk5P
X0NPREVTLkVBQ0NFUzsKLSAgICAgICAgfSBlbHNlIGlmIChwZXJtcy5pbmRleE9mKCd3JykgIT09
IC0xICYmICEobm9kZS5tb2RlICYgMTQ2KSkgewotICAgICAgICAgIHJldHVybiBFUlJOT19DT0RF
Uy5FQUNDRVM7Ci0gICAgICAgIH0gZWxzZSBpZiAocGVybXMuaW5kZXhPZigneCcpICE9PSAtMSAm
JiAhKG5vZGUubW9kZSAmIDczKSkgewotICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FQUND
RVM7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICB9LG1heUxvb2t1cDpmdW5j
dGlvbiAoZGlyKSB7Ci0gICAgICAgIHJldHVybiBGUy5ub2RlUGVybWlzc2lvbnMoZGlyLCAneCcp
OwotICAgICAgfSxtYXlNa25vZDpmdW5jdGlvbiAobW9kZSkgewotICAgICAgICBzd2l0Y2ggKG1v
ZGUgJiAwMTcwMDAwKSB7Ci0gICAgICAgICAgY2FzZSAwMTAwMDAwOgotICAgICAgICAgIGNhc2Ug
MDAyMDAwMDoKLSAgICAgICAgICBjYXNlIDAwNjAwMDA6Ci0gICAgICAgICAgY2FzZSAwMDEwMDAw
OgotICAgICAgICAgIGNhc2UgMDE0MDAwMDoKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRUlOVkFMOwotICAg
ICAgICB9Ci0gICAgICB9LG1heUNyZWF0ZTpmdW5jdGlvbiAoZGlyLCBuYW1lKSB7Ci0gICAgICAg
IHRyeSB7Ci0gICAgICAgICAgdmFyIG5vZGUgPSBGUy5sb29rdXBOb2RlKGRpciwgbmFtZSk7Ci0g
ICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVFWElTVDsKLSAgICAgICAgfSBjYXRjaCAoZSkg
ewotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBGUy5ub2RlUGVybWlzc2lvbnMoZGlyLCAnd3gn
KTsKLSAgICAgIH0sbWF5RGVsZXRlOmZ1bmN0aW9uIChkaXIsIG5hbWUsIGlzZGlyKSB7Ci0gICAg
ICAgIHZhciBub2RlOwotICAgICAgICB0cnkgewotICAgICAgICAgIG5vZGUgPSBGUy5sb29rdXBO
b2RlKGRpciwgbmFtZSk7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICByZXR1cm4g
ZS5lcnJubzsKLSAgICAgICAgfQotICAgICAgICB2YXIgZXJyID0gRlMubm9kZVBlcm1pc3Npb25z
KGRpciwgJ3d4Jyk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICByZXR1cm4gZXJyOwot
ICAgICAgICB9Ci0gICAgICAgIGlmIChpc2RpcikgewotICAgICAgICAgIGlmICghRlMuaXNEaXIo
bm9kZS5tb2RlKSkgewotICAgICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVTLkVOT1RESVI7Ci0g
ICAgICAgICAgfQotICAgICAgICAgIGlmIChGUy5pc1Jvb3Qobm9kZSkgfHwgRlMuZ2V0UGF0aChu
b2RlKSA9PT0gRlMuY3VycmVudFBhdGgpIHsKLSAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RF
Uy5FQlVTWTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgaWYgKEZT
LmlzRGlyKG5vZGUubW9kZSkpIHsKLSAgICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5FSVNE
SVI7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAwOwotICAgICAgfSxt
YXlPcGVuOmZ1bmN0aW9uIChub2RlLCBmbGFncykgewotICAgICAgICBpZiAoIW5vZGUpIHsKLSAg
ICAgICAgICByZXR1cm4gRVJSTk9fQ09ERVMuRU5PRU5UOwotICAgICAgICB9Ci0gICAgICAgIGlm
IChGUy5pc0xpbmsobm9kZS5tb2RlKSkgewotICAgICAgICAgIHJldHVybiBFUlJOT19DT0RFUy5F
TE9PUDsKLSAgICAgICAgfSBlbHNlIGlmIChGUy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAg
ICAgaWYgKChmbGFncyAmIDMpICE9PSAwIHx8ICAvLyBvcGVuaW5nIGZvciB3cml0ZQotICAgICAg
ICAgICAgICAoZmxhZ3MgJiAxMDI0KSkgewotICAgICAgICAgICAgcmV0dXJuIEVSUk5PX0NPREVT
LkVJU0RJUjsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIEZTLm5vZGVQ
ZXJtaXNzaW9ucyhub2RlLCBGUy5mbGFnc1RvUGVybWlzc2lvblN0cmluZyhmbGFncykpOwotICAg
ICAgfSxjaHJkZXZfc3RyZWFtX29wczp7b3BlbjpmdW5jdGlvbiAoc3RyZWFtKSB7Ci0gICAgICAg
ICAgdmFyIGRldmljZSA9IEZTLmdldERldmljZShzdHJlYW0ubm9kZS5yZGV2KTsKLSAgICAgICAg
ICAvLyBvdmVycmlkZSBub2RlJ3Mgc3RyZWFtIG9wcyB3aXRoIHRoZSBkZXZpY2UncwotICAgICAg
ICAgIHN0cmVhbS5zdHJlYW1fb3BzID0gZGV2aWNlLnN0cmVhbV9vcHM7Ci0gICAgICAgICAgLy8g
Zm9yd2FyZCB0aGUgb3BlbiBjYWxsCi0gICAgICAgICAgaWYgKHN0cmVhbS5zdHJlYW1fb3BzLm9w
ZW4pIHsKLSAgICAgICAgICAgIHN0cmVhbS5zdHJlYW1fb3BzLm9wZW4oc3RyZWFtKTsKLSAgICAg
ICAgICB9Ci0gICAgICAgIH0sbGxzZWVrOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgICB0aHJvdyBu
ZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FU1BJUEUpOwotICAgICAgICB9fSxtYWpvcjpm
dW5jdGlvbiAoZGV2KSB7Ci0gICAgICAgIHJldHVybiAoKGRldikgPj4gOCk7Ci0gICAgICB9LG1p
bm9yOmZ1bmN0aW9uIChkZXYpIHsKLSAgICAgICAgcmV0dXJuICgoZGV2KSAmIDB4ZmYpOwotICAg
ICAgfSxtYWtlZGV2OmZ1bmN0aW9uIChtYSwgbWkpIHsKLSAgICAgICAgcmV0dXJuICgobWEpIDw8
IDggfCAobWkpKTsKLSAgICAgIH0scmVnaXN0ZXJEZXZpY2U6ZnVuY3Rpb24gKGRldiwgb3BzKSB7
Ci0gICAgICAgIEZTLmRldmljZXNbZGV2XSA9IHsgc3RyZWFtX29wczogb3BzIH07Ci0gICAgICB9
LGdldERldmljZTpmdW5jdGlvbiAoZGV2KSB7Ci0gICAgICAgIHJldHVybiBGUy5kZXZpY2VzW2Rl
dl07Ci0gICAgICB9LE1BWF9PUEVOX0ZEUzo0MDk2LG5leHRmZDpmdW5jdGlvbiAoZmRfc3RhcnQs
IGZkX2VuZCkgewotICAgICAgICBmZF9zdGFydCA9IGZkX3N0YXJ0IHx8IDE7Ci0gICAgICAgIGZk
X2VuZCA9IGZkX2VuZCB8fCBGUy5NQVhfT1BFTl9GRFM7Ci0gICAgICAgIGZvciAodmFyIGZkID0g
ZmRfc3RhcnQ7IGZkIDw9IGZkX2VuZDsgZmQrKykgewotICAgICAgICAgIGlmICghRlMuc3RyZWFt
c1tmZF0pIHsKLSAgICAgICAgICAgIHJldHVybiBmZDsKLSAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU1GSUxFKTsKLSAg
ICAgIH0sZ2V0U3RyZWFtOmZ1bmN0aW9uIChmZCkgewotICAgICAgICByZXR1cm4gRlMuc3RyZWFt
c1tmZF07Ci0gICAgICB9LGNyZWF0ZVN0cmVhbTpmdW5jdGlvbiAoc3RyZWFtLCBmZF9zdGFydCwg
ZmRfZW5kKSB7Ci0gICAgICAgIHZhciBmZCA9IEZTLm5leHRmZChmZF9zdGFydCwgZmRfZW5kKTsK
LSAgICAgICAgc3RyZWFtLmZkID0gZmQ7Ci0gICAgICAgIC8vIGNvbXBhdGliaWxpdHkKLSAgICAg
ICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoc3RyZWFtLCB7Ci0gICAgICAgICAgb2JqZWN0OiB7
Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gc3RyZWFtLm5vZGU7IH0sCi0g
ICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHZhbCkgeyBzdHJlYW0ubm9kZSA9IHZhbDsgfQotICAg
ICAgICAgIH0sCi0gICAgICAgICAgaXNSZWFkOiB7Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9u
KCkgeyByZXR1cm4gKHN0cmVhbS5mbGFncyAmIDMpICE9PSAxOyB9Ci0gICAgICAgICAgfSwKLSAg
ICAgICAgICBpc1dyaXRlOiB7Ci0gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4g
KHN0cmVhbS5mbGFncyAmIDMpICE9PSAwOyB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBpc0Fw
cGVuZDogewotICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIChzdHJlYW0uZmxh
Z3MgJiA4KTsgfQotICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgICAgIEZTLnN0cmVhbXNb
ZmRdID0gc3RyZWFtOwotICAgICAgICByZXR1cm4gc3RyZWFtOwotICAgICAgfSxjbG9zZVN0cmVh
bTpmdW5jdGlvbiAoZmQpIHsKLSAgICAgICAgRlMuc3RyZWFtc1tmZF0gPSBudWxsOwotICAgICAg
fSxnZXRNb2RlOmZ1bmN0aW9uIChjYW5SZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICB2YXIgbW9k
ZSA9IDA7Ci0gICAgICAgIGlmIChjYW5SZWFkKSBtb2RlIHw9IDI5MiB8IDczOwotICAgICAgICBp
ZiAoY2FuV3JpdGUpIG1vZGUgfD0gMTQ2OwotICAgICAgICByZXR1cm4gbW9kZTsKLSAgICAgIH0s
am9pblBhdGg6ZnVuY3Rpb24gKHBhcnRzLCBmb3JjZVJlbGF0aXZlKSB7Ci0gICAgICAgIHZhciBw
YXRoID0gUEFUSC5qb2luLmFwcGx5KG51bGwsIHBhcnRzKTsKLSAgICAgICAgaWYgKGZvcmNlUmVs
YXRpdmUgJiYgcGF0aFswXSA9PSAnLycpIHBhdGggPSBwYXRoLnN1YnN0cigxKTsKLSAgICAgICAg
cmV0dXJuIHBhdGg7Ci0gICAgICB9LGFic29sdXRlUGF0aDpmdW5jdGlvbiAocmVsYXRpdmUsIGJh
c2UpIHsKLSAgICAgICAgcmV0dXJuIFBBVEgucmVzb2x2ZShiYXNlLCByZWxhdGl2ZSk7Ci0gICAg
ICB9LHN0YW5kYXJkaXplUGF0aDpmdW5jdGlvbiAocGF0aCkgewotICAgICAgICByZXR1cm4gUEFU
SC5ub3JtYWxpemUocGF0aCk7Ci0gICAgICB9LGZpbmRPYmplY3Q6ZnVuY3Rpb24gKHBhdGgsIGRv
bnRSZXNvbHZlTGFzdExpbmspIHsKLSAgICAgICAgdmFyIHJldCA9IEZTLmFuYWx5emVQYXRoKHBh
dGgsIGRvbnRSZXNvbHZlTGFzdExpbmspOwotICAgICAgICBpZiAocmV0LmV4aXN0cykgewotICAg
ICAgICAgIHJldHVybiByZXQub2JqZWN0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIF9f
X3NldEVyck5vKHJldC5lcnJvcik7Ci0gICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0K
LSAgICAgIH0sYW5hbHl6ZVBhdGg6ZnVuY3Rpb24gKHBhdGgsIGRvbnRSZXNvbHZlTGFzdExpbmsp
IHsKLSAgICAgICAgLy8gb3BlcmF0ZSBmcm9tIHdpdGhpbiB0aGUgY29udGV4dCBvZiB0aGUgc3lt
bGluaydzIHRhcmdldAotICAgICAgICB0cnkgewotICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5s
b29rdXBQYXRoKHBhdGgsIHsgZm9sbG93OiAhZG9udFJlc29sdmVMYXN0TGluayB9KTsKLSAgICAg
ICAgICBwYXRoID0gbG9va3VwLnBhdGg7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAg
fQotICAgICAgICB2YXIgcmV0ID0gewotICAgICAgICAgIGlzUm9vdDogZmFsc2UsIGV4aXN0czog
ZmFsc2UsIGVycm9yOiAwLCBuYW1lOiBudWxsLCBwYXRoOiBudWxsLCBvYmplY3Q6IG51bGwsCi0g
ICAgICAgICAgcGFyZW50RXhpc3RzOiBmYWxzZSwgcGFyZW50UGF0aDogbnVsbCwgcGFyZW50T2Jq
ZWN0OiBudWxsCi0gICAgICAgIH07Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgdmFyIGxvb2t1
cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7Ci0gICAgICAgICAgcmV0
LnBhcmVudEV4aXN0cyA9IHRydWU7Ci0gICAgICAgICAgcmV0LnBhcmVudFBhdGggPSBsb29rdXAu
cGF0aDsKLSAgICAgICAgICByZXQucGFyZW50T2JqZWN0ID0gbG9va3VwLm5vZGU7Ci0gICAgICAg
ICAgcmV0Lm5hbWUgPSBQQVRILmJhc2VuYW1lKHBhdGgpOwotICAgICAgICAgIGxvb2t1cCA9IEZT
Lmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6ICFkb250UmVzb2x2ZUxhc3RMaW5rIH0pOwotICAg
ICAgICAgIHJldC5leGlzdHMgPSB0cnVlOwotICAgICAgICAgIHJldC5wYXRoID0gbG9va3VwLnBh
dGg7Ci0gICAgICAgICAgcmV0Lm9iamVjdCA9IGxvb2t1cC5ub2RlOwotICAgICAgICAgIHJldC5u
YW1lID0gbG9va3VwLm5vZGUubmFtZTsKLSAgICAgICAgICByZXQuaXNSb290ID0gbG9va3VwLnBh
dGggPT09ICcvJzsKLSAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIHJldC5lcnJvciA9
IGUuZXJybm87Ci0gICAgICAgIH07Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgICB9LGNyZWF0
ZUZvbGRlcjpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBjYW5SZWFkLCBjYW5Xcml0ZSkgewotICAg
ICAgICB2YXIgcGF0aCA9IFBBVEguam9pbih0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5nJyA/IHBh
cmVudCA6IEZTLmdldFBhdGgocGFyZW50KSwgbmFtZSk7Ci0gICAgICAgIHZhciBtb2RlID0gRlMu
Z2V0TW9kZShjYW5SZWFkLCBjYW5Xcml0ZSk7Ci0gICAgICAgIHJldHVybiBGUy5ta2RpcihwYXRo
LCBtb2RlKTsKLSAgICAgIH0sY3JlYXRlUGF0aDpmdW5jdGlvbiAocGFyZW50LCBwYXRoLCBjYW5S
ZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICBwYXJlbnQgPSB0eXBlb2YgcGFyZW50ID09PSAnc3Ry
aW5nJyA/IHBhcmVudCA6IEZTLmdldFBhdGgocGFyZW50KTsKLSAgICAgICAgdmFyIHBhcnRzID0g
cGF0aC5zcGxpdCgnLycpLnJldmVyc2UoKTsKLSAgICAgICAgd2hpbGUgKHBhcnRzLmxlbmd0aCkg
ewotICAgICAgICAgIHZhciBwYXJ0ID0gcGFydHMucG9wKCk7Ci0gICAgICAgICAgaWYgKCFwYXJ0
KSBjb250aW51ZTsKLSAgICAgICAgICB2YXIgY3VycmVudCA9IFBBVEguam9pbihwYXJlbnQsIHBh
cnQpOwotICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBGUy5ta2RpcihjdXJyZW50LCAwNzc3
KTsKLSAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAvLyBpZ25vcmUgRUVYSVNU
Ci0gICAgICAgICAgfQotICAgICAgICAgIHBhcmVudCA9IGN1cnJlbnQ7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIGN1cnJlbnQ7Ci0gICAgICB9LGNyZWF0ZUZpbGU6ZnVuY3Rpb24gKHBhcmVu
dCwgbmFtZSwgcHJvcGVydGllcywgY2FuUmVhZCwgY2FuV3JpdGUpIHsKLSAgICAgICAgdmFyIHBh
dGggPSBQQVRILmpvaW4odHlwZW9mIHBhcmVudCA9PT0gJ3N0cmluZycgPyBwYXJlbnQgOiBGUy5n
ZXRQYXRoKHBhcmVudCksIG5hbWUpOwotICAgICAgICB2YXIgbW9kZSA9IEZTLmdldE1vZGUoY2Fu
UmVhZCwgY2FuV3JpdGUpOwotICAgICAgICByZXR1cm4gRlMuY3JlYXRlKHBhdGgsIG1vZGUpOwot
ICAgICAgfSxjcmVhdGVEYXRhRmlsZTpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBkYXRhLCBjYW5S
ZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICB2YXIgcGF0aCA9IFBBVEguam9pbih0eXBlb2YgcGFy
ZW50ID09PSAnc3RyaW5nJyA/IHBhcmVudCA6IEZTLmdldFBhdGgocGFyZW50KSwgbmFtZSk7Ci0g
ICAgICAgIHZhciBtb2RlID0gRlMuZ2V0TW9kZShjYW5SZWFkLCBjYW5Xcml0ZSk7Ci0gICAgICAg
IHZhciBub2RlID0gRlMuY3JlYXRlKHBhdGgsIG1vZGUpOwotICAgICAgICBpZiAoZGF0YSkgewot
ICAgICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHsKLSAgICAgICAgICAgIHZh
ciBhcnIgPSBuZXcgQXJyYXkoZGF0YS5sZW5ndGgpOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDAsIGxlbiA9IGRhdGEubGVuZ3RoOyBpIDwgbGVuOyArK2kpIGFycltpXSA9IGRhdGEuY2hhckNv
ZGVBdChpKTsKLSAgICAgICAgICAgIGRhdGEgPSBhcnI7Ci0gICAgICAgICAgfQotICAgICAgICAg
IC8vIG1ha2Ugc3VyZSB3ZSBjYW4gd3JpdGUgdG8gdGhlIGZpbGUKLSAgICAgICAgICBGUy5jaG1v
ZChwYXRoLCBtb2RlIHwgMTQ2KTsKLSAgICAgICAgICB2YXIgc3RyZWFtID0gRlMub3BlbihwYXRo
LCAndycpOwotICAgICAgICAgIEZTLndyaXRlKHN0cmVhbSwgZGF0YSwgMCwgZGF0YS5sZW5ndGgs
IDApOwotICAgICAgICAgIEZTLmNsb3NlKHN0cmVhbSk7Ci0gICAgICAgICAgRlMuY2htb2QocGF0
aCwgbW9kZSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICB9LGNyZWF0
ZURldmljZTpmdW5jdGlvbiAocGFyZW50LCBuYW1lLCBpbnB1dCwgb3V0cHV0KSB7Ci0gICAgICAg
IHZhciBwYXRoID0gUEFUSC5qb2luKHR5cGVvZiBwYXJlbnQgPT09ICdzdHJpbmcnID8gcGFyZW50
IDogRlMuZ2V0UGF0aChwYXJlbnQpLCBuYW1lKTsKLSAgICAgICAgdmFyIG1vZGUgPSBpbnB1dCAm
JiBvdXRwdXQgPyAwNzc3IDogKGlucHV0ID8gMDMzMyA6IDA1NTUpOwotICAgICAgICBpZiAoIUZT
LmNyZWF0ZURldmljZS5tYWpvcikgRlMuY3JlYXRlRGV2aWNlLm1ham9yID0gNjQ7Ci0gICAgICAg
IHZhciBkZXYgPSBGUy5tYWtlZGV2KEZTLmNyZWF0ZURldmljZS5tYWpvcisrLCAwKTsKLSAgICAg
ICAgLy8gQ3JlYXRlIGEgZmFrZSBkZXZpY2UgdGhhdCBhIHNldCBvZiBzdHJlYW0gb3BzIHRvIGVt
dWxhdGUKLSAgICAgICAgLy8gdGhlIG9sZCBiZWhhdmlvci4KLSAgICAgICAgRlMucmVnaXN0ZXJE
ZXZpY2UoZGV2LCB7Ci0gICAgICAgICAgb3BlbjogZnVuY3Rpb24oc3RyZWFtKSB7Ci0gICAgICAg
ICAgICBzdHJlYW0uc2Vla2FibGUgPSBmYWxzZTsKLSAgICAgICAgICB9LAotICAgICAgICAgIGNs
b3NlOiBmdW5jdGlvbihzdHJlYW0pIHsKLSAgICAgICAgICAgIC8vIGZsdXNoIGFueSBwZW5kaW5n
IGxpbmUgZGF0YQotICAgICAgICAgICAgaWYgKG91dHB1dCAmJiBvdXRwdXQuYnVmZmVyICYmIG91
dHB1dC5idWZmZXIubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgIG91dHB1dCgxMCk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICByZWFkOiBmdW5jdGlvbihzdHJlYW0sIGJ1
ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvcyAvKiBpZ25vcmVkICovKSB7Ci0gICAgICAgICAgICB2
YXIgYnl0ZXNSZWFkID0gMDsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3Ro
OyBpKyspIHsKLSAgICAgICAgICAgICAgdmFyIHJlc3VsdDsKLSAgICAgICAgICAgICAgdHJ5IHsK
LSAgICAgICAgICAgICAgICByZXN1bHQgPSBpbnB1dCgpOwotICAgICAgICAgICAgICB9IGNhdGNo
IChlKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09E
RVMuRUlPKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBpZiAocmVzdWx0ID09PSB1
bmRlZmluZWQgJiYgYnl0ZXNSZWFkID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3
IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUFHQUlOKTsKLSAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsIHx8IHJlc3VsdCA9PT0gdW5kZWZpbmVkKSBi
cmVhazsKLSAgICAgICAgICAgICAgYnl0ZXNSZWFkKys7Ci0gICAgICAgICAgICAgIGJ1ZmZlcltv
ZmZzZXQraV0gPSByZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoYnl0ZXNS
ZWFkKSB7Ci0gICAgICAgICAgICAgIHN0cmVhbS5ub2RlLnRpbWVzdGFtcCA9IERhdGUubm93KCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gYnl0ZXNSZWFkOwotICAgICAgICAg
IH0sCi0gICAgICAgICAgd3JpdGU6IGZ1bmN0aW9uKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxl
bmd0aCwgcG9zKSB7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsr
KSB7Ci0gICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgb3V0cHV0KGJ1ZmZlcltv
ZmZzZXQraV0pOwotICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlPKTsKLSAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGxlbmd0aCkgewotICAgICAgICAgICAg
ICBzdHJlYW0ubm9kZS50aW1lc3RhbXAgPSBEYXRlLm5vdygpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgcmV0dXJuIGk7Ci0gICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgICAgcmV0
dXJuIEZTLm1rZGV2KHBhdGgsIG1vZGUsIGRldik7Ci0gICAgICB9LGNyZWF0ZUxpbms6ZnVuY3Rp
b24gKHBhcmVudCwgbmFtZSwgdGFyZ2V0LCBjYW5SZWFkLCBjYW5Xcml0ZSkgewotICAgICAgICB2
YXIgcGF0aCA9IFBBVEguam9pbih0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5nJyA/IHBhcmVudCA6
IEZTLmdldFBhdGgocGFyZW50KSwgbmFtZSk7Ci0gICAgICAgIHJldHVybiBGUy5zeW1saW5rKHRh
cmdldCwgcGF0aCk7Ci0gICAgICB9LGZvcmNlTG9hZEZpbGU6ZnVuY3Rpb24gKG9iaikgewotICAg
ICAgICBpZiAob2JqLmlzRGV2aWNlIHx8IG9iai5pc0ZvbGRlciB8fCBvYmoubGluayB8fCBvYmou
Y29udGVudHMpIHJldHVybiB0cnVlOwotICAgICAgICB2YXIgc3VjY2VzcyA9IHRydWU7Ci0gICAg
ICAgIGlmICh0eXBlb2YgWE1MSHR0cFJlcXVlc3QgIT09ICd1bmRlZmluZWQnKSB7Ci0gICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJMYXp5IGxvYWRpbmcgc2hvdWxkIGhhdmUgYmVlbiBwZXJmb3Jt
ZWQgKGNvbnRlbnRzIHNldCkgaW4gY3JlYXRlTGF6eUZpbGUsIGJ1dCBpdCB3YXMgbm90LiBMYXp5
IGxvYWRpbmcgb25seSB3b3JrcyBpbiB3ZWIgd29ya2Vycy4gVXNlIC0tZW1iZWQtZmlsZSBvciAt
LXByZWxvYWQtZmlsZSBpbiBlbWNjIG9uIHRoZSBtYWluIHRocmVhZC4iKTsKLSAgICAgICAgfSBl
bHNlIGlmIChNb2R1bGVbJ3JlYWQnXSkgewotICAgICAgICAgIC8vIENvbW1hbmQtbGluZS4KLSAg
ICAgICAgICB0cnkgewotICAgICAgICAgICAgLy8gV0FSTklORzogQ2FuJ3QgcmVhZCBiaW5hcnkg
ZmlsZXMgaW4gVjgncyBkOCBvciB0cmFjZW1vbmtleSdzIGpzLCBhcwotICAgICAgICAgICAgLy8g
ICAgICAgICAgcmVhZCgpIHdpbGwgdHJ5IHRvIHBhcnNlIFVURjguCi0gICAgICAgICAgICBvYmou
Y29udGVudHMgPSBpbnRBcnJheUZyb21TdHJpbmcoTW9kdWxlWydyZWFkJ10ob2JqLnVybCksIHRy
dWUpOwotICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxz
ZTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCdDYW5ub3QgbG9hZCB3aXRob3V0IHJlYWQoKSBvciBYTUxIdHRwUmVxdWVzdC4nKTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoIXN1Y2Nlc3MpIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVJ
Tyk7Ci0gICAgICAgIHJldHVybiBzdWNjZXNzOwotICAgICAgfSxjcmVhdGVMYXp5RmlsZTpmdW5j
dGlvbiAocGFyZW50LCBuYW1lLCB1cmwsIGNhblJlYWQsIGNhbldyaXRlKSB7Ci0gICAgICAgIGlm
ICh0eXBlb2YgWE1MSHR0cFJlcXVlc3QgIT09ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgICAgaWYg
KCFFTlZJUk9OTUVOVF9JU19XT1JLRVIpIHRocm93ICdDYW5ub3QgZG8gc3luY2hyb25vdXMgYmlu
YXJ5IFhIUnMgb3V0c2lkZSB3ZWJ3b3JrZXJzIGluIG1vZGVybiBicm93c2Vycy4gVXNlIC0tZW1i
ZWQtZmlsZSBvciAtLXByZWxvYWQtZmlsZSBpbiBlbWNjJzsKLSAgICAgICAgICAvLyBMYXp5IGNo
dW5rZWQgVWludDhBcnJheSAoaW1wbGVtZW50cyBnZXQgYW5kIGxlbmd0aCBmcm9tIFVpbnQ4QXJy
YXkpLiBBY3R1YWwgZ2V0dGluZyBpcyBhYnN0cmFjdGVkIGF3YXkgZm9yIGV2ZW50dWFsIHJldXNl
LgotICAgICAgICAgIHZhciBMYXp5VWludDhBcnJheSA9IGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgdGhpcy5sZW5ndGhLbm93biA9IGZhbHNlOwotICAgICAgICAgICAgdGhpcy5jaHVua3MgPSBb
XTsgLy8gTG9hZGVkIGNodW5rcy4gSW5kZXggaXMgdGhlIGNodW5rIG51bWJlcgotICAgICAgICAg
IH0KLSAgICAgICAgICBMYXp5VWludDhBcnJheS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24oaWR4
KSB7Ci0gICAgICAgICAgICBpZiAoaWR4ID4gdGhpcy5sZW5ndGgtMSB8fCBpZHggPCAwKSB7Ci0g
ICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB2YXIgY2h1bmtPZmZzZXQgPSBpZHggJSB0aGlzLmNodW5rU2l6ZTsKLSAgICAgICAgICAgIHZh
ciBjaHVua051bSA9IE1hdGguZmxvb3IoaWR4IC8gdGhpcy5jaHVua1NpemUpOwotICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuZ2V0dGVyKGNodW5rTnVtKVtjaHVua09mZnNldF07Ci0gICAgICAgICAg
fQotICAgICAgICAgIExhenlVaW50OEFycmF5LnByb3RvdHlwZS5zZXREYXRhR2V0dGVyID0gZnVu
Y3Rpb24oZ2V0dGVyKSB7Ci0gICAgICAgICAgICB0aGlzLmdldHRlciA9IGdldHRlcjsKLSAgICAg
ICAgICB9Ci0gICAgICAgICAgTGF6eVVpbnQ4QXJyYXkucHJvdG90eXBlLmNhY2hlTGVuZ3RoID0g
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIC8vIEZpbmQgbGVuZ3RoCi0gICAgICAgICAgICAg
IHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICAgICAgICAgICAgeGhyLm9wZW4o
J0hFQUQnLCB1cmwsIGZhbHNlKTsKLSAgICAgICAgICAgICAgeGhyLnNlbmQobnVsbCk7Ci0gICAg
ICAgICAgICAgIGlmICghKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDAgfHwg
eGhyLnN0YXR1cyA9PT0gMzA0KSkgdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBsb2FkICIgKyB1
cmwgKyAiLiBTdGF0dXM6ICIgKyB4aHIuc3RhdHVzKTsKLSAgICAgICAgICAgICAgdmFyIGRhdGFs
ZW5ndGggPSBOdW1iZXIoeGhyLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LWxlbmd0aCIpKTsK
LSAgICAgICAgICAgICAgdmFyIGhlYWRlcjsKLSAgICAgICAgICAgICAgdmFyIGhhc0J5dGVTZXJ2
aW5nID0gKGhlYWRlciA9IHhoci5nZXRSZXNwb25zZUhlYWRlcigiQWNjZXB0LVJhbmdlcyIpKSAm
JiBoZWFkZXIgPT09ICJieXRlcyI7Ci0gICAgICAgICAgICAgIHZhciBjaHVua1NpemUgPSAxMDI0
KjEwMjQ7IC8vIENodW5rIHNpemUgaW4gYnl0ZXMKLSAgICAgICAgICAgICAgaWYgKCFoYXNCeXRl
U2VydmluZykgY2h1bmtTaXplID0gZGF0YWxlbmd0aDsKLSAgICAgICAgICAgICAgLy8gRnVuY3Rp
b24gdG8gZ2V0IGEgcmFuZ2UgZnJvbSB0aGUgcmVtb3RlIFVSTC4KLSAgICAgICAgICAgICAgdmFy
IGRvWEhSID0gKGZ1bmN0aW9uKGZyb20sIHRvKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGZyb20g
PiB0bykgdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHJhbmdlICgiICsgZnJvbSArICIsICIgKyB0
byArICIpIG9yIG5vIGJ5dGVzIHJlcXVlc3RlZCEiKTsKLSAgICAgICAgICAgICAgICBpZiAodG8g
PiBkYXRhbGVuZ3RoLTEpIHRocm93IG5ldyBFcnJvcigib25seSAiICsgZGF0YWxlbmd0aCArICIg
Ynl0ZXMgYXZhaWxhYmxlISBwcm9ncmFtbWVyIGVycm9yISIpOwotICAgICAgICAgICAgICAgIC8v
IFRPRE86IFVzZSBtb3pSZXNwb25zZUFycmF5QnVmZmVyLCByZXNwb25zZVN0cmVhbSwgZXRjLiBp
ZiBhdmFpbGFibGUuCi0gICAgICAgICAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVz
dCgpOwotICAgICAgICAgICAgICAgIHhoci5vcGVuKCdHRVQnLCB1cmwsIGZhbHNlKTsKLSAgICAg
ICAgICAgICAgICBpZiAoZGF0YWxlbmd0aCAhPT0gY2h1bmtTaXplKSB4aHIuc2V0UmVxdWVzdEhl
YWRlcigiUmFuZ2UiLCAiYnl0ZXM9IiArIGZyb20gKyAiLSIgKyB0byk7Ci0gICAgICAgICAgICAg
ICAgLy8gU29tZSBoaW50cyB0byB0aGUgYnJvd3NlciB0aGF0IHdlIHdhbnQgYmluYXJ5IGRhdGEu
Ci0gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBVaW50OEFycmF5ICE9ICd1bmRlZmluZWQnKSB4
aHIucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJzsKLSAgICAgICAgICAgICAgICBpZiAoeGhy
Lm92ZXJyaWRlTWltZVR5cGUpIHsKLSAgICAgICAgICAgICAgICAgIHhoci5vdmVycmlkZU1pbWVU
eXBlKCd0ZXh0L3BsYWluOyBjaGFyc2V0PXgtdXNlci1kZWZpbmVkJyk7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIHhoci5zZW5kKG51bGwpOwotICAgICAgICAgICAgICAgIGlm
ICghKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDAgfHwgeGhyLnN0YXR1cyA9
PT0gMzA0KSkgdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBsb2FkICIgKyB1cmwgKyAiLiBTdGF0
dXM6ICIgKyB4aHIuc3RhdHVzKTsKLSAgICAgICAgICAgICAgICBpZiAoeGhyLnJlc3BvbnNlICE9
PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheSh4
aHIucmVzcG9uc2UgfHwgW10pOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgICByZXR1cm4gaW50QXJyYXlGcm9tU3RyaW5nKHhoci5yZXNwb25zZVRleHQgfHwgJycs
IHRydWUpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICAgIHZhciBsYXp5QXJyYXkgPSB0aGlzOwotICAgICAgICAgICAgICBsYXp5QXJyYXkuc2V0RGF0
YUdldHRlcihmdW5jdGlvbihjaHVua051bSkgewotICAgICAgICAgICAgICAgIHZhciBzdGFydCA9
IGNodW5rTnVtICogY2h1bmtTaXplOwotICAgICAgICAgICAgICAgIHZhciBlbmQgPSAoY2h1bmtO
dW0rMSkgKiBjaHVua1NpemUgLSAxOyAvLyBpbmNsdWRpbmcgdGhpcyBieXRlCi0gICAgICAgICAg
ICAgICAgZW5kID0gTWF0aC5taW4oZW5kLCBkYXRhbGVuZ3RoLTEpOyAvLyBpZiBkYXRhbGVuZ3Ro
LTEgaXMgc2VsZWN0ZWQsIHRoaXMgaXMgdGhlIGxhc3QgYmxvY2sKLSAgICAgICAgICAgICAgICBp
ZiAodHlwZW9mKGxhenlBcnJheS5jaHVua3NbY2h1bmtOdW1dKSA9PT0gInVuZGVmaW5lZCIpIHsK
LSAgICAgICAgICAgICAgICAgIGxhenlBcnJheS5jaHVua3NbY2h1bmtOdW1dID0gZG9YSFIoc3Rh
cnQsIGVuZCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yo
bGF6eUFycmF5LmNodW5rc1tjaHVua051bV0pID09PSAidW5kZWZpbmVkIikgdGhyb3cgbmV3IEVy
cm9yKCJkb1hIUiBmYWlsZWQhIik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGxhenlBcnJheS5j
aHVua3NbY2h1bmtOdW1dOwotICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgdGhpcy5f
bGVuZ3RoID0gZGF0YWxlbmd0aDsKLSAgICAgICAgICAgICAgdGhpcy5fY2h1bmtTaXplID0gY2h1
bmtTaXplOwotICAgICAgICAgICAgICB0aGlzLmxlbmd0aEtub3duID0gdHJ1ZTsKLSAgICAgICAg
ICB9Ci0gICAgICAgICAgdmFyIGxhenlBcnJheSA9IG5ldyBMYXp5VWludDhBcnJheSgpOwotICAg
ICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsYXp5QXJyYXksICJsZW5ndGgiLCB7Ci0gICAg
ICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICBpZighdGhpcy5s
ZW5ndGhLbm93bikgewotICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FjaGVMZW5ndGgoKTsK
LSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sZW5n
dGg7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICB9KTsKLSAgICAgICAgICBPYmplY3QuZGVm
aW5lUHJvcGVydHkobGF6eUFycmF5LCAiY2h1bmtTaXplIiwgewotICAgICAgICAgICAgICBnZXQ6
IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgaWYoIXRoaXMubGVuZ3RoS25vd24pIHsK
LSAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhY2hlTGVuZ3RoKCk7Ci0gICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fY2h1bmtTaXplOwotICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgfSk7Ci0gICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSB7IGlz
RGV2aWNlOiBmYWxzZSwgY29udGVudHM6IGxhenlBcnJheSB9OwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgIHZhciBwcm9wZXJ0aWVzID0geyBpc0RldmljZTogZmFsc2UsIHVybDogdXJsIH07
Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIG5vZGUgPSBGUy5jcmVhdGVGaWxlKHBhcmVudCwgbmFt
ZSwgcHJvcGVydGllcywgY2FuUmVhZCwgY2FuV3JpdGUpOwotICAgICAgICAvLyBUaGlzIGlzIGEg
dG90YWwgaGFjaywgYnV0IEkgd2FudCB0byBnZXQgdGhpcyBsYXp5IGZpbGUgY29kZSBvdXQgb2Yg
dGhlCi0gICAgICAgIC8vIGNvcmUgb2YgTUVNRlMuIElmIHdlIHdhbnQgdG8ga2VlcCB0aGlzIGxh
enkgZmlsZSBjb25jZXB0IEkgZmVlbCBpdCBzaG91bGQKLSAgICAgICAgLy8gYmUgaXRzIG93biB0
aGluIExBWllGUyBwcm94eWluZyBjYWxscyB0byBNRU1GUy4KLSAgICAgICAgaWYgKHByb3BlcnRp
ZXMuY29udGVudHMpIHsKLSAgICAgICAgICBub2RlLmNvbnRlbnRzID0gcHJvcGVydGllcy5jb250
ZW50czsKLSAgICAgICAgfSBlbHNlIGlmIChwcm9wZXJ0aWVzLnVybCkgewotICAgICAgICAgIG5v
ZGUuY29udGVudHMgPSBudWxsOwotICAgICAgICAgIG5vZGUudXJsID0gcHJvcGVydGllcy51cmw7
Ci0gICAgICAgIH0KLSAgICAgICAgLy8gb3ZlcnJpZGUgZWFjaCBzdHJlYW0gb3Agd2l0aCBvbmUg
dGhhdCB0cmllcyB0byBmb3JjZSBsb2FkIHRoZSBsYXp5IGZpbGUgZmlyc3QKLSAgICAgICAgdmFy
IHN0cmVhbV9vcHMgPSB7fTsKLSAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhub2RlLnN0
cmVhbV9vcHMpOwotICAgICAgICBrZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7Ci0gICAgICAg
ICAgdmFyIGZuID0gbm9kZS5zdHJlYW1fb3BzW2tleV07Ci0gICAgICAgICAgc3RyZWFtX29wc1tr
ZXldID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBpZiAoIUZTLmZvcmNlTG9hZEZpbGUobm9k
ZSkpIHsKLSAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMu
RUlPKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBmbi5hcHBseShudWxsLCBh
cmd1bWVudHMpOwotICAgICAgICAgIH07Ci0gICAgICAgIH0pOwotICAgICAgICAvLyB1c2UgYSBj
dXN0b20gcmVhZCBmdW5jdGlvbgotICAgICAgICBzdHJlYW1fb3BzLnJlYWQgPSBmdW5jdGlvbihz
dHJlYW0sIGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKSB7Ci0gICAgICAgICAgaWYg
KCFGUy5mb3JjZUxvYWRGaWxlKG5vZGUpKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJy
bm9FcnJvcihFUlJOT19DT0RFUy5FSU8pOwotICAgICAgICAgIH0KLSAgICAgICAgICB2YXIgY29u
dGVudHMgPSBzdHJlYW0ubm9kZS5jb250ZW50czsKLSAgICAgICAgICB2YXIgc2l6ZSA9IE1hdGgu
bWluKGNvbnRlbnRzLmxlbmd0aCAtIHBvc2l0aW9uLCBsZW5ndGgpOwotICAgICAgICAgIGlmIChj
b250ZW50cy5zbGljZSkgeyAvLyBub3JtYWwgYXJyYXkKLSAgICAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyBpXSA9
IGNvbnRlbnRzW3Bvc2l0aW9uICsgaV07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7IC8vIExhenlV
aW50OEFycmF5IGZyb20gc3luYyBiaW5hcnkgWEhSCi0gICAgICAgICAgICAgIGJ1ZmZlcltvZmZz
ZXQgKyBpXSA9IGNvbnRlbnRzLmdldChwb3NpdGlvbiArIGkpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gc2l6ZTsKLSAgICAgICAgfTsKLSAgICAgICAgbm9k
ZS5zdHJlYW1fb3BzID0gc3RyZWFtX29wczsKLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICB9
LGNyZWF0ZVByZWxvYWRlZEZpbGU6ZnVuY3Rpb24gKHBhcmVudCwgbmFtZSwgdXJsLCBjYW5SZWFk
LCBjYW5Xcml0ZSwgb25sb2FkLCBvbmVycm9yLCBkb250Q3JlYXRlRmlsZSkgewotICAgICAgICBC
cm93c2VyLmluaXQoKTsKLSAgICAgICAgLy8gVE9ETyB3ZSBzaG91bGQgYWxsb3cgcGVvcGxlIHRv
IGp1c3QgcGFzcyBpbiBhIGNvbXBsZXRlIGZpbGVuYW1lIGluc3RlYWQKLSAgICAgICAgLy8gb2Yg
cGFyZW50IGFuZCBuYW1lIGJlaW5nIHRoYXQgd2UganVzdCBqb2luIHRoZW0gYW55d2F5cwotICAg
ICAgICB2YXIgZnVsbG5hbWUgPSBQQVRILnJlc29sdmUoUEFUSC5qb2luKHBhcmVudCwgbmFtZSkp
OwotICAgICAgICBmdW5jdGlvbiBwcm9jZXNzRGF0YShieXRlQXJyYXkpIHsKLSAgICAgICAgICBm
dW5jdGlvbiBmaW5pc2goYnl0ZUFycmF5KSB7Ci0gICAgICAgICAgICBpZiAoIWRvbnRDcmVhdGVG
aWxlKSB7Ci0gICAgICAgICAgICAgIEZTLmNyZWF0ZURhdGFGaWxlKHBhcmVudCwgbmFtZSwgYnl0
ZUFycmF5LCBjYW5SZWFkLCBjYW5Xcml0ZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBp
ZiAob25sb2FkKSBvbmxvYWQoKTsKLSAgICAgICAgICAgIHJlbW92ZVJ1bkRlcGVuZGVuY3koJ2Nw
ICcgKyBmdWxsbmFtZSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBoYW5kbGVkID0gZmFs
c2U7Ci0gICAgICAgICAgTW9kdWxlWydwcmVsb2FkUGx1Z2lucyddLmZvckVhY2goZnVuY3Rpb24o
cGx1Z2luKSB7Ci0gICAgICAgICAgICBpZiAoaGFuZGxlZCkgcmV0dXJuOwotICAgICAgICAgICAg
aWYgKHBsdWdpblsnY2FuSGFuZGxlJ10oZnVsbG5hbWUpKSB7Ci0gICAgICAgICAgICAgIHBsdWdp
blsnaGFuZGxlJ10oYnl0ZUFycmF5LCBmdWxsbmFtZSwgZmluaXNoLCBmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgICAgICBpZiAob25lcnJvcikgb25lcnJvcigpOwotICAgICAgICAgICAgICAgIHJl
bW92ZVJ1bkRlcGVuZGVuY3koJ2NwICcgKyBmdWxsbmFtZSk7Ci0gICAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgICBoYW5kbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9
KTsKLSAgICAgICAgICBpZiAoIWhhbmRsZWQpIGZpbmlzaChieXRlQXJyYXkpOwotICAgICAgICB9
Ci0gICAgICAgIGFkZFJ1bkRlcGVuZGVuY3koJ2NwICcgKyBmdWxsbmFtZSk7Ci0gICAgICAgIGlm
ICh0eXBlb2YgdXJsID09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgQnJvd3Nlci5hc3luY0xvYWQo
dXJsLCBmdW5jdGlvbihieXRlQXJyYXkpIHsKLSAgICAgICAgICAgIHByb2Nlc3NEYXRhKGJ5dGVB
cnJheSk7Ci0gICAgICAgICAgfSwgb25lcnJvcik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgcHJvY2Vzc0RhdGEodXJsKTsKLSAgICAgICAgfQotICAgICAgfSxjcmVhdGVEZWZhdWx0RGly
ZWN0b3JpZXM6ZnVuY3Rpb24gKCkgewotICAgICAgICBGUy5ta2RpcignL3RtcCcsIDA3NzcpOwot
ICAgICAgfSxjcmVhdGVEZWZhdWx0RGV2aWNlczpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIC8vIGNy
ZWF0ZSAvZGV2Ci0gICAgICAgIEZTLm1rZGlyKCcvZGV2JywgMDc3Nyk7Ci0gICAgICAgIC8vIHNl
dHVwIC9kZXYvbnVsbAotICAgICAgICBGUy5yZWdpc3RlckRldmljZShGUy5tYWtlZGV2KDEsIDMp
LCB7Ci0gICAgICAgICAgcmVhZDogZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9LAotICAgICAgICAg
IHdyaXRlOiBmdW5jdGlvbigpIHsgcmV0dXJuIDA7IH0KLSAgICAgICAgfSk7Ci0gICAgICAgIEZT
Lm1rZGV2KCcvZGV2L251bGwnLCAwNjY2LCBGUy5tYWtlZGV2KDEsIDMpKTsKLSAgICAgICAgLy8g
c2V0dXAgL2Rldi90dHkgYW5kIC9kZXYvdHR5MQotICAgICAgICAvLyBzdGRlcnIgbmVlZHMgdG8g
cHJpbnQgb3V0cHV0IHVzaW5nIE1vZHVsZVsncHJpbnRFcnInXQotICAgICAgICAvLyBzbyB3ZSBy
ZWdpc3RlciBhIHNlY29uZCB0dHkganVzdCBmb3IgaXQuCi0gICAgICAgIFRUWS5yZWdpc3RlcihG
Uy5tYWtlZGV2KDUsIDApLCBUVFkuZGVmYXVsdF90dHlfb3BzKTsKLSAgICAgICAgVFRZLnJlZ2lz
dGVyKEZTLm1ha2VkZXYoNiwgMCksIFRUWS5kZWZhdWx0X3R0eTFfb3BzKTsKLSAgICAgICAgRlMu
bWtkZXYoJy9kZXYvdHR5JywgMDY2NiwgRlMubWFrZWRldig1LCAwKSk7Ci0gICAgICAgIEZTLm1r
ZGV2KCcvZGV2L3R0eTEnLCAwNjY2LCBGUy5tYWtlZGV2KDYsIDApKTsKLSAgICAgICAgLy8gd2Un
cmUgbm90IGdvaW5nIHRvIGVtdWxhdGUgdGhlIGFjdHVhbCBzaG0gZGV2aWNlLAotICAgICAgICAv
LyBqdXN0IGNyZWF0ZSB0aGUgdG1wIGRpcnMgdGhhdCByZXNpZGUgaW4gaXQgY29tbW9ubHkKLSAg
ICAgICAgRlMubWtkaXIoJy9kZXYvc2htJywgMDc3Nyk7Ci0gICAgICAgIEZTLm1rZGlyKCcvZGV2
L3NobS90bXAnLCAwNzc3KTsKLSAgICAgIH0sY3JlYXRlU3RhbmRhcmRTdHJlYW1zOmZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgLy8gVE9ETyBkZXByZWNhdGUgdGhlIG9sZCBmdW5jdGlvbmFsaXR5IG9m
IGEgc2luZ2xlCi0gICAgICAgIC8vIGlucHV0IC8gb3V0cHV0IGNhbGxiYWNrIGFuZCB0aGF0IHV0
aWxpemVzIEZTLmNyZWF0ZURldmljZQotICAgICAgICAvLyBhbmQgaW5zdGVhZCByZXF1aXJlIGEg
dW5pcXVlIHNldCBvZiBzdHJlYW0gb3BzCi0gICAgICAgIC8vIGJ5IGRlZmF1bHQsIHdlIHN5bWxp
bmsgdGhlIHN0YW5kYXJkIHN0cmVhbXMgdG8gdGhlCi0gICAgICAgIC8vIGRlZmF1bHQgdHR5IGRl
dmljZXMuIGhvd2V2ZXIsIGlmIHRoZSBzdGFuZGFyZCBzdHJlYW1zCi0gICAgICAgIC8vIGhhdmUg
YmVlbiBvdmVyd3JpdHRlbiB3ZSBjcmVhdGUgYSB1bmlxdWUgZGV2aWNlIGZvcgotICAgICAgICAv
LyB0aGVtIGluc3RlYWQuCi0gICAgICAgIGlmIChNb2R1bGVbJ3N0ZGluJ10pIHsKLSAgICAgICAg
ICBGUy5jcmVhdGVEZXZpY2UoJy9kZXYnLCAnc3RkaW4nLCBNb2R1bGVbJ3N0ZGluJ10pOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgIEZTLnN5bWxpbmsoJy9kZXYvdHR5JywgJy9kZXYvc3Rk
aW4nKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoTW9kdWxlWydzdGRvdXQnXSkgewotICAgICAg
ICAgIEZTLmNyZWF0ZURldmljZSgnL2RldicsICdzdGRvdXQnLCBudWxsLCBNb2R1bGVbJ3N0ZG91
dCddKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBGUy5zeW1saW5rKCcvZGV2L3R0eScs
ICcvZGV2L3N0ZG91dCcpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChNb2R1bGVbJ3N0ZGVycidd
KSB7Ci0gICAgICAgICAgRlMuY3JlYXRlRGV2aWNlKCcvZGV2JywgJ3N0ZGVycicsIG51bGwsIE1v
ZHVsZVsnc3RkZXJyJ10pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIEZTLnN5bWxpbmso
Jy9kZXYvdHR5MScsICcvZGV2L3N0ZGVycicpOwotICAgICAgICB9Ci0gICAgICAgIC8vIG9wZW4g
ZGVmYXVsdCBzdHJlYW1zIGZvciB0aGUgc3RkaW4sIHN0ZG91dCBhbmQgc3RkZXJyIGRldmljZXMK
LSAgICAgICAgdmFyIHN0ZGluID0gRlMub3BlbignL2Rldi9zdGRpbicsICdyJyk7Ci0gICAgICAg
IEhFQVAzMlsoKF9zdGRpbik+PjIpXT1zdGRpbi5mZDsKLSAgICAgICAgYXNzZXJ0KHN0ZGluLmZk
ID09PSAxLCAnaW52YWxpZCBoYW5kbGUgZm9yIHN0ZGluICgnICsgc3RkaW4uZmQgKyAnKScpOwot
ICAgICAgICB2YXIgc3Rkb3V0ID0gRlMub3BlbignL2Rldi9zdGRvdXQnLCAndycpOwotICAgICAg
ICBIRUFQMzJbKChfc3Rkb3V0KT4+MildPXN0ZG91dC5mZDsKLSAgICAgICAgYXNzZXJ0KHN0ZG91
dC5mZCA9PT0gMiwgJ2ludmFsaWQgaGFuZGxlIGZvciBzdGRvdXQgKCcgKyBzdGRvdXQuZmQgKyAn
KScpOwotICAgICAgICB2YXIgc3RkZXJyID0gRlMub3BlbignL2Rldi9zdGRlcnInLCAndycpOwot
ICAgICAgICBIRUFQMzJbKChfc3RkZXJyKT4+MildPXN0ZGVyci5mZDsKLSAgICAgICAgYXNzZXJ0
KHN0ZGVyci5mZCA9PT0gMywgJ2ludmFsaWQgaGFuZGxlIGZvciBzdGRlcnIgKCcgKyBzdGRlcnIu
ZmQgKyAnKScpOwotICAgICAgfSxzdGF0aWNJbml0OmZ1bmN0aW9uICgpIHsKLSAgICAgICAgRlMu
bmFtZV90YWJsZSA9IG5ldyBBcnJheSg0MDk2KTsKLSAgICAgICAgRlMucm9vdCA9IEZTLmNyZWF0
ZU5vZGUobnVsbCwgJy8nLCAwMDQwMDAwIHwgMDc3NywgMCk7Ci0gICAgICAgIEZTLm1vdW50KE1F
TUZTLCB7fSwgJy8nKTsKLSAgICAgICAgRlMuY3JlYXRlRGVmYXVsdERpcmVjdG9yaWVzKCk7Ci0g
ICAgICAgIEZTLmNyZWF0ZURlZmF1bHREZXZpY2VzKCk7Ci0gICAgICB9LGluaXQ6ZnVuY3Rpb24g
KGlucHV0LCBvdXRwdXQsIGVycm9yKSB7Ci0gICAgICAgIGFzc2VydCghRlMuaW5pdC5pbml0aWFs
aXplZCwgJ0ZTLmluaXQgd2FzIHByZXZpb3VzbHkgY2FsbGVkLiBJZiB5b3Ugd2FudCB0byBpbml0
aWFsaXplIGxhdGVyIHdpdGggY3VzdG9tIHBhcmFtZXRlcnMsIHJlbW92ZSBhbnkgZWFybGllciBj
YWxscyAobm90ZSB0aGF0IG9uZSBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHRoZSBnZW5lcmF0
ZWQgY29kZSknKTsKLSAgICAgICAgRlMuaW5pdC5pbml0aWFsaXplZCA9IHRydWU7Ci0gICAgICAg
IC8vIEFsbG93IE1vZHVsZS5zdGRpbiBldGMuIHRvIHByb3ZpZGUgZGVmYXVsdHMsIGlmIG5vbmUg
ZXhwbGljaXRseSBwYXNzZWQgdG8gdXMgaGVyZQotICAgICAgICBNb2R1bGVbJ3N0ZGluJ10gPSBp
bnB1dCB8fCBNb2R1bGVbJ3N0ZGluJ107Ci0gICAgICAgIE1vZHVsZVsnc3Rkb3V0J10gPSBvdXRw
dXQgfHwgTW9kdWxlWydzdGRvdXQnXTsKLSAgICAgICAgTW9kdWxlWydzdGRlcnInXSA9IGVycm9y
IHx8IE1vZHVsZVsnc3RkZXJyJ107Ci0gICAgICAgIEZTLmNyZWF0ZVN0YW5kYXJkU3RyZWFtcygp
OwotICAgICAgfSxxdWl0OmZ1bmN0aW9uICgpIHsKLSAgICAgICAgRlMuaW5pdC5pbml0aWFsaXpl
ZCA9IGZhbHNlOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IEZTLnN0cmVhbXMubGVuZ3Ro
OyBpKyspIHsKLSAgICAgICAgICB2YXIgc3RyZWFtID0gRlMuc3RyZWFtc1tpXTsKLSAgICAgICAg
ICBpZiAoIXN0cmVhbSkgewotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgfQotICAg
ICAgICAgIEZTLmNsb3NlKHN0cmVhbSk7Ci0gICAgICAgIH0KLSAgICAgIH0sbW91bnQ6ZnVuY3Rp
b24gKHR5cGUsIG9wdHMsIG1vdW50cG9pbnQpIHsKLSAgICAgICAgdmFyIG1vdW50ID0gewotICAg
ICAgICAgIHR5cGU6IHR5cGUsCi0gICAgICAgICAgb3B0czogb3B0cywKLSAgICAgICAgICBtb3Vu
dHBvaW50OiBtb3VudHBvaW50LAotICAgICAgICAgIHJvb3Q6IG51bGwKLSAgICAgICAgfTsKLSAg
ICAgICAgdmFyIGxvb2t1cDsKLSAgICAgICAgaWYgKG1vdW50cG9pbnQpIHsKLSAgICAgICAgICBs
b29rdXAgPSBGUy5sb29rdXBQYXRoKG1vdW50cG9pbnQsIHsgZm9sbG93OiBmYWxzZSB9KTsKLSAg
ICAgICAgfQotICAgICAgICAvLyBjcmVhdGUgYSByb290IG5vZGUgZm9yIHRoZSBmcwotICAgICAg
ICB2YXIgcm9vdCA9IHR5cGUubW91bnQobW91bnQpOwotICAgICAgICByb290Lm1vdW50ID0gbW91
bnQ7Ci0gICAgICAgIG1vdW50LnJvb3QgPSByb290OwotICAgICAgICAvLyBhc3NpZ24gdGhlIG1v
dW50IGluZm8gdG8gdGhlIG1vdW50cG9pbnQncyBub2RlCi0gICAgICAgIGlmIChsb29rdXApIHsK
LSAgICAgICAgICBsb29rdXAubm9kZS5tb3VudCA9IG1vdW50OwotICAgICAgICAgIGxvb2t1cC5u
b2RlLm1vdW50ZWQgPSB0cnVlOwotICAgICAgICAgIC8vIGNvbXBhdGliaWxpdHkgdXBkYXRlIEZT
LnJvb3QgaWYgd2UgbW91bnQgdG8gLwotICAgICAgICAgIGlmIChtb3VudHBvaW50ID09PSAnLycp
IHsKLSAgICAgICAgICAgIEZTLnJvb3QgPSBtb3VudC5yb290OwotICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4gcm9vdDsKLSAgICAgIH0sbG9va3VwOmZ1bmN0aW9uIChwYXJl
bnQsIG5hbWUpIHsKLSAgICAgICAgcmV0dXJuIHBhcmVudC5ub2RlX29wcy5sb29rdXAocGFyZW50
LCBuYW1lKTsKLSAgICAgIH0sbWtub2Q6ZnVuY3Rpb24gKHBhdGgsIG1vZGUsIGRldikgewotICAg
ICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IHBhcmVudDogdHJ1ZSB9KTsK
LSAgICAgICAgdmFyIHBhcmVudCA9IGxvb2t1cC5ub2RlOwotICAgICAgICB2YXIgbmFtZSA9IFBB
VEguYmFzZW5hbWUocGF0aCk7Ci0gICAgICAgIHZhciBlcnIgPSBGUy5tYXlDcmVhdGUocGFyZW50
LCBuYW1lKTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFwYXJlbnQubm9kZV9vcHMubWtu
b2QpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVS
TSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHBhcmVudC5ub2RlX29wcy5ta25vZChwYXJl
bnQsIG5hbWUsIG1vZGUsIGRldik7Ci0gICAgICB9LGNyZWF0ZTpmdW5jdGlvbiAocGF0aCwgbW9k
ZSkgewotICAgICAgICBtb2RlICY9IDQwOTU7Ci0gICAgICAgIG1vZGUgfD0gMDEwMDAwMDsKLSAg
ICAgICAgcmV0dXJuIEZTLm1rbm9kKHBhdGgsIG1vZGUsIDApOwotICAgICAgfSxta2RpcjpmdW5j
dGlvbiAocGF0aCwgbW9kZSkgewotICAgICAgICBtb2RlICY9IDUxMSB8IDAwMDEwMDA7Ci0gICAg
ICAgIG1vZGUgfD0gMDA0MDAwMDsKLSAgICAgICAgcmV0dXJuIEZTLm1rbm9kKHBhdGgsIG1vZGUs
IDApOwotICAgICAgfSxta2RldjpmdW5jdGlvbiAocGF0aCwgbW9kZSwgZGV2KSB7Ci0gICAgICAg
IG1vZGUgfD0gMDAyMDAwMDsKLSAgICAgICAgcmV0dXJuIEZTLm1rbm9kKHBhdGgsIG1vZGUsIGRl
dik7Ci0gICAgICB9LHN5bWxpbms6ZnVuY3Rpb24gKG9sZHBhdGgsIG5ld3BhdGgpIHsKLSAgICAg
ICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgobmV3cGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7
Ci0gICAgICAgIHZhciBwYXJlbnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgdmFyIG5ld25hbWUg
PSBQQVRILmJhc2VuYW1lKG5ld3BhdGgpOwotICAgICAgICB2YXIgZXJyID0gRlMubWF5Q3JlYXRl
KHBhcmVudCwgbmV3bmFtZSk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAgICB0aHJvdyBu
ZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghcGFyZW50Lm5v
ZGVfb3BzLnN5bWxpbmspIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJO
T19DT0RFUy5FUEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHBhcmVudC5ub2RlX29w
cy5zeW1saW5rKHBhcmVudCwgbmV3bmFtZSwgb2xkcGF0aCk7Ci0gICAgICB9LHJlbmFtZTpmdW5j
dGlvbiAob2xkX3BhdGgsIG5ld19wYXRoKSB7Ci0gICAgICAgIHZhciBvbGRfZGlybmFtZSA9IFBB
VEguZGlybmFtZShvbGRfcGF0aCk7Ci0gICAgICAgIHZhciBuZXdfZGlybmFtZSA9IFBBVEguZGly
bmFtZShuZXdfcGF0aCk7Ci0gICAgICAgIHZhciBvbGRfbmFtZSA9IFBBVEguYmFzZW5hbWUob2xk
X3BhdGgpOwotICAgICAgICB2YXIgbmV3X25hbWUgPSBQQVRILmJhc2VuYW1lKG5ld19wYXRoKTsK
LSAgICAgICAgLy8gcGFyZW50cyBtdXN0IGV4aXN0Ci0gICAgICAgIHZhciBsb29rdXAsIG9sZF9k
aXIsIG5ld19kaXI7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgbG9va3VwID0gRlMubG9va3Vw
UGF0aChvbGRfcGF0aCwgeyBwYXJlbnQ6IHRydWUgfSk7Ci0gICAgICAgICAgb2xkX2RpciA9IGxv
b2t1cC5ub2RlOwotICAgICAgICAgIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgobmV3X3BhdGgsIHsg
cGFyZW50OiB0cnVlIH0pOwotICAgICAgICAgIG5ld19kaXIgPSBsb29rdXAubm9kZTsKLSAgICAg
ICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5P
X0NPREVTLkVCVVNZKTsKLSAgICAgICAgfQotICAgICAgICAvLyBuZWVkIHRvIGJlIHBhcnQgb2Yg
dGhlIHNhbWUgbW91bnQKLSAgICAgICAgaWYgKG9sZF9kaXIubW91bnQgIT09IG5ld19kaXIubW91
bnQpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FWERF
Vik7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gc291cmNlIG11c3QgZXhpc3QKLSAgICAgICAgdmFy
IG9sZF9ub2RlID0gRlMubG9va3VwTm9kZShvbGRfZGlyLCBvbGRfbmFtZSk7Ci0gICAgICAgIC8v
IG9sZCBwYXRoIHNob3VsZCBub3QgYmUgYW4gYW5jZXN0b3Igb2YgdGhlIG5ldyBwYXRoCi0gICAg
ICAgIHZhciByZWxhdGl2ZSA9IFBBVEgucmVsYXRpdmUob2xkX3BhdGgsIG5ld19kaXJuYW1lKTsK
LSAgICAgICAgaWYgKHJlbGF0aXZlLmNoYXJBdCgwKSAhPT0gJy4nKSB7Ci0gICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAg
ICAgICAvLyBuZXcgcGF0aCBzaG91bGQgbm90IGJlIGFuIGFuY2VzdG9yIG9mIHRoZSBvbGQgcGF0
aAotICAgICAgICByZWxhdGl2ZSA9IFBBVEgucmVsYXRpdmUobmV3X3BhdGgsIG9sZF9kaXJuYW1l
KTsKLSAgICAgICAgaWYgKHJlbGF0aXZlLmNoYXJBdCgwKSAhPT0gJy4nKSB7Ci0gICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRU5PVEVNUFRZKTsKLSAgICAgICAg
fQotICAgICAgICAvLyBzZWUgaWYgdGhlIG5ldyBwYXRoIGFscmVhZHkgZXhpc3RzCi0gICAgICAg
IHZhciBuZXdfbm9kZTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBuZXdfbm9kZSA9IEZTLmxv
b2t1cE5vZGUobmV3X2RpciwgbmV3X25hbWUpOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAg
ICAgICAgLy8gbm90IGZhdGFsCi0gICAgICAgIH0KLSAgICAgICAgLy8gZWFybHkgb3V0IGlmIG5v
dGhpbmcgbmVlZHMgdG8gY2hhbmdlCi0gICAgICAgIGlmIChvbGRfbm9kZSA9PT0gbmV3X25vZGUp
IHsKLSAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgLy8gd2UnbGwgbmVlZCB0
byBkZWxldGUgdGhlIG9sZCBlbnRyeQotICAgICAgICB2YXIgaXNkaXIgPSBGUy5pc0RpcihvbGRf
bm9kZS5tb2RlKTsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heURlbGV0ZShvbGRfZGlyLCBvbGRf
bmFtZSwgaXNkaXIpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZT
LkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAgICAgICAvLyBuZWVkIGRlbGV0ZSBwZXJt
aXNzaW9ucyBpZiB3ZSdsbCBiZSBvdmVyd3JpdGluZy4KLSAgICAgICAgLy8gbmVlZCBjcmVhdGUg
cGVybWlzc2lvbnMgaWYgbmV3IGRvZXNuJ3QgYWxyZWFkeSBleGlzdC4KLSAgICAgICAgZXJyID0g
bmV3X25vZGUgPwotICAgICAgICAgIEZTLm1heURlbGV0ZShuZXdfZGlyLCBuZXdfbmFtZSwgaXNk
aXIpIDoKLSAgICAgICAgICBGUy5tYXlDcmVhdGUobmV3X2RpciwgbmV3X25hbWUpOwotICAgICAg
ICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoIW9sZF9kaXIubm9kZV9vcHMucmVuYW1lKSB7Ci0gICAgICAg
ICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9
Ci0gICAgICAgIGlmIChGUy5pc01vdW50cG9pbnQob2xkX25vZGUpIHx8IChuZXdfbm9kZSAmJiBG
Uy5pc01vdW50cG9pbnQobmV3X25vZGUpKSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKEVSUk5PX0NPREVTLkVCVVNZKTsKLSAgICAgICAgfQotICAgICAgICAvLyBpZiB3ZSBh
cmUgZ29pbmcgdG8gY2hhbmdlIHRoZSBwYXJlbnQsIGNoZWNrIHdyaXRlIHBlcm1pc3Npb25zCi0g
ICAgICAgIGlmIChuZXdfZGlyICE9PSBvbGRfZGlyKSB7Ci0gICAgICAgICAgZXJyID0gRlMubm9k
ZVBlcm1pc3Npb25zKG9sZF9kaXIsICd3Jyk7Ci0gICAgICAgICAgaWYgKGVycikgewotICAgICAg
ICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoZXJyKTsKLSAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICAgICAgLy8gcmVtb3ZlIHRoZSBub2RlIGZyb20gdGhlIGxvb2t1cCBoYXNoCi0gICAg
ICAgIEZTLmhhc2hSZW1vdmVOb2RlKG9sZF9ub2RlKTsKLSAgICAgICAgLy8gZG8gdGhlIHVuZGVy
bHlpbmcgZnMgcmVuYW1lCi0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgb2xkX2Rpci5ub2RlX29w
cy5yZW5hbWUob2xkX25vZGUsIG5ld19kaXIsIG5ld19uYW1lKTsKLSAgICAgICAgfSBjYXRjaCAo
ZSkgewotICAgICAgICAgIHRocm93IGU7Ci0gICAgICAgIH0gZmluYWxseSB7Ci0gICAgICAgICAg
Ly8gYWRkIHRoZSBub2RlIGJhY2sgdG8gdGhlIGhhc2ggKGluIGNhc2Ugbm9kZV9vcHMucmVuYW1l
Ci0gICAgICAgICAgLy8gY2hhbmdlZCBpdHMgbmFtZSkKLSAgICAgICAgICBGUy5oYXNoQWRkTm9k
ZShvbGRfbm9kZSk7Ci0gICAgICAgIH0KLSAgICAgIH0scm1kaXI6ZnVuY3Rpb24gKHBhdGgpIHsK
LSAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBwYXJlbnQ6IHRydWUg
fSk7Ci0gICAgICAgIHZhciBwYXJlbnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgdmFyIG5hbWUg
PSBQQVRILmJhc2VuYW1lKHBhdGgpOwotICAgICAgICB2YXIgbm9kZSA9IEZTLmxvb2t1cE5vZGUo
cGFyZW50LCBuYW1lKTsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heURlbGV0ZShwYXJlbnQsIG5h
bWUsIHRydWUpOwotICAgICAgICBpZiAoZXJyKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVy
cm5vRXJyb3IoZXJyKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXBhcmVudC5ub2RlX29wcy5y
bWRpcikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVQ
RVJNKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoRlMuaXNNb3VudHBvaW50KG5vZGUpKSB7Ci0g
ICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJVU1kpOwotICAg
ICAgICB9Ci0gICAgICAgIHBhcmVudC5ub2RlX29wcy5ybWRpcihwYXJlbnQsIG5hbWUpOwotICAg
ICAgICBGUy5kZXN0cm95Tm9kZShub2RlKTsKLSAgICAgIH0scmVhZGRpcjpmdW5jdGlvbiAocGF0
aCkgewotICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzog
dHJ1ZSB9KTsKLSAgICAgICAgdmFyIG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAgICAgaWYgKCFu
b2RlLm5vZGVfb3BzLnJlYWRkaXIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJv
cihFUlJOT19DT0RFUy5FTk9URElSKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbm9kZS5u
b2RlX29wcy5yZWFkZGlyKG5vZGUpOwotICAgICAgfSx1bmxpbms6ZnVuY3Rpb24gKHBhdGgpIHsK
LSAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBwYXJlbnQ6IHRydWUg
fSk7Ci0gICAgICAgIHZhciBwYXJlbnQgPSBsb29rdXAubm9kZTsKLSAgICAgICAgdmFyIG5hbWUg
PSBQQVRILmJhc2VuYW1lKHBhdGgpOwotICAgICAgICB2YXIgbm9kZSA9IEZTLmxvb2t1cE5vZGUo
cGFyZW50LCBuYW1lKTsKLSAgICAgICAgdmFyIGVyciA9IEZTLm1heURlbGV0ZShwYXJlbnQsIG5h
bWUsIGZhbHNlKTsKLSAgICAgICAgaWYgKGVycikgewotICAgICAgICAgIC8vIFBPU0lYIHNheXMg
dW5saW5rIHNob3VsZCBzZXQgRVBFUk0sIG5vdCBFSVNESVIKLSAgICAgICAgICBpZiAoZXJyID09
PSBFUlJOT19DT0RFUy5FSVNESVIpIGVyciA9IEVSUk5PX0NPREVTLkVQRVJNOwotICAgICAgICAg
IHRocm93IG5ldyBGUy5FcnJub0Vycm9yKGVycik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFw
YXJlbnQubm9kZV9vcHMudW5saW5rKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJy
b3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0gICAgICAgIGlmIChGUy5pc01vdW50
cG9pbnQobm9kZSkpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19D
T0RFUy5FQlVTWSk7Ci0gICAgICAgIH0KLSAgICAgICAgcGFyZW50Lm5vZGVfb3BzLnVubGluayhw
YXJlbnQsIG5hbWUpOwotICAgICAgICBGUy5kZXN0cm95Tm9kZShub2RlKTsKLSAgICAgIH0scmVh
ZGxpbms6ZnVuY3Rpb24gKHBhdGgpIHsKLSAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBh
dGgocGF0aCwgeyBmb2xsb3c6IGZhbHNlIH0pOwotICAgICAgICB2YXIgbGluayA9IGxvb2t1cC5u
b2RlOwotICAgICAgICBpZiAoIWxpbmsubm9kZV9vcHMucmVhZGxpbmspIHsKLSAgICAgICAgICB0
aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiBsaW5rLm5vZGVfb3BzLnJlYWRsaW5rKGxpbmspOwotICAgICAgfSxzdGF0
OmZ1bmN0aW9uIChwYXRoLCBkb250Rm9sbG93KSB7Ci0gICAgICAgIHZhciBsb29rdXAgPSBGUy5s
b29rdXBQYXRoKHBhdGgsIHsgZm9sbG93OiAhZG9udEZvbGxvdyB9KTsKLSAgICAgICAgdmFyIG5v
ZGUgPSBsb29rdXAubm9kZTsKLSAgICAgICAgaWYgKCFub2RlLm5vZGVfb3BzLmdldGF0dHIpIHsK
LSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5vZGUubm9kZV9vcHMuZ2V0YXR0cihub2RlKTsKLSAg
ICAgIH0sbHN0YXQ6ZnVuY3Rpb24gKHBhdGgpIHsKLSAgICAgICAgcmV0dXJuIEZTLnN0YXQocGF0
aCwgdHJ1ZSk7Ci0gICAgICB9LGNobW9kOmZ1bmN0aW9uIChwYXRoLCBtb2RlLCBkb250Rm9sbG93
KSB7Ci0gICAgICAgIHZhciBub2RlOwotICAgICAgICBpZiAodHlwZW9mIHBhdGggPT09ICdzdHJp
bmcnKSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBhdGgocGF0aCwgeyBmb2xs
b3c6ICFkb250Rm9sbG93IH0pOwotICAgICAgICAgIG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICBub2RlID0gcGF0aDsKLSAgICAgICAgfQotICAgICAgICBp
ZiAoIW5vZGUubm9kZV9vcHMuc2V0YXR0cikgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJu
b0Vycm9yKEVSUk5PX0NPREVTLkVQRVJNKTsKLSAgICAgICAgfQotICAgICAgICBub2RlLm5vZGVf
b3BzLnNldGF0dHIobm9kZSwgewotICAgICAgICAgIG1vZGU6IChtb2RlICYgNDA5NSkgfCAobm9k
ZS5tb2RlICYgfjQwOTUpLAotICAgICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKQotICAgICAg
ICB9KTsKLSAgICAgIH0sbGNobW9kOmZ1bmN0aW9uIChwYXRoLCBtb2RlKSB7Ci0gICAgICAgIEZT
LmNobW9kKHBhdGgsIG1vZGUsIHRydWUpOwotICAgICAgfSxmY2htb2Q6ZnVuY3Rpb24gKGZkLCBt
b2RlKSB7Ci0gICAgICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmQpOwotICAgICAgICBp
ZiAoIXN0cmVhbSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NP
REVTLkVCQURGKTsKLSAgICAgICAgfQotICAgICAgICBGUy5jaG1vZChzdHJlYW0ubm9kZSwgbW9k
ZSk7Ci0gICAgICB9LGNob3duOmZ1bmN0aW9uIChwYXRoLCB1aWQsIGdpZCwgZG9udEZvbGxvdykg
ewotICAgICAgICB2YXIgbm9kZTsKLSAgICAgICAgaWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5n
JykgewotICAgICAgICAgIHZhciBsb29rdXAgPSBGUy5sb29rdXBQYXRoKHBhdGgsIHsgZm9sbG93
OiAhZG9udEZvbGxvdyB9KTsKLSAgICAgICAgICBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgbm9kZSA9IHBhdGg7Ci0gICAgICAgIH0KLSAgICAgICAgaWYg
KCFub2RlLm5vZGVfb3BzLnNldGF0dHIpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9F
cnJvcihFUlJOT19DT0RFUy5FUEVSTSk7Ci0gICAgICAgIH0KLSAgICAgICAgbm9kZS5ub2RlX29w
cy5zZXRhdHRyKG5vZGUsIHsKLSAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCkKLSAgICAg
ICAgICAvLyB3ZSBpZ25vcmUgdGhlIHVpZCAvIGdpZCBmb3Igbm93Ci0gICAgICAgIH0pOwotICAg
ICAgfSxsY2hvd246ZnVuY3Rpb24gKHBhdGgsIHVpZCwgZ2lkKSB7Ci0gICAgICAgIEZTLmNob3du
KHBhdGgsIHVpZCwgZ2lkLCB0cnVlKTsKLSAgICAgIH0sZmNob3duOmZ1bmN0aW9uIChmZCwgdWlk
LCBnaWQpIHsKLSAgICAgICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmZCk7Ci0gICAgICAg
IGlmICghc3RyZWFtKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9f
Q09ERVMuRUJBREYpOwotICAgICAgICB9Ci0gICAgICAgIEZTLmNob3duKHN0cmVhbS5ub2RlLCB1
aWQsIGdpZCk7Ci0gICAgICB9LHRydW5jYXRlOmZ1bmN0aW9uIChwYXRoLCBsZW4pIHsKLSAgICAg
ICAgaWYgKGxlbiA8IDApIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJO
T19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9Ci0gICAgICAgIHZhciBub2RlOwotICAgICAgICBp
ZiAodHlwZW9mIHBhdGggPT09ICdzdHJpbmcnKSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9IEZT
Lmxvb2t1cFBhdGgocGF0aCwgeyBmb2xsb3c6IHRydWUgfSk7Ci0gICAgICAgICAgbm9kZSA9IGxv
b2t1cC5ub2RlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIG5vZGUgPSBwYXRoOwotICAg
ICAgICB9Ci0gICAgICAgIGlmICghbm9kZS5ub2RlX29wcy5zZXRhdHRyKSB7Ci0gICAgICAgICAg
dGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRVBFUk0pOwotICAgICAgICB9Ci0g
ICAgICAgIGlmIChGUy5pc0Rpcihub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZT
LkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlTRElSKTsKLSAgICAgICAgfQotICAgICAgICBpZiAo
IUZTLmlzRmlsZShub2RlLm1vZGUpKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJy
b3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAgICB2YXIgZXJyID0gRlMu
bm9kZVBlcm1pc3Npb25zKG5vZGUsICd3Jyk7Ci0gICAgICAgIGlmIChlcnIpIHsKLSAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0gICAgICAgIG5vZGUu
bm9kZV9vcHMuc2V0YXR0cihub2RlLCB7Ci0gICAgICAgICAgc2l6ZTogbGVuLAotICAgICAgICAg
IHRpbWVzdGFtcDogRGF0ZS5ub3coKQotICAgICAgICB9KTsKLSAgICAgIH0sZnRydW5jYXRlOmZ1
bmN0aW9uIChmZCwgbGVuKSB7Ci0gICAgICAgIHZhciBzdHJlYW0gPSBGUy5nZXRTdHJlYW0oZmQp
OwotICAgICAgICBpZiAoIXN0cmVhbSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vy
cm9yKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoKHN0cmVhbS5m
bGFncyAmIDMpID09PSAwKSB7Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJS
Tk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAgICBGUy50cnVuY2F0ZShzdHJlYW0u
bm9kZSwgbGVuKTsKLSAgICAgIH0sdXRpbWU6ZnVuY3Rpb24gKHBhdGgsIGF0aW1lLCBtdGltZSkg
ewotICAgICAgICB2YXIgbG9va3VwID0gRlMubG9va3VwUGF0aChwYXRoLCB7IGZvbGxvdzogdHJ1
ZSB9KTsKLSAgICAgICAgdmFyIG5vZGUgPSBsb29rdXAubm9kZTsKLSAgICAgICAgbm9kZS5ub2Rl
X29wcy5zZXRhdHRyKG5vZGUsIHsKLSAgICAgICAgICB0aW1lc3RhbXA6IE1hdGgubWF4KGF0aW1l
LCBtdGltZSkKLSAgICAgICAgfSk7Ci0gICAgICB9LG9wZW46ZnVuY3Rpb24gKHBhdGgsIGZsYWdz
LCBtb2RlLCBmZF9zdGFydCwgZmRfZW5kKSB7Ci0gICAgICAgIHBhdGggPSBQQVRILm5vcm1hbGl6
ZShwYXRoKTsKLSAgICAgICAgZmxhZ3MgPSB0eXBlb2YgZmxhZ3MgPT09ICdzdHJpbmcnID8gRlMu
bW9kZVN0cmluZ1RvRmxhZ3MoZmxhZ3MpIDogZmxhZ3M7Ci0gICAgICAgIG1vZGUgPSB0eXBlb2Yg
bW9kZSA9PT0gJ3VuZGVmaW5lZCcgPyAwNjY2IDogbW9kZTsKLSAgICAgICAgaWYgKChmbGFncyAm
IDUxMikpIHsKLSAgICAgICAgICBtb2RlID0gKG1vZGUgJiA0MDk1KSB8IDAxMDAwMDA7Ci0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgbW9kZSA9IDA7Ci0gICAgICAgIH0KLSAgICAgICAgdmFy
IG5vZGU7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgdmFyIGxvb2t1cCA9IEZTLmxvb2t1cFBh
dGgocGF0aCwgewotICAgICAgICAgICAgZm9sbG93OiAhKGZsYWdzICYgMDIwMDAwMCkKLSAgICAg
ICAgICB9KTsKLSAgICAgICAgICBub2RlID0gbG9va3VwLm5vZGU7Ci0gICAgICAgICAgcGF0aCA9
IGxvb2t1cC5wYXRoOwotICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgLy8gaWdub3Jl
Ci0gICAgICAgIH0KLSAgICAgICAgLy8gcGVyaGFwcyB3ZSBuZWVkIHRvIGNyZWF0ZSB0aGUgbm9k
ZQotICAgICAgICBpZiAoKGZsYWdzICYgNTEyKSkgewotICAgICAgICAgIGlmIChub2RlKSB7Ci0g
ICAgICAgICAgICAvLyBpZiBPX0NSRUFUIGFuZCBPX0VYQ0wgYXJlIHNldCwgZXJyb3Igb3V0IGlm
IHRoZSBub2RlIGFscmVhZHkgZXhpc3RzCi0gICAgICAgICAgICBpZiAoKGZsYWdzICYgMjA0OCkp
IHsKLSAgICAgICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUVY
SVNUKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8g
bm9kZSBkb2Vzbid0IGV4aXN0LCB0cnkgdG8gY3JlYXRlIGl0Ci0gICAgICAgICAgICBub2RlID0g
RlMubWtub2QocGF0aCwgbW9kZSwgMCk7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAg
IGlmICghbm9kZSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NP
REVTLkVOT0VOVCk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gY2FuJ3QgdHJ1bmNhdGUgYSBkZXZp
Y2UKLSAgICAgICAgaWYgKEZTLmlzQ2hyZGV2KG5vZGUubW9kZSkpIHsKLSAgICAgICAgICBmbGFn
cyAmPSB+MTAyNDsKLSAgICAgICAgfQotICAgICAgICAvLyBjaGVjayBwZXJtaXNzaW9ucwotICAg
ICAgICB2YXIgZXJyID0gRlMubWF5T3Blbihub2RlLCBmbGFncyk7Ci0gICAgICAgIGlmIChlcnIp
IHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihlcnIpOwotICAgICAgICB9Ci0g
ICAgICAgIC8vIGRvIHRydW5jYXRpb24gaWYgbmVjZXNzYXJ5Ci0gICAgICAgIGlmICgoZmxhZ3Mg
JiAxMDI0KSkgewotICAgICAgICAgIEZTLnRydW5jYXRlKG5vZGUsIDApOwotICAgICAgICB9Ci0g
ICAgICAgIC8vIHJlZ2lzdGVyIHRoZSBzdHJlYW0gd2l0aCB0aGUgZmlsZXN5c3RlbQotICAgICAg
ICB2YXIgc3RyZWFtID0gRlMuY3JlYXRlU3RyZWFtKHsKLSAgICAgICAgICBwYXRoOiBwYXRoLAot
ICAgICAgICAgIG5vZGU6IG5vZGUsCi0gICAgICAgICAgZmxhZ3M6IGZsYWdzLAotICAgICAgICAg
IHNlZWthYmxlOiB0cnVlLAotICAgICAgICAgIHBvc2l0aW9uOiAwLAotICAgICAgICAgIHN0cmVh
bV9vcHM6IG5vZGUuc3RyZWFtX29wcywKLSAgICAgICAgICAvLyB1c2VkIGJ5IHRoZSBmaWxlIGZh
bWlseSBsaWJjIGNhbGxzIChmb3BlbiwgZndyaXRlLCBmZXJyb3IsIGV0Yy4pCi0gICAgICAgICAg
dW5nb3R0ZW46IFtdLAotICAgICAgICAgIGVycm9yOiBmYWxzZQotICAgICAgICB9LCBmZF9zdGFy
dCwgZmRfZW5kKTsKLSAgICAgICAgLy8gY2FsbCB0aGUgbmV3IHN0cmVhbSdzIG9wZW4gZnVuY3Rp
b24KLSAgICAgICAgaWYgKHN0cmVhbS5zdHJlYW1fb3BzLm9wZW4pIHsKLSAgICAgICAgICBzdHJl
YW0uc3RyZWFtX29wcy5vcGVuKHN0cmVhbSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHN0
cmVhbTsKLSAgICAgIH0sY2xvc2U6ZnVuY3Rpb24gKHN0cmVhbSkgewotICAgICAgICB0cnkgewot
ICAgICAgICAgIGlmIChzdHJlYW0uc3RyZWFtX29wcy5jbG9zZSkgewotICAgICAgICAgICAgc3Ry
ZWFtLnN0cmVhbV9vcHMuY2xvc2Uoc3RyZWFtKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gY2F0
Y2ggKGUpIHsKLSAgICAgICAgICB0aHJvdyBlOwotICAgICAgICB9IGZpbmFsbHkgewotICAgICAg
ICAgIEZTLmNsb3NlU3RyZWFtKHN0cmVhbS5mZCk7Ci0gICAgICAgIH0KLSAgICAgIH0sbGxzZWVr
OmZ1bmN0aW9uIChzdHJlYW0sIG9mZnNldCwgd2hlbmNlKSB7Ci0gICAgICAgIGlmICghc3RyZWFt
LnNlZWthYmxlIHx8ICFzdHJlYW0uc3RyZWFtX29wcy5sbHNlZWspIHsKLSAgICAgICAgICB0aHJv
dyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FU1BJUEUpOwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBzdHJlYW0uc3RyZWFtX29wcy5sbHNlZWsoc3RyZWFtLCBvZmZzZXQsIHdoZW5j
ZSk7Ci0gICAgICB9LHJlYWQ6ZnVuY3Rpb24gKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0
aCwgcG9zaXRpb24pIHsKLSAgICAgICAgaWYgKGxlbmd0aCA8IDAgfHwgcG9zaXRpb24gPCAwKSB7
Ci0gICAgICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsK
LSAgICAgICAgfQotICAgICAgICBpZiAoKHN0cmVhbS5mbGFncyAmIDMpID09PSAxKSB7Ci0gICAg
ICAgICAgdGhyb3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAg
ICB9Ci0gICAgICAgIGlmIChGUy5pc0RpcihzdHJlYW0ubm9kZS5tb2RlKSkgewotICAgICAgICAg
IHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVJU0RJUik7Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKCFzdHJlYW0uc3RyZWFtX29wcy5yZWFkKSB7Ci0gICAgICAgICAgdGhyb3cg
bmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUlOVkFMKTsKLSAgICAgICAgfQotICAgICAg
ICB2YXIgc2Vla2luZyA9IHRydWU7Ci0gICAgICAgIGlmICh0eXBlb2YgcG9zaXRpb24gPT09ICd1
bmRlZmluZWQnKSB7Ci0gICAgICAgICAgcG9zaXRpb24gPSBzdHJlYW0ucG9zaXRpb247Ci0gICAg
ICAgICAgc2Vla2luZyA9IGZhbHNlOwotICAgICAgICB9IGVsc2UgaWYgKCFzdHJlYW0uc2Vla2Fi
bGUpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FU1BJ
UEUpOwotICAgICAgICB9Ci0gICAgICAgIHZhciBieXRlc1JlYWQgPSBzdHJlYW0uc3RyZWFtX29w
cy5yZWFkKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCwgcG9zaXRpb24pOwotICAgICAg
ICBpZiAoIXNlZWtpbmcpIHN0cmVhbS5wb3NpdGlvbiArPSBieXRlc1JlYWQ7Ci0gICAgICAgIHJl
dHVybiBieXRlc1JlYWQ7Ci0gICAgICB9LHdyaXRlOmZ1bmN0aW9uIChzdHJlYW0sIGJ1ZmZlciwg
b2Zmc2V0LCBsZW5ndGgsIHBvc2l0aW9uKSB7Ci0gICAgICAgIGlmIChsZW5ndGggPCAwIHx8IHBv
c2l0aW9uIDwgMCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NP
REVTLkVJTlZBTCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKChzdHJlYW0uZmxhZ3MgJiAzKSA9
PT0gMCkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVSUk5PX0NPREVTLkVC
QURGKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoRlMuaXNEaXIoc3RyZWFtLm5vZGUubW9kZSkp
IHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSVNESVIp
OwotICAgICAgICB9Ci0gICAgICAgIGlmICghc3RyZWFtLnN0cmVhbV9vcHMud3JpdGUpIHsKLSAg
ICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAg
ICAgICB9Ci0gICAgICAgIHZhciBzZWVraW5nID0gdHJ1ZTsKLSAgICAgICAgaWYgKHR5cGVvZiBw
b3NpdGlvbiA9PT0gJ3VuZGVmaW5lZCcpIHsKLSAgICAgICAgICBwb3NpdGlvbiA9IHN0cmVhbS5w
b3NpdGlvbjsKLSAgICAgICAgICBzZWVraW5nID0gZmFsc2U7Ci0gICAgICAgIH0gZWxzZSBpZiAo
IXN0cmVhbS5zZWVrYWJsZSkgewotICAgICAgICAgIHRocm93IG5ldyBGUy5FcnJub0Vycm9yKEVS
Uk5PX0NPREVTLkVTUElQRSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHN0cmVhbS5mbGFncyAm
IDgpIHsKLSAgICAgICAgICAvLyBzZWVrIHRvIHRoZSBlbmQgYmVmb3JlIHdyaXRpbmcgaW4gYXBw
ZW5kIG1vZGUKLSAgICAgICAgICBGUy5sbHNlZWsoc3RyZWFtLCAwLCAyKTsKLSAgICAgICAgfQot
ICAgICAgICB2YXIgYnl0ZXNXcml0dGVuID0gc3RyZWFtLnN0cmVhbV9vcHMud3JpdGUoc3RyZWFt
LCBidWZmZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbik7Ci0gICAgICAgIGlmICghc2Vla2lu
Zykgc3RyZWFtLnBvc2l0aW9uICs9IGJ5dGVzV3JpdHRlbjsKLSAgICAgICAgcmV0dXJuIGJ5dGVz
V3JpdHRlbjsKLSAgICAgIH0sYWxsb2NhdGU6ZnVuY3Rpb24gKHN0cmVhbSwgb2Zmc2V0LCBsZW5n
dGgpIHsKLSAgICAgICAgaWYgKG9mZnNldCA8IDAgfHwgbGVuZ3RoIDw9IDApIHsKLSAgICAgICAg
ICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FSU5WQUwpOwotICAgICAgICB9
Ci0gICAgICAgIGlmICgoc3RyZWFtLmZsYWdzICYgMykgPT09IDApIHsKLSAgICAgICAgICB0aHJv
dyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKCFGUy5pc0ZpbGUoc3RyZWFtLm5vZGUubW9kZSkgJiYgIUZTLmlzRGlyKG5vZGUubW9k
ZSkpIHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9E
RVYpOwotICAgICAgICB9Ci0gICAgICAgIGlmICghc3RyZWFtLnN0cmVhbV9vcHMuYWxsb2NhdGUp
IHsKLSAgICAgICAgICB0aHJvdyBuZXcgRlMuRXJybm9FcnJvcihFUlJOT19DT0RFUy5FT1BOT1RT
VVBQKTsKLSAgICAgICAgfQotICAgICAgICBzdHJlYW0uc3RyZWFtX29wcy5hbGxvY2F0ZShzdHJl
YW0sIG9mZnNldCwgbGVuZ3RoKTsKLSAgICAgIH0sbW1hcDpmdW5jdGlvbiAoc3RyZWFtLCBidWZm
ZXIsIG9mZnNldCwgbGVuZ3RoLCBwb3NpdGlvbiwgcHJvdCwgZmxhZ3MpIHsKLSAgICAgICAgLy8g
VE9ETyBpZiBQUk9UIGlzIFBST1RfV1JJVEUsIG1ha2Ugc3VyZSB3ZSBoYXZlIHdyaXRlIGFjY2Vz
cwotICAgICAgICBpZiAoKHN0cmVhbS5mbGFncyAmIDMpID09PSAxKSB7Ci0gICAgICAgICAgdGhy
b3cgbmV3IEZTLkVycm5vRXJyb3IoRVJSTk9fQ09ERVMuRUFDQ0VTKTsKLSAgICAgICAgfQotICAg
ICAgICBpZiAoIXN0cmVhbS5zdHJlYW1fb3BzLm1tYXApIHsKLSAgICAgICAgICB0aHJvdyBuZXcg
RlMuZXJybm9FcnJvcihFUlJOT19DT0RFUy5FTk9ERVYpOwotICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiBzdHJlYW0uc3RyZWFtX29wcy5tbWFwKHN0cmVhbSwgYnVmZmVyLCBvZmZzZXQsIGxlbmd0
aCwgcG9zaXRpb24sIHByb3QsIGZsYWdzKTsKLSAgICAgIH19OwotICBmdW5jdGlvbiBfc2VuZChm
ZCwgYnVmLCBsZW4sIGZsYWdzKSB7Ci0gICAgICB2YXIgaW5mbyA9IEZTLmdldFN0cmVhbShmZCk7
Ci0gICAgICBpZiAoIWluZm8pIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUJB
REYpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgICBpZiAoaW5mby5zb2NrZXQu
cmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0LkNMT1NJTkcgfHwgaW5mby5zb2NrZXQucmVhZHlTdGF0
ZSA9PT0gV2ViU29ja2V0LkNMT1NFRCkgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RF
Uy5FTk9UQ09OTik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0gZWxzZSBpZiAoaW5mby5z
b2NrZXQucmVhZHlTdGF0ZSA9PT0gV2ViU29ja2V0LkNPTk5FQ1RJTkcpIHsKLSAgICAgICAgX19f
c2V0RXJyTm8oRVJSTk9fQ09ERVMuRUFHQUlOKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAg
fQotICAgICAgaW5mby5zZW5kZXIoSEVBUFU4LnN1YmFycmF5KGJ1ZiwgYnVmK2xlbikpOwotICAg
ICAgcmV0dXJuIGxlbjsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9wd3JpdGUoZmlsZGVzLCBidWYsIG5i
eXRlLCBvZmZzZXQpIHsKLSAgICAgIC8vIHNzaXplX3QgcHdyaXRlKGludCBmaWxkZXMsIGNvbnN0
IHZvaWQgKmJ1Ziwgc2l6ZV90IG5ieXRlLCBvZmZfdCBvZmZzZXQpOwotICAgICAgLy8gaHR0cDov
L3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvd3JpdGUu
aHRtbAotICAgICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmaWxkZXMpOwotICAgICAgaWYg
KCFzdHJlYW0pIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUJBREYpOwotICAg
ICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgICB0cnkgewotICAgICAgICB2YXIgc2xhYiA9
IEhFQVA4OwotICAgICAgICByZXR1cm4gRlMud3JpdGUoc3RyZWFtLCBzbGFiLCBidWYsIG5ieXRl
LCBvZmZzZXQpOwotICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBGUy5oYW5kbGVGU0Vycm9y
KGUpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgfWZ1bmN0aW9uIF93cml0ZShm
aWxkZXMsIGJ1ZiwgbmJ5dGUpIHsKLSAgICAgIC8vIHNzaXplX3Qgd3JpdGUoaW50IGZpbGRlcywg
Y29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbmJ5dGUpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Bl
bmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvd3JpdGUuaHRtbAotICAg
ICAgdmFyIHN0cmVhbSA9IEZTLmdldFN0cmVhbShmaWxkZXMpOwotICAgICAgaWYgKCFzdHJlYW0p
IHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRUJBREYpOwotICAgICAgICByZXR1
cm4gLTE7Ci0gICAgICB9Ci0gICAgICBpZiAoc3RyZWFtICYmICgnc29ja2V0JyBpbiBzdHJlYW0p
KSB7Ci0gICAgICAgIHJldHVybiBfc2VuZChmaWxkZXMsIGJ1ZiwgbmJ5dGUsIDApOwotICAgICAg
fQotICAgICAgdHJ5IHsKLSAgICAgICAgdmFyIHNsYWIgPSBIRUFQODsKLSAgICAgICAgcmV0dXJu
IEZTLndyaXRlKHN0cmVhbSwgc2xhYiwgYnVmLCBuYnl0ZSk7Ci0gICAgICB9IGNhdGNoIChlKSB7
Ci0gICAgICAgIEZTLmhhbmRsZUZTRXJyb3IoZSk7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAg
IH0KLSAgICB9ZnVuY3Rpb24gX2Z3cml0ZShwdHIsIHNpemUsIG5pdGVtcywgc3RyZWFtKSB7Ci0g
ICAgICAvLyBzaXplX3QgZndyaXRlKGNvbnN0IHZvaWQgKnJlc3RyaWN0IHB0ciwgc2l6ZV90IHNp
emUsIHNpemVfdCBuaXRlbXMsIEZJTEUgKnJlc3RyaWN0IHN0cmVhbSk7Ci0gICAgICAvLyBodHRw
Oi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9md3Jp
dGUuaHRtbAotICAgICAgdmFyIGJ5dGVzVG9Xcml0ZSA9IG5pdGVtcyAqIHNpemU7Ci0gICAgICBp
ZiAoYnl0ZXNUb1dyaXRlID09IDApIHJldHVybiAwOwotICAgICAgdmFyIGJ5dGVzV3JpdHRlbiA9
IF93cml0ZShzdHJlYW0sIHB0ciwgYnl0ZXNUb1dyaXRlKTsKLSAgICAgIGlmIChieXRlc1dyaXR0
ZW4gPT0gLTEpIHsKLSAgICAgICAgdmFyIHN0cmVhbU9iaiA9IEZTLmdldFN0cmVhbShzdHJlYW0p
OwotICAgICAgICBpZiAoc3RyZWFtT2JqKSBzdHJlYW1PYmouZXJyb3IgPSB0cnVlOwotICAgICAg
ICByZXR1cm4gMDsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBNYXRoLmZsb29yKGJ5
dGVzV3JpdHRlbiAvIHNpemUpOwotICAgICAgfQotICAgIH0KLSAgZnVuY3Rpb24gX3VuZ2V0Yyhj
LCBzdHJlYW0pIHsKLSAgICAgIC8vIGludCB1bmdldGMoaW50IGMsIEZJTEUgKnN0cmVhbSk7Ci0g
ICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1
bmN0aW9ucy91bmdldGMuaHRtbAotICAgICAgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKHN0cmVhbSk7
Ci0gICAgICBpZiAoIXN0cmVhbSkgewotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAg
ICBpZiAoYyA9PT0gLTEpIHsKLSAgICAgICAgLy8gZG8gbm90aGluZyBmb3IgRU9GIGNoYXJhY3Rl
cgotICAgICAgICByZXR1cm4gYzsKLSAgICAgIH0KLSAgICAgIGMgPSB1blNpZ24oYyAmIDB4RkYp
OwotICAgICAgc3RyZWFtLnVuZ290dGVuLnB1c2goYyk7Ci0gICAgICBzdHJlYW0uZW9mID0gZmFs
c2U7Ci0gICAgICByZXR1cm4gYzsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9yZWN2KGZkLCBidWYsIGxl
biwgZmxhZ3MpIHsKLSAgICAgIHZhciBpbmZvID0gRlMuZ2V0U3RyZWFtKGZkKTsKLSAgICAgIGlm
ICghaW5mbykgewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FQkFERik7Ci0gICAg
ICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICAgIGlmICghaW5mby5oYXNEYXRhKCkpIHsKLSAg
ICAgICAgaWYgKGluZm8uc29ja2V0LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5DTE9TSU5HIHx8
IGluZm8uc29ja2V0LnJlYWR5U3RhdGUgPT09IFdlYlNvY2tldC5DTE9TRUQpIHsKLSAgICAgICAg
ICAvLyBzb2NrZXQgaGFzIGNsb3NlZAotICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgIC8vIGVsc2UsIG91ciBzb2NrZXQgaXMgaW4gYSB2YWxpZCBzdGF0ZSBi
dXQgdHJ1bHkgaGFzIG5vdGhpbmcgYXZhaWxhYmxlCi0gICAgICAgICAgX19fc2V0RXJyTm8oRVJS
Tk9fQ09ERVMuRUFHQUlOKTsKLSAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIH0KLSAgICAg
IH0KLSAgICAgIHZhciBidWZmZXIgPSBpbmZvLmluUXVldWUuc2hpZnQoKTsKLSAgICAgIGlmIChs
ZW4gPCBidWZmZXIubGVuZ3RoKSB7Ci0gICAgICAgIGlmIChpbmZvLnN0cmVhbSkgewotICAgICAg
ICAgIC8vIFRoaXMgaXMgdGNwIChyZWxpYWJsZSksIHNvIGlmIG5vdCBhbGwgd2FzIHJlYWQsIGtl
ZXAgaXQKLSAgICAgICAgICBpbmZvLmluUXVldWUudW5zaGlmdChidWZmZXIuc3ViYXJyYXkobGVu
KSk7Ci0gICAgICAgIH0KLSAgICAgICAgYnVmZmVyID0gYnVmZmVyLnN1YmFycmF5KDAsIGxlbik7
Ci0gICAgICB9Ci0gICAgICBIRUFQVTguc2V0KGJ1ZmZlciwgYnVmKTsKLSAgICAgIHJldHVybiBi
dWZmZXIubGVuZ3RoOwotICAgIH0KLSAgZnVuY3Rpb24gX3ByZWFkKGZpbGRlcywgYnVmLCBuYnl0
ZSwgb2Zmc2V0KSB7Ci0gICAgICAvLyBzc2l6ZV90IHByZWFkKGludCBmaWxkZXMsIHZvaWQgKmJ1
Ziwgc2l6ZV90IG5ieXRlLCBvZmZfdCBvZmZzZXQpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Bl
bmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvcmVhZC5odG1sCi0gICAg
ICB2YXIgc3RyZWFtID0gRlMuZ2V0U3RyZWFtKGZpbGRlcyk7Ci0gICAgICBpZiAoIXN0cmVhbSkg
ewotICAgICAgICBfX19zZXRFcnJObyhFUlJOT19DT0RFUy5FQkFERik7Ci0gICAgICAgIHJldHVy
biAtMTsKLSAgICAgIH0KLSAgICAgIHRyeSB7Ci0gICAgICAgIHZhciBzbGFiID0gSEVBUDg7Ci0g
ICAgICAgIHJldHVybiBGUy5yZWFkKHN0cmVhbSwgc2xhYiwgYnVmLCBuYnl0ZSwgb2Zmc2V0KTsK
LSAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgRlMuaGFuZGxlRlNFcnJvcihlKTsKLSAgICAg
ICAgcmV0dXJuIC0xOwotICAgICAgfQotICAgIH1mdW5jdGlvbiBfcmVhZChmaWxkZXMsIGJ1Ziwg
bmJ5dGUpIHsKLSAgICAgIC8vIHNzaXplX3QgcmVhZChpbnQgZmlsZGVzLCB2b2lkICpidWYsIHNp
emVfdCBuYnl0ZSk7Ci0gICAgICAvLyBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1
YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy9yZWFkLmh0bWwKLSAgICAgIHZhciBzdHJlYW0gPSBGUy5n
ZXRTdHJlYW0oZmlsZGVzKTsKLSAgICAgIGlmICghc3RyZWFtKSB7Ci0gICAgICAgIF9fX3NldEVy
ck5vKEVSUk5PX0NPREVTLkVCQURGKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICAgfQotICAg
ICAgaWYgKHN0cmVhbSAmJiAoJ3NvY2tldCcgaW4gc3RyZWFtKSkgewotICAgICAgICByZXR1cm4g
X3JlY3YoZmlsZGVzLCBidWYsIG5ieXRlLCAwKTsKLSAgICAgIH0KLSAgICAgIHRyeSB7Ci0gICAg
ICAgIHZhciBzbGFiID0gSEVBUDg7Ci0gICAgICAgIHJldHVybiBGUy5yZWFkKHN0cmVhbSwgc2xh
YiwgYnVmLCBuYnl0ZSk7Ci0gICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIEZTLmhhbmRsZUZT
RXJyb3IoZSk7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICAgIH0KLSAgICB9ZnVuY3Rpb24gX2Zy
ZWFkKHB0ciwgc2l6ZSwgbml0ZW1zLCBzdHJlYW0pIHsKLSAgICAgIC8vIHNpemVfdCBmcmVhZCh2
b2lkICpyZXN0cmljdCBwdHIsIHNpemVfdCBzaXplLCBzaXplX3Qgbml0ZW1zLCBGSUxFICpyZXN0
cmljdCBzdHJlYW0pOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVw
dWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvZnJlYWQuaHRtbAotICAgICAgdmFyIGJ5dGVzVG9SZWFk
ID0gbml0ZW1zICogc2l6ZTsKLSAgICAgIGlmIChieXRlc1RvUmVhZCA9PSAwKSB7Ci0gICAgICAg
IHJldHVybiAwOwotICAgICAgfQotICAgICAgdmFyIGJ5dGVzUmVhZCA9IDA7Ci0gICAgICB2YXIg
c3RyZWFtT2JqID0gRlMuZ2V0U3RyZWFtKHN0cmVhbSk7Ci0gICAgICB3aGlsZSAoc3RyZWFtT2Jq
LnVuZ290dGVuLmxlbmd0aCAmJiBieXRlc1RvUmVhZCA+IDApIHsKLSAgICAgICAgSEVBUDhbKChw
dHIrKyl8MCldPXN0cmVhbU9iai51bmdvdHRlbi5wb3AoKQotICAgICAgICBieXRlc1RvUmVhZC0t
OwotICAgICAgICBieXRlc1JlYWQrKzsKLSAgICAgIH0KLSAgICAgIHZhciBlcnIgPSBfcmVhZChz
dHJlYW0sIHB0ciwgYnl0ZXNUb1JlYWQpOwotICAgICAgaWYgKGVyciA9PSAtMSkgewotICAgICAg
ICBpZiAoc3RyZWFtT2JqKSBzdHJlYW1PYmouZXJyb3IgPSB0cnVlOwotICAgICAgICByZXR1cm4g
MDsKLSAgICAgIH0KLSAgICAgIGJ5dGVzUmVhZCArPSBlcnI7Ci0gICAgICBpZiAoYnl0ZXNSZWFk
IDwgYnl0ZXNUb1JlYWQpIHN0cmVhbU9iai5lb2YgPSB0cnVlOwotICAgICAgcmV0dXJuIE1hdGgu
Zmxvb3IoYnl0ZXNSZWFkIC8gc2l6ZSk7Ci0gICAgfWZ1bmN0aW9uIF9mZ2V0YyhzdHJlYW0pIHsK
LSAgICAgIC8vIGludCBmZ2V0YyhGSUxFICpzdHJlYW0pOwotICAgICAgLy8gaHR0cDovL3B1YnMu
b3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvZmdldGMuaHRtbAot
ICAgICAgdmFyIHN0cmVhbU9iaiA9IEZTLmdldFN0cmVhbShzdHJlYW0pOwotICAgICAgaWYgKCFz
dHJlYW1PYmopIHJldHVybiAtMTsKLSAgICAgIGlmIChzdHJlYW1PYmouZW9mIHx8IHN0cmVhbU9i
ai5lcnJvcikgcmV0dXJuIC0xOwotICAgICAgdmFyIHJldCA9IF9mcmVhZChfZmdldGMucmV0LCAx
LCAxLCBzdHJlYW0pOwotICAgICAgaWYgKHJldCA9PSAwKSB7Ci0gICAgICAgIHN0cmVhbU9iai5l
b2YgPSB0cnVlOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9IGVsc2UgaWYgKHJldCA9PSAt
MSkgewotICAgICAgICBzdHJlYW1PYmouZXJyb3IgPSB0cnVlOwotICAgICAgICByZXR1cm4gLTE7
Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gSEVBUFU4WygoX2ZnZXRjLnJldCl8MCld
OwotICAgICAgfQotICAgIH12YXIgX2dldGM9X2ZnZXRjOwotICBmdW5jdGlvbiBfX19jeGFfcHVy
ZV92aXJ0dWFsKCkgewotICAgICAgQUJPUlQgPSB0cnVlOwotICAgICAgdGhyb3cgJ1B1cmUgdmly
dHVhbCBmdW5jdGlvbiBjYWxsZWQhJzsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2Vycm5vX2xvY2F0
aW9uKCkgewotICAgICAgcmV0dXJuIF9fX2Vycm5vX3N0YXRlOwotICAgIH12YXIgX19fZXJybm89
X19fZXJybm9fbG9jYXRpb247Ci0gIHZhciBfbGx2bV9tZW1zZXRfcDBpOF9pMzI9X21lbXNldDsK
LSAgTW9kdWxlWyJfc3RybGVuIl0gPSBfc3RybGVuOwotICBmdW5jdGlvbiBfc3RyZXJyb3Jfcihl
cnJudW0sIHN0cmVycmJ1ZiwgYnVmbGVuKSB7Ci0gICAgICBpZiAoZXJybnVtIGluIEVSUk5PX01F
U1NBR0VTKSB7Ci0gICAgICAgIGlmIChFUlJOT19NRVNTQUdFU1tlcnJudW1dLmxlbmd0aCA+IGJ1
ZmxlbiAtIDEpIHsKLSAgICAgICAgICByZXR1cm4gX19fc2V0RXJyTm8oRVJSTk9fQ09ERVMuRVJB
TkdFKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB2YXIgbXNnID0gRVJSTk9fTUVTU0FH
RVNbZXJybnVtXTsKLSAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1zZy5sZW5ndGg7IGkr
KykgewotICAgICAgICAgICAgSEVBUDhbKCgoc3RyZXJyYnVmKSsoaSkpfDApXT1tc2cuY2hhckNv
ZGVBdChpKQotICAgICAgICAgIH0KLSAgICAgICAgICBIRUFQOFsoKChzdHJlcnJidWYpKyhpKSl8
MCldPTAKLSAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgcmV0dXJuIF9fX3NldEVyck5vKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICB9Ci0g
ICAgfWZ1bmN0aW9uIF9zdHJlcnJvcihlcnJudW0pIHsKLSAgICAgIGlmICghX3N0cmVycm9yLmJ1
ZmZlcikgX3N0cmVycm9yLmJ1ZmZlciA9IF9tYWxsb2MoMjU2KTsKLSAgICAgIF9zdHJlcnJvcl9y
KGVycm51bSwgX3N0cmVycm9yLmJ1ZmZlciwgMjU2KTsKLSAgICAgIHJldHVybiBfc3RyZXJyb3Iu
YnVmZmVyOwotICAgIH0KLSAgZnVuY3Rpb24gX2Fib3J0KCkgewotICAgICAgTW9kdWxlWydhYm9y
dCddKCk7Ci0gICAgfQotICBmdW5jdGlvbiBfX3JlYWxseU5lZ2F0aXZlKHgpIHsKLSAgICAgIHJl
dHVybiB4IDwgMCB8fCAoeCA9PT0gMCAmJiAoMS94KSA9PT0gLUluZmluaXR5KTsKLSAgICB9ZnVu
Y3Rpb24gX19mb3JtYXRTdHJpbmcoZm9ybWF0LCB2YXJhcmdzKSB7Ci0gICAgICB2YXIgdGV4dElu
ZGV4ID0gZm9ybWF0OwotICAgICAgdmFyIGFyZ0luZGV4ID0gMDsKLSAgICAgIGZ1bmN0aW9uIGdl
dE5leHRBcmcodHlwZSkgewotICAgICAgICAvLyBOT1RFOiBFeHBsaWNpdGx5IGlnbm9yaW5nIHR5
cGUgc2FmZXR5LiBPdGhlcndpc2UgdGhpcyBmYWlsczoKLSAgICAgICAgLy8gICAgICAgaW50IHgg
PSA0OyBwcmludGYoIiVjXG4iLCAoY2hhcil4KTsKLSAgICAgICAgdmFyIHJldDsKLSAgICAgICAg
aWYgKHR5cGUgPT09ICdkb3VibGUnKSB7Ci0gICAgICAgICAgcmV0ID0gSEVBUEY2NFsoKCh2YXJh
cmdzKSsoYXJnSW5kZXgpKT4+MyldOwotICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2k2NCcp
IHsKLSAgICAgICAgICByZXQgPSBbSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4yKV0s
Ci0gICAgICAgICAgICAgICAgIEhFQVAzMlsoKCh2YXJhcmdzKSsoYXJnSW5kZXgrOCkpPj4yKV1d
OwotICAgICAgICAgIGFyZ0luZGV4ICs9IDg7IC8vIGVhY2ggMzItYml0IGNodW5rIGlzIGluIGEg
NjQtYml0IGJsb2NrCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgdHlwZSA9ICdpMzInOyAv
LyB2YXJhcmdzIGFyZSBhbHdheXMgaTMyLCBpNjQsIG9yIGRvdWJsZQotICAgICAgICAgIHJldCA9
IEhFQVAzMlsoKCh2YXJhcmdzKSsoYXJnSW5kZXgpKT4+MildOwotICAgICAgICB9Ci0gICAgICAg
IGFyZ0luZGV4ICs9IE1hdGgubWF4KFJ1bnRpbWUuZ2V0TmF0aXZlRmllbGRTaXplKHR5cGUpLCBS
dW50aW1lLmdldEFsaWduU2l6ZSh0eXBlLCBudWxsLCB0cnVlKSk7Ci0gICAgICAgIHJldHVybiBy
ZXQ7Ci0gICAgICB9Ci0gICAgICB2YXIgcmV0ID0gW107Ci0gICAgICB2YXIgY3VyciwgbmV4dCwg
Y3VyckFyZzsKLSAgICAgIHdoaWxlKDEpIHsKLSAgICAgICAgdmFyIHN0YXJ0VGV4dEluZGV4ID0g
dGV4dEluZGV4OwotICAgICAgICBjdXJyID0gSEVBUDhbKHRleHRJbmRleCldOwotICAgICAgICBp
ZiAoY3VyciA9PT0gMCkgYnJlYWs7Ci0gICAgICAgIG5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsx
KXwwKV07Ci0gICAgICAgIGlmIChjdXJyID09IDM3KSB7Ci0gICAgICAgICAgLy8gSGFuZGxlIGZs
YWdzLgotICAgICAgICAgIHZhciBmbGFnQWx3YXlzU2lnbmVkID0gZmFsc2U7Ci0gICAgICAgICAg
dmFyIGZsYWdMZWZ0QWxpZ24gPSBmYWxzZTsKLSAgICAgICAgICB2YXIgZmxhZ0FsdGVybmF0aXZl
ID0gZmFsc2U7Ci0gICAgICAgICAgdmFyIGZsYWdaZXJvUGFkID0gZmFsc2U7Ci0gICAgICAgICAg
ZmxhZ3NMb29wOiB3aGlsZSAoMSkgewotICAgICAgICAgICAgc3dpdGNoIChuZXh0KSB7Ci0gICAg
ICAgICAgICAgIGNhc2UgNDM6Ci0gICAgICAgICAgICAgICAgZmxhZ0Fsd2F5c1NpZ25lZCA9IHRy
dWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgIGNhc2UgNDU6Ci0gICAg
ICAgICAgICAgICAgZmxhZ0xlZnRBbGlnbiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAgIGNhc2UgMzU6Ci0gICAgICAgICAgICAgICAgZmxhZ0FsdGVybmF0aXZl
ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgY2FzZSA0ODoK
LSAgICAgICAgICAgICAgICBpZiAoZmxhZ1plcm9QYWQpIHsKLSAgICAgICAgICAgICAgICAgIGJy
ZWFrIGZsYWdzTG9vcDsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICAgZmxhZ1plcm9QYWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIGJyZWFr
IGZsYWdzTG9vcDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAg
ICAgICAgICAgbmV4dCA9IEhFQVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAgICAgICAgICB9Ci0g
ICAgICAgICAgLy8gSGFuZGxlIHdpZHRoLgotICAgICAgICAgIHZhciB3aWR0aCA9IDA7Ci0gICAg
ICAgICAgaWYgKG5leHQgPT0gNDIpIHsKLSAgICAgICAgICAgIHdpZHRoID0gZ2V0TmV4dEFyZygn
aTMyJyk7Ci0gICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgIG5leHQgPSBIRUFQ
OFsoKHRleHRJbmRleCsxKXwwKV07Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHdo
aWxlIChuZXh0ID49IDQ4ICYmIG5leHQgPD0gNTcpIHsKLSAgICAgICAgICAgICAgd2lkdGggPSB3
aWR0aCAqIDEwICsgKG5leHQgLSA0OCk7Ci0gICAgICAgICAgICAgIHRleHRJbmRleCsrOwotICAg
ICAgICAgICAgICBuZXh0ID0gSEVBUDhbKCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICAgICAg
fQotICAgICAgICAgIH0KLSAgICAgICAgICAvLyBIYW5kbGUgcHJlY2lzaW9uLgotICAgICAgICAg
IHZhciBwcmVjaXNpb25TZXQgPSBmYWxzZTsKLSAgICAgICAgICBpZiAobmV4dCA9PSA0Nikgewot
ICAgICAgICAgICAgdmFyIHByZWNpc2lvbiA9IDA7Ci0gICAgICAgICAgICBwcmVjaXNpb25TZXQg
PSB0cnVlOwotICAgICAgICAgICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICBuZXh0ID0gSEVB
UDhbKCh0ZXh0SW5kZXgrMSl8MCldOwotICAgICAgICAgICAgaWYgKG5leHQgPT0gNDIpIHsKLSAg
ICAgICAgICAgICAgcHJlY2lzaW9uID0gZ2V0TmV4dEFyZygnaTMyJyk7Ci0gICAgICAgICAgICAg
IHRleHRJbmRleCsrOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgd2hpbGUo
MSkgewotICAgICAgICAgICAgICAgIHZhciBwcmVjaXNpb25DaHIgPSBIRUFQOFsoKHRleHRJbmRl
eCsxKXwwKV07Ci0gICAgICAgICAgICAgICAgaWYgKHByZWNpc2lvbkNociA8IDQ4IHx8Ci0gICAg
ICAgICAgICAgICAgICAgIHByZWNpc2lvbkNociA+IDU3KSBicmVhazsKLSAgICAgICAgICAgICAg
ICBwcmVjaXNpb24gPSBwcmVjaXNpb24gKiAxMCArIChwcmVjaXNpb25DaHIgLSA0OCk7Ci0gICAg
ICAgICAgICAgICAgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIG5leHQgPSBIRUFQOFsoKHRleHRJbmRleCsxKXwwKV07Ci0gICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIHZhciBwcmVjaXNpb24gPSA2OyAvLyBTdGFuZGFyZCBkZWZh
dWx0LgotICAgICAgICAgIH0KLSAgICAgICAgICAvLyBIYW5kbGUgaW50ZWdlciBzaXplcy4gV0FS
TklORzogVGhlc2UgYXNzdW1lIGEgMzItYml0IGFyY2hpdGVjdHVyZSEKLSAgICAgICAgICB2YXIg
YXJnU2l6ZTsKLSAgICAgICAgICBzd2l0Y2ggKFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpIHsK
LSAgICAgICAgICAgIGNhc2UgJ2gnOgotICAgICAgICAgICAgICB2YXIgbmV4dE5leHQgPSBIRUFQ
OFsoKHRleHRJbmRleCsyKXwwKV07Ci0gICAgICAgICAgICAgIGlmIChuZXh0TmV4dCA9PSAxMDQp
IHsKLSAgICAgICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgICAgICBhcmdTaXpl
ID0gMTsgLy8gY2hhciAoYWN0dWFsbHkgaTMyIGluIHZhcmFyZ3MpCi0gICAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgYXJnU2l6ZSA9IDI7IC8vIHNob3J0IChhY3R1YWxseSBp
MzIgaW4gdmFyYXJncykKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGNhc2UgJ2wnOgotICAgICAgICAgICAgICB2YXIgbmV4dE5leHQgPSBIRUFQOFso
KHRleHRJbmRleCsyKXwwKV07Ci0gICAgICAgICAgICAgIGlmIChuZXh0TmV4dCA9PSAxMDgpIHsK
LSAgICAgICAgICAgICAgICB0ZXh0SW5kZXgrKzsKLSAgICAgICAgICAgICAgICBhcmdTaXplID0g
ODsgLy8gbG9uZyBsb25nCi0gICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
YXJnU2l6ZSA9IDQ7IC8vIGxvbmcKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIGNhc2UgJ0wnOiAvLyBsb25nIGxvbmcKLSAgICAgICAgICAgIGNhc2Ug
J3EnOiAvLyBpbnQ2NF90Ci0gICAgICAgICAgICBjYXNlICdqJzogLy8gaW50bWF4X3QKLSAgICAg
ICAgICAgICAgYXJnU2l6ZSA9IDg7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
Y2FzZSAneic6IC8vIHNpemVfdAotICAgICAgICAgICAgY2FzZSAndCc6IC8vIHB0cmRpZmZfdAot
ICAgICAgICAgICAgY2FzZSAnSSc6IC8vIHNpZ25lZCBwdHJkaWZmX3Qgb3IgdW5zaWduZWQgc2l6
ZV90Ci0gICAgICAgICAgICAgIGFyZ1NpemUgPSA0OwotICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgIGFyZ1NpemUgPSBudWxsOwotICAgICAg
ICAgIH0KLSAgICAgICAgICBpZiAoYXJnU2l6ZSkgdGV4dEluZGV4Kys7Ci0gICAgICAgICAgbmV4
dCA9IEhFQVA4WygodGV4dEluZGV4KzEpfDApXTsKLSAgICAgICAgICAvLyBIYW5kbGUgdHlwZSBz
cGVjaWZpZXIuCi0gICAgICAgICAgc3dpdGNoIChTdHJpbmcuZnJvbUNoYXJDb2RlKG5leHQpKSB7
Ci0gICAgICAgICAgICBjYXNlICdkJzogY2FzZSAnaSc6IGNhc2UgJ3UnOiBjYXNlICdvJzogY2Fz
ZSAneCc6IGNhc2UgJ1gnOiBjYXNlICdwJzogewotICAgICAgICAgICAgICAvLyBJbnRlZ2VyLgot
ICAgICAgICAgICAgICB2YXIgc2lnbmVkID0gbmV4dCA9PSAxMDAgfHwgbmV4dCA9PSAxMDU7Ci0g
ICAgICAgICAgICAgIGFyZ1NpemUgPSBhcmdTaXplIHx8IDQ7Ci0gICAgICAgICAgICAgIHZhciBj
dXJyQXJnID0gZ2V0TmV4dEFyZygnaScgKyAoYXJnU2l6ZSAqIDgpKTsKLSAgICAgICAgICAgICAg
dmFyIG9yaWdBcmcgPSBjdXJyQXJnOwotICAgICAgICAgICAgICB2YXIgYXJnVGV4dDsKLSAgICAg
ICAgICAgICAgLy8gRmxhdHRlbiBpNjQtMSBbbG93LCBoaWdoXSBpbnRvIGEgKHNsaWdodGx5IHJv
dW5kZWQpIGRvdWJsZQotICAgICAgICAgICAgICBpZiAoYXJnU2l6ZSA9PSA4KSB7Ci0gICAgICAg
ICAgICAgICAgY3VyckFyZyA9IFJ1bnRpbWUubWFrZUJpZ0ludChjdXJyQXJnWzBdLCBjdXJyQXJn
WzFdLCBuZXh0ID09IDExNyk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gVHJ1
bmNhdGUgdG8gcmVxdWVzdGVkIHNpemUuCi0gICAgICAgICAgICAgIGlmIChhcmdTaXplIDw9IDQp
IHsKLSAgICAgICAgICAgICAgICB2YXIgbGltaXQgPSBNYXRoLnBvdygyNTYsIGFyZ1NpemUpIC0g
MTsKLSAgICAgICAgICAgICAgICBjdXJyQXJnID0gKHNpZ25lZCA/IHJlU2lnbiA6IHVuU2lnbiko
Y3VyckFyZyAmIGxpbWl0LCBhcmdTaXplICogOCk7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgLy8gRm9ybWF0IHRoZSBudW1iZXIuCi0gICAgICAgICAgICAgIHZhciBjdXJyQWJzQXJn
ID0gTWF0aC5hYnMoY3VyckFyZyk7Ci0gICAgICAgICAgICAgIHZhciBwcmVmaXggPSAnJzsKLSAg
ICAgICAgICAgICAgaWYgKG5leHQgPT0gMTAwIHx8IG5leHQgPT0gMTA1KSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKGFyZ1NpemUgPT0gOCAmJiBpNjRNYXRoKSBhcmdUZXh0ID0gaTY0TWF0aC5zdHJp
bmdpZnkob3JpZ0FyZ1swXSwgb3JpZ0FyZ1sxXSwgbnVsbCk7IGVsc2UKLSAgICAgICAgICAgICAg
ICBhcmdUZXh0ID0gcmVTaWduKGN1cnJBcmcsIDggKiBhcmdTaXplLCAxKS50b1N0cmluZygxMCk7
Ci0gICAgICAgICAgICAgIH0gZWxzZSBpZiAobmV4dCA9PSAxMTcpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoYXJnU2l6ZSA9PSA4ICYmIGk2NE1hdGgpIGFyZ1RleHQgPSBpNjRNYXRoLnN0cmluZ2lm
eShvcmlnQXJnWzBdLCBvcmlnQXJnWzFdLCB0cnVlKTsgZWxzZQotICAgICAgICAgICAgICAgIGFy
Z1RleHQgPSB1blNpZ24oY3VyckFyZywgOCAqIGFyZ1NpemUsIDEpLnRvU3RyaW5nKDEwKTsKLSAg
ICAgICAgICAgICAgICBjdXJyQXJnID0gTWF0aC5hYnMoY3VyckFyZyk7Ci0gICAgICAgICAgICAg
IH0gZWxzZSBpZiAobmV4dCA9PSAxMTEpIHsKLSAgICAgICAgICAgICAgICBhcmdUZXh0ID0gKGZs
YWdBbHRlcm5hdGl2ZSA/ICcwJyA6ICcnKSArIGN1cnJBYnNBcmcudG9TdHJpbmcoOCk7Ci0gICAg
ICAgICAgICAgIH0gZWxzZSBpZiAobmV4dCA9PSAxMjAgfHwgbmV4dCA9PSA4OCkgewotICAgICAg
ICAgICAgICAgIHByZWZpeCA9IChmbGFnQWx0ZXJuYXRpdmUgJiYgY3VyckFyZyAhPSAwKSA/ICcw
eCcgOiAnJzsKLSAgICAgICAgICAgICAgICBpZiAoYXJnU2l6ZSA9PSA4ICYmIGk2NE1hdGgpIHsK
LSAgICAgICAgICAgICAgICAgIGlmIChvcmlnQXJnWzFdKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGFyZ1RleHQgPSAob3JpZ0FyZ1sxXT4+PjApLnRvU3RyaW5nKDE2KTsKLSAgICAgICAgICAgICAg
ICAgICAgdmFyIGxvd2VyID0gKG9yaWdBcmdbMF0+Pj4wKS50b1N0cmluZygxNik7Ci0gICAgICAg
ICAgICAgICAgICAgIHdoaWxlIChsb3dlci5sZW5ndGggPCA4KSBsb3dlciA9ICcwJyArIGxvd2Vy
OwotICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ICs9IGxvd2VyOwotICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IChvcmlnQXJnWzBdPj4+
MCkudG9TdHJpbmcoMTYpOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0g
ZWxzZQotICAgICAgICAgICAgICAgIGlmIChjdXJyQXJnIDwgMCkgewotICAgICAgICAgICAgICAg
ICAgLy8gUmVwcmVzZW50IG5lZ2F0aXZlIG51bWJlcnMgaW4gaGV4IGFzIDIncyBjb21wbGVtZW50
LgotICAgICAgICAgICAgICAgICAgY3VyckFyZyA9IC1jdXJyQXJnOwotICAgICAgICAgICAgICAg
ICAgYXJnVGV4dCA9IChjdXJyQWJzQXJnIC0gMSkudG9TdHJpbmcoMTYpOwotICAgICAgICAgICAg
ICAgICAgdmFyIGJ1ZmZlciA9IFtdOwotICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBhcmdUZXh0Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5w
dXNoKCgweEYgLSBwYXJzZUludChhcmdUZXh0W2ldLCAxNikpLnRvU3RyaW5nKDE2KSk7Ci0gICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gYnVmZmVyLmpvaW4o
JycpOwotICAgICAgICAgICAgICAgICAgd2hpbGUgKGFyZ1RleHQubGVuZ3RoIDwgYXJnU2l6ZSAq
IDIpIGFyZ1RleHQgPSAnZicgKyBhcmdUZXh0OwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gY3VyckFic0FyZy50b1N0cmluZygxNik7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChuZXh0ID09IDg4KSB7Ci0gICAgICAg
ICAgICAgICAgICBwcmVmaXggPSBwcmVmaXgudG9VcHBlckNhc2UoKTsKLSAgICAgICAgICAgICAg
ICAgIGFyZ1RleHQgPSBhcmdUZXh0LnRvVXBwZXJDYXNlKCk7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5leHQgPT0gMTEyKSB7Ci0gICAgICAgICAgICAgICAg
aWYgKGN1cnJBYnNBcmcgPT09IDApIHsKLSAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnKG5p
bCknOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICBwcmVmaXgg
PSAnMHgnOwotICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IGN1cnJBYnNBcmcudG9TdHJpbmco
MTYpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBp
ZiAocHJlY2lzaW9uU2V0KSB7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKGFyZ1RleHQubGVuZ3Ro
IDwgcHJlY2lzaW9uKSB7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gJzAnICsgYXJnVGV4
dDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8g
QWRkIHNpZ24gaWYgbmVlZGVkCi0gICAgICAgICAgICAgIGlmIChmbGFnQWx3YXlzU2lnbmVkKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKGN1cnJBcmcgPCAwKSB7Ci0gICAgICAgICAgICAgICAgICBw
cmVmaXggPSAnLScgKyBwcmVmaXg7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgIHByZWZpeCA9ICcrJyArIHByZWZpeDsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgLy8gQWRkIHBhZGRpbmcuCi0gICAgICAgICAgICAg
IHdoaWxlIChwcmVmaXgubGVuZ3RoICsgYXJnVGV4dC5sZW5ndGggPCB3aWR0aCkgewotICAgICAg
ICAgICAgICAgIGlmIChmbGFnTGVmdEFsaWduKSB7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0
ICs9ICcgJzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYg
KGZsYWdaZXJvUGFkKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSAnMCcgKyBhcmdU
ZXh0OwotICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcHJl
Zml4ID0gJyAnICsgcHJlZml4OwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAvLyBJbnNlcnQgdGhlIHJlc3VsdCBp
bnRvIHRoZSBidWZmZXIuCi0gICAgICAgICAgICAgIGFyZ1RleHQgPSBwcmVmaXggKyBhcmdUZXh0
OwotICAgICAgICAgICAgICBhcmdUZXh0LnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uKGNocikg
ewotICAgICAgICAgICAgICAgIHJldC5wdXNoKGNoci5jaGFyQ29kZUF0KDApKTsKLSAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgY2FzZSAnZic6IGNhc2UgJ0YnOiBjYXNlICdlJzogY2FzZSAnRSc6IGNhc2UgJ2cnOiBjYXNl
ICdHJzogewotICAgICAgICAgICAgICAvLyBGbG9hdC4KLSAgICAgICAgICAgICAgdmFyIGN1cnJB
cmcgPSBnZXROZXh0QXJnKCdkb3VibGUnKTsKLSAgICAgICAgICAgICAgdmFyIGFyZ1RleHQ7Ci0g
ICAgICAgICAgICAgIGlmIChpc05hTihjdXJyQXJnKSkgewotICAgICAgICAgICAgICAgIGFyZ1Rl
eHQgPSAnbmFuJzsKLSAgICAgICAgICAgICAgICBmbGFnWmVyb1BhZCA9IGZhbHNlOwotICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKCFpc0Zpbml0ZShjdXJyQXJnKSkgewotICAgICAgICAgICAgICAg
IGFyZ1RleHQgPSAoY3VyckFyZyA8IDAgPyAnLScgOiAnJykgKyAnaW5mJzsKLSAgICAgICAgICAg
ICAgICBmbGFnWmVyb1BhZCA9IGZhbHNlOwotICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIHZhciBpc0dlbmVyYWwgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICB2YXIgZWZm
ZWN0aXZlUHJlY2lzaW9uID0gTWF0aC5taW4ocHJlY2lzaW9uLCAyMCk7Ci0gICAgICAgICAgICAg
ICAgLy8gQ29udmVydCBnL0cgdG8gZi9GIG9yIGUvRSwgYXMgcGVyOgotICAgICAgICAgICAgICAg
IC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy85Njk5OTE5Nzk5L2Z1bmN0
aW9ucy9wcmludGYuaHRtbAotICAgICAgICAgICAgICAgIGlmIChuZXh0ID09IDEwMyB8fCBuZXh0
ID09IDcxKSB7Ci0gICAgICAgICAgICAgICAgICBpc0dlbmVyYWwgPSB0cnVlOwotICAgICAgICAg
ICAgICAgICAgcHJlY2lzaW9uID0gcHJlY2lzaW9uIHx8IDE7Ci0gICAgICAgICAgICAgICAgICB2
YXIgZXhwb25lbnQgPSBwYXJzZUludChjdXJyQXJnLnRvRXhwb25lbnRpYWwoZWZmZWN0aXZlUHJl
Y2lzaW9uKS5zcGxpdCgnZScpWzFdLCAxMCk7Ci0gICAgICAgICAgICAgICAgICBpZiAocHJlY2lz
aW9uID4gZXhwb25lbnQgJiYgZXhwb25lbnQgPj0gLTQpIHsKLSAgICAgICAgICAgICAgICAgICAg
bmV4dCA9ICgobmV4dCA9PSAxMDMpID8gJ2YnIDogJ0YnKS5jaGFyQ29kZUF0KDApOwotICAgICAg
ICAgICAgICAgICAgICBwcmVjaXNpb24gLT0gZXhwb25lbnQgKyAxOwotICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgbmV4dCA9ICgobmV4dCA9PSAxMDMpID8g
J2UnIDogJ0UnKS5jaGFyQ29kZUF0KDApOwotICAgICAgICAgICAgICAgICAgICBwcmVjaXNpb24t
LTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGVmZmVjdGl2ZVByZWNp
c2lvbiA9IE1hdGgubWluKHByZWNpc2lvbiwgMjApOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBpZiAobmV4dCA9PSAxMDEgfHwgbmV4dCA9PSA2OSkgewotICAgICAgICAgICAg
ICAgICAgYXJnVGV4dCA9IGN1cnJBcmcudG9FeHBvbmVudGlhbChlZmZlY3RpdmVQcmVjaXNpb24p
OwotICAgICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBleHBvbmVudCBoYXMgYXQgbGVh
c3QgMiBkaWdpdHMuCi0gICAgICAgICAgICAgICAgICBpZiAoL1tlRV1bLStdXGQkLy50ZXN0KGFy
Z1RleHQpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ1RleHQgPSBhcmdUZXh0LnNsaWNlKDAs
IC0xKSArICcwJyArIGFyZ1RleHQuc2xpY2UoLTEpOwotICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIH0gZWxzZSBpZiAobmV4dCA9PSAxMDIgfHwgbmV4dCA9PSA3MCkgewotICAg
ICAgICAgICAgICAgICAgYXJnVGV4dCA9IGN1cnJBcmcudG9GaXhlZChlZmZlY3RpdmVQcmVjaXNp
b24pOwotICAgICAgICAgICAgICAgICAgaWYgKGN1cnJBcmcgPT09IDAgJiYgX19yZWFsbHlOZWdh
dGl2ZShjdXJyQXJnKSkgewotICAgICAgICAgICAgICAgICAgICBhcmdUZXh0ID0gJy0nICsgYXJn
VGV4dDsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgdmFyIHBhcnRzID0gYXJnVGV4dC5zcGxpdCgnZScpOwotICAgICAgICAgICAgICAgIGlm
IChpc0dlbmVyYWwgJiYgIWZsYWdBbHRlcm5hdGl2ZSkgewotICAgICAgICAgICAgICAgICAgLy8g
RGlzY2FyZCB0cmFpbGluZyB6ZXJvcyBhbmQgcGVyaW9kcy4KLSAgICAgICAgICAgICAgICAgIHdo
aWxlIChwYXJ0c1swXS5sZW5ndGggPiAxICYmIHBhcnRzWzBdLmluZGV4T2YoJy4nKSAhPSAtMSAm
JgotICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJ0c1swXS5zbGljZSgtMSkgPT0gJzAnIHx8
IHBhcnRzWzBdLnNsaWNlKC0xKSA9PSAnLicpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhcnRz
WzBdID0gcGFydHNbMF0uc2xpY2UoMCwgLTEpOwotICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgaGF2
ZSBhIHBlcmlvZCBpbiBhbHRlcm5hdGl2ZSBtb2RlLgotICAgICAgICAgICAgICAgICAgaWYgKGZs
YWdBbHRlcm5hdGl2ZSAmJiBhcmdUZXh0LmluZGV4T2YoJy4nKSA9PSAtMSkgcGFydHNbMF0gKz0g
Jy4nOwotICAgICAgICAgICAgICAgICAgLy8gWmVybyBwYWQgdW50aWwgcmVxdWlyZWQgcHJlY2lz
aW9uLgotICAgICAgICAgICAgICAgICAgd2hpbGUgKHByZWNpc2lvbiA+IGVmZmVjdGl2ZVByZWNp
c2lvbisrKSBwYXJ0c1swXSArPSAnMCc7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIGFyZ1RleHQgPSBwYXJ0c1swXSArIChwYXJ0cy5sZW5ndGggPiAxID8gJ2UnICsgcGFydHNb
MV0gOiAnJyk7Ci0gICAgICAgICAgICAgICAgLy8gQ2FwaXRhbGl6ZSAnRScgaWYgbmVlZGVkLgot
ICAgICAgICAgICAgICAgIGlmIChuZXh0ID09IDY5KSBhcmdUZXh0ID0gYXJnVGV4dC50b1VwcGVy
Q2FzZSgpOwotICAgICAgICAgICAgICAgIC8vIEFkZCBzaWduLgotICAgICAgICAgICAgICAgIGlm
IChmbGFnQWx3YXlzU2lnbmVkICYmIGN1cnJBcmcgPj0gMCkgewotICAgICAgICAgICAgICAgICAg
YXJnVGV4dCA9ICcrJyArIGFyZ1RleHQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgIC8vIEFkZCBwYWRkaW5nLgotICAgICAgICAgICAgICB3aGlsZSAo
YXJnVGV4dC5sZW5ndGggPCB3aWR0aCkgewotICAgICAgICAgICAgICAgIGlmIChmbGFnTGVmdEFs
aWduKSB7Ci0gICAgICAgICAgICAgICAgICBhcmdUZXh0ICs9ICcgJzsKLSAgICAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgaWYgKGZsYWdaZXJvUGFkICYmIChhcmdUZXh0
WzBdID09ICctJyB8fCBhcmdUZXh0WzBdID09ICcrJykpIHsKLSAgICAgICAgICAgICAgICAgICAg
YXJnVGV4dCA9IGFyZ1RleHRbMF0gKyAnMCcgKyBhcmdUZXh0LnNsaWNlKDEpOwotICAgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnVGV4dCA9IChmbGFnWmVy
b1BhZCA/ICcwJyA6ICcgJykgKyBhcmdUZXh0OwotICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAvLyBBZGp1c3QgY2Fz
ZS4KLSAgICAgICAgICAgICAgaWYgKG5leHQgPCA5NykgYXJnVGV4dCA9IGFyZ1RleHQudG9VcHBl
ckNhc2UoKTsKLSAgICAgICAgICAgICAgLy8gSW5zZXJ0IHRoZSByZXN1bHQgaW50byB0aGUgYnVm
ZmVyLgotICAgICAgICAgICAgICBhcmdUZXh0LnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uKGNo
cikgewotICAgICAgICAgICAgICAgIHJldC5wdXNoKGNoci5jaGFyQ29kZUF0KDApKTsKLSAgICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgY2FzZSAncyc6IHsKLSAgICAgICAgICAgICAgLy8gU3RyaW5nLgotICAgICAgICAgICAg
ICB2YXIgYXJnID0gZ2V0TmV4dEFyZygnaTgqJyk7Ci0gICAgICAgICAgICAgIHZhciBhcmdMZW5n
dGggPSBhcmcgPyBfc3RybGVuKGFyZykgOiAnKG51bGwpJy5sZW5ndGg7Ci0gICAgICAgICAgICAg
IGlmIChwcmVjaXNpb25TZXQpIGFyZ0xlbmd0aCA9IE1hdGgubWluKGFyZ0xlbmd0aCwgcHJlY2lz
aW9uKTsKLSAgICAgICAgICAgICAgaWYgKCFmbGFnTGVmdEFsaWduKSB7Ci0gICAgICAgICAgICAg
ICAgd2hpbGUgKGFyZ0xlbmd0aCA8IHdpZHRoLS0pIHsKLSAgICAgICAgICAgICAgICAgIHJldC5w
dXNoKDMyKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgaWYgKGFyZykgewotICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJnTGVu
Z3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgIHJldC5wdXNoKEhFQVBVOFsoKGFyZysrKXww
KV0pOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICByZXQgPSByZXQuY29uY2F0KGludEFycmF5RnJvbVN0cmluZygnKG51bGwpJy5zdWJz
dHIoMCwgYXJnTGVuZ3RoKSwgdHJ1ZSkpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
IGlmIChmbGFnTGVmdEFsaWduKSB7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKGFyZ0xlbmd0aCA8
IHdpZHRoLS0pIHsKLSAgICAgICAgICAgICAgICAgIHJldC5wdXNoKDMyKTsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBjYXNlICdjJzogewotICAgICAgICAgICAgICAvLyBDaGFyYWN0ZXIu
Ci0gICAgICAgICAgICAgIGlmIChmbGFnTGVmdEFsaWduKSByZXQucHVzaChnZXROZXh0QXJnKCdp
OCcpKTsKLSAgICAgICAgICAgICAgd2hpbGUgKC0td2lkdGggPiAwKSB7Ci0gICAgICAgICAgICAg
ICAgcmV0LnB1c2goMzIpOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGlmICghZmxh
Z0xlZnRBbGlnbikgcmV0LnB1c2goZ2V0TmV4dEFyZygnaTgnKSk7Ci0gICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAnbic6IHsKLSAgICAgICAgICAg
ICAgLy8gV3JpdGUgdGhlIGxlbmd0aCB3cml0dGVuIHNvIGZhciB0byB0aGUgbmV4dCBwYXJhbWV0
ZXIuCi0gICAgICAgICAgICAgIHZhciBwdHIgPSBnZXROZXh0QXJnKCdpMzIqJyk7Ci0gICAgICAg
ICAgICAgIEhFQVAzMlsoKHB0cik+PjIpXT1yZXQubGVuZ3RoCi0gICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAnJSc6IHsKLSAgICAgICAgICAgICAg
Ly8gTGl0ZXJhbCBwZXJjZW50IHNpZ24uCi0gICAgICAgICAgICAgIHJldC5wdXNoKGN1cnIpOwot
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGRlZmF1bHQ6
IHsKLSAgICAgICAgICAgICAgLy8gVW5rbm93biBzcGVjaWZpZXJzIHJlbWFpbiB1bnRvdWNoZWQu
Ci0gICAgICAgICAgICAgIGZvciAodmFyIGkgPSBzdGFydFRleHRJbmRleDsgaSA8IHRleHRJbmRl
eCArIDI7IGkrKykgewotICAgICAgICAgICAgICAgIHJldC5wdXNoKEhFQVA4WyhpKV0pOwotICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIHRleHRJ
bmRleCArPSAyOwotICAgICAgICAgIC8vIFRPRE86IFN1cHBvcnQgYS9BIChoZXggZmxvYXQpIGFu
ZCBtIChsYXN0IGVycm9yKSBzcGVjaWZpZXJzLgotICAgICAgICAgIC8vIFRPRE86IFN1cHBvcnQg
JTEke3NwZWNpZmllcn0gZm9yIGFyZyBzZWxlY3Rpb24uCi0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgcmV0LnB1c2goY3Vycik7Ci0gICAgICAgICAgdGV4dEluZGV4ICs9IDE7Ci0gICAgICAg
IH0KLSAgICAgIH0KLSAgICAgIHJldHVybiByZXQ7Ci0gICAgfWZ1bmN0aW9uIF9zbnByaW50Zihz
LCBuLCBmb3JtYXQsIHZhcmFyZ3MpIHsKLSAgICAgIC8vIGludCBzbnByaW50ZihjaGFyICpyZXN0
cmljdCBzLCBzaXplX3QgbiwgY29uc3QgY2hhciAqcmVzdHJpY3QgZm9ybWF0LCAuLi4pOwotICAg
ICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5j
dGlvbnMvcHJpbnRmLmh0bWwKLSAgICAgIHZhciByZXN1bHQgPSBfX2Zvcm1hdFN0cmluZyhmb3Jt
YXQsIHZhcmFyZ3MpOwotICAgICAgdmFyIGxpbWl0ID0gKG4gPT09IHVuZGVmaW5lZCkgPyByZXN1
bHQubGVuZ3RoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IE1hdGgubWlu
KHJlc3VsdC5sZW5ndGgsIE1hdGgubWF4KG4gLSAxLCAwKSk7Ci0gICAgICBpZiAocyA8IDApIHsK
LSAgICAgICAgcyA9IC1zOwotICAgICAgICB2YXIgYnVmID0gX21hbGxvYyhsaW1pdCsxKTsKLSAg
ICAgICAgSEVBUDMyWygocyk+PjIpXT1idWY7Ci0gICAgICAgIHMgPSBidWY7Ci0gICAgICB9Ci0g
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbWl0OyBpKyspIHsKLSAgICAgICAgSEVBUDhbKCgo
cykrKGkpKXwwKV09cmVzdWx0W2ldOwotICAgICAgfQotICAgICAgaWYgKGxpbWl0IDwgbiB8fCAo
biA9PT0gdW5kZWZpbmVkKSkgSEVBUDhbKCgocykrKGkpKXwwKV09MDsKLSAgICAgIHJldHVybiBy
ZXN1bHQubGVuZ3RoOwotICAgIH0KLSAgZnVuY3Rpb24gX3N5c2NvbmYobmFtZSkgewotICAgICAg
Ly8gbG9uZyBzeXNjb25mKGludCBuYW1lKTsKLSAgICAgIC8vIGh0dHA6Ly9wdWJzLm9wZW5ncm91
cC5vcmcvb25saW5lcHVicy8wMDk2OTUzOTkvZnVuY3Rpb25zL3N5c2NvbmYuaHRtbAotICAgICAg
c3dpdGNoKG5hbWUpIHsKLSAgICAgICAgY2FzZSA4OiByZXR1cm4gUEFHRV9TSVpFOwotICAgICAg
ICBjYXNlIDU0OgotICAgICAgICBjYXNlIDU2OgotICAgICAgICBjYXNlIDIxOgotICAgICAgICBj
YXNlIDYxOgotICAgICAgICBjYXNlIDYzOgotICAgICAgICBjYXNlIDIyOgotICAgICAgICBjYXNl
IDY3OgotICAgICAgICBjYXNlIDIzOgotICAgICAgICBjYXNlIDI0OgotICAgICAgICBjYXNlIDI1
OgotICAgICAgICBjYXNlIDI2OgotICAgICAgICBjYXNlIDI3OgotICAgICAgICBjYXNlIDY5Ogot
ICAgICAgICBjYXNlIDI4OgotICAgICAgICBjYXNlIDEwMToKLSAgICAgICAgY2FzZSA3MDoKLSAg
ICAgICAgY2FzZSA3MToKLSAgICAgICAgY2FzZSAyOToKLSAgICAgICAgY2FzZSAzMDoKLSAgICAg
ICAgY2FzZSAxOTk6Ci0gICAgICAgIGNhc2UgNzU6Ci0gICAgICAgIGNhc2UgNzY6Ci0gICAgICAg
IGNhc2UgMzI6Ci0gICAgICAgIGNhc2UgNDM6Ci0gICAgICAgIGNhc2UgNDQ6Ci0gICAgICAgIGNh
c2UgODA6Ci0gICAgICAgIGNhc2UgNDY6Ci0gICAgICAgIGNhc2UgNDc6Ci0gICAgICAgIGNhc2Ug
NDU6Ci0gICAgICAgIGNhc2UgNDg6Ci0gICAgICAgIGNhc2UgNDk6Ci0gICAgICAgIGNhc2UgNDI6
Ci0gICAgICAgIGNhc2UgODI6Ci0gICAgICAgIGNhc2UgMzM6Ci0gICAgICAgIGNhc2UgNzoKLSAg
ICAgICAgY2FzZSAxMDg6Ci0gICAgICAgIGNhc2UgMTA5OgotICAgICAgICBjYXNlIDEwNzoKLSAg
ICAgICAgY2FzZSAxMTI6Ci0gICAgICAgIGNhc2UgMTE5OgotICAgICAgICBjYXNlIDEyMToKLSAg
ICAgICAgICByZXR1cm4gMjAwODA5OwotICAgICAgICBjYXNlIDEzOgotICAgICAgICBjYXNlIDEw
NDoKLSAgICAgICAgY2FzZSA5NDoKLSAgICAgICAgY2FzZSA5NToKLSAgICAgICAgY2FzZSAzNDoK
LSAgICAgICAgY2FzZSAzNToKLSAgICAgICAgY2FzZSA3NzoKLSAgICAgICAgY2FzZSA4MToKLSAg
ICAgICAgY2FzZSA4MzoKLSAgICAgICAgY2FzZSA4NDoKLSAgICAgICAgY2FzZSA4NToKLSAgICAg
ICAgY2FzZSA4NjoKLSAgICAgICAgY2FzZSA4NzoKLSAgICAgICAgY2FzZSA4ODoKLSAgICAgICAg
Y2FzZSA4OToKLSAgICAgICAgY2FzZSA5MDoKLSAgICAgICAgY2FzZSA5MToKLSAgICAgICAgY2Fz
ZSA5NDoKLSAgICAgICAgY2FzZSA5NToKLSAgICAgICAgY2FzZSAxMTA6Ci0gICAgICAgIGNhc2Ug
MTExOgotICAgICAgICBjYXNlIDExMzoKLSAgICAgICAgY2FzZSAxMTQ6Ci0gICAgICAgIGNhc2Ug
MTE1OgotICAgICAgICBjYXNlIDExNjoKLSAgICAgICAgY2FzZSAxMTc6Ci0gICAgICAgIGNhc2Ug
MTE4OgotICAgICAgICBjYXNlIDEyMDoKLSAgICAgICAgY2FzZSA0MDoKLSAgICAgICAgY2FzZSAx
NjoKLSAgICAgICAgY2FzZSA3OToKLSAgICAgICAgY2FzZSAxOToKLSAgICAgICAgICByZXR1cm4g
LTE7Ci0gICAgICAgIGNhc2UgOTI6Ci0gICAgICAgIGNhc2UgOTM6Ci0gICAgICAgIGNhc2UgNToK
LSAgICAgICAgY2FzZSA3MjoKLSAgICAgICAgY2FzZSA2OgotICAgICAgICBjYXNlIDc0OgotICAg
ICAgICBjYXNlIDkyOgotICAgICAgICBjYXNlIDkzOgotICAgICAgICBjYXNlIDk2OgotICAgICAg
ICBjYXNlIDk3OgotICAgICAgICBjYXNlIDk4OgotICAgICAgICBjYXNlIDk5OgotICAgICAgICBj
YXNlIDEwMjoKLSAgICAgICAgY2FzZSAxMDM6Ci0gICAgICAgIGNhc2UgMTA1OgotICAgICAgICAg
IHJldHVybiAxOwotICAgICAgICBjYXNlIDM4OgotICAgICAgICBjYXNlIDY2OgotICAgICAgICBj
YXNlIDUwOgotICAgICAgICBjYXNlIDUxOgotICAgICAgICBjYXNlIDQ6Ci0gICAgICAgICAgcmV0
dXJuIDEwMjQ7Ci0gICAgICAgIGNhc2UgMTU6Ci0gICAgICAgIGNhc2UgNjQ6Ci0gICAgICAgIGNh
c2UgNDE6Ci0gICAgICAgICAgcmV0dXJuIDMyOwotICAgICAgICBjYXNlIDU1OgotICAgICAgICBj
YXNlIDM3OgotICAgICAgICBjYXNlIDE3OgotICAgICAgICAgIHJldHVybiAyMTQ3NDgzNjQ3Owot
ICAgICAgICBjYXNlIDE4OgotICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgcmV0dXJuIDQ3ODM5
OwotICAgICAgICBjYXNlIDU5OgotICAgICAgICBjYXNlIDU3OgotICAgICAgICAgIHJldHVybiA5
OTsKLSAgICAgICAgY2FzZSA2ODoKLSAgICAgICAgY2FzZSA1ODoKLSAgICAgICAgICByZXR1cm4g
MjA0ODsKLSAgICAgICAgY2FzZSAwOiByZXR1cm4gMjA5NzE1MjsKLSAgICAgICAgY2FzZSAzOiBy
ZXR1cm4gNjU1MzY7Ci0gICAgICAgIGNhc2UgMTQ6IHJldHVybiAzMjc2ODsKLSAgICAgICAgY2Fz
ZSA3MzogcmV0dXJuIDMyNzY3OwotICAgICAgICBjYXNlIDM5OiByZXR1cm4gMTYzODQ7Ci0gICAg
ICAgIGNhc2UgNjA6IHJldHVybiAxMDAwOwotICAgICAgICBjYXNlIDEwNjogcmV0dXJuIDcwMDsK
LSAgICAgICAgY2FzZSA1MjogcmV0dXJuIDI1NjsKLSAgICAgICAgY2FzZSA2MjogcmV0dXJuIDI1
NTsKLSAgICAgICAgY2FzZSAyOiByZXR1cm4gMTAwOwotICAgICAgICBjYXNlIDY1OiByZXR1cm4g
NjQ7Ci0gICAgICAgIGNhc2UgMzY6IHJldHVybiAyMDsKLSAgICAgICAgY2FzZSAxMDA6IHJldHVy
biAxNjsKLSAgICAgICAgY2FzZSAyMDogcmV0dXJuIDY7Ci0gICAgICAgIGNhc2UgNTM6IHJldHVy
biA0OwotICAgICAgICBjYXNlIDEwOiByZXR1cm4gMTsKLSAgICAgIH0KLSAgICAgIF9fX3NldEVy
ck5vKEVSUk5PX0NPREVTLkVJTlZBTCk7Ci0gICAgICByZXR1cm4gLTE7Ci0gICAgfQotICBmdW5j
dGlvbiBfX19jeGFfZ3VhcmRfYWJvcnQoKSB7fQotICBmdW5jdGlvbiBfaXN4ZGlnaXQoY2hyKSB7
Ci0gICAgICByZXR1cm4gKGNociA+PSA0OCAmJiBjaHIgPD0gNTcpIHx8Ci0gICAgICAgICAgICAg
KGNociA+PSA5NyAmJiBjaHIgPD0gMTAyKSB8fAotICAgICAgICAgICAgIChjaHIgPj0gNjUgJiYg
Y2hyIDw9IDcwKTsKLSAgICB9dmFyIF9pc3hkaWdpdF9sPV9pc3hkaWdpdDsKLSAgZnVuY3Rpb24g
X2lzZGlnaXQoY2hyKSB7Ci0gICAgICByZXR1cm4gY2hyID49IDQ4ICYmIGNociA8PSA1NzsKLSAg
ICB9dmFyIF9pc2RpZ2l0X2w9X2lzZGlnaXQ7Ci0gIGZ1bmN0aW9uIF9faXNGbG9hdCh0ZXh0KSB7
Ci0gICAgICByZXR1cm4gISEoL15bKy1dP1swLTldKlwuP1swLTldKyhbZUVdWystXT9bMC05XSsp
PyQvLmV4ZWModGV4dCkpOwotICAgIH1mdW5jdGlvbiBfX3NjYW5TdHJpbmcoZm9ybWF0LCBnZXQs
IHVuZ2V0LCB2YXJhcmdzKSB7Ci0gICAgICBpZiAoIV9fc2NhblN0cmluZy53aGl0ZVNwYWNlKSB7
Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlID0ge307Ci0gICAgICAgIF9fc2NhblN0
cmluZy53aGl0ZVNwYWNlWzMyXSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNl
WzldID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbMTBdID0gMTsKLSAgICAg
ICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbMTFdID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5n
LndoaXRlU3BhY2VbMTJdID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbMTNd
ID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbJyAnXSA9IDE7Ci0gICAgICAg
IF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWydcdCddID0gMTsKLSAgICAgICAgX19zY2FuU3RyaW5n
LndoaXRlU3BhY2VbJ1xuJ10gPSAxOwotICAgICAgICBfX3NjYW5TdHJpbmcud2hpdGVTcGFjZVsn
XHYnXSA9IDE7Ci0gICAgICAgIF9fc2NhblN0cmluZy53aGl0ZVNwYWNlWydcZiddID0gMTsKLSAg
ICAgICAgX19zY2FuU3RyaW5nLndoaXRlU3BhY2VbJ1xyJ10gPSAxOwotICAgICAgfQotICAgICAg
Ly8gU3VwcG9ydHMgJXgsICU0eCwgJWQuJWQsICVsbGQsICVzLCAlZiwgJWxmLgotICAgICAgLy8g
VE9ETzogU3VwcG9ydCBhbGwgZm9ybWF0IHNwZWNpZmllcnMuCi0gICAgICBmb3JtYXQgPSBQb2lu
dGVyX3N0cmluZ2lmeShmb3JtYXQpOwotICAgICAgdmFyIHNvRmFyID0gMDsKLSAgICAgIGlmIChm
b3JtYXQuaW5kZXhPZignJW4nKSA+PSAwKSB7Ci0gICAgICAgIC8vIG5lZWQgdG8gdHJhY2sgc29G
YXIKLSAgICAgICAgdmFyIF9nZXQgPSBnZXQ7Ci0gICAgICAgIGdldCA9IGZ1bmN0aW9uKCkgewot
ICAgICAgICAgIHNvRmFyKys7Ci0gICAgICAgICAgcmV0dXJuIF9nZXQoKTsKLSAgICAgICAgfQot
ICAgICAgICB2YXIgX3VuZ2V0ID0gdW5nZXQ7Ci0gICAgICAgIHVuZ2V0ID0gZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgc29GYXItLTsKLSAgICAgICAgICByZXR1cm4gX3VuZ2V0KCk7Ci0gICAgICAg
IH0KLSAgICAgIH0KLSAgICAgIHZhciBmb3JtYXRJbmRleCA9IDA7Ci0gICAgICB2YXIgYXJnc2kg
PSAwOwotICAgICAgdmFyIGZpZWxkcyA9IDA7Ci0gICAgICB2YXIgYXJnSW5kZXggPSAwOwotICAg
ICAgdmFyIG5leHQ7Ci0gICAgICBtYWluTG9vcDoKLSAgICAgIGZvciAodmFyIGZvcm1hdEluZGV4
ID0gMDsgZm9ybWF0SW5kZXggPCBmb3JtYXQubGVuZ3RoOykgewotICAgICAgICBpZiAoZm9ybWF0
W2Zvcm1hdEluZGV4XSA9PT0gJyUnICYmIGZvcm1hdFtmb3JtYXRJbmRleCsxXSA9PSAnbicpIHsK
LSAgICAgICAgICB2YXIgYXJnUHRyID0gSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4y
KV07Ci0gICAgICAgICAgYXJnSW5kZXggKz0gUnVudGltZS5nZXRBbGlnblNpemUoJ3ZvaWQqJywg
bnVsbCwgdHJ1ZSk7Ci0gICAgICAgICAgSEVBUDMyWygoYXJnUHRyKT4+MildPXNvRmFyOwotICAg
ICAgICAgIGZvcm1hdEluZGV4ICs9IDI7Ci0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT09ICclJykgewotICAgICAgICAgIHZh
ciBuZXh0QyA9IGZvcm1hdC5pbmRleE9mKCdjJywgZm9ybWF0SW5kZXgrMSk7Ci0gICAgICAgICAg
aWYgKG5leHRDID4gMCkgewotICAgICAgICAgICAgdmFyIG1heHggPSAxOwotICAgICAgICAgICAg
aWYgKG5leHRDID4gZm9ybWF0SW5kZXgrMSkgewotICAgICAgICAgICAgICB2YXIgc3ViID0gZm9y
bWF0LnN1YnN0cmluZyhmb3JtYXRJbmRleCsxLCBuZXh0QykKLSAgICAgICAgICAgICAgbWF4eCA9
IHBhcnNlSW50KHN1Yik7Ci0gICAgICAgICAgICAgIGlmIChtYXh4ICE9IHN1YikgbWF4eCA9IDA7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobWF4eCkgewotICAgICAgICAgICAgICB2
YXIgYXJnUHRyID0gSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4yKV07Ci0gICAgICAg
ICAgICAgIGFyZ0luZGV4ICs9IFJ1bnRpbWUuZ2V0QWxpZ25TaXplKCd2b2lkKicsIG51bGwsIHRy
dWUpOwotICAgICAgICAgICAgICBmaWVsZHMrKzsKLSAgICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBtYXh4OyBpKyspIHsKLSAgICAgICAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAg
ICAgICAgICAgICAgSEVBUDhbKChhcmdQdHIrKyl8MCldPW5leHQ7Ci0gICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgZm9ybWF0SW5kZXggKz0gbmV4dEMgLSBmb3JtYXRJbmRleCArIDE7Ci0g
ICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgICAgICAvLyByZW1vdmUgd2hpdGVzcGFjZQotICAgICAgICB3aGlsZSAoMSkgewot
ICAgICAgICAgIG5leHQgPSBnZXQoKTsKLSAgICAgICAgICBpZiAobmV4dCA9PSAwKSByZXR1cm4g
ZmllbGRzOwotICAgICAgICAgIGlmICghKG5leHQgaW4gX19zY2FuU3RyaW5nLndoaXRlU3BhY2Up
KSBicmVhazsKLSAgICAgICAgfQotICAgICAgICB1bmdldCgpOwotICAgICAgICBpZiAoZm9ybWF0
W2Zvcm1hdEluZGV4XSA9PT0gJyUnKSB7Ci0gICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAg
ICAgICB2YXIgc3VwcHJlc3NBc3NpZ25tZW50ID0gZmFsc2U7Ci0gICAgICAgICAgaWYgKGZvcm1h
dFtmb3JtYXRJbmRleF0gPT0gJyonKSB7Ci0gICAgICAgICAgICBzdXBwcmVzc0Fzc2lnbm1lbnQg
PSB0cnVlOwotICAgICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgICB9Ci0gICAgICAg
ICAgdmFyIG1heFNwZWNpZmllclN0YXJ0ID0gZm9ybWF0SW5kZXg7Ci0gICAgICAgICAgd2hpbGUg
KGZvcm1hdFtmb3JtYXRJbmRleF0uY2hhckNvZGVBdCgwKSA+PSA0OCAmJgotICAgICAgICAgICAg
ICAgICBmb3JtYXRbZm9ybWF0SW5kZXhdLmNoYXJDb2RlQXQoMCkgPD0gNTcpIHsKLSAgICAgICAg
ICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBtYXhfOwotICAg
ICAgICAgIGlmIChmb3JtYXRJbmRleCAhPSBtYXhTcGVjaWZpZXJTdGFydCkgewotICAgICAgICAg
ICAgbWF4XyA9IHBhcnNlSW50KGZvcm1hdC5zbGljZShtYXhTcGVjaWZpZXJTdGFydCwgZm9ybWF0
SW5kZXgpLCAxMCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHZhciBsb25nXyA9IGZhbHNlOwot
ICAgICAgICAgIHZhciBoYWxmID0gZmFsc2U7Ci0gICAgICAgICAgdmFyIGxvbmdMb25nID0gZmFs
c2U7Ci0gICAgICAgICAgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT0gJ2wnKSB7Ci0gICAgICAg
ICAgICBsb25nXyA9IHRydWU7Ci0gICAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICAg
ICAgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT0gJ2wnKSB7Ci0gICAgICAgICAgICAgIGxvbmdM
b25nID0gdHJ1ZTsKLSAgICAgICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0gPT0gJ2gnKSB7Ci0gICAg
ICAgICAgICBoYWxmID0gdHJ1ZTsKLSAgICAgICAgICAgIGZvcm1hdEluZGV4Kys7Ci0gICAgICAg
ICAgfQotICAgICAgICAgIHZhciB0eXBlID0gZm9ybWF0W2Zvcm1hdEluZGV4XTsKLSAgICAgICAg
ICBmb3JtYXRJbmRleCsrOwotICAgICAgICAgIHZhciBjdXJyID0gMDsKLSAgICAgICAgICB2YXIg
YnVmZmVyID0gW107Ci0gICAgICAgICAgLy8gUmVhZCBjaGFyYWN0ZXJzIGFjY29yZGluZyB0byB0
aGUgZm9ybWF0LiBmbG9hdHMgYXJlIHRyaWNraWVyLCB0aGV5IG1heSBiZSBpbiBhbiB1bmZsb2F0
IHN0YXRlIGluIHRoZSBtaWRkbGUsIHRoZW4gYmUgYSB2YWxpZCBmbG9hdCBsYXRlcgotICAgICAg
ICAgIGlmICh0eXBlID09ICdmJyB8fCB0eXBlID09ICdlJyB8fCB0eXBlID09ICdnJyB8fAotICAg
ICAgICAgICAgICB0eXBlID09ICdGJyB8fCB0eXBlID09ICdFJyB8fCB0eXBlID09ICdHJykgewot
ICAgICAgICAgICAgdmFyIGxhc3QgPSAwOwotICAgICAgICAgICAgbmV4dCA9IGdldCgpOwotICAg
ICAgICAgICAgd2hpbGUgKG5leHQgPiAwKSB7Ci0gICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKFN0
cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpOwotICAgICAgICAgICAgICBpZiAoX19pc0Zsb2F0KGJ1
ZmZlci5qb2luKCcnKSkpIHsKLSAgICAgICAgICAgICAgICBsYXN0ID0gYnVmZmVyLmxlbmd0aDsK
LSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBuZXh0ID0gZ2V0KCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1ZmZlci5sZW5ndGggLSBsYXN0
ICsgMTsgaSsrKSB7Ci0gICAgICAgICAgICAgIHVuZ2V0KCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBidWZmZXIubGVuZ3RoID0gbGFzdDsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgbmV4dCA9IGdldCgpOwotICAgICAgICAgICAgdmFyIGZpcnN0ID0gdHJ1ZTsKLSAgICAg
ICAgICAgIHdoaWxlICgoY3VyciA8IG1heF8gfHwgaXNOYU4obWF4XykpICYmIG5leHQgPiAwKSB7
Ci0gICAgICAgICAgICAgIGlmICghKG5leHQgaW4gX19zY2FuU3RyaW5nLndoaXRlU3BhY2UpICYm
IC8vIHN0b3Agb24gd2hpdGVzcGFjZQotICAgICAgICAgICAgICAgICAgKHR5cGUgPT0gJ3MnIHx8
Ci0gICAgICAgICAgICAgICAgICAgKCh0eXBlID09PSAnZCcgfHwgdHlwZSA9PSAndScgfHwgdHlw
ZSA9PSAnaScpICYmICgobmV4dCA+PSA0OCAmJiBuZXh0IDw9IDU3KSB8fAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGZpcnN0ICYmIG5leHQgPT0gNDUpKSkgfHwKLSAgICAgICAgICAgICAgICAgICAoKHR5cGUgPT09
ICd4JyB8fCB0eXBlID09PSAnWCcpICYmIChuZXh0ID49IDQ4ICYmIG5leHQgPD0gNTcgfHwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0ID49IDk3ICYmIG5leHQgPD0g
MTAyIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCA+PSA2NSAm
JiBuZXh0IDw9IDcwKSkpICYmCi0gICAgICAgICAgICAgICAgICAoZm9ybWF0SW5kZXggPj0gZm9y
bWF0Lmxlbmd0aCB8fCBuZXh0ICE9PSBmb3JtYXRbZm9ybWF0SW5kZXhdLmNoYXJDb2RlQXQoMCkp
KSB7IC8vIFN0b3Agd2hlbiB3ZSByZWFkIHNvbWV0aGluZyB0aGF0IGlzIGNvbWluZyB1cAotICAg
ICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUobmV4dCkpOwotICAg
ICAgICAgICAgICAgIG5leHQgPSBnZXQoKTsKLSAgICAgICAgICAgICAgICBjdXJyKys7Ci0gICAg
ICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgdW5nZXQoKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgg
PT09IDApIHJldHVybiAwOyAgLy8gRmFpbHVyZS4KLSAgICAgICAgICBpZiAoc3VwcHJlc3NBc3Np
Z25tZW50KSBjb250aW51ZTsKLSAgICAgICAgICB2YXIgdGV4dCA9IGJ1ZmZlci5qb2luKCcnKTsK
LSAgICAgICAgICB2YXIgYXJnUHRyID0gSEVBUDMyWygoKHZhcmFyZ3MpKyhhcmdJbmRleCkpPj4y
KV07Ci0gICAgICAgICAgYXJnSW5kZXggKz0gUnVudGltZS5nZXRBbGlnblNpemUoJ3ZvaWQqJywg
bnVsbCwgdHJ1ZSk7Ci0gICAgICAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgICAgICAgICBjYXNl
ICdkJzogY2FzZSAndSc6IGNhc2UgJ2knOgotICAgICAgICAgICAgICBpZiAoaGFsZikgewotICAg
ICAgICAgICAgICAgIEhFQVAxNlsoKGFyZ1B0cik+PjEpXT1wYXJzZUludCh0ZXh0LCAxMCk7Ci0g
ICAgICAgICAgICAgIH0gZWxzZSBpZiAobG9uZ0xvbmcpIHsKLSAgICAgICAgICAgICAgICAodGVt
cEk2NCA9IFtwYXJzZUludCh0ZXh0LCAxMCk+Pj4wLCh0ZW1wRG91YmxlPXBhcnNlSW50KHRleHQs
IDEwKSwoKyhNYXRoLmFicyh0ZW1wRG91YmxlKSkpID49ICgrKDEpKSA/ICh0ZW1wRG91YmxlID4g
KCsoMCkpID8gKChNYXRoLm1pbigoKyhNYXRoLmZsb29yKCh0ZW1wRG91YmxlKS8oKyg0Mjk0OTY3
Mjk2KSkpKSksICgrKDQyOTQ5NjcyOTUpKSkpfDApPj4+MCA6ICh+figoKyhNYXRoLmNlaWwoKHRl
bXBEb3VibGUgLSArKCgofn4odGVtcERvdWJsZSkpKT4+PjApKS8oKyg0Mjk0OTY3Mjk2KSkpKSkp
KT4+PjApIDogMCldLEhFQVAzMlsoKGFyZ1B0cik+PjIpXT10ZW1wSTY0WzBdLEhFQVAzMlsoKChh
cmdQdHIpKyg0KSk+PjIpXT10ZW1wSTY0WzFdKTsKLSAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBIRUFQMzJbKChhcmdQdHIpPj4yKV09cGFyc2VJbnQodGV4dCwgMTApOwot
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSAn
WCc6Ci0gICAgICAgICAgICBjYXNlICd4JzoKLSAgICAgICAgICAgICAgSEVBUDMyWygoYXJnUHRy
KT4+MildPXBhcnNlSW50KHRleHQsIDE2KQotICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIGNhc2UgJ0YnOgotICAgICAgICAgICAgY2FzZSAnZic6Ci0gICAgICAgICAgICBjYXNlICdF
JzoKLSAgICAgICAgICAgIGNhc2UgJ2UnOgotICAgICAgICAgICAgY2FzZSAnRyc6Ci0gICAgICAg
ICAgICBjYXNlICdnJzoKLSAgICAgICAgICAgIGNhc2UgJ0UnOgotICAgICAgICAgICAgICAvLyBm
YWxsdGhyb3VnaCBpbnRlbmRlZAotICAgICAgICAgICAgICBpZiAobG9uZ18pIHsKLSAgICAgICAg
ICAgICAgICBIRUFQRjY0WygoYXJnUHRyKT4+MyldPXBhcnNlRmxvYXQodGV4dCkKLSAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBIRUFQRjMyWygoYXJnUHRyKT4+MildPXBh
cnNlRmxvYXQodGV4dCkKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGNhc2UgJ3MnOgotICAgICAgICAgICAgICB2YXIgYXJyYXkgPSBpbnRBcnJheUZy
b21TdHJpbmcodGV4dCk7Ci0gICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYXJyYXku
bGVuZ3RoOyBqKyspIHsKLSAgICAgICAgICAgICAgICBIRUFQOFsoKChhcmdQdHIpKyhqKSl8MCld
PWFycmF5W2pdCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgfQotICAgICAgICAgIGZpZWxkcysrOwotICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdFtmb3Jt
YXRJbmRleF0gaW4gX19zY2FuU3RyaW5nLndoaXRlU3BhY2UpIHsKLSAgICAgICAgICBuZXh0ID0g
Z2V0KCk7Ci0gICAgICAgICAgd2hpbGUgKG5leHQgaW4gX19zY2FuU3RyaW5nLndoaXRlU3BhY2Up
IHsKLSAgICAgICAgICAgIGlmIChuZXh0IDw9IDApIGJyZWFrIG1haW5Mb29wOyAgLy8gRW5kIG9m
IGlucHV0LgotICAgICAgICAgICAgbmV4dCA9IGdldCgpOwotICAgICAgICAgIH0KLSAgICAgICAg
ICB1bmdldChuZXh0KTsKLSAgICAgICAgICBmb3JtYXRJbmRleCsrOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgIC8vIE5vdCBhIHNwZWNpZmllci4KLSAgICAgICAgICBuZXh0ID0gZ2V0KCk7
Ci0gICAgICAgICAgaWYgKGZvcm1hdFtmb3JtYXRJbmRleF0uY2hhckNvZGVBdCgwKSAhPT0gbmV4
dCkgewotICAgICAgICAgICAgdW5nZXQobmV4dCk7Ci0gICAgICAgICAgICBicmVhayBtYWluTG9v
cDsKLSAgICAgICAgICB9Ci0gICAgICAgICAgZm9ybWF0SW5kZXgrKzsKLSAgICAgICAgfQotICAg
ICAgfQotICAgICAgcmV0dXJuIGZpZWxkczsKLSAgICB9ZnVuY3Rpb24gX3NzY2FuZihzLCBmb3Jt
YXQsIHZhcmFyZ3MpIHsKLSAgICAgIC8vIGludCBzc2NhbmYoY29uc3QgY2hhciAqcmVzdHJpY3Qg
cywgY29uc3QgY2hhciAqcmVzdHJpY3QgZm9ybWF0LCAuLi4gKTsKLSAgICAgIC8vIGh0dHA6Ly9w
dWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3NjYW5mLmh0
bWwKLSAgICAgIHZhciBpbmRleCA9IDA7Ci0gICAgICB2YXIgZ2V0ID0gZnVuY3Rpb24oKSB7IHJl
dHVybiBIRUFQOFsoKChzKSsoaW5kZXgrKykpfDApXTsgfTsKLSAgICAgIHZhciB1bmdldCA9IGZ1
bmN0aW9uKCkgeyBpbmRleC0tOyB9OwotICAgICAgcmV0dXJuIF9fc2NhblN0cmluZyhmb3JtYXQs
IGdldCwgdW5nZXQsIHZhcmFyZ3MpOwotICAgIH0KLSAgZnVuY3Rpb24gX19aN2NhdG9wZW5QS2Np
KCkgeyB0aHJvdyAnY2F0b3BlbiBub3QgaW1wbGVtZW50ZWQnIH0KLSAgZnVuY3Rpb24gX19aN2Nh
dGdldHNQOF9ubF9jYXRkaWlQS2MoKSB7IHRocm93ICdjYXRnZXRzIG5vdCBpbXBsZW1lbnRlZCcg
fQotICBmdW5jdGlvbiBfX1o4Y2F0Y2xvc2VQOF9ubF9jYXRkKCkgeyB0aHJvdyAnY2F0Y2xvc2Ug
bm90IGltcGxlbWVudGVkJyB9Ci0gIGZ1bmN0aW9uIF9uZXdsb2NhbGUobWFzaywgbG9jYWxlLCBi
YXNlKSB7Ci0gICAgICByZXR1cm4gMDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9mcmVlbG9jYWxlKGxv
Y2FsZSkge30KLSAgZnVuY3Rpb24gX19fY3R5cGVfYl9sb2MoKSB7Ci0gICAgICAvLyBodHRwOi8v
cmVmc3BlY3MuZnJlZXN0YW5kYXJkcy5vcmcvTFNCXzMuMC4wL0xTQi1Db3JlLWdlbmVyaWMvTFNC
LUNvcmUtZ2VuZXJpYy9iYXNlbGliLS0tY3R5cGUtYi1sb2MuaHRtbAotICAgICAgdmFyIG1lID0g
X19fY3R5cGVfYl9sb2M7Ci0gICAgICBpZiAoIW1lLnJldCkgewotICAgICAgICB2YXIgdmFsdWVz
ID0gWwotICAgICAgICAgIDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwKLSAgICAgICAgICAwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsCi0gICAgICAgICAgMCwwLDAsMCww
LDAsMCwwLDAsMCwyLDIsMiwyLDIsMiwyLDIsMiw4MTk1LDgxOTQsODE5NCw4MTk0LDgxOTQsMiwy
LDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMjQ1NzcsNDkxNTYsNDkxNTYsNDkxNTYs
Ci0gICAgICAgICAgNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkx
NTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNTUzMDQsNTUzMDQsNTUzMDQsNTUzMDQsNTUzMDQs
NTUzMDQsNTUzMDQsNTUzMDQsCi0gICAgICAgICAgNTUzMDQsNTUzMDQsNDkxNTYsNDkxNTYsNDkx
NTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNTQ1MzYsNTQ1MzYsNTQ1MzYsNTQ1MzYsNTQ1MzYs
NTQ1MzYsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsCi0gICAgICAgICAgNTA0NDAsNTA0
NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAs
NTA0NDAsNTA0NDAsNTA0NDAsNTA0NDAsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsCi0g
ICAgICAgICAgNDkxNTYsNTQ3OTIsNTQ3OTIsNTQ3OTIsNTQ3OTIsNTQ3OTIsNTQ3OTIsNTA2OTYs
NTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2
OTYsNTA2OTYsNTA2OTYsCi0gICAgICAgICAgNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYsNTA2OTYs
NTA2OTYsNTA2OTYsNDkxNTYsNDkxNTYsNDkxNTYsNDkxNTYsMiwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLAotICAgICAgICAgIDAsMCwwLDAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwKLSAgICAgICAg
ICAwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAKLSAgICAgICAgXTsKLSAgICAgICAgdmFy
IGkxNnNpemUgPSAyOwotICAgICAgICB2YXIgYXJyID0gX21hbGxvYyh2YWx1ZXMubGVuZ3RoICog
aTE2c2l6ZSk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsr
KSB7Ci0gICAgICAgICAgSEVBUDE2WygoKGFycikrKGkgKiBpMTZzaXplKSk+PjEpXT12YWx1ZXNb
aV0KLSAgICAgICAgfQotICAgICAgICBtZS5yZXQgPSBhbGxvY2F0ZShbYXJyICsgMTI4ICogaTE2
c2l6ZV0sICdpMTYqJywgQUxMT0NfTk9STUFMKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBtZS5y
ZXQ7Ci0gICAgfQotICBmdW5jdGlvbiBfX19jdHlwZV90b2xvd2VyX2xvYygpIHsKLSAgICAgIC8v
IGh0dHA6Ly9yZWZzcGVjcy5mcmVlc3RhbmRhcmRzLm9yZy9MU0JfMy4xLjEvTFNCLUNvcmUtZ2Vu
ZXJpYy9MU0ItQ29yZS1nZW5lcmljL2xpYnV0aWwtLS1jdHlwZS10b2xvd2VyLWxvYy5odG1sCi0g
ICAgICB2YXIgbWUgPSBfX19jdHlwZV90b2xvd2VyX2xvYzsKLSAgICAgIGlmICghbWUucmV0KSB7
Ci0gICAgICAgIHZhciB2YWx1ZXMgPSBbCi0gICAgICAgICAgMTI4LDEyOSwxMzAsMTMxLDEzMiwx
MzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0
NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsCi0gICAgICAgICAgMTU4
LDE1OSwxNjAsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIs
MTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4Niwx
ODcsCi0gICAgICAgICAgMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5
OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEy
LDIxMywyMTQsMjE1LDIxNiwyMTcsCi0gICAgICAgICAgMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMs
MjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywy
MzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsCi0gICAgICAgICAgMjQ4LDI0
OSwyNTAsMjUxLDI1MiwyNTMsMjU0LC0xLDAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMs
MTQsMTUsMTYsMTcsMTgsMTksMjAsMjEsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMjksMzAsMzEsMzIs
Ci0gICAgICAgICAgMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUsNDYsNDcs
NDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsNjIsNjMsNjQsOTcsOTgs
OTksMTAwLDEwMSwxMDIsMTAzLAotICAgICAgICAgIDEwNCwxMDUsMTA2LDEwNywxMDgsMTA5LDEx
MCwxMTEsMTEyLDExMywxMTQsMTE1LDExNiwxMTcsMTE4LDExOSwxMjAsMTIxLDEyMiw5MSw5Miw5
Myw5NCw5NSw5Niw5Nyw5OCw5OSwxMDAsMTAxLDEwMiwxMDMsCi0gICAgICAgICAgMTA0LDEwNSwx
MDYsMTA3LDEwOCwxMDksMTEwLDExMSwxMTIsMTEzLDExNCwxMTUsMTE2LDExNywxMTgsMTE5LDEy
MCwxMjEsMTIyLDEyMywxMjQsMTI1LDEyNiwxMjcsMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsCi0g
ICAgICAgICAgMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUs
MTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwx
NjAsMTYxLDE2MiwxNjMsCi0gICAgICAgICAgMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3
MSwxNzIsMTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1
LDE4NiwxODcsMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsCi0gICAgICAgICAgMTk0LDE5NSwxOTYs
MTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwy
MTEsMjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsCi0gICAg
ICAgICAgMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2
LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAs
MjUxLDI1MiwyNTMsCi0gICAgICAgICAgMjU0LDI1NQotICAgICAgICBdOwotICAgICAgICB2YXIg
aTMyc2l6ZSA9IDQ7Ci0gICAgICAgIHZhciBhcnIgPSBfbWFsbG9jKHZhbHVlcy5sZW5ndGggKiBp
MzJzaXplKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKysp
IHsKLSAgICAgICAgICBIRUFQMzJbKCgoYXJyKSsoaSAqIGkzMnNpemUpKT4+MildPXZhbHVlc1tp
XQotICAgICAgICB9Ci0gICAgICAgIG1lLnJldCA9IGFsbG9jYXRlKFthcnIgKyAxMjggKiBpMzJz
aXplXSwgJ2kzMionLCBBTExPQ19OT1JNQUwpOwotICAgICAgfQotICAgICAgcmV0dXJuIG1lLnJl
dDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2N0eXBlX3RvdXBwZXJfbG9jKCkgewotICAgICAgLy8g
aHR0cDovL3JlZnNwZWNzLmZyZWVzdGFuZGFyZHMub3JnL0xTQl8zLjEuMS9MU0ItQ29yZS1nZW5l
cmljL0xTQi1Db3JlLWdlbmVyaWMvbGlidXRpbC0tLWN0eXBlLXRvdXBwZXItbG9jLmh0bWwKLSAg
ICAgIHZhciBtZSA9IF9fX2N0eXBlX3RvdXBwZXJfbG9jOwotICAgICAgaWYgKCFtZS5yZXQpIHsK
LSAgICAgICAgdmFyIHZhbHVlcyA9IFsKLSAgICAgICAgICAxMjgsMTI5LDEzMCwxMzEsMTMyLDEz
MywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3
LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywKLSAgICAgICAgICAxNTgs
MTU5LDE2MCwxNjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3Miwx
NzMsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTg2LDE4
NywKLSAgICAgICAgICAxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywxOTQsMTk1LDE5NiwxOTcsMTk4
LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LDIwOCwyMDksMjEwLDIxMSwyMTIs
MjEzLDIxNCwyMTUsMjE2LDIxNywKLSAgICAgICAgICAyMTgsMjE5LDIyMCwyMjEsMjIyLDIyMywy
MjQsMjI1LDIyNiwyMjcsMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIz
OCwyMzksMjQwLDI0MSwyNDIsMjQzLDI0NCwyNDUsMjQ2LDI0NywKLSAgICAgICAgICAyNDgsMjQ5
LDI1MCwyNTEsMjUyLDI1MywyNTQsLTEsMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywx
NCwxNSwxNiwxNywxOCwxOSwyMCwyMSwyMiwyMywyNCwyNSwyNiwyNywyOCwyOSwzMCwzMSwzMiwK
LSAgICAgICAgICAzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0Nyw0
OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSw2Miw2Myw2NCw2NSw2Niw2
Nyw2OCw2OSw3MCw3MSw3MiwKLSAgICAgICAgICA3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCw4MSw4
Miw4Myw4NCw4NSw4Niw4Nyw4OCw4OSw5MCw5MSw5Miw5Myw5NCw5NSw5Niw2NSw2Niw2Nyw2OCw2
OSw3MCw3MSw3Miw3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCwKLSAgICAgICAgICA4MSw4Miw4Myw4
NCw4NSw4Niw4Nyw4OCw4OSw5MCwxMjMsMTI0LDEyNSwxMjYsMTI3LDEyOCwxMjksMTMwLDEzMSwx
MzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsCi0gICAg
ICAgICAgMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3
LDE1OCwxNTksMTYwLDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEs
MTcyLDE3MywxNzQsCi0gICAgICAgICAgMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4Miwx
ODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5
NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsCi0gICAgICAgICAgMjA1LDIwNiwyMDcsMjA4
LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwyMjIs
MjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsCi0gICAgICAg
ICAgMjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0
OCwyNDksMjUwLDI1MSwyNTIsMjUzLDI1NCwyNTUKLSAgICAgICAgXTsKLSAgICAgICAgdmFyIGkz
MnNpemUgPSA0OwotICAgICAgICB2YXIgYXJyID0gX21hbGxvYyh2YWx1ZXMubGVuZ3RoICogaTMy
c2l6ZSk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7
Ci0gICAgICAgICAgSEVBUDMyWygoKGFycikrKGkgKiBpMzJzaXplKSk+PjIpXT12YWx1ZXNbaV0K
LSAgICAgICAgfQotICAgICAgICBtZS5yZXQgPSBhbGxvY2F0ZShbYXJyICsgMTI4ICogaTMyc2l6
ZV0sICdpMzIqJywgQUxMT0NfTk9STUFMKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiBtZS5yZXQ7
Ci0gICAgfQotICB2YXIgX19fdG1fc3RydWN0X2xheW91dD17X19zaXplX186NDQsdG1fc2VjOjAs
dG1fbWluOjQsdG1faG91cjo4LHRtX21kYXk6MTIsdG1fbW9uOjE2LHRtX3llYXI6MjAsdG1fd2Rh
eToyNCx0bV95ZGF5OjI4LHRtX2lzZHN0OjMyLHRtX2dtdG9mZjozNix0bV96b25lOjQwfTsKLSAg
ZnVuY3Rpb24gX19pc0xlYXBZZWFyKHllYXIpIHsKLSAgICAgICAgcmV0dXJuIHllYXIlNCA9PT0g
MCAmJiAoeWVhciUxMDAgIT09IDAgfHwgeWVhciU0MDAgPT09IDApOwotICAgIH0KLSAgZnVuY3Rp
b24gX19hcnJheVN1bShhcnJheSwgaW5kZXgpIHsKLSAgICAgIHZhciBzdW0gPSAwOwotICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPD0gaW5kZXg7IHN1bSArPSBhcnJheVtpKytdKTsKLSAgICAgIHJl
dHVybiBzdW07Ci0gICAgfQotICB2YXIgX19NT05USF9EQVlTX0xFQVA9WzMxLDI5LDMxLDMwLDMx
LDMwLDMxLDMxLDMwLDMxLDMwLDMxXTsKLSAgdmFyIF9fTU9OVEhfREFZU19SRUdVTEFSPVszMSwy
OCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07ZnVuY3Rpb24gX19hZGREYXlzKGRhdGUs
IGRheXMpIHsKLSAgICAgIHZhciBuZXdEYXRlID0gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkpOwot
ICAgICAgd2hpbGUoZGF5cyA+IDApIHsKLSAgICAgICAgdmFyIGxlYXAgPSBfX2lzTGVhcFllYXIo
bmV3RGF0ZS5nZXRGdWxsWWVhcigpKTsKLSAgICAgICAgdmFyIGN1cnJlbnRNb250aCA9IG5ld0Rh
dGUuZ2V0TW9udGgoKTsKLSAgICAgICAgdmFyIGRheXNJbkN1cnJlbnRNb250aCA9IChsZWFwID8g
X19NT05USF9EQVlTX0xFQVAgOiBfX01PTlRIX0RBWVNfUkVHVUxBUilbY3VycmVudE1vbnRoXTsK
LSAgICAgICAgaWYgKGRheXMgPiBkYXlzSW5DdXJyZW50TW9udGgtbmV3RGF0ZS5nZXREYXRlKCkp
IHsKLSAgICAgICAgICAvLyB3ZSBzcGlsbCBvdmVyIHRvIG5leHQgbW9udGgKLSAgICAgICAgICBk
YXlzIC09IChkYXlzSW5DdXJyZW50TW9udGgtbmV3RGF0ZS5nZXREYXRlKCkrMSk7Ci0gICAgICAg
ICAgbmV3RGF0ZS5zZXREYXRlKDEpOwotICAgICAgICAgIGlmIChjdXJyZW50TW9udGggPCAxMSkg
ewotICAgICAgICAgICAgbmV3RGF0ZS5zZXRNb250aChjdXJyZW50TW9udGgrMSkKLSAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgbmV3RGF0ZS5zZXRNb250aCgwKTsKLSAgICAgICAgICAg
IG5ld0RhdGUuc2V0RnVsbFllYXIobmV3RGF0ZS5nZXRGdWxsWWVhcigpKzEpOwotICAgICAgICAg
IH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAvLyB3ZSBzdGF5IGluIGN1cnJlbnQgbW9u
dGggCi0gICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKG5ld0RhdGUuZ2V0RGF0ZSgpK2RheXMpOwot
ICAgICAgICAgIHJldHVybiBuZXdEYXRlOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICByZXR1
cm4gbmV3RGF0ZTsKLSAgICB9ZnVuY3Rpb24gX3N0cmZ0aW1lKHMsIG1heHNpemUsIGZvcm1hdCwg
dG0pIHsKLSAgICAgIC8vIHNpemVfdCBzdHJmdGltZShjaGFyICpyZXN0cmljdCBzLCBzaXplX3Qg
bWF4c2l6ZSwgY29uc3QgY2hhciAqcmVzdHJpY3QgZm9ybWF0LCBjb25zdCBzdHJ1Y3QgdG0gKnJl
c3RyaWN0IHRpbWVwdHIpOwotICAgICAgLy8gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxp
bmVwdWJzLzAwOTY5NTM5OS9mdW5jdGlvbnMvc3RyZnRpbWUuaHRtbAotICAgICAgdmFyIGRhdGUg
PSB7Ci0gICAgICAgIHRtX3NlYzogSEVBUDMyWygoKHRtKSsoX19fdG1fc3RydWN0X2xheW91dC50
bV9zZWMpKT4+MildLAotICAgICAgICB0bV9taW46IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVj
dF9sYXlvdXQudG1fbWluKSk+PjIpXSwKLSAgICAgICAgdG1faG91cjogSEVBUDMyWygoKHRtKSso
X19fdG1fc3RydWN0X2xheW91dC50bV9ob3VyKSk+PjIpXSwKLSAgICAgICAgdG1fbWRheTogSEVB
UDMyWygoKHRtKSsoX19fdG1fc3RydWN0X2xheW91dC50bV9tZGF5KSk+PjIpXSwKLSAgICAgICAg
dG1fbW9uOiBIRUFQMzJbKCgodG0pKyhfX190bV9zdHJ1Y3RfbGF5b3V0LnRtX21vbikpPj4yKV0s
Ci0gICAgICAgIHRtX3llYXI6IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVjdF9sYXlvdXQudG1f
eWVhcikpPj4yKV0sCi0gICAgICAgIHRtX3dkYXk6IEhFQVAzMlsoKCh0bSkrKF9fX3RtX3N0cnVj
dF9sYXlvdXQudG1fd2RheSkpPj4yKV0sCi0gICAgICAgIHRtX3lkYXk6IEhFQVAzMlsoKCh0bSkr
KF9fX3RtX3N0cnVjdF9sYXlvdXQudG1feWRheSkpPj4yKV0sCi0gICAgICAgIHRtX2lzZHN0OiBI
RUFQMzJbKCgodG0pKyhfX190bV9zdHJ1Y3RfbGF5b3V0LnRtX2lzZHN0KSk+PjIpXQotICAgICAg
fTsKLSAgICAgIHZhciBwYXR0ZXJuID0gUG9pbnRlcl9zdHJpbmdpZnkoZm9ybWF0KTsKLSAgICAg
IC8vIGV4cGFuZCBmb3JtYXQKLSAgICAgIHZhciBFWFBBTlNJT05fUlVMRVNfMSA9IHsKLSAgICAg
ICAgJyVjJzogJyVhICViICVkICVIOiVNOiVTICVZJywgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSBs
b2NhbGUncyBhcHByb3ByaWF0ZSBkYXRlIGFuZCB0aW1lIHJlcHJlc2VudGF0aW9uIC0gZS5nLiwg
TW9uIEF1ZyAgMyAxNDowMjowMSAyMDEzCi0gICAgICAgICclRCc6ICclbS8lZC8leScsICAgICAg
ICAgICAgICAgICAvLyBFcXVpdmFsZW50IHRvICVtIC8gJWQgLyAleQotICAgICAgICAnJUYnOiAn
JVktJW0tJWQnLCAgICAgICAgICAgICAgICAgLy8gRXF1aXZhbGVudCB0byAlWSAtICVtIC0gJWQK
LSAgICAgICAgJyVoJzogJyViJywgICAgICAgICAgICAgICAgICAgICAgIC8vIEVxdWl2YWxlbnQg
dG8gJWIKLSAgICAgICAgJyVyJzogJyVJOiVNOiVTICVwJywgICAgICAgICAgICAgIC8vIFJlcGxh
Y2VkIGJ5IHRoZSB0aW1lIGluIGEubS4gYW5kIHAubS4gbm90YXRpb24KLSAgICAgICAgJyVSJzog
JyVIOiVNJywgICAgICAgICAgICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB0aW1lIGluIDI0
LWhvdXIgbm90YXRpb24KLSAgICAgICAgJyVUJzogJyVIOiVNOiVTJywgICAgICAgICAgICAgICAg
IC8vIFJlcGxhY2VkIGJ5IHRoZSB0aW1lCi0gICAgICAgICcleCc6ICclbS8lZC8leScsICAgICAg
ICAgICAgICAgICAvLyBSZXBsYWNlZCBieSB0aGUgbG9jYWxlJ3MgYXBwcm9wcmlhdGUgZGF0ZSBy
ZXByZXNlbnRhdGlvbgotICAgICAgICAnJVgnOiAnJUg6JU06JVMnLCAgICAgICAgICAgICAgICAg
Ly8gUmVwbGFjZWQgYnkgdGhlIGxvY2FsZSdzIGFwcHJvcHJpYXRlIGRhdGUgcmVwcmVzZW50YXRp
b24KLSAgICAgIH07Ci0gICAgICBmb3IgKHZhciBydWxlIGluIEVYUEFOU0lPTl9SVUxFU18xKSB7
Ci0gICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UobmV3IFJlZ0V4cChydWxlLCAnZycp
LCBFWFBBTlNJT05fUlVMRVNfMVtydWxlXSk7Ci0gICAgICB9Ci0gICAgICB2YXIgV0VFS0RBWVMg
PSBbJ1N1bmRheScsICdNb25kYXknLCAnVHVlc2RheScsICdXZWRuZXNkYXknLCAnVGh1cnNkYXkn
LCAnRnJpZGF5JywgJ1NhdHVyZGF5J107Ci0gICAgICB2YXIgTU9OVEhTID0gWydKYW51YXJ5Jywg
J0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVn
dXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ107Ci0g
ICAgICB2YXIgbGVhZGluZ1NvbWV0aGluZyA9IGZ1bmN0aW9uKHZhbHVlLCBkaWdpdHMsIGNoYXJh
Y3RlcikgewotICAgICAgICB2YXIgc3RyID0gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IHZh
bHVlLnRvU3RyaW5nKCkgOiAodmFsdWUgfHwgJycpOwotICAgICAgICB3aGlsZSAoc3RyLmxlbmd0
aCA8IGRpZ2l0cykgewotICAgICAgICAgIHN0ciA9IGNoYXJhY3RlclswXStzdHI7Ci0gICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIHN0cjsKLSAgICAgIH07Ci0gICAgICB2YXIgbGVhZGluZ051bGxz
ID0gZnVuY3Rpb24odmFsdWUsIGRpZ2l0cykgewotICAgICAgICByZXR1cm4gbGVhZGluZ1NvbWV0
aGluZyh2YWx1ZSwgZGlnaXRzLCAnMCcpOwotICAgICAgfTsKLSAgICAgIHZhciBjb21wYXJlQnlE
YXkgPSBmdW5jdGlvbihkYXRlMSwgZGF0ZTIpIHsKLSAgICAgICAgdmFyIHNnbiA9IGZ1bmN0aW9u
KHZhbHVlKSB7Ci0gICAgICAgICAgcmV0dXJuIHZhbHVlIDwgMCA/IC0xIDogKHZhbHVlID4gMCA/
IDEgOiAwKTsKLSAgICAgICAgfTsKLSAgICAgICAgdmFyIGNvbXBhcmU7Ci0gICAgICAgIGlmICgo
Y29tcGFyZSA9IHNnbihkYXRlMS5nZXRGdWxsWWVhcigpLWRhdGUyLmdldEZ1bGxZZWFyKCkpKSA9
PT0gMCkgewotICAgICAgICAgIGlmICgoY29tcGFyZSA9IHNnbihkYXRlMS5nZXRNb250aCgpLWRh
dGUyLmdldE1vbnRoKCkpKSA9PT0gMCkgewotICAgICAgICAgICAgY29tcGFyZSA9IHNnbihkYXRl
MS5nZXREYXRlKCktZGF0ZTIuZ2V0RGF0ZSgpKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIGNvbXBhcmU7Ci0gICAgICB9OwotICAgICAgdmFyIGdldEZpcnN0V2Vla1N0
YXJ0RGF0ZSA9IGZ1bmN0aW9uKGphbkZvdXJ0aCkgewotICAgICAgICAgIHN3aXRjaCAoamFuRm91
cnRoLmdldERheSgpKSB7Ci0gICAgICAgICAgICBjYXNlIDA6IC8vIFN1bmRheQotICAgICAgICAg
ICAgICByZXR1cm4gbmV3IERhdGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCktMSwgMTEsIDI5KTsK
LSAgICAgICAgICAgIGNhc2UgMTogLy8gTW9uZGF5Ci0gICAgICAgICAgICAgIHJldHVybiBqYW5G
b3VydGg7Ci0gICAgICAgICAgICBjYXNlIDI6IC8vIFR1ZXNkYXkKLSAgICAgICAgICAgICAgcmV0
dXJuIG5ldyBEYXRlKGphbkZvdXJ0aC5nZXRGdWxsWWVhcigpLCAwLCAzKTsKLSAgICAgICAgICAg
IGNhc2UgMzogLy8gV2VkbmVzZGF5Ci0gICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShqYW5G
b3VydGguZ2V0RnVsbFllYXIoKSwgMCwgMik7Ci0gICAgICAgICAgICBjYXNlIDQ6IC8vIFRodXJz
ZGF5Ci0gICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShqYW5Gb3VydGguZ2V0RnVsbFllYXIo
KSwgMCwgMSk7Ci0gICAgICAgICAgICBjYXNlIDU6IC8vIEZyaWRheQotICAgICAgICAgICAgICBy
ZXR1cm4gbmV3IERhdGUoamFuRm91cnRoLmdldEZ1bGxZZWFyKCktMSwgMTEsIDMxKTsKLSAgICAg
ICAgICAgIGNhc2UgNjogLy8gU2F0dXJkYXkKLSAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRl
KGphbkZvdXJ0aC5nZXRGdWxsWWVhcigpLTEsIDExLCAzMCk7Ci0gICAgICAgICAgfQotICAgICAg
fTsKLSAgICAgIHZhciBnZXRXZWVrQmFzZWRZZWFyID0gZnVuY3Rpb24oZGF0ZSkgewotICAgICAg
ICAgIHZhciB0aGlzRGF0ZSA9IF9fYWRkRGF5cyhuZXcgRGF0ZShkYXRlLnRtX3llYXIrMTkwMCwg
MCwgMSksIGRhdGUudG1feWRheSk7Ci0gICAgICAgICAgdmFyIGphbkZvdXJ0aFRoaXNZZWFyID0g
bmV3IERhdGUodGhpc0RhdGUuZ2V0RnVsbFllYXIoKSwgMCwgNCk7Ci0gICAgICAgICAgdmFyIGph
bkZvdXJ0aE5leHRZZWFyID0gbmV3IERhdGUodGhpc0RhdGUuZ2V0RnVsbFllYXIoKSsxLCAwLCA0
KTsKLSAgICAgICAgICB2YXIgZmlyc3RXZWVrU3RhcnRUaGlzWWVhciA9IGdldEZpcnN0V2Vla1N0
YXJ0RGF0ZShqYW5Gb3VydGhUaGlzWWVhcik7Ci0gICAgICAgICAgdmFyIGZpcnN0V2Vla1N0YXJ0
TmV4dFllYXIgPSBnZXRGaXJzdFdlZWtTdGFydERhdGUoamFuRm91cnRoTmV4dFllYXIpOwotICAg
ICAgICAgIGlmIChjb21wYXJlQnlEYXkoZmlyc3RXZWVrU3RhcnRUaGlzWWVhciwgdGhpc0RhdGUp
IDw9IDApIHsKLSAgICAgICAgICAgIC8vIHRoaXMgZGF0ZSBpcyBhZnRlciB0aGUgc3RhcnQgb2Yg
dGhlIGZpcnN0IHdlZWsgb2YgdGhpcyB5ZWFyCi0gICAgICAgICAgICBpZiAoY29tcGFyZUJ5RGF5
KGZpcnN0V2Vla1N0YXJ0TmV4dFllYXIsIHRoaXNEYXRlKSA8PSAwKSB7Ci0gICAgICAgICAgICAg
IHJldHVybiB0aGlzRGF0ZS5nZXRGdWxsWWVhcigpKzE7Ci0gICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICByZXR1cm4gdGhpc0RhdGUuZ2V0RnVsbFllYXIoKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICB9IGVsc2UgeyAKLSAgICAgICAgICAgIHJldHVybiB0aGlzRGF0ZS5nZXRG
dWxsWWVhcigpLTE7Ci0gICAgICAgICAgfQotICAgICAgfTsKLSAgICAgIHZhciBFWFBBTlNJT05f
UlVMRVNfMiA9IHsKLSAgICAgICAgJyVhJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJl
dHVybiBXRUVLREFZU1tkYXRlLnRtX3dkYXldLnN1YnN0cmluZygwLDMpOwotICAgICAgICB9LAot
ICAgICAgICAnJUEnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIFdFRUtEQVlT
W2RhdGUudG1fd2RheV07Ci0gICAgICAgIH0sCi0gICAgICAgICclYic6IGZ1bmN0aW9uKGRhdGUp
IHsKLSAgICAgICAgICByZXR1cm4gTU9OVEhTW2RhdGUudG1fbW9uXS5zdWJzdHJpbmcoMCwzKTsK
LSAgICAgICAgfSwKLSAgICAgICAgJyVCJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJl
dHVybiBNT05USFNbZGF0ZS50bV9tb25dOwotICAgICAgICB9LAotICAgICAgICAnJUMnOiBmdW5j
dGlvbihkYXRlKSB7Ci0gICAgICAgICAgdmFyIHllYXIgPSBkYXRlLnRtX3llYXIrMTkwMDsKLSAg
ICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKE1hdGguZmxvb3IoeWVhci8xMDApLDIpOwotICAg
ICAgICB9LAotICAgICAgICAnJWQnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJu
IGxlYWRpbmdOdWxscyhkYXRlLnRtX21kYXksIDIpOwotICAgICAgICB9LAotICAgICAgICAnJWUn
OiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdTb21ldGhpbmcoZGF0
ZS50bV9tZGF5LCAyLCAnICcpOwotICAgICAgICB9LAotICAgICAgICAnJWcnOiBmdW5jdGlvbihk
YXRlKSB7Ci0gICAgICAgICAgLy8gJWcsICVHLCBhbmQgJVYgZ2l2ZSB2YWx1ZXMgYWNjb3JkaW5n
IHRvIHRoZSBJU08gODYwMToyMDAwIHN0YW5kYXJkIHdlZWstYmFzZWQgeWVhci4gCi0gICAgICAg
ICAgLy8gSW4gdGhpcyBzeXN0ZW0sIHdlZWtzIGJlZ2luIG9uIGEgTW9uZGF5IGFuZCB3ZWVrIDEg
b2YgdGhlIHllYXIgaXMgdGhlIHdlZWsgdGhhdCBpbmNsdWRlcyAKLSAgICAgICAgICAvLyBKYW51
YXJ5IDR0aCwgd2hpY2ggaXMgYWxzbyB0aGUgd2VlayB0aGF0IGluY2x1ZGVzIHRoZSBmaXJzdCBU
aHVyc2RheSBvZiB0aGUgeWVhciwgYW5kIAotICAgICAgICAgIC8vIGlzIGFsc28gdGhlIGZpcnN0
IHdlZWsgdGhhdCBjb250YWlucyBhdCBsZWFzdCBmb3VyIGRheXMgaW4gdGhlIHllYXIuIAotICAg
ICAgICAgIC8vIElmIHRoZSBmaXJzdCBNb25kYXkgb2YgSmFudWFyeSBpcyB0aGUgMm5kLCAzcmQs
IG9yIDR0aCwgdGhlIHByZWNlZGluZyBkYXlzIGFyZSBwYXJ0IG9mIAotICAgICAgICAgIC8vIHRo
ZSBsYXN0IHdlZWsgb2YgdGhlIHByZWNlZGluZyB5ZWFyOyB0aHVzLCBmb3IgU2F0dXJkYXkgMm5k
IEphbnVhcnkgMTk5OSwgCi0gICAgICAgICAgLy8gJUcgaXMgcmVwbGFjZWQgYnkgMTk5OCBhbmQg
JVYgaXMgcmVwbGFjZWQgYnkgNTMuIElmIERlY2VtYmVyIDI5dGgsIDMwdGgsIAotICAgICAgICAg
IC8vIG9yIDMxc3QgaXMgYSBNb25kYXksIGl0IGFuZCBhbnkgZm9sbG93aW5nIGRheXMgYXJlIHBh
cnQgb2Ygd2VlayAxIG9mIHRoZSBmb2xsb3dpbmcgeWVhci4gCi0gICAgICAgICAgLy8gVGh1cywg
Zm9yIFR1ZXNkYXkgMzB0aCBEZWNlbWJlciAxOTk3LCAlRyBpcyByZXBsYWNlZCBieSAxOTk4IGFu
ZCAlViBpcyByZXBsYWNlZCBieSAwMS4KLSAgICAgICAgICByZXR1cm4gZ2V0V2Vla0Jhc2VkWWVh
cihkYXRlKS50b1N0cmluZygpLnN1YnN0cmluZygyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVH
JzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBnZXRXZWVrQmFzZWRZZWFyKGRh
dGUpOwotICAgICAgICB9LAotICAgICAgICAnJUgnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAg
ICAgcmV0dXJuIGxlYWRpbmdOdWxscyhkYXRlLnRtX2hvdXIsIDIpOwotICAgICAgICB9LAotICAg
ICAgICAnJUknOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxs
cyhkYXRlLnRtX2hvdXIgPCAxMyA/IGRhdGUudG1faG91ciA6IGRhdGUudG1faG91ci0xMiwgMik7
Ci0gICAgICAgIH0sCi0gICAgICAgICclaic6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAgICAgICAv
LyBEYXkgb2YgdGhlIHllYXIgKDAwMS0zNjYpCi0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdOdWxs
cyhkYXRlLnRtX21kYXkrX19hcnJheVN1bShfX2lzTGVhcFllYXIoZGF0ZS50bV95ZWFyKzE5MDAp
ID8gX19NT05USF9EQVlTX0xFQVAgOiBfX01PTlRIX0RBWVNfUkVHVUxBUiwgZGF0ZS50bV9tb24t
MSksIDMpOwotICAgICAgICB9LAotICAgICAgICAnJW0nOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAg
ICAgICAgcmV0dXJuIGxlYWRpbmdOdWxscyhkYXRlLnRtX21vbisxLCAyKTsKLSAgICAgICAgfSwK
LSAgICAgICAgJyVNJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHJldHVybiBsZWFkaW5n
TnVsbHMoZGF0ZS50bV9taW4sIDIpOwotICAgICAgICB9LAotICAgICAgICAnJW4nOiBmdW5jdGlv
bigpIHsKLSAgICAgICAgICByZXR1cm4gJ1xuJzsKLSAgICAgICAgfSwKLSAgICAgICAgJyVwJzog
ZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIGlmIChkYXRlLnRtX2hvdXIgPiAwICYmIGRhdGUu
dG1faG91ciA8IDEzKSB7Ci0gICAgICAgICAgICByZXR1cm4gJ0FNJzsKLSAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgcmV0dXJuICdQTSc7Ci0gICAgICAgICAgfQotICAgICAgICB9LAot
ICAgICAgICAnJVMnOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgcmV0dXJuIGxlYWRpbmdO
dWxscyhkYXRlLnRtX3NlYywgMik7Ci0gICAgICAgIH0sCi0gICAgICAgICcldCc6IGZ1bmN0aW9u
KCkgewotICAgICAgICAgIHJldHVybiAnXHQnOwotICAgICAgICB9LAotICAgICAgICAnJXUnOiBm
dW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgdmFyIGRheSA9IG5ldyBEYXRlKGRhdGUudG1feWVh
cisxOTAwLCBkYXRlLnRtX21vbisxLCBkYXRlLnRtX21kYXksIDAsIDAsIDAsIDApOwotICAgICAg
ICAgIHJldHVybiBkYXkuZ2V0RGF5KCkgfHwgNzsKLSAgICAgICAgfSwKLSAgICAgICAgJyVVJzog
ZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB3ZWVrIG51bWJl
ciBvZiB0aGUgeWVhciBhcyBhIGRlY2ltYWwgbnVtYmVyIFswMCw1M10uIAotICAgICAgICAgIC8v
IFRoZSBmaXJzdCBTdW5kYXkgb2YgSmFudWFyeSBpcyB0aGUgZmlyc3QgZGF5IG9mIHdlZWsgMTsg
Ci0gICAgICAgICAgLy8gZGF5cyBpbiB0aGUgbmV3IHllYXIgYmVmb3JlIHRoaXMgYXJlIGluIHdl
ZWsgMC4gWyB0bV95ZWFyLCB0bV93ZGF5LCB0bV95ZGF5XQotICAgICAgICAgIHZhciBqYW5GaXJz
dCA9IG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAwLCAwLCAxKTsKLSAgICAgICAgICB2YXIgZmly
c3RTdW5kYXkgPSBqYW5GaXJzdC5nZXREYXkoKSA9PT0gMCA/IGphbkZpcnN0IDogX19hZGREYXlz
KGphbkZpcnN0LCA3LWphbkZpcnN0LmdldERheSgpKTsKLSAgICAgICAgICB2YXIgZW5kRGF0ZSA9
IG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAwLCBkYXRlLnRtX21vbiwgZGF0ZS50bV9tZGF5KTsK
LSAgICAgICAgICAvLyBpcyB0YXJnZXQgZGF0ZSBhZnRlciB0aGUgZmlyc3QgU3VuZGF5PwotICAg
ICAgICAgIGlmIChjb21wYXJlQnlEYXkoZmlyc3RTdW5kYXksIGVuZERhdGUpIDwgMCkgewotICAg
ICAgICAgICAgLy8gY2FsY3VsYXRlIGRpZmZlcmVuY2UgaW4gZGF5cyBiZXR3ZWVuIGZpcnN0IFN1
bmRheSBhbmQgZW5kRGF0ZQotICAgICAgICAgICAgdmFyIGZlYnJ1YXJ5Rmlyc3RVbnRpbEVuZE1v
bnRoID0gX19hcnJheVN1bShfX2lzTGVhcFllYXIoZW5kRGF0ZS5nZXRGdWxsWWVhcigpKSA/IF9f
TU9OVEhfREFZU19MRUFQIDogX19NT05USF9EQVlTX1JFR1VMQVIsIGVuZERhdGUuZ2V0TW9udGgo
KS0xKS0zMTsKLSAgICAgICAgICAgIHZhciBmaXJzdFN1bmRheVVudGlsRW5kSmFudWFyeSA9IDMx
LWZpcnN0U3VuZGF5LmdldERhdGUoKTsKLSAgICAgICAgICAgIHZhciBkYXlzID0gZmlyc3RTdW5k
YXlVbnRpbEVuZEphbnVhcnkrZmVicnVhcnlGaXJzdFVudGlsRW5kTW9udGgrZW5kRGF0ZS5nZXRE
YXRlKCk7Ci0gICAgICAgICAgICByZXR1cm4gbGVhZGluZ051bGxzKE1hdGguY2VpbChkYXlzLzcp
LCAyKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIGNvbXBhcmVCeURheShmaXJzdFN1
bmRheSwgamFuRmlyc3QpID09PSAwID8gJzAxJzogJzAwJzsKLSAgICAgICAgfSwKLSAgICAgICAg
JyVWJzogZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB3ZWVr
IG51bWJlciBvZiB0aGUgeWVhciAoTW9uZGF5IGFzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsp
IAotICAgICAgICAgIC8vIGFzIGEgZGVjaW1hbCBudW1iZXIgWzAxLDUzXS4gSWYgdGhlIHdlZWsg
Y29udGFpbmluZyAxIEphbnVhcnkgaGFzIGZvdXIgCi0gICAgICAgICAgLy8gb3IgbW9yZSBkYXlz
IGluIHRoZSBuZXcgeWVhciwgdGhlbiBpdCBpcyBjb25zaWRlcmVkIHdlZWsgMS4gCi0gICAgICAg
ICAgLy8gT3RoZXJ3aXNlLCBpdCBpcyB0aGUgbGFzdCB3ZWVrIG9mIHRoZSBwcmV2aW91cyB5ZWFy
LCBhbmQgdGhlIG5leHQgd2VlayBpcyB3ZWVrIDEuIAotICAgICAgICAgIC8vIEJvdGggSmFudWFy
eSA0dGggYW5kIHRoZSBmaXJzdCBUaHVyc2RheSBvZiBKYW51YXJ5IGFyZSBhbHdheXMgaW4gd2Vl
ayAxLiBbIHRtX3llYXIsIHRtX3dkYXksIHRtX3lkYXldCi0gICAgICAgICAgdmFyIGphbkZvdXJ0
aFRoaXNZZWFyID0gbmV3IERhdGUoZGF0ZS50bV95ZWFyKzE5MDAsIDAsIDQpOwotICAgICAgICAg
IHZhciBqYW5Gb3VydGhOZXh0WWVhciA9IG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAxLCAwLCA0
KTsKLSAgICAgICAgICB2YXIgZmlyc3RXZWVrU3RhcnRUaGlzWWVhciA9IGdldEZpcnN0V2Vla1N0
YXJ0RGF0ZShqYW5Gb3VydGhUaGlzWWVhcik7Ci0gICAgICAgICAgdmFyIGZpcnN0V2Vla1N0YXJ0
TmV4dFllYXIgPSBnZXRGaXJzdFdlZWtTdGFydERhdGUoamFuRm91cnRoTmV4dFllYXIpOwotICAg
ICAgICAgIHZhciBlbmREYXRlID0gX19hZGREYXlzKG5ldyBEYXRlKGRhdGUudG1feWVhcisxOTAw
LCAwLCAxKSwgZGF0ZS50bV95ZGF5KTsKLSAgICAgICAgICBpZiAoY29tcGFyZUJ5RGF5KGVuZERh
dGUsIGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIpIDwgMCkgewotICAgICAgICAgICAgLy8gaWYgZ2l2
ZW4gZGF0ZSBpcyBiZWZvcmUgdGhpcyB5ZWFycyBmaXJzdCB3ZWVrLCB0aGVuIGl0IGJlbG9uZ3Mg
dG8gdGhlIDUzcmQgd2VlayBvZiBsYXN0IHllYXIKLSAgICAgICAgICAgIHJldHVybiAnNTMnOwot
ICAgICAgICAgIH0gCi0gICAgICAgICAgaWYgKGNvbXBhcmVCeURheShmaXJzdFdlZWtTdGFydE5l
eHRZZWFyLCBlbmREYXRlKSA8PSAwKSB7Ci0gICAgICAgICAgICAvLyBpZiBnaXZlbiBkYXRlIGlz
IGFmdGVyIG5leHQgeWVhcnMgZmlyc3Qgd2VlaywgdGhlbiBpdCBiZWxvbmdzIHRvIHRoZSAwMXRo
IHdlZWsgb2YgbmV4dCB5ZWFyCi0gICAgICAgICAgICByZXR1cm4gJzAxJzsKLSAgICAgICAgICB9
Ci0gICAgICAgICAgLy8gZ2l2ZW4gZGF0ZSBpcyBpbiBiZXR3ZWVuIENXIDAxLi41MyBvZiB0aGlz
IGNhbGVuZGFyIHllYXIKLSAgICAgICAgICB2YXIgZGF5c0RpZmZlcmVuY2U7Ci0gICAgICAgICAg
aWYgKGZpcnN0V2Vla1N0YXJ0VGhpc1llYXIuZ2V0RnVsbFllYXIoKSA8IGRhdGUudG1feWVhcisx
OTAwKSB7Ci0gICAgICAgICAgICAvLyBmaXJzdCBDVyBvZiB0aGlzIHllYXIgc3RhcnRzIGxhc3Qg
eWVhcgotICAgICAgICAgICAgZGF5c0RpZmZlcmVuY2UgPSBkYXRlLnRtX3lkYXkrMzItZmlyc3RX
ZWVrU3RhcnRUaGlzWWVhci5nZXREYXRlKCkKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgLy8gZmlyc3QgQ1cgb2YgdGhpcyB5ZWFyIHN0YXJ0cyB0aGlzIHllYXIKLSAgICAgICAgICAg
IGRheXNEaWZmZXJlbmNlID0gZGF0ZS50bV95ZGF5KzEtZmlyc3RXZWVrU3RhcnRUaGlzWWVhci5n
ZXREYXRlKCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoTWF0
aC5jZWlsKGRheXNEaWZmZXJlbmNlLzcpLCAyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyV3Jzog
ZnVuY3Rpb24oZGF0ZSkgewotICAgICAgICAgIHZhciBkYXkgPSBuZXcgRGF0ZShkYXRlLnRtX3ll
YXIrMTkwMCwgZGF0ZS50bV9tb24rMSwgZGF0ZS50bV9tZGF5LCAwLCAwLCAwLCAwKTsKLSAgICAg
ICAgICByZXR1cm4gZGF5LmdldERheSgpOwotICAgICAgICB9LAotICAgICAgICAnJVcnOiBmdW5j
dGlvbihkYXRlKSB7Ci0gICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIHdlZWsgbnVtYmVyIG9m
IHRoZSB5ZWFyIGFzIGEgZGVjaW1hbCBudW1iZXIgWzAwLDUzXS4gCi0gICAgICAgICAgLy8gVGhl
IGZpcnN0IE1vbmRheSBvZiBKYW51YXJ5IGlzIHRoZSBmaXJzdCBkYXkgb2Ygd2VlayAxOyAKLSAg
ICAgICAgICAvLyBkYXlzIGluIHRoZSBuZXcgeWVhciBiZWZvcmUgdGhpcyBhcmUgaW4gd2VlayAw
LiBbIHRtX3llYXIsIHRtX3dkYXksIHRtX3lkYXldCi0gICAgICAgICAgdmFyIGphbkZpcnN0ID0g
bmV3IERhdGUoZGF0ZS50bV95ZWFyLCAwLCAxKTsKLSAgICAgICAgICB2YXIgZmlyc3RNb25kYXkg
PSBqYW5GaXJzdC5nZXREYXkoKSA9PT0gMSA/IGphbkZpcnN0IDogX19hZGREYXlzKGphbkZpcnN0
LCBqYW5GaXJzdC5nZXREYXkoKSA9PT0gMCA/IDEgOiA3LWphbkZpcnN0LmdldERheSgpKzEpOwot
ICAgICAgICAgIHZhciBlbmREYXRlID0gbmV3IERhdGUoZGF0ZS50bV95ZWFyKzE5MDAsIGRhdGUu
dG1fbW9uLCBkYXRlLnRtX21kYXkpOwotICAgICAgICAgIC8vIGlzIHRhcmdldCBkYXRlIGFmdGVy
IHRoZSBmaXJzdCBNb25kYXk/Ci0gICAgICAgICAgaWYgKGNvbXBhcmVCeURheShmaXJzdE1vbmRh
eSwgZW5kRGF0ZSkgPCAwKSB7Ci0gICAgICAgICAgICB2YXIgZmVicnVhcnlGaXJzdFVudGlsRW5k
TW9udGggPSBfX2FycmF5U3VtKF9faXNMZWFwWWVhcihlbmREYXRlLmdldEZ1bGxZZWFyKCkpID8g
X19NT05USF9EQVlTX0xFQVAgOiBfX01PTlRIX0RBWVNfUkVHVUxBUiwgZW5kRGF0ZS5nZXRNb250
aCgpLTEpLTMxOwotICAgICAgICAgICAgdmFyIGZpcnN0TW9uZGF5VW50aWxFbmRKYW51YXJ5ID0g
MzEtZmlyc3RNb25kYXkuZ2V0RGF0ZSgpOwotICAgICAgICAgICAgdmFyIGRheXMgPSBmaXJzdE1v
bmRheVVudGlsRW5kSmFudWFyeStmZWJydWFyeUZpcnN0VW50aWxFbmRNb250aCtlbmREYXRlLmdl
dERhdGUoKTsKLSAgICAgICAgICAgIHJldHVybiBsZWFkaW5nTnVsbHMoTWF0aC5jZWlsKGRheXMv
NyksIDIpOwotICAgICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gY29tcGFyZUJ5RGF5KGZpcnN0
TW9uZGF5LCBqYW5GaXJzdCkgPT09IDAgPyAnMDEnOiAnMDAnOwotICAgICAgICB9LAotICAgICAg
ICAnJXknOiBmdW5jdGlvbihkYXRlKSB7Ci0gICAgICAgICAgLy8gUmVwbGFjZWQgYnkgdGhlIGxh
c3QgdHdvIGRpZ2l0cyBvZiB0aGUgeWVhciBhcyBhIGRlY2ltYWwgbnVtYmVyIFswMCw5OV0uIFsg
dG1feWVhcl0KLSAgICAgICAgICByZXR1cm4gKGRhdGUudG1feWVhcisxOTAwKS50b1N0cmluZygp
LnN1YnN0cmluZygyKTsKLSAgICAgICAgfSwKLSAgICAgICAgJyVZJzogZnVuY3Rpb24oZGF0ZSkg
ewotICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSB5ZWFyIGFzIGEgZGVjaW1hbCBudW1iZXIg
KGZvciBleGFtcGxlLCAxOTk3KS4gWyB0bV95ZWFyXQotICAgICAgICAgIHJldHVybiBkYXRlLnRt
X3llYXIrMTkwMDsKLSAgICAgICAgfSwKLSAgICAgICAgJyV6JzogZnVuY3Rpb24oZGF0ZSkgewot
ICAgICAgICAgIC8vIFJlcGxhY2VkIGJ5IHRoZSBvZmZzZXQgZnJvbSBVVEMgaW4gdGhlIElTTyA4
NjAxOjIwMDAgc3RhbmRhcmQgZm9ybWF0ICggK2hobW0gb3IgLWhobW0gKSwKLSAgICAgICAgICAv
LyBvciBieSBubyBjaGFyYWN0ZXJzIGlmIG5vIHRpbWV6b25lIGlzIGRldGVybWluYWJsZS4gCi0g
ICAgICAgICAgLy8gRm9yIGV4YW1wbGUsICItMDQzMCIgbWVhbnMgNCBob3VycyAzMCBtaW51dGVz
IGJlaGluZCBVVEMgKHdlc3Qgb2YgR3JlZW53aWNoKS4gCi0gICAgICAgICAgLy8gSWYgdG1faXNk
c3QgaXMgemVybywgdGhlIHN0YW5kYXJkIHRpbWUgb2Zmc2V0IGlzIHVzZWQuIAotICAgICAgICAg
IC8vIElmIHRtX2lzZHN0IGlzIGdyZWF0ZXIgdGhhbiB6ZXJvLCB0aGUgZGF5bGlnaHQgc2F2aW5n
cyB0aW1lIG9mZnNldCBpcyB1c2VkLiAKLSAgICAgICAgICAvLyBJZiB0bV9pc2RzdCBpcyBuZWdh
dGl2ZSwgbm8gY2hhcmFjdGVycyBhcmUgcmV0dXJuZWQuIAotICAgICAgICAgIC8vIEZJWE1FOiB3
ZSBjYW5ub3QgZGV0ZXJtaW5lIHRpbWUgem9uZSAob3IgY2FuIHdlPykKLSAgICAgICAgICByZXR1
cm4gJyc7Ci0gICAgICAgIH0sCi0gICAgICAgICclWic6IGZ1bmN0aW9uKGRhdGUpIHsKLSAgICAg
ICAgICAvLyBSZXBsYWNlZCBieSB0aGUgdGltZXpvbmUgbmFtZSBvciBhYmJyZXZpYXRpb24sIG9y
IGJ5IG5vIGJ5dGVzIGlmIG5vIHRpbWV6b25lIGluZm9ybWF0aW9uIGV4aXN0cy4gWyB0bV9pc2Rz
dF0KLSAgICAgICAgICAvLyBGSVhNRTogd2UgY2Fubm90IGRldGVybWluZSB0aW1lIHpvbmUgKG9y
IGNhbiB3ZT8pCi0gICAgICAgICAgcmV0dXJuICcnOwotICAgICAgICB9LAotICAgICAgICAnJSUn
OiBmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4gJyUnOwotICAgICAgICB9Ci0gICAgICB9
OwotICAgICAgZm9yICh2YXIgcnVsZSBpbiBFWFBBTlNJT05fUlVMRVNfMikgewotICAgICAgICBp
ZiAocGF0dGVybi5pbmRleE9mKHJ1bGUpID49IDApIHsKLSAgICAgICAgICBwYXR0ZXJuID0gcGF0
dGVybi5yZXBsYWNlKG5ldyBSZWdFeHAocnVsZSwgJ2cnKSwgRVhQQU5TSU9OX1JVTEVTXzJbcnVs
ZV0oZGF0ZSkpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICB2YXIgYnl0ZXMgPSBpbnRBcnJh
eUZyb21TdHJpbmcocGF0dGVybiwgZmFsc2UpOwotICAgICAgaWYgKGJ5dGVzLmxlbmd0aCA+IG1h
eHNpemUpIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgICB9IAotICAgICAgd3JpdGVBcnJheVRv
TWVtb3J5KGJ5dGVzLCBzKTsKLSAgICAgIHJldHVybiBieXRlcy5sZW5ndGgtMTsKLSAgICB9dmFy
IF9zdHJmdGltZV9sPV9zdHJmdGltZTsKLSAgZnVuY3Rpb24gX2lzc3BhY2UoY2hyKSB7Ci0gICAg
ICByZXR1cm4gKGNociA9PSAzMikgfHwgKGNociA+PSA5ICYmIGNociA8PSAxMyk7Ci0gICAgfQot
ICBmdW5jdGlvbiBfX3BhcnNlSW50NjQoc3RyLCBlbmRwdHIsIGJhc2UsIG1pbiwgbWF4LCB1bnNp
Z24pIHsKLSAgICAgIHZhciBpc05lZ2F0aXZlID0gZmFsc2U7Ci0gICAgICAvLyBTa2lwIHNwYWNl
LgotICAgICAgd2hpbGUgKF9pc3NwYWNlKEhFQVA4WyhzdHIpXSkpIHN0cisrOwotICAgICAgLy8g
Q2hlY2sgZm9yIGEgcGx1cy9taW51cyBzaWduLgotICAgICAgaWYgKEhFQVA4WyhzdHIpXSA9PSA0
NSkgewotICAgICAgICBzdHIrKzsKLSAgICAgICAgaXNOZWdhdGl2ZSA9IHRydWU7Ci0gICAgICB9
IGVsc2UgaWYgKEhFQVA4WyhzdHIpXSA9PSA0MykgewotICAgICAgICBzdHIrKzsKLSAgICAgIH0K
LSAgICAgIC8vIEZpbmQgYmFzZS4KLSAgICAgIHZhciBvayA9IGZhbHNlOwotICAgICAgdmFyIGZp
bmFsQmFzZSA9IGJhc2U7Ci0gICAgICBpZiAoIWZpbmFsQmFzZSkgewotICAgICAgICBpZiAoSEVB
UDhbKHN0cildID09IDQ4KSB7Ci0gICAgICAgICAgaWYgKEhFQVA4Wygoc3RyKzEpfDApXSA9PSAx
MjAgfHwKLSAgICAgICAgICAgICAgSEVBUDhbKChzdHIrMSl8MCldID09IDg4KSB7Ci0gICAgICAg
ICAgICBmaW5hbEJhc2UgPSAxNjsKLSAgICAgICAgICAgIHN0ciArPSAyOwotICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBmaW5hbEJhc2UgPSA4OwotICAgICAgICAgICAgb2sgPSB0cnVl
OyAvLyB3ZSBzYXcgYW4gaW5pdGlhbCB6ZXJvLCBwZXJoYXBzIHRoZSBlbnRpcmUgdGhpbmcgaXMg
anVzdCAiMCIKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSBpZiAoZmluYWxC
YXNlPT0xNikgewotICAgICAgICBpZiAoSEVBUDhbKHN0cildID09IDQ4KSB7Ci0gICAgICAgICAg
aWYgKEhFQVA4Wygoc3RyKzEpfDApXSA9PSAxMjAgfHwKLSAgICAgICAgICAgICAgSEVBUDhbKChz
dHIrMSl8MCldID09IDg4KSB7Ci0gICAgICAgICAgICBzdHIgKz0gMjsKLSAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmICghZmluYWxCYXNlKSBmaW5hbEJhc2UgPSAxMDsK
LSAgICAgIHN0YXJ0ID0gc3RyOwotICAgICAgLy8gR2V0IGRpZ2l0cy4KLSAgICAgIHZhciBjaHI7
Ci0gICAgICB3aGlsZSAoKGNociA9IEhFQVA4WyhzdHIpXSkgIT0gMCkgewotICAgICAgICB2YXIg
ZGlnaXQgPSBwYXJzZUludChTdHJpbmcuZnJvbUNoYXJDb2RlKGNociksIGZpbmFsQmFzZSk7Ci0g
ICAgICAgIGlmIChpc05hTihkaWdpdCkpIHsKLSAgICAgICAgICBicmVhazsKLSAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICBzdHIrKzsKLSAgICAgICAgICBvayA9IHRydWU7Ci0gICAgICAgIH0K
LSAgICAgIH0KLSAgICAgIGlmICghb2spIHsKLSAgICAgICAgX19fc2V0RXJyTm8oRVJSTk9fQ09E
RVMuRUlOVkFMKTsKLSAgICAgICAgcmV0dXJuICgoYXNtWyJzZXRUZW1wUmV0MCJdKDApLDApfDAp
OwotICAgICAgfQotICAgICAgLy8gU2V0IGVuZCBwb2ludGVyLgotICAgICAgaWYgKGVuZHB0cikg
ewotICAgICAgICBIRUFQMzJbKChlbmRwdHIpPj4yKV09c3RyCi0gICAgICB9Ci0gICAgICB0cnkg
ewotICAgICAgICB2YXIgbnVtYmVyU3RyaW5nID0gaXNOZWdhdGl2ZSA/ICctJytQb2ludGVyX3N0
cmluZ2lmeShzdGFydCwgc3RyIC0gc3RhcnQpIDogUG9pbnRlcl9zdHJpbmdpZnkoc3RhcnQsIHN0
ciAtIHN0YXJ0KTsKLSAgICAgICAgaTY0TWF0aC5mcm9tU3RyaW5nKG51bWJlclN0cmluZywgZmlu
YWxCYXNlLCBtaW4sIG1heCwgdW5zaWduKTsKLSAgICAgIH0gY2F0Y2goZSkgewotICAgICAgICBf
X19zZXRFcnJObyhFUlJOT19DT0RFUy5FUkFOR0UpOyAvLyBub3QgcXVpdGUgY29ycmVjdAotICAg
ICAgfQotICAgICAgcmV0dXJuICgoYXNtWyJzZXRUZW1wUmV0MCJdKCgoSEVBUDMyWygoKHRlbXBE
b3VibGVQdHIpKyg0KSk+PjIpXSl8MCkpLCgoSEVBUDMyWygodGVtcERvdWJsZVB0cik+PjIpXSl8
MCkpfDApOwotICAgIH1mdW5jdGlvbiBfc3RydG91bGwoc3RyLCBlbmRwdHIsIGJhc2UpIHsKLSAg
ICAgIHJldHVybiBfX3BhcnNlSW50NjQoc3RyLCBlbmRwdHIsIGJhc2UsIDAsICcxODQ0Njc0NDA3
MzcwOTU1MTYxNScsIHRydWUpOyAgLy8gVUxPTkdfTUFYLgotICAgIH12YXIgX3N0cnRvdWxsX2w9
X3N0cnRvdWxsOwotICBmdW5jdGlvbiBfc3RydG9sbChzdHIsIGVuZHB0ciwgYmFzZSkgewotICAg
ICAgcmV0dXJuIF9fcGFyc2VJbnQ2NChzdHIsIGVuZHB0ciwgYmFzZSwgJy05MjIzMzcyMDM2ODU0
Nzc1ODA4JywgJzkyMjMzNzIwMzY4NTQ3NzU4MDcnKTsgIC8vIExMT05HX01JTiwgTExPTkdfTUFY
LgotICAgIH12YXIgX3N0cnRvbGxfbD1fc3RydG9sbDsKLSAgZnVuY3Rpb24gX3VzZWxvY2FsZShs
b2NhbGUpIHsKLSAgICAgIHJldHVybiAwOwotICAgIH0KLSAgZnVuY3Rpb24gX19fbG9jYWxlX21i
X2N1cl9tYXgoKSB7IHRocm93ICdfX2xvY2FsZV9tYl9jdXJfbWF4IG5vdCBpbXBsZW1lbnRlZCcg
fQotICB2YXIgX2xsdm1fdmFfc3RhcnQ9dW5kZWZpbmVkOwotICBmdW5jdGlvbiBfc3ByaW50Zihz
LCBmb3JtYXQsIHZhcmFyZ3MpIHsKLSAgICAgIC8vIGludCBzcHJpbnRmKGNoYXIgKnJlc3RyaWN0
IHMsIGNvbnN0IGNoYXIgKnJlc3RyaWN0IGZvcm1hdCwgLi4uKTsKLSAgICAgIC8vIGh0dHA6Ly9w
dWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3ByaW50Zi5o
dG1sCi0gICAgICByZXR1cm4gX3NucHJpbnRmKHMsIHVuZGVmaW5lZCwgZm9ybWF0LCB2YXJhcmdz
KTsKLSAgICB9ZnVuY3Rpb24gX2FzcHJpbnRmKHMsIGZvcm1hdCwgdmFyYXJncykgewotICAgICAg
cmV0dXJuIF9zcHJpbnRmKC1zLCBmb3JtYXQsIHZhcmFyZ3MpOwotICAgIH1mdW5jdGlvbiBfdmFz
cHJpbnRmKHMsIGZvcm1hdCwgdmFfYXJnKSB7Ci0gICAgICByZXR1cm4gX2FzcHJpbnRmKHMsIGZv
cm1hdCwgSEVBUDMyWygodmFfYXJnKT4+MildKTsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9sbHZtX3Zh
X2VuZCgpIHt9Ci0gIGZ1bmN0aW9uIF92c25wcmludGYocywgbiwgZm9ybWF0LCB2YV9hcmcpIHsK
LSAgICAgIHJldHVybiBfc25wcmludGYocywgbiwgZm9ybWF0LCBIRUFQMzJbKCh2YV9hcmcpPj4y
KV0pOwotICAgIH0KLSAgZnVuY3Rpb24gX3Zzc2NhbmYocywgZm9ybWF0LCB2YV9hcmcpIHsKLSAg
ICAgIHJldHVybiBfc3NjYW5mKHMsIGZvcm1hdCwgSEVBUDMyWygodmFfYXJnKT4+MildKTsKLSAg
ICB9Ci0gIGZ1bmN0aW9uIF9zYnJrKGJ5dGVzKSB7Ci0gICAgICAvLyBJbXBsZW1lbnQgYSBMaW51
eC1saWtlICdtZW1vcnkgYXJlYScgZm9yIG91ciAncHJvY2VzcycuCi0gICAgICAvLyBDaGFuZ2Vz
IHRoZSBzaXplIG9mIHRoZSBtZW1vcnkgYXJlYSBieSB8Ynl0ZXN8OyByZXR1cm5zIHRoZQotICAg
ICAgLy8gYWRkcmVzcyBvZiB0aGUgcHJldmlvdXMgdG9wICgnYnJlYWsnKSBvZiB0aGUgbWVtb3J5
IGFyZWEKLSAgICAgIC8vIFdlIGNvbnRyb2wgdGhlICJkeW5hbWljIiBtZW1vcnkgLSBEWU5BTUlD
X0JBU0UgdG8gRFlOQU1JQ1RPUAotICAgICAgdmFyIHNlbGYgPSBfc2JyazsKLSAgICAgIGlmICgh
c2VsZi5jYWxsZWQpIHsKLSAgICAgICAgRFlOQU1JQ1RPUCA9IGFsaWduTWVtb3J5UGFnZShEWU5B
TUlDVE9QKTsgLy8gbWFrZSBzdXJlIHdlIHN0YXJ0IG91dCBhbGlnbmVkCi0gICAgICAgIHNlbGYu
Y2FsbGVkID0gdHJ1ZTsKLSAgICAgICAgYXNzZXJ0KFJ1bnRpbWUuZHluYW1pY0FsbG9jKTsKLSAg
ICAgICAgc2VsZi5hbGxvYyA9IFJ1bnRpbWUuZHluYW1pY0FsbG9jOwotICAgICAgICBSdW50aW1l
LmR5bmFtaWNBbGxvYyA9IGZ1bmN0aW9uKCkgeyBhYm9ydCgnY2Fubm90IGR5bmFtaWNhbGx5IGFs
bG9jYXRlLCBzYnJrIG5vdyBoYXMgY29udHJvbCcpIH07Ci0gICAgICB9Ci0gICAgICB2YXIgcmV0
ID0gRFlOQU1JQ1RPUDsKLSAgICAgIGlmIChieXRlcyAhPSAwKSBzZWxmLmFsbG9jKGJ5dGVzKTsK
LSAgICAgIHJldHVybiByZXQ7ICAvLyBQcmV2aW91cyBicmVhayBsb2NhdGlvbi4KLSAgICB9Ci0g
IGZ1bmN0aW9uIF90aW1lKHB0cikgewotICAgICAgdmFyIHJldCA9IE1hdGguZmxvb3IoRGF0ZS5u
b3coKS8xMDAwKTsKLSAgICAgIGlmIChwdHIpIHsKLSAgICAgICAgSEVBUDMyWygocHRyKT4+Mild
PXJldAotICAgICAgfQotICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0gIGZ1bmN0aW9uIF9fX2N4
YV9jYWxsX3VuZXhwZWN0ZWQoZXhjZXB0aW9uKSB7Ci0gICAgICBNb2R1bGUucHJpbnRFcnIoJ1Vu
ZXhwZWN0ZWQgZXhjZXB0aW9uIHRocm93biwgdGhpcyBpcyBub3QgcHJvcGVybHkgc3VwcG9ydGVk
IC0gYWJvcnRpbmcnKTsKLSAgICAgIEFCT1JUID0gdHJ1ZTsKLSAgICAgIHRocm93IGV4Y2VwdGlv
bjsKLSAgICB9Ci0gIHZhciBCcm93c2VyPXttYWluTG9vcDp7c2NoZWR1bGVyOm51bGwsc2hvdWxk
UGF1c2U6ZmFsc2UscGF1c2VkOmZhbHNlLHF1ZXVlOltdLHBhdXNlOmZ1bmN0aW9uICgpIHsKLSAg
ICAgICAgICBCcm93c2VyLm1haW5Mb29wLnNob3VsZFBhdXNlID0gdHJ1ZTsKLSAgICAgICAgfSxy
ZXN1bWU6ZnVuY3Rpb24gKCkgewotICAgICAgICAgIGlmIChCcm93c2VyLm1haW5Mb29wLnBhdXNl
ZCkgewotICAgICAgICAgICAgQnJvd3Nlci5tYWluTG9vcC5wYXVzZWQgPSBmYWxzZTsKLSAgICAg
ICAgICAgIEJyb3dzZXIubWFpbkxvb3Auc2NoZWR1bGVyKCk7Ci0gICAgICAgICAgfQotICAgICAg
ICAgIEJyb3dzZXIubWFpbkxvb3Auc2hvdWxkUGF1c2UgPSBmYWxzZTsKLSAgICAgICAgfSx1cGRh
dGVTdGF0dXM6ZnVuY3Rpb24gKCkgewotICAgICAgICAgIGlmIChNb2R1bGVbJ3NldFN0YXR1cydd
KSB7Ci0gICAgICAgICAgICB2YXIgbWVzc2FnZSA9IE1vZHVsZVsnc3RhdHVzTWVzc2FnZSddIHx8
ICdQbGVhc2Ugd2FpdC4uLic7Ci0gICAgICAgICAgICB2YXIgcmVtYWluaW5nID0gQnJvd3Nlci5t
YWluTG9vcC5yZW1haW5pbmdCbG9ja2VyczsKLSAgICAgICAgICAgIHZhciBleHBlY3RlZCA9IEJy
b3dzZXIubWFpbkxvb3AuZXhwZWN0ZWRCbG9ja2VyczsKLSAgICAgICAgICAgIGlmIChyZW1haW5p
bmcpIHsKLSAgICAgICAgICAgICAgaWYgKHJlbWFpbmluZyA8IGV4cGVjdGVkKSB7Ci0gICAgICAg
ICAgICAgICAgTW9kdWxlWydzZXRTdGF0dXMnXShtZXNzYWdlICsgJyAoJyArIChleHBlY3RlZCAt
IHJlbWFpbmluZykgKyAnLycgKyBleHBlY3RlZCArICcpJyk7Ci0gICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgTW9kdWxlWydzZXRTdGF0dXMnXShtZXNzYWdlKTsKLSAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgTW9kdWxlWydz
ZXRTdGF0dXMnXSgnJyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICB9fSxp
c0Z1bGxTY3JlZW46ZmFsc2UscG9pbnRlckxvY2s6ZmFsc2UsbW9kdWxlQ29udGV4dENyZWF0ZWRD
YWxsYmFja3M6W10sd29ya2VyczpbXSxpbml0OmZ1bmN0aW9uICgpIHsKLSAgICAgICAgaWYgKCFN
b2R1bGVbInByZWxvYWRQbHVnaW5zIl0pIE1vZHVsZVsicHJlbG9hZFBsdWdpbnMiXSA9IFtdOyAv
LyBuZWVkcyB0byBleGlzdCBldmVuIGluIHdvcmtlcnMKLSAgICAgICAgaWYgKEJyb3dzZXIuaW5p
dHRlZCB8fCBFTlZJUk9OTUVOVF9JU19XT1JLRVIpIHJldHVybjsKLSAgICAgICAgQnJvd3Nlci5p
bml0dGVkID0gdHJ1ZTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICBuZXcgQmxvYigpOwotICAg
ICAgICAgIEJyb3dzZXIuaGFzQmxvYkNvbnN0cnVjdG9yID0gdHJ1ZTsKLSAgICAgICAgfSBjYXRj
aChlKSB7Ci0gICAgICAgICAgQnJvd3Nlci5oYXNCbG9iQ29uc3RydWN0b3IgPSBmYWxzZTsKLSAg
ICAgICAgICBjb25zb2xlLmxvZygid2FybmluZzogbm8gYmxvYiBjb25zdHJ1Y3RvciwgY2Fubm90
IGNyZWF0ZSBibG9icyB3aXRoIG1pbWV0eXBlcyIpOwotICAgICAgICB9Ci0gICAgICAgIEJyb3dz
ZXIuQmxvYkJ1aWxkZXIgPSB0eXBlb2YgTW96QmxvYkJ1aWxkZXIgIT0gInVuZGVmaW5lZCIgPyBN
b3pCbG9iQnVpbGRlciA6ICh0eXBlb2YgV2ViS2l0QmxvYkJ1aWxkZXIgIT0gInVuZGVmaW5lZCIg
PyBXZWJLaXRCbG9iQnVpbGRlciA6ICghQnJvd3Nlci5oYXNCbG9iQ29uc3RydWN0b3IgPyBjb25z
b2xlLmxvZygid2FybmluZzogbm8gQmxvYkJ1aWxkZXIiKSA6IG51bGwpKTsKLSAgICAgICAgQnJv
d3Nlci5VUkxPYmplY3QgPSB0eXBlb2Ygd2luZG93ICE9ICJ1bmRlZmluZWQiID8gKHdpbmRvdy5V
UkwgPyB3aW5kb3cuVVJMIDogd2luZG93LndlYmtpdFVSTCkgOiB1bmRlZmluZWQ7Ci0gICAgICAg
IGlmICghTW9kdWxlLm5vSW1hZ2VEZWNvZGluZyAmJiB0eXBlb2YgQnJvd3Nlci5VUkxPYmplY3Qg
PT09ICd1bmRlZmluZWQnKSB7Ci0gICAgICAgICAgY29uc29sZS5sb2coIndhcm5pbmc6IEJyb3dz
ZXIgZG9lcyBub3Qgc3VwcG9ydCBjcmVhdGluZyBvYmplY3QgVVJMcy4gQnVpbHQtaW4gYnJvd3Nl
ciBpbWFnZSBkZWNvZGluZyB3aWxsIG5vdCBiZSBhdmFpbGFibGUuIik7Ci0gICAgICAgICAgTW9k
dWxlLm5vSW1hZ2VEZWNvZGluZyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gU3VwcG9y
dCBmb3IgcGx1Z2lucyB0aGF0IGNhbiBwcm9jZXNzIHByZWxvYWRlZCBmaWxlcy4gWW91IGNhbiBh
ZGQgbW9yZSBvZiB0aGVzZSB0bwotICAgICAgICAvLyB5b3VyIGFwcCBieSBjcmVhdGluZyBhbmQg
YXBwZW5kaW5nIHRvIE1vZHVsZS5wcmVsb2FkUGx1Z2lucy4KLSAgICAgICAgLy8KLSAgICAgICAg
Ly8gRWFjaCBwbHVnaW4gaXMgYXNrZWQgaWYgaXQgY2FuIGhhbmRsZSBhIGZpbGUgYmFzZWQgb24g
dGhlIGZpbGUncyBuYW1lLiBJZiBpdCBjYW4sCi0gICAgICAgIC8vIGl0IGlzIGdpdmVuIHRoZSBm
aWxlJ3MgcmF3IGRhdGEuIFdoZW4gaXQgaXMgZG9uZSwgaXQgY2FsbHMgYSBjYWxsYmFjayB3aXRo
IHRoZSBmaWxlJ3MKLSAgICAgICAgLy8gKHBvc3NpYmx5IG1vZGlmaWVkKSBkYXRhLiBGb3IgZXhh
bXBsZSwgYSBwbHVnaW4gbWlnaHQgZGVjb21wcmVzcyBhIGZpbGUsIG9yIGl0Ci0gICAgICAgIC8v
IG1pZ2h0IGNyZWF0ZSBzb21lIHNpZGUgZGF0YSBzdHJ1Y3R1cmUgZm9yIHVzZSBsYXRlciAobGlr
ZSBhbiBJbWFnZSBlbGVtZW50LCBldGMuKS4KLSAgICAgICAgdmFyIGltYWdlUGx1Z2luID0ge307
Ci0gICAgICAgIGltYWdlUGx1Z2luWydjYW5IYW5kbGUnXSA9IGZ1bmN0aW9uKG5hbWUpIHsKLSAg
ICAgICAgICByZXR1cm4gIU1vZHVsZS5ub0ltYWdlRGVjb2RpbmcgJiYgL1wuKGpwZ3xqcGVnfHBu
Z3xibXApJC9pLnRlc3QobmFtZSk7Ci0gICAgICAgIH07Ci0gICAgICAgIGltYWdlUGx1Z2luWydo
YW5kbGUnXSA9IGZ1bmN0aW9uKGJ5dGVBcnJheSwgbmFtZSwgb25sb2FkLCBvbmVycm9yKSB7Ci0g
ICAgICAgICAgdmFyIGIgPSBudWxsOwotICAgICAgICAgIGlmIChCcm93c2VyLmhhc0Jsb2JDb25z
dHJ1Y3RvcikgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgYiA9IG5ldyBCbG9i
KFtieXRlQXJyYXldLCB7IHR5cGU6IEJyb3dzZXIuZ2V0TWltZXR5cGUobmFtZSkgfSk7Ci0gICAg
ICAgICAgICAgIGlmIChiLnNpemUgIT09IGJ5dGVBcnJheS5sZW5ndGgpIHsgLy8gU2FmYXJpIGJ1
ZyAjMTE4NjMwCi0gICAgICAgICAgICAgICAgLy8gU2FmYXJpJ3MgQmxvYiBjYW4gb25seSB0YWtl
IGFuIEFycmF5QnVmZmVyCi0gICAgICAgICAgICAgICAgYiA9IG5ldyBCbG9iKFsobmV3IFVpbnQ4
QXJyYXkoYnl0ZUFycmF5KSkuYnVmZmVyXSwgeyB0eXBlOiBCcm93c2VyLmdldE1pbWV0eXBlKG5h
bWUpIH0pOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGNhdGNoKGUpIHsKLSAgICAg
ICAgICAgICAgUnVudGltZS53YXJuT25jZSgnQmxvYiBjb25zdHJ1Y3RvciBwcmVzZW50IGJ1dCBm
YWlsczogJyArIGUgKyAnOyBmYWxsaW5nIGJhY2sgdG8gYmxvYiBidWlsZGVyJyk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmICghYikgewotICAgICAgICAgICAgdmFy
IGJiID0gbmV3IEJyb3dzZXIuQmxvYkJ1aWxkZXIoKTsKLSAgICAgICAgICAgIGJiLmFwcGVuZCgo
bmV3IFVpbnQ4QXJyYXkoYnl0ZUFycmF5KSkuYnVmZmVyKTsgLy8gd2UgbmVlZCB0byBwYXNzIGEg
YnVmZmVyLCBhbmQgbXVzdCBjb3B5IHRoZSBhcnJheSB0byBnZXQgdGhlIHJpZ2h0IGRhdGEgcmFu
Z2UKLSAgICAgICAgICAgIGIgPSBiYi5nZXRCbG9iKCk7Ci0gICAgICAgICAgfQotICAgICAgICAg
IHZhciB1cmwgPSBCcm93c2VyLlVSTE9iamVjdC5jcmVhdGVPYmplY3RVUkwoYik7Ci0gICAgICAg
ICAgdmFyIGltZyA9IG5ldyBJbWFnZSgpOwotICAgICAgICAgIGltZy5vbmxvYWQgPSBmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgIGFzc2VydChpbWcuY29tcGxldGUsICdJbWFnZSAnICsgbmFtZSAr
ICcgY291bGQgbm90IGJlIGRlY29kZWQnKTsKLSAgICAgICAgICAgIHZhciBjYW52YXMgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKLSAgICAgICAgICAgIGNhbnZhcy53aWR0aCA9
IGltZy53aWR0aDsKLSAgICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWcuaGVpZ2h0OwotICAg
ICAgICAgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOwotICAgICAgICAgICAg
Y3R4LmRyYXdJbWFnZShpbWcsIDAsIDApOwotICAgICAgICAgICAgTW9kdWxlWyJwcmVsb2FkZWRJ
bWFnZXMiXVtuYW1lXSA9IGNhbnZhczsKLSAgICAgICAgICAgIEJyb3dzZXIuVVJMT2JqZWN0LnJl
dm9rZU9iamVjdFVSTCh1cmwpOwotICAgICAgICAgICAgaWYgKG9ubG9hZCkgb25sb2FkKGJ5dGVB
cnJheSk7Ci0gICAgICAgICAgfTsKLSAgICAgICAgICBpbWcub25lcnJvciA9IGZ1bmN0aW9uKGV2
ZW50KSB7Ci0gICAgICAgICAgICBjb25zb2xlLmxvZygnSW1hZ2UgJyArIHVybCArICcgY291bGQg
bm90IGJlIGRlY29kZWQnKTsKLSAgICAgICAgICAgIGlmIChvbmVycm9yKSBvbmVycm9yKCk7Ci0g
ICAgICAgICAgfTsKLSAgICAgICAgICBpbWcuc3JjID0gdXJsOwotICAgICAgICB9OwotICAgICAg
ICBNb2R1bGVbJ3ByZWxvYWRQbHVnaW5zJ10ucHVzaChpbWFnZVBsdWdpbik7Ci0gICAgICAgIHZh
ciBhdWRpb1BsdWdpbiA9IHt9OwotICAgICAgICBhdWRpb1BsdWdpblsnY2FuSGFuZGxlJ10gPSBm
dW5jdGlvbihuYW1lKSB7Ci0gICAgICAgICAgcmV0dXJuICFNb2R1bGUubm9BdWRpb0RlY29kaW5n
ICYmIG5hbWUuc3Vic3RyKC00KSBpbiB7ICcub2dnJzogMSwgJy53YXYnOiAxLCAnLm1wMyc6IDEg
fTsKLSAgICAgICAgfTsKLSAgICAgICAgYXVkaW9QbHVnaW5bJ2hhbmRsZSddID0gZnVuY3Rpb24o
Ynl0ZUFycmF5LCBuYW1lLCBvbmxvYWQsIG9uZXJyb3IpIHsKLSAgICAgICAgICB2YXIgZG9uZSA9
IGZhbHNlOwotICAgICAgICAgIGZ1bmN0aW9uIGZpbmlzaChhdWRpbykgewotICAgICAgICAgICAg
aWYgKGRvbmUpIHJldHVybjsKLSAgICAgICAgICAgIGRvbmUgPSB0cnVlOwotICAgICAgICAgICAg
TW9kdWxlWyJwcmVsb2FkZWRBdWRpb3MiXVtuYW1lXSA9IGF1ZGlvOwotICAgICAgICAgICAgaWYg
KG9ubG9hZCkgb25sb2FkKGJ5dGVBcnJheSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGZ1bmN0
aW9uIGZhaWwoKSB7Ci0gICAgICAgICAgICBpZiAoZG9uZSkgcmV0dXJuOwotICAgICAgICAgICAg
ZG9uZSA9IHRydWU7Ci0gICAgICAgICAgICBNb2R1bGVbInByZWxvYWRlZEF1ZGlvcyJdW25hbWVd
ID0gbmV3IEF1ZGlvKCk7IC8vIGVtcHR5IHNoaW0KLSAgICAgICAgICAgIGlmIChvbmVycm9yKSBv
bmVycm9yKCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChCcm93c2VyLmhhc0Jsb2JDb25z
dHJ1Y3RvcikgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgdmFyIGIgPSBuZXcg
QmxvYihbYnl0ZUFycmF5XSwgeyB0eXBlOiBCcm93c2VyLmdldE1pbWV0eXBlKG5hbWUpIH0pOwot
ICAgICAgICAgICAgfSBjYXRjaChlKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBmYWlsKCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB2YXIgdXJsID0gQnJvd3Nlci5VUkxPYmplY3QuY3Jl
YXRlT2JqZWN0VVJMKGIpOyAvLyBYWFggd2UgbmV2ZXIgcmV2b2tlIHRoaXMhCi0gICAgICAgICAg
ICB2YXIgYXVkaW8gPSBuZXcgQXVkaW8oKTsKLSAgICAgICAgICAgIGF1ZGlvLmFkZEV2ZW50TGlz
dGVuZXIoJ2NhbnBsYXl0aHJvdWdoJywgZnVuY3Rpb24oKSB7IGZpbmlzaChhdWRpbykgfSwgZmFs
c2UpOyAvLyB1c2UgYWRkRXZlbnRMaXN0ZW5lciBkdWUgdG8gY2hyb21pdW0gYnVnIDEyNDkyNgot
ICAgICAgICAgICAgYXVkaW8ub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAg
ICAgIGlmIChkb25lKSByZXR1cm47Ci0gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd3YXJuaW5n
OiBicm93c2VyIGNvdWxkIG5vdCBmdWxseSBkZWNvZGUgYXVkaW8gJyArIG5hbWUgKyAnLCB0cnlp
bmcgc2xvd2VyIGJhc2U2NCBhcHByb2FjaCcpOwotICAgICAgICAgICAgICBmdW5jdGlvbiBlbmNv
ZGU2NChkYXRhKSB7Ci0gICAgICAgICAgICAgICAgdmFyIEJBU0UgPSAnQUJDREVGR0hJSktMTU5P
UFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7Ci0gICAg
ICAgICAgICAgICAgdmFyIFBBRCA9ICc9JzsKLSAgICAgICAgICAgICAgICB2YXIgcmV0ID0gJyc7
Ci0gICAgICAgICAgICAgICAgdmFyIGxlZnRjaGFyID0gMDsKLSAgICAgICAgICAgICAgICB2YXIg
bGVmdGJpdHMgPSAwOwotICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5s
ZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgICAgbGVmdGNoYXIgPSAobGVmdGNoYXIgPDwg
OCkgfCBkYXRhW2ldOwotICAgICAgICAgICAgICAgICAgbGVmdGJpdHMgKz0gODsKLSAgICAgICAg
ICAgICAgICAgIHdoaWxlIChsZWZ0Yml0cyA+PSA2KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZh
ciBjdXJyID0gKGxlZnRjaGFyID4+IChsZWZ0Yml0cy02KSkgJiAweDNmOwotICAgICAgICAgICAg
ICAgICAgICBsZWZ0Yml0cyAtPSA2OwotICAgICAgICAgICAgICAgICAgICByZXQgKz0gQkFTRVtj
dXJyXTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgaWYgKGxlZnRiaXRzID09IDIpIHsKLSAgICAgICAgICAgICAgICAgIHJldCArPSBCQVNF
WyhsZWZ0Y2hhciYzKSA8PCA0XTsKLSAgICAgICAgICAgICAgICAgIHJldCArPSBQQUQgKyBQQUQ7
Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsZWZ0Yml0cyA9PSA0KSB7Ci0gICAgICAgICAg
ICAgICAgICByZXQgKz0gQkFTRVsobGVmdGNoYXImMHhmKSA8PCAyXTsKLSAgICAgICAgICAgICAg
ICAgIHJldCArPSBQQUQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVy
biByZXQ7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgYXVkaW8uc3JjID0gJ2RhdGE6
YXVkaW8veC0nICsgbmFtZS5zdWJzdHIoLTMpICsgJztiYXNlNjQsJyArIGVuY29kZTY0KGJ5dGVB
cnJheSk7Ci0gICAgICAgICAgICAgIGZpbmlzaChhdWRpbyk7IC8vIHdlIGRvbid0IHdhaXQgZm9y
IGNvbmZpcm1hdGlvbiB0aGlzIHdvcmtlZCAtIGJ1dCBpdCdzIHdvcnRoIHRyeWluZwotICAgICAg
ICAgICAgfTsKLSAgICAgICAgICAgIGF1ZGlvLnNyYyA9IHVybDsKLSAgICAgICAgICAgIC8vIHdv
cmthcm91bmQgZm9yIGNocm9tZSBidWcgMTI0OTI2IC0gd2UgZG8gbm90IGFsd2F5cyBnZXQgb25j
YW5wbGF5dGhyb3VnaCBvciBvbmVycm9yCi0gICAgICAgICAgICBCcm93c2VyLnNhZmVTZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICBmaW5pc2goYXVkaW8pOyAvLyB0cnkgdG8g
dXNlIGl0IGV2ZW4gdGhvdWdoIGl0IGlzIG5vdCBuZWNlc3NhcmlseSByZWFkeSB0byBwbGF5Ci0g
ICAgICAgICAgICB9LCAxMDAwMCk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJl
dHVybiBmYWlsKCk7Ci0gICAgICAgICAgfQotICAgICAgICB9OwotICAgICAgICBNb2R1bGVbJ3By
ZWxvYWRQbHVnaW5zJ10ucHVzaChhdWRpb1BsdWdpbik7Ci0gICAgICAgIC8vIENhbnZhcyBldmVu
dCBzZXR1cAotICAgICAgICB2YXIgY2FudmFzID0gTW9kdWxlWydjYW52YXMnXTsKLSAgICAgICAg
Y2FudmFzLnJlcXVlc3RQb2ludGVyTG9jayA9IGNhbnZhc1sncmVxdWVzdFBvaW50ZXJMb2NrJ10g
fHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhc1snbW96UmVxdWVz
dFBvaW50ZXJMb2NrJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNh
bnZhc1snd2Via2l0UmVxdWVzdFBvaW50ZXJMb2NrJ107Ci0gICAgICAgIGNhbnZhcy5leGl0UG9p
bnRlckxvY2sgPSBkb2N1bWVudFsnZXhpdFBvaW50ZXJMb2NrJ10gfHwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Wydtb3pFeGl0UG9pbnRlckxvY2snXSB8fAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRbJ3dlYmtpdEV4aXRQb2ludGVy
TG9jayddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpe307
IC8vIG5vLW9wIGlmIGZ1bmN0aW9uIGRvZXMgbm90IGV4aXN0Ci0gICAgICAgIGNhbnZhcy5leGl0
UG9pbnRlckxvY2sgPSBjYW52YXMuZXhpdFBvaW50ZXJMb2NrLmJpbmQoZG9jdW1lbnQpOwotICAg
ICAgICBmdW5jdGlvbiBwb2ludGVyTG9ja0NoYW5nZSgpIHsKLSAgICAgICAgICBCcm93c2VyLnBv
aW50ZXJMb2NrID0gZG9jdW1lbnRbJ3BvaW50ZXJMb2NrRWxlbWVudCddID09PSBjYW52YXMgfHwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRbJ21velBvaW50ZXJMb2Nr
RWxlbWVudCddID09PSBjYW52YXMgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnRbJ3dlYmtpdFBvaW50ZXJMb2NrRWxlbWVudCddID09PSBjYW52YXM7Ci0gICAgICAg
IH0KLSAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmxvY2tjaGFuZ2Un
LCBwb2ludGVyTG9ja0NoYW5nZSwgZmFsc2UpOwotICAgICAgICBkb2N1bWVudC5hZGRFdmVudExp
c3RlbmVyKCdtb3pwb2ludGVybG9ja2NoYW5nZScsIHBvaW50ZXJMb2NrQ2hhbmdlLCBmYWxzZSk7
Ci0gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdHBvaW50ZXJsb2NrY2hh
bmdlJywgcG9pbnRlckxvY2tDaGFuZ2UsIGZhbHNlKTsKLSAgICAgICAgaWYgKE1vZHVsZVsnZWxl
bWVudFBvaW50ZXJMb2NrJ10pIHsKLSAgICAgICAgICBjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCBmdW5jdGlvbihldikgewotICAgICAgICAgICAgaWYgKCFCcm93c2VyLnBvaW50ZXJM
b2NrICYmIGNhbnZhcy5yZXF1ZXN0UG9pbnRlckxvY2spIHsKLSAgICAgICAgICAgICAgY2FudmFz
LnJlcXVlc3RQb2ludGVyTG9jaygpOwotICAgICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgp
OwotICAgICAgICAgICAgfQotICAgICAgICAgIH0sIGZhbHNlKTsKLSAgICAgICAgfQotICAgICAg
fSxjcmVhdGVDb250ZXh0OmZ1bmN0aW9uIChjYW52YXMsIHVzZVdlYkdMLCBzZXRJbk1vZHVsZSkg
ewotICAgICAgICB2YXIgY3R4OwotICAgICAgICB0cnkgewotICAgICAgICAgIGlmICh1c2VXZWJH
TCkgewotICAgICAgICAgICAgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJ2V4cGVyaW1lbnRhbC13
ZWJnbCcsIHsKLSAgICAgICAgICAgICAgYWxwaGE6IGZhbHNlCi0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJk
Jyk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmICghY3R4KSB0aHJvdyAnOignOwotICAgICAg
ICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgTW9kdWxlLnByaW50KCdDb3VsZCBub3QgY3JlYXRl
IGNhbnZhcyAtICcgKyBlKTsKLSAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotICAg
ICAgICBpZiAodXNlV2ViR0wpIHsKLSAgICAgICAgICAvLyBTZXQgdGhlIGJhY2tncm91bmQgb2Yg
dGhlIFdlYkdMIGNhbnZhcyB0byBibGFjawotICAgICAgICAgIGNhbnZhcy5zdHlsZS5iYWNrZ3Jv
dW5kQ29sb3IgPSAiYmxhY2siOwotICAgICAgICAgIC8vIFdhcm4gb24gY29udGV4dCBsb3NzCi0g
ICAgICAgICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmdsY29udGV4dGxvc3QnLCBmdW5j
dGlvbihldmVudCkgewotICAgICAgICAgICAgYWxlcnQoJ1dlYkdMIGNvbnRleHQgbG9zdC4gWW91
IHdpbGwgbmVlZCB0byByZWxvYWQgdGhlIHBhZ2UuJyk7Ci0gICAgICAgICAgfSwgZmFsc2UpOwot
ICAgICAgICB9Ci0gICAgICAgIGlmIChzZXRJbk1vZHVsZSkgewotICAgICAgICAgIE1vZHVsZS5j
dHggPSBjdHg7Ci0gICAgICAgICAgTW9kdWxlLnVzZVdlYkdMID0gdXNlV2ViR0w7Ci0gICAgICAg
ICAgQnJvd3Nlci5tb2R1bGVDb250ZXh0Q3JlYXRlZENhbGxiYWNrcy5mb3JFYWNoKGZ1bmN0aW9u
KGNhbGxiYWNrKSB7IGNhbGxiYWNrKCkgfSk7Ci0gICAgICAgICAgQnJvd3Nlci5pbml0KCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGN0eDsKLSAgICAgIH0sZGVzdHJveUNvbnRleHQ6ZnVu
Y3Rpb24gKGNhbnZhcywgdXNlV2ViR0wsIHNldEluTW9kdWxlKSB7fSxmdWxsU2NyZWVuSGFuZGxl
cnNJbnN0YWxsZWQ6ZmFsc2UsbG9ja1BvaW50ZXI6dW5kZWZpbmVkLHJlc2l6ZUNhbnZhczp1bmRl
ZmluZWQscmVxdWVzdEZ1bGxTY3JlZW46ZnVuY3Rpb24gKGxvY2tQb2ludGVyLCByZXNpemVDYW52
YXMpIHsKLSAgICAgICAgQnJvd3Nlci5sb2NrUG9pbnRlciA9IGxvY2tQb2ludGVyOwotICAgICAg
ICBCcm93c2VyLnJlc2l6ZUNhbnZhcyA9IHJlc2l6ZUNhbnZhczsKLSAgICAgICAgaWYgKHR5cGVv
ZiBCcm93c2VyLmxvY2tQb2ludGVyID09PSAndW5kZWZpbmVkJykgQnJvd3Nlci5sb2NrUG9pbnRl
ciA9IHRydWU7Ci0gICAgICAgIGlmICh0eXBlb2YgQnJvd3Nlci5yZXNpemVDYW52YXMgPT09ICd1
bmRlZmluZWQnKSBCcm93c2VyLnJlc2l6ZUNhbnZhcyA9IGZhbHNlOwotICAgICAgICB2YXIgY2Fu
dmFzID0gTW9kdWxlWydjYW52YXMnXTsKLSAgICAgICAgZnVuY3Rpb24gZnVsbFNjcmVlbkNoYW5n
ZSgpIHsKLSAgICAgICAgICBCcm93c2VyLmlzRnVsbFNjcmVlbiA9IGZhbHNlOwotICAgICAgICAg
IGlmICgoZG9jdW1lbnRbJ3dlYmtpdEZ1bGxTY3JlZW5FbGVtZW50J10gfHwgZG9jdW1lbnRbJ3dl
YmtpdEZ1bGxzY3JlZW5FbGVtZW50J10gfHwKLSAgICAgICAgICAgICAgIGRvY3VtZW50Wydtb3pG
dWxsU2NyZWVuRWxlbWVudCddIHx8IGRvY3VtZW50Wydtb3pGdWxsc2NyZWVuRWxlbWVudCddIHx8
Ci0gICAgICAgICAgICAgICBkb2N1bWVudFsnZnVsbFNjcmVlbkVsZW1lbnQnXSB8fCBkb2N1bWVu
dFsnZnVsbHNjcmVlbkVsZW1lbnQnXSkgPT09IGNhbnZhcykgewotICAgICAgICAgICAgY2FudmFz
LmNhbmNlbEZ1bGxTY3JlZW4gPSBkb2N1bWVudFsnY2FuY2VsRnVsbFNjcmVlbiddIHx8Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Wydtb3pDYW5jZWxGdWxs
U2NyZWVuJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnRbJ3dlYmtpdENhbmNlbEZ1bGxTY3JlZW4nXTsKLSAgICAgICAgICAgIGNhbnZhcy5jYW5jZWxG
dWxsU2NyZWVuID0gY2FudmFzLmNhbmNlbEZ1bGxTY3JlZW4uYmluZChkb2N1bWVudCk7Ci0gICAg
ICAgICAgICBpZiAoQnJvd3Nlci5sb2NrUG9pbnRlcikgY2FudmFzLnJlcXVlc3RQb2ludGVyTG9j
aygpOwotICAgICAgICAgICAgQnJvd3Nlci5pc0Z1bGxTY3JlZW4gPSB0cnVlOwotICAgICAgICAg
ICAgaWYgKEJyb3dzZXIucmVzaXplQ2FudmFzKSBCcm93c2VyLnNldEZ1bGxTY3JlZW5DYW52YXNT
aXplKCk7Ci0gICAgICAgICAgfSBlbHNlIGlmIChCcm93c2VyLnJlc2l6ZUNhbnZhcyl7Ci0gICAg
ICAgICAgICBCcm93c2VyLnNldFdpbmRvd2VkQ2FudmFzU2l6ZSgpOwotICAgICAgICAgIH0KLSAg
ICAgICAgICBpZiAoTW9kdWxlWydvbkZ1bGxTY3JlZW4nXSkgTW9kdWxlWydvbkZ1bGxTY3JlZW4n
XShCcm93c2VyLmlzRnVsbFNjcmVlbik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFCcm93c2Vy
LmZ1bGxTY3JlZW5IYW5kbGVyc0luc3RhbGxlZCkgewotICAgICAgICAgIEJyb3dzZXIuZnVsbFNj
cmVlbkhhbmRsZXJzSW5zdGFsbGVkID0gdHJ1ZTsKLSAgICAgICAgICBkb2N1bWVudC5hZGRFdmVu
dExpc3RlbmVyKCdmdWxsc2NyZWVuY2hhbmdlJywgZnVsbFNjcmVlbkNoYW5nZSwgZmFsc2UpOwot
ICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vemZ1bGxzY3JlZW5jaGFuZ2Un
LCBmdWxsU2NyZWVuQ2hhbmdlLCBmYWxzZSk7Ci0gICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcignd2Via2l0ZnVsbHNjcmVlbmNoYW5nZScsIGZ1bGxTY3JlZW5DaGFuZ2UsIGZhbHNl
KTsKLSAgICAgICAgfQotICAgICAgICBjYW52YXMucmVxdWVzdEZ1bGxTY3JlZW4gPSBjYW52YXNb
J3JlcXVlc3RGdWxsU2NyZWVuJ10gfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2FudmFzWydtb3pSZXF1ZXN0RnVsbFNjcmVlbiddIHx8Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChjYW52YXNbJ3dlYmtpdFJlcXVlc3RGdWxsU2NyZWVuJ10gPyBmdW5j
dGlvbigpIHsgY2FudmFzWyd3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiddKEVsZW1lbnRbJ0FMTE9X
X0tFWUJPQVJEX0lOUFVUJ10pIH0gOiBudWxsKTsKLSAgICAgICAgY2FudmFzLnJlcXVlc3RGdWxs
U2NyZWVuKCk7Ci0gICAgICB9LHJlcXVlc3RBbmltYXRpb25GcmFtZTpmdW5jdGlvbiAoZnVuYykg
ewotICAgICAgICBpZiAoIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIHsKLSAgICAgICAg
ICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gd2luZG93WydyZXF1ZXN0QW5pbWF0aW9u
RnJhbWUnXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3dbJ21velJlcXVlc3RBbmltYXRpb25GcmFtZSddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdpbmRvd1snd2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lJ10g
fHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Wydtc1Jl
cXVlc3RBbmltYXRpb25GcmFtZSddIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHdpbmRvd1snb1JlcXVlc3RBbmltYXRpb25GcmFtZSddIHx8Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd1snc2V0VGltZW91dCddOwotICAg
ICAgICB9Ci0gICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuYyk7Ci0gICAg
ICB9LHNhZmVDYWxsYmFjazpmdW5jdGlvbiAoZnVuYykgewotICAgICAgICByZXR1cm4gZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgaWYgKCFBQk9SVCkgcmV0dXJuIGZ1bmMuYXBwbHkobnVsbCwgYXJn
dW1lbnRzKTsKLSAgICAgICAgfTsKLSAgICAgIH0sc2FmZVJlcXVlc3RBbmltYXRpb25GcmFtZTpm
dW5jdGlvbiAoZnVuYykgewotICAgICAgICByZXR1cm4gQnJvd3Nlci5yZXF1ZXN0QW5pbWF0aW9u
RnJhbWUoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKCFBQk9SVCkgZnVuYygpOwotICAgICAg
ICB9KTsKLSAgICAgIH0sc2FmZVNldFRpbWVvdXQ6ZnVuY3Rpb24gKGZ1bmMsIHRpbWVvdXQpIHsK
LSAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKCFB
Qk9SVCkgZnVuYygpOwotICAgICAgICB9LCB0aW1lb3V0KTsKLSAgICAgIH0sc2FmZVNldEludGVy
dmFsOmZ1bmN0aW9uIChmdW5jLCB0aW1lb3V0KSB7Ci0gICAgICAgIHJldHVybiBzZXRJbnRlcnZh
bChmdW5jdGlvbigpIHsKLSAgICAgICAgICBpZiAoIUFCT1JUKSBmdW5jKCk7Ci0gICAgICAgIH0s
IHRpbWVvdXQpOwotICAgICAgfSxnZXRNaW1ldHlwZTpmdW5jdGlvbiAobmFtZSkgewotICAgICAg
ICByZXR1cm4gewotICAgICAgICAgICdqcGcnOiAnaW1hZ2UvanBlZycsCi0gICAgICAgICAgJ2pw
ZWcnOiAnaW1hZ2UvanBlZycsCi0gICAgICAgICAgJ3BuZyc6ICdpbWFnZS9wbmcnLAotICAgICAg
ICAgICdibXAnOiAnaW1hZ2UvYm1wJywKLSAgICAgICAgICAnb2dnJzogJ2F1ZGlvL29nZycsCi0g
ICAgICAgICAgJ3dhdic6ICdhdWRpby93YXYnLAotICAgICAgICAgICdtcDMnOiAnYXVkaW8vbXBl
ZycKLSAgICAgICAgfVtuYW1lLnN1YnN0cihuYW1lLmxhc3RJbmRleE9mKCcuJykrMSldOwotICAg
ICAgfSxnZXRVc2VyTWVkaWE6ZnVuY3Rpb24gKGZ1bmMpIHsKLSAgICAgICAgaWYoIXdpbmRvdy5n
ZXRVc2VyTWVkaWEpIHsKLSAgICAgICAgICB3aW5kb3cuZ2V0VXNlck1lZGlhID0gbmF2aWdhdG9y
WydnZXRVc2VyTWVkaWEnXSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZp
Z2F0b3JbJ21vekdldFVzZXJNZWRpYSddOwotICAgICAgICB9Ci0gICAgICAgIHdpbmRvdy5nZXRV
c2VyTWVkaWEoZnVuYyk7Ci0gICAgICB9LGdldE1vdmVtZW50WDpmdW5jdGlvbiAoZXZlbnQpIHsK
LSAgICAgICAgcmV0dXJuIGV2ZW50Wydtb3ZlbWVudFgnXSB8fAotICAgICAgICAgICAgICAgZXZl
bnRbJ21vek1vdmVtZW50WCddIHx8Ci0gICAgICAgICAgICAgICBldmVudFsnd2Via2l0TW92ZW1l
bnRYJ10gfHwKLSAgICAgICAgICAgICAgIDA7Ci0gICAgICB9LGdldE1vdmVtZW50WTpmdW5jdGlv
biAoZXZlbnQpIHsKLSAgICAgICAgcmV0dXJuIGV2ZW50Wydtb3ZlbWVudFknXSB8fAotICAgICAg
ICAgICAgICAgZXZlbnRbJ21vek1vdmVtZW50WSddIHx8Ci0gICAgICAgICAgICAgICBldmVudFsn
d2Via2l0TW92ZW1lbnRZJ10gfHwKLSAgICAgICAgICAgICAgIDA7Ci0gICAgICB9LG1vdXNlWDow
LG1vdXNlWTowLG1vdXNlTW92ZW1lbnRYOjAsbW91c2VNb3ZlbWVudFk6MCxjYWxjdWxhdGVNb3Vz
ZUV2ZW50OmZ1bmN0aW9uIChldmVudCkgeyAvLyBldmVudCBzaG91bGQgYmUgbW91c2Vtb3ZlLCBt
b3VzZWRvd24gb3IgbW91c2V1cAotICAgICAgICBpZiAoQnJvd3Nlci5wb2ludGVyTG9jaykgewot
ICAgICAgICAgIC8vIFdoZW4gdGhlIHBvaW50ZXIgaXMgbG9ja2VkLCBjYWxjdWxhdGUgdGhlIGNv
b3JkaW5hdGVzCi0gICAgICAgICAgLy8gYmFzZWQgb24gdGhlIG1vdmVtZW50IG9mIHRoZSBtb3Vz
ZS4KLSAgICAgICAgICAvLyBXb3JrYXJvdW5kIGZvciBGaXJlZm94IGJ1ZyA3NjQ0OTgKLSAgICAg
ICAgICBpZiAoZXZlbnQudHlwZSAhPSAnbW91c2Vtb3ZlJyAmJgotICAgICAgICAgICAgICAoJ21v
ek1vdmVtZW50WCcgaW4gZXZlbnQpKSB7Ci0gICAgICAgICAgICBCcm93c2VyLm1vdXNlTW92ZW1l
bnRYID0gQnJvd3Nlci5tb3VzZU1vdmVtZW50WSA9IDA7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIEJyb3dzZXIubW91c2VNb3ZlbWVudFggPSBCcm93c2VyLmdldE1vdmVtZW50WChl
dmVudCk7Ci0gICAgICAgICAgICBCcm93c2VyLm1vdXNlTW92ZW1lbnRZID0gQnJvd3Nlci5nZXRN
b3ZlbWVudFkoZXZlbnQpOwotICAgICAgICAgIH0KLSAgICAgICAgICAvLyBjaGVjayBpZiBTREwg
aXMgYXZhaWxhYmxlCi0gICAgICAgICAgaWYgKHR5cGVvZiBTREwgIT0gInVuZGVmaW5lZCIpIHsK
LSAgICAgICAgICAJQnJvd3Nlci5tb3VzZVggPSBTREwubW91c2VYICsgQnJvd3Nlci5tb3VzZU1v
dmVtZW50WDsKLSAgICAgICAgICAJQnJvd3Nlci5tb3VzZVkgPSBTREwubW91c2VZICsgQnJvd3Nl
ci5tb3VzZU1vdmVtZW50WTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgIAkvLyBqdXN0
IGFkZCB0aGUgbW91c2UgZGVsdGEgdG8gdGhlIGN1cnJlbnQgYWJzb2x1dCBtb3VzZSBwb3NpdGlv
bgotICAgICAgICAgIAkvLyBGSVhNRTogaWRlYWxseSB0aGlzIHNob3VsZCBiZSBjbGFtcGVkIGFn
YWluc3QgdGhlIGNhbnZhcyBzaXplIGFuZCB6ZXJvCi0gICAgICAgICAgCUJyb3dzZXIubW91c2VY
ICs9IEJyb3dzZXIubW91c2VNb3ZlbWVudFg7Ci0gICAgICAgICAgCUJyb3dzZXIubW91c2VZICs9
IEJyb3dzZXIubW91c2VNb3ZlbWVudFk7Ci0gICAgICAgICAgfSAgICAgICAgCi0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgLy8gT3RoZXJ3aXNlLCBjYWxjdWxhdGUgdGhlIG1vdmVtZW50IGJh
c2VkIG9uIHRoZSBjaGFuZ2VzCi0gICAgICAgICAgLy8gaW4gdGhlIGNvb3JkaW5hdGVzLgotICAg
ICAgICAgIHZhciByZWN0ID0gTW9kdWxlWyJjYW52YXMiXS5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KTsKLSAgICAgICAgICB2YXIgeCwgeTsKLSAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PSAndG91
Y2hzdGFydCcgfHwKLSAgICAgICAgICAgICAgZXZlbnQudHlwZSA9PSAndG91Y2hlbmQnIHx8Ci0g
ICAgICAgICAgICAgIGV2ZW50LnR5cGUgPT0gJ3RvdWNobW92ZScpIHsKLSAgICAgICAgICAgIHZh
ciB0ID0gZXZlbnQudG91Y2hlcy5pdGVtKDApOwotICAgICAgICAgICAgaWYgKHQpIHsKLSAgICAg
ICAgICAgICAgeCA9IHQucGFnZVggLSAod2luZG93LnNjcm9sbFggKyByZWN0LmxlZnQpOwotICAg
ICAgICAgICAgICB5ID0gdC5wYWdlWSAtICh3aW5kb3cuc2Nyb2xsWSArIHJlY3QudG9wKTsKLSAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgeCA9IGV2ZW50LnBhZ2VYIC0gKHdpbmRv
dy5zY3JvbGxYICsgcmVjdC5sZWZ0KTsKLSAgICAgICAgICAgIHkgPSBldmVudC5wYWdlWSAtICh3
aW5kb3cuc2Nyb2xsWSArIHJlY3QudG9wKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgLy8gdGhl
IGNhbnZhcyBtaWdodCBiZSBDU1Mtc2NhbGVkIGNvbXBhcmVkIHRvIGl0cyBiYWNrYnVmZmVyOwot
ICAgICAgICAgIC8vIFNETC11c2luZyBjb250ZW50IHdpbGwgd2FudCBtb3VzZSBjb29yZGluYXRl
cyBpbiB0ZXJtcwotICAgICAgICAgIC8vIG9mIGJhY2tidWZmZXIgdW5pdHMuCi0gICAgICAgICAg
dmFyIGN3ID0gTW9kdWxlWyJjYW52YXMiXS53aWR0aDsKLSAgICAgICAgICB2YXIgY2ggPSBNb2R1
bGVbImNhbnZhcyJdLmhlaWdodDsKLSAgICAgICAgICB4ID0geCAqIChjdyAvIHJlY3Qud2lkdGgp
OwotICAgICAgICAgIHkgPSB5ICogKGNoIC8gcmVjdC5oZWlnaHQpOwotICAgICAgICAgIEJyb3dz
ZXIubW91c2VNb3ZlbWVudFggPSB4IC0gQnJvd3Nlci5tb3VzZVg7Ci0gICAgICAgICAgQnJvd3Nl
ci5tb3VzZU1vdmVtZW50WSA9IHkgLSBCcm93c2VyLm1vdXNlWTsKLSAgICAgICAgICBCcm93c2Vy
Lm1vdXNlWCA9IHg7Ci0gICAgICAgICAgQnJvd3Nlci5tb3VzZVkgPSB5OwotICAgICAgICB9Ci0g
ICAgICB9LHhockxvYWQ6ZnVuY3Rpb24gKHVybCwgb25sb2FkLCBvbmVycm9yKSB7Ci0gICAgICAg
IHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICAgICAgeGhyLm9wZW4oJ0dFVCcs
IHVybCwgdHJ1ZSk7Ci0gICAgICAgIHhoci5yZXNwb25zZVR5cGUgPSAnYXJyYXlidWZmZXInOwot
ICAgICAgICB4aHIub25sb2FkID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKHhoci5zdGF0
dXMgPT0gMjAwIHx8ICh4aHIuc3RhdHVzID09IDAgJiYgeGhyLnJlc3BvbnNlKSkgeyAvLyBmaWxl
IFVSTHMgY2FuIHJldHVybiAwCi0gICAgICAgICAgICBvbmxvYWQoeGhyLnJlc3BvbnNlKTsKLSAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgb25lcnJvcigpOwotICAgICAgICAgIH0KLSAg
ICAgICAgfTsKLSAgICAgICAgeGhyLm9uZXJyb3IgPSBvbmVycm9yOwotICAgICAgICB4aHIuc2Vu
ZChudWxsKTsKLSAgICAgIH0sYXN5bmNMb2FkOmZ1bmN0aW9uICh1cmwsIG9ubG9hZCwgb25lcnJv
ciwgbm9SdW5EZXApIHsKLSAgICAgICAgQnJvd3Nlci54aHJMb2FkKHVybCwgZnVuY3Rpb24oYXJy
YXlCdWZmZXIpIHsKLSAgICAgICAgICBhc3NlcnQoYXJyYXlCdWZmZXIsICdMb2FkaW5nIGRhdGEg
ZmlsZSAiJyArIHVybCArICciIGZhaWxlZCAobm8gYXJyYXlCdWZmZXIpLicpOwotICAgICAgICAg
IG9ubG9hZChuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikpOwotICAgICAgICAgIGlmICghbm9S
dW5EZXApIHJlbW92ZVJ1bkRlcGVuZGVuY3koJ2FsICcgKyB1cmwpOwotICAgICAgICB9LCBmdW5j
dGlvbihldmVudCkgewotICAgICAgICAgIGlmIChvbmVycm9yKSB7Ci0gICAgICAgICAgICBvbmVy
cm9yKCk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRocm93ICdMb2FkaW5nIGRh
dGEgZmlsZSAiJyArIHVybCArICciIGZhaWxlZC4nOwotICAgICAgICAgIH0KLSAgICAgICAgfSk7
Ci0gICAgICAgIGlmICghbm9SdW5EZXApIGFkZFJ1bkRlcGVuZGVuY3koJ2FsICcgKyB1cmwpOwot
ICAgICAgfSxyZXNpemVMaXN0ZW5lcnM6W10sdXBkYXRlUmVzaXplTGlzdGVuZXJzOmZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgdmFyIGNhbnZhcyA9IE1vZHVsZVsnY2FudmFzJ107Ci0gICAgICAgIEJy
b3dzZXIucmVzaXplTGlzdGVuZXJzLmZvckVhY2goZnVuY3Rpb24obGlzdGVuZXIpIHsKLSAgICAg
ICAgICBsaXN0ZW5lcihjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOwotICAgICAgICB9KTsK
LSAgICAgIH0sc2V0Q2FudmFzU2l6ZTpmdW5jdGlvbiAod2lkdGgsIGhlaWdodCwgbm9VcGRhdGVz
KSB7Ci0gICAgICAgIHZhciBjYW52YXMgPSBNb2R1bGVbJ2NhbnZhcyddOwotICAgICAgICBjYW52
YXMud2lkdGggPSB3aWR0aDsKLSAgICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodDsKLSAgICAg
ICAgaWYgKCFub1VwZGF0ZXMpIEJyb3dzZXIudXBkYXRlUmVzaXplTGlzdGVuZXJzKCk7Ci0gICAg
ICB9LHdpbmRvd2VkV2lkdGg6MCx3aW5kb3dlZEhlaWdodDowLHNldEZ1bGxTY3JlZW5DYW52YXNT
aXplOmZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIGNhbnZhcyA9IE1vZHVsZVsnY2FudmFzJ107
Ci0gICAgICAgIHRoaXMud2luZG93ZWRXaWR0aCA9IGNhbnZhcy53aWR0aDsKLSAgICAgICAgdGhp
cy53aW5kb3dlZEhlaWdodCA9IGNhbnZhcy5oZWlnaHQ7Ci0gICAgICAgIGNhbnZhcy53aWR0aCA9
IHNjcmVlbi53aWR0aDsKLSAgICAgICAgY2FudmFzLmhlaWdodCA9IHNjcmVlbi5oZWlnaHQ7Ci0g
ICAgICAgIC8vIGNoZWNrIGlmIFNETCBpcyBhdmFpbGFibGUgICAKLSAgICAgICAgaWYgKHR5cGVv
ZiBTREwgIT0gInVuZGVmaW5lZCIpIHsKLSAgICAgICAgCXZhciBmbGFncyA9IEhFQVBVMzJbKChT
REwuc2NyZWVuK1J1bnRpbWUuUVVBTlRVTV9TSVpFKjApPj4yKV07Ci0gICAgICAgIAlmbGFncyA9
IGZsYWdzIHwgMHgwMDgwMDAwMDsgLy8gc2V0IFNETF9GVUxMU0NSRUVOIGZsYWcKLSAgICAgICAg
CUhFQVAzMlsoKFNETC5zY3JlZW4rUnVudGltZS5RVUFOVFVNX1NJWkUqMCk+PjIpXT1mbGFncwot
ICAgICAgICB9Ci0gICAgICAgIEJyb3dzZXIudXBkYXRlUmVzaXplTGlzdGVuZXJzKCk7Ci0gICAg
ICB9LHNldFdpbmRvd2VkQ2FudmFzU2l6ZTpmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciBjYW52
YXMgPSBNb2R1bGVbJ2NhbnZhcyddOwotICAgICAgICBjYW52YXMud2lkdGggPSB0aGlzLndpbmRv
d2VkV2lkdGg7Ci0gICAgICAgIGNhbnZhcy5oZWlnaHQgPSB0aGlzLndpbmRvd2VkSGVpZ2h0Owot
ICAgICAgICAvLyBjaGVjayBpZiBTREwgaXMgYXZhaWxhYmxlICAgICAgIAotICAgICAgICBpZiAo
dHlwZW9mIFNETCAhPSAidW5kZWZpbmVkIikgewotICAgICAgICAJdmFyIGZsYWdzID0gSEVBUFUz
MlsoKFNETC5zY3JlZW4rUnVudGltZS5RVUFOVFVNX1NJWkUqMCk+PjIpXTsKLSAgICAgICAgCWZs
YWdzID0gZmxhZ3MgJiB+MHgwMDgwMDAwMDsgLy8gY2xlYXIgU0RMX0ZVTExTQ1JFRU4gZmxhZwot
ICAgICAgICAJSEVBUDMyWygoU0RMLnNjcmVlbitSdW50aW1lLlFVQU5UVU1fU0laRSowKT4+Mild
PWZsYWdzCi0gICAgICAgIH0KLSAgICAgICAgQnJvd3Nlci51cGRhdGVSZXNpemVMaXN0ZW5lcnMo
KTsKLSAgICAgIH19OwotX2xsdm1fZWhfZXhjZXB0aW9uLmJ1ZiA9IGFsbG9jYXRlKDEyLCAidm9p
ZCoiLCBBTExPQ19TVEFUSUMpOwotRlMuc3RhdGljSW5pdCgpO19fQVRJTklUX18udW5zaGlmdCh7
IGZ1bmM6IGZ1bmN0aW9uKCkgeyBpZiAoIU1vZHVsZVsibm9GU0luaXQiXSAmJiAhRlMuaW5pdC5p
bml0aWFsaXplZCkgRlMuaW5pdCgpIH0gfSk7X19BVE1BSU5fXy5wdXNoKHsgZnVuYzogZnVuY3Rp
b24oKSB7IEZTLmlnbm9yZVBlcm1pc3Npb25zID0gZmFsc2UgfSB9KTtfX0FURVhJVF9fLnB1c2go
eyBmdW5jOiBmdW5jdGlvbigpIHsgRlMucXVpdCgpIH0gfSk7TW9kdWxlWyJGU19jcmVhdGVGb2xk
ZXIiXSA9IEZTLmNyZWF0ZUZvbGRlcjtNb2R1bGVbIkZTX2NyZWF0ZVBhdGgiXSA9IEZTLmNyZWF0
ZVBhdGg7TW9kdWxlWyJGU19jcmVhdGVEYXRhRmlsZSJdID0gRlMuY3JlYXRlRGF0YUZpbGU7TW9k
dWxlWyJGU19jcmVhdGVQcmVsb2FkZWRGaWxlIl0gPSBGUy5jcmVhdGVQcmVsb2FkZWRGaWxlO01v
ZHVsZVsiRlNfY3JlYXRlTGF6eUZpbGUiXSA9IEZTLmNyZWF0ZUxhenlGaWxlO01vZHVsZVsiRlNf
Y3JlYXRlTGluayJdID0gRlMuY3JlYXRlTGluaztNb2R1bGVbIkZTX2NyZWF0ZURldmljZSJdID0g
RlMuY3JlYXRlRGV2aWNlOwotX19fZXJybm9fc3RhdGUgPSBSdW50aW1lLnN0YXRpY0FsbG9jKDQp
OyBIRUFQMzJbKChfX19lcnJub19zdGF0ZSk+PjIpXT0wOwotX2ZnZXRjLnJldCA9IGFsbG9jYXRl
KFswXSwgImk4IiwgQUxMT0NfU1RBVElDKTsKLU1vZHVsZVsicmVxdWVzdEZ1bGxTY3JlZW4iXSA9
IGZ1bmN0aW9uKGxvY2tQb2ludGVyLCByZXNpemVDYW52YXMpIHsgQnJvd3Nlci5yZXF1ZXN0RnVs
bFNjcmVlbihsb2NrUG9pbnRlciwgcmVzaXplQ2FudmFzKSB9OwotICBNb2R1bGVbInJlcXVlc3RB
bmltYXRpb25GcmFtZSJdID0gZnVuY3Rpb24oZnVuYykgeyBCcm93c2VyLnJlcXVlc3RBbmltYXRp
b25GcmFtZShmdW5jKSB9OwotICBNb2R1bGVbInNldENhbnZhc1NpemUiXSA9IGZ1bmN0aW9uKHdp
ZHRoLCBoZWlnaHQsIG5vVXBkYXRlcykgeyBCcm93c2VyLnNldENhbnZhc1NpemUod2lkdGgsIGhl
aWdodCwgbm9VcGRhdGVzKSB9OwotICBNb2R1bGVbInBhdXNlTWFpbkxvb3AiXSA9IGZ1bmN0aW9u
KCkgeyBCcm93c2VyLm1haW5Mb29wLnBhdXNlKCkgfTsKLSAgTW9kdWxlWyJyZXN1bWVNYWluTG9v
cCJdID0gZnVuY3Rpb24oKSB7IEJyb3dzZXIubWFpbkxvb3AucmVzdW1lKCkgfTsKLSAgTW9kdWxl
WyJnZXRVc2VyTWVkaWEiXSA9IGZ1bmN0aW9uKCkgeyBCcm93c2VyLmdldFVzZXJNZWRpYSgpIH0K
LVNUQUNLX0JBU0UgPSBTVEFDS1RPUCA9IFJ1bnRpbWUuYWxpZ25NZW1vcnkoU1RBVElDVE9QKTsK
LXN0YXRpY1NlYWxlZCA9IHRydWU7IC8vIHNlYWwgdGhlIHN0YXRpYyBwb3J0aW9uIG9mIG1lbW9y
eQotU1RBQ0tfTUFYID0gU1RBQ0tfQkFTRSArIDUyNDI4ODA7Ci1EWU5BTUlDX0JBU0UgPSBEWU5B
TUlDVE9QID0gUnVudGltZS5hbGlnbk1lbW9yeShTVEFDS19NQVgpOwotYXNzZXJ0KERZTkFNSUNf
QkFTRSA8IFRPVEFMX01FTU9SWSk7IC8vIFN0YWNrIG11c3QgZml0IGluIFRPVEFMX01FTU9SWTsg
YWxsb2NhdGlvbnMgZnJvbSBoZXJlIG9uIG1heSBlbmxhcmdlIFRPVEFMX01FTU9SWQotIHZhciBj
dHR6X2k4ID0gYWxsb2NhdGUoWzgsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEs
MCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw1LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSww
LDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNiwwLDEsMCwyLDAsMSwwLDMsMCwxLDAs
MiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDUsMCwxLDAsMiwwLDEsMCwz
LDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw3LDAsMSwwLDIs
MCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNSww
LDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAs
MSwwLDYsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwx
LDAsMiwwLDEsMCw1LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEs
MCwzLDAsMSwwLDIsMCwxLDBdLCAiaTgiLCBBTExPQ19EWU5BTUlDKTsKLXZhciBNYXRoX21pbiA9
IE1hdGgubWluOwotZnVuY3Rpb24gaW52b2tlX3ZpaWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSkg
ewotICB0cnkgewotICAgIE1vZHVsZVsiZHluQ2FsbF92aWlpaWkiXShpbmRleCxhMSxhMixhMyxh
NCxhNSk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYg
ZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAg
fQotfQotZnVuY3Rpb24gaW52b2tlX3ZpaWlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3
KSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpIl0oaW5kZXgsYTEsYTIs
YTMsYTQsYTUsYTYsYTcpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdu
dW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0o
MSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aShpbmRleCxhMSkgewotICB0cnkgewot
ICAgIE1vZHVsZVsiZHluQ2FsbF92aSJdKGluZGV4LGExKTsKLSAgfSBjYXRjaChlKSB7Ci0gICAg
aWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0g
ICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5jdGlvbiBpbnZva2VfdmlpKGlu
ZGV4LGExLGEyKSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaSJdKGluZGV4LGEx
LGEyKTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBl
ICE9PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9
Ci19Ci1mdW5jdGlvbiBpbnZva2VfaWlpKGluZGV4LGExLGEyKSB7Ci0gIHRyeSB7Ci0gICAgcmV0
dXJuIE1vZHVsZVsiZHluQ2FsbF9paWkiXShpbmRleCxhMSxhMik7Ci0gIH0gY2F0Y2goZSkgewot
ICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBl
OwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gaW52b2tlX2lp
aWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSkgewotICB0cnkgewotICAgIHJldHVybiBNb2R1bGVb
ImR5bkNhbGxfaWlpaWlpIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUpOwotICB9IGNhdGNoKGUpIHsK
LSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cg
ZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV9p
aShpbmRleCxhMSkgewotICB0cnkgewotICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWkiXShp
bmRleCxhMSk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicg
JiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsK
LSAgfQotfQotZnVuY3Rpb24gaW52b2tlX2lpaWkoaW5kZXgsYTEsYTIsYTMpIHsKLSAgdHJ5IHsK
LSAgICByZXR1cm4gTW9kdWxlWyJkeW5DYWxsX2lpaWkiXShpbmRleCxhMSxhMixhMyk7Ci0gIH0g
Y2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdq
bXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rp
b24gaW52b2tlX3ZpaWlpaWYoaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYpIHsKLSAgdHJ5IHsKLSAg
ICBNb2R1bGVbImR5bkNhbGxfdmlpaWlpZiJdKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2KTsKLSAg
fSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9PSAnbG9u
Z2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19Ci1mdW5j
dGlvbiBpbnZva2VfdmlpaShpbmRleCxhMSxhMixhMykgewotICB0cnkgewotICAgIE1vZHVsZVsi
ZHluQ2FsbF92aWlpIl0oaW5kZXgsYTEsYTIsYTMpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAo
dHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBh
c21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaWlpaWko
aW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpIHsKLSAgdHJ5IHsKLSAgICBNb2R1bGVbImR5
bkNhbGxfdmlpaWlpaWlpIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpOwotICB9IGNh
dGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1w
JykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9u
IGludm9rZV92KGluZGV4KSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3YiXShpbmRl
eCk7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAh
PT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQot
fQotZnVuY3Rpb24gaW52b2tlX2lpaWlpaWlpaShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxh
OCkgewotICB0cnkgewotICAgIHJldHVybiBNb2R1bGVbImR5bkNhbGxfaWlpaWlpaWlpIl0oaW5k
ZXgsYTEsYTIsYTMsYTQsYTUsYTYsYTcsYTgpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlw
ZW9mIGUgIT09ICdudW1iZXInICYmIGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21b
InNldFRocmV3Il0oMSwgMCk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaWlpaWlpKGlu
ZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3LGE4LGE5KSB7Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJk
eW5DYWxsX3ZpaWlpaWlpaWkiXShpbmRleCxhMSxhMixhMyxhNCxhNSxhNixhNyxhOCxhOSk7Ci0g
IH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xv
bmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVu
Y3Rpb24gaW52b2tlX3ZpaWlpaWlmKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2LGE3KSB7Ci0gIHRy
eSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlmIl0oaW5kZXgsYTEsYTIsYTMsYTQsYTUs
YTYsYTcpOwotICB9IGNhdGNoKGUpIHsKLSAgICBpZiAodHlwZW9mIGUgIT09ICdudW1iZXInICYm
IGUgIT09ICdsb25nam1wJykgdGhyb3cgZTsKLSAgICBhc21bInNldFRocmV3Il0oMSwgMCk7Ci0g
IH0KLX0KLWZ1bmN0aW9uIGludm9rZV92aWlpaWlpKGluZGV4LGExLGEyLGEzLGE0LGE1LGE2KSB7
Ci0gIHRyeSB7Ci0gICAgTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWkiXShpbmRleCxhMSxhMixhMyxh
NCxhNSxhNik7Ci0gIH0gY2F0Y2goZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicg
JiYgZSAhPT0gJ2xvbmdqbXAnKSB0aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsK
LSAgfQotfQotZnVuY3Rpb24gaW52b2tlX2lpaWlpKGluZGV4LGExLGEyLGEzLGE0KSB7Ci0gIHRy
eSB7Ci0gICAgcmV0dXJuIE1vZHVsZVsiZHluQ2FsbF9paWlpaSJdKGluZGV4LGExLGEyLGEzLGE0
KTsKLSAgfSBjYXRjaChlKSB7Ci0gICAgaWYgKHR5cGVvZiBlICE9PSAnbnVtYmVyJyAmJiBlICE9
PSAnbG9uZ2ptcCcpIHRocm93IGU7Ci0gICAgYXNtWyJzZXRUaHJldyJdKDEsIDApOwotICB9Ci19
Ci1mdW5jdGlvbiBpbnZva2VfdmlpaWkoaW5kZXgsYTEsYTIsYTMsYTQpIHsKLSAgdHJ5IHsKLSAg
ICBNb2R1bGVbImR5bkNhbGxfdmlpaWkiXShpbmRleCxhMSxhMixhMyxhNCk7Ci0gIH0gY2F0Y2go
ZSkgewotICAgIGlmICh0eXBlb2YgZSAhPT0gJ251bWJlcicgJiYgZSAhPT0gJ2xvbmdqbXAnKSB0
aHJvdyBlOwotICAgIGFzbVsic2V0VGhyZXciXSgxLCAwKTsKLSAgfQotfQotZnVuY3Rpb24gYXNt
UHJpbnRJbnQoeCwgeSkgewotICBNb2R1bGUucHJpbnQoJ2ludCAnICsgeCArICcsJyArIHkpOy8v
ICsgJyAnICsgbmV3IEVycm9yKCkuc3RhY2spOwotfQotZnVuY3Rpb24gYXNtUHJpbnRGbG9hdCh4
LCB5KSB7Ci0gIE1vZHVsZS5wcmludCgnZmxvYXQgJyArIHggKyAnLCcgKyB5KTsvLyArICcgJyAr
IG5ldyBFcnJvcigpLnN0YWNrKTsKLX0KLS8vIEVNU0NSSVBURU5fU1RBUlRfQVNNCi12YXIgYXNt
PShmdW5jdGlvbihnbG9iYWwsZW52LGJ1ZmZlcil7InVzZSBhc20iO3ZhciBhPW5ldyBnbG9iYWwu
SW50OEFycmF5KGJ1ZmZlcik7dmFyIGI9bmV3IGdsb2JhbC5JbnQxNkFycmF5KGJ1ZmZlcik7dmFy
IGM9bmV3IGdsb2JhbC5JbnQzMkFycmF5KGJ1ZmZlcik7dmFyIGQ9bmV3IGdsb2JhbC5VaW50OEFy
cmF5KGJ1ZmZlcik7dmFyIGU9bmV3IGdsb2JhbC5VaW50MTZBcnJheShidWZmZXIpO3ZhciBmPW5l
dyBnbG9iYWwuVWludDMyQXJyYXkoYnVmZmVyKTt2YXIgZz1uZXcgZ2xvYmFsLkZsb2F0MzJBcnJh
eShidWZmZXIpO3ZhciBoPW5ldyBnbG9iYWwuRmxvYXQ2NEFycmF5KGJ1ZmZlcik7dmFyIGk9ZW52
LlNUQUNLVE9QfDA7dmFyIGo9ZW52LlNUQUNLX01BWHwwO3ZhciBrPWVudi50ZW1wRG91YmxlUHRy
fDA7dmFyIGw9ZW52LkFCT1JUfDA7dmFyIG09ZW52LmN0dHpfaTh8MDt2YXIgbj1lbnYuY3Rsel9p
OHwwO3ZhciBvPWVudi5fc3RkaW58MDt2YXIgcD1lbnYuX19aVFZOMTBfX2N4eGFiaXYxMTdfX2Ns
YXNzX3R5cGVfaW5mb0V8MDt2YXIgcT1lbnYuX19aVFZOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNz
X3R5cGVfaW5mb0V8MDt2YXIgcj1lbnYuX3N0ZGVycnwwO3ZhciBzPWVudi5fX19mc211OHwwO3Zh
ciB0PWVudi5fc3Rkb3V0fDA7dmFyIHU9ZW52Ll9fX2Rzb19oYW5kbGV8MDt2YXIgdj0rZW52Lk5h
Tjt2YXIgdz0rZW52LkluZmluaXR5O3ZhciB4PTA7dmFyIHk9MDt2YXIgej0wO3ZhciBBPTA7dmFy
IEI9MCxDPTAsRD0wLEU9MCxGPTAuMCxHPTAsSD0wLEk9MCxKPTAuMDt2YXIgSz0wO3ZhciBMPTA7
dmFyIE09MDt2YXIgTj0wO3ZhciBPPTA7dmFyIFA9MDt2YXIgUT0wO3ZhciBSPTA7dmFyIFM9MDt2
YXIgVD0wO3ZhciBVPWdsb2JhbC5NYXRoLmZsb29yO3ZhciBWPWdsb2JhbC5NYXRoLmFiczt2YXIg
Vz1nbG9iYWwuTWF0aC5zcXJ0O3ZhciBYPWdsb2JhbC5NYXRoLnBvdzt2YXIgWT1nbG9iYWwuTWF0
aC5jb3M7dmFyIFo9Z2xvYmFsLk1hdGguc2luO3ZhciBfPWdsb2JhbC5NYXRoLnRhbjt2YXIgJD1n
bG9iYWwuTWF0aC5hY29zO3ZhciBhYT1nbG9iYWwuTWF0aC5hc2luO3ZhciBhYj1nbG9iYWwuTWF0
aC5hdGFuO3ZhciBhYz1nbG9iYWwuTWF0aC5hdGFuMjt2YXIgYWQ9Z2xvYmFsLk1hdGguZXhwO3Zh
ciBhZT1nbG9iYWwuTWF0aC5sb2c7dmFyIGFmPWdsb2JhbC5NYXRoLmNlaWw7dmFyIGFnPWdsb2Jh
bC5NYXRoLmltdWw7dmFyIGFoPWVudi5hYm9ydDt2YXIgYWk9ZW52LmFzc2VydDt2YXIgYWo9ZW52
LmFzbVByaW50SW50O3ZhciBhaz1lbnYuYXNtUHJpbnRGbG9hdDt2YXIgYWw9ZW52Lm1pbjt2YXIg
YW09ZW52Lmludm9rZV92aWlpaWk7dmFyIGFuPWVudi5pbnZva2VfdmlpaWlpaWk7dmFyIGFvPWVu
di5pbnZva2Vfdmk7dmFyIGFwPWVudi5pbnZva2VfdmlpO3ZhciBhcT1lbnYuaW52b2tlX2lpaTt2
YXIgYXI9ZW52Lmludm9rZV9paWlpaWk7dmFyIGFzPWVudi5pbnZva2VfaWk7dmFyIGF0PWVudi5p
bnZva2VfaWlpaTt2YXIgYXU9ZW52Lmludm9rZV92aWlpaWlmO3ZhciBhdj1lbnYuaW52b2tlX3Zp
aWk7dmFyIGF3PWVudi5pbnZva2VfdmlpaWlpaWlpO3ZhciBheD1lbnYuaW52b2tlX3Y7dmFyIGF5
PWVudi5pbnZva2VfaWlpaWlpaWlpO3ZhciBhej1lbnYuaW52b2tlX3ZpaWlpaWlpaWk7dmFyIGFB
PWVudi5pbnZva2VfdmlpaWlpaWY7dmFyIGFCPWVudi5pbnZva2VfdmlpaWlpaTt2YXIgYUM9ZW52
Lmludm9rZV9paWlpaTt2YXIgYUQ9ZW52Lmludm9rZV92aWlpaTt2YXIgYUU9ZW52Ll9sbHZtX2xp
ZmV0aW1lX2VuZDt2YXIgYUY9ZW52Ll9fc2NhblN0cmluZzt2YXIgYUc9ZW52Ll9wdGhyZWFkX211
dGV4X2xvY2s7dmFyIGFIPWVudi5fX19jeGFfZW5kX2NhdGNoO3ZhciBhST1lbnYuX3N0cnRvdWxs
O3ZhciBhSj1lbnYuX19pc0Zsb2F0O3ZhciBhSz1lbnYuX2ZmbHVzaDt2YXIgYUw9ZW52Ll9faXNM
ZWFwWWVhcjt2YXIgYU09ZW52Ll9md3JpdGU7dmFyIGFOPWVudi5fc2VuZDt2YXIgYU89ZW52Ll9s
bHZtX3VtdWxfd2l0aF9vdmVyZmxvd19pMzI7dmFyIGFQPWVudi5faXNzcGFjZTt2YXIgYVE9ZW52
Ll9yZWFkO3ZhciBhUj1lbnYuX19fY3hhX2d1YXJkX2Fib3J0O3ZhciBhUz1lbnYuX25ld2xvY2Fs
ZTt2YXIgYVQ9ZW52Ll9fX2d4eF9wZXJzb25hbGl0eV92MDt2YXIgYVU9ZW52Ll9wdGhyZWFkX2Nv
bmRfd2FpdDt2YXIgYVY9ZW52Ll9fX2N4YV9yZXRocm93O3ZhciBhVz1lbnYuX19fcmVzdW1lRXhj
ZXB0aW9uO3ZhciBhWD1lbnYuX2xsdm1fdmFfZW5kO3ZhciBhWT1lbnYuX3Zzc2NhbmY7dmFyIGFa
PWVudi5fc25wcmludGY7dmFyIGFfPWVudi5fZmdldGM7dmFyIGEkPWVudi5fYXRleGl0O3ZhciBh
MD1lbnYuX19fY3hhX2ZyZWVfZXhjZXB0aW9uO3ZhciBhMT1lbnYuX19aOGNhdGNsb3NlUDhfbmxf
Y2F0ZDt2YXIgYTI9ZW52Ll9fX3NldEVyck5vO3ZhciBhMz1lbnYuX2lzeGRpZ2l0O3ZhciBhND1l
bnYuX2V4aXQ7dmFyIGE1PWVudi5fc3ByaW50Zjt2YXIgYTY9ZW52Ll9fX2N0eXBlX2JfbG9jO3Zh
ciBhNz1lbnYuX2ZyZWVsb2NhbGU7dmFyIGE4PWVudi5fX1o3Y2F0b3BlblBLY2k7dmFyIGE5PWVu
di5fYXNwcmludGY7dmFyIGJhPWVudi5fX19jeGFfaXNfbnVtYmVyX3R5cGU7dmFyIGJiPWVudi5f
X19jeGFfZG9lc19pbmhlcml0O3ZhciBiYz1lbnYuX19fY3hhX2d1YXJkX2FjcXVpcmU7dmFyIGJk
PWVudi5fX19sb2NhbGVfbWJfY3VyX21heDt2YXIgYmU9ZW52Ll9fX2N4YV9iZWdpbl9jYXRjaDt2
YXIgYmY9ZW52Ll9yZWN2O3ZhciBiZz1lbnYuX19wYXJzZUludDY0O3ZhciBiaD1lbnYuX19aU3Qx
OHVuY2F1Z2h0X2V4Y2VwdGlvbnY7dmFyIGJpPWVudi5fX19jeGFfY2FsbF91bmV4cGVjdGVkO3Zh
ciBiaj1lbnYuX19leGl0O3ZhciBiaz1lbnYuX3N0cmZ0aW1lO3ZhciBibD1lbnYuX19fY3hhX3Ro
cm93O3ZhciBibT1lbnYuX2xsdm1fZWhfZXhjZXB0aW9uO3ZhciBibj1lbnYuX3ByZWFkO3ZhciBi
bz1lbnYuX19hcnJheVN1bTt2YXIgYnA9ZW52Ll9sb2c7dmFyIGJxPWVudi5fX19jeGFfZmluZF9t
YXRjaGluZ19jYXRjaDt2YXIgYnI9ZW52Ll9fZm9ybWF0U3RyaW5nO3ZhciBicz1lbnYuX3B0aHJl
YWRfY29uZF9icm9hZGNhc3Q7dmFyIGJ0PWVudi5fX1pTdDl0ZXJtaW5hdGV2O3ZhciBidT1lbnYu
X3B0aHJlYWRfbXV0ZXhfdW5sb2NrO3ZhciBidj1lbnYuX3Nicms7dmFyIGJ3PWVudi5fX19lcnJu
b19sb2NhdGlvbjt2YXIgYng9ZW52Ll9zdHJlcnJvcjt2YXIgYnk9ZW52Ll9sbHZtX2xpZmV0aW1l
X3N0YXJ0O3ZhciBiej1lbnYuX19fY3hhX2d1YXJkX3JlbGVhc2U7dmFyIGJBPWVudi5fdW5nZXRj
O3ZhciBiQj1lbnYuX3VzZWxvY2FsZTt2YXIgYkM9ZW52Ll92c25wcmludGY7dmFyIGJEPWVudi5f
c3NjYW5mO3ZhciBiRT1lbnYuX3N5c2NvbmY7dmFyIGJGPWVudi5fZnJlYWQ7dmFyIGJHPWVudi5f
YWJvcnQ7dmFyIGJIPWVudi5faXNkaWdpdDt2YXIgYkk9ZW52Ll9zdHJ0b2xsO3ZhciBiSj1lbnYu
X19hZGREYXlzO3ZhciBiSz1lbnYuX2Zsb29yO3ZhciBiTD1lbnYuX19yZWFsbHlOZWdhdGl2ZTt2
YXIgYk09ZW52Ll9fWjdjYXRnZXRzUDhfbmxfY2F0ZGlpUEtjO3ZhciBiTj1lbnYuX3dyaXRlO3Zh
ciBiTz1lbnYuX19fY3hhX2FsbG9jYXRlX2V4Y2VwdGlvbjt2YXIgYlA9ZW52Ll9fX2N4YV9wdXJl
X3ZpcnR1YWw7dmFyIGJRPWVudi5fdmFzcHJpbnRmO3ZhciBiUj1lbnYuX19fY3R5cGVfdG91cHBl
cl9sb2M7dmFyIGJTPWVudi5fX19jdHlwZV90b2xvd2VyX2xvYzt2YXIgYlQ9ZW52Ll9wd3JpdGU7
dmFyIGJVPWVudi5fc3RyZXJyb3Jfcjt2YXIgYlY9ZW52Ll90aW1lOwotLy8gRU1TQ1JJUFRFTl9T
VEFSVF9GVU5DUwotZnVuY3Rpb24gY2MoYSl7YT1hfDA7dmFyIGI9MDtiPWk7aT1pK2F8MDtpPWkr
Nz4+Mzw8MztyZXR1cm4gYnwwfWZ1bmN0aW9uIGNkKCl7cmV0dXJuIGl8MH1mdW5jdGlvbiBjZShh
KXthPWF8MDtpPWF9ZnVuY3Rpb24gY2YoYSxiKXthPWF8MDtiPWJ8MDtpZigoeHwwKT09MCl7eD1h
O3k9Yn19ZnVuY3Rpb24gY2coYil7Yj1ifDA7YVtrXT1hW2JdO2FbaysxfDBdPWFbYisxfDBdO2Fb
aysyfDBdPWFbYisyfDBdO2FbayszfDBdPWFbYiszfDBdfWZ1bmN0aW9uIGNoKGIpe2I9YnwwO2Fb
a109YVtiXTthW2srMXwwXT1hW2IrMXwwXTthW2srMnwwXT1hW2IrMnwwXTthW2srM3wwXT1hW2Ir
M3wwXTthW2srNHwwXT1hW2IrNHwwXTthW2srNXwwXT1hW2IrNXwwXTthW2srNnwwXT1hW2IrNnww
XTthW2srN3wwXT1hW2IrN3wwXX1mdW5jdGlvbiBjaShhKXthPWF8MDtLPWF9ZnVuY3Rpb24gY2oo
YSl7YT1hfDA7TD1hfWZ1bmN0aW9uIGNrKGEpe2E9YXwwO009YX1mdW5jdGlvbiBjbChhKXthPWF8
MDtOPWF9ZnVuY3Rpb24gY20oYSl7YT1hfDA7Tz1hfWZ1bmN0aW9uIGNuKGEpe2E9YXwwO1A9YX1m
dW5jdGlvbiBjbyhhKXthPWF8MDtRPWF9ZnVuY3Rpb24gY3AoYSl7YT1hfDA7Uj1hfWZ1bmN0aW9u
IGNxKGEpe2E9YXwwO1M9YX1mdW5jdGlvbiBjcihhKXthPWF8MDtUPWF9ZnVuY3Rpb24gY3MoKXtj
W3ErOD4+Ml09MjUwO2NbcSsxMj4+Ml09MTI4O2NbcSsxNj4+Ml09NjI7Y1txKzIwPj4yXT0xNTA7
Y1txKzI0Pj4yXT04O2NbcSsyOD4+Ml09MTA7Y1txKzMyPj4yXT0yO2NbcSszNj4+Ml09MjtjW3Ar
OD4+Ml09MjUwO2NbcCsxMj4+Ml09MjQ0O2NbcCsxNj4+Ml09NjI7Y1twKzIwPj4yXT0xNTA7Y1tw
KzI0Pj4yXT04O2NbcCsyOD4+Ml09MjY7Y1twKzMyPj4yXT00O2NbcCszNj4+Ml09ODtjWzIwMzZd
PXArODtjWzIwMzhdPXArODtjWzIwNDBdPXErODtjWzIwNDRdPXErODtjWzIwNDhdPXErODtjWzIw
NTJdPXErODtjWzIwNTZdPXErODtjWzIwNjBdPXArODtjWzIwOTRdPXErODtjWzIwOThdPXErODtj
WzIxNjJdPXErODtjWzIxNjZdPXErODtjWzIxODZdPXArODtjWzIxODhdPXErODtjWzIyMjRdPXEr
ODtjWzIyMjhdPXErODtjWzIyNjRdPXErODtjWzIyNjhdPXErODtjWzIyODhdPXArODtjWzIyOTBd
PXArODtjWzIyOTJdPXErODtjWzIyOTZdPXErODtjWzIzMDBdPXErODtjWzIzMDRdPXArODtjWzIz
MDZdPXArODtjWzIzMDhdPXArODtjWzIzMTBdPXArODtjWzIzMTJdPXArODtjWzIzMTRdPXArODtj
WzIzMTZdPXArODtjWzIzNDJdPXErODtjWzIzNDZdPXArODtjWzIzNDhdPXErODtjWzIzNTJdPXEr
ODtjWzIzNTZdPXErODtjWzIzNjBdPXArODtjWzIzNjJdPXArODtjWzIzNjRdPXArODtjWzIzNjZd
PXArODtjWzI0MDBdPXArODtjWzI0MDJdPXArODtjWzI0MDRdPXArODtjWzI0MDZdPXErODtjWzI0
MTBdPXErODtjWzI0MTRdPXErODtjWzI0MThdPXErODtjWzI0MjJdPXErODtjWzI0MjZdPXErOH1m
dW5jdGlvbiBjdChhKXthPWF8MDt2YXIgYj0wLGQ9MDtiPWNbYT4+Ml18MDtpZigoYnwwKT09MCl7
cmV0dXJufWQ9YSs0fDA7YT1jW2Q+PjJdfDA7aWYoKGJ8MCkhPShhfDApKXtjW2Q+PjJdPWErKH4o
KGEtOCsoLWJ8MCl8MCk+Pj4zKTw8Myl9a1MoYik7cmV0dXJufWZ1bmN0aW9uIGN1KGEsYixkKXth
PWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLjAsdz0wLHg9MCx5PTAuMCx6PTAuMDtkPWk7aT1p
KzI0fDA7ZT1kfDA7Zj1kKzh8MDtnPWZ8MDtjW2c+PjJdPTA7aj1mKzR8MDtjW2o+PjJdPTA7az1m
Kzh8MDtjW2s+PjJdPTA7bD1iLWF8MDttPWw+PjM7ZG97aWYoKG18MCk9PTApe249MDtvPTB9ZWxz
ZXtpZihtPj4+MD41MzY4NzA5MTEpe2lyKGYpfXA9a08obCl8MDtjW2o+PjJdPXA7Y1tnPj4yXT1w
O2Nbaz4+Ml09cCsobTw8Myk7aWYoKGF8MCk9PShifDApKXtuPXA7bz1wO2JyZWFrfWVsc2V7cT1h
O3I9cH1kb3tpZigocnwwKT09MCl7cz0wfWVsc2V7aFtyPj4zXT0raFtxPj4zXTtzPWNbaj4+Ml18
MH1yPXMrOHwwO2Nbaj4+Ml09cjtxPXErOHwwO313aGlsZSgocXwwKSE9KGJ8MCkpO249Y1tnPj4y
XXwwO289cn19d2hpbGUoMCk7Y1UobixvLGUpO2U9Y1tnPj4yXXwwO289Y1tqPj4yXXwwO0wyMzpk
b3tpZigoZXwwKT09KG98MCkpe3Q9ZX1lbHNle249ZTt3aGlsZSgxKXt1PW4rOHwwO2lmKCh1fDAp
PT0ob3wwKSl7dD1lO2JyZWFrIEwyM312PStoW24+PjNdO2lmKHY9PStoW3U+PjNdKXticmVha31l
bHNle249dX19aWYoKG58MCk9PShvfDApKXt0PWU7YnJlYWt9ZWxzZXt3PXU7eD1uO3k9dn1MMjg6
d2hpbGUoMSl7cj13O2Rve3I9cis4fDA7aWYoKHJ8MCk9PShvfDApKXticmVhayBMMjh9ej0raFty
Pj4zXTt9d2hpbGUoeT09eik7Yj14Kzh8MDtoW2I+PjNdPXo7dz1yO3g9Yjt5PXp9dD1jW2c+PjJd
fDB9fXdoaWxlKDApO2lmKCh0fDApPT0wKXtpPWQ7cmV0dXJufWc9Y1tqPj4yXXwwO2lmKCh0fDAp
IT0oZ3wwKSl7Y1tqPj4yXT1nKyh+KChnLTgrKC10fDApfDApPj4+Myk8PDMpfWtTKHQpO2k9ZDty
ZXR1cm59ZnVuY3Rpb24gY3YoYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9
MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0w
LjAseD0wLjAseT0wLHo9MC4wO2Q9aTtpPWkrMjR8MDtlPWR8MDtmPWQrOHwwO2c9ZnwwO2NbZz4+
Ml09MDtqPWYrNHwwO2Nbaj4+Ml09MDtrPWYrOHwwO2Nbaz4+Ml09MDtsPWItYXwwO209bD4+Mztk
b3tpZigobXwwKT09MCl7bj0wO289MH1lbHNle2lmKG0+Pj4wPjUzNjg3MDkxMSl7aXIoZil9cD1r
TyhsKXwwO2Nbaj4+Ml09cDtjW2c+PjJdPXA7Y1trPj4yXT1wKyhtPDwzKTtpZigoYXwwKT09KGJ8
MCkpe249cDtvPXA7YnJlYWt9ZWxzZXtxPWE7cj1wfWRve2lmKChyfDApPT0wKXtzPTB9ZWxzZXto
W3I+PjNdPStoW3E+PjNdO3M9Y1tqPj4yXXwwfXI9cys4fDA7Y1tqPj4yXT1yO3E9cSs4fDA7fXdo
aWxlKChxfDApIT0oYnwwKSk7bj1jW2c+PjJdfDA7bz1yfX13aGlsZSgwKTtjVShuLG8sZSk7ZT1j
W2c+PjJdfDA7bz1jW2o+PjJdfDA7TDU4OmRve2lmKChlfDApPT0ob3wwKSl7dD1lO3U9NjJ9ZWxz
ZXtuPWU7d2hpbGUoMSl7cj1uKzh8MDtpZigocnwwKT09KG98MCkpe3Y9ZTticmVhayBMNTh9aWYo
K2hbbj4+M109PStoW3I+PjNdKXt0PW47dT02MjticmVha31lbHNle249cn19fX13aGlsZSgwKTtk
b3tpZigodXwwKT09NjIpe2lmKCh0fDApPT0ob3wwKSl7dj1lO2JyZWFrfW49dCsxNnwwO2lmKChu
fDApPT0ob3wwKSl7dj1lO2JyZWFrfXI9bjtuPXQ7dz0raFt0Pj4zXTt3aGlsZSgxKXt4PStoW3I+
PjNdO2lmKHc9PXgpe3k9bjt6PXd9ZWxzZXtiPW4rOHwwO2hbYj4+M109eDt5PWI7ej14fWI9cis4
fDA7aWYoKGJ8MCk9PShvfDApKXticmVha31lbHNle3I9YjtuPXk7dz16fX12PWNbZz4+Ml18MH19
d2hpbGUoMCk7aWYoKHZ8MCk9PTApe2k9ZDtyZXR1cm59Zz1jW2o+PjJdfDA7aWYoKHZ8MCkhPShn
fDApKXtjW2o+PjJdPWcrKH4oKGctOCsoLXZ8MCl8MCk+Pj4zKTw8Myl9a1Modik7aT1kO3JldHVy
bn1mdW5jdGlvbiBjdyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGo9
MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAs
TT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxf
PTAsJD0wLGFhPTAsYWI9MDtkPWk7aT1pKzh8MDtlPWR8MDtmPWU7Zz1pO2k9aSs4fDA7aj1nO2s9
aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO2w9aTtpPWkrOHwwO209aTtpPWkrOHwwO249aTtpPWkrMXww
O2k9aSs3Pj4zPDwzO289aTtpPWkrMjR8MDtwPWk7aT1pKzh8MDtxPWk7aT1pKzh8MDtyPWI7cz1y
LWE+PjM7aFtwPj4zXT0wLjA7dD1vfDA7dT1vKzR8MDt2PW8rOHwwO2skKG98MCwwLDI0KTtkb3tp
Zigoc3wwKT09MCl7dz0wO3g9bysxNnwwO3k9MDt6PTA7QT0wO0I9MH1lbHNle2NPKG8scyxwKTtD
PWNbdT4+Ml18MDtEPW8rMTZ8MDtFPWNbRD4+Ml18MDtGPWNbdj4+Ml18MDtHPUMrKEU+Pj45PDwy
KXwwO2lmKChGfDApPT0oQ3wwKSl7dz0wO3g9RDt5PUY7ej1FO0E9QztCPUc7YnJlYWt9dz0oY1tH
Pj4yXXwwKSsoKEUmNTExKTw8Myl8MDt4PUQ7eT1GO3o9RTtBPUM7Qj1HfX13aGlsZSgwKTtpZigo
YXwwKT09KGJ8MCkpe0g9QTtJPXo7Sj15fWVsc2V7eT1hO2E9dzt3PUI7d2hpbGUoMSl7Qj1hO3o9
KGNbdz4+Ml18MCkrNDA5Ni1CPj4zO0E9eTtwPXItQT4+MztpZigocHwwKT4oenwwKSl7Sz15Kyh6
PDwzKXwwO0w9en1lbHNle0s9YjtMPXB9a18oYXwwLHl8MCxLLUF8MCk7ZG97aWYoKEx8MCk9PTAp
e009YTtOPXd9ZWxzZXtBPShCLShjW3c+PjJdfDApPj4zKStMfDA7aWYoKEF8MCk+MCl7cD13Kygo
KEF8MCkvNTEyfDApPDwyKXwwO009KGNbcD4+Ml18MCkrKCgoQXwwKSU1MTJ8MCk8PDMpfDA7Tj1w
O2JyZWFrfWVsc2V7cD01MTEtQXwwO0E9dysoKChwfDApLy01MTJ8MCk8PDIpfDA7TT0oY1tBPj4y
XXwwKSsoNTExLSgocHwwKSU1MTJ8MCk8PDMpfDA7Tj1BO2JyZWFrfX19d2hpbGUoMCk7aWYoKEt8
MCk9PShifDApKXticmVha31lbHNle3k9SzthPU07dz1OfX1IPWNbdT4+Ml18MDtJPWNbeD4+Ml18
MDtKPWNbdj4+Ml18MH1OPUgrKEk+Pj45PDwyKXwwO2lmKChKfDApPT0oSHwwKSl7Sj1vKzIwfDA7
Tz0wO1A9MDtRPTA7Uj0wO1M9SjtUPUgrKChJKyhjW0o+PjJdfDApfDApPj4+OTw8Mil8MH1lbHNl
e0o9bysyMHwwO289SSsoY1tKPj4yXXwwKXwwO3c9SCsobz4+Pjk8PDIpfDA7Tz0oY1t3Pj4yXXww
KSsoKG8mNTExKTw8Myl8MDtQPTA7UT0oY1tOPj4yXXwwKSsoKEkmNTExKTw8Myl8MDtSPTA7Uz1K
O1Q9d31jW2w+PjJdPVJ8TjtjW2wrND4+Ml09UTtjW20+PjJdPVB8VDtjW20rND4+Ml09TztjSyhs
LG0sbik7bj1jW3U+PjJdfDA7bT1jW3g+PjJdfDA7bD1uKyhtPj4+OTw8Mil8MDtpZigoY1t2Pj4y
XXwwKT09KG58MCkpe1U9MDtWPTA7Vz0wO1g9MDtZPW4rKChtKyhjW1M+PjJdfDApfDApPj4+OTw8
Mil8MH1lbHNle089bSsoY1tTPj4yXXwwKXwwO1Q9bisoTz4+Pjk8PDIpfDA7VT0oY1tUPj4yXXww
KSsoKE8mNTExKTw8Myl8MDtWPTA7Vz0oY1tsPj4yXXwwKSsoKG0mNTExKTw8Myl8MDtYPTA7WT1U
fWNbZT4+Ml09WHxsO2NbZSs0Pj4yXT1XO2NbZz4+Ml09VnxZO2NbZys0Pj4yXT1VO2NJKHEsZixq
LGspO2s9Y1t1Pj4yXXwwO2o9Y1t4Pj4yXXwwO2Y9aysoaj4+Pjk8PDIpfDA7cT1jW3Y+PjJdfDA7
aWYoKHF8MCk9PShrfDApKXtaPTA7Xz0wfWVsc2V7VT0oY1tTPj4yXXwwKStqfDA7Wj0oY1trKyhV
Pj4+OTw8Mik+PjJdfDApKygoVSY1MTEpPDwzKXwwO189KGNbZj4+Ml18MCkrKChqJjUxMSk8PDMp
fDB9aj1mO2Y9XztMMTEyOndoaWxlKDEpe189Zjtkb3tpZigoX3wwKT09KFp8MCkpe2JyZWFrIEwx
MTJ9Xz1fKzh8MDt9d2hpbGUoKF8tKGNbaj4+Ml18MCl8MCkhPTQwOTYpO189ais0fDA7aj1fO2Y9
Y1tfPj4yXXwwfWNbUz4+Ml09MDtTPXEtaz4+MjtpZihTPj4+MD4yKXtmPWs7d2hpbGUoMSl7a1Mo
Y1tmPj4yXXwwKTtqPShjW3U+PjJdfDApKzR8MDtjW3U+PjJdPWo7Wj1jW3Y+PjJdfDA7Xz1aLWo+
PjI7aWYoXz4+PjA+Mil7Zj1qfWVsc2V7JD1fO2FhPWo7YWI9WjticmVha319fWVsc2V7JD1TO2Fh
PWs7YWI9cX1zd2l0Y2goJHwwKXtjYXNlIDE6e2NbeD4+Ml09MjU2O2JyZWFrfTtjYXNlIDI6e2Nb
eD4+Ml09NTEyO2JyZWFrfTtkZWZhdWx0Ont9fWRve2lmKChhYXwwKSE9KGFifDApKXt4PWFhO2Rv
e2tTKGNbeD4+Ml18MCk7eD14KzR8MDt9d2hpbGUoKHh8MCkhPShhYnwwKSk7eD1jW3U+PjJdfDA7
JD1jW3Y+PjJdfDA7aWYoKHh8MCk9PSgkfDApKXticmVha31jW3Y+PjJdPSQrKH4oKCQtNCsoLXh8
MCl8MCk+Pj4yKTw8Mil9fXdoaWxlKDApO3Y9Y1t0Pj4yXXwwO2lmKCh2fDApPT0wKXtpPWQ7cmV0
dXJufWtTKHYpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gY3goYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHww
O3ZhciBlPTAsZj0wLGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MC4wLHk9MCx6PTA7ZD1pO2k9aSs0OHwwO2U9ZHwwO2Y9ZCs4fDA7
Zz1kKzE2fDA7aj1kKzI0fDA7az1kKzMyfDA7bD1rfDA7bT1rO2NbbD4+Ml09bTtuPWsrNHwwO2Nb
bj4+Ml09bTtvPWsrOHwwO2Nbbz4+Ml09MDtpZigoYXwwKT09KGJ8MCkpe3A9bTtxPTB9ZWxzZXtr
PWE7YT1tO3I9MDt3aGlsZSgxKXtzPWtPKDE2KXwwO3Q9czt1PXMrOHwwO2lmKCh1fDApIT0wKXto
W3U+PjNdPStoW2s+PjNdfWNbYSs0Pj4yXT10O2Nbcz4+Ml09Y1tsPj4yXTtjW2w+PjJdPXQ7Y1tz
KzQ+PjJdPW07dj0oY1tvPj4yXXwwKSsxfDA7Y1tvPj4yXT12O3M9ays4fDA7aWYoKHN8MCk9PShi
fDApKXticmVha31lbHNle2s9czthPXQ7cj12fX1wPWNbbj4+Ml18MDtxPXZ9Y1tlPj4yXT1wO2Nb
Zj4+Ml09bTtjSihnLGUsZixxLGopO2o9Y1tuPj4yXXwwO2lmKChqfDApIT0obXwwKSl7cT1qO3do
aWxlKDEpe2o9Y1txKzQ+PjJdfDA7TDE1MDpkb3tpZigoanwwKT09KG18MCkpe3c9bX1lbHNle3g9
K2hbcSs4Pj4zXTtmPWo7d2hpbGUoMSl7aWYoeCE9K2hbZis4Pj4zXSl7dz1mO2JyZWFrIEwxNTB9
ZT1jW2YrND4+Ml18MDtpZigoZXwwKT09KG18MCkpe3c9bTticmVha31lbHNle2Y9ZX19fX13aGls
ZSgwKTtpZigoanwwKT09KHd8MCkpe3k9an1lbHNle2Y9KGNbdz4+Ml18MCkrNHwwO2U9anwwO2Nb
KGNbZT4+Ml18MCkrND4+Ml09Y1tmPj4yXTtjW2NbZj4+Ml0+PjJdPWNbZT4+Ml07ZT1qO3doaWxl
KDEpe2Y9Y1tlKzQ+PjJdfDA7Y1tvPj4yXT0oY1tvPj4yXXwwKS0xO2tTKGUpO2lmKChmfDApPT0o
d3wwKSl7eT13O2JyZWFrfWVsc2V7ZT1mfX19aWYoKHl8MCk9PShtfDApKXticmVha31lbHNle3E9
eX19fWlmKChjW28+PjJdfDApPT0wKXtpPWQ7cmV0dXJufXk9Y1tuPj4yXXwwO249KGNbbD4+Ml18
MCkrNHwwO2w9eXwwO2NbKGNbbD4+Ml18MCkrND4+Ml09Y1tuPj4yXTtjW2Nbbj4+Ml0+PjJdPWNb
bD4+Ml07Y1tvPj4yXT0wO2lmKCh5fDApPT0obXwwKSl7aT1kO3JldHVybn1lbHNle3o9eX13aGls
ZSgxKXt5PWNbeis0Pj4yXXwwO2tTKHopO2lmKCh5fDApPT0obXwwKSl7YnJlYWt9ZWxzZXt6PXl9
fWk9ZDtyZXR1cm59ZnVuY3Rpb24gY3koYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAs
Zj0wLGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wO2Q9aTtp
PWkrMzJ8MDtlPWR8MDtmPWQrOHwwO2c9ZCsxNnwwO2o9Z3wwO2s9Zys0fDA7Y1trPj4yXT0wO2w9
Zys4fDA7Y1tsPj4yXT0wO209aztrPWd8MDtjW2s+PjJdPW07aWYoKGF8MCk9PShifDApKXtuPTA7
Y0UoaixuKTtpPWQ7cmV0dXJufW89ZnwwO3A9Zys0fDA7Zz1hO2Rve2Nbbz4+Ml09bTthPWNIKGos
ZixlLGcpfDA7aWYoKGNbYT4+Ml18MCk9PTApe3E9a08oMjQpfDA7cj1xKzE2fDA7aWYoKHJ8MCkh
PTApe2hbcj4+M109K2hbZz4+M119cj1jW2U+PjJdfDA7cz1xO2NbcT4+Ml09MDtjW3ErND4+Ml09
MDtjW3ErOD4+Ml09cjtjW2E+PjJdPXM7cj1jW2Nbaz4+Ml0+PjJdfDA7aWYoKHJ8MCk9PTApe3Q9
c31lbHNle2Nbaz4+Ml09cjt0PWNbYT4+Ml18MH1jRyhjW3A+PjJdfDAsdCk7Y1tsPj4yXT0oY1ts
Pj4yXXwwKSsxfWc9Zys4fDA7fXdoaWxlKChnfDApIT0oYnwwKSk7bj1jW3A+PjJdfDA7Y0Uoaixu
KTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGN6KGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0w
LGY9MCxnPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAs
dj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTA7ZD1pO2k9aSsz
MnwwO2U9ZHwwO2Y9ZCs4fDA7Zz1kKzE2fDA7aj1nfDA7az1nKzR8MDtjW2s+PjJdPTA7bD1nKzh8
MDtjW2w+PjJdPTA7bT1rO249Z3wwO2Nbbj4+Ml09bTtkb3tpZigoYXwwKSE9KGJ8MCkpe289Znww
O3A9Zys0fDA7cT1hO2Rve2Nbbz4+Ml09bTtyPWNDKGosZixlLHEpfDA7cz1rTygyNCl8MDt0PXMr
MTZ8MDtpZigodHwwKSE9MCl7aFt0Pj4zXT0raFtxPj4zXX10PWNbZT4+Ml18MDt1PXM7Y1tzPj4y
XT0wO2Nbcys0Pj4yXT0wO2Nbcys4Pj4yXT10O2Nbcj4+Ml09dTt0PWNbY1tuPj4yXT4+Ml18MDtp
ZigodHwwKT09MCl7dj11fWVsc2V7Y1tuPj4yXT10O3Y9Y1tyPj4yXXwwfWNHKGNbcD4+Ml18MCx2
KTtjW2w+PjJdPShjW2w+PjJdfDApKzE7cT1xKzh8MDt9d2hpbGUoKHF8MCkhPShifDApKTtxPWNb
bj4+Ml18MDtpZigocXwwKT09KG18MCkpe2JyZWFrfXA9aztvPWcrNHwwO3I9cTtMMjAyOndoaWxl
KDEpe3E9cnwwO3Q9cis0fDA7dT1yKzE2fDA7d2hpbGUoMSl7dz1jW3Q+PjJdfDA7aWYoKHd8MCk9
PTApe3M9cTt3aGlsZSgxKXt4PWNbcys4Pj4yXXwwO2lmKChzfDApPT0oY1t4Pj4yXXwwKSl7eT14
O2JyZWFrfWVsc2V7cz14fX19ZWxzZXtzPXc7d2hpbGUoMSl7eD1jW3M+PjJdfDA7aWYoKHh8MCk9
PTApe3k9czticmVha31lbHNle3M9eH19fXM9eTtpZigoeXwwKT09KHB8MCkpe3o9bztBPTIxMzti
cmVhayBMMjAyfWlmKCtoW3U+PjNdIT0raFt5KzE2Pj4zXSl7YnJlYWt9eD1jW3krND4+Ml18MDtp
ZigoeHwwKT09MCl7Qj15O3doaWxlKDEpe0M9Y1tCKzg+PjJdfDA7aWYoKEJ8MCk9PShjW0M+PjJd
fDApKXtEPUM7YnJlYWt9ZWxzZXtCPUN9fX1lbHNle0I9eDt3aGlsZSgxKXtDPWNbQj4+Ml18MDtp
ZigoQ3wwKT09MCl7RD1CO2JyZWFrfWVsc2V7Qj1DfX19aWYoKGNbbj4+Ml18MCk9PShzfDApKXtj
W24+PjJdPUR9Y1tsPj4yXT0oY1tsPj4yXXwwKS0xO2NCKGNbbz4+Ml18MCx5KTtrUyh5KX1pZigo
d3wwKT09MCl7dT1xO3doaWxlKDEpe3Q9Y1t1Kzg+PjJdfDA7aWYoKHV8MCk9PShjW3Q+PjJdfDAp
KXtFPXQ7YnJlYWt9ZWxzZXt1PXR9fX1lbHNle3U9dzt3aGlsZSgxKXtxPWNbdT4+Ml18MDtpZigo
cXwwKT09MCl7RT11O2JyZWFrfWVsc2V7dT1xfX19aWYoKEV8MCk9PShwfDApKXt6PW87QT0yMTQ7
YnJlYWt9ZWxzZXtyPUV9fWlmKChBfDApPT0yMTQpe0Y9Y1t6Pj4yXXwwO0c9RjtjRShqLEcpO2k9
ZDtyZXR1cm59ZWxzZSBpZigoQXwwKT09MjEzKXtGPWNbej4+Ml18MDtHPUY7Y0UoaixHKTtpPWQ7
cmV0dXJufX19d2hpbGUoMCk7ej1nKzR8MDtGPWNbej4+Ml18MDtHPUY7Y0UoaixHKTtpPWQ7cmV0
dXJufWZ1bmN0aW9uIGNBKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MCxmPTAuMCxnPTAsaj0wLGs9
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MC4wLHg9MCx5
PTAsej0wLjAsQT0wLEI9MC4wLEM9MCxEPTAsRT0wLEY9MC4wLEc9MCxIPTAsST0wLjAsSj0wLjAs
TD0wLE09MCxOPTAsTz0wLFA9MDtiPWk7aT1pKzI0fDA7ZD1ifDA7ZT1iKzh8MDtmPSsoYXwwKTtn
PX5+K1UoKygxOTkzMTU2OC41NjkzMjQxNzMvKGYqKCthZSgrZikvLjY5MzE0NzE4MDU1OTk0NTMp
KSkpO2o9YTw8MTtrPWNbMjQ0Nl18MDtsPWNbMjQ0N118MDtpZigoa3wwKSE9KGx8MCkpe2NbMjQ0
N109bCsofigobC04Kygta3wwKXwwKT4+PjMpPDwzKX1rPWV8MDtjW2s+PjJdPTA7bD1lKzR8MDtj
W2w+PjJdPTA7bT1lKzh8MDtjW20+PjJdPTA7aWYoKGp8MCk9PTApe249MH1lbHNle2lmKGo+Pj4w
PjUzNjg3MDkxMSl7aXIoZSl9ZT1rTyhhPDw0KXwwO2NbbD4+Ml09ZTtjW2s+PjJdPWU7Y1ttPj4y
XT1lKyhqPDwzKTttPWo7bz1lO2Rve2lmKChvfDApPT0wKXtwPTB9ZWxzZXtoW28+PjNdPTAuMDtw
PWNbbD4+Ml18MH1vPXArOHwwO2NbbD4+Ml09bzttPW0tMXwwO313aGlsZSgobXwwKSE9MCk7bj1j
W2s+PjJdfDB9bT1uKyhqPDwzKXwwO289bisoYTw8Myl8MDtpZigoYXwwKSE9MCl7cD1uO2Y9MC4w
O3doaWxlKDEpe2U9cCs4fDA7aFtwPj4zXT1mO2lmKChlfDApPT0ob3wwKSl7YnJlYWt9ZWxzZXtw
PWU7Zj1mKzEuMH19fWlmKChqfDApIT0oYXwwKSl7aj1vO2Y9MC4wO3doaWxlKDEpe289ais4fDA7
aFtqPj4zXT1mO2lmKChvfDApPT0obXwwKSl7YnJlYWt9ZWxzZXtqPW87Zj1mKzEuMH19fWNGKG4s
bSk7aWYoKGd8MCk+MCl7aj1hPDw0O2E9aj4+MztvPWFPKGF8MCw4KXwwO3A9bjtpZihLKXtlPWc7
d2hpbGUoMSl7cT1lLTF8MDtyPWtQKC0xKXwwO3M9cjtrWShyfDAscHwwLGopfDA7dD1zKyhhPDwz
KXwwO2NVKHMsdCxkKTtMMjY4OmRve2lmKChzfDApIT0odHwwKSl7dT1zO3doaWxlKDEpe3Y9dSs4
fDA7aWYoKHZ8MCk9PSh0fDApKXticmVhayBMMjY4fXc9K2hbdT4+M107aWYodz09K2hbdj4+M10p
e2JyZWFrfWVsc2V7dT12fX1pZigodXwwKT09KHR8MCkpe2JyZWFrfWVsc2V7eD12O3k9dTt6PXd9
d2hpbGUoMSl7QT14O2Rve0E9QSs4fDA7aWYoKEF8MCk9PSh0fDApKXticmVhayBMMjY4fUI9K2hb
QT4+M107fXdoaWxlKHo9PUIpO0M9eSs4fDA7aFtDPj4zXT1CO3g9QTt5PUM7ej1CfX19d2hpbGUo
MCk7aWYoKHJ8MCkhPTApe2tUKHIpfWlmKChxfDApPjApe2U9cX1lbHNle0Q9ZzticmVha319fWVs
c2V7ZT1nO3doaWxlKDEpe3k9ZS0xfDA7eD1rUChvKXwwO3Y9eDtrWSh4fDAscHwwLGopfDA7dD12
KyhhPDwzKXwwO2NVKHYsdCxkKTtMMjg3OmRve2lmKCh2fDApIT0odHwwKSl7cz12O3doaWxlKDEp
e0U9cys4fDA7aWYoKEV8MCk9PSh0fDApKXticmVhayBMMjg3fUY9K2hbcz4+M107aWYoRj09K2hb
RT4+M10pe2JyZWFrfWVsc2V7cz1FfX1pZigoc3wwKT09KHR8MCkpe2JyZWFrfWVsc2V7Rz1FO0g9
cztJPUZ9d2hpbGUoMSl7dT1HO2Rve3U9dSs4fDA7aWYoKHV8MCk9PSh0fDApKXticmVhayBMMjg3
fUo9K2hbdT4+M107fXdoaWxlKEk9PUopO0E9SCs4fDA7aFtBPj4zXT1KO0c9dTtIPUE7ST1KfX19
d2hpbGUoMCk7aWYoKHh8MCkhPTApe2tUKHgpfWlmKCh5fDApPjApe2U9eX1lbHNle0Q9ZzticmVh
a319fXdoaWxlKDEpe2U9RC0xfDA7Y3UobixtLGUpO2lmKChlfDApPjApe0Q9ZX1lbHNle0w9Zzti
cmVha319d2hpbGUoMSl7RD1MLTF8MDtjdihuLG0sRCk7aWYoKER8MCk+MCl7TD1EfWVsc2V7TT1n
O2JyZWFrfX13aGlsZSgxKXtMPU0tMXwwO2N3KG4sbSxMKTtpZigoTHwwKT4wKXtNPUx9ZWxzZXtO
PWc7YnJlYWt9fXdoaWxlKDEpe009Ti0xfDA7Y3gobixtLE0pO2lmKChNfDApPjApe049TX1lbHNl
e089ZzticmVha319d2hpbGUoMSl7Tj1PLTF8MDtjeShuLG0sTik7aWYoKE58MCk+MCl7Tz1OfWVs
c2V7UD1nO2JyZWFrfX1kb3tQPVAtMXwwO2N6KG4sbSxQKTt9d2hpbGUoKFB8MCk+MCl9UD1jW2s+
PjJdfDA7aWYoKFB8MCk9PTApe2k9YjtyZXR1cm59az1jW2w+PjJdfDA7aWYoKFB8MCkhPShrfDAp
KXtjW2w+PjJdPWsrKH4oKGstOCsoLVB8MCl8MCk+Pj4zKTw8Myl9a1MoUCk7aT1iO3JldHVybn1m
dW5jdGlvbiBjQihiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxr
PTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wO2U9ZHwwO2Y9Y1tl
Pj4yXXwwO2Rve2lmKChmfDApPT0wKXtnPWQ7aD0zMDF9ZWxzZXtpPWNbZCs0Pj4yXXwwO2lmKChp
fDApPT0wKXtqPWY7az1kO2w9ZHwwO2g9MzAzO2JyZWFrfWVsc2V7bT1pO3doaWxlKDEpe2k9Y1tt
Pj4yXXwwO2lmKChpfDApPT0wKXtnPW07aD0zMDE7YnJlYWt9ZWxzZXttPWl9fX19fXdoaWxlKDAp
O2Rve2lmKChofDApPT0zMDEpe2Y9Z3wwO209Y1tnKzQ+PjJdfDA7aWYoKG18MCkhPTApe2o9bTtr
PWc7bD1mO2g9MzAzO2JyZWFrfW49MDtvPTA7cD1nKzh8MDtxPWc7cj1mfX13aGlsZSgwKTtpZigo
aHwwKT09MzAzKXtnPWsrOHwwO2Nbais4Pj4yXT1jW2c+PjJdO249ajtvPTE7cD1nO3E9aztyPWx9
bD1jW3A+PjJdfDA7az1sfDA7ZG97aWYoKHF8MCk9PShjW2s+PjJdfDApKXtjW2s+PjJdPW47aWYo
KHF8MCk9PShifDApKXtzPW47dD0wO2JyZWFrfXM9Yjt0PWNbKGNbcD4+Ml18MCkrND4+Ml18MH1l
bHNle2NbbCs0Pj4yXT1uO3M9Yjt0PWNbY1twPj4yXT4+Ml18MH19d2hpbGUoMCk7Yj1xKzEyfDA7
bD0oYVtiXSYxKT09MDtpZigocXwwKT09KGR8MCkpe3U9c31lbHNle2s9ZCs4fDA7Zz1jW2s+PjJd
fDA7Y1twPj4yXT1nO2lmKChjW2Nbaz4+Ml0+PjJdfDApPT0oZHwwKSl7Y1tnPj4yXT1xfWVsc2V7
Y1tnKzQ+PjJdPXF9Zz1jW2U+PjJdfDA7Y1tyPj4yXT1nO2NbZys4Pj4yXT1xO2c9Y1tkKzQ+PjJd
fDA7Y1txKzQ+PjJdPWc7aWYoKGd8MCkhPTApe2NbZys4Pj4yXT1xfWFbYl09YVtkKzEyfDBdJjE7
dT0oc3wwKT09KGR8MCk/cTpzfWlmKGx8KHV8MCk9PTApe3JldHVybn1pZihvKXthW24rMTJ8MF09
MTtyZXR1cm59ZWxzZXt2PXU7dz10fXdoaWxlKDEpe3Q9dys4fDA7dT1jW3Q+PjJdfDA7bj13KzEy
fDA7bz0oYVtuXSYxKSE9MDtpZigod3wwKT09KGNbdT4+Ml18MCkpe2lmKG8pe3g9djt5PXd9ZWxz
ZXthW25dPTE7YVt1KzEyfDBdPTA7bD1jW3Q+PjJdfDA7cz1sfDA7cT1jW3M+PjJdfDA7ZD1xKzR8
MDtiPWNbZD4+Ml18MDtjW3M+PjJdPWI7aWYoKGJ8MCkhPTApe2NbYis4Pj4yXT1sfWI9bCs4fDA7
Y1txKzg+PjJdPWNbYj4+Ml07cz1jW2I+PjJdfDA7Zz1zfDA7aWYoKGNbZz4+Ml18MCk9PShsfDAp
KXtjW2c+PjJdPXF9ZWxzZXtjW3MrND4+Ml09cX1jW2Q+PjJdPWw7Y1tiPj4yXT1xO3E9Y1t3KzQ+
PjJdfDA7eD0odnwwKT09KHF8MCk/dzp2O3k9Y1txPj4yXXwwfXo9Y1t5Pj4yXXwwO0E9KHp8MCk9
PTA7aWYoIUEpe2lmKChhW3orMTJ8MF0mMSk9PTApe2g9MzY1O2JyZWFrfX1xPWNbeSs0Pj4yXXww
O2lmKChxfDApIT0wKXtpZigoYVtxKzEyfDBdJjEpPT0wKXtoPTM2NDticmVha319YVt5KzEyfDBd
PTA7cT1jW3krOD4+Ml18MDtCPXErMTJ8MDtpZigoYVtCXSYxKT09MHwocXwwKT09KHh8MCkpe2g9
MzYxO2JyZWFrfWI9Y1txKzg+PjJdfDA7bD1jW2I+PjJdfDA7aWYoKHF8MCkhPShsfDApKXt2PXg7
dz1sO2NvbnRpbnVlfXY9eDt3PWNbYis0Pj4yXXwwO2NvbnRpbnVlfWlmKG8pe0M9djtEPXd9ZWxz
ZXthW25dPTE7YVt1KzEyfDBdPTA7dT1jW3Q+PjJdfDA7dD11KzR8MDtuPWNbdD4+Ml18MDtvPW58
MDtiPWNbbz4+Ml18MDtjW3Q+PjJdPWI7aWYoKGJ8MCkhPTApe2NbYis4Pj4yXT11fWI9dSs4fDA7
Y1tuKzg+PjJdPWNbYj4+Ml07dD1jW2I+PjJdfDA7bD10fDA7aWYoKGNbbD4+Ml18MCk9PSh1fDAp
KXtjW2w+PjJdPW59ZWxzZXtjW3QrND4+Ml09bn1jW28+PjJdPXU7Y1tiPj4yXT1uO249Y1t3Pj4y
XXwwO0M9KHZ8MCk9PShufDApP3c6djtEPWNbbis0Pj4yXXwwfUU9RHwwO0Y9Y1tFPj4yXXwwO2lm
KChGfDApIT0wKXtpZigoYVtGKzEyfDBdJjEpPT0wKXtoPTMzNTticmVha319bj1jW0QrND4+Ml18
MDtpZigobnwwKSE9MCl7aWYoKGFbbisxMnwwXSYxKT09MCl7Rz1uO2g9MzM2O2JyZWFrfX1hW0Qr
MTJ8MF09MDtuPWNbRCs4Pj4yXXwwO2lmKChufDApPT0oQ3wwKSl7SD1DO2g9MzMyO2JyZWFrfWlm
KChhW24rMTJ8MF0mMSk9PTApe0g9bjtoPTMzMjticmVha31iPWNbbis4Pj4yXXwwO3U9Y1tiPj4y
XXwwO2lmKChufDApIT0odXwwKSl7dj1DO3c9dTtjb250aW51ZX12PUM7dz1jW2IrND4+Ml18MH1p
ZigoaHwwKT09MzMyKXthW0grMTJ8MF09MTtyZXR1cm59ZWxzZSBpZigoaHwwKT09MzM1KXtIPWNb
RCs0Pj4yXXwwO2lmKChIfDApPT0wKXtoPTMzN31lbHNle0c9SDtoPTMzNn19ZWxzZSBpZigoaHww
KT09MzYxKXthW0JdPTE7cmV0dXJufWVsc2UgaWYoKGh8MCk9PTM2NCl7aWYoQSl7aD0zNjZ9ZWxz
ZXtoPTM2NX19aWYoKGh8MCk9PTMzNil7aWYoKGFbRysxMnwwXSYxKT09MCl7ST1EO2g9MzQzfWVs
c2V7aD0zMzd9fWVsc2UgaWYoKGh8MCk9PTM2NSl7aWYoKGFbeisxMnwwXSYxKT09MCl7Sj15O2g9
MzcyfWVsc2V7aD0zNjZ9fWlmKChofDApPT0zMzcpe2FbRisxMnwwXT0xO2FbRCsxMnwwXT0wO0Y9
Y1tFPj4yXXwwO3o9Ris0fDA7Rz1jW3o+PjJdfDA7Y1tFPj4yXT1HO2lmKChHfDApIT0wKXtjW0cr
OD4+Ml09RH1HPUQrOHwwO2NbRis4Pj4yXT1jW0c+PjJdO0U9Y1tHPj4yXXwwO0E9RXwwO2lmKChj
W0E+PjJdfDApPT0oRHwwKSl7Y1tBPj4yXT1GfWVsc2V7Y1tFKzQ+PjJdPUZ9Y1t6Pj4yXT1EO2Nb
Rz4+Ml09RjtJPUY7aD0zNDN9ZWxzZSBpZigoaHwwKT09MzY2KXtGPXkrNHwwO2FbKGNbRj4+Ml18
MCkrMTJ8MF09MTthW3krMTJ8MF09MDtHPWNbRj4+Ml18MDtEPUd8MDt6PWNbRD4+Ml18MDtjW0Y+
PjJdPXo7aWYoKHp8MCkhPTApe2Nbeis4Pj4yXT15fXo9eSs4fDA7Y1tHKzg+PjJdPWNbej4+Ml07
Rj1jW3o+PjJdfDA7RT1GfDA7aWYoKGNbRT4+Ml18MCk9PSh5fDApKXtjW0U+PjJdPUd9ZWxzZXtj
W0YrND4+Ml09R31jW0Q+PjJdPXk7Y1t6Pj4yXT1HO0o9RztoPTM3Mn1pZigoaHwwKT09MzQzKXtH
PUkrOHwwO3o9KGNbRz4+Ml18MCkrMTJ8MDthW0krMTJ8MF09YVt6XSYxO2Fbel09MTthWyhjW0kr
ND4+Ml18MCkrMTJ8MF09MTtJPWNbRz4+Ml18MDtHPUkrNHwwO3o9Y1tHPj4yXXwwO3k9enwwO0Q9
Y1t5Pj4yXXwwO2NbRz4+Ml09RDtpZigoRHwwKSE9MCl7Y1tEKzg+PjJdPUl9RD1JKzh8MDtjW3or
OD4+Ml09Y1tEPj4yXTtHPWNbRD4+Ml18MDtGPUd8MDtpZigoY1tGPj4yXXwwKT09KEl8MCkpe2Nb
Rj4+Ml09en1lbHNle2NbRys0Pj4yXT16fWNbeT4+Ml09STtjW0Q+PjJdPXo7cmV0dXJufWVsc2Ug
aWYoKGh8MCk9PTM3Mil7aD1KKzh8MDt6PShjW2g+PjJdfDApKzEyfDA7YVtKKzEyfDBdPWFbel0m
MTthW3pdPTE7YVsoY1tKPj4yXXwwKSsxMnwwXT0xO0o9Y1toPj4yXXwwO2g9SnwwO3o9Y1toPj4y
XXwwO0Q9eis0fDA7ST1jW0Q+PjJdfDA7Y1toPj4yXT1JO2lmKChJfDApIT0wKXtjW0krOD4+Ml09
Sn1JPUorOHwwO2Nbeis4Pj4yXT1jW0k+PjJdO2g9Y1tJPj4yXXwwO3k9aHwwO2lmKChjW3k+PjJd
fDApPT0oSnwwKSl7Y1t5Pj4yXT16fWVsc2V7Y1toKzQ+PjJdPXp9Y1tEPj4yXT1KO2NbST4+Ml09
ejtyZXR1cm59fWZ1bmN0aW9uIGNDKGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3Zh
ciBmPTAsZz0wLGo9MCxrPTAuMCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1
PTAsdj0wO2Y9aTtnPWI7Yj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tiPj4yXT1jW2c+PjJdO2c9
YSs0fDA7aj1jW2I+PjJdfDA7ZG97aWYoKGp8MCkhPShnfDApKXtrPStoW2U+PjNdO2lmKCtoW2or
MTY+PjNdPj1rKXticmVha31iPWd8MDtsPWNbYj4+Ml18MDtpZigobHwwKT09MCl7Y1tkPj4yXT1n
O209YjtpPWY7cmV0dXJuIG18MH1lbHNle249bH13aGlsZSgxKXtpZigraFtuKzE2Pj4zXTxrKXtv
PW4rNHwwO2w9Y1tvPj4yXXwwO2lmKChsfDApPT0wKXtwPTQwNjticmVha31lbHNle249bDtjb250
aW51ZX19ZWxzZXtxPW58MDtsPWNbcT4+Ml18MDtpZigobHwwKT09MCl7cD00MDg7YnJlYWt9ZWxz
ZXtuPWw7Y29udGludWV9fX1pZigocHwwKT09NDA4KXtjW2Q+PjJdPW47bT1xO2k9ZjtyZXR1cm4g
bXwwfWVsc2UgaWYoKHB8MCk9PTQwNil7Y1tkPj4yXT1uO209bztpPWY7cmV0dXJuIG18MH19fXdo
aWxlKDApO289Y1tqPj4yXXwwO2Rve2lmKChqfDApPT0oY1thPj4yXXwwKSl7cj1qfWVsc2V7aWYo
KG98MCk9PTApe249anwwO3doaWxlKDEpe3E9Y1tuKzg+PjJdfDA7aWYoKG58MCk9PShjW3E+PjJd
fDApKXtuPXF9ZWxzZXtzPXE7YnJlYWt9fX1lbHNle249bzt3aGlsZSgxKXtxPWNbbis0Pj4yXXww
O2lmKChxfDApPT0wKXtzPW47YnJlYWt9ZWxzZXtuPXF9fX1rPStoW2U+PjNdO2lmKGs+PStoW3Mr
MTY+PjNdKXtyPXM7YnJlYWt9bj1nfDA7cT1jW24+PjJdfDA7aWYoKHF8MCk9PTApe2NbZD4+Ml09
ZzttPW47aT1mO3JldHVybiBtfDB9ZWxzZXt0PXF9d2hpbGUoMSl7aWYoazwraFt0KzE2Pj4zXSl7
dT10fDA7cT1jW3U+PjJdfDA7aWYoKHF8MCk9PTApe3A9Mzk5O2JyZWFrfWVsc2V7dD1xO2NvbnRp
bnVlfX1lbHNle3Y9dCs0fDA7cT1jW3Y+PjJdfDA7aWYoKHF8MCk9PTApe3A9NDAxO2JyZWFrfWVs
c2V7dD1xO2NvbnRpbnVlfX19aWYoKHB8MCk9PTM5OSl7Y1tkPj4yXT10O209dTtpPWY7cmV0dXJu
IG18MH1lbHNlIGlmKChwfDApPT00MDEpe2NbZD4+Ml09dDttPXY7aT1mO3JldHVybiBtfDB9fX13
aGlsZSgwKTtpZigob3wwKT09MCl7Y1tkPj4yXT1qO209anwwO2k9ZjtyZXR1cm4gbXwwfWVsc2V7
Y1tkPj4yXT1yO209cis0fDA7aT1mO3JldHVybiBtfDB9cmV0dXJuIDB9ZnVuY3Rpb24gY0QoKXtj
QSgxZTUpO3JldHVybiAwfWZ1bmN0aW9uIGNFKGEsYil7YT1hfDA7Yj1ifDA7aWYoKGJ8MCk9PTAp
e3JldHVybn1lbHNle2NFKGEsY1tiPj4yXXwwKTtjRShhLGNbYis0Pj4yXXwwKTtrUyhiKTtyZXR1
cm59fWZ1bmN0aW9uIGNGKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGM9MCxkPTAsZT0wLGY9MCxnPTAs
aj0wLGs9MCxsPTAsbT0wLjA7Yz1pO2k9aSs4fDA7ZD1jfDA7ZT1iLWF8MDtpZigoZXwwKTw9OCl7
aT1jO3JldHVybn1jWShkKTtmPWItOHwwO2lmKGY+Pj4wPmE+Pj4wKXtiPWE7YT1lPj4zO3doaWxl
KDEpe2U9YS0xfDA7ZG97aWYoKGV8MCkhPTApe2lmKChhfDApPT0wKXtnPWNYKGQpfDB9ZWxzZXtq
PTMyLShrWihhfDApfDApfDA7az0oKCgtMT4+PigoMzMtanwwKT4+PjApJmF8MCk9PTApPDwzMT4+
MzEpK2p8MDtqPShrPj4+MCkvKCgoKGsmMzF8MCkhPTApKyhrPj4+NSl8MCk+Pj4wKXwwO2lmKChq
fDApPT0wKXtsPTB9ZWxzZXtsPS0xPj4+KCgzMi1qfDApPj4+MCl9d2hpbGUoMSl7aj0oY1goZCl8
MCkmbDtpZihqPj4+MDxhPj4+MCl7Zz1qO2JyZWFrfX19aWYoKGd8MCk9PTApe2JyZWFrfWo9Yiso
Zzw8Myl8MDttPStoW2I+PjNdO2hbYj4+M109K2hbaj4+M107aFtqPj4zXT1tfX13aGlsZSgwKTtq
PWIrOHwwO2lmKGo+Pj4wPGY+Pj4wKXtiPWo7YT1lfWVsc2V7YnJlYWt9fX1jVyhkKTtpPWM7cmV0
dXJufWZ1bmN0aW9uIGNHKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAs
aj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wO2U9KGR8MCk9PShifDApO2Fb
ZCsxMnwwXT1lJjE7aWYoZSl7cmV0dXJufWVsc2V7Zj1kfXdoaWxlKDEpe2c9Zis4fDA7aD1jW2c+
PjJdfDA7ZD1oKzEyfDA7aWYoKGFbZF0mMSkhPTApe2k9NDg3O2JyZWFrfWo9aCs4fDA7az1jW2o+
PjJdfDA7ZT1jW2s+PjJdfDA7aWYoKGh8MCk9PShlfDApKXtsPWNbays0Pj4yXXwwO2lmKChsfDAp
PT0wKXtpPTQ1MjticmVha31tPWwrMTJ8MDtpZigoYVttXSYxKSE9MCl7aT00NTI7YnJlYWt9YVtk
XT0xO2FbaysxMnwwXT0oa3wwKT09KGJ8MCl8MDthW21dPTF9ZWxzZXtpZigoZXwwKT09MCl7aT00
Njk7YnJlYWt9bT1lKzEyfDA7aWYoKGFbbV0mMSkhPTApe2k9NDY5O2JyZWFrfWFbZF09MTthW2sr
MTJ8MF09KGt8MCk9PShifDApfDA7YVttXT0xfWlmKChrfDApPT0oYnwwKSl7aT00ODQ7YnJlYWt9
ZWxzZXtmPWt9fWlmKChpfDApPT00Njkpe2I9aHwwO2lmKChmfDApPT0oY1tiPj4yXXwwKSl7bT1m
KzR8MDtkPWNbbT4+Ml18MDtjW2I+PjJdPWQ7aWYoKGR8MCk9PTApe249a31lbHNle2NbZCs4Pj4y
XT1oO249Y1tqPj4yXXwwfWNbZz4+Ml09bjtuPWNbaj4+Ml18MDtkPW58MDtpZigoY1tkPj4yXXww
KT09KGh8MCkpe2NbZD4+Ml09Zn1lbHNle2Nbbis0Pj4yXT1mfWNbbT4+Ml09aDtjW2o+PjJdPWY7
bz1mO3A9Y1tnPj4yXXwwfWVsc2V7bz1oO3A9a31hW28rMTJ8MF09MTthW3ArMTJ8MF09MDtvPXAr
NHwwO2c9Y1tvPj4yXXwwO209Z3wwO249Y1ttPj4yXXwwO2Nbbz4+Ml09bjtpZigobnwwKSE9MCl7
Y1tuKzg+PjJdPXB9bj1wKzh8MDtjW2crOD4+Ml09Y1tuPj4yXTtvPWNbbj4+Ml18MDtkPW98MDtp
ZigoY1tkPj4yXXwwKT09KHB8MCkpe2NbZD4+Ml09Z31lbHNle2Nbbys0Pj4yXT1nfWNbbT4+Ml09
cDtjW24+PjJdPWc7cmV0dXJufWVsc2UgaWYoKGl8MCk9PTQ4NCl7cmV0dXJufWVsc2UgaWYoKGl8
MCk9PTQ4Nyl7cmV0dXJufWVsc2UgaWYoKGl8MCk9PTQ1Mil7aWYoKGZ8MCk9PShjW2g+PjJdfDAp
KXtxPWg7cj1rfWVsc2V7Zj1oKzR8MDtpPWNbZj4+Ml18MDtnPWl8MDtuPWNbZz4+Ml18MDtjW2Y+
PjJdPW47aWYoKG58MCk9PTApe3M9a31lbHNle2Nbbis4Pj4yXT1oO3M9Y1tqPj4yXXwwfW49aSs4
fDA7Y1tuPj4yXT1zO3M9Y1tqPj4yXXwwO2s9c3wwO2lmKChjW2s+PjJdfDApPT0oaHwwKSl7Y1tr
Pj4yXT1pfWVsc2V7Y1tzKzQ+PjJdPWl9Y1tnPj4yXT1oO2Nbaj4+Ml09aTtxPWk7cj1jW24+PjJd
fDB9YVtxKzEyfDBdPTE7YVtyKzEyfDBdPTA7cT1yfDA7bj1jW3E+PjJdfDA7aT1uKzR8MDtqPWNb
aT4+Ml18MDtjW3E+PjJdPWo7aWYoKGp8MCkhPTApe2Nbais4Pj4yXT1yfWo9cis4fDA7Y1tuKzg+
PjJdPWNbaj4+Ml07cT1jW2o+PjJdfDA7aD1xfDA7aWYoKGNbaD4+Ml18MCk9PShyfDApKXtjW2g+
PjJdPW59ZWxzZXtjW3ErND4+Ml09bn1jW2k+PjJdPXI7Y1tqPj4yXT1uO3JldHVybn19ZnVuY3Rp
b24gY0goYSxiLGQsZSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaj0wLGs9
MC4wLGw9MC4wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wO2Y9aTtnPWI7Yj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tiPj4yXT1jW2c+
PjJdO2c9YSs0fDA7aj1jW2I+PjJdfDA7ZG97aWYoKGp8MCkhPShnfDApKXtrPStoW2U+PjNdO2w9
K2hbaisxNj4+M107aWYoazxsKXticmVha31pZihsPj1rKXtjW2Q+PjJdPWo7bT1kO2k9ZjtyZXR1
cm4gbXwwfWI9ais0fDA7bj1jW2I+PjJdfDA7bz0obnwwKT09MDtpZihvKXtwPWp8MDt3aGlsZSgx
KXtxPWNbcCs4Pj4yXXwwO2lmKChwfDApPT0oY1txPj4yXXwwKSl7cj1xO2JyZWFrfWVsc2V7cD1x
fX19ZWxzZXtwPW47d2hpbGUoMSl7cT1jW3A+PjJdfDA7aWYoKHF8MCk9PTApe3I9cDticmVha31l
bHNle3A9cX19fXA9Zztkb3tpZigocnwwKSE9KHB8MCkpe2lmKGs8K2hbcisxNj4+M10pe2JyZWFr
fW49Z3wwO3E9Y1tuPj4yXXwwO2lmKChxfDApPT0wKXtjW2Q+PjJdPXA7bT1uO2k9ZjtyZXR1cm4g
bXwwfWVsc2V7cz1xfXdoaWxlKDEpe2w9K2hbcysxNj4+M107aWYoazxsKXt0PXN8MDtxPWNbdD4+
Ml18MDtpZigocXwwKT09MCl7dT01MjE7YnJlYWt9ZWxzZXtzPXE7Y29udGludWV9fWlmKGw+PWsp
e3U9NTI1O2JyZWFrfXY9cys0fDA7cT1jW3Y+PjJdfDA7aWYoKHF8MCk9PTApe3U9NTI0O2JyZWFr
fWVsc2V7cz1xfX1pZigodXwwKT09NTIxKXtjW2Q+PjJdPXM7bT10O2k9ZjtyZXR1cm4gbXwwfWVs
c2UgaWYoKHV8MCk9PTUyNCl7Y1tkPj4yXT1zO209djtpPWY7cmV0dXJuIG18MH1lbHNlIGlmKCh1
fDApPT01MjUpe2NbZD4+Ml09czttPWQ7aT1mO3JldHVybiBtfDB9fX13aGlsZSgwKTtpZihvKXtj
W2Q+PjJdPWo7bT1iO2k9ZjtyZXR1cm4gbXwwfWVsc2V7Y1tkPj4yXT1yO209cnwwO2k9ZjtyZXR1
cm4gbXwwfX19d2hpbGUoMCk7cj1jW2o+PjJdfDA7ZG97aWYoKGp8MCk9PShjW2E+PjJdfDApKXt3
PWp9ZWxzZXtpZigocnwwKT09MCl7cz1qfDA7d2hpbGUoMSl7dj1jW3MrOD4+Ml18MDtpZigoc3ww
KT09KGNbdj4+Ml18MCkpe3M9dn1lbHNle3g9djticmVha319fWVsc2V7cz1yO3doaWxlKDEpe2I9
Y1tzKzQ+PjJdfDA7aWYoKGJ8MCk9PTApe3g9czticmVha31lbHNle3M9Yn19fWs9K2hbZT4+M107
aWYoK2hbeCsxNj4+M108ayl7dz14O2JyZWFrfXM9Z3wwO2I9Y1tzPj4yXXwwO2lmKChifDApPT0w
KXtjW2Q+PjJdPWc7bT1zO2k9ZjtyZXR1cm4gbXwwfWVsc2V7eT1ifXdoaWxlKDEpe2w9K2hbeSsx
Nj4+M107aWYoazxsKXt6PXl8MDtiPWNbej4+Ml18MDtpZigoYnwwKT09MCl7dT01MDI7YnJlYWt9
ZWxzZXt5PWI7Y29udGludWV9fWlmKGw+PWspe3U9NTA2O2JyZWFrfUE9eSs0fDA7Yj1jW0E+PjJd
fDA7aWYoKGJ8MCk9PTApe3U9NTA1O2JyZWFrfWVsc2V7eT1ifX1pZigodXwwKT09NTA1KXtjW2Q+
PjJdPXk7bT1BO2k9ZjtyZXR1cm4gbXwwfWVsc2UgaWYoKHV8MCk9PTUwNil7Y1tkPj4yXT15O209
ZDtpPWY7cmV0dXJuIG18MH1lbHNlIGlmKCh1fDApPT01MDIpe2NbZD4+Ml09eTttPXo7aT1mO3Jl
dHVybiBtfDB9fX13aGlsZSgwKTtpZigocnwwKT09MCl7Y1tkPj4yXT1qO209anwwO2k9ZjtyZXR1
cm4gbXwwfWVsc2V7Y1tkPj4yXT13O209dys0fDA7aT1mO3JldHVybiBtfDB9cmV0dXJuIDB9ZnVu
Y3Rpb24gY0koYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxqPTAsaz0w
LGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAs
ej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MC4wLEg9MCxJPTA7Zz1pO2o9ZDtkPWk7aT1p
Kzh8MDtjW2Q+PjJdPWNbaj4+Ml07Y1tkKzQ+PjJdPWNbais0Pj4yXTtqPWU7ZT1pO2k9aSs4fDA7
Y1tlPj4yXT1jW2o+PjJdO2NbZSs0Pj4yXT1jW2orND4+Ml07aj1mO2Y9aTtpPWkrMXwwO2k9aSs3
Pj4zPDwzO2FbZl09YVtqXXwwO2o9ZHwwO2Y9ZCs0fDA7az1jW2Y+PjJdfDA7bD1jW2U+PjJdfDA7
bT1jW2UrND4+Ml18MDtMNjU1OmRve2lmKChrfDApPT0obXwwKSl7bj1rO289bDtwPTU0OX1lbHNl
e2U9Y1tqPj4yXXwwO3E9ZTtyPWs7cz1jW2U+PjJdfDA7d2hpbGUoMSl7ZT1yKzh8MDtpZigoZS1z
fDApPT00MDk2KXt0PXErNHwwO3U9Y1t0Pj4yXXwwO3Y9dDt3PXU7eD11fWVsc2V7dj1xO3c9ZTt4
PXN9aWYoKHd8MCk9PShtfDApKXticmVha31pZigraFtyPj4zXT09K2hbdz4+M10pe249cjtvPXE7
cD01NDk7YnJlYWsgTDY1NX1lbHNle3E9djtyPXc7cz14fX1jW2o+PjJdPWw7Y1tmPj4yXT1tfX13
aGlsZSgwKTtkb3tpZigocHwwKT09NTQ5KXtjW2o+PjJdPW87Y1tmPj4yXT1uO2lmKChufDApPT0o
bXwwKSl7YnJlYWt9bD1uKzh8MDt4PWNbbz4+Ml18MDtpZigobC14fDApPT00MDk2KXt3PW8rNHww
O3Y9Y1t3Pj4yXXwwO3k9dzt6PXY7QT12O0I9bjtDPW99ZWxzZXt5PW87ej1sO0E9eDtCPW47Qz1v
fXdoaWxlKDEpe3g9eis4fDA7aWYoKHgtQXwwKT09NDA5Nil7bD15KzR8MDt2PWNbbD4+Ml18MDtE
PWw7RT12O0Y9dn1lbHNle0Q9eTtFPXg7Rj1BfWlmKChFfDApPT0obXwwKSl7YnJlYWt9Rz0raFtF
Pj4zXTtpZigraFtCPj4zXT09Ryl7eT1EO3o9RTtBPUY7Qj1CO0M9Qztjb250aW51ZX14PUIrOHww
O2NbZj4+Ml09eDtpZigoeC0oY1tDPj4yXXwwKXwwKT09NDA5Nil7dj1DKzR8MDtjW2o+PjJdPXY7
bD1jW3Y+PjJdfDA7Y1tmPj4yXT1sO0g9djtJPWx9ZWxzZXtIPUM7ST14fWhbST4+M109Rzt5PUQ7
ej1FO0E9Y1tEPj4yXXwwO0I9STtDPUh9eD1CKzh8MDtjW2Y+PjJdPXg7aWYoKHgtKGNbQz4+Ml18
MCl8MCkhPTQwOTYpe2JyZWFrfXg9Qys0fDA7Y1tqPj4yXT14O2NbZj4+Ml09Y1t4Pj4yXX19d2hp
bGUoMCk7Zj1kO2Q9YjtiPWNbZis0Pj4yXXwwO2NbZD4+Ml09Y1tmPj4yXTtjW2QrND4+Ml09Yjtp
PWc7cmV0dXJufWZ1bmN0aW9uIGNKKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7dmFyIGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLjAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAuMCxEPTA7Zz1pO2k9aSs0OHww
O2o9YjtiPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2I+PjJdPWNbaj4+Ml07aj1kO2Q9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1tqPj4yXTtqPWd8MDtrPWcrOHwwO2w9ZysxNnwwO209
ZysyNHwwO249ZyszMnwwO289Zys0MHwwO3N3aXRjaChlfDApe2Nhc2UgMjp7cD1kfDA7cT1jW2Nb
cD4+Ml0+PjJdfDA7Y1twPj4yXT1xO3A9Y1tiPj4yXXwwO2lmKCtoW3ErOD4+M108K2hbcCs4Pj4z
XSl7cj1xKzR8MDtzPXF8MDtjWyhjW3M+PjJdfDApKzQ+PjJdPWNbcj4+Ml07Y1tjW3I+PjJdPj4y
XT1jW3M+PjJdO3Q9cHwwO2NbKGNbdD4+Ml18MCkrND4+Ml09cTtjW3M+PjJdPWNbdD4+Ml07Y1t0
Pj4yXT1xO2Nbcj4+Ml09cDtjW2E+PjJdPXE7aT1nO3JldHVybn1lbHNle2NbYT4+Ml09cDtpPWc7
cmV0dXJufWJyZWFrfTtjYXNlIDA6Y2FzZSAxOntjW2E+PjJdPWNbYj4+Ml07aT1nO3JldHVybn07
ZGVmYXVsdDp7cD1lPj4+MTtxPWJ8MDtiPWNbcT4+Ml18MDtpZigocHwwKT09MCl7dT1ifWVsc2V7
cj1wO3Q9Yjt3aGlsZSgxKXtzPXItMXwwO3Y9Y1t0KzQ+PjJdfDA7aWYoKHN8MCk+MCl7cj1zO3Q9
dn1lbHNle3U9djticmVha319fWNbaz4+Ml09YjtjW2w+PjJdPXU7Y0ooaixrLGwscCxmKTtsPWNb
aj4+Ml18MDtjW3E+PjJdPWw7Y1tuPj4yXT11O3U9ZHwwO2Q9Y1t1Pj4yXXwwO2Nbbz4+Ml09ZDtj
SihtLG4sbyxlLXB8MCxmKTtmPWNbbT4+Ml18MDt3PStoW2wrOD4+M107aWYoK2hbZis4Pj4zXTx3
KXttPWNbZis0Pj4yXXwwO0w2OTc6ZG97aWYoKG18MCk9PShkfDApKXt4PWR9ZWxzZXtwPW07d2hp
bGUoMSl7aWYoK2hbcCs4Pj4zXT49dyl7eD1wO2JyZWFrIEw2OTd9ZT1jW3ArND4+Ml18MDtpZigo
ZXwwKT09KGR8MCkpe3g9ZDticmVha31lbHNle3A9ZX19fX13aGlsZSgwKTttPWNbeD4+Ml18MDtw
PW0rNHwwO2U9ZnwwO2NbKGNbZT4+Ml18MCkrND4+Ml09Y1twPj4yXTtjW2NbcD4+Ml0+PjJdPWNb
ZT4+Ml07bz1jW2wrND4+Ml18MDtuPWx8MDtjWyhjW24+PjJdfDApKzQ+PjJdPWY7Y1tlPj4yXT1j
W24+PjJdO2Nbbj4+Ml09bTtjW3A+PjJdPWw7eT1mO3o9eDtBPW99ZWxzZXt5PWw7ej1mO0E9Y1ts
KzQ+PjJdfDB9Y1txPj4yXT1BO0w3MDQ6ZG97aWYoKEF8MCkhPSh6fDApKXtsPXo7Zj16O289QTt4
PWQ7d2hpbGUoMSl7cD1sKzh8MDtpZigobHwwKT09KHh8MCkpe2JyZWFrIEw3MDR9ZWxzZXtCPW99
d2hpbGUoMSl7Qz0raFtCKzg+PjNdO2lmKCtoW3A+PjNdPEMpe2JyZWFrfW09Y1tCKzQ+PjJdfDA7
Y1txPj4yXT1tO2lmKChtfDApPT0oZnwwKSl7YnJlYWsgTDcwNH1lbHNle0I9bX19cD1jW2wrND4+
Ml18MDtMNzExOmRve2lmKChwfDApPT0oeHwwKSl7RD14fWVsc2V7bT1wO3doaWxlKDEpe2lmKCto
W20rOD4+M10+PUMpe0Q9bTticmVhayBMNzExfW49Y1ttKzQ+PjJdfDA7aWYoKG58MCk9PSh4fDAp
KXtEPXg7YnJlYWt9ZWxzZXttPW59fX19d2hpbGUoMCk7cD1jW0Q+PjJdfDA7bT1wKzR8MDtuPWx8
MDtjWyhjW24+PjJdfDApKzQ+PjJdPWNbbT4+Ml07Y1tjW20+PjJdPj4yXT1jW24+PjJdO2U9Y1tC
KzQ+PjJdfDA7aj0oZnwwKT09KGx8MCk/RDpmO2s9QnwwO2NbKGNbaz4+Ml18MCkrND4+Ml09bDtj
W24+PjJdPWNbaz4+Ml07Y1trPj4yXT1wO2NbbT4+Ml09QjtjW3E+PjJdPWU7aWYoKGV8MCk9PShq
fDApKXticmVhayBMNzA0fWw9RDtmPWo7bz1lO3g9Y1t1Pj4yXXwwfX19d2hpbGUoMCk7Y1thPj4y
XT15O2k9ZztyZXR1cm59fX1mdW5jdGlvbiBjSyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFy
IGU9MCxmPTAsZz0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJ
PTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9
MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAs
YWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFz
PTAsYXQ9MCxhdT0wLGF2PTAsYXc9MCxheD0wLGF5PTAsYXo9MCxhQT0wLGFCPTAsYUM9MCxhRD0w
LGFFPTAsYUY9MCxhRz0wLjAsYUg9MC4wLGFJPTAuMCxhSj0wLjAsYUs9MC4wLGFMPTAsYU09MCxh
Tj0wLGFPPTAsYVA9MCxhUT0wLGFSPTAsYVM9MC4wLGFUPTAsYVU9MCxhVj0wLGFXPTAsYVg9MCxh
WT0wLGFaPTAsYV89MCxhJD0wLGEwPTAuMCxhMT0wLGEyPTAsYTM9MCxhND0wLGE1PTAsYTY9MCxh
Nz0wLGE4PTAuMCxhOT0wLGJhPTAsYmI9MCxiYz0wLGJkPTAuMCxiZT0wLGJmPTAsYmc9MCxiaD0w
LGJpPTAsYmo9MCxiaz0wLGJsPTAsYm09MCxibj0wLGJvPTAsYnA9MCxicT0wLGJyPTAsYnM9MCxi
dD0wLGJ1PTAuMCxidj0wLGJ3PTAsYng9MCxieT0wLGJ6PTAuMCxiQT0wLGJCPTAsYkM9MCxiRD0w
LGJFPTAsYkY9MCxiRz0wLGJIPTAsYkk9MCxiSj0wLGJLPTAsYkw9MCxiTT0wLGJOPTAsYk89MCxi
UD0wLGJRPTAuMCxiUj0wLGJTPTAsYlQ9MDtlPWk7aT1pKzh8MDtmPWE7YT1pO2k9aSs4fDA7Y1th
Pj4yXT1jW2Y+PjJdO2NbYSs0Pj4yXT1jW2YrND4+Ml07Zj1iO2I9aTtpPWkrOHwwO2NbYj4+Ml09
Y1tmPj4yXTtjW2IrND4+Ml09Y1tmKzQ+PjJdO2Y9ZXwwO2c9ZjtqPWk7aT1pKzh8MDtrPWo7bD1p
O2k9aSs4fDA7bT1sO249aTtpPWkrOHwwO289bjtwPWk7aT1pKzh8MDtxPXA7cj1pO2k9aSs4fDA7
cz1yO3Q9aTtpPWkrOHwwO3U9dDt2PWk7aT1pKzh8MDt3PXY7eD1pO2k9aSs4fDA7eT14O3o9aTtp
PWkrOHwwO0E9aTtpPWkrOHwwO0I9aTtpPWkrOHwwO0M9aTtpPWkrOHwwO0Q9QztFPWk7aT1pKzh8
MDtGPWk7aT1pKzh8MDtHPWk7aT1pKzh8MDtIPUc7ST1pO2k9aSs4fDA7Sj1JO0s9aTtpPWkrOHww
O0w9aTtpPWkrOHwwO009aTtpPWkrOHwwO049TTtPPWIrNHwwO1A9Y1tPPj4yXXwwO1E9YSs0fDA7
Uj1jW1E+PjJdfDA7aWYoKFB8MCk9PShSfDApKXtpPWU7cmV0dXJufVM9YnwwO1Q9YXwwO1U9YTth
PXkrNHwwO1Y9eDtXPXp8MDtYPXorNHwwO1k9QXwwO1o9QSs0fDA7Xz1CfDA7JD1CKzR8MDthYT1F
fDA7YWI9RSs0fDA7YWM9RnwwO2FkPUYrNHwwO2FlPWI7Yj1LfDA7YWY9Sys0fDA7YWc9THwwO2Fo
PUwrNHwwO2FpPVA7UD1SO0w3MjU6d2hpbGUoMSl7YWo9Y1tTPj4yXXwwO1I9Y1tUPj4yXXwwO2Fr
PWNbYWo+PjJdfDA7YWw9Y1tSPj4yXXwwO2FtPVAtYWw+PjM7YW49KGFpLWFrPj4zKSsoYWotUjw8
NyktYW18MDtzd2l0Y2goYW58MCl7Y2FzZSA1Onthbz02MzA7YnJlYWsgTDcyNTticmVha307Y2Fz
ZSA0Onthbz02MTA7YnJlYWsgTDcyNTticmVha307Y2FzZSAyOnthbz01OTM7YnJlYWsgTDcyNTti
cmVha307Y2FzZSAzOnthbz01OTc7YnJlYWsgTDcyNTticmVha307Y2FzZSAwOmNhc2UgMTp7YW89
NzYwO2JyZWFrIEw3MjU7YnJlYWt9O2RlZmF1bHQ6e319aWYoKGFufDApPDMxKXthbz02NDM7YnJl
YWt9aWYoKGFpfDApPT0oYWt8MCkpe2FwPWFqLTR8MDthcT1hcDthcj0oY1thcD4+Ml18MCkrNDA5
NnwwfWVsc2V7YXE9YWo7YXI9YWl9YXA9YXItOHwwO2FzPShhbnwwKS8yfDA7YXQ9KGFuKzF8MCk+
Pj4wPjI7ZG97aWYoKGFufDApPjk5OSl7ZG97aWYoYXQpe2F1PWFtK2FzfDA7aWYoKGF1fDApPjAp
e2F2PVIrKCgoYXV8MCkvNTEyfDApPDwyKXwwO2F3PWNbYXY+PjJdfDA7YXg9YXcrKCgoYXV8MCkl
NTEyfDApPDwzKXwwO2F5PWF2O2F6PWF3O2JyZWFrfWVsc2V7YXc9NTExLWF1fDA7YXU9UisoKChh
d3wwKS8tNTEyfDApPDwyKXwwO2F2PWNbYXU+PjJdfDA7YXg9YXYrKDUxMS0oKGF3fDApJTUxMnww
KTw8Myl8MDtheT1hdTthej1hdjticmVha319ZWxzZXtheD1QO2F5PVI7YXo9YWx9fXdoaWxlKDAp
O2F2PShhbnwwKS80fDA7YXU9Y1tVPj4yXXwwO2F3PWNbVSs0Pj4yXXwwO2Nbdj4+Ml09YXU7Y1t2
KzQ+PjJdPWF3O2NbeD4+Ml09YXU7Y1t4KzQ+PjJdPWF3O2FBPShhbiszfDApPj4+MD42O2FCPWF1
O2Rve2lmKGFBKXthdT0oYXctKGNbYUI+PjJdfDApPj4zKSthdnwwO2lmKChhdXwwKT4wKXthQz1h
QisoKChhdXwwKS81MTJ8MCk8PDIpfDA7Y1tWPj4yXT1hQztjW2E+PjJdPShjW2FDPj4yXXwwKSso
KChhdXwwKSU1MTJ8MCk8PDMpO2NbVz4+Ml09YXk7Y1tYPj4yXT1heDtjW1k+PjJdPWF5O2NbWj4+
Ml09YXg7aWYoIWFBKXticmVha319ZWxzZXthQz01MTEtYXV8MDthdT1hQisoKChhQ3wwKS8tNTEy
fDApPDwyKXwwO2NbVj4+Ml09YXU7Y1thPj4yXT0oY1thdT4+Ml18MCkrKDUxMS0oKGFDfDApJTUx
MnwwKTw8Myk7Y1tXPj4yXT1heTtjW1g+PjJdPWF4O2NbWT4+Ml09YXk7Y1taPj4yXT1heH1hQz0o
YXgtYXo+PjMpK2F2fDA7aWYoKGFDfDApPjApe2F1PWF5KygoKGFDfDApLzUxMnwwKTw8Mil8MDtj
W1k+PjJdPWF1O2NbWj4+Ml09KGNbYXU+PjJdfDApKygoKGFDfDApJTUxMnwwKTw8Myk7YnJlYWt9
ZWxzZXthdT01MTEtYUN8MDthQz1heSsoKChhdXwwKS8tNTEyfDApPDwyKXwwO2NbWT4+Ml09YUM7
Y1taPj4yXT0oY1thQz4+Ml18MCkrKDUxMS0oKGF1fDApJTUxMnwwKTw8Myk7YnJlYWt9fWVsc2V7
Y1tXPj4yXT1heTtjW1g+PjJdPWF4O2NbWT4+Ml09YXk7Y1taPj4yXT1heH19d2hpbGUoMCk7Y1tf
Pj4yXT1hcTtjWyQ+PjJdPWFwO2FEPWNMKHcseSx6LEEsQiwwKXwwO2FFPWF4fWVsc2V7ZG97aWYo
YXQpe2F2PWFtK2FzfDA7aWYoKGF2fDApPjApe2FGPShjW1IrKCgoYXZ8MCkvNTEyfDApPDwyKT4+
Ml18MCkrKCgoYXZ8MCklNTEyfDApPDwzKXwwO2JyZWFrfWVsc2V7YUI9NTExLWF2fDA7YUY9KGNb
UisoKChhQnwwKS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKGFCfDApJTUxMnwwKTw8Myl8MDti
cmVha319ZWxzZXthRj1QfX13aGlsZSgwKTthQj1jW1UrND4+Ml18MDthRz0raFthRj4+M107YUg9
K2hbYUI+PjNdO2FJPStoW2FwPj4zXTthdj1hSTxhRztpZihhRz49YUgpe2lmKCFhdil7YUQ9MDth
RT1hRjticmVha31oW2FGPj4zXT1hSTtoW2FwPj4zXT1hRzthSj0raFthRj4+M107YUs9K2hbYUI+
PjNdO2lmKGFKPj1hSyl7YUQ9MTthRT1hRjticmVha31oW2FCPj4zXT1hSjtoW2FGPj4zXT1hSzth
RD0yO2FFPWFGO2JyZWFrfWlmKGF2KXtoW2FCPj4zXT1hSTtoW2FwPj4zXT1hSDthRD0xO2FFPWFG
O2JyZWFrfWhbYUI+PjNdPWFHO2hbYUY+PjNdPWFIO2FHPStoW2FwPj4zXTtpZihhRz49YUgpe2FE
PTE7YUU9YUY7YnJlYWt9aFthRj4+M109YUc7aFthcD4+M109YUg7YUQ9MjthRT1hRn19d2hpbGUo
MCk7Uj1jW1Q+PjJdfDA7YXM9Y1tRPj4yXXwwO2FIPStoW2FzPj4zXTthRz0raFthRT4+M107ZG97
aWYoYUg8YUcpe2FMPWFEO2FNPWFxO2FOPWFwO2FvPTcwN31lbHNle2FtPWFxO2F0PWFwO2FuPWNb
YXE+PjJdfDA7d2hpbGUoMSl7aWYoKGF0fDApPT0oYW58MCkpe2FsPWFtLTR8MDthQj1jW2FsPj4y
XXwwO2FPPWFsO2FQPWFCKzQwOTZ8MDthUT1hQn1lbHNle2FPPWFtO2FQPWF0O2FRPWFufWFSPWFQ
LTh8MDtpZigoYXN8MCk9PShhUnwwKSl7YnJlYWt9YVM9K2hbYVI+PjNdO2lmKGFTPGFHKXthbz03
MDY7YnJlYWt9ZWxzZXthbT1hTzthdD1hUjthbj1hUX19aWYoKGFvfDApPT03MDYpe2FvPTA7aFth
cz4+M109YVM7aFthUj4+M109YUg7YUw9YUQrMXwwO2FNPWFPO2FOPWFSO2FvPTcwNzticmVha31h
bj1hcys4fDA7YXQ9Y1tSPj4yXXwwO2lmKChhbi1hdHwwKT09NDA5Nil7YW09Uis0fDA7YUI9Y1th
bT4+Ml18MDthVD1hQjthVT1hbTthVj1hQn1lbHNle2FUPWFuO2FVPVI7YVY9YXR9YXQ9Y1tTPj4y
XXwwO2FuPWNbTz4+Ml18MDtpZigoYW58MCk9PShjW2F0Pj4yXXwwKSl7YUI9YXQtNHwwO2FXPWFC
O2FYPShjW2FCPj4yXXwwKSs0MDk2fDB9ZWxzZXthVz1hdDthWD1hbn1hbj1hWC04fDA7YUk9K2hb
YW4+PjNdO2Rve2lmKGFIPGFJKXthWT1hVDthWj1hVTthXz1hVn1lbHNle2F0PWFUO2FCPWFVO2Ft
PWFWO0w3ODY6d2hpbGUoMSl7YSQ9YXQ7d2hpbGUoMSl7aWYoKGEkfDApPT0oYW58MCkpe2FvPTc2
NzticmVhayBMNzI1fWEwPStoW2EkPj4zXTtpZihhSDxhMCl7YnJlYWsgTDc4Nn1hbD1hJCs4fDA7
aWYoKGFsLWFtfDApPT00MDk2KXticmVha31lbHNle2EkPWFsfX1hbD1hQis0fDA7YXY9Y1thbD4+
Ml18MDthdD1hdjthQj1hbDthbT1hdn1oW2EkPj4zXT1hSTtoW2FuPj4zXT1hMDthbT1hJCs4fDA7
YXQ9Y1thQj4+Ml18MDtpZigoYW0tYXR8MCkhPTQwOTYpe2FZPWFtO2FaPWFCO2FfPWF0O2JyZWFr
fWF0PWFCKzR8MDthbT1jW2F0Pj4yXXwwO2FZPWFtO2FaPWF0O2FfPWFtfX13aGlsZSgwKTtpZigo
YVl8MCk9PShhbnwwKSl7YW89NzY4O2JyZWFrIEw3MjV9ZWxzZXthMT1hWTthMj1hWjthMz1hVzth
ND1hbjthNT1hX313aGlsZSgxKXthST0raFtjW1E+PjJdPj4zXTthbT1hMTthNj1hMjthdD1hNTtM
Nzk4OndoaWxlKDEpe2E3PWFtO3doaWxlKDEpe2E4PStoW2E3Pj4zXTtpZihhSTxhOCl7YnJlYWsg
TDc5OH1hdj1hNys4fDA7aWYoKGF2LWF0fDApPT00MDk2KXticmVha31lbHNle2E3PWF2fX1hdj1h
Nis0fDA7YWw9Y1thdj4+Ml18MDthbT1hbDthNj1hdjthdD1hbH1hdD1hMzthbT1hNDthQj1jW2Ez
Pj4yXXwwO3doaWxlKDEpe2lmKChhbXwwKT09KGFCfDApKXthbD1hdC00fDA7YXY9Y1thbD4+Ml18
MDthOT1hbDtiYT1hdis0MDk2fDA7YmI9YXZ9ZWxzZXthOT1hdDtiYT1hbTtiYj1hQn1iYz1iYS04
fDA7YmQ9K2hbYmM+PjNdO2lmKGFJPGJkKXthdD1hOTthbT1iYzthQj1iYn1lbHNle2JyZWFrfX1p
ZihhNj4+PjA+PWE5Pj4+MCl7aWYoYTc+Pj4wPj1iYz4+PjB8KGE2fDApIT0oYTl8MCkpe2JyZWFr
fX1oW2E3Pj4zXT1iZDtoW2JjPj4zXT1hODthQj1hNys4fDA7YW09Y1thNj4+Ml18MDtpZigoYUIt
YW18MCkhPTQwOTYpe2ExPWFCO2EyPWE2O2EzPWE5O2E0PWJjO2E1PWFtO2NvbnRpbnVlfWFtPWE2
KzR8MDthQj1jW2FtPj4yXXwwO2ExPWFCO2EyPWFtO2EzPWE5O2E0PWJjO2E1PWFCfWNbVD4+Ml09
YTY7Y1tRPj4yXT1hNztiZT1hN319d2hpbGUoMCk7TDgxNjpkb3tpZigoYW98MCk9PTcwNyl7YW89
MDthcD1hcys4fDA7YW49Y1tSPj4yXXwwO2lmKChhcC1hbnwwKT09NDA5Nil7YUI9Uis0fDA7YW09
Y1thQj4+Ml18MDtiZj1hbTtiZz1hQjtiaD1hbX1lbHNle2JmPWFwO2JnPVI7Ymg9YW59aWYoYmc+
Pj4wPGFNPj4+MCl7Ymk9YUw7Ymo9YmY7Yms9Ymc7Ymw9YUU7Ym09YU07Ym49YU47Ym89Ymg7YW89
NzExfWVsc2V7aWYoKGJnfDApPT0oYU18MCkmYmY+Pj4wPGFOPj4+MCl7Ymk9YUw7Ymo9YmY7Yms9
Ymc7Ymw9YUU7Ym09YU07Ym49YU47Ym89Ymg7YW89NzExfWVsc2V7YnA9YUw7YnE9YmY7YnI9Ymc7
YnM9YUV9fUw4MjM6ZG97aWYoKGFvfDApPT03MTEpe3doaWxlKDEpe2FvPTA7YUg9K2hbYmw+PjNd
O2FuPWJqO2FwPWJrO2FtPWJvO0w4MjY6d2hpbGUoMSl7YnQ9YW47d2hpbGUoMSl7YnU9K2hbYnQ+
PjNdO2lmKGJ1Pj1hSCl7YnJlYWsgTDgyNn1hQj1idCs4fDA7aWYoKGFCLWFtfDApPT00MDk2KXti
cmVha31lbHNle2J0PWFCfX1hQj1hcCs0fDA7YXQ9Y1thQj4+Ml18MDthbj1hdDthcD1hQjthbT1h
dH1hbT1ibTthbj1ibjthdD1jW2JtPj4yXXwwO3doaWxlKDEpe2lmKChhbnwwKT09KGF0fDApKXth
Qj1hbS00fDA7YXY9Y1thQj4+Ml18MDtidj1hQjtidz1hdis0MDk2fDA7Yng9YXZ9ZWxzZXtidj1h
bTtidz1hbjtieD1hdH1ieT1idy04fDA7Yno9K2hbYnk+PjNdO2lmKGJ6Pj1hSCl7YW09YnY7YW49
Ynk7YXQ9Ynh9ZWxzZXticmVha319aWYoYnY+Pj4wPGFwPj4+MCl7YnA9Ymk7YnE9YnQ7YnI9YXA7
YnM9Ymw7YnJlYWsgTDgyM31pZigoYnZ8MCk9PShhcHwwKSZieT4+PjA8YnQ+Pj4wKXticD1iaTti
cT1idDticj1hcDticz1ibDticmVhayBMODIzfWhbYnQ+PjNdPWJ6O2hbYnk+PjNdPWJ1O2F0PWJp
KzF8MDthbj0oYmx8MCk9PShidHwwKT9ieTpibDthbT1idCs4fDA7YXY9Y1thcD4+Ml18MDtpZigo
YW0tYXZ8MCkhPTQwOTYpe2JpPWF0O2JqPWFtO2JrPWFwO2JsPWFuO2JtPWJ2O2JuPWJ5O2JvPWF2
O2FvPTcxMTtjb250aW51ZX1hdj1hcCs0fDA7YW09Y1thdj4+Ml18MDtiaT1hdDtiaj1hbTtiaz1h
djtibD1hbjtibT1idjtibj1ieTtibz1hbTthbz03MTF9fX13aGlsZSgwKTtkb3tpZigoYnF8MCk9
PShic3wwKSl7YkE9YnB9ZWxzZXthSD0raFticz4+M107YUc9K2hbYnE+PjNdO2lmKGFIPj1hRyl7
YkE9YnA7YnJlYWt9aFticT4+M109YUg7aFticz4+M109YUc7YkE9YnArMXwwfX13aGlsZSgwKTtk
b3tpZigoYkF8MCk9PTApe2FtPWNbVSs0Pj4yXXwwO2NbQz4+Ml09Y1tVPj4yXTtjW0MrND4+Ml09
YW07Y1thYT4+Ml09YnI7Y1thYj4+Ml09YnE7YW09Y04oRCxFLDApfDA7Y1thYz4+Ml09YnI7Y1th
ZD4+Ml09YnE7YW49YnEtKGNbYnI+PjJdfDApPj4zO2F2PWFuKzF8MDtpZigoYXZ8MCk+MCl7YXQ9
YnIrKCgoYXZ8MCkvNTEyfDApPDwyKXwwO2NbYWM+PjJdPWF0O2JCPShjW2F0Pj4yXXwwKSsoKChh
dnwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXthdj01MTAtYW58MDthbj1icisoKChhdnwwKS8tNTEyfDAp
PDwyKXwwO2NbYWM+PjJdPWFuO2JCPShjW2FuPj4yXXwwKSsoNTExLSgoYXZ8MCklNTEyfDApPDwz
KXwwfWNbYWQ+PjJdPWJCO2F2PWNbYWUrND4+Ml18MDtjW0c+PjJdPWNbYWU+PjJdO2NbRys0Pj4y
XT1hdjtpZihjTihGLEgsMCl8MCl7aWYoYW0pe2FvPTc3MDticmVhayBMNzI1fWNbUz4+Ml09YnI7
Y1tPPj4yXT1icTtiZT1jW1E+PjJdfDA7YnJlYWsgTDgxNn1pZighYW0pe2JyZWFrfWFtPWJxKzh8
MDtpZigoYW0tKGNbYnI+PjJdfDApfDApPT00MDk2KXthdj1icis0fDA7YkM9Y1thdj4+Ml18MDti
RD1hdn1lbHNle2JDPWFtO2JEPWJyfWNbVD4+Ml09YkQ7Y1tRPj4yXT1iQztiZT1iQzticmVhayBM
ODE2fX13aGlsZSgwKTthbT1jW1E+PjJdfDA7aWYoKGJxfDApPT0oYW18MCkpe2JFPTB9ZWxzZXth
dj1jW1Q+PjJdfDA7YkU9KGJxLShjW2JyPj4yXXwwKT4+MykrKGJyLWF2PDw3KS0oYW0tKGNbYXY+
PjJdfDApPj4zKXwwfWF2PWNbTz4+Ml18MDtpZigoYXZ8MCk9PShicXwwKSl7YkY9MH1lbHNle2Fu
PWNbUz4+Ml18MDtiRj0oYXYtKGNbYW4+PjJdfDApPj4zKSsoYW4tYnI8PDcpLShicS0oY1ticj4+
Ml18MCk+PjMpfDB9aWYoKGJFfDApPChiRnwwKSl7YW49Y1tVKzQ+PjJdfDA7Y1tJPj4yXT1jW1U+
PjJdO2NbSSs0Pj4yXT1hbjtjW2I+PjJdPWJyO2NbYWY+PjJdPWJxO2NLKEosSyxkKTthbj1icSs4
fDA7aWYoKGFuLShjW2JyPj4yXXwwKXwwKT09NDA5Nil7YXY9YnIrNHwwO2JHPWNbYXY+PjJdfDA7
Ykg9YXZ9ZWxzZXtiRz1hbjtiSD1icn1jW1Q+PjJdPWJIO2NbUT4+Ml09Ykc7YmU9Ykc7YnJlYWt9
Y1thZz4+Ml09YnI7Y1thaD4+Ml09YnE7YW49YnEtKGNbYnI+PjJdfDApPj4zO2F2PWFuKzF8MDtp
ZigoYXZ8MCk+MCl7YXQ9YnIrKCgoYXZ8MCkvNTEyfDApPDwyKXwwO2NbYWc+PjJdPWF0O2JJPShj
W2F0Pj4yXXwwKSsoKChhdnwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXthdj01MTAtYW58MDthbj1iciso
KChhdnwwKS8tNTEyfDApPDwyKXwwO2NbYWc+PjJdPWFuO2JJPShjW2FuPj4yXXwwKSsoNTExLSgo
YXZ8MCklNTEyfDApPDwzKXwwfWNbYWg+PjJdPWJJO2F2PWNbYWUrND4+Ml18MDtjW00+PjJdPWNb
YWU+PjJdO2NbTSs0Pj4yXT1hdjtjSyhMLE4sZCk7Y1tTPj4yXT1icjtjW08+PjJdPWJxO2JlPWFt
fX13aGlsZSgwKTtSPWNbTz4+Ml18MDtpZigoUnwwKT09KGJlfDApKXthbz03Njk7YnJlYWt9ZWxz
ZXthaT1SO1A9YmV9fWlmKChhb3wwKT09NjMwKXtiZT1jW1U+PjJdfDA7YnE9Y1tVKzQ+PjJdfDA7
Y1tmPj4yXT1iZTtjW2YrND4+Ml09YnE7Y1tqPj4yXT1iZTtjW2orND4+Ml09YnE7Zj1icTticj1q
O2o9YmU7ZD1mLShjW2o+PjJdfDApPj4zO049ZCsxfDA7aWYoKE58MCk+MCl7TD1qKygoKE58MCkv
NTEyfDApPDwyKXwwO2NbYnI+PjJdPUw7Yko9KGNbTD4+Ml18MCkrKCgoTnwwKSU1MTJ8MCk8PDMp
fDB9ZWxzZXtOPTUxMC1kfDA7ZD1qKygoKE58MCkvLTUxMnwwKTw8Mil8MDtjW2JyPj4yXT1kO2JK
PShjW2Q+PjJdfDApKyg1MTEtKChOfDApJTUxMnwwKTw8Myl8MH1jW2srND4+Ml09Yko7Y1tsPj4y
XT1iZTtjW2wrND4+Ml09YnE7Yko9bDtsPWYtKGNbaj4+Ml18MCk+PjM7Tj1sKzJ8MDtpZigoTnww
KT4wKXtkPWorKCgoTnwwKS81MTJ8MCk8PDIpfDA7Y1tiSj4+Ml09ZDtiSz0oY1tkPj4yXXwwKSso
KChOfDApJTUxMnwwKTw8Myl8MH1lbHNle049NTA5LWx8MDtsPWorKCgoTnwwKS8tNTEyfDApPDwy
KXwwO2NbYko+PjJdPWw7Yks9KGNbbD4+Ml18MCkrKDUxMS0oKE58MCklNTEyfDApPDwzKXwwfWNb
bSs0Pj4yXT1iSztjW24+PjJdPWJlO2Nbbis0Pj4yXT1icTticT1uO249Zi0oY1tqPj4yXXwwKT4+
MztmPW4rM3wwO2lmKChmfDApPjApe2JlPWorKCgoZnwwKS81MTJ8MCk8PDIpfDA7Y1ticT4+Ml09
YmU7Ykw9KGNbYmU+PjJdfDApKygoKGZ8MCklNTEyfDApPDwzKXwwfWVsc2V7Zj01MDgtbnwwO249
aisoKChmfDApLy01MTJ8MCk8PDIpfDA7Y1ticT4+Ml09bjtiTD0oY1tuPj4yXXwwKSsoNTExLSgo
ZnwwKSU1MTJ8MCk8PDMpfDB9Y1tvKzQ+PjJdPWJMO2lmKChhaXwwKT09KGFrfDApKXtiTD1hai00
fDA7Y1tTPj4yXT1iTDtmPShjW2JMPj4yXXwwKSs0MDk2fDA7Y1tPPj4yXT1mO2JNPWZ9ZWxzZXti
TT1haX1jW08+PjJdPWJNLTg7Yk09Y1thZSs0Pj4yXXwwO2NbcD4+Ml09Y1thZT4+Ml07Y1twKzQ+
PjJdPWJNO2NMKGcsayxtLG8scSwwKXwwO2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9PTYxMCl7
cT1jW1U+PjJdfDA7bz1jW1UrND4+Ml18MDttPW87az1vLShjW3E+PjJdfDApPj4zO289aysxfDA7
aWYoKG98MCk+MCl7Yk49KGNbcSsoKChvfDApLzUxMnwwKTw8Mik+PjJdfDApKygoKG98MCklNTEy
fDApPDwzKXwwfWVsc2V7bz01MTAta3wwO2JOPShjW3ErKCgob3wwKS8tNTEyfDApPDwyKT4+Ml18
MCkrKDUxMS0oKG98MCklNTEyfDApPDwzKXwwfW89aysyfDA7aWYoKG98MCk+MCl7Yk89KGNbcSso
KChvfDApLzUxMnwwKTw8Mik+PjJdfDApKygoKG98MCklNTEyfDApPDwzKXwwfWVsc2V7bz01MDkt
a3wwO2JPPShjW3ErKCgob3wwKS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKG98MCklNTEyfDAp
PDwzKXwwfWlmKChhaXwwKT09KGFrfDApKXtvPWFqLTR8MDtjW1M+PjJdPW87cT0oY1tvPj4yXXww
KSs0MDk2fDA7Y1tPPj4yXT1xO2JQPXF9ZWxzZXtiUD1haX1jW08+PjJdPWJQLTg7YlA9Y1thZSs0
Pj4yXXwwO2J1PStoW2JOPj4zXTtiej0raFttPj4zXTthOD0raFtiTz4+M107cT1hODxidTtkb3tp
ZihidTxieil7aWYocSl7aFttPj4zXT1hODtoW2JPPj4zXT1iejtiUT1iejticmVha31oW20+PjNd
PWJ1O2hbYk4+PjNdPWJ6O2JkPStoW2JPPj4zXTtpZihiZD49Ynope2JRPWJkO2JyZWFrfWhbYk4+
PjNdPWJkO2hbYk8+PjNdPWJ6O2JRPWJ6fWVsc2V7aWYoIXEpe2JRPWE4O2JyZWFrfWhbYk4+PjNd
PWE4O2hbYk8+PjNdPWJ1O2JkPStoW2JOPj4zXTthMD0raFttPj4zXTtpZihiZD49YTApe2JRPWJ1
O2JyZWFrfWhbbT4+M109YmQ7aFtiTj4+M109YTA7YlE9K2hbYk8+PjNdfX13aGlsZSgwKTtidT0r
aFtiUD4+M107aWYoYnU+PWJRKXtpPWU7cmV0dXJufWhbYk8+PjNdPWJ1O2hbYlA+PjNdPWJRO2JR
PStoW2JPPj4zXTtidT0raFtiTj4+M107aWYoYlE+PWJ1KXtpPWU7cmV0dXJufWhbYk4+PjNdPWJR
O2hbYk8+PjNdPWJ1O2J1PStoW2JOPj4zXTtiUT0raFttPj4zXTtpZihidT49YlEpe2k9ZTtyZXR1
cm59aFttPj4zXT1idTtoW2JOPj4zXT1iUTtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT02NDMp
e2JOPWNbVSs0Pj4yXXwwO2Nbcj4+Ml09Y1tVPj4yXTtjW3IrND4+Ml09Yk47Yk49Y1thZSs0Pj4y
XXwwO2NbdD4+Ml09Y1thZT4+Ml07Y1t0KzQ+PjJdPWJOO2NNKHMsdSwwKTtpPWU7cmV0dXJufWVs
c2UgaWYoKGFvfDApPT01OTMpe2lmKChhaXwwKT09KGFrfDApKXt1PWFqLTR8MDtjW1M+PjJdPXU7
cz0oY1t1Pj4yXXwwKSs0MDk2fDA7Y1tPPj4yXT1zO2JSPXN9ZWxzZXtiUj1haX1zPWJSLTh8MDtj
W08+PjJdPXM7YlE9K2hbcz4+M107YnU9K2hbUD4+M107aWYoYlE+PWJ1KXtpPWU7cmV0dXJufWhb
UD4+M109YlE7aFtzPj4zXT1idTtpPWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT01OTcpe3M9Y1tV
Pj4yXXwwO1A9Y1tVKzQ+PjJdfDA7VT1QO2JSPVAtKGNbcz4+Ml18MCk+PjM7UD1iUisxfDA7aWYo
KFB8MCk+MCl7YlM9KGNbcysoKChQfDApLzUxMnwwKTw8Mik+PjJdfDApKygoKFB8MCklNTEyfDAp
PDwzKXwwfWVsc2V7UD01MTAtYlJ8MDtiUz0oY1tzKygoKFB8MCkvLTUxMnwwKTw8Mik+PjJdfDAp
Kyg1MTEtKChQfDApJTUxMnwwKTw8Myl8MH1pZigoYWl8MCk9PShha3wwKSl7YWs9YWotNHwwO2Nb
Uz4+Ml09YWs7Uz0oY1thaz4+Ml18MCkrNDA5NnwwO2NbTz4+Ml09UztiVD1TfWVsc2V7YlQ9YWl9
Y1tPPj4yXT1iVC04O2JUPWNbYWUrND4+Ml18MDtidT0raFtiUz4+M107YlE9K2hbVT4+M107YTg9
K2hbYlQ+PjNdO2FlPWE4PGJ1O2lmKGJ1Pj1iUSl7aWYoIWFlKXtpPWU7cmV0dXJufWhbYlM+PjNd
PWE4O2hbYlQ+PjNdPWJ1O2J6PStoW2JTPj4zXTthMD0raFtVPj4zXTtpZihiej49YTApe2k9ZTty
ZXR1cm59aFtVPj4zXT1iejtoW2JTPj4zXT1hMDtpPWU7cmV0dXJufWlmKGFlKXtoW1U+PjNdPWE4
O2hbYlQ+PjNdPWJRO2k9ZTtyZXR1cm59aFtVPj4zXT1idTtoW2JTPj4zXT1iUTtidT0raFtiVD4+
M107aWYoYnU+PWJRKXtpPWU7cmV0dXJufWhbYlM+PjNdPWJ1O2hbYlQ+PjNdPWJRO2k9ZTtyZXR1
cm59ZWxzZSBpZigoYW98MCk9PTc2MCl7aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09NzY3KXtp
PWU7cmV0dXJufWVsc2UgaWYoKGFvfDApPT03Njgpe2k9ZTtyZXR1cm59ZWxzZSBpZigoYW98MCk9
PTc2OSl7aT1lO3JldHVybn1lbHNlIGlmKChhb3wwKT09NzcwKXtpPWU7cmV0dXJufX1mdW5jdGlv
biBjTChhLGIsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7dmFy
IGo9MCxrPTAsbD0wLG09MCxuPTAuMCxvPTAuMCxwPTAuMCxxPTAscj0wLHM9MC4wLHQ9MC4wLHU9
MC4wLHY9MCx3PTA7Zz1pO2o9YTthPWk7aT1pKzh8MDtjW2E+PjJdPWNbaj4+Ml07Y1thKzQ+PjJd
PWNbais0Pj4yXTtqPWI7Yj1pO2k9aSs4fDA7Y1tiPj4yXT1jW2o+PjJdO2NbYis0Pj4yXT1jW2or
ND4+Ml07aj1kO2Q9aTtpPWkrOHwwO2NbZD4+Ml09Y1tqPj4yXTtjW2QrND4+Ml09Y1tqKzQ+PjJd
O2o9ZTtlPWk7aT1pKzh8MDtjW2U+PjJdPWNbaj4+Ml07Y1tlKzQ+PjJdPWNbais0Pj4yXTtqPWY7
Zj1pO2k9aSs4fDA7Y1tmPj4yXT1jW2o+PjJdO2NbZis0Pj4yXT1jW2orND4+Ml07aj1jW2ErND4+
Ml18MDtrPWNbYis0Pj4yXXwwO2w9Y1tkKzQ+PjJdfDA7bT1jW2UrND4+Ml18MDtuPStoW2s+PjNd
O289K2hbaj4+M107cD0raFtsPj4zXTtxPXA8bjtkb3tpZihuPG8pe2lmKHEpe2hbaj4+M109cDto
W2w+PjNdPW87cj0xO3M9bzticmVha31oW2o+PjNdPW47aFtrPj4zXT1vO3Q9K2hbbD4+M107aWYo
dD49byl7cj0xO3M9dDticmVha31oW2s+PjNdPXQ7aFtsPj4zXT1vO3I9MjtzPW99ZWxzZXtpZigh
cSl7cj0wO3M9cDticmVha31oW2s+PjNdPXA7aFtsPj4zXT1uO3Q9K2hbaz4+M107dT0raFtqPj4z
XTtpZih0Pj11KXtyPTE7cz1uO2JyZWFrfWhbaj4+M109dDtoW2s+PjNdPXU7cj0yO3M9K2hbbD4+
M119fXdoaWxlKDApO249K2hbbT4+M107ZG97aWYobjxzKXtoW2w+PjNdPW47aFttPj4zXT1zO3A9
K2hbbD4+M107bz0raFtrPj4zXTtpZihwPj1vKXt2PXIrMXwwO2JyZWFrfWhbaz4+M109cDtoW2w+
PjNdPW87bz0raFtrPj4zXTtwPStoW2o+PjNdO2lmKG8+PXApe3Y9cisyfDA7YnJlYWt9aFtqPj4z
XT1vO2hbaz4+M109cDt2PXIrM3wwfWVsc2V7dj1yfX13aGlsZSgwKTtyPWNbZis0Pj4yXXwwO2Y9
Y1tlKzQ+PjJdfDA7cz0raFtyPj4zXTtuPStoW2Y+PjNdO2lmKHM+PW4pe3c9djtpPWc7cmV0dXJu
IHd8MH1oW2Y+PjNdPXM7aFtyPj4zXT1uO3I9Y1tkKzQ+PjJdfDA7bj0raFtmPj4zXTtzPStoW3I+
PjNdO2lmKG4+PXMpe3c9disxfDA7aT1nO3JldHVybiB3fDB9aFtyPj4zXT1uO2hbZj4+M109cztm
PWNbYis0Pj4yXXwwO3M9K2hbcj4+M107bj0raFtmPj4zXTtpZihzPj1uKXt3PXYrMnwwO2k9Zzty
ZXR1cm4gd3wwfWhbZj4+M109cztoW3I+PjNdPW47cj1jW2ErND4+Ml18MDtuPStoW2Y+PjNdO3M9
K2hbcj4+M107aWYobj49cyl7dz12KzN8MDtpPWc7cmV0dXJuIHd8MH1oW3I+PjNdPW47aFtmPj4z
XT1zO3c9dis0fDA7aT1nO3JldHVybiB3fDB9ZnVuY3Rpb24gY00oYSxiLGQpe2E9YXwwO2I9Ynww
O2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MC4wLHA9MC4wLHE9
MC4wLHI9MC4wLHM9MC4wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTA7ZD1pO2U9YTth
PWk7aT1pKzh8MDtjW2E+PjJdPWNbZT4+Ml07Y1thKzQ+PjJdPWNbZSs0Pj4yXTtlPWI7Yj1pO2k9
aSs4fDA7Y1tiPj4yXT1jW2U+PjJdO2NbYis0Pj4yXT1jW2UrND4+Ml07ZT1jW2E+PjJdfDA7Zj1h
KzR8MDtnPShjW2Y+PjJdfDApLShjW2U+PjJdfDApPj4zO2o9ZysyfDA7aWYoKGp8MCk+MCl7az1l
KygoKGp8MCkvNTEyfDApPDwyKXwwO2w9KGNbaz4+Ml18MCkrKCgoanwwKSU1MTJ8MCk8PDMpfDA7
bT1rfWVsc2V7az01MDktZ3wwO2c9ZSsoKChrfDApLy01MTJ8MCk8PDIpfDA7bD0oY1tnPj4yXXww
KSsoNTExLSgoa3wwKSU1MTJ8MCk8PDMpfDA7bT1nfWc9YTthPWNbZz4+Ml18MDtrPWNbZys0Pj4y
XXwwO2c9aztlPWstKGNbYT4+Ml18MCk+PjM7az1lKzF8MDtpZigoa3wwKT4wKXtuPShjW2ErKCgo
a3wwKS81MTJ8MCk8PDIpPj4yXXwwKSsoKChrfDApJTUxMnwwKTw8Myl8MH1lbHNle2s9NTEwLWV8
MDtuPShjW2ErKCgoa3wwKS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKGt8MCklNTEyfDApPDwz
KXwwfW89K2hbbj4+M107cD0raFtnPj4zXTtxPStoW2w+PjNdO2s9cTxvO2Rve2lmKG88cCl7aWYo
ayl7aFtnPj4zXT1xO2hbbD4+M109cDticmVha31oW2c+PjNdPW87aFtuPj4zXT1wO3I9K2hbbD4+
M107aWYocj49cCl7YnJlYWt9aFtuPj4zXT1yO2hbbD4+M109cH1lbHNle2lmKCFrKXticmVha31o
W24+PjNdPXE7aFtsPj4zXT1vO3I9K2hbbj4+M107cz0raFtnPj4zXTtpZihyPj1zKXticmVha31o
W2c+PjNdPXI7aFtuPj4zXT1zfX13aGlsZSgwKTtuPWwtKGNbbT4+Ml18MCk+PjM7Zz1uKzF8MDtp
ZigoZ3wwKT4wKXtrPW0rKCgoZ3wwKS81MTJ8MCk8PDIpfDA7YT1jW2s+PjJdfDA7dD1rO3U9YSso
KChnfDApJTUxMnwwKTw8Myl8MDt2PWF9ZWxzZXthPTUxMC1ufDA7bj1tKygoKGF8MCkvLTUxMnww
KTw8Mil8MDtnPWNbbj4+Ml18MDt0PW47dT1nKyg1MTEtKChhfDApJTUxMnwwKTw8Myl8MDt2PWd9
Zz1iKzR8MDtiPWw7bD10O3Q9dTt1PW07bT12O0wxMDIyOndoaWxlKDEpe3Y9YjthPXQ7bj11O2s9
bTt3aGlsZSgxKXtpZigoYXwwKT09KGNbZz4+Ml18MCkpe2JyZWFrIEwxMDIyfW89K2hbYT4+M107
cT0raFt2Pj4zXTtpZihvPHEpe2U9bjtqPXY7dz1hO3A9cTt3aGlsZSgxKXtoW3c+PjNdPXA7aWYo
KGp8MCk9PShjW2Y+PjJdfDApKXticmVha31pZigoanwwKT09KGNbZT4+Ml18MCkpe3g9ZS00fDA7
eT14O3o9KGNbeD4+Ml18MCkrNDA5NnwwfWVsc2V7eT1lO3o9an14PXotOHwwO3E9K2hbeD4+M107
aWYobzxxKXtlPXk7dz1qO2o9eDtwPXF9ZWxzZXticmVha319aFtqPj4zXT1vO0E9Y1tsPj4yXXww
fWVsc2V7QT1rfXc9YSs4fDA7aWYoKHctQXwwKT09NDA5Nil7YnJlYWt9ZWxzZXt2PWE7YT13O249
bDtrPUF9fWs9bCs0fDA7bj1jW2s+PjJdfDA7Yj1hO3U9bDtsPWs7dD1uO209bn1pPWQ7cmV0dXJu
fWZ1bmN0aW9uIGNOKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaj0w
LGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAuMCxFPTAuMCxGPTAsRz0wLEg9MC4wLEk9MC4wLEo9MC4w
LEs9MCxMPTAsTT0wLE49MC4wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9
MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MCxhZT0wLGFmPTA7ZD1pO2k9aSs4
fDA7ZT1hO2E9aTtpPWkrOHwwO2NbYT4+Ml09Y1tlPj4yXTtjW2ErND4+Ml09Y1tlKzQ+PjJdO2U9
YjtiPWk7aT1pKzh8MDtjW2I+PjJdPWNbZT4+Ml07Y1tiKzQ+PjJdPWNbZSs0Pj4yXTtlPWR8MDtm
PWU7Zz1pO2k9aSs4fDA7aj1nO2s9aTtpPWkrOHwwO2w9azttPWk7aT1pKzh8MDtuPW07bz1pO2k9
aSs4fDA7cD1vO3E9Yis0fDA7cj1jW3E+PjJdfDA7cz1hKzR8MDt0PWNbcz4+Ml18MDtpZigocnww
KT09KHR8MCkpe3U9MTtpPWQ7cmV0dXJuIHV8MH12PWJ8MDt3PWNbdj4+Ml18MDt4PWNbYT4+Ml18
MDt5PWNbdz4+Ml18MDt6PXQtKGNbeD4+Ml18MCk+PjM7c3dpdGNoKChyLXk+PjMpKyh3LXg8PDcp
LXp8MCl7Y2FzZSAyOntpZigocnwwKT09KHl8MCkpe0E9dy00fDA7Y1t2Pj4yXT1BO0I9KGNbQT4+
Ml18MCkrNDA5NnwwO2NbcT4+Ml09QjtDPUJ9ZWxzZXtDPXJ9Qj1DLTh8MDtjW3E+PjJdPUI7RD0r
aFtCPj4zXTtFPStoW3Q+PjNdO2lmKEQ+PUUpe3U9MTtpPWQ7cmV0dXJuIHV8MH1oW3Q+PjNdPUQ7
aFtCPj4zXT1FO3U9MTtpPWQ7cmV0dXJuIHV8MH07Y2FzZSAwOmNhc2UgMTp7dT0xO2k9ZDtyZXR1
cm4gdXwwfTtjYXNlIDM6e0I9YTt0PWNbQj4+Ml18MDtDPWNbQis0Pj4yXXwwO0I9QztBPUMtKGNb
dD4+Ml18MCk+PjM7Qz1BKzF8MDtpZigoQ3wwKT4wKXtGPShjW3QrKCgoQ3wwKS81MTJ8MCk8PDIp
Pj4yXXwwKSsoKChDfDApJTUxMnwwKTw8Myl8MH1lbHNle0M9NTEwLUF8MDtGPShjW3QrKCgoQ3ww
KS8tNTEyfDApPDwyKT4+Ml18MCkrKDUxMS0oKEN8MCklNTEyfDApPDwzKXwwfWlmKChyfDApPT0o
eXwwKSl7Qz13LTR8MDtjW3Y+PjJdPUM7dD0oY1tDPj4yXXwwKSs0MDk2fDA7Y1txPj4yXT10O0c9
dH1lbHNle0c9cn1jW3E+PjJdPUctODtHPWNbYis0Pj4yXXwwO0U9K2hbRj4+M107RD0raFtCPj4z
XTtIPStoW0c+PjNdO3Q9SDxFO2lmKEU+PUQpe2lmKCF0KXt1PTE7aT1kO3JldHVybiB1fDB9aFtG
Pj4zXT1IO2hbRz4+M109RTtJPStoW0Y+PjNdO0o9K2hbQj4+M107aWYoST49Sil7dT0xO2k9ZDty
ZXR1cm4gdXwwfWhbQj4+M109STtoW0Y+PjNdPUo7dT0xO2k9ZDtyZXR1cm4gdXwwfWlmKHQpe2hb
Qj4+M109SDtoW0c+PjNdPUQ7dT0xO2k9ZDtyZXR1cm4gdXwwfWhbQj4+M109RTtoW0Y+PjNdPUQ7
RT0raFtHPj4zXTtpZihFPj1EKXt1PTE7aT1kO3JldHVybiB1fDB9aFtGPj4zXT1FO2hbRz4+M109
RDt1PTE7aT1kO3JldHVybiB1fDB9O2Nhc2UgNDp7Rz1hO0Y9Y1tHPj4yXXwwO0I9Y1tHKzQ+PjJd
fDA7Rz1CO3Q9Qi0oY1tGPj4yXXwwKT4+MztCPXQrMXwwO2lmKChCfDApPjApe0s9KGNbRisoKChC
fDApLzUxMnwwKTw8Mik+PjJdfDApKygoKEJ8MCklNTEyfDApPDwzKXwwfWVsc2V7Qj01MTAtdHww
O0s9KGNbRisoKChCfDApLy01MTJ8MCk8PDIpPj4yXXwwKSsoNTExLSgoQnwwKSU1MTJ8MCk8PDMp
fDB9Qj10KzJ8MDtpZigoQnwwKT4wKXtMPShjW0YrKCgoQnwwKS81MTJ8MCk8PDIpPj4yXXwwKSso
KChCfDApJTUxMnwwKTw8Myl8MH1lbHNle0I9NTA5LXR8MDtMPShjW0YrKCgoQnwwKS8tNTEyfDAp
PDwyKT4+Ml18MCkrKDUxMS0oKEJ8MCklNTEyfDApPDwzKXwwfWlmKChyfDApPT0oeXwwKSl7Qj13
LTR8MDtjW3Y+PjJdPUI7Rj0oY1tCPj4yXXwwKSs0MDk2fDA7Y1txPj4yXT1GO009Rn1lbHNle009
cn1jW3E+PjJdPU0tODtNPWNbYis0Pj4yXXwwO0Q9K2hbSz4+M107RT0raFtHPj4zXTtIPStoW0w+
PjNdO0Y9SDxEO2Rve2lmKEQ8RSl7aWYoRil7aFtHPj4zXT1IO2hbTD4+M109RTtOPUU7YnJlYWt9
aFtHPj4zXT1EO2hbSz4+M109RTtKPStoW0w+PjNdO2lmKEo+PUUpe049SjticmVha31oW0s+PjNd
PUo7aFtMPj4zXT1FO049RX1lbHNle2lmKCFGKXtOPUg7YnJlYWt9aFtLPj4zXT1IO2hbTD4+M109
RDtKPStoW0s+PjNdO0k9K2hbRz4+M107aWYoSj49SSl7Tj1EO2JyZWFrfWhbRz4+M109SjtoW0s+
PjNdPUk7Tj0raFtMPj4zXX19d2hpbGUoMCk7RD0raFtNPj4zXTtpZihEPj1OKXt1PTE7aT1kO3Jl
dHVybiB1fDB9aFtMPj4zXT1EO2hbTT4+M109TjtOPStoW0w+PjNdO0Q9K2hbSz4+M107aWYoTj49
RCl7dT0xO2k9ZDtyZXR1cm4gdXwwfWhbSz4+M109TjtoW0w+PjNdPUQ7RD0raFtLPj4zXTtOPSto
W0c+PjNdO2lmKEQ+PU4pe3U9MTtpPWQ7cmV0dXJuIHV8MH1oW0c+PjNdPUQ7aFtLPj4zXT1OO3U9
MTtpPWQ7cmV0dXJuIHV8MH07Y2FzZSA1OntLPWE7Rz1jW0s+PjJdfDA7TD1jW0srND4+Ml18MDtj
W2U+PjJdPUc7Y1tlKzQ+PjJdPUw7Y1tnPj4yXT1HO2NbZys0Pj4yXT1MO2U9TDtLPWc7Zz1HO009
ZS0oY1tnPj4yXXwwKT4+MztGPU0rMXwwO2lmKChGfDApPjApe0I9ZysoKChGfDApLzUxMnwwKTw8
Mil8MDtjW0s+PjJdPUI7Tz0oY1tCPj4yXXwwKSsoKChGfDApJTUxMnwwKTw8Myl8MH1lbHNle0Y9
NTEwLU18MDtNPWcrKCgoRnwwKS8tNTEyfDApPDwyKXwwO2NbSz4+Ml09TTtPPShjW00+PjJdfDAp
Kyg1MTEtKChGfDApJTUxMnwwKTw8Myl8MH1jW2orND4+Ml09TztjW2s+PjJdPUc7Y1trKzQ+PjJd
PUw7Tz1rO2s9ZS0oY1tnPj4yXXwwKT4+MztGPWsrMnwwO2lmKChGfDApPjApe009ZysoKChGfDAp
LzUxMnwwKTw8Mil8MDtjW08+PjJdPU07UD0oY1tNPj4yXXwwKSsoKChGfDApJTUxMnwwKTw8Myl8
MH1lbHNle0Y9NTA5LWt8MDtrPWcrKCgoRnwwKS8tNTEyfDApPDwyKXwwO2NbTz4+Ml09aztQPShj
W2s+PjJdfDApKyg1MTEtKChGfDApJTUxMnwwKTw8Myl8MH1jW2wrND4+Ml09UDtjW20+PjJdPUc7
Y1ttKzQ+PjJdPUw7TD1tO209ZS0oY1tnPj4yXXwwKT4+MztlPW0rM3wwO2lmKChlfDApPjApe0c9
ZysoKChlfDApLzUxMnwwKTw8Mil8MDtjW0w+PjJdPUc7UT0oY1tHPj4yXXwwKSsoKChlfDApJTUx
MnwwKTw8Myl8MH1lbHNle2U9NTA4LW18MDttPWcrKCgoZXwwKS8tNTEyfDApPDwyKXwwO2NbTD4+
Ml09bTtRPShjW20+PjJdfDApKyg1MTEtKChlfDApJTUxMnwwKTw8Myl8MH1jW24rND4+Ml09UTtp
ZigocnwwKT09KHl8MCkpe3k9dy00fDA7Y1t2Pj4yXT15O3Y9KGNbeT4+Ml18MCkrNDA5NnwwO2Nb
cT4+Ml09djtSPXZ9ZWxzZXtSPXJ9Y1txPj4yXT1SLTg7Uj1iO2I9Y1tSKzQ+PjJdfDA7Y1tvPj4y
XT1jW1I+PjJdO2Nbbys0Pj4yXT1iO2NMKGYsaixsLG4scCwwKXwwO3U9MTtpPWQ7cmV0dXJuIHV8
MH07ZGVmYXVsdDp7cD16KzJ8MDtpZigocHwwKT4wKXtuPXgrKCgocHwwKS81MTJ8MCk8PDIpfDA7
Uz1uO1Q9KGNbbj4+Ml18MCkrKCgocHwwKSU1MTJ8MCk8PDMpfDB9ZWxzZXtwPTUwOS16fDA7ej14
KygoKHB8MCkvLTUxMnwwKTw8Mil8MDtTPXo7VD0oY1t6Pj4yXXwwKSsoNTExLSgocHwwKSU1MTJ8
MCk8PDMpfDB9cD1hO2E9Y1twPj4yXXwwO3o9Y1twKzQ+PjJdfDA7cD16O3g9ei0oY1thPj4yXXww
KT4+Mzt6PXgrMXwwO2lmKCh6fDApPjApe1U9KGNbYSsoKCh6fDApLzUxMnwwKTw8Mik+PjJdfDAp
KygoKHp8MCklNTEyfDApPDwzKXwwfWVsc2V7ej01MTAteHwwO1U9KGNbYSsoKCh6fDApLy01MTJ8
MCk8PDIpPj4yXXwwKSsoNTExLSgoenwwKSU1MTJ8MCk8PDMpfDB9Tj0raFtVPj4zXTtEPStoW3A+
PjNdO0g9K2hbVD4+M107ej1IPE47ZG97aWYoTjxEKXtpZih6KXtoW3A+PjNdPUg7aFtUPj4zXT1E
O2JyZWFrfWhbcD4+M109TjtoW1U+PjNdPUQ7RT0raFtUPj4zXTtpZihFPj1EKXticmVha31oW1U+
PjNdPUU7aFtUPj4zXT1EfWVsc2V7aWYoIXope2JyZWFrfWhbVT4+M109SDtoW1Q+PjNdPU47RT0r
aFtVPj4zXTtJPStoW3A+PjNdO2lmKEU+PUkpe2JyZWFrfWhbcD4+M109RTtoW1U+PjNdPUl9fXdo
aWxlKDApO1U9VC0oY1tTPj4yXXwwKT4+MztwPVUrMXwwO2lmKChwfDApPjApe3o9UysoKChwfDAp
LzUxMnwwKTw8Mil8MDthPWNbej4+Ml18MDtWPTA7Vz1hKygoKHB8MCklNTEyfDApPDwzKXwwO1g9
ejtZPVM7Wj1UO189YX1lbHNle2E9NTEwLVV8MDtVPVMrKCgoYXwwKS8tNTEyfDApPDwyKXwwO3o9
Y1tVPj4yXXwwO1Y9MDtXPXorKDUxMS0oKGF8MCklNTEyfDApPDwzKXwwO1g9VTtZPVM7Wj1UO189
en1MMTA2NTp3aGlsZSgxKXt6PVY7JD1XO1Q9WTtTPVo7VT1fO3doaWxlKDEpe2lmKCgkfDApPT0o
Y1txPj4yXXwwKSl7dT0xO2FhPTkwNjticmVhayBMMTA2NX1OPStoWyQ+PjNdO0g9K2hbUz4+M107
aWYoTjxIKXthPVQ7cD1TO3g9JDtEPUg7d2hpbGUoMSl7aFt4Pj4zXT1EO2lmKChwfDApPT0oY1tz
Pj4yXXwwKSl7YnJlYWt9aWYoKHB8MCk9PShjW2E+PjJdfDApKXtuPWEtNHwwO2FiPW47YWM9KGNb
bj4+Ml18MCkrNDA5NnwwfWVsc2V7YWI9YTthYz1wfW49YWMtOHwwO0g9K2hbbj4+M107aWYoTjxI
KXthPWFiO3g9cDtwPW47RD1IfWVsc2V7YnJlYWt9fWhbcD4+M109Tjt4PXorMXwwO2lmKCh4fDAp
PT04KXticmVhayBMMTA2NX1hZD14O2FlPWNbWD4+Ml18MH1lbHNle2FkPXo7YWU9VX14PSQrOHww
O2lmKCh4LWFlfDApPT00MDk2KXticmVha31lbHNle3o9YWQ7Uz0kOyQ9eDtUPVg7VT1hZX19VT1Y
KzR8MDtUPWNbVT4+Ml18MDtWPWFkO1c9VDtZPVg7WD1VO1o9JDtfPVR9aWYoKGFhfDApPT05MDYp
e2k9ZDtyZXR1cm4gdXwwfWFhPSQrOHwwO2lmKChhYS0oY1tYPj4yXXwwKXwwKT09NDA5Nil7YWY9
Y1tYKzQ+PjJdfDB9ZWxzZXthZj1hYX11PShhZnwwKT09KGNbcT4+Ml18MCk7aT1kO3JldHVybiB1
fDB9fXJldHVybiAwfWZ1bmN0aW9uIGNPKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0w
LGY9MCxnPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MDtlPWErOHwwO2Y9Y1tlPj4yXXwwO2c9YSs0fDA7aT1jW2c+PjJd
fDA7aWYoKGZ8MCk9PShpfDApKXtqPTB9ZWxzZXtqPShmLWk8PDcpLTF8MH1rPWErMTZ8MDtsPWNb
az4+Ml18MDttPWErMjB8MDtuPWNbbT4+Ml18MDtvPWotbC1ufDA7aWYobz4+PjA8Yj4+PjApe2NR
KGEsYi1vfDApO3A9Y1ttPj4yXXwwO3E9Y1trPj4yXXwwO3I9Y1tnPj4yXXwwO3M9Y1tlPj4yXXww
fWVsc2V7cD1uO3E9bDtyPWk7cz1mfWY9cStwfDA7cD1yKyhmPj4+OTw8Mil8MDtpZigoc3wwKT09
KHJ8MCkpe3Q9MH1lbHNle3Q9KGNbcD4+Ml18MCkrKChmJjUxMSk8PDMpfDB9aWYoKGJ8MCk9PTAp
e3JldHVybn1lbHNle3U9dDt2PXA7dz1ifXdoaWxlKDEpe2lmKCh1fDApIT0wKXtoW3U+PjNdPSto
W2Q+PjNdfWI9dy0xfDA7cD11Kzh8MDtpZigocC0oY1t2Pj4yXXwwKXwwKT09NDA5Nil7dD12KzR8
MDt4PXQ7eT1jW3Q+PjJdfDB9ZWxzZXt4PXY7eT1wfWNbbT4+Ml09KGNbbT4+Ml18MCkrMTtpZigo
YnwwKT09MCl7YnJlYWt9ZWxzZXt1PXk7dj14O3c9Yn19cmV0dXJufWZ1bmN0aW9uIGNQKGEsYil7
YT1hfDA7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTA7ZD1hKzR8MDtlPWNbZD4+Ml18MDtmPWF8MDtkb3tp
ZigoZXwwKT09KGNbZj4+Ml18MCkpe2c9YSs4fDA7aD1jW2c+PjJdfDA7aT1hKzEyfDA7aj1jW2k+
PjJdfDA7az1qO2lmKGg+Pj4wPGo+Pj4wKXtqPWg7bD0oKGstaj4+MikrMXwwKS8yfDA7bT1qLWV8
MDtqPWgrKGwtKG0+PjIpPDwyKXwwO2tfKGp8MCxlfDAsbXwwKTtjW2Q+PjJdPWo7Y1tnPj4yXT0o
Y1tnPj4yXXwwKSsobDw8Mik7bj1qO2JyZWFrfWo9ay1lPj4xO2s9KGp8MCk9PTA/MTpqO2o9a08o
azw8Mil8MDtsPWorKChrKzN8MCk+Pj4yPDwyKXwwO209aisoazw8Mil8MDtpZigoZXwwKT09KGh8
MCkpe289bDtwPWV9ZWxzZXtrPWU7cT1sO2Rve2lmKChxfDApPT0wKXtyPTB9ZWxzZXtjW3E+PjJd
PWNbaz4+Ml07cj1xfXE9cis0fDA7az1rKzR8MDt9d2hpbGUoKGt8MCkhPShofDApKTtvPXE7cD1j
W2Y+PjJdfDB9Y1tmPj4yXT1qO2NbZD4+Ml09bDtjW2c+PjJdPW87Y1tpPj4yXT1tO2lmKChwfDAp
PT0wKXtuPWw7YnJlYWt9a1MocCk7bj1jW2Q+PjJdfDB9ZWxzZXtuPWV9fXdoaWxlKDApO2U9bi00
fDA7aWYoKGV8MCk9PTApe3M9bjt0PXMtNHwwO2NbZD4+Ml09dDtyZXR1cm59Y1tlPj4yXT1jW2I+
PjJdO3M9Y1tkPj4yXXwwO3Q9cy00fDA7Y1tkPj4yXT10O3JldHVybn1mdW5jdGlvbiBjUShhLGIp
e2E9YXwwO2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxD
PTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9
MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxh
Yz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9MDtkPWk7aT1pKzMyfDA7
ZT1kfDA7Zj1kKzh8MDtnPWF8MDtoPWErOHwwO2o9Y1toPj4yXXwwO2s9YSs0fDA7bD1jW2s+PjJd
fDA7bT0oKGp8MCk9PShsfDApKStifDA7Yj0oKG0mNTExfDApIT0wKSsobT4+PjkpfDA7bT1hKzE2
fDA7bj1jW20+PjJdfDA7bz1uPj4+OTtwPWI+Pj4wPG8+Pj4wP2I6bztxPWItcHwwO2lmKChifDAp
PT0ocHwwKSl7Y1ttPj4yXT1uLShiPDw5KTtpZigoYnwwKT09MCl7aT1kO3JldHVybn1uPWErMTJ8
MDtyPWF8MDtzPWI7dD1qO3U9bDt3aGlsZSgxKXt2PWNbdT4+Ml18MDt3PXUrNHwwO2Nbaz4+Ml09
dztkb3tpZigodHwwKT09KGNbbj4+Ml18MCkpe3g9Y1tyPj4yXXwwO2lmKHc+Pj4wPng+Pj4wKXt5
PXc7ej0oKHkteD4+MikrMXwwKS8tMnwwO0E9eisxfDA7Qj10LXl8MDtrXyh1KyhBPDwyKXwwLHd8
MCxCfDApO3k9dSsoQSsoQj4+Mik8PDIpfDA7Y1toPj4yXT15O2Nbaz4+Ml09KGNbaz4+Ml18MCkr
KHo8PDIpO0M9eTticmVha315PXQteD4+MTt6PSh5fDApPT0wPzE6eTt5PWtPKHo8PDIpfDA7Qj15
Kyh6Pj4+Mjw8Mil8MDtBPXkrKHo8PDIpfDA7aWYoKHd8MCk9PSh0fDApKXtEPUI7RT14fWVsc2V7
eD13O3o9Qjtkb3tpZigoenwwKT09MCl7Rj0wfWVsc2V7Y1t6Pj4yXT1jW3g+PjJdO0Y9en16PUYr
NHwwO3g9eCs0fDA7fXdoaWxlKCh4fDApIT0odHwwKSk7RD16O0U9Y1tyPj4yXXwwfWNbcj4+Ml09
eTtjW2s+PjJdPUI7Y1toPj4yXT1EO2Nbbj4+Ml09QTtpZigoRXwwKT09MCl7Qz1EO2JyZWFrfWtT
KEUpO0M9Y1toPj4yXXwwfWVsc2V7Qz10fX13aGlsZSgwKTtpZigoQ3wwKT09MCl7Rz0wfWVsc2V7
Y1tDPj4yXT12O0c9Y1toPj4yXXwwfXc9Rys0fDA7Y1toPj4yXT13O3g9cy0xfDA7aWYoKHh8MCk9
PTApe2JyZWFrfXM9eDt0PXc7dT1jW2s+PjJdfDB9aT1kO3JldHVybn11PWErMTJ8MDt0PXV8MDtz
PWNbdD4+Ml18MDtHPWF8MDthPXMtKGNbRz4+Ml18MCl8MDtDPWotbD4+MjtpZihxPj4+MDw9KChh
Pj4yKS1DfDApPj4+MCl7bD1xO0U9ajtqPXM7d2hpbGUoMSl7aWYoKGp8MCk9PShFfDApKXtIPTk3
MTticmVha31zPWtPKDQwOTYpfDA7aWYoKEV8MCk9PTApe0k9MH1lbHNle2NbRT4+Ml09cztJPWNb
aD4+Ml18MH1zPUkrNHwwO2NbaD4+Ml09cztEPWwtMXwwO2lmKChEfDApPT0wKXtKPXM7SD05NzI7
YnJlYWt9bD1EO0U9cztqPWNbdD4+Ml18MH1kb3tpZigoSHwwKT09OTcxKXtpZigobHwwKT09MCl7
Sj1qO0g9OTcyO2JyZWFrfUU9fm87ST1+YjtzPUU+Pj4wPkk+Pj4wP0U6STtJPWw7ZG97Y1tlPj4y
XT1rTyg0MDk2KXwwO2NQKGcsZSk7ST1JLTF8MDtLPWNbaD4+Ml18MDtMPShjW20+PjJdfDApKzUx
Mi0oKEstKGNbaz4+Ml18MCl8MCk9PTQpfDA7Y1ttPj4yXT1MO313aGlsZSgoSXwwKSE9MCk7TT1s
LTEtc3wwO049SztPPUx9fXdoaWxlKDApO2lmKChIfDApPT05NzIpe009cDtOPUo7Tz1jW20+PjJd
fDB9Y1ttPj4yXT1PLShNPDw5KTtpZigoTXwwKT09MCl7aT1kO3JldHVybn1lbHNle1A9TTtRPU59
ZG97Tj1jW2s+PjJdfDA7TT1jW04+PjJdfDA7Tz1OKzR8MDtjW2s+PjJdPU87ZG97aWYoKFF8MCk9
PShjW3Q+PjJdfDApKXtKPWNbRz4+Ml18MDtpZihPPj4+MD5KPj4+MCl7SD1PO0w9KChILUo+PjIp
KzF8MCkvLTJ8MDtLPUwrMXwwO2w9US1IfDA7a18oTisoSzw8Mil8MCxPfDAsbHwwKTtIPU4rKEsr
KGw+PjIpPDwyKXwwO2NbaD4+Ml09SDtjW2s+PjJdPShjW2s+PjJdfDApKyhMPDwyKTtSPUg7YnJl
YWt9SD1RLUo+PjE7TD0oSHwwKT09MD8xOkg7SD1rTyhMPDwyKXwwO2w9SCsoTD4+PjI8PDIpfDA7
Sz1IKyhMPDwyKXwwO2lmKChPfDApPT0oUXwwKSl7Uz1sO1Q9Sn1lbHNle0o9TztMPWw7ZG97aWYo
KEx8MCk9PTApe1U9MH1lbHNle2NbTD4+Ml09Y1tKPj4yXTtVPUx9TD1VKzR8MDtKPUorNHwwO313
aGlsZSgoSnwwKSE9KFF8MCkpO1M9TDtUPWNbRz4+Ml18MH1jW0c+PjJdPUg7Y1trPj4yXT1sO2Nb
aD4+Ml09UztjW3Q+PjJdPUs7aWYoKFR8MCk9PTApe1I9UzticmVha31rUyhUKTtSPWNbaD4+Ml18
MH1lbHNle1I9UX19d2hpbGUoMCk7aWYoKFJ8MCk9PTApe1Y9MH1lbHNle2NbUj4+Ml09TTtWPWNb
aD4+Ml18MH1RPVYrNHwwO2NbaD4+Ml09UTtQPVAtMXwwO313aGlsZSgoUHwwKSE9MCk7aT1kO3Jl
dHVybn1QPXA8PDk7UT1hPj4xO2E9cStDfDA7Vj1RPj4+MDxhPj4+MD9hOlE7UT1mKzEyfDA7Y1tR
Pj4yXT0wO2NbZisxNj4+Ml09dTtpZigoVnwwKT09MCl7Vz0wfWVsc2V7Vz1rTyhWPDwyKXwwfXU9
ZnwwO2NbdT4+Ml09VzthPVcrKEMtcDw8Mil8MDtDPWYrOHwwO2NbQz4+Ml09YTtSPWYrNHwwO2Nb
Uj4+Ml09YTtUPVcrKFY8PDIpfDA7Y1tRPj4yXT1UO1Y9cTtxPVc7Vz1hO1M9VDtUPWE7d2hpbGUo
MSl7YT1rTyg0MDk2KXwwO2Rve2lmKChXfDApPT0oU3wwKSl7aWYoVD4+PjA+cT4+PjApe1U9VDtP
PSgoVS1xPj4yKSsxfDApLy0yfDA7Tj1TLVV8MDtrXyhUKyhPPDwyKXwwLFR8MCxOfDApO1U9VCso
TysoTj4+Mik8PDIpfDA7Y1tDPj4yXT1VO049KGNbUj4+Ml18MCkrKE88PDIpfDA7Y1tSPj4yXT1O
O1g9VTtZPVM7Wj1xO189TjticmVha31OPVMtcT4+MTtVPShOfDApPT0wPzE6TjtOPWtPKFU8PDIp
fDA7Tz1OKyhVPj4+Mjw8Mil8MDtzPU4rKFU8PDIpfDA7aWYoKFR8MCk9PShTfDApKXskPU87YWE9
cX1lbHNle1U9VDtKPU87ZG97aWYoKEp8MCk9PTApe2FiPTB9ZWxzZXtjW0o+PjJdPWNbVT4+Ml07
YWI9Sn1KPWFiKzR8MDtVPVUrNHwwO313aGlsZSgoVXwwKSE9KFN8MCkpOyQ9SjthYT1jW3U+PjJd
fDB9Y1t1Pj4yXT1OO2NbUj4+Ml09TztjW0M+PjJdPSQ7Y1tRPj4yXT1zO2lmKChhYXwwKT09MCl7
WD0kO1k9cztaPU47Xz1PO2JyZWFrfWtTKGFhKTtYPSQ7WT1zO1o9TjtfPU99ZWxzZXtYPVc7WT1T
O1o9cTtfPVR9fXdoaWxlKDApO2lmKChYfDApPT0wKXthYz0wfWVsc2V7Y1tYPj4yXT1hO2FjPWNb
Qz4+Ml18MH1hZD1hYys0fDA7Y1tDPj4yXT1hZDtNPVYtMXwwO2lmKChNfDApPT0wKXticmVha31l
bHNle1Y9TTtxPVo7Vz1hZDtTPVk7VD1ffX1pZigocHwwKSE9MCl7Xz1wO3A9Y1trPj4yXXwwO1Q9
YWQ7YWQ9WTtZPVo7d2hpbGUoMSl7ZG97aWYoKFR8MCk9PShhZHwwKSl7Wj1jW1I+PjJdfDA7aWYo
Wj4+PjA+WT4+PjApe1M9WjtXPSgoUy1ZPj4yKSsxfDApLy0yfDA7cT1aKyhXPDwyKXwwO1Y9YWQt
U3wwO2tfKHF8MCxafDAsVnwwKTtTPVorKFcrKFY+PjIpPDwyKXwwO2NbQz4+Ml09UztjW1I+PjJd
PXE7YWU9UzthZj1hZDthZz1ZO2JyZWFrfVM9YWQtWT4+MTtxPShTfDApPT0wPzE6UztTPWtPKHE8
PDIpfDA7Vj1TKyhxPj4+Mjw8Mil8MDtXPVMrKHE8PDIpfDA7aWYoKFp8MCk9PShhZHwwKSl7YWg9
VjthaT1ZfWVsc2V7cT1aO1o9Vjtkb3tpZigoWnwwKT09MCl7YWo9MH1lbHNle2NbWj4+Ml09Y1tx
Pj4yXTthaj1afVo9YWorNHwwO3E9cSs0fDA7fXdoaWxlKChxfDApIT0oYWR8MCkpO2FoPVo7YWk9
Y1t1Pj4yXXwwfWNbdT4+Ml09UztjW1I+PjJdPVY7Y1tDPj4yXT1haDtjW1E+PjJdPVc7aWYoKGFp
fDApPT0wKXthZT1haDthZj1XO2FnPVM7YnJlYWt9a1MoYWkpO2FlPWFoO2FmPVc7YWc9U31lbHNl
e2FlPVQ7YWY9YWQ7YWc9WX19d2hpbGUoMCk7aWYoKGFlfDApPT0wKXthaz0wfWVsc2V7Y1thZT4+
Ml09Y1twPj4yXTthaz1jW0M+PjJdfDB9YT1hays0fDA7Y1tDPj4yXT1hO3E9KGNbaz4+Ml18MCkr
NHwwO2Nbaz4+Ml09cTtPPV8tMXwwO2lmKChPfDApPT0wKXticmVha31lbHNle189TztwPXE7VD1h
O2FkPWFmO1k9YWd9fX1hZz1jW2g+PjJdfDA7d2hpbGUoMSl7aWYoKGFnfDApPT0oY1trPj4yXXww
KSl7YnJlYWt9WT1hZy00fDA7Y1MoZixZKTthZz1ZfWY9Y1tHPj4yXXwwO2NbRz4+Ml09Y1t1Pj4y
XTtjW3U+PjJdPWY7Y1trPj4yXT1jW1I+PjJdO2NbUj4+Ml09YWc7Uj1jW2g+PjJdfDA7Y1toPj4y
XT1jW0M+PjJdO2NbQz4+Ml09UjtoPWNbdD4+Ml18MDtjW3Q+PjJdPWNbUT4+Ml07Y1tRPj4yXT1o
O2NbbT4+Ml09KGNbbT4+Ml18MCktUDtpZigoYWd8MCkhPShSfDApKXtjW0M+PjJdPVIrKH4oKFIt
NCsoLWFnfDApfDApPj4+Mik8PDIpfWlmKChmfDApPT0wKXtpPWQ7cmV0dXJufWtTKGYpO2k9ZDty
ZXR1cm59ZnVuY3Rpb24gY1IoYSxiLGMsZCxlLGYpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9
ZXwwO2Y9ZnwwO3ZhciBnPTAuMCxpPTAuMCxqPTAuMCxrPTAsbD0wLjAsbT0wLjAsbj0wLjAsbz0w
LHA9MDtnPStoW2I+PjNdO2k9K2hbYT4+M107aj0raFtjPj4zXTtmPWo8Zztkb3tpZihnPGkpe2lm
KGYpe2hbYT4+M109ajtoW2M+PjNdPWk7az0xO2w9aTticmVha31oW2E+PjNdPWc7aFtiPj4zXT1p
O209K2hbYz4+M107aWYobT49aSl7az0xO2w9bTticmVha31oW2I+PjNdPW07aFtjPj4zXT1pO2s9
MjtsPWl9ZWxzZXtpZighZil7az0wO2w9ajticmVha31oW2I+PjNdPWo7aFtjPj4zXT1nO209K2hb
Yj4+M107bj0raFthPj4zXTtpZihtPj1uKXtrPTE7bD1nO2JyZWFrfWhbYT4+M109bTtoW2I+PjNd
PW47az0yO2w9K2hbYz4+M119fXdoaWxlKDApO2c9K2hbZD4+M107ZG97aWYoZzxsKXtoW2M+PjNd
PWc7aFtkPj4zXT1sO2o9K2hbYz4+M107aT0raFtiPj4zXTtpZihqPj1pKXtvPWsrMXwwO2JyZWFr
fWhbYj4+M109ajtoW2M+PjNdPWk7aT0raFtiPj4zXTtqPStoW2E+PjNdO2lmKGk8ail7aFthPj4z
XT1pO2hbYj4+M109ajtvPWsrM3wwO2JyZWFrfWVsc2V7bz1rKzJ8MDticmVha319ZWxzZXtvPWt9
fXdoaWxlKDApO2w9K2hbZT4+M107Zz0raFtkPj4zXTtpZihsPj1nKXtwPW87cmV0dXJuIHB8MH1o
W2Q+PjNdPWw7aFtlPj4zXT1nO2c9K2hbZD4+M107bD0raFtjPj4zXTtpZihnPj1sKXtwPW8rMXww
O3JldHVybiBwfDB9aFtjPj4zXT1nO2hbZD4+M109bDtsPStoW2M+PjNdO2c9K2hbYj4+M107aWYo
bD49Zyl7cD1vKzJ8MDtyZXR1cm4gcHwwfWhbYj4+M109bDtoW2M+PjNdPWc7Zz0raFtiPj4zXTts
PStoW2E+PjNdO2lmKGc+PWwpe3A9byszfDA7cmV0dXJuIHB8MH1oW2E+PjNdPWc7aFtiPj4zXT1s
O3A9bys0fDA7cmV0dXJuIHB8MH1mdW5jdGlvbiBjUyhhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTAs
ZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxz
PTAsdD0wO2Q9YSs0fDA7ZT1jW2Q+PjJdfDA7Zj1hfDA7ZG97aWYoKGV8MCk9PShjW2Y+PjJdfDAp
KXtnPWErOHwwO2g9Y1tnPj4yXXwwO2k9YSsxMnwwO2o9Y1tpPj4yXXwwO2s9ajtpZihoPj4+MDxq
Pj4+MCl7aj1oO2w9KChrLWo+PjIpKzF8MCkvMnwwO209ai1lfDA7aj1oKyhsLShtPj4yKTw8Mil8
MDtrXyhqfDAsZXwwLG18MCk7Y1tkPj4yXT1qO2NbZz4+Ml09KGNbZz4+Ml18MCkrKGw8PDIpO249
ajticmVha31qPWstZT4+MTtrPShqfDApPT0wPzE6ajtqPWtPKGs8PDIpfDA7bD1qKygoayszfDAp
Pj4+Mjw8Mil8MDttPWorKGs8PDIpfDA7aWYoKGV8MCk9PShofDApKXtvPWw7cD1lfWVsc2V7az1l
O3E9bDtkb3tpZigocXwwKT09MCl7cj0wfWVsc2V7Y1txPj4yXT1jW2s+PjJdO3I9cX1xPXIrNHww
O2s9ays0fDA7fXdoaWxlKChrfDApIT0oaHwwKSk7bz1xO3A9Y1tmPj4yXXwwfWNbZj4+Ml09ajtj
W2Q+PjJdPWw7Y1tnPj4yXT1vO2NbaT4+Ml09bTtpZigocHwwKT09MCl7bj1sO2JyZWFrfWtTKHAp
O249Y1tkPj4yXXwwfWVsc2V7bj1lfX13aGlsZSgwKTtlPW4tNHwwO2lmKChlfDApPT0wKXtzPW47
dD1zLTR8MDtjW2Q+PjJdPXQ7cmV0dXJufWNbZT4+Ml09Y1tiPj4yXTtzPWNbZD4+Ml18MDt0PXMt
NHwwO2NbZD4+Ml09dDtyZXR1cm59ZnVuY3Rpb24gY1QoKXtjWzI0NDZdPTA7Y1syNDQ3XT0wO2Nb
MjQ0OF09MDthJCg3Miw5Nzg0LHV8MCl8MDtyZXR1cm59ZnVuY3Rpb24gY1UoYSxiLGMpe2E9YXww
O2I9YnwwO2M9Y3wwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MC4wLHE9MC4wLHI9MC4wLHM9MC4wLHQ9MC4wLHU9MCx2PTAsdz0wLHg9MC4wLHk9MCx6
PTAuMCxBPTAsQj0wLEM9MCxEPTAuMCxFPTAsRj0wLEc9MC4wLEg9MCxJPTAsSj0wLEs9MC4wLEw9
MCxNPTAsTj0wLjAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAuMCxVPTAsVj0wLFc9MC4wLFg9MCxZ
PTAuMDtkPWE7YT1iO0wxMzk3OndoaWxlKDEpe2I9YTtlPWEtOHwwO2Y9ZDtMMTM5OTp3aGlsZSgx
KXtnPWY7aT1iLWd8MDtqPWk+PjM7c3dpdGNoKGp8MCl7Y2FzZSAzOntrPTExMDI7YnJlYWsgTDEz
OTc7YnJlYWt9O2Nhc2UgNTp7az0xMTIyO2JyZWFrIEwxMzk3O2JyZWFrfTtjYXNlIDI6e2s9MTEw
MDticmVhayBMMTM5NzticmVha307Y2FzZSAwOmNhc2UgMTp7az0xMTg1O2JyZWFrIEwxMzk3O2Jy
ZWFrfTtjYXNlIDQ6e2s9MTExMDticmVhayBMMTM5NzticmVha307ZGVmYXVsdDp7fX1pZigoaXww
KTwyNDgpe2s9MTEyNDticmVhayBMMTM5N31sPShqfDApLzJ8MDttPWYrKGw8PDMpfDA7ZG97aWYo
KGl8MCk+Nzk5Mil7bj0oanwwKS80fDA7bz1jUihmLGYrKG48PDMpfDAsbSxmKyhuK2w8PDMpfDAs
ZSwwKXwwfWVsc2V7cD0raFttPj4zXTtxPStoW2Y+PjNdO3I9K2hbZT4+M107bj1yPHA7aWYocD49
cSl7aWYoIW4pe289MDticmVha31oW20+PjNdPXI7aFtlPj4zXT1wO3M9K2hbbT4+M107dD0raFtm
Pj4zXTtpZihzPj10KXtvPTE7YnJlYWt9aFtmPj4zXT1zO2hbbT4+M109dDtvPTI7YnJlYWt9aWYo
bil7aFtmPj4zXT1yO2hbZT4+M109cTtvPTE7YnJlYWt9aFtmPj4zXT1wO2hbbT4+M109cTtwPSto
W2U+PjNdO2lmKHA+PXEpe289MTticmVha31oW20+PjNdPXA7aFtlPj4zXT1xO289Mn19d2hpbGUo
MCk7cT0raFtmPj4zXTtwPStoW20+PjNdO2Rve2lmKHE8cCl7dT1lO3Y9b31lbHNle2w9ZTt3aGls
ZSgxKXt3PWwtOHwwO2lmKChmfDApPT0od3wwKSl7YnJlYWt9eD0raFt3Pj4zXTtpZih4PHApe2s9
MTE2MjticmVha31lbHNle2w9d319aWYoKGt8MCk9PTExNjIpe2s9MDtoW2Y+PjNdPXg7aFt3Pj4z
XT1xO3U9dzt2PW8rMXwwO2JyZWFrfWw9Zis4fDA7cj0raFtlPj4zXTtpZihxPHIpe3k9bH1lbHNl
e2o9bDt3aGlsZSgxKXtpZigoanwwKT09KGV8MCkpe2s9MTE5NzticmVhayBMMTM5N316PStoW2o+
PjNdO0E9ais4fDA7aWYocTx6KXticmVha31lbHNle2o9QX19aFtqPj4zXT1yO2hbZT4+M109ejt5
PUF9aWYoKHl8MCk9PShlfDApKXtrPTExOTI7YnJlYWsgTDEzOTd9ZWxzZXtCPWU7Qz15fXdoaWxl
KDEpe3Q9K2hbZj4+M107bD1DO3doaWxlKDEpe0Q9K2hbbD4+M107RT1sKzh8MDtpZih0Pj1EKXts
PUV9ZWxzZXtGPUI7YnJlYWt9fWRve0Y9Ri04fDA7Rz0raFtGPj4zXTt9d2hpbGUodDxHKTtpZihs
Pj4+MD49Rj4+PjApe2Y9bDtjb250aW51ZSBMMTM5OX1oW2w+PjNdPUc7aFtGPj4zXT1EO0I9RjtD
PUV9fX13aGlsZSgwKTtqPWYrOHwwO0wxNDM4OmRve2lmKGo+Pj4wPHU+Pj4wKXtpPXU7bj1qO0g9
djtJPW07d2hpbGUoMSl7cT0raFtJPj4zXTtKPW47d2hpbGUoMSl7Sz0raFtKPj4zXTtMPUorOHww
O2lmKEs8cSl7Sj1MfWVsc2V7TT1pO2JyZWFrfX1kb3tNPU0tOHwwO049K2hbTT4+M107fXdoaWxl
KE4+PXEpO2lmKEo+Pj4wPk0+Pj4wKXtPPUo7UD1IO1E9STticmVhayBMMTQzOH1oW0o+PjNdPU47
aFtNPj4zXT1LO2k9TTtuPUw7SD1IKzF8MDtJPShJfDApPT0oSnwwKT9NOkl9fWVsc2V7Tz1qO1A9
djtRPW19fXdoaWxlKDApO2Rve2lmKChPfDApPT0oUXwwKSl7Uj1QfWVsc2V7cT0raFtRPj4zXTtw
PStoW08+PjNdO2lmKHE+PXApe1I9UDticmVha31oW08+PjNdPXE7aFtRPj4zXT1wO1I9UCsxfDB9
fXdoaWxlKDApO2lmKChSfDApPT0wKXtTPWNWKGYsTywwKXwwO209Tys4fDA7aWYoY1YobSxhLDAp
fDApe2s9MTE3NDticmVha31pZihTKXtmPW07Y29udGludWV9fW09TztpZigobS1nfDApPj0oYi1t
fDApKXtrPTExNzg7YnJlYWt9Y1UoZixPLGMpO2Y9Tys4fDB9aWYoKGt8MCk9PTExNzQpe2s9MDtp
ZihTKXtrPTExODY7YnJlYWt9ZWxzZXtkPWY7YT1PO2NvbnRpbnVlfX1lbHNlIGlmKChrfDApPT0x
MTc4KXtrPTA7Y1UoTys4fDAsYSxjKTtkPWY7YT1PO2NvbnRpbnVlfX1pZigoa3wwKT09MTEwMil7
Tz1mKzh8MDtLPStoW08+PjNdO049K2hbZj4+M107RD0raFtlPj4zXTtkPUQ8SztpZihLPj1OKXtp
ZighZCl7cmV0dXJufWhbTz4+M109RDtoW2U+PjNdPUs7Rz0raFtPPj4zXTt6PStoW2Y+PjNdO2lm
KEc+PXope3JldHVybn1oW2Y+PjNdPUc7aFtPPj4zXT16O3JldHVybn1pZihkKXtoW2Y+PjNdPUQ7
aFtlPj4zXT1OO3JldHVybn1oW2Y+PjNdPUs7aFtPPj4zXT1OO0s9K2hbZT4+M107aWYoSz49Til7
cmV0dXJufWhbTz4+M109SztoW2U+PjNdPU47cmV0dXJufWVsc2UgaWYoKGt8MCk9PTExMjIpe2NS
KGYsZis4fDAsZisxNnwwLGYrMjR8MCxlLDApfDA7cmV0dXJufWVsc2UgaWYoKGt8MCk9PTExMjQp
e089ZisxNnwwO2Q9Zis4fDA7Tj0raFtkPj4zXTtLPStoW2Y+PjNdO0Q9K2hbTz4+M107Yz1EPE47
ZG97aWYoTjxLKXtpZihjKXtoW2Y+PjNdPUQ7aFtPPj4zXT1LO1Q9SzticmVha31oW2Y+PjNdPU47
aFtkPj4zXT1LO2lmKEQ+PUspe1Q9RDticmVha31oW2Q+PjNdPUQ7aFtPPj4zXT1LO1Q9S31lbHNl
e2lmKCFjKXtUPUQ7YnJlYWt9aFtkPj4zXT1EO2hbTz4+M109TjtpZihEPj1LKXtUPU47YnJlYWt9
aFtmPj4zXT1EO2hbZD4+M109SztUPU59fXdoaWxlKDApO2Q9ZisyNHwwO2lmKChkfDApPT0oYXww
KSl7cmV0dXJufWVsc2V7VT1PO1Y9ZDtXPVR9d2hpbGUoMSl7VD0raFtWPj4zXTtpZihUPFcpe2Q9
VTtPPVY7Tj1XO3doaWxlKDEpe2hbTz4+M109TjtpZigoZHwwKT09KGZ8MCkpe1g9ZjticmVha31j
PWQtOHwwO0s9K2hbYz4+M107aWYoVDxLKXtPPWQ7ZD1jO049S31lbHNle1g9ZDticmVha319aFtY
Pj4zXT1UfWQ9Vis4fDA7aWYoKGR8MCk9PShhfDApKXticmVha31OPStoW1Y+PjNdO1U9VjtWPWQ7
Vz1OfXJldHVybn1lbHNlIGlmKChrfDApPT0xMTk3KXtyZXR1cm59ZWxzZSBpZigoa3wwKT09MTEw
MCl7Vz0raFtlPj4zXTtOPStoW2Y+PjNdO2lmKFc+PU4pe3JldHVybn1oW2Y+PjNdPVc7aFtlPj4z
XT1OO3JldHVybn1lbHNlIGlmKChrfDApPT0xMTg1KXtyZXR1cm59ZWxzZSBpZigoa3wwKT09MTE4
Nil7cmV0dXJufWVsc2UgaWYoKGt8MCk9PTExOTIpe3JldHVybn1lbHNlIGlmKChrfDApPT0xMTEw
KXtrPWYrOHwwO1Y9ZisxNnwwO049K2hbaz4+M107Vz0raFtmPj4zXTtLPStoW1Y+PjNdO1U9SzxO
O2Rve2lmKE48Vyl7aWYoVSl7aFtmPj4zXT1LO2hbVj4+M109VztZPVc7YnJlYWt9aFtmPj4zXT1O
O2hbaz4+M109VztpZihLPj1XKXtZPUs7YnJlYWt9aFtrPj4zXT1LO2hbVj4+M109VztZPVd9ZWxz
ZXtpZighVSl7WT1LO2JyZWFrfWhbaz4+M109SztoW1Y+PjNdPU47aWYoSz49Vyl7WT1OO2JyZWFr
fWhbZj4+M109SztoW2s+PjNdPVc7WT1OfX13aGlsZSgwKTtOPStoW2U+PjNdO2lmKE4+PVkpe3Jl
dHVybn1oW1Y+PjNdPU47aFtlPj4zXT1ZO1k9K2hbVj4+M107Tj0raFtrPj4zXTtpZihZPj1OKXty
ZXR1cm59aFtrPj4zXT1ZO2hbVj4+M109TjtOPStoW2Y+PjNdO2lmKFk+PU4pe3JldHVybn1oW2Y+
PjNdPVk7aFtrPj4zXT1OO3JldHVybn19ZnVuY3Rpb24gY1YoYSxiLGMpe2E9YXwwO2I9YnwwO2M9
Y3wwO3ZhciBkPTAsZT0wLGY9MC4wLGc9MC4wLGk9MC4wLGo9MCxrPTAuMCxsPTAuMCxtPTAsbj0w
LjAsbz0wLjAscD0wLHE9MCxyPTAscz0wLjAsdD0wLHU9MCx2PTA7c3dpdGNoKGItYT4+M3wwKXtj
YXNlIDA6Y2FzZSAxOntkPTE7cmV0dXJuIGR8MH07Y2FzZSAzOntjPWErOHwwO2U9Yi04fDA7Zj0r
aFtjPj4zXTtnPStoW2E+PjNdO2k9K2hbZT4+M107aj1pPGY7aWYoZj49Zyl7aWYoIWope2Q9MTty
ZXR1cm4gZHwwfWhbYz4+M109aTtoW2U+PjNdPWY7az0raFtjPj4zXTtsPStoW2E+PjNdO2lmKGs+
PWwpe2Q9MTtyZXR1cm4gZHwwfWhbYT4+M109aztoW2M+PjNdPWw7ZD0xO3JldHVybiBkfDB9aWYo
ail7aFthPj4zXT1pO2hbZT4+M109ZztkPTE7cmV0dXJuIGR8MH1oW2E+PjNdPWY7aFtjPj4zXT1n
O2Y9K2hbZT4+M107aWYoZj49Zyl7ZD0xO3JldHVybiBkfDB9aFtjPj4zXT1mO2hbZT4+M109Zztk
PTE7cmV0dXJuIGR8MH07Y2FzZSAyOntlPWItOHwwO2c9K2hbZT4+M107Zj0raFthPj4zXTtpZihn
Pj1mKXtkPTE7cmV0dXJuIGR8MH1oW2E+PjNdPWc7aFtlPj4zXT1mO2Q9MTtyZXR1cm4gZHwwfTtj
YXNlIDQ6e2U9YSs4fDA7Yz1hKzE2fDA7aj1iLTh8MDtmPStoW2U+PjNdO2c9K2hbYT4+M107aT0r
aFtjPj4zXTttPWk8Zjtkb3tpZihmPGcpe2lmKG0pe2hbYT4+M109aTtoW2M+PjNdPWc7bj1nO2Jy
ZWFrfWhbYT4+M109ZjtoW2U+PjNdPWc7aWYoaT49Zyl7bj1pO2JyZWFrfWhbZT4+M109aTtoW2M+
PjNdPWc7bj1nfWVsc2V7aWYoIW0pe249aTticmVha31oW2U+PjNdPWk7aFtjPj4zXT1mO2lmKGk+
PWcpe249ZjticmVha31oW2E+PjNdPWk7aFtlPj4zXT1nO249Zn19d2hpbGUoMCk7Zj0raFtqPj4z
XTtpZihmPj1uKXtkPTE7cmV0dXJuIGR8MH1oW2M+PjNdPWY7aFtqPj4zXT1uO249K2hbYz4+M107
Zj0raFtlPj4zXTtpZihuPj1mKXtkPTE7cmV0dXJuIGR8MH1oW2U+PjNdPW47aFtjPj4zXT1mO2Y9
K2hbYT4+M107aWYobj49Zil7ZD0xO3JldHVybiBkfDB9aFthPj4zXT1uO2hbZT4+M109ZjtkPTE7
cmV0dXJuIGR8MH07Y2FzZSA1OntjUihhLGErOHwwLGErMTZ8MCxhKzI0fDAsYi04fDAsMCl8MDtk
PTE7cmV0dXJuIGR8MH07ZGVmYXVsdDp7ZT1hKzE2fDA7Yz1hKzh8MDtmPStoW2M+PjNdO249K2hb
YT4+M107Zz0raFtlPj4zXTtqPWc8Zjtkb3tpZihmPG4pe2lmKGope2hbYT4+M109ZztoW2U+PjNd
PW47bz1uO2JyZWFrfWhbYT4+M109ZjtoW2M+PjNdPW47aWYoZz49bil7bz1nO2JyZWFrfWhbYz4+
M109ZztoW2U+PjNdPW47bz1ufWVsc2V7aWYoIWope289ZzticmVha31oW2M+PjNdPWc7aFtlPj4z
XT1mO2lmKGc+PW4pe289ZjticmVha31oW2E+PjNdPWc7aFtjPj4zXT1uO289Zn19d2hpbGUoMCk7
Yz1hKzI0fDA7aWYoKGN8MCk9PShifDApKXtkPTE7cmV0dXJuIGR8MH1lbHNle3A9ZTtxPTA7cj1j
O3M9b313aGlsZSgxKXtvPStoW3I+PjNdO2lmKG88cyl7Yz1wO2U9cjtmPXM7d2hpbGUoMSl7aFtl
Pj4zXT1mO2lmKChjfDApPT0oYXwwKSl7dD1hO2JyZWFrfWo9Yy04fDA7bj0raFtqPj4zXTtpZihv
PG4pe2U9YztjPWo7Zj1ufWVsc2V7dD1jO2JyZWFrfX1oW3Q+PjNdPW87Yz1xKzF8MDtpZigoY3ww
KT09OCl7YnJlYWt9ZWxzZXt1PWN9fWVsc2V7dT1xfWM9cis4fDA7aWYoKGN8MCk9PShifDApKXtk
PTE7dj0xMjU2O2JyZWFrfWY9K2hbcj4+M107cD1yO3E9dTtyPWM7cz1mfWlmKCh2fDApPT0xMjU2
KXtyZXR1cm4gZHwwfWQ9KHIrOHwwKT09KGJ8MCk7cmV0dXJuIGR8MH19cmV0dXJuIDB9ZnVuY3Rp
b24gY1coYSl7YT1hfDA7dmFyIGI9MDthPShjWzQwMzhdfDApLTF8MDtjWzQwMzhdPWE7aWYoKGF8
MCkhPTApe3JldHVybn1iO3JldHVybn1mdW5jdGlvbiBjWChiKXtiPWJ8MDt2YXIgZD0wLGU9MCxm
PTA7ZG97aWYoKGFbMTYyODBdfDApPT0wKXtpZigoYmMoMTYyODApfDApPT0wKXticmVha31jWzI5
NjJdPTU0ODk7Yj0xO2Q9NTQ4OTtkb3tkPShhZyhkPj4+MzBeZCwxODEyNDMzMjUzKXwwKStifDA7
Y1sxMTg0OCsoYjw8Mik+PjJdPWQ7Yj1iKzF8MDt9d2hpbGUoYj4+PjA8NjI0KTtjWzM1ODZdPTB9
fXdoaWxlKDApO2I9Y1szNTg2XXwwO2Q9KChiKzF8MCk+Pj4wKSU2MjR8MDtlPTExODQ4KyhiPDwy
KXwwO2Y9Y1sxMTg0OCsoZDw8Mik+PjJdfDA7Y1tlPj4yXT0tKGYmMSkmLTE3Mjc0ODM2ODFeY1sx
MTg0OCsoKCgoYiszOTd8MCk+Pj4wKSU2MjR8MCk8PDIpPj4yXV4oZiYyMTQ3NDgzNjQ2fGNbZT4+
Ml0mLTIxNDc0ODM2NDgpPj4+MTtlPWNbMTE4NDgrKGNbMzU4Nl08PDIpPj4yXXwwO2Y9ZT4+PjEx
XmU7Y1szNTg2XT1kO2Q9Zjw8NyYtMTY1ODAzODY1Nl5mO2Y9ZDw8MTUmLTI3MjIzNjU0NF5kO3Jl
dHVybiBmPj4+MTheZnwwfWZ1bmN0aW9uIGNZKGEpe2E9YXwwO3ZhciBiPTA7YjtjWzQwMzhdPTE7
cmV0dXJufWZ1bmN0aW9uIGNaKGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGo9MCxr
PTAsbD0wO2I9aTtpPWkrMzJ8MDtkPWJ8MDtlPWIrOHwwO2Y9YisxNnwwO2c9YisyNHwwO2RxKDE1
MTM2LGNbbz4+Ml18MCwxNTE5Mik7Y1s0MDE0XT00NTAwO2NbNDAxNl09NDUyMDtjWzQwMTVdPTA7
aD1jWzExMjJdfDA7ZWsoMTYwNTYraHwwLDE1MTM2KTtjW2grMTYxMjg+PjJdPTA7Y1toKzE2MTMy
Pj4yXT0tMTtoPWNbdD4+Ml18MDtlcCgxNTA0MCk7Y1szNzYwXT00NjQ4O2NbMzc2OF09aDtpTihn
LDE1MDQ0KTtoPWlYKGcsMTUzOTIpfDA7aj1oO2lPKGcpO2NbMzc2OV09ajtjWzM3NzBdPTE1MjAw
O2FbMTUwODRdPShiMFtjWyhjW2g+PjJdfDApKzI4Pj4yXSYxMjddKGopfDApJjE7Y1szOTQ4XT00
NDA0O2NbMzk0OV09NDQyNDtqPWNbMTA5OF18MDtlaygxNTc5MitqfDAsMTUwNDApO2g9ais3Mnww
O2NbMTU3OTIraD4+Ml09MDtnPWorNzZ8MDtjWzE1NzkyK2c+PjJdPS0xO2s9Y1tyPj4yXXwwO2Vw
KDE1MDg4KTtjWzM3NzJdPTQ2NDg7Y1szNzgwXT1rO2lOKGYsMTUwOTIpO2s9aVgoZiwxNTM5Mil8
MDtsPWs7aU8oZik7Y1szNzgxXT1sO2NbMzc4Ml09MTUyMDg7YVsxNTEzMl09KGIwW2NbKGNbaz4+
Ml18MCkrMjg+PjJdJjEyN10obCl8MCkmMTtjWzM5OTJdPTQ0MDQ7Y1szOTkzXT00NDI0O2VrKDE1
OTY4K2p8MCwxNTA4OCk7Y1sxNTk2OCtoPj4yXT0wO2NbMTU5NjgrZz4+Ml09LTE7bD1jWyhjWyhj
WzM5OTJdfDApLTEyPj4yXXwwKSsxNTk5Mj4+Ml18MDtjWzM5NzBdPTQ0MDQ7Y1szOTcxXT00NDI0
O2VrKDE1ODgwK2p8MCxsKTtjWzE1ODgwK2g+PjJdPTA7Y1sxNTg4MCtnPj4yXT0tMTtjWyhjWyhj
WzQwMTRdfDApLTEyPj4yXXwwKSsxNjEyOD4+Ml09MTU3OTI7Zz0oY1soY1szOTkyXXwwKS0xMj4+
Ml18MCkrMTU5NzJ8MDtjW2c+PjJdPWNbZz4+Ml18ODE5MjtjWyhjWyhjWzM5OTJdfDApLTEyPj4y
XXwwKSsxNjA0MD4+Ml09MTU3OTI7YzMoMTQ5ODQsY1tvPj4yXXwwLDE1MjE2KTtjWzM5MjZdPTQ0
NTI7Y1szOTI4XT00NDcyO2NbMzkyN109MDtnPWNbMTExMF18MDtlaygxNTcwNCtnfDAsMTQ5ODQp
O2NbZysxNTc3Nj4+Ml09MDtjW2crMTU3ODA+PjJdPS0xO2c9Y1t0Pj4yXXwwO2V3KDE0ODg4KTtj
WzM3MjJdPTQ1NzY7Y1szNzMwXT1nO2lOKGUsMTQ4OTIpO2c9aVgoZSwxNTM4NCl8MDtoPWc7aU8o
ZSk7Y1szNzMxXT1oO2NbMzczMl09MTUyMjQ7YVsxNDkzMl09KGIwW2NbKGNbZz4+Ml18MCkrMjg+
PjJdJjEyN10oaCl8MCkmMTtjWzM4NTZdPTQzNTY7Y1szODU3XT00Mzc2O2g9Y1sxMDg2XXwwO2Vr
KDE1NDI0K2h8MCwxNDg4OCk7Zz1oKzcyfDA7Y1sxNTQyNCtnPj4yXT0wO2U9aCs3NnwwO2NbMTU0
MjQrZT4+Ml09LTE7bD1jW3I+PjJdfDA7ZXcoMTQ5MzYpO2NbMzczNF09NDU3NjtjWzM3NDJdPWw7
aU4oZCwxNDk0MCk7bD1pWChkLDE1Mzg0KXwwO2o9bDtpTyhkKTtjWzM3NDNdPWo7Y1szNzQ0XT0x
NTIzMjthWzE0OTgwXT0oYjBbY1soY1tsPj4yXXwwKSsyOD4+Ml0mMTI3XShqKXwwKSYxO2NbMzkw
MF09NDM1NjtjWzM5MDFdPTQzNzY7ZWsoMTU2MDAraHwwLDE0OTM2KTtjWzE1NjAwK2c+PjJdPTA7
Y1sxNTYwMCtlPj4yXT0tMTtqPWNbKGNbKGNbMzkwMF18MCktMTI+PjJdfDApKzE1NjI0Pj4yXXww
O2NbMzg3OF09NDM1NjtjWzM4NzldPTQzNzY7ZWsoMTU1MTIraHwwLGopO2NbMTU1MTIrZz4+Ml09
MDtjWzE1NTEyK2U+PjJdPS0xO2NbKGNbKGNbMzkyNl18MCktMTI+PjJdfDApKzE1Nzc2Pj4yXT0x
NTQyNDtlPShjWyhjWzM5MDBdfDApLTEyPj4yXXwwKSsxNTYwNHwwO2NbZT4+Ml09Y1tlPj4yXXw4
MTkyO2NbKGNbKGNbMzkwMF18MCktMTI+PjJdfDApKzE1NjcyPj4yXT0xNTQyNDtpPWI7cmV0dXJu
fWZ1bmN0aW9uIGNfKGEpe2E9YXwwO2V2KGF8MCk7cmV0dXJufWZ1bmN0aW9uIGMkKGEpe2E9YXww
O2V2KGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGMwKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9
MDtiMFtjWyhjW2I+PjJdfDApKzI0Pj4yXSYxMjddKGIpfDA7ZT1pWChkLDE1Mzg0KXwwO2Q9ZTtj
W2IrMzY+PjJdPWQ7YVtiKzQ0fDBdPShiMFtjWyhjW2U+PjJdfDApKzI4Pj4yXSYxMjddKGQpfDAp
JjE7cmV0dXJufWZ1bmN0aW9uIGMxKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MCxmPTAsZz0wLGg9
MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2I9aTtpPWkrMTZ8MDtkPWJ8MDtlPWIrOHwwO2Y9YSszNnww
O2c9YSs0MHwwO2g9ZHwwO2o9ZCs4fDA7az1kO2Q9YSszMnwwO0wxNjQyOndoaWxlKDEpe2E9Y1tm
Pj4yXXwwO2w9YiRbY1soY1thPj4yXXwwKSsyMD4+Ml0mMzFdKGEsY1tnPj4yXXwwLGgsaixlKXww
O2E9KGNbZT4+Ml18MCkta3wwO2lmKChhTShofDAsMSxhfDAsY1tkPj4yXXwwKXwwKSE9KGF8MCkp
e209LTE7bj0xMzA0O2JyZWFrfXN3aXRjaChsfDApe2Nhc2UgMjp7bT0tMTtuPTEzMDU7YnJlYWsg
TDE2NDI7YnJlYWt9O2Nhc2UgMTp7YnJlYWt9O2RlZmF1bHQ6e249MTMwMTticmVhayBMMTY0Mn19
fWlmKChufDApPT0xMzA0KXtpPWI7cmV0dXJuIG18MH1lbHNlIGlmKChufDApPT0xMzA1KXtpPWI7
cmV0dXJuIG18MH1lbHNlIGlmKChufDApPT0xMzAxKXttPSgoYUsoY1tkPj4yXXwwKXwwKSE9MCk8
PDMxPj4zMTtpPWI7cmV0dXJuIG18MH1yZXR1cm4gMH1mdW5jdGlvbiBjMihiLGQpe2I9YnwwO2Q9
ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxy
PTAscz0wLHQ9MCx1PTAsdj0wLHc9MDtlPWk7aT1pKzMyfDA7Zj1lfDA7Zz1lKzh8MDtoPWUrMTZ8
MDtqPWUrMjR8MDtrPShkfDApPT0tMTtMMTY1MTpkb3tpZighayl7Y1tnPj4yXT1kO2lmKChhW2Ir
NDR8MF0mMSkhPTApe2lmKChhTShnfDAsNCwxLGNbYiszMj4+Ml18MCl8MCk9PTEpe2JyZWFrfWVs
c2V7bD0tMX1pPWU7cmV0dXJuIGx8MH1tPWZ8MDtjW2g+PjJdPW07bj1nKzR8MDtvPWIrMzZ8MDtw
PWIrNDB8MDtxPWYrOHwwO3I9ZjtzPWIrMzJ8MDt0PWc7d2hpbGUoMSl7dT1jW28+PjJdfDA7dj1i
NltjWyhjW3U+PjJdfDApKzEyPj4yXSYzMV0odSxjW3A+PjJdfDAsdCxuLGosbSxxLGgpfDA7aWYo
KGNbaj4+Ml18MCk9PSh0fDApKXtsPS0xO3c9MTMyMDticmVha31pZigodnwwKT09Myl7dz0xMzEy
O2JyZWFrfXU9KHZ8MCk9PTE7aWYodj4+PjA+PTIpe2w9LTE7dz0xMzIyO2JyZWFrfXY9KGNbaD4+
Ml18MCktcnwwO2lmKChhTShtfDAsMSx2fDAsY1tzPj4yXXwwKXwwKSE9KHZ8MCkpe2w9LTE7dz0x
MzIxO2JyZWFrfWlmKHUpe3Q9dT9jW2o+PjJdfDA6dH1lbHNle2JyZWFrIEwxNjUxfX1pZigod3ww
KT09MTMyMSl7aT1lO3JldHVybiBsfDB9ZWxzZSBpZigod3wwKT09MTMyMil7aT1lO3JldHVybiBs
fDB9ZWxzZSBpZigod3wwKT09MTMxMil7aWYoKGFNKHR8MCwxLDEsY1tzPj4yXXwwKXwwKT09MSl7
YnJlYWt9ZWxzZXtsPS0xfWk9ZTtyZXR1cm4gbHwwfWVsc2UgaWYoKHd8MCk9PTEzMjApe2k9ZTty
ZXR1cm4gbHwwfX19d2hpbGUoMCk7bD1rPzA6ZDtpPWU7cmV0dXJuIGx8MH1mdW5jdGlvbiBjMyhi
LGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGo9MDtmPWk7aT1pKzh8MDtn
PWZ8MDtldyhifDApO2NbYj4+Ml09NDk3NjtjW2IrMzI+PjJdPWQ7Y1tiKzQwPj4yXT1lO2NbYis0
OD4+Ml09LTE7YVtiKzUyfDBdPTA7aU4oZyxiKzR8MCk7ZT1pWChnLDE1Mzg0KXwwO2Q9ZTtoPWIr
MzZ8MDtjW2g+PjJdPWQ7aj1iKzQ0fDA7Y1tqPj4yXT1iMFtjWyhjW2U+PjJdfDApKzI0Pj4yXSYx
MjddKGQpfDA7ZD1jW2g+PjJdfDA7YVtiKzUzfDBdPShiMFtjWyhjW2Q+PjJdfDApKzI4Pj4yXSYx
MjddKGQpfDApJjE7aWYoKGNbaj4+Ml18MCk8PTgpe2lPKGcpO2k9ZjtyZXR1cm59aFYoMTg0KTtp
TyhnKTtpPWY7cmV0dXJufWZ1bmN0aW9uIGM0KGEpe2E9YXwwO2V2KGF8MCk7cmV0dXJufWZ1bmN0
aW9uIGM1KGEpe2E9YXwwO2V2KGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGM2KGIsZCl7Yj1i
fDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2U9aVgoZCwxNTM4NCl8MDtkPWU7Zj1iKzM2fDA7Y1tm
Pj4yXT1kO2c9Yis0NHwwO2NbZz4+Ml09YjBbY1soY1tlPj4yXXwwKSsyND4+Ml0mMTI3XShkKXww
O2Q9Y1tmPj4yXXwwO2FbYis1M3wwXT0oYjBbY1soY1tkPj4yXXwwKSsyOD4+Ml0mMTI3XShkKXww
KSYxO2lmKChjW2c+PjJdfDApPD04KXtyZXR1cm59aFYoMTg0KTtyZXR1cm59ZnVuY3Rpb24gYzco
YSl7YT1hfDA7cmV0dXJuIGRhKGEsMCl8MH1mdW5jdGlvbiBjOChhKXthPWF8MDtyZXR1cm4gZGEo
YSwxKXwwfWZ1bmN0aW9uIGM5KGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxq
PTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtlPWk7aT1pKzMyfDA7Zj1lfDA7Zz1l
Kzh8MDtoPWUrMTZ8MDtqPWUrMjR8MDtrPWIrNTJ8MDtsPShhW2tdJjEpIT0wO2lmKChkfDApPT0t
MSl7aWYobCl7bT0tMTtpPWU7cmV0dXJuIG18MH1uPWNbYis0OD4+Ml18MDthW2tdPShufDApIT0t
MXwwO209bjtpPWU7cmV0dXJuIG18MH1uPWIrNDh8MDtMMTY5NDpkb3tpZihsKXtjW2g+PjJdPWNb
bj4+Ml07bz1jW2IrMzY+PjJdfDA7cD1mfDA7c3dpdGNoKGI2W2NbKGNbbz4+Ml18MCkrMTI+PjJd
JjMxXShvLGNbYis0MD4+Ml18MCxoLGgrNHwwLGoscCxmKzh8MCxnKXwwKXtjYXNlIDI6Y2FzZSAx
OnttPS0xO2k9ZTtyZXR1cm4gbXwwfTtjYXNlIDM6e2FbcF09Y1tuPj4yXSYyNTU7Y1tnPj4yXT1m
KzE7YnJlYWt9O2RlZmF1bHQ6e319bz1iKzMyfDA7d2hpbGUoMSl7cT1jW2c+PjJdfDA7aWYocT4+
PjA8PXA+Pj4wKXticmVhayBMMTY5NH1yPXEtMXwwO2NbZz4+Ml09cjtpZigoYkEoYVtyXXwwLGNb
bz4+Ml18MCl8MCk9PS0xKXttPS0xO2JyZWFrfX1pPWU7cmV0dXJuIG18MH19d2hpbGUoMCk7Y1tu
Pj4yXT1kO2Fba109MTttPWQ7aT1lO3JldHVybiBtfDB9ZnVuY3Rpb24gZGEoYixkKXtiPWJ8MDtk
PWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MDtlPWk7aT1pKzMyfDA7Zj1lfDA7Zz1lKzh8
MDtoPWUrMTZ8MDtqPWUrMjR8MDtrPWIrNTJ8MDtpZigoYVtrXSYxKSE9MCl7bD1iKzQ4fDA7bT1j
W2w+PjJdfDA7aWYoIWQpe249bTtpPWU7cmV0dXJuIG58MH1jW2w+PjJdPS0xO2Fba109MDtuPW07
aT1lO3JldHVybiBufDB9bT1jW2IrNDQ+PjJdfDA7az0obXwwKT4xP206MTtMMTcxNDpkb3tpZigo
a3wwKT4wKXttPWIrMzJ8MDtsPTA7d2hpbGUoMSl7bz1hXyhjW20+PjJdfDApfDA7aWYoKG98MCk9
PS0xKXtuPS0xO2JyZWFrfWFbZitsfDBdPW8mMjU1O2w9bCsxfDA7aWYoKGx8MCk+PShrfDApKXti
cmVhayBMMTcxNH19aT1lO3JldHVybiBufDB9fXdoaWxlKDApO0wxNzIxOmRve2lmKChhW2IrNTN8
MF0mMSk9PTApe2w9Yis0MHwwO209YiszNnwwO289ZnwwO3A9Zys0fDA7cT1iKzMyfDA7cj1rO0wx
NzIzOndoaWxlKDEpe3M9Y1tsPj4yXXwwO3Q9czt1PWNbdD4+Ml18MDt2PWNbdCs0Pj4yXXwwO3Q9
Y1ttPj4yXXwwO3c9ZityfDA7c3dpdGNoKGI2W2NbKGNbdD4+Ml18MCkrMTY+PjJdJjMxXSh0LHMs
byx3LGgsZyxwLGopfDApe2Nhc2UgMTp7YnJlYWt9O2Nhc2UgMjp7bj0tMTt4PTEzODA7YnJlYWsg
TDE3MjM7YnJlYWt9O2Nhc2UgMzp7eD0xMzY5O2JyZWFrIEwxNzIzO2JyZWFrfTtkZWZhdWx0Ont5
PXI7YnJlYWsgTDE3MjF9fXM9Y1tsPj4yXXwwO2Nbcz4+Ml09dTtjW3MrND4+Ml09djtpZigocnww
KT09OCl7bj0tMTt4PTEzNzk7YnJlYWt9dj1hXyhjW3E+PjJdfDApfDA7aWYoKHZ8MCk9PS0xKXtu
PS0xO3g9MTM4NTticmVha31hW3ddPXYmMjU1O3I9cisxfDB9aWYoKHh8MCk9PTEzNzkpe2k9ZTty
ZXR1cm4gbnwwfWVsc2UgaWYoKHh8MCk9PTEzODApe2k9ZTtyZXR1cm4gbnwwfWVsc2UgaWYoKHh8
MCk9PTEzODUpe2k9ZTtyZXR1cm4gbnwwfWVsc2UgaWYoKHh8MCk9PTEzNjkpe2NbZz4+Ml09YVtv
XXwwO3k9cjticmVha319ZWxzZXtjW2c+PjJdPWFbZnwwXXwwO3k9a319d2hpbGUoMCk7aWYoZCl7
ZD1jW2c+PjJdfDA7Y1tiKzQ4Pj4yXT1kO249ZDtpPWU7cmV0dXJuIG58MH1kPWIrMzJ8MDtiPXk7
d2hpbGUoMSl7aWYoKGJ8MCk8PTApe2JyZWFrfXk9Yi0xfDA7aWYoKGJBKGFbZit5fDBdfDAsY1tk
Pj4yXXwwKXwwKT09LTEpe249LTE7eD0xMzgyO2JyZWFrfWVsc2V7Yj15fX1pZigoeHwwKT09MTM4
Mil7aT1lO3JldHVybiBufDB9bj1jW2c+PjJdfDA7aT1lO3JldHVybiBufDB9ZnVuY3Rpb24gZGIo
YSl7YT1hfDA7ZW8oYXwwKTtyZXR1cm59ZnVuY3Rpb24gZGMoYSl7YT1hfDA7ZW8oYXwwKTtrUyhh
KTtyZXR1cm59ZnVuY3Rpb24gZGQoYSl7YT1hfDA7ZmcoMTU3OTIpfDA7ZmcoMTU4ODApfDA7Zmgo
MTU0MjQpfDA7ZmgoMTU1MTIpfDA7cmV0dXJufWZ1bmN0aW9uIGRlKGEpe2E9YXwwO3JldHVybn1m
dW5jdGlvbiBkZihhKXthPWF8MDtyZXR1cm59ZnVuY3Rpb24gZGcoYSl7YT1hfDA7dmFyIGI9MDti
PWErNHwwO0k9Y1tiPj4yXXwwLGNbYj4+Ml09SSsxLEk7cmV0dXJufWZ1bmN0aW9uIGRoKGEpe2E9
YXwwO3JldHVybiBjW2ErND4+Ml18MH1mdW5jdGlvbiBkaShhKXthPWF8MDtyZXR1cm4gY1thKzQ+
PjJdfDB9ZnVuY3Rpb24gZGooYSl7YT1hfDA7Y1thPj4yXT00MzA0O3JldHVybn1mdW5jdGlvbiBk
ayhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7Y1thPj4yXT1kO2NbYSs0Pj4yXT1iO3JldHVybn1m
dW5jdGlvbiBkbChhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MDtpZigoY1tiKzQ+PjJd
fDApIT0oYXwwKSl7ZT0wO3JldHVybiBlfDB9ZT0oY1tiPj4yXXwwKT09KGR8MCk7cmV0dXJuIGV8
MH1mdW5jdGlvbiBkbShiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTA7YjBbY1soY1tiPj4yXXwwKSsy
ND4+Ml0mMTI3XShiKXwwO2U9aVgoZCwxNTM5Mil8MDtkPWU7Y1tiKzM2Pj4yXT1kO2FbYis0NHww
XT0oYjBbY1soY1tlPj4yXXwwKSsyOD4+Ml0mMTI3XShkKXwwKSYxO3JldHVybn1mdW5jdGlvbiBk
bihhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49
MDtiPWk7aT1pKzE2fDA7ZD1ifDA7ZT1iKzh8MDtmPWErMzZ8MDtnPWErNDB8MDtoPWR8MDtqPWQr
OHwwO2s9ZDtkPWErMzJ8MDtMMTc2Nzp3aGlsZSgxKXthPWNbZj4+Ml18MDtsPWIkW2NbKGNbYT4+
Ml18MCkrMjA+PjJdJjMxXShhLGNbZz4+Ml18MCxoLGosZSl8MDthPShjW2U+PjJdfDApLWt8MDtp
ZigoYU0oaHwwLDEsYXwwLGNbZD4+Ml18MCl8MCkhPShhfDApKXttPS0xO249MTQxNDticmVha31z
d2l0Y2gobHwwKXtjYXNlIDI6e209LTE7bj0xNDE1O2JyZWFrIEwxNzY3O2JyZWFrfTtjYXNlIDE6
e2JyZWFrfTtkZWZhdWx0OntuPTE0MTE7YnJlYWsgTDE3Njd9fX1pZigobnwwKT09MTQxNSl7aT1i
O3JldHVybiBtfDB9ZWxzZSBpZigobnwwKT09MTQxMSl7bT0oKGFLKGNbZD4+Ml18MCl8MCkhPTAp
PDwzMT4+MzE7aT1iO3JldHVybiBtfDB9ZWxzZSBpZigobnwwKT09MTQxNCl7aT1iO3JldHVybiBt
fDB9cmV0dXJuIDB9ZnVuY3Rpb24gZHAoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAs
aD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTA7ZT1pO2k9aSszMnwwO2Y9ZXwwO2c9ZSs4fDA7aD1lKzE2fDA7aj1lKzI0fDA7az0oZHwwKT09
LTE7TDE3NzY6ZG97aWYoIWspe2FbZ109ZCYyNTU7aWYoKGFbYis0NHwwXSYxKSE9MCl7aWYoKGFN
KGd8MCwxLDEsY1tiKzMyPj4yXXwwKXwwKT09MSl7YnJlYWt9ZWxzZXtsPS0xfWk9ZTtyZXR1cm4g
bHwwfW09ZnwwO2NbaD4+Ml09bTtuPWcrMXwwO289YiszNnwwO3A9Yis0MHwwO3E9Zis4fDA7cj1m
O3M9YiszMnwwO3Q9Zzt3aGlsZSgxKXt1PWNbbz4+Ml18MDt2PWI2W2NbKGNbdT4+Ml18MCkrMTI+
PjJdJjMxXSh1LGNbcD4+Ml18MCx0LG4saixtLHEsaCl8MDtpZigoY1tqPj4yXXwwKT09KHR8MCkp
e2w9LTE7dz0xNDMzO2JyZWFrfWlmKCh2fDApPT0zKXt3PTE0MjI7YnJlYWt9dT0odnwwKT09MTtp
Zih2Pj4+MD49Mil7bD0tMTt3PTE0MzI7YnJlYWt9dj0oY1toPj4yXXwwKS1yfDA7aWYoKGFNKG18
MCwxLHZ8MCxjW3M+PjJdfDApfDApIT0odnwwKSl7bD0tMTt3PTE0MzA7YnJlYWt9aWYodSl7dD11
P2Nbaj4+Ml18MDp0fWVsc2V7YnJlYWsgTDE3NzZ9fWlmKCh3fDApPT0xNDMwKXtpPWU7cmV0dXJu
IGx8MH1lbHNlIGlmKCh3fDApPT0xNDIyKXtpZigoYU0odHwwLDEsMSxjW3M+PjJdfDApfDApPT0x
KXticmVha31lbHNle2w9LTF9aT1lO3JldHVybiBsfDB9ZWxzZSBpZigod3wwKT09MTQzMil7aT1l
O3JldHVybiBsfDB9ZWxzZSBpZigod3wwKT09MTQzMyl7aT1lO3JldHVybiBsfDB9fX13aGlsZSgw
KTtsPWs/MDpkO2k9ZTtyZXR1cm4gbHwwfWZ1bmN0aW9uIGRxKGIsZCxlKXtiPWJ8MDtkPWR8MDtl
PWV8MDt2YXIgZj0wLGc9MCxoPTAsaj0wO2Y9aTtpPWkrOHwwO2c9ZnwwO2VwKGJ8MCk7Y1tiPj4y
XT01MDQ4O2NbYiszMj4+Ml09ZDtjW2IrNDA+PjJdPWU7Y1tiKzQ4Pj4yXT0tMTthW2IrNTJ8MF09
MDtpTihnLGIrNHwwKTtlPWlYKGcsMTUzOTIpfDA7ZD1lO2g9YiszNnwwO2NbaD4+Ml09ZDtqPWIr
NDR8MDtjW2o+PjJdPWIwW2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10oZCl8MDtkPWNbaD4+Ml18
MDthW2IrNTN8MF09KGIwW2NbKGNbZD4+Ml18MCkrMjg+PjJdJjEyN10oZCl8MCkmMTtpZigoY1tq
Pj4yXXwwKTw9OCl7aU8oZyk7aT1mO3JldHVybn1oVigxODQpO2lPKGcpO2k9ZjtyZXR1cm59ZnVu
Y3Rpb24gZHIoYSl7YT1hfDA7ZW8oYXwwKTtyZXR1cm59ZnVuY3Rpb24gZHMoYSl7YT1hfDA7ZW8o
YXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZHQoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9
MCxnPTA7ZT1pWChkLDE1MzkyKXwwO2Q9ZTtmPWIrMzZ8MDtjW2Y+PjJdPWQ7Zz1iKzQ0fDA7Y1tn
Pj4yXT1iMFtjWyhjW2U+PjJdfDApKzI0Pj4yXSYxMjddKGQpfDA7ZD1jW2Y+PjJdfDA7YVtiKzUz
fDBdPShiMFtjWyhjW2Q+PjJdfDApKzI4Pj4yXSYxMjddKGQpfDApJjE7aWYoKGNbZz4+Ml18MCk8
PTgpe3JldHVybn1oVigxODQpO3JldHVybn1mdW5jdGlvbiBkdShhKXthPWF8MDtyZXR1cm4gZHgo
YSwwKXwwfWZ1bmN0aW9uIGR2KGEpe2E9YXwwO3JldHVybiBkeChhLDEpfDB9ZnVuY3Rpb24gZHco
YixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAs
bz0wLHA9MCxxPTAscj0wO2U9aTtpPWkrMzJ8MDtmPWV8MDtnPWUrOHwwO2g9ZSsxNnwwO2o9ZSsy
NHwwO2s9Yis1MnwwO2w9KGFba10mMSkhPTA7aWYoKGR8MCk9PS0xKXtpZihsKXttPS0xO2k9ZTty
ZXR1cm4gbXwwfW49Y1tiKzQ4Pj4yXXwwO2Fba109KG58MCkhPS0xfDA7bT1uO2k9ZTtyZXR1cm4g
bXwwfW49Yis0OHwwO0wxODE5OmRve2lmKGwpe2FbaF09Y1tuPj4yXSYyNTU7bz1jW2IrMzY+PjJd
fDA7cD1mfDA7c3dpdGNoKGI2W2NbKGNbbz4+Ml18MCkrMTI+PjJdJjMxXShvLGNbYis0MD4+Ml18
MCxoLGgrMXwwLGoscCxmKzh8MCxnKXwwKXtjYXNlIDM6e2FbcF09Y1tuPj4yXSYyNTU7Y1tnPj4y
XT1mKzE7YnJlYWt9O2Nhc2UgMjpjYXNlIDE6e209LTE7aT1lO3JldHVybiBtfDB9O2RlZmF1bHQ6
e319bz1iKzMyfDA7d2hpbGUoMSl7cT1jW2c+PjJdfDA7aWYocT4+PjA8PXA+Pj4wKXticmVhayBM
MTgxOX1yPXEtMXwwO2NbZz4+Ml09cjtpZigoYkEoYVtyXXwwLGNbbz4+Ml18MCl8MCk9PS0xKXtt
PS0xO2JyZWFrfX1pPWU7cmV0dXJuIG18MH19d2hpbGUoMCk7Y1tuPj4yXT1kO2Fba109MTttPWQ7
aT1lO3JldHVybiBtfDB9ZnVuY3Rpb24gZHgoYixlKXtiPWJ8MDtlPWV8MDt2YXIgZj0wLGc9MCxo
PTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9
MCx4PTAseT0wLHo9MCxBPTA7Zj1pO2k9aSszMnwwO2c9ZnwwO2g9Zis4fDA7aj1mKzE2fDA7az1m
KzI0fDA7bD1iKzUyfDA7aWYoKGFbbF0mMSkhPTApe209Yis0OHwwO249Y1ttPj4yXXwwO2lmKCFl
KXtvPW47aT1mO3JldHVybiBvfDB9Y1ttPj4yXT0tMTthW2xdPTA7bz1uO2k9ZjtyZXR1cm4gb3ww
fW49Y1tiKzQ0Pj4yXXwwO2w9KG58MCk+MT9uOjE7TDE4Mzk6ZG97aWYoKGx8MCk+MCl7bj1iKzMy
fDA7bT0wO3doaWxlKDEpe3A9YV8oY1tuPj4yXXwwKXwwO2lmKChwfDApPT0tMSl7bz0tMTticmVh
a31hW2crbXwwXT1wJjI1NTttPW0rMXwwO2lmKChtfDApPj0obHwwKSl7YnJlYWsgTDE4Mzl9fWk9
ZjtyZXR1cm4gb3wwfX13aGlsZSgwKTtMMTg0Njpkb3tpZigoYVtiKzUzfDBdJjEpPT0wKXttPWIr
NDB8MDtuPWIrMzZ8MDtwPWd8MDtxPWgrMXwwO3I9YiszMnwwO3M9bDtMMTg0ODp3aGlsZSgxKXt0
PWNbbT4+Ml18MDt1PXQ7dj1jW3U+PjJdfDA7dz1jW3UrND4+Ml18MDt1PWNbbj4+Ml18MDt4PWcr
c3wwO3N3aXRjaChiNltjWyhjW3U+PjJdfDApKzE2Pj4yXSYzMV0odSx0LHAseCxqLGgscSxrKXww
KXtjYXNlIDE6e2JyZWFrfTtjYXNlIDI6e289LTE7eT0xNDkwO2JyZWFrIEwxODQ4O2JyZWFrfTtj
YXNlIDM6e3k9MTQ3OTticmVhayBMMTg0ODticmVha307ZGVmYXVsdDp7ej1zO2JyZWFrIEwxODQ2
fX10PWNbbT4+Ml18MDtjW3Q+PjJdPXY7Y1t0KzQ+PjJdPXc7aWYoKHN8MCk9PTgpe289LTE7eT0x
NDkxO2JyZWFrfXc9YV8oY1tyPj4yXXwwKXwwO2lmKCh3fDApPT0tMSl7bz0tMTt5PTE0OTU7YnJl
YWt9YVt4XT13JjI1NTtzPXMrMXwwfWlmKCh5fDApPT0xNDkwKXtpPWY7cmV0dXJuIG98MH1lbHNl
IGlmKCh5fDApPT0xNDk1KXtpPWY7cmV0dXJuIG98MH1lbHNlIGlmKCh5fDApPT0xNDc5KXthW2hd
PWFbcF18MDt6PXM7YnJlYWt9ZWxzZSBpZigoeXwwKT09MTQ5MSl7aT1mO3JldHVybiBvfDB9fWVs
c2V7YVtoXT1hW2d8MF18MDt6PWx9fXdoaWxlKDApO2Rve2lmKGUpe2w9YVtoXXwwO2NbYis0OD4+
Ml09bCYyNTU7QT1sfWVsc2V7bD1iKzMyfDA7az16O3doaWxlKDEpe2lmKChrfDApPD0wKXt5PTE0
ODY7YnJlYWt9aj1rLTF8MDtpZigoYkEoZFtnK2p8MF18MHwwLGNbbD4+Ml18MCl8MCk9PS0xKXtv
PS0xO3k9MTQ5NDticmVha31lbHNle2s9an19aWYoKHl8MCk9PTE0ODYpe0E9YVtoXXwwO2JyZWFr
fWVsc2UgaWYoKHl8MCk9PTE0OTQpe2k9ZjtyZXR1cm4gb3wwfX19d2hpbGUoMCk7bz1BJjI1NTtp
PWY7cmV0dXJuIG98MH1mdW5jdGlvbiBkeSgpe2NaKDApO2EkKDE0MiwxNjE0NHwwLHV8MCl8MDty
ZXR1cm59ZnVuY3Rpb24gZHooYSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1hKzR8MDtpZigoKEk9Y1ti
Pj4yXXwwLGNbYj4+Ml09SSsgLTEsSSl8MCkhPTApe2Q9MDtyZXR1cm4gZHwwfWJZW2NbKGNbYT4+
Ml18MCkrOD4+Ml0mNTExXShhKTtkPTE7cmV0dXJuIGR8MH1mdW5jdGlvbiBkQShhLGIpe2E9YXww
O2I9YnwwO3ZhciBkPTAsZT0wLGY9MDtjW2E+PjJdPTI1MzY7ZD1hKzR8MDtpZigoZHwwKT09MCl7
cmV0dXJufWE9azAoYnwwKXwwO2U9YSsxfDA7Zj1rUChhKzEzfDApfDA7Y1tmKzQ+PjJdPWE7Y1tm
Pj4yXT1hO2E9ZisxMnwwO2NbZD4+Ml09YTtjW2YrOD4+Ml09MDtrWShhfDAsYnwwLGUpfDA7cmV0
dXJufWZ1bmN0aW9uIGRCKGEpe2E9YXwwO3ZhciBiPTAsZD0wLGU9MDtjW2E+PjJdPTI1MzY7Yj1h
KzR8MDtkPShjW2I+PjJdfDApLTR8MDtpZigoKEk9Y1tkPj4yXXwwLGNbZD4+Ml09SSsgLTEsSSkt
MXwwKT49MCl7ZT1hO2tTKGUpO3JldHVybn1kPShjW2I+PjJdfDApLTEyfDA7aWYoKGR8MCk9PTAp
e2U9YTtrUyhlKTtyZXR1cm59a1QoZCk7ZT1hO2tTKGUpO3JldHVybn1mdW5jdGlvbiBkQyhhKXth
PWF8MDt2YXIgYj0wO2NbYT4+Ml09MjUzNjtiPWErNHwwO2E9KGNbYj4+Ml18MCktNHwwO2lmKCgo
ST1jW2E+PjJdfDAsY1thPj4yXT1JKyAtMSxJKS0xfDApPj0wKXtyZXR1cm59YT0oY1tiPj4yXXww
KS0xMnwwO2lmKChhfDApPT0wKXtyZXR1cm59a1QoYSk7cmV0dXJufWZ1bmN0aW9uIGREKGIsZCl7
Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2NbYj4+Ml09MjQ3MjtlPWIrNHwwO2lmKChlfDAp
PT0wKXtyZXR1cm59aWYoKGFbZF0mMSk9PTApe2Y9ZCsxfDB9ZWxzZXtmPWNbZCs4Pj4yXXwwfWQ9
azAoZnwwKXwwO2I9ZCsxfDA7Zz1rUChkKzEzfDApfDA7Y1tnKzQ+PjJdPWQ7Y1tnPj4yXT1kO2Q9
ZysxMnwwO2NbZT4+Ml09ZDtjW2crOD4+Ml09MDtrWShkfDAsZnwwLGIpfDA7cmV0dXJufWZ1bmN0
aW9uIGRFKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wO2NbYT4+Ml09MjQ3MjtkPWEr
NHwwO2lmKChkfDApPT0wKXtyZXR1cm59YT1rMChifDApfDA7ZT1hKzF8MDtmPWtQKGErMTN8MCl8
MDtjW2YrND4+Ml09YTtjW2Y+PjJdPWE7YT1mKzEyfDA7Y1tkPj4yXT1hO2NbZis4Pj4yXT0wO2tZ
KGF8MCxifDAsZSl8MDtyZXR1cm59ZnVuY3Rpb24gZEYoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0w
O2NbYT4+Ml09MjQ3MjtiPWErNHwwO2Q9KGNbYj4+Ml18MCktNHwwO2lmKCgoST1jW2Q+PjJdfDAs
Y1tkPj4yXT1JKyAtMSxJKS0xfDApPj0wKXtlPWE7a1MoZSk7cmV0dXJufWQ9KGNbYj4+Ml18MCkt
MTJ8MDtpZigoZHwwKT09MCl7ZT1hO2tTKGUpO3JldHVybn1rVChkKTtlPWE7a1MoZSk7cmV0dXJu
fWZ1bmN0aW9uIGRHKGEpe2E9YXwwO3ZhciBiPTA7Y1thPj4yXT0yNDcyO2I9YSs0fDA7YT0oY1ti
Pj4yXXwwKS00fDA7aWYoKChJPWNbYT4+Ml18MCxjW2E+PjJdPUkrIC0xLEkpLTF8MCk+PTApe3Jl
dHVybn1hPShjW2I+PjJdfDApLTEyfDA7aWYoKGF8MCk9PTApe3JldHVybn1rVChhKTtyZXR1cm59
ZnVuY3Rpb24gZEgoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wO2NbYT4+Ml09MjUzNjtiPWErNHww
O2Q9KGNbYj4+Ml18MCktNHwwO2lmKCgoST1jW2Q+PjJdfDAsY1tkPj4yXT1JKyAtMSxJKS0xfDAp
Pj0wKXtlPWE7a1MoZSk7cmV0dXJufWQ9KGNbYj4+Ml18MCktMTJ8MDtpZigoZHwwKT09MCl7ZT1h
O2tTKGUpO3JldHVybn1rVChkKTtlPWE7a1MoZSk7cmV0dXJufWZ1bmN0aW9uIGRJKGEpe2E9YXww
O2tTKGEpO3JldHVybn1mdW5jdGlvbiBkSihhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9
MCxmPTAsZz0wO2U9aTtpPWkrOHwwO2Y9ZXwwO2IzW2NbKGNbYT4+Ml18MCkrMTI+PjJdJjddKGYs
YSxiKTtpZigoY1tmKzQ+PjJdfDApIT0oY1tkKzQ+PjJdfDApKXtnPTA7aT1lO3JldHVybiBnfDB9
Zz0oY1tmPj4yXXwwKT09KGNbZD4+Ml18MCk7aT1lO3JldHVybiBnfDB9ZnVuY3Rpb24gZEsoYSxi
LGMpe2E9YXwwO2I9YnwwO2M9Y3wwO2I9YngoY3wwKXwwO2RaKGEsYixrMChifDApfDApO3JldHVy
bn1mdW5jdGlvbiBkTChiLGUsZil7Yj1ifDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7Zz1pO2g9ZjtqPWk7aT1pKzEyfDA7aT1pKzc+
PjM8PDM7az1lfDA7bD1jW2s+PjJdfDA7aWYoKGx8MCk9PTApe209YjtjW20+PjJdPWNbaD4+Ml07
Y1ttKzQ+PjJdPWNbaCs0Pj4yXTtjW20rOD4+Ml09Y1toKzg+PjJdO2skKGh8MCwwLDEyKTtpPWc7
cmV0dXJufW49ZFtoXXwwO2lmKChuJjF8MCk9PTApe289bj4+PjF9ZWxzZXtvPWNbZis0Pj4yXXww
fWlmKChvfDApPT0wKXtwPWx9ZWxzZXtkVChmLDEyOTYpfDA7cD1jW2s+PjJdfDB9az1jW2UrND4+
Ml18MDtiM1tjWyhjW2s+PjJdfDApKzI0Pj4yXSY3XShqLGsscCk7cD1hW2pdfDA7aWYoKHAmMSk9
PTApe3E9aisxfDB9ZWxzZXtxPWNbais4Pj4yXXwwfWs9cCYyNTU7aWYoKGsmMXwwKT09MCl7cj1r
Pj4+MX1lbHNle3I9Y1tqKzQ+PjJdfDB9ZFYoZixxLHIpfDA7ZFAoaik7bT1iO2NbbT4+Ml09Y1to
Pj4yXTtjW20rND4+Ml09Y1toKzQ+PjJdO2NbbSs4Pj4yXT1jW2grOD4+Ml07ayQoaHwwLDAsMTIp
O2k9ZztyZXR1cm59ZnVuY3Rpb24gZE0oYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHwwO3ZhciBlPTAs
Zj0wLGc9MDtlPWk7aT1pKzMyfDA7Zj1iO2I9aTtpPWkrOHwwO2NbYj4+Ml09Y1tmPj4yXTtjW2Ir
ND4+Ml09Y1tmKzQ+PjJdO2Y9ZXwwO2c9ZSsxNnwwO2RaKGcsZCxrMChkfDApfDApO2RMKGYsYixn
KTtkRChhfDAsZik7ZFAoZik7ZFAoZyk7Y1thPj4yXT00NTQ0O2c9YjtiPWErOHwwO2E9Y1tnKzQ+
PjJdfDA7Y1tiPj4yXT1jW2c+PjJdO2NbYis0Pj4yXT1hO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZE4o
YSl7YT1hfDA7ZEcoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZE8oYSl7YT1hfDA7ZEcoYXww
KTtyZXR1cm59ZnVuY3Rpb24gZFAoYil7Yj1ifDA7aWYoKGFbYl0mMSk9PTApe3JldHVybn1rUyhj
W2IrOD4+Ml18MCk7cmV0dXJufWZ1bmN0aW9uIGRRKGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxm
PTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7ZT1rMChkfDApfDA7Zj1iO2c9YjtoPWFbZ118MDtp
ZigoaCYxKT09MCl7aT0xMDtqPWh9ZWxzZXtoPWNbYj4+Ml18MDtpPShoJi0yKS0xfDA7aj1oJjI1
NX1pZihpPj4+MDxlPj4+MCl7aD1qJjI1NTtpZigoaCYxfDApPT0wKXtrPWg+Pj4xfWVsc2V7az1j
W2IrND4+Ml18MH1kMChiLGksZS1pfDAsaywwLGssZSxkKTtyZXR1cm4gYnwwfWlmKChqJjEpPT0w
KXtsPWYrMXwwfWVsc2V7bD1jW2IrOD4+Ml18MH1rXyhsfDAsZHwwLGV8MCk7YVtsK2V8MF09MDtp
ZigoYVtnXSYxKT09MCl7YVtnXT1lPDwxJjI1NTtyZXR1cm4gYnwwfWVsc2V7Y1tiKzQ+PjJdPWU7
cmV0dXJuIGJ8MH1yZXR1cm4gMH1mdW5jdGlvbiBkUihiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7
dmFyIGY9MCxnPTAsaD0wLGk9MDtmPWI7Zz1hW2ZdfDA7aD1nJjI1NTtpZigoaCYxfDApPT0wKXtp
PWg+Pj4xfWVsc2V7aT1jW2IrND4+Ml18MH1pZihpPj4+MDxkPj4+MCl7aD1kLWl8MDtkUyhiLGgs
ZSl8MDtyZXR1cm59aWYoKGcmMSk9PTApe2FbYisxK2R8MF09MDthW2ZdPWQ8PDEmMjU1O3JldHVy
bn1lbHNle2FbKGNbYis4Pj4yXXwwKStkfDBdPTA7Y1tiKzQ+PjJdPWQ7cmV0dXJufX1mdW5jdGlv
biBkUyhiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0w
LGw9MDtpZigoZHwwKT09MCl7cmV0dXJuIGJ8MH1mPWI7Zz1hW2ZdfDA7aWYoKGcmMSk9PTApe2g9
MTA7aT1nfWVsc2V7Zz1jW2I+PjJdfDA7aD0oZyYtMiktMXwwO2k9ZyYyNTV9Zz1pJjI1NTtpZigo
ZyYxfDApPT0wKXtqPWc+Pj4xfWVsc2V7aj1jW2IrND4+Ml18MH1pZigoaC1qfDApPj4+MDxkPj4+
MCl7ZDEoYixoLGQtaCtqfDAsaixqLDAsMCk7az1hW2ZdfDB9ZWxzZXtrPWl9aWYoKGsmMSk9PTAp
e2w9YisxfDB9ZWxzZXtsPWNbYis4Pj4yXXwwfWskKGwranwwLGV8MCxkfDApO2U9aitkfDA7aWYo
KGFbZl0mMSk9PTApe2FbZl09ZTw8MSYyNTV9ZWxzZXtjW2IrND4+Ml09ZX1hW2wrZXwwXT0wO3Jl
dHVybiBifDB9ZnVuY3Rpb24gZFQoYSxiKXthPWF8MDtiPWJ8MDtyZXR1cm4gZFYoYSxiLGswKGJ8
MCl8MCl8MH1mdW5jdGlvbiBkVShiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAs
aT0wLGo9MCxrPTAsbD0wLG09MDtlPWI7Zj1hW2VdfDA7aWYoKGYmMSk9PTApe2c9KGYmMjU1KT4+
PjE7aD0xMH1lbHNle2c9Y1tiKzQ+PjJdfDA7aD0oY1tiPj4yXSYtMiktMXwwfWlmKChnfDApPT0o
aHwwKSl7ZDEoYixoLDEsaCxoLDAsMCk7aT1hW2VdfDB9ZWxzZXtpPWZ9aWYoKGkmMSk9PTApe2Fb
ZV09KGc8PDEpKzImMjU1O2o9YisxfDA7az1nKzF8MDtsPWorZ3wwO2FbbF09ZDttPWora3wwO2Fb
bV09MDtyZXR1cm59ZWxzZXtlPWNbYis4Pj4yXXwwO2k9ZysxfDA7Y1tiKzQ+PjJdPWk7aj1lO2s9
aTtsPWorZ3wwO2FbbF09ZDttPWora3wwO2FbbV09MDtyZXR1cm59fWZ1bmN0aW9uIGRWKGIsZCxl
KXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTA7Zj1iO2c9YVtm
XXwwO2lmKChnJjEpPT0wKXtoPTEwO2k9Z31lbHNle2c9Y1tiPj4yXXwwO2g9KGcmLTIpLTF8MDtp
PWcmMjU1fWc9aSYyNTU7aWYoKGcmMXwwKT09MCl7aj1nPj4+MX1lbHNle2o9Y1tiKzQ+PjJdfDB9
aWYoKGgtanwwKT4+PjA8ZT4+PjApe2QwKGIsaCxlLWgranwwLGosaiwwLGUsZCk7cmV0dXJuIGJ8
MH1pZigoZXwwKT09MCl7cmV0dXJuIGJ8MH1pZigoaSYxKT09MCl7az1iKzF8MH1lbHNle2s9Y1ti
Kzg+PjJdfDB9aT1rK2p8MDtrWShpfDAsZHwwLGUpfDA7ZD1qK2V8MDtpZigoYVtmXSYxKT09MCl7
YVtmXT1kPDwxJjI1NX1lbHNle2NbYis0Pj4yXT1kfWFbaytkfDBdPTA7cmV0dXJuIGJ8MH1mdW5j
dGlvbiBkVyhhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTA7
ZTtpZigoY1thPj4yXXwwKT09MSl7ZG97YVUoOTczNiw5NzI4KXwwO313aGlsZSgoY1thPj4yXXww
KT09MSl9aWYoKGNbYT4+Ml18MCkhPTApe2Y7cmV0dXJufWNbYT4+Ml09MTtnO2JZW2QmNTExXShi
KTtoO2NbYT4+Ml09LTE7aTticyg5NzM2KXwwO3JldHVybn1mdW5jdGlvbiBkWChhKXthPWF8MDth
PWJPKDgpfDA7ZEEoYSwzNjApO2NbYT4+Ml09MjUwNDtibChhfDAsODIwOCwzMil9ZnVuY3Rpb24g
ZFkoYixkKXtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wO2U9ZDtpZigoYVtlXSYxKT09
MCl7Zj1iO2NbZj4+Ml09Y1tlPj4yXTtjW2YrND4+Ml09Y1tlKzQ+PjJdO2NbZis4Pj4yXT1jW2Ur
OD4+Ml07cmV0dXJufWU9Y1tkKzg+PjJdfDA7Zj1jW2QrND4+Ml18MDtpZigoZnwwKT09LTEpe2RY
KDApfWlmKGY+Pj4wPDExKXthW2JdPWY8PDEmMjU1O2c9YisxfDB9ZWxzZXtkPWYrMTYmLTE2O2g9
a08oZCl8MDtjW2IrOD4+Ml09aDtjW2I+PjJdPWR8MTtjW2IrND4+Ml09ZjtnPWh9a1koZ3wwLGV8
MCxmKXwwO2FbZytmfDBdPTA7cmV0dXJufWZ1bmN0aW9uIGRaKGIsZCxlKXtiPWJ8MDtkPWR8MDtl
PWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wO2lmKChlfDApPT0tMSl7ZFgoMCl9aWYoZT4+PjA8MTEp
e2FbYl09ZTw8MSYyNTU7Zj1iKzF8MDtrWShmfDAsZHwwLGUpfDA7Zz1mK2V8MDthW2ddPTA7cmV0
dXJufWVsc2V7aD1lKzE2Ji0xNjtpPWtPKGgpfDA7Y1tiKzg+PjJdPWk7Y1tiPj4yXT1ofDE7Y1ti
KzQ+PjJdPWU7Zj1pO2tZKGZ8MCxkfDAsZSl8MDtnPWYrZXwwO2FbZ109MDtyZXR1cm59fWZ1bmN0
aW9uIGRfKGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTA7aWYoKGR8MCk9
PS0xKXtkWCgwKX1pZihkPj4+MDwxMSl7YVtiXT1kPDwxJjI1NTtmPWIrMXwwfWVsc2V7Zz1kKzE2
Ji0xNjtoPWtPKGcpfDA7Y1tiKzg+PjJdPWg7Y1tiPj4yXT1nfDE7Y1tiKzQ+PjJdPWQ7Zj1ofWsk
KGZ8MCxlfDAsZHwwKTthW2YrZHwwXT0wO3JldHVybn1mdW5jdGlvbiBkJChiLGQpe2I9YnwwO2Q9
ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxx
PTAscj0wO2lmKChkfDApPT0tMSl7ZFgoMCl9ZT1iO2Y9YjtnPWFbZl18MDtpZigoZyYxKT09MCl7
aD0xMDtpPWd9ZWxzZXtnPWNbYj4+Ml18MDtoPShnJi0yKS0xfDA7aT1nJjI1NX1nPWkmMjU1O2lm
KChnJjF8MCk9PTApe2o9Zz4+PjF9ZWxzZXtqPWNbYis0Pj4yXXwwfWc9aj4+PjA+ZD4+PjA/ajpk
O2lmKGc+Pj4wPDExKXtrPTExfWVsc2V7az1nKzE2Ji0xNn1nPWstMXwwO2lmKChnfDApPT0oaHww
KSl7cmV0dXJufWlmKChnfDApPT0xMCl7bD1lKzF8MDttPWNbYis4Pj4yXXwwO249MTtvPTB9ZWxz
ZXtpZihnPj4+MD5oPj4+MCl7cD1rTyhrKXwwfWVsc2V7cD1rTyhrKXwwfWg9aSYxO2lmKGg8PDI0
Pj4yND09MCl7cT1lKzF8MH1lbHNle3E9Y1tiKzg+PjJdfDB9bD1wO209cTtuPWg8PDI0Pj4yNCE9
MDtvPTF9aD1pJjI1NTtpZigoaCYxfDApPT0wKXtyPWg+Pj4xfWVsc2V7cj1jW2IrND4+Ml18MH1o
PXIrMXwwO2tZKGx8MCxtfDAsaCl8MDtpZihuKXtrUyhtKX1pZihvKXtjW2I+PjJdPWt8MTtjW2Ir
ND4+Ml09ajtjW2IrOD4+Ml09bDtyZXR1cm59ZWxzZXthW2ZdPWo8PDEmMjU1O3JldHVybn19ZnVu
Y3Rpb24gZDAoYixkLGUsZixnLGgsaSxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDtpPWl8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MDtpZigoLTMtZHwwKT4+PjA8ZT4+PjApe2RYKDApfWlmKChhW2JdJjEpPT0wKXtrPWIr
MXwwfWVsc2V7az1jW2IrOD4+Ml18MH1kb3tpZihkPj4+MDwyMTQ3NDgzNjMxKXtsPWUrZHwwO209
ZDw8MTtuPWw+Pj4wPG0+Pj4wP206bDtpZihuPj4+MDwxMSl7bz0xMTticmVha31vPW4rMTYmLTE2
fWVsc2V7bz0tMn19d2hpbGUoMCk7ZT1rTyhvKXwwO2lmKChnfDApIT0wKXtrWShlfDAsa3wwLGcp
fDB9aWYoKGl8MCkhPTApe249ZStnfDA7a1kobnwwLGp8MCxpKXwwfWo9Zi1ofDA7aWYoKGp8MCkh
PShnfDApKXtmPWotZ3wwO249ZSsoaStnKXwwO2w9aysoaCtnKXwwO2tZKG58MCxsfDAsZil8MH1p
ZigoZHwwKT09MTApe3A9Yis4fDA7Y1twPj4yXT1lO3E9b3wxO3I9YnwwO2Nbcj4+Ml09cTtzPWor
aXwwO3Q9Yis0fDA7Y1t0Pj4yXT1zO3U9ZStzfDA7YVt1XT0wO3JldHVybn1rUyhrKTtwPWIrOHww
O2NbcD4+Ml09ZTtxPW98MTtyPWJ8MDtjW3I+PjJdPXE7cz1qK2l8MDt0PWIrNHwwO2NbdD4+Ml09
czt1PWUrc3wwO2FbdV09MDtyZXR1cm59ZnVuY3Rpb24gZDEoYixkLGUsZixnLGgsaSl7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7dmFyIGo9MCxrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTA7aWYoKC0zLWR8MCk+Pj4wPGU+Pj4wKXtkWCgwKX1pZigoYVtiXSYxKT09
MCl7aj1iKzF8MH1lbHNle2o9Y1tiKzg+PjJdfDB9ZG97aWYoZD4+PjA8MjE0NzQ4MzYzMSl7az1l
K2R8MDtsPWQ8PDE7bT1rPj4+MDxsPj4+MD9sOms7aWYobT4+PjA8MTEpe249MTE7YnJlYWt9bj1t
KzE2Ji0xNn1lbHNle249LTJ9fXdoaWxlKDApO2U9a08obil8MDtpZigoZ3wwKSE9MCl7a1koZXww
LGp8MCxnKXwwfW09Zi1ofDA7aWYoKG18MCkhPShnfDApKXtmPW0tZ3wwO209ZSsoaStnKXwwO2k9
aisoaCtnKXwwO2tZKG18MCxpfDAsZil8MH1pZigoZHwwKT09MTApe289Yis4fDA7Y1tvPj4yXT1l
O3A9bnwxO3E9YnwwO2NbcT4+Ml09cDtyZXR1cm59a1Moaik7bz1iKzh8MDtjW28+PjJdPWU7cD1u
fDE7cT1ifDA7Y1txPj4yXT1wO3JldHVybn1mdW5jdGlvbiBkMihhLGIpe2E9YXwwO2I9YnwwO3Jl
dHVybn1mdW5jdGlvbiBkMyhhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7cmV0dXJuIGF8MH1mdW5j
dGlvbiBkNChhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBkNShhKXthPWF8MDtyZXR1cm4gMH1m
dW5jdGlvbiBkNihhKXthPWF8MDtyZXR1cm4tMXwwfWZ1bmN0aW9uIGQ3KGEsYil7YT1hfDA7Yj1i
fDA7cmV0dXJuLTF8MH1mdW5jdGlvbiBkOChhLGIpe2E9YXwwO2I9YnwwO3JldHVybi0xfDB9ZnVu
Y3Rpb24gZDkoYSxiKXthPWF8MDtiPWJ8MDtyZXR1cm59ZnVuY3Rpb24gZWEoYSxiLGMpe2E9YXww
O2I9YnwwO2M9Y3wwO3JldHVybiBhfDB9ZnVuY3Rpb24gZWIoYSxiLGQsZSxmLGcpe2E9YXwwO2I9
YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2c9YTtjW2c+PjJdPTA7Y1tnKzQ+PjJdPTA7Zz1h
Kzh8MDtjW2c+PjJdPS0xO2NbZys0Pj4yXT0tMTtyZXR1cm59ZnVuY3Rpb24gZWMoYSxiLGQsZSl7
YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7ZT1pO2I9ZDtkPWk7aT1pKzE2fDA7Y1tkPj4yXT1jW2I+
PjJdO2NbZCs0Pj4yXT1jW2IrND4+Ml07Y1tkKzg+PjJdPWNbYis4Pj4yXTtjW2QrMTI+PjJdPWNb
YisxMj4+Ml07Yj1hO2NbYj4+Ml09MDtjW2IrND4+Ml09MDtiPWErOHwwO2NbYj4+Ml09LTE7Y1ti
KzQ+PjJdPS0xO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZWQoYSxiLGQsZSxmLGcpe2E9YXwwO2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2c9YTtjW2c+PjJdPTA7Y1tnKzQ+PjJdPTA7Zz1hKzh8
MDtjW2c+PjJdPS0xO2NbZys0Pj4yXT0tMTtyZXR1cm59ZnVuY3Rpb24gZWUoYil7Yj1ifDA7aWYo
KGFbYl0mMSk9PTApe3JldHVybn1rUyhjW2IrOD4+Ml18MCk7cmV0dXJufWZ1bmN0aW9uIGVmKGEs
Yil7YT1hfDA7Yj1ifDA7cmV0dXJuIGVnKGEsYixrbShiKXwwKXwwfWZ1bmN0aW9uIGVnKGIsZCxl
KXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTA7Zj1iO2c9YVtm
XXwwO2lmKChnJjEpPT0wKXtoPTE7aT1nfWVsc2V7Zz1jW2I+PjJdfDA7aD0oZyYtMiktMXwwO2k9
ZyYyNTV9aWYoaD4+PjA8ZT4+PjApe2c9aSYyNTU7aWYoKGcmMXwwKT09MCl7aj1nPj4+MX1lbHNl
e2o9Y1tiKzQ+PjJdfDB9ZUEoYixoLGUtaHwwLGosMCxqLGUsZCk7cmV0dXJuIGJ8MH1pZigoaSYx
KT09MCl7az1iKzR8MH1lbHNle2s9Y1tiKzg+PjJdfDB9a28oayxkLGUpfDA7Y1trKyhlPDwyKT4+
Ml09MDtpZigoYVtmXSYxKT09MCl7YVtmXT1lPDwxJjI1NTtyZXR1cm4gYnwwfWVsc2V7Y1tiKzQ+
PjJdPWU7cmV0dXJuIGJ8MH1yZXR1cm4gMH1mdW5jdGlvbiBlaChiLGQpe2I9YnwwO2Q9ZHwwO3Zh
ciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MDtlPWI7Zj1hW2VdfDA7aWYoKGYm
MSk9PTApe2c9KGYmMjU1KT4+PjE7aD0xfWVsc2V7Zz1jW2IrND4+Ml18MDtoPShjW2I+PjJdJi0y
KS0xfDB9aWYoKGd8MCk9PShofDApKXtlQihiLGgsMSxoLGgsMCwwKTtpPWFbZV18MH1lbHNle2k9
Zn1pZigoaSYxKT09MCl7YVtlXT0oZzw8MSkrMiYyNTU7aj1iKzR8MDtrPWcrMXwwO2w9aisoZzw8
Mil8MDtjW2w+PjJdPWQ7bT1qKyhrPDwyKXwwO2NbbT4+Ml09MDtyZXR1cm59ZWxzZXtlPWNbYis4
Pj4yXXwwO2k9ZysxfDA7Y1tiKzQ+PjJdPWk7aj1lO2s9aTtsPWorKGc8PDIpfDA7Y1tsPj4yXT1k
O209aisoazw8Mil8MDtjW20+PjJdPTA7cmV0dXJufX1mdW5jdGlvbiBlaShhKXthPWF8MDtlRChh
fDApO3JldHVybn1mdW5jdGlvbiBlaihhLGIpe2E9YXwwO2I9YnwwO2lOKGEsYisyOHwwKTtyZXR1
cm59ZnVuY3Rpb24gZWsoYSxiKXthPWF8MDtiPWJ8MDtjW2ErMjQ+PjJdPWI7Y1thKzE2Pj4yXT0o
YnwwKT09MDtjW2ErMjA+PjJdPTA7Y1thKzQ+PjJdPTQwOTg7Y1thKzEyPj4yXT0wO2NbYSs4Pj4y
XT02O2I9YSsyOHwwO2skKGErMzJ8MCwwLDQwKTtpZigoYnwwKT09MCl7cmV0dXJufWlXKGIpO3Jl
dHVybn1mdW5jdGlvbiBlbChhKXthPWF8MDtlRChhfDApO3JldHVybn1mdW5jdGlvbiBlbShhKXth
PWF8MDtjW2E+PjJdPTQyMzI7aU8oYSs0fDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBlbihhKXth
PWF8MDtjW2E+PjJdPTQyMzI7aU8oYSs0fDApO3JldHVybn1mdW5jdGlvbiBlbyhhKXthPWF8MDtj
W2E+PjJdPTQyMzI7aU8oYSs0fDApO3JldHVybn1mdW5jdGlvbiBlcChhKXthPWF8MDtjW2E+PjJd
PTQyMzI7aVcoYSs0fDApO2skKGErOHwwLDAsMjQpO3JldHVybn1mdW5jdGlvbiBlcShiLGQsZSl7
Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTA7Zj1i
O2lmKChlfDApPD0wKXtnPTA7cmV0dXJuIGd8MH1oPWIrMTJ8MDtpPWIrMTZ8MDtqPWQ7ZD0wO3do
aWxlKDEpe2s9Y1toPj4yXXwwO2lmKGs+Pj4wPChjW2k+PjJdfDApPj4+MCl7Y1toPj4yXT1rKzE7
bD1hW2tdfDB9ZWxzZXtrPWIwW2NbKGNbZj4+Ml18MCkrNDA+PjJdJjEyN10oYil8MDtpZigoa3ww
KT09LTEpe2c9ZDttPTE4NTQ7YnJlYWt9bD1rJjI1NX1hW2pdPWw7az1kKzF8MDtpZigoa3wwKTwo
ZXwwKSl7aj1qKzF8MDtkPWt9ZWxzZXtnPWs7bT0xODU2O2JyZWFrfX1pZigobXwwKT09MTg1NCl7
cmV0dXJuIGd8MH1lbHNlIGlmKChtfDApPT0xODU2KXtyZXR1cm4gZ3wwfXJldHVybiAwfWZ1bmN0
aW9uIGVyKGEpe2E9YXwwO3ZhciBiPTAsZT0wO2lmKChiMFtjWyhjW2E+PjJdfDApKzM2Pj4yXSYx
MjddKGEpfDApPT0tMSl7Yj0tMTtyZXR1cm4gYnwwfWU9YSsxMnwwO2E9Y1tlPj4yXXwwO2NbZT4+
Ml09YSsxO2I9ZFthXXwwO3JldHVybiBifDB9ZnVuY3Rpb24gZXMoYixlLGYpe2I9YnwwO2U9ZXww
O2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2c9YjtpZigoZnwwKTw9
MCl7aD0wO3JldHVybiBofDB9aT1iKzI0fDA7aj1iKzI4fDA7az0wO2w9ZTt3aGlsZSgxKXtlPWNb
aT4+Ml18MDtpZihlPj4+MDwoY1tqPj4yXXwwKT4+PjApe209YVtsXXwwO2NbaT4+Ml09ZSsxO2Fb
ZV09bX1lbHNle2lmKChiX1tjWyhjW2c+PjJdfDApKzUyPj4yXSYzMV0oYixkW2xdfDApfDApPT0t
MSl7aD1rO249MTg2OTticmVha319bT1rKzF8MDtpZigobXwwKTwoZnwwKSl7az1tO2w9bCsxfDB9
ZWxzZXtoPW07bj0xODcxO2JyZWFrfX1pZigobnwwKT09MTg2OSl7cmV0dXJuIGh8MH1lbHNlIGlm
KChufDApPT0xODcxKXtyZXR1cm4gaHwwfXJldHVybiAwfWZ1bmN0aW9uIGV0KGEpe2E9YXwwO2Nb
YT4+Ml09NDE2MDtpTyhhKzR8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGV1KGEpe2E9YXwwO2Nb
YT4+Ml09NDE2MDtpTyhhKzR8MCk7cmV0dXJufWZ1bmN0aW9uIGV2KGEpe2E9YXwwO2NbYT4+Ml09
NDE2MDtpTyhhKzR8MCk7cmV0dXJufWZ1bmN0aW9uIGV3KGEpe2E9YXwwO2NbYT4+Ml09NDE2MDtp
VyhhKzR8MCk7ayQoYSs4fDAsMCwyNCk7cmV0dXJufWZ1bmN0aW9uIGV4KGIsZCxlKXtiPWJ8MDtk
PWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAsaT0wLGo9MDtpZihlPj4+MD4xMDczNzQxODIyKXtk
WCgwKX1pZihlPj4+MDwyKXthW2JdPWU8PDEmMjU1O2Y9Yis0fDA7Zz1rbihmLGQsZSl8MDtoPWYr
KGU8PDIpfDA7Y1toPj4yXT0wO3JldHVybn1lbHNle2k9ZSs0Ji00O2o9a08oaTw8Mil8MDtjW2Ir
OD4+Ml09ajtjW2I+PjJdPWl8MTtjW2IrND4+Ml09ZTtmPWo7Zz1rbihmLGQsZSl8MDtoPWYrKGU8
PDIpfDA7Y1toPj4yXT0wO3JldHVybn19ZnVuY3Rpb24gZXkoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9
ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wO2lmKGQ+Pj4wPjEwNzM3NDE4MjIpe2RYKDApfWlm
KGQ+Pj4wPDIpe2FbYl09ZDw8MSYyNTU7Zj1iKzR8MDtnPWtwKGYsZSxkKXwwO2g9ZisoZDw8Mil8
MDtjW2g+PjJdPTA7cmV0dXJufWVsc2V7aT1kKzQmLTQ7aj1rTyhpPDwyKXwwO2NbYis4Pj4yXT1q
O2NbYj4+Ml09aXwxO2NbYis0Pj4yXT1kO2Y9ajtnPWtwKGYsZSxkKXwwO2g9ZisoZDw8Mil8MDtj
W2g+PjJdPTA7cmV0dXJufX1mdW5jdGlvbiBleihiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0w
LGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTA7aWYoZD4+PjA+MTA3
Mzc0MTgyMil7ZFgoMCl9ZT1iO2Y9YVtlXXwwO2lmKChmJjEpPT0wKXtnPTE7aD1mfWVsc2V7Zj1j
W2I+PjJdfDA7Zz0oZiYtMiktMXwwO2g9ZiYyNTV9Zj1oJjI1NTtpZigoZiYxfDApPT0wKXtpPWY+
Pj4xfWVsc2V7aT1jW2IrND4+Ml18MH1mPWk+Pj4wPmQ+Pj4wP2k6ZDtpZihmPj4+MDwyKXtqPTJ9
ZWxzZXtqPWYrNCYtNH1mPWotMXwwO2lmKChmfDApPT0oZ3wwKSl7cmV0dXJufWlmKChmfDApPT0x
KXtrPWIrNHwwO2w9Y1tiKzg+PjJdfDA7bT0xO249MH1lbHNle2Q9ajw8MjtpZihmPj4+MD5nPj4+
MCl7bz1rTyhkKXwwfWVsc2V7bz1rTyhkKXwwfWQ9aCYxO2lmKGQ8PDI0Pj4yND09MCl7cD1iKzR8
MH1lbHNle3A9Y1tiKzg+PjJdfDB9az1vO2w9cDttPWQ8PDI0Pj4yNCE9MDtuPTF9ZD1rO2s9aCYy
NTU7aWYoKGsmMXwwKT09MCl7cT1rPj4+MX1lbHNle3E9Y1tiKzQ+PjJdfDB9a24oZCxsLHErMXww
KXwwO2lmKG0pe2tTKGwpfWlmKG4pe2NbYj4+Ml09anwxO2NbYis0Pj4yXT1pO2NbYis4Pj4yXT1k
O3JldHVybn1lbHNle2FbZV09aTw8MSYyNTU7cmV0dXJufX1mdW5jdGlvbiBlQShiLGQsZSxmLGcs
aCxpLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO3Zh
ciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wO2lmKCgxMDczNzQx
ODIxLWR8MCk+Pj4wPGU+Pj4wKXtkWCgwKX1pZigoYVtiXSYxKT09MCl7az1iKzR8MH1lbHNle2s9
Y1tiKzg+PjJdfDB9ZG97aWYoZD4+PjA8NTM2ODcwODk1KXtsPWUrZHwwO209ZDw8MTtuPWw+Pj4w
PG0+Pj4wP206bDtpZihuPj4+MDwyKXtvPTI7YnJlYWt9bz1uKzQmLTR9ZWxzZXtvPTEwNzM3NDE4
MjJ9fXdoaWxlKDApO2U9a08obzw8Mil8MDtpZigoZ3wwKSE9MCl7a24oZSxrLGcpfDB9aWYoKGl8
MCkhPTApe249ZSsoZzw8Mil8MDtrbihuLGosaSl8MH1qPWYtaHwwO2lmKChqfDApIT0oZ3wwKSl7
Zj1qLWd8MDtuPWUrKGkrZzw8Mil8MDtsPWsrKGgrZzw8Mil8MDtrbihuLGwsZil8MH1pZigoZHww
KT09MSl7cD1iKzh8MDtjW3A+PjJdPWU7cT1vfDE7cj1ifDA7Y1tyPj4yXT1xO3M9aitpfDA7dD1i
KzR8MDtjW3Q+PjJdPXM7dT1lKyhzPDwyKXwwO2NbdT4+Ml09MDtyZXR1cm59a1Moayk7cD1iKzh8
MDtjW3A+PjJdPWU7cT1vfDE7cj1ifDA7Y1tyPj4yXT1xO3M9aitpfDA7dD1iKzR8MDtjW3Q+PjJd
PXM7dT1lKyhzPDwyKXwwO2NbdT4+Ml09MDtyZXR1cm59ZnVuY3Rpb24gZUIoYixkLGUsZixnLGgs
aSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7dmFyIGo9MCxrPTAs
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTA7aWYoKDEwNzM3NDE4MjEtZHwwKT4+PjA8ZT4+PjApe2RY
KDApfWlmKChhW2JdJjEpPT0wKXtqPWIrNHwwfWVsc2V7aj1jW2IrOD4+Ml18MH1kb3tpZihkPj4+
MDw1MzY4NzA4OTUpe2s9ZStkfDA7bD1kPDwxO209az4+PjA8bD4+PjA/bDprO2lmKG0+Pj4wPDIp
e249MjticmVha31uPW0rNCYtNH1lbHNle249MTA3Mzc0MTgyMn19d2hpbGUoMCk7ZT1rTyhuPDwy
KXwwO2lmKChnfDApIT0wKXtrbihlLGosZyl8MH1tPWYtaHwwO2lmKChtfDApIT0oZ3wwKSl7Zj1t
LWd8MDttPWUrKGkrZzw8Mil8MDtpPWorKGgrZzw8Mil8MDtrbihtLGksZil8MH1pZigoZHwwKT09
MSl7bz1iKzh8MDtjW28+PjJdPWU7cD1ufDE7cT1ifDA7Y1txPj4yXT1wO3JldHVybn1rUyhqKTtv
PWIrOHwwO2Nbbz4+Ml09ZTtwPW58MTtxPWJ8MDtjW3E+PjJdPXA7cmV0dXJufWZ1bmN0aW9uIGVD
KGIsZCl7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2U9aTtpPWkrOHwwO2Y9ZXwwO2c9KGNb
YisyND4+Ml18MCk9PTA7aWYoZyl7Y1tiKzE2Pj4yXT1kfDF9ZWxzZXtjW2IrMTY+PjJdPWR9aWYo
KChnJjF8ZCkmY1tiKzIwPj4yXXwwKT09MCl7aT1lO3JldHVybn1lPWJPKDE2KXwwO2Rve2lmKChh
WzE2MjcyXXwwKT09MCl7aWYoKGJjKDE2MjcyKXwwKT09MCl7YnJlYWt9ZGooMTE4NDApO2NbMjk2
MF09NGUzO2EkKDY2LDExODQwLHV8MCl8MH19d2hpbGUoMCk7Yj1rMygxMTg0MCwwLDMyKXwwO2Q9
SztjW2Y+PjJdPWImMHwxO2NbZis0Pj4yXT1kfDA7ZE0oZSxmLDEzMDQpO2NbZT4+Ml09MzE4NDti
bChlfDAsODc1MiwyOCl9ZnVuY3Rpb24gZUQoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wLGY9MDtj
W2E+PjJdPTMxNjA7Yj1jW2ErNDA+PjJdfDA7ZD1hKzMyfDA7ZT1hKzM2fDA7aWYoKGJ8MCkhPTAp
e2Y9Yjtkb3tmPWYtMXwwO2IzW2NbKGNbZD4+Ml18MCkrKGY8PDIpPj4yXSY3XSgwLGEsY1soY1tl
Pj4yXXwwKSsoZjw8Mik+PjJdfDApO313aGlsZSgoZnwwKSE9MCl9aU8oYSsyOHwwKTtrSyhjW2Q+
PjJdfDApO2tLKGNbZT4+Ml18MCk7a0soY1thKzQ4Pj4yXXwwKTtrSyhjW2ErNjA+PjJdfDApO3Jl
dHVybn1mdW5jdGlvbiBlRShhKXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBlRihhKXthPWF8MDty
ZXR1cm4gMH1mdW5jdGlvbiBlRyhhKXthPWF8MDtyZXR1cm4tMXwwfWZ1bmN0aW9uIGVIKGEsYil7
YT1hfDA7Yj1ifDA7cmV0dXJuLTF8MH1mdW5jdGlvbiBlSShhLGIpe2E9YXwwO2I9YnwwO3JldHVy
bi0xfDB9ZnVuY3Rpb24gZUooYSl7YT1hfDA7cmV0dXJuIDE0MTZ8MH1mdW5jdGlvbiBlSyhhLGIs
ZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtlPWk7Yj1kO2Q9aTtpPWkrMTZ8MDtjW2Q+PjJd
PWNbYj4+Ml07Y1tkKzQ+PjJdPWNbYis0Pj4yXTtjW2QrOD4+Ml09Y1tiKzg+PjJdO2NbZCsxMj4+
Ml09Y1tiKzEyPj4yXTtiPWE7Y1tiPj4yXT0wO2NbYis0Pj4yXT0wO2I9YSs4fDA7Y1tiPj4yXT0t
MTtjW2IrND4+Ml09LTE7aT1lO3JldHVybn1mdW5jdGlvbiBlTChiLGMsZCxlLGYpe2I9YnwwO2M9
Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtMMjQzNzpk
b3tpZigoZXwwKT09KGZ8MCkpe2c9Y31lbHNle2I9YztoPWU7d2hpbGUoMSl7aWYoKGJ8MCk9PShk
fDApKXtpPS0xO2o9MTk5MDticmVha31rPWFbYl18MDtsPWFbaF18MDtpZihrPDwyND4+MjQ8bDw8
MjQ+PjI0KXtpPS0xO2o9MTk5MzticmVha31pZihsPDwyND4+MjQ8azw8MjQ+PjI0KXtpPTE7aj0x
OTkyO2JyZWFrfWs9YisxfDA7bD1oKzF8MDtpZigobHwwKT09KGZ8MCkpe2c9azticmVhayBMMjQz
N31lbHNle2I9aztoPWx9fWlmKChqfDApPT0xOTkzKXtyZXR1cm4gaXwwfWVsc2UgaWYoKGp8MCk9
PTE5OTIpe3JldHVybiBpfDB9ZWxzZSBpZigoanwwKT09MTk5MCl7cmV0dXJuIGl8MH19fXdoaWxl
KDApO2k9KGd8MCkhPShkfDApfDA7cmV0dXJuIGl8MH1mdW5jdGlvbiBlTShiLGMsZCl7Yj1ifDA7
Yz1jfDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MDtpZigoY3wwKT09KGR8MCkpe2U9MDtyZXR1
cm4gZXwwfWVsc2V7Zj1jO2c9MH13aGlsZSgxKXtjPShhW2ZdfDApKyhnPDw0KXwwO2I9YyYtMjY4
NDM1NDU2O2g9KGI+Pj4yNHxiKV5jO2M9ZisxfDA7aWYoKGN8MCk9PShkfDApKXtlPWg7YnJlYWt9
ZWxzZXtmPWM7Zz1ofX1yZXR1cm4gZXwwfWZ1bmN0aW9uIGVOKGEsYixkKXthPWF8MDtiPWJ8MDtk
PWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtlPWE7aWYoKGR8MCk8PTAp
e2Y9MDtyZXR1cm4gZnwwfWc9YSsxMnwwO2g9YSsxNnwwO2k9YjtiPTA7d2hpbGUoMSl7aj1jW2c+
PjJdfDA7aWYoaj4+PjA8KGNbaD4+Ml18MCk+Pj4wKXtjW2c+PjJdPWorNDtrPWNbaj4+Ml18MH1l
bHNle2o9YjBbY1soY1tlPj4yXXwwKSs0MD4+Ml0mMTI3XShhKXwwO2lmKChqfDApPT0tMSl7Zj1i
O2w9MjAwNzticmVha31lbHNle2s9an19Y1tpPj4yXT1rO2o9YisxfDA7aWYoKGp8MCk8KGR8MCkp
e2k9aSs0fDA7Yj1qfWVsc2V7Zj1qO2w9MjAwODticmVha319aWYoKGx8MCk9PTIwMDgpe3JldHVy
biBmfDB9ZWxzZSBpZigobHwwKT09MjAwNyl7cmV0dXJuIGZ8MH1yZXR1cm4gMH1mdW5jdGlvbiBl
TyhhKXthPWF8MDt2YXIgYj0wLGQ9MDtpZigoYjBbY1soY1thPj4yXXwwKSszNj4+Ml0mMTI3XShh
KXwwKT09LTEpe2I9LTE7cmV0dXJuIGJ8MH1kPWErMTJ8MDthPWNbZD4+Ml18MDtjW2Q+PjJdPWEr
NDtiPWNbYT4+Ml18MDtyZXR1cm4gYnwwfWZ1bmN0aW9uIGVQKGEsYixkKXthPWF8MDtiPWJ8MDtk
PWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtlPWE7aWYoKGR8MCk8PTAp
e2Y9MDtyZXR1cm4gZnwwfWc9YSsyNHwwO2g9YSsyOHwwO2k9MDtqPWI7d2hpbGUoMSl7Yj1jW2c+
PjJdfDA7aWYoYj4+PjA8KGNbaD4+Ml18MCk+Pj4wKXtrPWNbaj4+Ml18MDtjW2c+PjJdPWIrNDtj
W2I+PjJdPWt9ZWxzZXtpZigoYl9bY1soY1tlPj4yXXwwKSs1Mj4+Ml0mMzFdKGEsY1tqPj4yXXww
KXwwKT09LTEpe2Y9aTtsPTIwMjM7YnJlYWt9fWs9aSsxfDA7aWYoKGt8MCk8KGR8MCkpe2k9aztq
PWorNHwwfWVsc2V7Zj1rO2w9MjAyMjticmVha319aWYoKGx8MCk9PTIwMjMpe3JldHVybiBmfDB9
ZWxzZSBpZigobHwwKT09MjAyMil7cmV0dXJuIGZ8MH1yZXR1cm4gMH1mdW5jdGlvbiBlUShhKXth
PWF8MDtlRChhKzh8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGVSKGEpe2E9YXwwO2VEKGErOHww
KTtyZXR1cm59ZnVuY3Rpb24gZVMoYSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1hO2Q9Y1soY1thPj4y
XXwwKS0xMj4+Ml18MDtlRChiKyhkKzgpfDApO2tTKGIrZHwwKTtyZXR1cm59ZnVuY3Rpb24gZVQo
YSl7YT1hfDA7ZUQoYSsoKGNbKGNbYT4+Ml18MCktMTI+PjJdfDApKzgpfDApO3JldHVybn1mdW5j
dGlvbiBlVShhKXthPWF8MDtlRChhKzh8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGVWKGEpe2E9
YXwwO2VEKGErOHwwKTtyZXR1cm59ZnVuY3Rpb24gZVcoYSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1h
O2Q9Y1soY1thPj4yXXwwKS0xMj4+Ml18MDtlRChiKyhkKzgpfDApO2tTKGIrZHwwKTtyZXR1cm59
ZnVuY3Rpb24gZVgoYSl7YT1hfDA7ZUQoYSsoKGNbKGNbYT4+Ml18MCktMTI+PjJdfDApKzgpfDAp
O3JldHVybn1mdW5jdGlvbiBlWShhKXthPWF8MDtlRChhKzR8MCk7a1MoYSk7cmV0dXJufWZ1bmN0
aW9uIGVaKGEpe2E9YXwwO2VEKGErNHwwKTtyZXR1cm59ZnVuY3Rpb24gZV8oYSl7YT1hfDA7dmFy
IGI9MCxkPTA7Yj1hO2Q9Y1soY1thPj4yXXwwKS0xMj4+Ml18MDtlRChiKyhkKzQpfDApO2tTKGIr
ZHwwKTtyZXR1cm59ZnVuY3Rpb24gZSQoYSl7YT1hfDA7ZUQoYSsoKGNbKGNbYT4+Ml18MCktMTI+
PjJdfDApKzQpfDApO3JldHVybn1mdW5jdGlvbiBlMChhKXthPWF8MDtlRChhKzR8MCk7a1MoYSk7
cmV0dXJufWZ1bmN0aW9uIGUxKGEpe2E9YXwwO2VEKGErNHwwKTtyZXR1cm59ZnVuY3Rpb24gZTIo
YSl7YT1hfDA7dmFyIGI9MCxkPTA7Yj1hO2Q9Y1soY1thPj4yXXwwKS0xMj4+Ml18MDtlRChiKyhk
KzQpfDApO2tTKGIrZHwwKTtyZXR1cm59ZnVuY3Rpb24gZTMoYSl7YT1hfDA7ZUQoYSsoKGNbKGNb
YT4+Ml18MCktMTI+PjJdfDApKzQpfDApO3JldHVybn1mdW5jdGlvbiBlNChhLGIsYyl7YT1hfDA7
Yj1ifDA7Yz1jfDA7aWYoKGN8MCk9PTEpe2RaKGEsMTY0MCwzNSk7cmV0dXJufWVsc2V7ZEsoYSxi
fDAsYyk7cmV0dXJufX1mdW5jdGlvbiBlNShhKXthPWF8MDtkZihhfDApO3JldHVybn1mdW5jdGlv
biBlNihhKXthPWF8MDtkTyhhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBlNyhhKXthPWF8MDtk
TyhhfDApO3JldHVybn1mdW5jdGlvbiBlOChhKXthPWF8MDtlRChhKTtrUyhhKTtyZXR1cm59ZnVu
Y3Rpb24gZTkoYSl7YT1hfDA7ZGYoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZmEoYSl7YT1h
fDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZmIoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1
cm59ZnVuY3Rpb24gZmMoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZmQoYixkLGUs
Zil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MCxrPTA7ZD1lO2c9
Zi1kfDA7ZG97aWYoKGd8MCk9PS0xKXtkWChiKTtoPTIwNTh9ZWxzZXtpZihnPj4+MD49MTEpe2g9
MjA1ODticmVha31hW2JdPWc8PDEmMjU1O2k9YisxfDB9fXdoaWxlKDApO2lmKChofDApPT0yMDU4
KXtoPWcrMTYmLTE2O2o9a08oaCl8MDtjW2IrOD4+Ml09ajtjW2I+PjJdPWh8MTtjW2IrND4+Ml09
ZztpPWp9aWYoKGV8MCk9PShmfDApKXtrPWk7YVtrXT0wO3JldHVybn1qPWYrKC1kfDApfDA7ZD1p
O2c9ZTt3aGlsZSgxKXthW2RdPWFbZ118MDtlPWcrMXwwO2lmKChlfDApPT0oZnwwKSl7YnJlYWt9
ZWxzZXtkPWQrMXwwO2c9ZX19az1pK2p8MDthW2tdPTA7cmV0dXJufWZ1bmN0aW9uIGZlKGEpe2E9
YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGZmKGEpe2E9YXwwO2RlKGF8MCk7cmV0
dXJufWZ1bmN0aW9uIGZnKGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAsaD0wLGo9MCxrPTA7
ZD1pO2k9aSs4fDA7ZT1kfDA7Zj1iO2c9Y1soY1tmPj4yXXwwKS0xMj4+Ml18MDtoPWI7aWYoKGNb
aCsoZysyNCk+PjJdfDApPT0wKXtpPWQ7cmV0dXJuIGJ8MH1qPWV8MDthW2pdPTA7Y1tlKzQ+PjJd
PWI7ZG97aWYoKGNbaCsoZysxNik+PjJdfDApPT0wKXtrPWNbaCsoZys3Mik+PjJdfDA7aWYoKGt8
MCkhPTApe2ZnKGspfDB9YVtqXT0xO2s9Y1toKygoY1soY1tmPj4yXXwwKS0xMj4+Ml18MCkrMjQp
Pj4yXXwwO2lmKChiMFtjWyhjW2s+PjJdfDApKzI0Pj4yXSYxMjddKGspfDApIT0tMSl7YnJlYWt9
az1jWyhjW2Y+PjJdfDApLTEyPj4yXXwwO2VDKGgra3wwLGNbaCsoaysxNik+PjJdfDEpfX13aGls
ZSgwKTtmaShlKTtpPWQ7cmV0dXJuIGJ8MH1mdW5jdGlvbiBmaChiKXtiPWJ8MDt2YXIgZD0wLGU9
MCxmPTAsZz0wLGg9MCxqPTAsaz0wO2Q9aTtpPWkrOHwwO2U9ZHwwO2Y9YjtnPWNbKGNbZj4+Ml18
MCktMTI+PjJdfDA7aD1iO2lmKChjW2grKGcrMjQpPj4yXXwwKT09MCl7aT1kO3JldHVybiBifDB9
aj1lfDA7YVtqXT0wO2NbZSs0Pj4yXT1iO2Rve2lmKChjW2grKGcrMTYpPj4yXXwwKT09MCl7az1j
W2grKGcrNzIpPj4yXXwwO2lmKChrfDApIT0wKXtmaChrKXwwfWFbal09MTtrPWNbaCsoKGNbKGNb
Zj4+Ml18MCktMTI+PjJdfDApKzI0KT4+Ml18MDtpZigoYjBbY1soY1trPj4yXXwwKSsyND4+Ml0m
MTI3XShrKXwwKSE9LTEpe2JyZWFrfWs9Y1soY1tmPj4yXXwwKS0xMj4+Ml18MDtlQyhoK2t8MCxj
W2grKGsrMTYpPj4yXXwxKX19d2hpbGUoMCk7ZmooZSk7aT1kO3JldHVybiBifDB9ZnVuY3Rpb24g
ZmkoYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0wO2I9YSs0fDA7YT1jW2I+PjJdfDA7ZD1jWyhjW2E+
PjJdfDApLTEyPj4yXXwwO2U9YTtpZigoY1tlKyhkKzI0KT4+Ml18MCk9PTApe3JldHVybn1pZigo
Y1tlKyhkKzE2KT4+Ml18MCkhPTApe3JldHVybn1pZigoY1tlKyhkKzQpPj4yXSY4MTkyfDApPT0w
KXtyZXR1cm59aWYoYmgoKXwwKXtyZXR1cm59ZD1jW2I+PjJdfDA7ZT1jW2QrKChjWyhjW2Q+PjJd
fDApLTEyPj4yXXwwKSsyNCk+PjJdfDA7aWYoKGIwW2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10o
ZSl8MCkhPS0xKXtyZXR1cm59ZT1jW2I+PjJdfDA7Yj1jWyhjW2U+PjJdfDApLTEyPj4yXXwwO2Q9
ZTtlQyhkK2J8MCxjW2QrKGIrMTYpPj4yXXwxKTtyZXR1cm59ZnVuY3Rpb24gZmooYSl7YT1hfDA7
dmFyIGI9MCxkPTAsZT0wO2I9YSs0fDA7YT1jW2I+PjJdfDA7ZD1jWyhjW2E+PjJdfDApLTEyPj4y
XXwwO2U9YTtpZigoY1tlKyhkKzI0KT4+Ml18MCk9PTApe3JldHVybn1pZigoY1tlKyhkKzE2KT4+
Ml18MCkhPTApe3JldHVybn1pZigoY1tlKyhkKzQpPj4yXSY4MTkyfDApPT0wKXtyZXR1cm59aWYo
YmgoKXwwKXtyZXR1cm59ZD1jW2I+PjJdfDA7ZT1jW2QrKChjWyhjW2Q+PjJdfDApLTEyPj4yXXww
KSsyNCk+PjJdfDA7aWYoKGIwW2NbKGNbZT4+Ml18MCkrMjQ+PjJdJjEyN10oZSl8MCkhPS0xKXty
ZXR1cm59ZT1jW2I+PjJdfDA7Yj1jWyhjW2U+PjJdfDApLTEyPj4yXXwwO2Q9ZTtlQyhkK2J8MCxj
W2QrKGIrMTYpPj4yXXwxKTtyZXR1cm59ZnVuY3Rpb24gZmsoYSxiLGQsZSxmKXthPWF8MDtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTA7TDI1OTY6ZG97
aWYoKGV8MCk9PShmfDApKXtnPWJ9ZWxzZXthPWI7aD1lO3doaWxlKDEpe2lmKChhfDApPT0oZHww
KSl7aT0tMTtqPTIxNDc7YnJlYWt9az1jW2E+PjJdfDA7bD1jW2g+PjJdfDA7aWYoKGt8MCk8KGx8
MCkpe2k9LTE7aj0yMTUwO2JyZWFrfWlmKChsfDApPChrfDApKXtpPTE7aj0yMTQ4O2JyZWFrfWs9
YSs0fDA7bD1oKzR8MDtpZigobHwwKT09KGZ8MCkpe2c9azticmVhayBMMjU5Nn1lbHNle2E9azto
PWx9fWlmKChqfDApPT0yMTQ4KXtyZXR1cm4gaXwwfWVsc2UgaWYoKGp8MCk9PTIxNDcpe3JldHVy
biBpfDB9ZWxzZSBpZigoanwwKT09MjE1MCl7cmV0dXJuIGl8MH19fXdoaWxlKDApO2k9KGd8MCkh
PShkfDApfDA7cmV0dXJuIGl8MH1mdW5jdGlvbiBmbChhLGIsZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7
dmFyIGU9MCxmPTAsZz0wLGg9MDtpZigoYnwwKT09KGR8MCkpe2U9MDtyZXR1cm4gZXwwfWVsc2V7
Zj1iO2c9MH13aGlsZSgxKXtiPShjW2Y+PjJdfDApKyhnPDw0KXwwO2E9YiYtMjY4NDM1NDU2O2g9
KGE+Pj4yNHxhKV5iO2I9Zis0fDA7aWYoKGJ8MCk9PShkfDApKXtlPWg7YnJlYWt9ZWxzZXtmPWI7
Zz1ofX1yZXR1cm4gZXwwfWZ1bmN0aW9uIGZtKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wO2Q9ZTtnPWYtZHwwO2g9Zz4+MjtpZihoPj4+MD4x
MDczNzQxODIyKXtkWChiKX1pZihoPj4+MDwyKXthW2JdPWc+Pj4xJjI1NTtpPWIrNHwwfWVsc2V7
Zz1oKzQmLTQ7aj1rTyhnPDwyKXwwO2NbYis4Pj4yXT1qO2NbYj4+Ml09Z3wxO2NbYis0Pj4yXT1o
O2k9an1pZigoZXwwKT09KGZ8MCkpe2s9aTtjW2s+PjJdPTA7cmV0dXJufWo9KGYtNCsoLWR8MCl8
MCk+Pj4yO2Q9aTtoPWU7d2hpbGUoMSl7Y1tkPj4yXT1jW2g+PjJdO2U9aCs0fDA7aWYoKGV8MCk9
PShmfDApKXticmVha31lbHNle2Q9ZCs0fDA7aD1lfX1rPWkrKGorMTw8Mil8MDtjW2s+PjJdPTA7
cmV0dXJufWZ1bmN0aW9uIGZuKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9u
IGZvKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGZwKGIsZCxlLGYsZyxoLGope2I9
YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wO2s9
aTtpPWkrMTEyfDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTts
PWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209aysxNnww
O249ayszMnwwO289ays0MHwwO3A9ays0OHwwO3E9ays1NnwwO3I9ays2NHwwO3M9ays3MnwwO3Q9
ays4MHwwO3U9aysxMDR8MDtpZigoY1tnKzQ+PjJdJjF8MCk9PTApe2Nbbj4+Ml09LTE7dj1jWyhj
W2Q+PjJdfDApKzE2Pj4yXXwwO3c9ZXwwO2NbcD4+Ml09Y1t3Pj4yXTtjW3E+PjJdPWNbZj4+Ml07
YlhbdiYxMjddKG8sZCxwLHEsZyxoLG4pO3E9Y1tvPj4yXXwwO2Nbdz4+Ml09cTtzd2l0Y2goY1tu
Pj4yXXwwKXtjYXNlIDE6e2Fbal09MTticmVha307Y2FzZSAwOnthW2pdPTA7YnJlYWt9O2RlZmF1
bHQ6e2Fbal09MTtjW2g+PjJdPTR9fWNbYj4+Ml09cTtpPWs7cmV0dXJufWVqKHIsZyk7cT1yfDA7
cj1jW3E+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW20+PjJdPTE1Njk2O2NbbSs0Pj4yXT0x
MjtjW20rOD4+Ml09MDtkVygxNTY5NixtLDk2KX1tPShjWzM5MjVdfDApLTF8MDtuPWNbcis4Pj4y
XXwwO2Rve2lmKChjW3IrMTI+PjJdfDApLW4+PjI+Pj4wPm0+Pj4wKXt3PWNbbisobTw8Mik+PjJd
fDA7aWYoKHd8MCk9PTApe2JyZWFrfW89dzt3PWNbcT4+Ml18MDtkeih3KXwwO2VqKHMsZyk7dz1z
fDA7cD1jW3c+PjJdfDA7aWYoKGNbMzgyOF18MCkhPS0xKXtjW2w+PjJdPTE1MzEyO2NbbCs0Pj4y
XT0xMjtjW2wrOD4+Ml09MDtkVygxNTMxMixsLDk2KX1kPShjWzM4MjldfDApLTF8MDt2PWNbcCs4
Pj4yXXwwO2Rve2lmKChjW3ArMTI+PjJdfDApLXY+PjI+Pj4wPmQ+Pj4wKXt4PWNbdisoZDw8Mik+
PjJdfDA7aWYoKHh8MCk9PTApe2JyZWFrfXk9eDt6PWNbdz4+Ml18MDtkeih6KXwwO3o9dHwwO0E9
eDtiWltjWyhjW0E+PjJdfDApKzI0Pj4yXSYxMjddKHoseSk7YlpbY1soY1tBPj4yXXwwKSsyOD4+
Ml0mMTI3XSh0KzEyfDAseSk7Y1t1Pj4yXT1jW2Y+PjJdO2Fbal09KGZxKGUsdSx6LHQrMjR8MCxv
LGgsMSl8MCk9PSh6fDApfDA7Y1tiPj4yXT1jW2U+PjJdO2RQKHQrMTJ8MCk7ZFAodHwwKTtpPWs7
cmV0dXJufX13aGlsZSgwKTtvPWJPKDQpfDA7a3Eobyk7Ymwob3wwLDgxNzYsMTM0KX19d2hpbGUo
MCk7az1iTyg0KXwwO2txKGspO2JsKGt8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZnEoYixlLGYsZyxo
LGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9
MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0w
LFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0w
O2w9aTtpPWkrMTA0fDA7bT1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1ttPj4y
XTttPShnLWZ8MCkvMTJ8MDtuPWx8MDtkb3tpZihtPj4+MD4xMDApe289a0oobSl8MDtpZigob3ww
KSE9MCl7cD1vO3E9bzticmVha31rWCgpO3A9MDtxPTB9ZWxzZXtwPW47cT0wfX13aGlsZSgwKTtu
PShmfDApPT0oZ3wwKTtpZihuKXtyPW07cz0wfWVsc2V7bz1tO209MDt0PXA7dT1mO3doaWxlKDEp
e3Y9ZFt1XXwwO2lmKCh2JjF8MCk9PTApe3c9dj4+PjF9ZWxzZXt3PWNbdSs0Pj4yXXwwfWlmKCh3
fDApPT0wKXthW3RdPTI7eD1tKzF8MDt5PW8tMXwwfWVsc2V7YVt0XT0xO3g9bTt5PW99dj11KzEy
fDA7aWYoKHZ8MCk9PShnfDApKXtyPXk7cz14O2JyZWFrfWVsc2V7bz15O209eDt0PXQrMXwwO3U9
dn19fXU9YnwwO2I9ZXwwO2U9aDt0PTA7eD1zO3M9cjt3aGlsZSgxKXtyPWNbdT4+Ml18MDtkb3tp
ZigocnwwKT09MCl7ej0wfWVsc2V7aWYoKGNbcisxMj4+Ml18MCkhPShjW3IrMTY+PjJdfDApKXt6
PXI7YnJlYWt9aWYoKGIwW2NbKGNbcj4+Ml18MCkrMzY+PjJdJjEyN10ocil8MCk9PS0xKXtjW3U+
PjJdPTA7ej0wO2JyZWFrfWVsc2V7ej1jW3U+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtyPSh6fDAp
PT0wO209Y1tiPj4yXXwwO2lmKChtfDApPT0wKXtBPXo7Qj0wfWVsc2V7ZG97aWYoKGNbbSsxMj4+
Ml18MCk9PShjW20rMTY+PjJdfDApKXtpZigoYjBbY1soY1ttPj4yXXwwKSszNj4+Ml0mMTI3XSht
KXwwKSE9LTEpe0M9bTticmVha31jW2I+PjJdPTA7Qz0wfWVsc2V7Qz1tfX13aGlsZSgwKTtBPWNb
dT4+Ml18MDtCPUN9RD0oQnwwKT09MDtpZighKChyXkQpJihzfDApIT0wKSl7YnJlYWt9bT1jW0Er
MTI+PjJdfDA7aWYoKG18MCk9PShjW0ErMTY+PjJdfDApKXtFPShiMFtjWyhjW0E+PjJdfDApKzM2
Pj4yXSYxMjddKEEpfDApJjI1NX1lbHNle0U9YVttXXwwfWlmKGspe0Y9RX1lbHNle0Y9Yl9bY1so
Y1tlPj4yXXwwKSsxMj4+Ml0mMzFdKGgsRSl8MH1kb3tpZihuKXtHPXg7SD1zfWVsc2V7bT10KzF8
MDtMMjcwNzpkb3tpZihrKXt5PXM7bz14O3c9cDt2PTA7ST1mO3doaWxlKDEpe2Rve2lmKChhW3dd
fDApPT0xKXtKPUk7aWYoKGFbSl0mMSk9PTApe0s9SSsxfDB9ZWxzZXtLPWNbSSs4Pj4yXXwwfWlm
KEY8PDI0Pj4yNCE9KGFbSyt0fDBdfDApKXthW3ddPTA7TD12O009bztOPXktMXwwO2JyZWFrfU89
ZFtKXXwwO2lmKChPJjF8MCk9PTApe1A9Tz4+PjF9ZWxzZXtQPWNbSSs0Pj4yXXwwfWlmKChQfDAp
IT0obXwwKSl7TD0xO009bztOPXk7YnJlYWt9YVt3XT0yO0w9MTtNPW8rMXwwO049eS0xfDB9ZWxz
ZXtMPXY7TT1vO049eX19d2hpbGUoMCk7Tz1JKzEyfDA7aWYoKE98MCk9PShnfDApKXtRPU47Uj1N
O1M9TDticmVhayBMMjcwN315PU47bz1NO3c9dysxfDA7dj1MO0k9T319ZWxzZXtJPXM7dj14O3c9
cDtvPTA7eT1mO3doaWxlKDEpe2Rve2lmKChhW3ddfDApPT0xKXtPPXk7aWYoKGFbT10mMSk9PTAp
e1Q9eSsxfDB9ZWxzZXtUPWNbeSs4Pj4yXXwwfWlmKEY8PDI0Pj4yNCE9KGJfW2NbKGNbZT4+Ml18
MCkrMTI+PjJdJjMxXShoLGFbVCt0fDBdfDApfDApPDwyND4+MjQpe2Fbd109MDtVPW87Vj12O1c9
SS0xfDA7YnJlYWt9Sj1kW09dfDA7aWYoKEomMXwwKT09MCl7WD1KPj4+MX1lbHNle1g9Y1t5KzQ+
PjJdfDB9aWYoKFh8MCkhPShtfDApKXtVPTE7Vj12O1c9STticmVha31hW3ddPTI7VT0xO1Y9disx
fDA7Vz1JLTF8MH1lbHNle1U9bztWPXY7Vz1JfX13aGlsZSgwKTtKPXkrMTJ8MDtpZigoSnwwKT09
KGd8MCkpe1E9VztSPVY7Uz1VO2JyZWFrIEwyNzA3fUk9Vzt2PVY7dz13KzF8MDtvPVU7eT1KfX19
d2hpbGUoMCk7aWYoIVMpe0c9UjtIPVE7YnJlYWt9bT1jW3U+PjJdfDA7eT1tKzEyfDA7bz1jW3k+
PjJdfDA7aWYoKG98MCk9PShjW20rMTY+PjJdfDApKXt3PWNbKGNbbT4+Ml18MCkrNDA+PjJdfDA7
YjBbdyYxMjddKG0pfDB9ZWxzZXtjW3k+PjJdPW8rMX1pZigoUitRfDApPj4+MDwyfG4pe0c9UjtI
PVE7YnJlYWt9bz10KzF8MDt5PVI7bT1wO3c9Zjt3aGlsZSgxKXtkb3tpZigoYVttXXwwKT09Mil7
dj1kW3ddfDA7aWYoKHYmMXwwKT09MCl7WT12Pj4+MX1lbHNle1k9Y1t3KzQ+PjJdfDB9aWYoKFl8
MCk9PShvfDApKXtaPXk7YnJlYWt9YVttXT0wO1o9eS0xfDB9ZWxzZXtaPXl9fXdoaWxlKDApO3Y9
dysxMnwwO2lmKCh2fDApPT0oZ3wwKSl7Rz1aO0g9UTticmVha31lbHNle3k9WjttPW0rMXwwO3c9
dn19fX13aGlsZSgwKTt0PXQrMXwwO3g9RztzPUh9ZG97aWYoKEF8MCk9PTApe189MH1lbHNle2lm
KChjW0ErMTI+PjJdfDApIT0oY1tBKzE2Pj4yXXwwKSl7Xz1BO2JyZWFrfWlmKChiMFtjWyhjW0E+
PjJdfDApKzM2Pj4yXSYxMjddKEEpfDApPT0tMSl7Y1t1Pj4yXT0wO189MDticmVha31lbHNle189
Y1t1Pj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7dT0oX3wwKT09MDtkb3tpZihEKXskPTIyOTN9ZWxz
ZXtpZigoY1tCKzEyPj4yXXwwKSE9KGNbQisxNj4+Ml18MCkpe2lmKHUpe2JyZWFrfWVsc2V7JD0y
Mjk1O2JyZWFrfX1pZigoYjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKT09LTEpe2Nb
Yj4+Ml09MDskPTIyOTM7YnJlYWt9ZWxzZXtpZih1XihCfDApPT0wKXticmVha31lbHNleyQ9MjI5
NTticmVha319fX13aGlsZSgwKTtpZigoJHwwKT09MjI5Myl7aWYodSl7JD0yMjk1fX1pZigoJHww
KT09MjI5NSl7Y1tqPj4yXT1jW2o+PjJdfDJ9TDI3ODY6ZG97aWYobil7JD0yMzAwfWVsc2V7dT1m
O0I9cDt3aGlsZSgxKXtpZigoYVtCXXwwKT09Mil7YWE9dTticmVhayBMMjc4Nn1iPXUrMTJ8MDtp
ZigoYnwwKT09KGd8MCkpeyQ9MjMwMDticmVhayBMMjc4Nn11PWI7Qj1CKzF8MH19fXdoaWxlKDAp
O2lmKCgkfDApPT0yMzAwKXtjW2o+PjJdPWNbaj4+Ml18NDthYT1nfWlmKChxfDApPT0wKXtpPWw7
cmV0dXJuIGFhfDB9a0socSk7aT1sO3JldHVybiBhYXwwfWZ1bmN0aW9uIGZyKGIsZSxmLGcsaCxq
LGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAs
Qj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQ
PTAsUT0wLFI9MCxTPTAsVD0wLFU9MDtlPWk7aT1pKzcyfDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4y
XT1jW2w+PjJdO2w9ZSszMnwwO209ZSs0MHwwO249ZSs1NnwwO289bjtwPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA2NDp7dD04O2JyZWFrfTtj
YXNlIDg6e3Q9MTY7YnJlYWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8
MDtmeChtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7aWYoKGFbb10mMSk9PTAp
e3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNbdj4+Ml18MDt4PWgrMXww
O3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58
MDt6PW4rNHwwO0E9YVtsXXwwO2w9dzt3PWNbaD4+Ml18MDtMMjgwOTp3aGlsZSgxKXtkb3tpZigo
d3wwKT09MCl7Qj0wfWVsc2V7aWYoKGNbdysxMj4+Ml18MCkhPShjW3crMTY+PjJdfDApKXtCPXc7
YnJlYWt9aWYoKGIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MCkhPS0xKXtCPXc7YnJl
YWt9Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7Qz0oQnwwKT09MDtEPWNbZj4+Ml18MDtkb3tpZigo
RHwwKT09MCl7RT0yMzI3fWVsc2V7aWYoKGNbRCsxMj4+Ml18MCkhPShjW0QrMTY+PjJdfDApKXtp
ZihDKXtGPUQ7Rz0wO2JyZWFrfWVsc2V7SD1sO0k9RDtKPTA7YnJlYWsgTDI4MDl9fWlmKChiMFtj
WyhjW0Q+PjJdfDApKzM2Pj4yXSYxMjddKEQpfDApPT0tMSl7Y1tmPj4yXT0wO0U9MjMyNzticmVh
a31lbHNle0s9KER8MCk9PTA7aWYoQ15LKXtGPUQ7Rz1LO2JyZWFrfWVsc2V7SD1sO0k9RDtKPUs7
YnJlYWsgTDI4MDl9fX19d2hpbGUoMCk7aWYoKEV8MCk9PTIzMjcpe0U9MDtpZihDKXtIPWw7ST0w
O0o9MTticmVha31lbHNle0Y9MDtHPTF9fUQ9ZFtvXXwwO0s9KEQmMXwwKT09MDtpZigoKGNbcD4+
Ml18MCktbHwwKT09KChLP0Q+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEspe0w9RD4+PjE7TT1EPj4+
MX1lbHNle0Q9Y1t6Pj4yXXwwO0w9RDtNPUR9ZFIobixMPDwxLDApO2lmKChhW29dJjEpPT0wKXtO
PTEwfWVsc2V7Tj0oY1tnPj4yXSYtMiktMXwwfWRSKG4sTiwwKTtpZigoYVtvXSYxKT09MCl7Tz14
fWVsc2V7Tz1jW3k+PjJdfDB9Y1twPj4yXT1PK007UD1PfWVsc2V7UD1sfUQ9QisxMnwwO0s9Y1tE
Pj4yXXwwO1E9QisxNnwwO2lmKChLfDApPT0oY1tRPj4yXXwwKSl7Uj0oYjBbY1soY1tCPj4yXXww
KSszNj4+Ml0mMTI3XShCKXwwKSYyNTV9ZWxzZXtSPWFbS118MH1pZigoZnMoUix0LFAscCxzLEEs
bSx2LHIsdSl8MCkhPTApe0g9UDtJPUY7Sj1HO2JyZWFrfUs9Y1tEPj4yXXwwO2lmKChLfDApPT0o
Y1tRPj4yXXwwKSl7UT1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1EmMTI3XShCKXwwO2w9UDt3
PUI7Y29udGludWV9ZWxzZXtjW0Q+PjJdPUsrMTtsPVA7dz1CO2NvbnRpbnVlfX13PWRbbV18MDtp
ZigodyYxfDApPT0wKXtTPXc+Pj4xfWVsc2V7Uz1jW20rND4+Ml18MH1kb3tpZigoU3wwKSE9MCl7
dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31QPWNbcz4+Ml18MDtjW3I+PjJdPXcr
NDtjW3c+PjJdPVB9fXdoaWxlKDApO2Nbaz4+Ml09ZnUoSCxjW3A+PjJdfDAsaix0KXwwO2Z0KG0s
dixjW3I+PjJdfDAsaik7ZG97aWYoQyl7VD0wfWVsc2V7aWYoKGNbQisxMj4+Ml18MCkhPShjW0Ir
MTY+PjJdfDApKXtUPUI7YnJlYWt9aWYoKGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8
MCkhPS0xKXtUPUI7YnJlYWt9Y1toPj4yXT0wO1Q9MH19d2hpbGUoMCk7aD0oVHwwKT09MDtMMjg2
OTpkb3tpZihKKXtFPTIzNjh9ZWxzZXtkb3tpZigoY1tJKzEyPj4yXXwwKT09KGNbSSsxNj4+Ml18
MCkpe2lmKChiMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYxMjddKEkpfDApIT0tMSl7YnJlYWt9Y1tm
Pj4yXT0wO0U9MjM2ODticmVhayBMMjg2OX19d2hpbGUoMCk7aWYoIShoXihJfDApPT0wKSl7YnJl
YWt9VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lm
KChFfDApPT0yMzY4KXtpZihoKXticmVha31VPWJ8MDtjW1U+PjJdPVQ7ZFAobik7ZFAobSk7aT1l
O3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7VT1ifDA7Y1tVPj4yXT1UO2RQKG4p
O2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZnMoYixlLGYsZyxoLGksaixrLGwsbSl7Yj1ifDA7
ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7dmFy
IG49MCxvPTAscD0wLHE9MCxyPTAscz0wO249Y1tnPj4yXXwwO289KG58MCk9PShmfDApO2Rve2lm
KG8pe3A9KGFbbSsyNHwwXXwwKT09Yjw8MjQ+PjI0O2lmKCFwKXtpZigoYVttKzI1fDBdfDApIT1i
PDwyND4+MjQpe2JyZWFrfX1jW2c+PjJdPWYrMTthW2ZdPXA/NDM6NDU7Y1toPj4yXT0wO3E9MDty
ZXR1cm4gcXwwfX13aGlsZSgwKTtwPWRbal18MDtpZigocCYxfDApPT0wKXtyPXA+Pj4xfWVsc2V7
cj1jW2orND4+Ml18MH1pZigocnwwKSE9MCZiPDwyND4+MjQ9PWk8PDI0Pj4yNCl7aT1jW2w+PjJd
fDA7aWYoKGkta3wwKT49MTYwKXtxPTA7cmV0dXJuIHF8MH1rPWNbaD4+Ml18MDtjW2w+PjJdPWkr
NDtjW2k+PjJdPWs7Y1toPj4yXT0wO3E9MDtyZXR1cm4gcXwwfWs9bSsyNnwwO2k9bTt3aGlsZSgx
KXtpZigoaXwwKT09KGt8MCkpe3M9azticmVha31pZigoYVtpXXwwKT09Yjw8MjQ+PjI0KXtzPWk7
YnJlYWt9ZWxzZXtpPWkrMXwwfX1pPXMtbXwwO2lmKChpfDApPjIzKXtxPS0xO3JldHVybiBxfDB9
TDI5MDg6ZG97c3dpdGNoKGV8MCl7Y2FzZSA4OmNhc2UgMTA6e2lmKChpfDApPChlfDApKXticmVh
ayBMMjkwOH1lbHNle3E9LTF9cmV0dXJuIHF8MH07Y2FzZSAxNjp7aWYoKGl8MCk8MjIpe2JyZWFr
IEwyOTA4fWlmKG8pe3E9LTE7cmV0dXJuIHF8MH1pZigobi1mfDApPj0zKXtxPS0xO3JldHVybiBx
fDB9aWYoKGFbbi0xfDBdfDApIT00OCl7cT0tMTtyZXR1cm4gcXwwfWNbaD4+Ml09MDttPWFbOTc0
NCtpfDBdfDA7cz1jW2c+PjJdfDA7Y1tnPj4yXT1zKzE7YVtzXT1tO3E9MDtyZXR1cm4gcXwwfTtk
ZWZhdWx0Ont9fX13aGlsZSgwKTtmPWFbOTc0NCtpfDBdfDA7Y1tnPj4yXT1uKzE7YVtuXT1mO2Nb
aD4+Ml09KGNbaD4+Ml18MCkrMTtxPTA7cmV0dXJuIHF8MH1mdW5jdGlvbiBmdChiLGQsZSxmKXti
PWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTA7Zz1iO2g9YjtpPWFbaF18MDtqPWkmMjU1O2lm
KChqJjF8MCk9PTApe2s9aj4+PjF9ZWxzZXtrPWNbYis0Pj4yXXwwfWlmKChrfDApPT0wKXtyZXR1
cm59ZG97aWYoKGR8MCk9PShlfDApKXtsPWl9ZWxzZXtrPWUtNHwwO2lmKGs+Pj4wPmQ+Pj4wKXtt
PWQ7bj1rfWVsc2V7bD1pO2JyZWFrfWRve2s9Y1ttPj4yXXwwO2NbbT4+Ml09Y1tuPj4yXTtjW24+
PjJdPWs7bT1tKzR8MDtuPW4tNHwwO313aGlsZShtPj4+MDxuPj4+MCk7bD1hW2hdfDB9fXdoaWxl
KDApO2lmKChsJjEpPT0wKXtvPWcrMXwwfWVsc2V7bz1jW2IrOD4+Ml18MH1nPWwmMjU1O2lmKChn
JjF8MCk9PTApe3A9Zz4+PjF9ZWxzZXtwPWNbYis0Pj4yXXwwfWI9ZS00fDA7ZT1hW29dfDA7Zz1l
PDwyND4+MjQ7bD1lPDwyND4+MjQ8MXxlPDwyND4+MjQ9PTEyNztMMjk0Nzpkb3tpZihiPj4+MD5k
Pj4+MCl7ZT1vK3B8MDtoPW87bj1kO209ZztpPWw7d2hpbGUoMSl7aWYoIWkpe2lmKChtfDApIT0o
Y1tuPj4yXXwwKSl7YnJlYWt9fWs9KGUtaHwwKT4xP2grMXwwOmg7aj1uKzR8MDtxPWFba118MDty
PXE8PDI0Pj4yNDtzPXE8PDI0Pj4yNDwxfHE8PDI0Pj4yND09MTI3O2lmKGo+Pj4wPGI+Pj4wKXto
PWs7bj1qO209cjtpPXN9ZWxzZXt0PXI7dT1zO2JyZWFrIEwyOTQ3fX1jW2Y+PjJdPTQ7cmV0dXJu
fWVsc2V7dD1nO3U9bH19d2hpbGUoMCk7aWYodSl7cmV0dXJufXU9Y1tiPj4yXXwwO2lmKCEodD4+
PjA8dT4+PjB8KHV8MCk9PTApKXtyZXR1cm59Y1tmPj4yXT00O3JldHVybn1mdW5jdGlvbiBmdShi
LGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MDtn
PWk7aT1pKzh8MDtoPWd8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVy
biBqfDB9az1jWyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRd
fDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXww
fX13aGlsZSgwKTtsPWJJKGJ8MCxofDAsZnwwLGNbMjk1OF18MCl8MDtmPUs7Yj1jWyhidygpfDAp
Pj4yXXwwO2lmKChifDApPT0wKXtjWyhidygpfDApPj4yXT1rfWlmKChjW2g+PjJdfDApIT0oZHww
KSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8MH1kPS0xO2g9MDtpZigoYnwwKT09MzR8KChm
fDApPChkfDApfChmfDApPT0oZHwwKSZsPj4+MDwtMjE0NzQ4MzY0OD4+PjApfCgoZnwwKT4oaHww
KXwoZnwwKT09KGh8MCkmbD4+PjA+MjE0NzQ4MzY0Nz4+PjApKXtjW2U+PjJdPTQ7ZT0wO2o9KGZ8
MCk+KGV8MCl8KGZ8MCk9PShlfDApJmw+Pj4wPjA+Pj4wPzIxNDc0ODM2NDc6LTIxNDc0ODM2NDg7
aT1nO3JldHVybiBqfDB9ZWxzZXtqPWw7aT1nO3JldHVybiBqfDB9cmV0dXJuIDB9ZnVuY3Rpb24g
ZnYoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1r
fDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxMPTAsTT0w
LE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wO2U9aTtpPWkrNzJ8MDtsPWY7Zj1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lKzMyfDA7bT1lKzQwfDA7bj1lKzU2fDA7bz1uO3A9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDg6
e3Q9MTY7YnJlYWt9O2Nhc2UgNjQ6e3Q9ODticmVha307Y2FzZSAwOnt0PTA7YnJlYWt9O2RlZmF1
bHQ6e3Q9MTB9fXU9ZXwwO2Z4KG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtp
ZigoYVtvXSYxKT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2
Pj4yXXwwO3g9aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9
ZnwwO2Y9Z3wwO2c9bnwwO3o9bis0fDA7QT1hW2xdfDA7bD13O3c9Y1toPj4yXXwwO0wyOTk3Ondo
aWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtpZigoY1t3KzEyPj4yXXwwKSE9KGNbdysx
Nj4+Ml18MCkpe0I9dzticmVha31pZigoYjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXww
KSE9LTEpe0I9dzticmVha31jW2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtDPShCfDApPT0wO0Q9Y1tm
Pj4yXXwwO2Rve2lmKChEfDApPT0wKXtFPTI0NzZ9ZWxzZXtpZigoY1tEKzEyPj4yXXwwKSE9KGNb
RCsxNj4+Ml18MCkpe2lmKEMpe0Y9RDtHPTA7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9MDticmVhayBM
Mjk5N319aWYoKGIwW2NbKGNbRD4+Ml18MCkrMzY+PjJdJjEyN10oRCl8MCk9PS0xKXtjW2Y+PjJd
PTA7RT0yNDc2O2JyZWFrfWVsc2V7TD0oRHwwKT09MDtpZihDXkwpe0Y9RDtHPUw7YnJlYWt9ZWxz
ZXtIPWw7ST1EO0o9TDticmVhayBMMjk5N319fX13aGlsZSgwKTtpZigoRXwwKT09MjQ3Nil7RT0w
O2lmKEMpe0g9bDtJPTA7Sj0xO2JyZWFrfWVsc2V7Rj0wO0c9MX19RD1kW29dfDA7TD0oRCYxfDAp
PT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEw/RD4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoTCl7
TT1EPj4+MTtOPUQ+Pj4xfWVsc2V7RD1jW3o+PjJdfDA7TT1EO049RH1kUihuLE08PDEsMCk7aWYo
KGFbb10mMSk9PTApe089MTB9ZWxzZXtPPShjW2c+PjJdJi0yKS0xfDB9ZFIobixPLDApO2lmKChh
W29dJjEpPT0wKXtQPXh9ZWxzZXtQPWNbeT4+Ml18MH1jW3A+PjJdPVArTjtRPVB9ZWxzZXtRPWx9
RD1CKzEyfDA7TD1jW0Q+PjJdfDA7Uj1CKzE2fDA7aWYoKEx8MCk9PShjW1I+PjJdfDApKXtTPShi
MFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApJjI1NX1lbHNle1M9YVtMXXwwfWlmKChm
cyhTLHQsUSxwLHMsQSxtLHYscix1KXwwKSE9MCl7SD1RO0k9RjtKPUc7YnJlYWt9TD1jW0Q+PjJd
fDA7aWYoKEx8MCk9PShjW1I+PjJdfDApKXtSPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUiYx
MjddKEIpfDA7bD1RO3c9Qjtjb250aW51ZX1lbHNle2NbRD4+Ml09TCsxO2w9UTt3PUI7Y29udGlu
dWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1Q9dz4+PjF9ZWxzZXtUPWNbbSs0Pj4yXXwwfWRv
e2lmKChUfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVE9Y1tzPj4y
XXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09UX19d2hpbGUoMCk7cz1mdyhILGNbcD4+Ml18MCxqLHQp
fDA7Y1trPj4yXT1zO2Nbays0Pj4yXT1LO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoQyl7VT0w
fWVsc2V7aWYoKGNbQisxMj4+Ml18MCkhPShjW0IrMTY+PjJdfDApKXtVPUI7YnJlYWt9aWYoKGIw
W2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkhPS0xKXtVPUI7YnJlYWt9Y1toPj4yXT0w
O1U9MH19d2hpbGUoMCk7aD0oVXwwKT09MDtMMzA1Nzpkb3tpZihKKXtFPTI1MTd9ZWxzZXtkb3tp
ZigoY1tJKzEyPj4yXXwwKT09KGNbSSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0k+PjJdfDApKzM2
Pj4yXSYxMjddKEkpfDApIT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0U9MjUxNzticmVhayBMMzA1N319
d2hpbGUoMCk7aWYoIShoXihJfDApPT0wKSl7YnJlYWt9Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQ
KG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChFfDApPT0yNTE3KXtpZihoKXticmVha31W
PWJ8MDtjW1Y+PjJdPVU7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1j
W2o+PjJdfDI7Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24g
ZncoYixkLGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxs
PTAsbT0wO2c9aTtpPWkrOHwwO2g9Z3wwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2o9MDtr
PTA7aT1nO3JldHVybihLPWosayl8MH1sPWNbKGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09
MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1
OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO209YkkoYnwwLGh8MCxmfDAsY1syOTU4XXwwKXww
O2Y9SztiPWNbKGJ3KCl8MCk+PjJdfDA7aWYoKGJ8MCk9PTApe2NbKGJ3KCl8MCk+PjJdPWx9aWYo
KGNbaD4+Ml18MCkhPShkfDApKXtjW2U+PjJdPTQ7aj0wO2s9MDtpPWc7cmV0dXJuKEs9aixrKXww
fWlmKChifDApIT0zNCl7aj1mO2s9bTtpPWc7cmV0dXJuKEs9aixrKXwwfWNbZT4+Ml09NDtlPTA7
Yj0oZnwwKT4oZXwwKXwoZnwwKT09KGV8MCkmbT4+PjA+MD4+PjA7aj1iPzIxNDc0ODM2NDc6LTIx
NDc0ODM2NDg7az1iPy0xOjA7aT1nO3JldHVybihLPWosayl8MH1mdW5jdGlvbiBmeChiLGQsZSxm
KXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wO2c9aTtpPWkrNDB8MDtoPWd8MDtqPWcrMTZ8MDtrPWcrMzJ8MDtlaihrLGQp
O2Q9a3wwO2s9Y1tkPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tqPj4yXT0xNTY5NjtjW2or
ND4+Ml09MTI7Y1tqKzg+PjJdPTA7ZFcoMTU2OTYsaiw5Nil9aj0oY1szOTI1XXwwKS0xfDA7bD1j
W2srOD4+Ml18MDtkb3tpZigoY1trKzEyPj4yXXwwKS1sPj4yPj4+MD5qPj4+MCl7bT1jW2wrKGo8
PDIpPj4yXXwwO2lmKChtfDApPT0wKXticmVha31uPW07bz1jWyhjW20+PjJdfDApKzMyPj4yXXww
O2NhW28mMTVdKG4sOTc0NCw5NzcwLGUpfDA7bj1jW2Q+PjJdfDA7aWYoKGNbMzgyOF18MCkhPS0x
KXtjW2g+PjJdPTE1MzEyO2NbaCs0Pj4yXT0xMjtjW2grOD4+Ml09MDtkVygxNTMxMixoLDk2KX1v
PShjWzM4MjldfDApLTF8MDttPWNbbis4Pj4yXXwwO2Rve2lmKChjW24rMTI+PjJdfDApLW0+PjI+
Pj4wPm8+Pj4wKXtwPWNbbSsobzw8Mik+PjJdfDA7aWYoKHB8MCk9PTApe2JyZWFrfXE9cDthW2Zd
PWIwW2NbKGNbcD4+Ml18MCkrMTY+PjJdJjEyN10ocSl8MDtiWltjWyhjW3A+PjJdfDApKzIwPj4y
XSYxMjddKGIscSk7cT1jW2Q+PjJdfDA7ZHoocSl8MDtpPWc7cmV0dXJufX13aGlsZSgwKTtvPWJP
KDQpfDA7a3Eobyk7Ymwob3wwLDgxNzYsMTM0KX19d2hpbGUoMCk7Zz1iTyg0KXwwO2txKGcpO2Js
KGd8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZnkoZSxmLGcsaCxqLGssbCl7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7dmFyIG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0w
LEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAs
Vj0wO2Y9aTtpPWkrNzJ8MDttPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW20+
PjJdO209aDtoPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2g+PjJdPWNbbT4+Ml07bT1mKzMyfDA7
bj1mKzQwfDA7bz1mKzU2fDA7cD1vO3E9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3I9aTtpPWkrMTYw
fDA7cz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNo
KGNbais0Pj4yXSY3NHwwKXtjYXNlIDA6e3U9MDticmVha307Y2FzZSA4Ont1PTE2O2JyZWFrfTtj
YXNlIDY0Ont1PTg7YnJlYWt9O2RlZmF1bHQ6e3U9MTB9fXY9ZnwwO2Z4KG4saix2LG0pO2skKHB8
MCwwLDEyKTtqPW87ZFIobywxMCwwKTtpZigoYVtwXSYxKT09MCl7dz1qKzF8MDt4PXc7eT13O3o9
bys4fDB9ZWxzZXt3PW8rOHwwO3g9Y1t3Pj4yXXwwO3k9aisxfDA7ej13fWNbcT4+Ml09eDt3PXJ8
MDtjW3M+PjJdPXc7Y1t0Pj4yXT0wO2o9Z3wwO2c9aHwwO2g9b3wwO0E9bys0fDA7Qj1hW21dfDA7
bT14O3g9Y1tqPj4yXXwwO0wzMTIyOndoaWxlKDEpe2Rve2lmKCh4fDApPT0wKXtDPTB9ZWxzZXtp
ZigoY1t4KzEyPj4yXXwwKSE9KGNbeCsxNj4+Ml18MCkpe0M9eDticmVha31pZigoYjBbY1soY1t4
Pj4yXXwwKSszNj4+Ml0mMTI3XSh4KXwwKSE9LTEpe0M9eDticmVha31jW2o+PjJdPTA7Qz0wfX13
aGlsZSgwKTtEPShDfDApPT0wO0U9Y1tnPj4yXXwwO2Rve2lmKChFfDApPT0wKXtGPTI1Nzl9ZWxz
ZXtpZigoY1tFKzEyPj4yXXwwKSE9KGNbRSsxNj4+Ml18MCkpe2lmKEQpe0c9RTtIPTA7YnJlYWt9
ZWxzZXtJPW07Sj1FO0s9MDticmVhayBMMzEyMn19aWYoKGIwW2NbKGNbRT4+Ml18MCkrMzY+PjJd
JjEyN10oRSl8MCk9PS0xKXtjW2c+PjJdPTA7Rj0yNTc5O2JyZWFrfWVsc2V7TD0oRXwwKT09MDtp
ZihEXkwpe0c9RTtIPUw7YnJlYWt9ZWxzZXtJPW07Sj1FO0s9TDticmVhayBMMzEyMn19fX13aGls
ZSgwKTtpZigoRnwwKT09MjU3OSl7Rj0wO2lmKEQpe0k9bTtKPTA7Sz0xO2JyZWFrfWVsc2V7Rz0w
O0g9MX19RT1kW3BdfDA7TD0oRSYxfDApPT0wO2lmKCgoY1txPj4yXXwwKS1tfDApPT0oKEw/RT4+
PjE6Y1tBPj4yXXwwKXwwKSl7aWYoTCl7TT1FPj4+MTtOPUU+Pj4xfWVsc2V7RT1jW0E+PjJdfDA7
TT1FO049RX1kUihvLE08PDEsMCk7aWYoKGFbcF0mMSk9PTApe089MTB9ZWxzZXtPPShjW2g+PjJd
Ji0yKS0xfDB9ZFIobyxPLDApO2lmKChhW3BdJjEpPT0wKXtQPXl9ZWxzZXtQPWNbej4+Ml18MH1j
W3E+PjJdPVArTjtRPVB9ZWxzZXtRPW19RT1DKzEyfDA7TD1jW0U+PjJdfDA7Uj1DKzE2fDA7aWYo
KEx8MCk9PShjW1I+PjJdfDApKXtTPShiMFtjWyhjW0M+PjJdfDApKzM2Pj4yXSYxMjddKEMpfDAp
JjI1NX1lbHNle1M9YVtMXXwwfWlmKChmcyhTLHUsUSxxLHQsQixuLHcscyx2KXwwKSE9MCl7ST1R
O0o9RztLPUg7YnJlYWt9TD1jW0U+PjJdfDA7aWYoKEx8MCk9PShjW1I+PjJdfDApKXtSPWNbKGNb
Qz4+Ml18MCkrNDA+PjJdfDA7YjBbUiYxMjddKEMpfDA7bT1RO3g9Qztjb250aW51ZX1lbHNle2Nb
RT4+Ml09TCsxO209UTt4PUM7Y29udGludWV9fXg9ZFtuXXwwO2lmKCh4JjF8MCk9PTApe1Q9eD4+
PjF9ZWxzZXtUPWNbbis0Pj4yXXwwfWRve2lmKChUfDApIT0wKXt4PWNbcz4+Ml18MDtpZigoeC1y
fDApPj0xNjApe2JyZWFrfVE9Y1t0Pj4yXXwwO2Nbcz4+Ml09eCs0O2NbeD4+Ml09UX19d2hpbGUo
MCk7YltsPj4xXT1meihJLGNbcT4+Ml18MCxrLHUpfDA7ZnQobix3LGNbcz4+Ml18MCxrKTtkb3tp
ZihEKXtVPTB9ZWxzZXtpZigoY1tDKzEyPj4yXXwwKSE9KGNbQysxNj4+Ml18MCkpe1U9QzticmVh
a31pZigoYjBbY1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwKSE9LTEpe1U9QzticmVha31j
W2o+PjJdPTA7VT0wfX13aGlsZSgwKTtqPShVfDApPT0wO0wzMTgyOmRve2lmKEspe0Y9MjYyMH1l
bHNle2Rve2lmKChjW0orMTI+PjJdfDApPT0oY1tKKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbSj4+
Ml18MCkrMzY+PjJdJjEyN10oSil8MCkhPS0xKXticmVha31jW2c+PjJdPTA7Rj0yNjIwO2JyZWFr
IEwzMTgyfX13aGlsZSgwKTtpZighKGpeKEp8MCk9PTApKXticmVha31WPWV8MDtjW1Y+PjJdPVU7
ZFAobyk7ZFAobik7aT1mO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEZ8MCk9PTI2MjApe2lmKGop
e2JyZWFrfVY9ZXwwO2NbVj4+Ml09VTtkUChvKTtkUChuKTtpPWY7cmV0dXJufX13aGlsZSgwKTtj
W2s+PjJdPWNbaz4+Ml18MjtWPWV8MDtjW1Y+PjJdPVU7ZFAobyk7ZFAobik7aT1mO3JldHVybn1m
dW5jdGlvbiBmeihiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxq
PTAsaz0wLGw9MDtnPWk7aT1pKzh8MDtoPWd8MDtpZigoYnwwKT09KGR8MCkpe2NbZT4+Ml09NDtq
PTA7aT1nO3JldHVybiBqfDB9aWYoKGFbYl18MCk9PTQ1KXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1
cm4ganwwfWs9Y1soYncoKXwwKT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0
XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8
MH19d2hpbGUoMCk7bD1hSShifDAsaHwwLGZ8MCxjWzI5NThdfDApfDA7Zj1LO2I9Y1soYncoKXww
KT4+Ml18MDtpZigoYnwwKT09MCl7Y1soYncoKXwwKT4+Ml09a31pZigoY1toPj4yXXwwKSE9KGR8
MCkpe2NbZT4+Ml09NDtqPTA7aT1nO3JldHVybiBqfDB9ZD0wO2lmKChifDApPT0zNHwoZj4+PjA+
ZD4+PjB8Zj4+PjA9PWQ+Pj4wJmw+Pj4wPjY1NTM1Pj4+MCkpe2NbZT4+Ml09NDtqPS0xO2k9Zzty
ZXR1cm4ganwwfWVsc2V7aj1sJjY1NTM1O2k9ZztyZXR1cm4ganwwfXJldHVybiAwfWZ1bmN0aW9u
IGZBKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9
a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4
PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9
MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MDtlPWk7aT1pKzcyfDA7bD1mO2Y9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSszMnwwO209ZSs0MHwwO249ZSs1NnwwO289bjtw
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8MCl7Y2FzZSA2
NDp7dD04O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA4Ont0PTE2O2JyZWFrfTtkZWZh
dWx0Ont0PTEwfX11PWV8MDtmeChtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RSKG4sMTAsMCk7
aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1uKzh8MDt3PWNb
dj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nbcz4+Ml09MDto
PWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9YVtsXXwwO2w9dzt3PWNbaD4+Ml18MDtMMzIzMjp3
aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7aWYoKGNbdysxMj4+Ml18MCkhPShjW3cr
MTY+PjJdfDApKXtCPXc7YnJlYWt9aWYoKGIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8
MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7Qz0oQnwwKT09MDtEPWNb
Zj4+Ml18MDtkb3tpZigoRHwwKT09MCl7RT0yNjY5fWVsc2V7aWYoKGNbRCsxMj4+Ml18MCkhPShj
W0QrMTY+PjJdfDApKXtpZihDKXtGPUQ7Rz0wO2JyZWFrfWVsc2V7SD1sO0k9RDtKPTA7YnJlYWsg
TDMyMzJ9fWlmKChiMFtjWyhjW0Q+PjJdfDApKzM2Pj4yXSYxMjddKEQpfDApPT0tMSl7Y1tmPj4y
XT0wO0U9MjY2OTticmVha31lbHNle0s9KER8MCk9PTA7aWYoQ15LKXtGPUQ7Rz1LO2JyZWFrfWVs
c2V7SD1sO0k9RDtKPUs7YnJlYWsgTDMyMzJ9fX19d2hpbGUoMCk7aWYoKEV8MCk9PTI2Njkpe0U9
MDtpZihDKXtIPWw7ST0wO0o9MTticmVha31lbHNle0Y9MDtHPTF9fUQ9ZFtvXXwwO0s9KEQmMXww
KT09MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChLP0Q+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEsp
e0w9RD4+PjE7TT1EPj4+MX1lbHNle0Q9Y1t6Pj4yXXwwO0w9RDtNPUR9ZFIobixMPDwxLDApO2lm
KChhW29dJjEpPT0wKXtOPTEwfWVsc2V7Tj0oY1tnPj4yXSYtMiktMXwwfWRSKG4sTiwwKTtpZigo
YVtvXSYxKT09MCl7Tz14fWVsc2V7Tz1jW3k+PjJdfDB9Y1twPj4yXT1PK007UD1PfWVsc2V7UD1s
fUQ9QisxMnwwO0s9Y1tEPj4yXXwwO1E9QisxNnwwO2lmKChLfDApPT0oY1tRPj4yXXwwKSl7Uj0o
YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwKSYyNTV9ZWxzZXtSPWFbS118MH1pZigo
ZnMoUix0LFAscCxzLEEsbSx2LHIsdSl8MCkhPTApe0g9UDtJPUY7Sj1HO2JyZWFrfUs9Y1tEPj4y
XXwwO2lmKChLfDApPT0oY1tRPj4yXXwwKSl7UT1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1Em
MTI3XShCKXwwO2w9UDt3PUI7Y29udGludWV9ZWxzZXtjW0Q+PjJdPUsrMTtsPVA7dz1CO2NvbnRp
bnVlfX13PWRbbV18MDtpZigodyYxfDApPT0wKXtTPXc+Pj4xfWVsc2V7Uz1jW20rND4+Ml18MH1k
b3tpZigoU3wwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31QPWNbcz4+
Ml18MDtjW3I+PjJdPXcrNDtjW3c+PjJdPVB9fXdoaWxlKDApO2Nbaz4+Ml09ZkIoSCxjW3A+PjJd
fDAsaix0KXwwO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoQyl7VD0wfWVsc2V7aWYoKGNbQisx
Mj4+Ml18MCkhPShjW0IrMTY+PjJdfDApKXtUPUI7YnJlYWt9aWYoKGIwW2NbKGNbQj4+Ml18MCkr
MzY+PjJdJjEyN10oQil8MCkhPS0xKXtUPUI7YnJlYWt9Y1toPj4yXT0wO1Q9MH19d2hpbGUoMCk7
aD0oVHwwKT09MDtMMzI5Mjpkb3tpZihKKXtFPTI3MTB9ZWxzZXtkb3tpZigoY1tJKzEyPj4yXXww
KT09KGNbSSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYxMjddKEkpfDAp
IT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0U9MjcxMDticmVhayBMMzI5Mn19d2hpbGUoMCk7aWYoISho
XihJfDApPT0wKSl7YnJlYWt9VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59
fXdoaWxlKDApO2Rve2lmKChFfDApPT0yNzEwKXtpZihoKXticmVha31VPWJ8MDtjW1U+PjJdPVQ7
ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7VT1ifDA7
Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZkIoYixkLGUsZil7Yj1i
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTA7Zz1pO2k9aSs4fDA7
aD1nfDA7aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aj0wO2k9ZztyZXR1cm4ganwwfWlmKChh
W2JdfDApPT00NSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8MH1rPWNbKGJ3KCl8MCk+PjJd
fDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8
MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9YUkoYnwwLGh8
MCxmfDAsY1syOTU4XXwwKXwwO2Y9SztiPWNbKGJ3KCl8MCk+PjJdfDA7aWYoKGJ8MCk9PTApe2Nb
KGJ3KCl8MCk+PjJdPWt9aWYoKGNbaD4+Ml18MCkhPShkfDApKXtjW2U+PjJdPTQ7aj0wO2k9Zzty
ZXR1cm4ganwwfWQ9MDtpZigoYnwwKT09MzR8KGY+Pj4wPmQ+Pj4wfGY+Pj4wPT1kPj4+MCZsPj4+
MD4tMT4+PjApKXtjW2U+PjJdPTQ7aj0tMTtpPWc7cmV0dXJuIGp8MH1lbHNle2o9bDtpPWc7cmV0
dXJuIGp8MH1yZXR1cm4gMH1mdW5jdGlvbiBmQyhiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxG
PTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9
MCxVPTA7ZT1pO2k9aSs3MnwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNb
bD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMzJ8
MDttPWUrNDB8MDtuPWUrNTZ8MDtvPW47cD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsx
NjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0
Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDg6e3Q9MTY7YnJlYWt9
O2Nhc2UgNjQ6e3Q9ODticmVha307ZGVmYXVsdDp7dD0xMH19dT1lfDA7ZngobSxoLHUsbCk7ayQo
b3wwLDAsMTIpO2g9bjtkUihuLDEwLDApO2lmKChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7
eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1jW3Y+PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9
cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7aD1mfDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWFbbF18
MDtsPXc7dz1jW2g+PjJdfDA7TDMzNDI6d2hpbGUoMSl7ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNl
e2lmKChjW3crMTI+PjJdfDApIT0oY1t3KzE2Pj4yXXwwKSl7Qj13O2JyZWFrfWlmKChiMFtjWyhj
W3c+PjJdfDApKzM2Pj4yXSYxMjddKHcpfDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9
fXdoaWxlKDApO0M9KEJ8MCk9PTA7RD1jW2Y+PjJdfDA7ZG97aWYoKER8MCk9PTApe0U9Mjc1OX1l
bHNle2lmKChjW0QrMTI+PjJdfDApIT0oY1tEKzE2Pj4yXXwwKSl7aWYoQyl7Rj1EO0c9MDticmVh
a31lbHNle0g9bDtJPUQ7Sj0wO2JyZWFrIEwzMzQyfX1pZigoYjBbY1soY1tEPj4yXXwwKSszNj4+
Ml0mMTI3XShEKXwwKT09LTEpe2NbZj4+Ml09MDtFPTI3NTk7YnJlYWt9ZWxzZXtLPShEfDApPT0w
O2lmKENeSyl7Rj1EO0c9SzticmVha31lbHNle0g9bDtJPUQ7Sj1LO2JyZWFrIEwzMzQyfX19fXdo
aWxlKDApO2lmKChFfDApPT0yNzU5KXtFPTA7aWYoQyl7SD1sO0k9MDtKPTE7YnJlYWt9ZWxzZXtG
PTA7Rz0xfX1EPWRbb118MDtLPShEJjF8MCk9PTA7aWYoKChjW3A+PjJdfDApLWx8MCk9PSgoSz9E
Pj4+MTpjW3o+PjJdfDApfDApKXtpZihLKXtMPUQ+Pj4xO009RD4+PjF9ZWxzZXtEPWNbej4+Ml18
MDtMPUQ7TT1EfWRSKG4sTDw8MSwwKTtpZigoYVtvXSYxKT09MCl7Tj0xMH1lbHNle049KGNbZz4+
Ml0mLTIpLTF8MH1kUihuLE4sMCk7aWYoKGFbb10mMSk9PTApe089eH1lbHNle089Y1t5Pj4yXXww
fWNbcD4+Ml09TytNO1A9T31lbHNle1A9bH1EPUIrMTJ8MDtLPWNbRD4+Ml18MDtRPUIrMTZ8MDtp
ZigoS3wwKT09KGNbUT4+Ml18MCkpe1I9KGIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8
MCkmMjU1fWVsc2V7Uj1hW0tdfDB9aWYoKGZzKFIsdCxQLHAscyxBLG0sdixyLHUpfDApIT0wKXtI
PVA7ST1GO0o9RzticmVha31LPWNbRD4+Ml18MDtpZigoS3wwKT09KGNbUT4+Ml18MCkpe1E9Y1so
Y1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtRJjEyN10oQil8MDtsPVA7dz1CO2NvbnRpbnVlfWVsc2V7
Y1tEPj4yXT1LKzE7bD1QO3c9Qjtjb250aW51ZX19dz1kW21dfDA7aWYoKHcmMXwwKT09MCl7Uz13
Pj4+MX1lbHNle1M9Y1ttKzQ+PjJdfDB9ZG97aWYoKFN8MCkhPTApe3c9Y1tyPj4yXXwwO2lmKCh3
LXF8MCk+PTE2MCl7YnJlYWt9UD1jW3M+PjJdfDA7Y1tyPj4yXT13KzQ7Y1t3Pj4yXT1QfX13aGls
ZSgwKTtjW2s+PjJdPWZEKEgsY1twPj4yXXwwLGosdCl8MDtmdChtLHYsY1tyPj4yXXwwLGopO2Rv
e2lmKEMpe1Q9MH1lbHNle2lmKChjW0IrMTI+PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7VD1CO2Jy
ZWFrfWlmKChiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7VD1CO2JyZWFr
fWNbaD4+Ml09MDtUPTB9fXdoaWxlKDApO2g9KFR8MCk9PTA7TDM0MDI6ZG97aWYoSil7RT0yODAw
fWVsc2V7ZG97aWYoKGNbSSsxMj4+Ml18MCk9PShjW0krMTY+PjJdfDApKXtpZigoYjBbY1soY1tJ
Pj4yXXwwKSszNj4+Ml0mMTI3XShJKXwwKSE9LTEpe2JyZWFrfWNbZj4+Ml09MDtFPTI4MDA7YnJl
YWsgTDM0MDJ9fXdoaWxlKDApO2lmKCEoaF4oSXwwKT09MCkpe2JyZWFrfVU9YnwwO2NbVT4+Ml09
VDtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtkb3tpZigoRXwwKT09MjgwMCl7aWYo
aCl7YnJlYWt9VT1ifDA7Y1tVPj4yXT1UO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDAp
O2Nbaj4+Ml09Y1tqPj4yXXwyO1U9YnwwO2NbVT4+Ml09VDtkUChuKTtkUChtKTtpPWU7cmV0dXJu
fWZ1bmN0aW9uIGZEKGIsZCxlLGYpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0w
LGo9MCxrPTAsbD0wO2c9aTtpPWkrOHwwO2g9Z3wwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00
O2o9MDtpPWc7cmV0dXJuIGp8MH1pZigoYVtiXXwwKT09NDUpe2NbZT4+Ml09NDtqPTA7aT1nO3Jl
dHVybiBqfDB9az1jWyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYy
NjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCww
KXwwfX13aGlsZSgwKTtsPWFJKGJ8MCxofDAsZnwwLGNbMjk1OF18MCl8MDtmPUs7Yj1jWyhidygp
fDApPj4yXXwwO2lmKChifDApPT0wKXtjWyhidygpfDApPj4yXT1rfWlmKChjW2g+PjJdfDApIT0o
ZHwwKSl7Y1tlPj4yXT00O2o9MDtpPWc7cmV0dXJuIGp8MH1kPTA7aWYoKGJ8MCk9PTM0fChmPj4+
MD5kPj4+MHxmPj4+MD09ZD4+PjAmbD4+PjA+LTE+Pj4wKSl7Y1tlPj4yXT00O2o9LTE7aT1nO3Jl
dHVybiBqfDB9ZWxzZXtqPWw7aT1nO3JldHVybiBqfDB9cmV0dXJuIDB9ZnVuY3Rpb24gZkUoYixl
LGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFy
IGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAs
ej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxMPTAsTT0wLE49MCxP
PTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wO2U9aTtpPWkrNzJ8MDtsPWY7Zj1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztjW2c+PjJdPWNbbD4+Ml07bD1lKzMyfDA7bT1lKzQwfDA7bj1lKzU2fDA7bz1uO3A9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDg6e3Q9MTY7
YnJlYWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDY0Ont0PTg7YnJlYWt9O2RlZmF1bHQ6e3Q9
MTB9fXU9ZXwwO2Z4KG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtpZigoYVtv
XSYxKT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2Pj4yXXww
O3g9aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9ZnwwO2Y9
Z3wwO2c9bnwwO3o9bis0fDA7QT1hW2xdfDA7bD13O3c9Y1toPj4yXXwwO0wzNDUyOndoaWxlKDEp
e2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtpZigoY1t3KzEyPj4yXXwwKSE9KGNbdysxNj4+Ml18
MCkpe0I9dzticmVha31pZigoYjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3XSh3KXwwKSE9LTEp
e0I9dzticmVha31jW2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtDPShCfDApPT0wO0Q9Y1tmPj4yXXww
O2Rve2lmKChEfDApPT0wKXtFPTI4NDl9ZWxzZXtpZigoY1tEKzEyPj4yXXwwKSE9KGNbRCsxNj4+
Ml18MCkpe2lmKEMpe0Y9RDtHPTA7YnJlYWt9ZWxzZXtIPWw7ST1EO0o9MDticmVhayBMMzQ1Mn19
aWYoKGIwW2NbKGNbRD4+Ml18MCkrMzY+PjJdJjEyN10oRCl8MCk9PS0xKXtjW2Y+PjJdPTA7RT0y
ODQ5O2JyZWFrfWVsc2V7TD0oRHwwKT09MDtpZihDXkwpe0Y9RDtHPUw7YnJlYWt9ZWxzZXtIPWw7
ST1EO0o9TDticmVhayBMMzQ1Mn19fX13aGlsZSgwKTtpZigoRXwwKT09Mjg0OSl7RT0wO2lmKEMp
e0g9bDtJPTA7Sj0xO2JyZWFrfWVsc2V7Rj0wO0c9MX19RD1kW29dfDA7TD0oRCYxfDApPT0wO2lm
KCgoY1twPj4yXXwwKS1sfDApPT0oKEw/RD4+PjE6Y1t6Pj4yXXwwKXwwKSl7aWYoTCl7TT1EPj4+
MTtOPUQ+Pj4xfWVsc2V7RD1jW3o+PjJdfDA7TT1EO049RH1kUihuLE08PDEsMCk7aWYoKGFbb10m
MSk9PTApe089MTB9ZWxzZXtPPShjW2c+PjJdJi0yKS0xfDB9ZFIobixPLDApO2lmKChhW29dJjEp
PT0wKXtQPXh9ZWxzZXtQPWNbeT4+Ml18MH1jW3A+PjJdPVArTjtRPVB9ZWxzZXtRPWx9RD1CKzEy
fDA7TD1jW0Q+PjJdfDA7Uj1CKzE2fDA7aWYoKEx8MCk9PShjW1I+PjJdfDApKXtTPShiMFtjWyhj
W0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApJjI1NX1lbHNle1M9YVtMXXwwfWlmKChmcyhTLHQs
USxwLHMsQSxtLHYscix1KXwwKSE9MCl7SD1RO0k9RjtKPUc7YnJlYWt9TD1jW0Q+PjJdfDA7aWYo
KEx8MCk9PShjW1I+PjJdfDApKXtSPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBbUiYxMjddKEIp
fDA7bD1RO3c9Qjtjb250aW51ZX1lbHNle2NbRD4+Ml09TCsxO2w9UTt3PUI7Y29udGludWV9fXc9
ZFttXXwwO2lmKCh3JjF8MCk9PTApe1Q9dz4+PjF9ZWxzZXtUPWNbbSs0Pj4yXXwwfWRve2lmKChU
fDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVE9Y1tzPj4yXXwwO2Nb
cj4+Ml09dys0O2Nbdz4+Ml09UX19d2hpbGUoMCk7cz1mRihILGNbcD4+Ml18MCxqLHQpfDA7Y1tr
Pj4yXT1zO2Nbays0Pj4yXT1LO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoQyl7VT0wfWVsc2V7
aWYoKGNbQisxMj4+Ml18MCkhPShjW0IrMTY+PjJdfDApKXtVPUI7YnJlYWt9aWYoKGIwW2NbKGNb
Qj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MCkhPS0xKXtVPUI7YnJlYWt9Y1toPj4yXT0wO1U9MH19
d2hpbGUoMCk7aD0oVXwwKT09MDtMMzUxMjpkb3tpZihKKXtFPTI4OTB9ZWxzZXtkb3tpZigoY1tJ
KzEyPj4yXXwwKT09KGNbSSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYx
MjddKEkpfDApIT0tMSl7YnJlYWt9Y1tmPj4yXT0wO0U9Mjg5MDticmVhayBMMzUxMn19d2hpbGUo
MCk7aWYoIShoXihJfDApPT0wKSl7YnJlYWt9Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQKG0pO2k9
ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChFfDApPT0yODkwKXtpZihoKXticmVha31WPWJ8MDtj
W1Y+PjJdPVU7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJd
fDI7Vj1ifDA7Y1tWPj4yXT1VO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZkYoYixk
LGUsZil7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0w
LG49MCxvPTA7Zz1pO2k9aSs4fDA7aD1nfDA7ZG97aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7
aj0wO2s9MH1lbHNle2lmKChhW2JdfDApPT00NSl7Y1tlPj4yXT00O2o9MDtrPTA7YnJlYWt9bD1j
WyhidygpfDApPj4yXXwwO2NbKGJ3KCl8MCk+PjJdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtp
ZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgw
KTttPWFJKGJ8MCxofDAsZnwwLGNbMjk1OF18MCl8MDtuPUs7bz1jWyhidygpfDApPj4yXXwwO2lm
KChvfDApPT0wKXtjWyhidygpfDApPj4yXT1sfWlmKChjW2g+PjJdfDApIT0oZHwwKSl7Y1tlPj4y
XT00O2o9MDtrPTA7YnJlYWt9aWYoKG98MCkhPTM0KXtqPW47az1tO2JyZWFrfWNbZT4+Ml09NDtq
PS0xO2s9LTF9fXdoaWxlKDApO2k9ZztyZXR1cm4oSz1qLGspfDB9ZnVuY3Rpb24gZkcoYixlLGYs
ZyxoLGksaixrLGwsbSxuLG8pe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9
anwwO2s9a3wwO2w9bHwwO209bXwwO249bnwwO289b3wwO3ZhciBwPTAscT0wLHI9MCxzPTAsdD0w
O2lmKGI8PDI0Pj4yND09aTw8MjQ+PjI0KXtpZigoYVtlXSYxKT09MCl7cD0tMTtyZXR1cm4gcHww
fWFbZV09MDtpPWNbaD4+Ml18MDtjW2g+PjJdPWkrMTthW2ldPTQ2O2k9ZFtrXXwwO2lmKChpJjF8
MCk9PTApe3E9aT4+PjF9ZWxzZXtxPWNbays0Pj4yXXwwfWlmKChxfDApPT0wKXtwPTA7cmV0dXJu
IHB8MH1xPWNbbT4+Ml18MDtpZigocS1sfDApPj0xNjApe3A9MDtyZXR1cm4gcHwwfWk9Y1tuPj4y
XXwwO2NbbT4+Ml09cSs0O2NbcT4+Ml09aTtwPTA7cmV0dXJuIHB8MH1kb3tpZihiPDwyND4+MjQ9
PWo8PDI0Pj4yNCl7aT1kW2tdfDA7aWYoKGkmMXwwKT09MCl7cj1pPj4+MX1lbHNle3I9Y1trKzQ+
PjJdfDB9aWYoKHJ8MCk9PTApe2JyZWFrfWlmKChhW2VdJjEpPT0wKXtwPS0xO3JldHVybiBwfDB9
aT1jW20+PjJdfDA7aWYoKGktbHwwKT49MTYwKXtwPTA7cmV0dXJuIHB8MH1xPWNbbj4+Ml18MDtj
W20+PjJdPWkrNDtjW2k+PjJdPXE7Y1tuPj4yXT0wO3A9MDtyZXR1cm4gcHwwfX13aGlsZSgwKTty
PW8rMzJ8MDtqPW87d2hpbGUoMSl7aWYoKGp8MCk9PShyfDApKXtzPXI7YnJlYWt9aWYoKGFbal18
MCk9PWI8PDI0Pj4yNCl7cz1qO2JyZWFrfWVsc2V7aj1qKzF8MH19aj1zLW98MDtpZigoanwwKT4z
MSl7cD0tMTtyZXR1cm4gcHwwfW89YVs5NzQ0K2p8MF18MDtzd2l0Y2goanwwKXtjYXNlIDI1OmNh
c2UgMjQ6e3M9Y1toPj4yXXwwO2Rve2lmKChzfDApIT0oZ3wwKSl7aWYoKGFbcy0xfDBdJjk1fDAp
PT0oYVtmXSYxMjd8MCkpe2JyZWFrfWVsc2V7cD0tMX1yZXR1cm4gcHwwfX13aGlsZSgwKTtjW2g+
PjJdPXMrMTthW3NdPW87cD0wO3JldHVybiBwfDB9O2Nhc2UgMjI6Y2FzZSAyMzp7YVtmXT04MDtz
PWNbaD4+Ml18MDtjW2g+PjJdPXMrMTthW3NdPW87cD0wO3JldHVybiBwfDB9O2RlZmF1bHQ6e3M9
YVtmXXwwO2Rve2lmKChvJjk1fDApPT0oczw8MjQ+PjI0fDApKXthW2ZdPXN8LTEyODtpZigoYVtl
XSYxKT09MCl7YnJlYWt9YVtlXT0wO2c9ZFtrXXwwO2lmKChnJjF8MCk9PTApe3Q9Zz4+PjF9ZWxz
ZXt0PWNbays0Pj4yXXwwfWlmKCh0fDApPT0wKXticmVha31nPWNbbT4+Ml18MDtpZigoZy1sfDAp
Pj0xNjApe2JyZWFrfWI9Y1tuPj4yXXwwO2NbbT4+Ml09Zys0O2NbZz4+Ml09Yn19d2hpbGUoMCk7
bT1jW2g+PjJdfDA7Y1toPj4yXT1tKzE7YVttXT1vO2lmKChqfDApPjIxKXtwPTA7cmV0dXJuIHB8
MH1jW24+PjJdPShjW24+PjJdfDApKzE7cD0wO3JldHVybiBwfDB9fXJldHVybiAwfWZ1bmN0aW9u
IGZIKGIsZSxmLGgsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2g9aHwwO2o9anwwO2s9a3wwO2w9
bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5
PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09
MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wO2U9aTtpPWkrODB8
MDttPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209aDtoPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2g+PjJdPWNbbT4+Ml07bT1lKzMyfDA7bj1lKzQwfDA7bz1lKzQ4
fDA7cD1lKzY0fDA7cT1wO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrMTYwfDA7dD1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj1pO2k9aSsxfDA7
aT1pKzc+PjM8PDM7dz1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7eD1lfDA7ZkoobyxqLHgsbSxuKTtr
JChxfDAsMCwxMik7aj1wO2RSKHAsMTAsMCk7aWYoKGFbcV0mMSk9PTApe3k9aisxfDA7ej15O0E9
eTtCPXArOHwwfWVsc2V7eT1wKzh8MDt6PWNbeT4+Ml18MDtBPWorMXwwO0I9eX1jW3I+PjJdPXo7
eT1zfDA7Y1t0Pj4yXT15O2NbdT4+Ml09MDthW3ZdPTE7YVt3XT02OTtqPWZ8MDtmPWh8MDtoPXB8
MDtDPXArNHwwO0Q9YVttXXwwO209YVtuXXwwO249ejt6PWNbaj4+Ml18MDtMMzYxNTp3aGlsZSgx
KXtkb3tpZigoenwwKT09MCl7RT0wfWVsc2V7aWYoKGNbeisxMj4+Ml18MCkhPShjW3orMTY+PjJd
fDApKXtFPXo7YnJlYWt9aWYoKGIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MCkhPS0x
KXtFPXo7YnJlYWt9Y1tqPj4yXT0wO0U9MH19d2hpbGUoMCk7Rj0oRXwwKT09MDtHPWNbZj4+Ml18
MDtkb3tpZigoR3wwKT09MCl7SD0yOTc4fWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+
PjJdfDApKXtpZihGKXtJPUc7Sj0wO2JyZWFrfWVsc2V7Sz1uO0w9RztNPTA7YnJlYWsgTDM2MTV9
fWlmKChiMFtjWyhjW0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDApPT0tMSl7Y1tmPj4yXT0wO0g9
Mjk3ODticmVha31lbHNle049KEd8MCk9PTA7aWYoRl5OKXtJPUc7Sj1OO2JyZWFrfWVsc2V7Sz1u
O0w9RztNPU47YnJlYWsgTDM2MTV9fX19d2hpbGUoMCk7aWYoKEh8MCk9PTI5Nzgpe0g9MDtpZihG
KXtLPW47TD0wO009MTticmVha31lbHNle0k9MDtKPTF9fUc9ZFtxXXwwO049KEcmMXwwKT09MDtp
ZigoKGNbcj4+Ml18MCktbnwwKT09KChOP0c+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKE4pe089Rz4+
PjE7UD1HPj4+MX1lbHNle0c9Y1tDPj4yXXwwO089RztQPUd9ZFIocCxPPDwxLDApO2lmKChhW3Fd
JjEpPT0wKXtRPTEwfWVsc2V7UT0oY1toPj4yXSYtMiktMXwwfWRSKHAsUSwwKTtpZigoYVtxXSYx
KT09MCl7Uj1BfWVsc2V7Uj1jW0I+PjJdfDB9Y1tyPj4yXT1SK1A7Uz1SfWVsc2V7Uz1ufUc9RSsx
MnwwO049Y1tHPj4yXXwwO1Q9RSsxNnwwO2lmKChOfDApPT0oY1tUPj4yXXwwKSl7VT0oYjBbY1so
Y1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwKSYyNTV9ZWxzZXtVPWFbTl18MH1pZigoZkcoVSx2
LHcsUyxyLEQsbSxvLHksdCx1LHgpfDApIT0wKXtLPVM7TD1JO009SjticmVha31OPWNbRz4+Ml18
MDtpZigoTnwwKT09KGNbVD4+Ml18MCkpe1Q9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtUJjEy
N10oRSl8MDtuPVM7ej1FO2NvbnRpbnVlfWVsc2V7Y1tHPj4yXT1OKzE7bj1TO3o9RTtjb250aW51
ZX19ej1kW29dfDA7aWYoKHomMXwwKT09MCl7Vj16Pj4+MX1lbHNle1Y9Y1tvKzQ+PjJdfDB9ZG97
aWYoKFZ8MCkhPTApe2lmKChhW3ZdJjEpPT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1zfDAp
Pj0xNjApe2JyZWFrfVM9Y1t1Pj4yXXwwO2NbdD4+Ml09eis0O2Nbej4+Ml09U319d2hpbGUoMCk7
Z1tsPj4yXT0rZkkoSyxjW3I+PjJdfDAsayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihGKXtX
PTB9ZWxzZXtpZigoY1tFKzEyPj4yXXwwKSE9KGNbRSsxNj4+Ml18MCkpe1c9RTticmVha31pZigo
YjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwKSE9LTEpe1c9RTticmVha31jW2o+PjJd
PTA7Vz0wfX13aGlsZSgwKTtqPShXfDApPT0wO0wzNjc2OmRve2lmKE0pe0g9MzAyMH1lbHNle2Rv
e2lmKChjW0wrMTI+PjJdfDApPT0oY1tMKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbTD4+Ml18MCkr
MzY+PjJdJjEyN10oTCl8MCkhPS0xKXticmVha31jW2Y+PjJdPTA7SD0zMDIwO2JyZWFrIEwzNjc2
fX13aGlsZSgwKTtpZighKGpeKEx8MCk9PTApKXticmVha31YPWJ8MDtjW1g+PjJdPVc7ZFAocCk7
ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEh8MCk9PTMwMjApe2lmKGope2JyZWFr
fVg9YnwwO2NbWD4+Ml09VztkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJd
PWNbaz4+Ml18MjtYPWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlv
biBmSShiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLjAsaj0wLGs9MC4w
O2Y9aTtpPWkrOHwwO2c9ZnwwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4wO2k9Zjty
ZXR1cm4raH1qPWNbKGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2
NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDAp
fDB9fXdoaWxlKDApO2s9K2tXKGIsZyxjWzI5NThdfDApO2I9Y1soYncoKXwwKT4+Ml18MDtpZigo
YnwwKT09MCl7Y1soYncoKXwwKT4+Ml09an1pZigoY1tnPj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09
NDtoPTAuMDtpPWY7cmV0dXJuK2h9aWYoKGJ8MCk9PTM0KXtjW2U+PjJdPTR9aD1rO2k9ZjtyZXR1
cm4raH1mdW5jdGlvbiBmSihiLGQsZSxmLGcpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O3ZhciBoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wO2g9aTtpPWkr
NDB8MDtqPWh8MDtrPWgrMTZ8MDtsPWgrMzJ8MDtlaihsLGQpO2Q9bHwwO2w9Y1tkPj4yXXwwO2lm
KChjWzM5MjRdfDApIT0tMSl7Y1trPj4yXT0xNTY5NjtjW2srND4+Ml09MTI7Y1trKzg+PjJdPTA7
ZFcoMTU2OTYsayw5Nil9az0oY1szOTI1XXwwKS0xfDA7bT1jW2wrOD4+Ml18MDtkb3tpZigoY1ts
KzEyPj4yXXwwKS1tPj4yPj4+MD5rPj4+MCl7bj1jW20rKGs8PDIpPj4yXXwwO2lmKChufDApPT0w
KXticmVha31vPW47cD1jWyhjW24+PjJdfDApKzMyPj4yXXwwO2NhW3AmMTVdKG8sOTc0NCw5Nzc2
LGUpfDA7bz1jW2Q+PjJdfDA7aWYoKGNbMzgyOF18MCkhPS0xKXtjW2o+PjJdPTE1MzEyO2Nbais0
Pj4yXT0xMjtjW2orOD4+Ml09MDtkVygxNTMxMixqLDk2KX1wPShjWzM4MjldfDApLTF8MDtuPWNb
bys4Pj4yXXwwO2Rve2lmKChjW28rMTI+PjJdfDApLW4+PjI+Pj4wPnA+Pj4wKXtxPWNbbisocDw8
Mik+PjJdfDA7aWYoKHF8MCk9PTApe2JyZWFrfXI9cTtzPXE7YVtmXT1iMFtjWyhjW3M+PjJdfDAp
KzEyPj4yXSYxMjddKHIpfDA7YVtnXT1iMFtjWyhjW3M+PjJdfDApKzE2Pj4yXSYxMjddKHIpfDA7
YlpbY1soY1txPj4yXXwwKSsyMD4+Ml0mMTI3XShiLHIpO3I9Y1tkPj4yXXwwO2R6KHIpfDA7aT1o
O3JldHVybn19d2hpbGUoMCk7cD1iTyg0KXwwO2txKHApO2JsKHB8MCw4MTc2LDEzNCl9fXdoaWxl
KDApO2g9Yk8oNCl8MDtrcShoKTtibChofDAsODE3NiwxMzQpfWZ1bmN0aW9uIGZLKGIsZSxmLGcs
aixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAs
bj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxC
PTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9
MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wO2U9aTtpPWkrODB8MDttPWY7Zj1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209ZztnPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztjW2c+PjJdPWNbbT4+Ml07bT1lKzMyfDA7bj1lKzQwfDA7bz1lKzQ4fDA7cD1lKzY0fDA7
cT1wO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrMTYwfDA7dD1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7
dz1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7eD1lfDA7ZkoobyxqLHgsbSxuKTtrJChxfDAsMCwxMik7
aj1wO2RSKHAsMTAsMCk7aWYoKGFbcV0mMSk9PTApe3k9aisxfDA7ej15O0E9eTtCPXArOHwwfWVs
c2V7eT1wKzh8MDt6PWNbeT4+Ml18MDtBPWorMXwwO0I9eX1jW3I+PjJdPXo7eT1zfDA7Y1t0Pj4y
XT15O2NbdT4+Ml09MDthW3ZdPTE7YVt3XT02OTtqPWZ8MDtmPWd8MDtnPXB8MDtDPXArNHwwO0Q9
YVttXXwwO209YVtuXXwwO249ejt6PWNbaj4+Ml18MDtMMzczNzp3aGlsZSgxKXtkb3tpZigoenww
KT09MCl7RT0wfWVsc2V7aWYoKGNbeisxMj4+Ml18MCkhPShjW3orMTY+PjJdfDApKXtFPXo7YnJl
YWt9aWYoKGIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MCkhPS0xKXtFPXo7YnJlYWt9
Y1tqPj4yXT0wO0U9MH19d2hpbGUoMCk7Rj0oRXwwKT09MDtHPWNbZj4+Ml18MDtkb3tpZigoR3ww
KT09MCl7SD0zMDc5fWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+PjJdfDApKXtpZihG
KXtJPUc7Sj0wO2JyZWFrfWVsc2V7Sz1uO0w9RztNPTA7YnJlYWsgTDM3Mzd9fWlmKChiMFtjWyhj
W0c+PjJdfDApKzM2Pj4yXSYxMjddKEcpfDApPT0tMSl7Y1tmPj4yXT0wO0g9MzA3OTticmVha31l
bHNle049KEd8MCk9PTA7aWYoRl5OKXtJPUc7Sj1OO2JyZWFrfWVsc2V7Sz1uO0w9RztNPU47YnJl
YWsgTDM3Mzd9fX19d2hpbGUoMCk7aWYoKEh8MCk9PTMwNzkpe0g9MDtpZihGKXtLPW47TD0wO009
MTticmVha31lbHNle0k9MDtKPTF9fUc9ZFtxXXwwO049KEcmMXwwKT09MDtpZigoKGNbcj4+Ml18
MCktbnwwKT09KChOP0c+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKE4pe089Rz4+PjE7UD1HPj4+MX1l
bHNle0c9Y1tDPj4yXXwwO089RztQPUd9ZFIocCxPPDwxLDApO2lmKChhW3FdJjEpPT0wKXtRPTEw
fWVsc2V7UT0oY1tnPj4yXSYtMiktMXwwfWRSKHAsUSwwKTtpZigoYVtxXSYxKT09MCl7Uj1BfWVs
c2V7Uj1jW0I+PjJdfDB9Y1tyPj4yXT1SK1A7Uz1SfWVsc2V7Uz1ufUc9RSsxMnwwO049Y1tHPj4y
XXwwO1Q9RSsxNnwwO2lmKChOfDApPT0oY1tUPj4yXXwwKSl7VT0oYjBbY1soY1tFPj4yXXwwKSsz
Nj4+Ml0mMTI3XShFKXwwKSYyNTV9ZWxzZXtVPWFbTl18MH1pZigoZkcoVSx2LHcsUyxyLEQsbSxv
LHksdCx1LHgpfDApIT0wKXtLPVM7TD1JO009SjticmVha31OPWNbRz4+Ml18MDtpZigoTnwwKT09
KGNbVD4+Ml18MCkpe1Q9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtUJjEyN10oRSl8MDtuPVM7
ej1FO2NvbnRpbnVlfWVsc2V7Y1tHPj4yXT1OKzE7bj1TO3o9RTtjb250aW51ZX19ej1kW29dfDA7
aWYoKHomMXwwKT09MCl7Vj16Pj4+MX1lbHNle1Y9Y1tvKzQ+PjJdfDB9ZG97aWYoKFZ8MCkhPTAp
e2lmKChhW3ZdJjEpPT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1zfDApPj0xNjApe2JyZWFr
fVM9Y1t1Pj4yXXwwO2NbdD4+Ml09eis0O2Nbej4+Ml09U319d2hpbGUoMCk7aFtsPj4zXT0rZkwo
SyxjW3I+PjJdfDAsayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihGKXtXPTB9ZWxzZXtpZigo
Y1tFKzEyPj4yXXwwKSE9KGNbRSsxNj4+Ml18MCkpe1c9RTticmVha31pZigoYjBbY1soY1tFPj4y
XXwwKSszNj4+Ml0mMTI3XShFKXwwKSE9LTEpe1c9RTticmVha31jW2o+PjJdPTA7Vz0wfX13aGls
ZSgwKTtqPShXfDApPT0wO0wzNzk4OmRve2lmKE0pe0g9MzEyMX1lbHNle2Rve2lmKChjW0wrMTI+
PjJdfDApPT0oY1tMKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbTD4+Ml18MCkrMzY+PjJdJjEyN10o
TCl8MCkhPS0xKXticmVha31jW2Y+PjJdPTA7SD0zMTIxO2JyZWFrIEwzNzk4fX13aGlsZSgwKTtp
ZighKGpeKEx8MCk9PTApKXticmVha31YPWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3Jl
dHVybn19d2hpbGUoMCk7ZG97aWYoKEh8MCk9PTMxMjEpe2lmKGope2JyZWFrfVg9YnwwO2NbWD4+
Ml09VztkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNbaz4+Ml18MjtY
PWJ8MDtjW1g+PjJdPVc7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlvbiBmTChiLGQsZSl7
Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLjAsaj0wLGs9MC4wO2Y9aTtpPWkrOHww
O2c9ZnwwO2lmKChifDApPT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4wO2k9ZjtyZXR1cm4raH1qPWNb
KGJ3KCl8MCk+PjJdfDA7Y1soYncoKXwwKT4+Ml09MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lm
KChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDAp
O2s9K2tXKGIsZyxjWzI5NThdfDApO2I9Y1soYncoKXwwKT4+Ml18MDtpZigoYnwwKT09MCl7Y1so
YncoKXwwKT4+Ml09an1pZigoY1tnPj4yXXwwKSE9KGR8MCkpe2NbZT4+Ml09NDtoPTAuMDtpPWY7
cmV0dXJuK2h9aWYoKGJ8MCkhPTM0KXtoPWs7aT1mO3JldHVybitofWNbZT4+Ml09NDtoPWs7aT1m
O3JldHVybitofWZ1bmN0aW9uIGZNKGIsZSxmLGcsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxX
PTAsWD0wO2U9aTtpPWkrODB8MDttPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1j
W20+PjJdO209ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbT4+Ml07bT1lKzMy
fDA7bj1lKzQwfDA7bz1lKzQ4fDA7cD1lKzY0fDA7cT1wO3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O3M9aTtpPWkrMTYwfDA7dD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dT1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7dj1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7dz1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7eD1l
fDA7ZkoobyxqLHgsbSxuKTtrJChxfDAsMCwxMik7aj1wO2RSKHAsMTAsMCk7aWYoKGFbcV0mMSk9
PTApe3k9aisxfDA7ej15O0E9eTtCPXArOHwwfWVsc2V7eT1wKzh8MDt6PWNbeT4+Ml18MDtBPWor
MXwwO0I9eX1jW3I+PjJdPXo7eT1zfDA7Y1t0Pj4yXT15O2NbdT4+Ml09MDthW3ZdPTE7YVt3XT02
OTtqPWZ8MDtmPWd8MDtnPXB8MDtDPXArNHwwO0Q9YVttXXwwO209YVtuXXwwO249ejt6PWNbaj4+
Ml18MDtMNjp3aGlsZSgxKXtkb3tpZigoenwwKT09MCl7RT0wfWVsc2V7aWYoKGNbeisxMj4+Ml18
MCkhPShjW3orMTY+PjJdfDApKXtFPXo7YnJlYWt9aWYoKGIwW2NbKGNbej4+Ml18MCkrMzY+PjJd
JjEyN10oeil8MCkhPS0xKXtFPXo7YnJlYWt9Y1tqPj4yXT0wO0U9MH19d2hpbGUoMCk7Rj0oRXww
KT09MDtHPWNbZj4+Ml18MDtkb3tpZigoR3wwKT09MCl7SD0xN31lbHNle2lmKChjW0crMTI+PjJd
fDApIT0oY1tHKzE2Pj4yXXwwKSl7aWYoRil7ST1HO0o9MDticmVha31lbHNle0s9bjtMPUc7TT0w
O2JyZWFrIEw2fX1pZigoYjBbY1soY1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwKT09LTEpe2Nb
Zj4+Ml09MDtIPTE3O2JyZWFrfWVsc2V7Tj0oR3wwKT09MDtpZihGXk4pe0k9RztKPU47YnJlYWt9
ZWxzZXtLPW47TD1HO009TjticmVhayBMNn19fX13aGlsZSgwKTtpZigoSHwwKT09MTcpe0g9MDtp
ZihGKXtLPW47TD0wO009MTticmVha31lbHNle0k9MDtKPTF9fUc9ZFtxXXwwO049KEcmMXwwKT09
MDtpZigoKGNbcj4+Ml18MCktbnwwKT09KChOP0c+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKE4pe089
Rz4+PjE7UD1HPj4+MX1lbHNle0c9Y1tDPj4yXXwwO089RztQPUd9ZFIocCxPPDwxLDApO2lmKChh
W3FdJjEpPT0wKXtRPTEwfWVsc2V7UT0oY1tnPj4yXSYtMiktMXwwfWRSKHAsUSwwKTtpZigoYVtx
XSYxKT09MCl7Uj1BfWVsc2V7Uj1jW0I+PjJdfDB9Y1tyPj4yXT1SK1A7Uz1SfWVsc2V7Uz1ufUc9
RSsxMnwwO049Y1tHPj4yXXwwO1Q9RSsxNnwwO2lmKChOfDApPT0oY1tUPj4yXXwwKSl7VT0oYjBb
Y1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwKSYyNTV9ZWxzZXtVPWFbTl18MH1pZigoZkco
VSx2LHcsUyxyLEQsbSxvLHksdCx1LHgpfDApIT0wKXtLPVM7TD1JO009SjticmVha31OPWNbRz4+
Ml18MDtpZigoTnwwKT09KGNbVD4+Ml18MCkpe1Q9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtU
JjEyN10oRSl8MDtuPVM7ej1FO2NvbnRpbnVlfWVsc2V7Y1tHPj4yXT1OKzE7bj1TO3o9RTtjb250
aW51ZX19ej1kW29dfDA7aWYoKHomMXwwKT09MCl7Vj16Pj4+MX1lbHNle1Y9Y1tvKzQ+PjJdfDB9
ZG97aWYoKFZ8MCkhPTApe2lmKChhW3ZdJjEpPT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1z
fDApPj0xNjApe2JyZWFrfVM9Y1t1Pj4yXXwwO2NbdD4+Ml09eis0O2Nbej4+Ml09U319d2hpbGUo
MCk7aFtsPj4zXT0rZk4oSyxjW3I+PjJdfDAsayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihG
KXtXPTB9ZWxzZXtpZigoY1tFKzEyPj4yXXwwKSE9KGNbRSsxNj4+Ml18MCkpe1c9RTticmVha31p
ZigoYjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3XShFKXwwKSE9LTEpe1c9RTticmVha31jW2o+
PjJdPTA7Vz0wfX13aGlsZSgwKTtqPShXfDApPT0wO0w2Nzpkb3tpZihNKXtIPTU5fWVsc2V7ZG97
aWYoKGNbTCsxMj4+Ml18MCk9PShjW0wrMTY+PjJdfDApKXtpZigoYjBbY1soY1tMPj4yXXwwKSsz
Nj4+Ml0mMTI3XShMKXwwKSE9LTEpe2JyZWFrfWNbZj4+Ml09MDtIPTU5O2JyZWFrIEw2N319d2hp
bGUoMCk7aWYoIShqXihMfDApPT0wKSl7YnJlYWt9WD1ifDA7Y1tYPj4yXT1XO2RQKHApO2RQKG8p
O2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChIfDApPT01OSl7aWYoail7YnJlYWt9WD1ifDA7
Y1tYPj4yXT1XO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4y
XXwyO1g9YnwwO2NbWD4+Ml09VztkUChwKTtkUChvKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGZOKGIs
ZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTAuMCxqPTAsaz0wLjA7Zj1pO2k9
aSs4fDA7Zz1mfDA7aWYoKGJ8MCk9PShkfDApKXtjW2U+PjJdPTQ7aD0wLjA7aT1mO3JldHVybito
fWo9Y1soYncoKXwwKT4+Ml18MDtjWyhidygpfDApPj4yXT0wO2Rve2lmKChhWzE2MjY0XXwwKT09
MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hp
bGUoMCk7az0ra1coYixnLGNbMjk1OF18MCk7Yj1jWyhidygpfDApPj4yXXwwO2lmKChifDApPT0w
KXtjWyhidygpfDApPj4yXT1qfWlmKChjW2c+PjJdfDApIT0oZHwwKSl7Y1tlPj4yXT00O2g9MC4w
O2k9ZjtyZXR1cm4raH1pZigoYnwwKSE9MzQpe2g9aztpPWY7cmV0dXJuK2h9Y1tlPj4yXT00O2g9
aztpPWY7cmV0dXJuK2h9ZnVuY3Rpb24gZk8oYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59
ZnVuY3Rpb24gZlAoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gZlEoYixlLGYsZyxo
LGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9
MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0w
LFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MDtlPWk7aT1pKzY0fDA7bD1mO2Y9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7
Y1tnPj4yXT1jW2w+PjJdO2w9ZXwwO209ZSsxNnwwO249ZSs0OHwwO289aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO3A9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mzty
PWk7aT1pKzE2MHwwO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Q9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2skKG58MCwwLDEyKTt1PXA7ZWoobyxoKTtoPW98MDtvPWNbaD4+Ml18MDtpZigoY1szOTI0
XXwwKSE9LTEpe2NbbD4+Ml09MTU2OTY7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2
LGwsOTYpfWw9KGNbMzkyNV18MCktMXwwO3Y9Y1tvKzg+PjJdfDA7ZG97aWYoKGNbbysxMj4+Ml18
MCktdj4+Mj4+PjA+bD4+PjApe3c9Y1t2KyhsPDwyKT4+Ml18MDtpZigod3wwKT09MCl7YnJlYWt9
eD13O3k9bXwwO3o9Y1soY1t3Pj4yXXwwKSszMj4+Ml18MDtjYVt6JjE1XSh4LDk3NDQsOTc3MCx5
KXwwO3g9Y1toPj4yXXwwO2R6KHgpfDA7ayQodXwwLDAsMTIpO3g9cDtkUihwLDEwLDApO2lmKChh
W3VdJjEpPT0wKXt6PXgrMXwwO0E9ejtCPXo7Qz1wKzh8MH1lbHNle3o9cCs4fDA7QT1jW3o+PjJd
fDA7Qj14KzF8MDtDPXp9Y1txPj4yXT1BO3o9cnwwO2Nbcz4+Ml09ejtjW3Q+PjJdPTA7eD1mfDA7
dz1nfDA7RD1wfDA7RT1wKzR8MDtGPUE7Rz1jW3g+PjJdfDA7TDExNzp3aGlsZSgxKXtkb3tpZigo
R3wwKT09MCl7SD0wfWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+PjJdfDApKXtIPUc7
YnJlYWt9aWYoKGIwW2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MCkhPS0xKXtIPUc7YnJl
YWt9Y1t4Pj4yXT0wO0g9MH19d2hpbGUoMCk7ST0oSHwwKT09MDtKPWNbdz4+Ml18MDtkb3tpZigo
SnwwKT09MCl7Sz0xMTB9ZWxzZXtpZigoY1tKKzEyPj4yXXwwKSE9KGNbSisxNj4+Ml18MCkpe2lm
KEkpe2JyZWFrfWVsc2V7TD1GO2JyZWFrIEwxMTd9fWlmKChiMFtjWyhjW0o+PjJdfDApKzM2Pj4y
XSYxMjddKEopfDApPT0tMSl7Y1t3Pj4yXT0wO0s9MTEwO2JyZWFrfWVsc2V7aWYoSV4oSnwwKT09
MCl7YnJlYWt9ZWxzZXtMPUY7YnJlYWsgTDExN319fX13aGlsZSgwKTtpZigoS3wwKT09MTEwKXtL
PTA7aWYoSSl7TD1GO2JyZWFrfX1KPWRbdV18MDtNPShKJjF8MCk9PTA7aWYoKChjW3E+PjJdfDAp
LUZ8MCk9PSgoTT9KPj4+MTpjW0U+PjJdfDApfDApKXtpZihNKXtOPUo+Pj4xO089Sj4+PjF9ZWxz
ZXtKPWNbRT4+Ml18MDtOPUo7Tz1KfWRSKHAsTjw8MSwwKTtpZigoYVt1XSYxKT09MCl7UD0xMH1l
bHNle1A9KGNbRD4+Ml0mLTIpLTF8MH1kUihwLFAsMCk7aWYoKGFbdV0mMSk9PTApe1E9Qn1lbHNl
e1E9Y1tDPj4yXXwwfWNbcT4+Ml09UStPO1I9UX1lbHNle1I9Rn1KPUgrMTJ8MDtNPWNbSj4+Ml18
MDtTPUgrMTZ8MDtpZigoTXwwKT09KGNbUz4+Ml18MCkpe1Q9KGIwW2NbKGNbSD4+Ml18MCkrMzY+
PjJdJjEyN10oSCl8MCkmMjU1fWVsc2V7VD1hW01dfDB9aWYoKGZzKFQsMTYsUixxLHQsMCxuLHos
cyx5KXwwKSE9MCl7TD1SO2JyZWFrfU09Y1tKPj4yXXwwO2lmKChNfDApPT0oY1tTPj4yXXwwKSl7
Uz1jWyhjW0g+PjJdfDApKzQwPj4yXXwwO2IwW1MmMTI3XShIKXwwO0Y9UjtHPUg7Y29udGludWV9
ZWxzZXtjW0o+PjJdPU0rMTtGPVI7Rz1IO2NvbnRpbnVlfX1hW0wrM3wwXT0wO2Rve2lmKChhWzE2
MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQs
MCl8MH19d2hpbGUoMCk7Rz1mUihMLGNbMjk1OF18MCwxMzIwLChGPWksaT1pKzh8MCxjW0Y+PjJd
PWssRil8MCl8MDtpPUY7aWYoKEd8MCkhPTEpe2Nbaj4+Ml09NH1HPWNbeD4+Ml18MDtkb3tpZigo
R3wwKT09MCl7VT0wfWVsc2V7aWYoKGNbRysxMj4+Ml18MCkhPShjW0crMTY+PjJdfDApKXtVPUc7
YnJlYWt9aWYoKGIwW2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MCkhPS0xKXtVPUc7YnJl
YWt9Y1t4Pj4yXT0wO1U9MH19d2hpbGUoMCk7eD0oVXwwKT09MDtHPWNbdz4+Ml18MDtkb3tpZigo
R3wwKT09MCl7Sz0xNTV9ZWxzZXtpZigoY1tHKzEyPj4yXXwwKSE9KGNbRysxNj4+Ml18MCkpe2lm
KCF4KXticmVha31WPWJ8MDtjW1Y+PjJdPVU7ZFAocCk7ZFAobik7aT1lO3JldHVybn1pZigoYjBb
Y1soY1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwKT09LTEpe2Nbdz4+Ml09MDtLPTE1NTticmVh
a31pZighKHheKEd8MCk9PTApKXticmVha31WPWJ8MDtjW1Y+PjJdPVU7ZFAocCk7ZFAobik7aT1l
O3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEt8MCk9PTE1NSl7aWYoeCl7YnJlYWt9Vj1ifDA7Y1tW
Pj4yXT1VO2RQKHApO2RQKG4pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaj4+Ml09Y1tqPj4yXXwy
O1Y9YnwwO2NbVj4+Ml09VTtkUChwKTtkUChuKTtpPWU7cmV0dXJufX13aGlsZSgwKTtlPWJPKDQp
fDA7a3EoZSk7YmwoZXwwLDgxNzYsMTM0KX1mdW5jdGlvbiBmUihhLGIsZCxlKXthPWF8MDtiPWJ8
MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxoPTA7Zj1pO2k9aSsxNnwwO2c9ZnwwO2g9ZztjW2g+
PjJdPWU7Y1toKzQ+PjJdPTA7aD1iQihifDApfDA7Yj1hWShhfDAsZHwwLGd8MCl8MDtpZigoaHww
KT09MCl7aT1mO3JldHVybiBifDB9YkIoaHwwKXwwO2k9ZjtyZXR1cm4gYnwwfWZ1bmN0aW9uIGZT
KGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3ww
O3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAs
eT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxN
PTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89
MCwkPTAsYWE9MCxhYj0wLGFjPTAsYWQ9MDtsPWk7aT1pKzEwNHwwO209ZTtlPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2U+PjJdPWNbbT4+Ml07bT0oZy1mfDApLzEyfDA7bj1sfDA7ZG97aWYobT4+
PjA+MTAwKXtvPWtKKG0pfDA7aWYoKG98MCkhPTApe3A9bztxPW87YnJlYWt9a1goKTtwPTA7cT0w
fWVsc2V7cD1uO3E9MH19d2hpbGUoMCk7bj0oZnwwKT09KGd8MCk7aWYobil7cj1tO3M9MH1lbHNl
e289bTttPTA7dD1wO3U9Zjt3aGlsZSgxKXt2PWRbdV18MDtpZigodiYxfDApPT0wKXt3PXY+Pj4x
fWVsc2V7dz1jW3UrND4+Ml18MH1pZigod3wwKT09MCl7YVt0XT0yO3g9bSsxfDA7eT1vLTF8MH1l
bHNle2FbdF09MTt4PW07eT1vfXY9dSsxMnwwO2lmKCh2fDApPT0oZ3wwKSl7cj15O3M9eDticmVh
a31lbHNle289eTttPXg7dD10KzF8MDt1PXZ9fX11PWJ8MDtiPWV8MDtlPWg7dD0wO3g9cztzPXI7
d2hpbGUoMSl7cj1jW3U+PjJdfDA7ZG97aWYoKHJ8MCk9PTApe3o9MH1lbHNle209Y1tyKzEyPj4y
XXwwO2lmKChtfDApPT0oY1tyKzE2Pj4yXXwwKSl7QT1iMFtjWyhjW3I+PjJdfDApKzM2Pj4yXSYx
MjddKHIpfDB9ZWxzZXtBPWNbbT4+Ml18MH1pZigoQXwwKT09LTEpe2NbdT4+Ml09MDt6PTA7YnJl
YWt9ZWxzZXt6PWNbdT4+Ml18MDticmVha319fXdoaWxlKDApO3I9KHp8MCk9PTA7bT1jW2I+PjJd
fDA7aWYoKG18MCk9PTApe0I9ejtDPTB9ZWxzZXt5PWNbbSsxMj4+Ml18MDtpZigoeXwwKT09KGNb
bSsxNj4+Ml18MCkpe0Q9YjBbY1soY1ttPj4yXXwwKSszNj4+Ml0mMTI3XShtKXwwfWVsc2V7RD1j
W3k+PjJdfDB9aWYoKER8MCk9PS0xKXtjW2I+PjJdPTA7RT0wfWVsc2V7RT1tfUI9Y1t1Pj4yXXww
O0M9RX1GPShDfDApPT0wO2lmKCEoKHJeRikmKHN8MCkhPTApKXticmVha31yPWNbQisxMj4+Ml18
MDtpZigocnwwKT09KGNbQisxNj4+Ml18MCkpe0c9YjBbY1soY1tCPj4yXXwwKSszNj4+Ml0mMTI3
XShCKXwwfWVsc2V7Rz1jW3I+PjJdfDB9aWYoayl7SD1HfWVsc2V7SD1iX1tjWyhjW2U+PjJdfDAp
KzI4Pj4yXSYzMV0oaCxHKXwwfWRve2lmKG4pe0k9eDtKPXN9ZWxzZXtyPXQrMXwwO0wyNDk6ZG97
aWYoayl7bT1zO3k9eDtvPXA7dz0wO3Y9Zjt3aGlsZSgxKXtkb3tpZigoYVtvXXwwKT09MSl7Sz12
O2lmKChhW0tdJjEpPT0wKXtMPXYrNHwwfWVsc2V7TD1jW3YrOD4+Ml18MH1pZigoSHwwKSE9KGNb
TCsodDw8Mik+PjJdfDApKXthW29dPTA7TT13O049eTtPPW0tMXwwO2JyZWFrfVA9ZFtLXXwwO2lm
KChQJjF8MCk9PTApe1E9UD4+PjF9ZWxzZXtRPWNbdis0Pj4yXXwwfWlmKChRfDApIT0ocnwwKSl7
TT0xO049eTtPPW07YnJlYWt9YVtvXT0yO009MTtOPXkrMXwwO089bS0xfDB9ZWxzZXtNPXc7Tj15
O089bX19d2hpbGUoMCk7UD12KzEyfDA7aWYoKFB8MCk9PShnfDApKXtSPU87Uz1OO1Q9TTticmVh
ayBMMjQ5fW09Tzt5PU47bz1vKzF8MDt3PU07dj1QfX1lbHNle3Y9czt3PXg7bz1wO3k9MDttPWY7
d2hpbGUoMSl7ZG97aWYoKGFbb118MCk9PTEpe1A9bTtpZigoYVtQXSYxKT09MCl7VT1tKzR8MH1l
bHNle1U9Y1ttKzg+PjJdfDB9aWYoKEh8MCkhPShiX1tjWyhjW2U+PjJdfDApKzI4Pj4yXSYzMV0o
aCxjW1UrKHQ8PDIpPj4yXXwwKXwwKSl7YVtvXT0wO1Y9eTtXPXc7WD12LTF8MDticmVha31LPWRb
UF18MDtpZigoSyYxfDApPT0wKXtZPUs+Pj4xfWVsc2V7WT1jW20rND4+Ml18MH1pZigoWXwwKSE9
KHJ8MCkpe1Y9MTtXPXc7WD12O2JyZWFrfWFbb109MjtWPTE7Vz13KzF8MDtYPXYtMXwwfWVsc2V7
Vj15O1c9dztYPXZ9fXdoaWxlKDApO0s9bSsxMnwwO2lmKChLfDApPT0oZ3wwKSl7Uj1YO1M9VztU
PVY7YnJlYWsgTDI0OX12PVg7dz1XO289bysxfDA7eT1WO209S319fXdoaWxlKDApO2lmKCFUKXtJ
PVM7Sj1SO2JyZWFrfXI9Y1t1Pj4yXXwwO209cisxMnwwO3k9Y1ttPj4yXXwwO2lmKCh5fDApPT0o
Y1tyKzE2Pj4yXXwwKSl7bz1jWyhjW3I+PjJdfDApKzQwPj4yXXwwO2IwW28mMTI3XShyKXwwfWVs
c2V7Y1ttPj4yXT15KzR9aWYoKFMrUnwwKT4+PjA8MnxuKXtJPVM7Sj1SO2JyZWFrfXk9dCsxfDA7
bT1TO3I9cDtvPWY7d2hpbGUoMSl7ZG97aWYoKGFbcl18MCk9PTIpe3c9ZFtvXXwwO2lmKCh3JjF8
MCk9PTApe1o9dz4+PjF9ZWxzZXtaPWNbbys0Pj4yXXwwfWlmKChafDApPT0oeXwwKSl7Xz1tO2Jy
ZWFrfWFbcl09MDtfPW0tMXwwfWVsc2V7Xz1tfX13aGlsZSgwKTt3PW8rMTJ8MDtpZigod3wwKT09
KGd8MCkpe0k9XztKPVI7YnJlYWt9ZWxzZXttPV87cj1yKzF8MDtvPXd9fX19d2hpbGUoMCk7dD10
KzF8MDt4PUk7cz1KfWRve2lmKChCfDApPT0wKXskPTF9ZWxzZXtKPWNbQisxMj4+Ml18MDtpZigo
SnwwKT09KGNbQisxNj4+Ml18MCkpe2FhPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8
MH1lbHNle2FhPWNbSj4+Ml18MH1pZigoYWF8MCk9PS0xKXtjW3U+PjJdPTA7JD0xO2JyZWFrfWVs
c2V7JD0oY1t1Pj4yXXwwKT09MDticmVha319fXdoaWxlKDApO2Rve2lmKEYpe2FiPTI2NH1lbHNl
e3U9Y1tDKzEyPj4yXXwwO2lmKCh1fDApPT0oY1tDKzE2Pj4yXXwwKSl7YWM9YjBbY1soY1tDPj4y
XXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7YWM9Y1t1Pj4yXXwwfWlmKChhY3wwKT09LTEpe2Nb
Yj4+Ml09MDthYj0yNjQ7YnJlYWt9ZWxzZXtpZigkXihDfDApPT0wKXticmVha31lbHNle2FiPTI2
NjticmVha319fX13aGlsZSgwKTtpZigoYWJ8MCk9PTI2NCl7aWYoJCl7YWI9MjY2fX1pZigoYWJ8
MCk9PTI2Nil7Y1tqPj4yXT1jW2o+PjJdfDJ9TDMzMDpkb3tpZihuKXthYj0yNzF9ZWxzZXskPWY7
Qz1wO3doaWxlKDEpe2lmKChhW0NdfDApPT0yKXthZD0kO2JyZWFrIEwzMzB9Yj0kKzEyfDA7aWYo
KGJ8MCk9PShnfDApKXthYj0yNzE7YnJlYWsgTDMzMH0kPWI7Qz1DKzF8MH19fXdoaWxlKDApO2lm
KChhYnwwKT09MjcxKXtjW2o+PjJdPWNbaj4+Ml18NDthZD1nfWlmKChxfDApPT0wKXtpPWw7cmV0
dXJuIGFkfDB9a0socSk7aT1sO3JldHVybiBhZHwwfWZ1bmN0aW9uIGZUKGIsZCxlLGYsZyxoLGop
e2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09
MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0w
O2s9aTtpPWkrMTEyfDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4y
XTtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209aysx
NnwwO249ayszMnwwO289ays0MHwwO3A9ays0OHwwO3E9ays1NnwwO3I9ays2NHwwO3M9ays3Mnww
O3Q9ays4MHwwO3U9aysxMDR8MDtpZigoY1tnKzQ+PjJdJjF8MCk9PTApe2Nbbj4+Ml09LTE7dj1j
WyhjW2Q+PjJdfDApKzE2Pj4yXXwwO3c9ZXwwO2NbcD4+Ml09Y1t3Pj4yXTtjW3E+PjJdPWNbZj4+
Ml07YlhbdiYxMjddKG8sZCxwLHEsZyxoLG4pO3E9Y1tvPj4yXXwwO2Nbdz4+Ml09cTtzd2l0Y2go
Y1tuPj4yXXwwKXtjYXNlIDE6e2Fbal09MTticmVha307Y2FzZSAwOnthW2pdPTA7YnJlYWt9O2Rl
ZmF1bHQ6e2Fbal09MTtjW2g+PjJdPTR9fWNbYj4+Ml09cTtpPWs7cmV0dXJufWVqKHIsZyk7cT1y
fDA7cj1jW3E+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW20+PjJdPTE1Njg4O2NbbSs0Pj4y
XT0xMjtjW20rOD4+Ml09MDtkVygxNTY4OCxtLDk2KX1tPShjWzM5MjNdfDApLTF8MDtuPWNbcis4
Pj4yXXwwO2Rve2lmKChjW3IrMTI+PjJdfDApLW4+PjI+Pj4wPm0+Pj4wKXt3PWNbbisobTw8Mik+
PjJdfDA7aWYoKHd8MCk9PTApe2JyZWFrfW89dzt3PWNbcT4+Ml18MDtkeih3KXwwO2VqKHMsZyk7
dz1zfDA7cD1jW3c+PjJdfDA7aWYoKGNbMzgyNl18MCkhPS0xKXtjW2w+PjJdPTE1MzA0O2NbbCs0
Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTMwNCxsLDk2KX1kPShjWzM4MjddfDApLTF8MDt2PWNb
cCs4Pj4yXXwwO2Rve2lmKChjW3ArMTI+PjJdfDApLXY+PjI+Pj4wPmQ+Pj4wKXt4PWNbdisoZDw8
Mik+PjJdfDA7aWYoKHh8MCk9PTApe2JyZWFrfXk9eDt6PWNbdz4+Ml18MDtkeih6KXwwO3o9dHww
O0E9eDtiWltjWyhjW0E+PjJdfDApKzI0Pj4yXSYxMjddKHoseSk7YlpbY1soY1tBPj4yXXwwKSsy
OD4+Ml0mMTI3XSh0KzEyfDAseSk7Y1t1Pj4yXT1jW2Y+PjJdO2Fbal09KGZTKGUsdSx6LHQrMjR8
MCxvLGgsMSl8MCk9PSh6fDApfDA7Y1tiPj4yXT1jW2U+PjJdO2VlKHQrMTJ8MCk7ZWUodHwwKTtp
PWs7cmV0dXJufX13aGlsZSgwKTtvPWJPKDQpfDA7a3Eobyk7Ymwob3wwLDgxNzYsMTM0KX19d2hp
bGUoMCk7az1iTyg0KXwwO2txKGspO2JsKGt8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZlUoYixlLGYs
ZyxoLGksaixrLGwsbSl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7
az1rfDA7bD1sfDA7bT1tfDA7dmFyIG49MCxvPTAscD0wLHE9MCxyPTAscz0wO249Y1tnPj4yXXww
O289KG58MCk9PShmfDApO2Rve2lmKG8pe3A9KGNbbSs5Nj4+Ml18MCk9PShifDApO2lmKCFwKXtp
ZigoY1ttKzEwMD4+Ml18MCkhPShifDApKXticmVha319Y1tnPj4yXT1mKzE7YVtmXT1wPzQzOjQ1
O2NbaD4+Ml09MDtxPTA7cmV0dXJuIHF8MH19d2hpbGUoMCk7cD1kW2pdfDA7aWYoKHAmMXwwKT09
MCl7cj1wPj4+MX1lbHNle3I9Y1tqKzQ+PjJdfDB9aWYoKHJ8MCkhPTAmKGJ8MCk9PShpfDApKXtp
PWNbbD4+Ml18MDtpZigoaS1rfDApPj0xNjApe3E9MDtyZXR1cm4gcXwwfWs9Y1toPj4yXXwwO2Nb
bD4+Ml09aSs0O2NbaT4+Ml09aztjW2g+PjJdPTA7cT0wO3JldHVybiBxfDB9az1tKzEwNHwwO2k9
bTt3aGlsZSgxKXtpZigoaXwwKT09KGt8MCkpe3M9azticmVha31pZigoY1tpPj4yXXwwKT09KGJ8
MCkpe3M9aTticmVha31lbHNle2k9aSs0fDB9fWk9cy1tfDA7bT1pPj4yO2lmKChpfDApPjkyKXtx
PS0xO3JldHVybiBxfDB9TDM5ODpkb3tzd2l0Y2goZXwwKXtjYXNlIDg6Y2FzZSAxMDp7aWYoKG18
MCk8KGV8MCkpe2JyZWFrIEwzOTh9ZWxzZXtxPS0xfXJldHVybiBxfDB9O2Nhc2UgMTY6e2lmKChp
fDApPDg4KXticmVhayBMMzk4fWlmKG8pe3E9LTE7cmV0dXJuIHF8MH1pZigobi1mfDApPj0zKXtx
PS0xO3JldHVybiBxfDB9aWYoKGFbbi0xfDBdfDApIT00OCl7cT0tMTtyZXR1cm4gcXwwfWNbaD4+
Ml09MDtzPWFbOTc0NCttfDBdfDA7Yj1jW2c+PjJdfDA7Y1tnPj4yXT1iKzE7YVtiXT1zO3E9MDty
ZXR1cm4gcXwwfTtkZWZhdWx0Ont9fX13aGlsZSgwKTtmPWFbOTc0NCttfDBdfDA7Y1tnPj4yXT1u
KzE7YVtuXT1mO2NbaD4+Ml09KGNbaD4+Ml18MCkrMTtxPTA7cmV0dXJuIHF8MH1mdW5jdGlvbiBm
VihiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8
MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAs
TT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wO2U9aTtp
PWkrMTQ0fDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7
Zz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSsxMDR8MDttPWUrMTEy
fDA7bj1lKzEyOHwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2gr
ND4+Ml0mNzR8MCl7Y2FzZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA2
NDp7dD04O2JyZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtmVyhtLGgsdSxsKTtrJChvfDAsMCwx
Mik7aD1uO2RSKG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHww
fWVsc2V7dj1uKzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1ty
Pj4yXT12O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9Y1tsPj4yXXwwO2w9
dzt3PWNbaD4+Ml18MDtMNDI2OndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtDPWNb
dysxMj4+Ml18MDtpZigoQ3wwKT09KGNbdysxNj4+Ml18MCkpe0Q9YjBbY1soY1t3Pj4yXXwwKSsz
Nj4+Ml0mMTI3XSh3KXwwfWVsc2V7RD1jW0M+PjJdfDB9aWYoKER8MCkhPS0xKXtCPXc7YnJlYWt9
Y1toPj4yXT0wO0I9MH19d2hpbGUoMCk7RT0oQnwwKT09MDtDPWNbZj4+Ml18MDtkb3tpZigoQ3ww
KT09MCl7Rj0zNjN9ZWxzZXtHPWNbQysxMj4+Ml18MDtpZigoR3wwKT09KGNbQysxNj4+Ml18MCkp
e0g9YjBbY1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7SD1jW0c+PjJdfDB9aWYo
KEh8MCk9PS0xKXtjW2Y+PjJdPTA7Rj0zNjM7YnJlYWt9ZWxzZXtHPShDfDApPT0wO2lmKEVeRyl7
ST1DO0o9RzticmVha31lbHNle0s9bDtMPUM7TT1HO2JyZWFrIEw0MjZ9fX19d2hpbGUoMCk7aWYo
KEZ8MCk9PTM2Myl7Rj0wO2lmKEUpe0s9bDtMPTA7TT0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Qz1k
W29dfDA7Rz0oQyYxfDApPT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEc/Qz4+PjE6Y1t6Pj4y
XXwwKXwwKSl7aWYoRyl7Tj1DPj4+MTtPPUM+Pj4xfWVsc2V7Qz1jW3o+PjJdfDA7Tj1DO089Q31k
UihuLE48PDEsMCk7aWYoKGFbb10mMSk9PTApe1A9MTB9ZWxzZXtQPShjW2c+PjJdJi0yKS0xfDB9
ZFIobixQLDApO2lmKChhW29dJjEpPT0wKXtRPXh9ZWxzZXtRPWNbeT4+Ml18MH1jW3A+PjJdPVEr
TztSPVF9ZWxzZXtSPWx9Qz1CKzEyfDA7Rz1jW0M+PjJdfDA7Uz1CKzE2fDA7aWYoKEd8MCk9PShj
W1M+PjJdfDApKXtUPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1Q9Y1tH
Pj4yXXwwfWlmKChmVShULHQsUixwLHMsQSxtLHYscix1KXwwKSE9MCl7Sz1SO0w9STtNPUo7YnJl
YWt9Rz1jW0M+PjJdfDA7aWYoKEd8MCk9PShjW1M+PjJdfDApKXtTPWNbKGNbQj4+Ml18MCkrNDA+
PjJdfDA7YjBbUyYxMjddKEIpfDA7bD1SO3c9Qjtjb250aW51ZX1lbHNle2NbQz4+Ml09Rys0O2w9
Ujt3PUI7Y29udGludWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1U9dz4+PjF9ZWxzZXtVPWNb
bSs0Pj4yXXwwfWRve2lmKChVfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2Jy
ZWFrfVI9Y1tzPj4yXXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09Un19d2hpbGUoMCk7Y1trPj4yXT1m
dShLLGNbcD4+Ml18MCxqLHQpfDA7ZnQobSx2LGNbcj4+Ml18MCxqKTtkb3tpZihFKXtWPTB9ZWxz
ZXtyPWNbQisxMj4+Ml18MDtpZigocnwwKT09KGNbQisxNj4+Ml18MCkpe1c9YjBbY1soY1tCPj4y
XXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7Vz1jW3I+PjJdfDB9aWYoKFd8MCkhPS0xKXtWPUI7
YnJlYWt9Y1toPj4yXT0wO1Y9MH19d2hpbGUoMCk7aD0oVnwwKT09MDtkb3tpZihNKXtGPTQwNX1l
bHNle0I9Y1tMKzEyPj4yXXwwO2lmKChCfDApPT0oY1tMKzE2Pj4yXXwwKSl7WD1iMFtjWyhjW0w+
PjJdfDApKzM2Pj4yXSYxMjddKEwpfDB9ZWxzZXtYPWNbQj4+Ml18MH1pZigoWHwwKT09LTEpe2Nb
Zj4+Ml09MDtGPTQwNTticmVha31pZighKGheKEx8MCk9PTApKXticmVha31ZPWJ8MDtjW1k+PjJd
PVY7ZFAobik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEZ8MCk9PTQwNSl7aWYo
aCl7YnJlYWt9WT1ifDA7Y1tZPj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDAp
O2Nbaj4+Ml09Y1tqPj4yXXwyO1k9YnwwO2NbWT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJu
fWZ1bmN0aW9uIGZXKGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0w
LGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTA7Zj1pO2k9aSs0MHwwO2c9ZnwwO2g9Zisx
NnwwO2o9ZiszMnwwO2VqKGosYik7Yj1qfDA7aj1jW2I+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0x
KXtjW2g+PjJdPTE1Njg4O2NbaCs0Pj4yXT0xMjtjW2grOD4+Ml09MDtkVygxNTY4OCxoLDk2KX1o
PShjWzM5MjNdfDApLTF8MDtrPWNbais4Pj4yXXwwO2Rve2lmKChjW2orMTI+PjJdfDApLWs+PjI+
Pj4wPmg+Pj4wKXtsPWNbaysoaDw8Mik+PjJdfDA7aWYoKGx8MCk9PTApe2JyZWFrfW09bDtuPWNb
KGNbbD4+Ml18MCkrNDg+PjJdfDA7Y2FbbiYxNV0obSw5NzQ0LDk3NzAsZCl8MDttPWNbYj4+Ml18
MDtpZigoY1szODI2XXwwKSE9LTEpe2NbZz4+Ml09MTUzMDQ7Y1tnKzQ+PjJdPTEyO2NbZys4Pj4y
XT0wO2RXKDE1MzA0LGcsOTYpfW49KGNbMzgyN118MCktMXwwO2w9Y1ttKzg+PjJdfDA7ZG97aWYo
KGNbbSsxMj4+Ml18MCktbD4+Mj4+PjA+bj4+PjApe289Y1tsKyhuPDwyKT4+Ml18MDtpZigob3ww
KT09MCl7YnJlYWt9cD1vO2NbZT4+Ml09YjBbY1soY1tvPj4yXXwwKSsxNj4+Ml0mMTI3XShwKXww
O2JaW2NbKGNbbz4+Ml18MCkrMjA+PjJdJjEyN10oYSxwKTtwPWNbYj4+Ml18MDtkeihwKXwwO2k9
ZjtyZXR1cm59fXdoaWxlKDApO249Yk8oNCl8MDtrcShuKTtibChufDAsODE3NiwxMzQpfX13aGls
ZSgwKTtmPWJPKDQpfDA7a3EoZik7YmwoZnwwLDgxNzYsMTM0KX1mdW5jdGlvbiBmWChiLGUsZixn
LGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEw9MCxNPTAsTj0wLE89MCxQ
PTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wO2U9aTtpPWkrMTQ0fDA7
bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSsxMDR8MDttPWUrMTEyfDA7bj1lKzEy
OHwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0mNzR8
MCl7Y2FzZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA2NDp7dD04O2Jy
ZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtmVyhtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1uO2RS
KG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7dj1u
Kzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12O2Nb
cz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9Y1tsPj4yXXwwO2w9dzt3PWNbaD4+
Ml18MDtMNTM1OndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtDPWNbdysxMj4+Ml18
MDtpZigoQ3wwKT09KGNbdysxNj4+Ml18MCkpe0Q9YjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0mMTI3
XSh3KXwwfWVsc2V7RD1jW0M+PjJdfDB9aWYoKER8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4yXT0w
O0I9MH19d2hpbGUoMCk7RT0oQnwwKT09MDtDPWNbZj4+Ml18MDtkb3tpZigoQ3wwKT09MCl7Rj00
NTB9ZWxzZXtHPWNbQysxMj4+Ml18MDtpZigoR3wwKT09KGNbQysxNj4+Ml18MCkpe0g9YjBbY1so
Y1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7SD1jW0c+PjJdfDB9aWYoKEh8MCk9PS0x
KXtjW2Y+PjJdPTA7Rj00NTA7YnJlYWt9ZWxzZXtHPShDfDApPT0wO2lmKEVeRyl7ST1DO0o9Rzti
cmVha31lbHNle0w9bDtNPUM7Tj1HO2JyZWFrIEw1MzV9fX19d2hpbGUoMCk7aWYoKEZ8MCk9PTQ1
MCl7Rj0wO2lmKEUpe0w9bDtNPTA7Tj0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Qz1kW29dfDA7Rz0o
QyYxfDApPT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEc/Qz4+PjE6Y1t6Pj4yXXwwKXwwKSl7
aWYoRyl7Tz1DPj4+MTtQPUM+Pj4xfWVsc2V7Qz1jW3o+PjJdfDA7Tz1DO1A9Q31kUihuLE88PDEs
MCk7aWYoKGFbb10mMSk9PTApe1E9MTB9ZWxzZXtRPShjW2c+PjJdJi0yKS0xfDB9ZFIobixRLDAp
O2lmKChhW29dJjEpPT0wKXtSPXh9ZWxzZXtSPWNbeT4+Ml18MH1jW3A+PjJdPVIrUDtTPVJ9ZWxz
ZXtTPWx9Qz1CKzEyfDA7Rz1jW0M+PjJdfDA7VD1CKzE2fDA7aWYoKEd8MCk9PShjW1Q+PjJdfDAp
KXtVPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1U9Y1tHPj4yXXwwfWlm
KChmVShVLHQsUyxwLHMsQSxtLHYscix1KXwwKSE9MCl7TD1TO009STtOPUo7YnJlYWt9Rz1jW0M+
PjJdfDA7aWYoKEd8MCk9PShjW1Q+PjJdfDApKXtUPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7YjBb
VCYxMjddKEIpfDA7bD1TO3c9Qjtjb250aW51ZX1lbHNle2NbQz4+Ml09Rys0O2w9Uzt3PUI7Y29u
dGludWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1Y9dz4+PjF9ZWxzZXtWPWNbbSs0Pj4yXXww
fWRve2lmKChWfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVM9Y1tz
Pj4yXXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09U319d2hpbGUoMCk7cz1mdyhMLGNbcD4+Ml18MCxq
LHQpfDA7Y1trPj4yXT1zO2Nbays0Pj4yXT1LO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoRSl7
Vz0wfWVsc2V7cj1jW0IrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW0IrMTY+PjJdfDApKXtYPWIwW2Nb
KGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1g9Y1tyPj4yXXwwfWlmKChYfDApIT0t
MSl7Vz1CO2JyZWFrfWNbaD4+Ml09MDtXPTB9fXdoaWxlKDApO2g9KFd8MCk9PTA7ZG97aWYoTil7
Rj00OTJ9ZWxzZXtCPWNbTSsxMj4+Ml18MDtpZigoQnwwKT09KGNbTSsxNj4+Ml18MCkpe1k9YjBb
Y1soY1tNPj4yXXwwKSszNj4+Ml0mMTI3XShNKXwwfWVsc2V7WT1jW0I+PjJdfDB9aWYoKFl8MCk9
PS0xKXtjW2Y+PjJdPTA7Rj00OTI7YnJlYWt9aWYoIShoXihNfDApPT0wKSl7YnJlYWt9Wj1ifDA7
Y1taPj4yXT1XO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDApPT00
OTIpe2lmKGgpe2JyZWFrfVo9YnwwO2NbWj4+Ml09VztkUChuKTtkUChtKTtpPWU7cmV0dXJufX13
aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtaPWJ8MDtjW1o+PjJdPVc7ZFAobik7ZFAobSk7aT1l
O3JldHVybn1mdW5jdGlvbiBmWShlLGYsZyxoLGosayxsKXtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8
MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1
PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9
MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0w
LFg9MCxZPTAsWj0wO2Y9aTtpPWkrMTQ0fDA7bT1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
Zz4+Ml09Y1ttPj4yXTttPWg7aD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1toPj4yXT1jW20+PjJd
O209ZisxMDR8MDtuPWYrMTEyfDA7bz1mKzEyOHwwO3A9bztxPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztyPWk7aT1pKzE2MHwwO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Q9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO3N3aXRjaChjW2orND4+Ml0mNzR8MCl7Y2FzZSA4Ont1PTE2O2JyZWFrfTtjYXNlIDY0
Ont1PTg7YnJlYWt9O2Nhc2UgMDp7dT0wO2JyZWFrfTtkZWZhdWx0Ont1PTEwfX12PWZ8MDtmVyhu
LGosdixtKTtrJChwfDAsMCwxMik7aj1vO2RSKG8sMTAsMCk7aWYoKGFbcF0mMSk9PTApe3c9aisx
fDA7eD13O3k9dzt6PW8rOHwwfWVsc2V7dz1vKzh8MDt4PWNbdz4+Ml18MDt5PWorMXwwO3o9d31j
W3E+PjJdPXg7dz1yfDA7Y1tzPj4yXT13O2NbdD4+Ml09MDtqPWd8MDtnPWh8MDtoPW98MDtBPW8r
NHwwO0I9Y1ttPj4yXXwwO209eDt4PWNbaj4+Ml18MDtMNjI0OndoaWxlKDEpe2Rve2lmKCh4fDAp
PT0wKXtDPTB9ZWxzZXtEPWNbeCsxMj4+Ml18MDtpZigoRHwwKT09KGNbeCsxNj4+Ml18MCkpe0U9
YjBbY1soY1t4Pj4yXXwwKSszNj4+Ml0mMTI3XSh4KXwwfWVsc2V7RT1jW0Q+PjJdfDB9aWYoKEV8
MCkhPS0xKXtDPXg7YnJlYWt9Y1tqPj4yXT0wO0M9MH19d2hpbGUoMCk7Rj0oQ3wwKT09MDtEPWNb
Zz4+Ml18MDtkb3tpZigoRHwwKT09MCl7Rz01MjB9ZWxzZXtIPWNbRCsxMj4+Ml18MDtpZigoSHww
KT09KGNbRCsxNj4+Ml18MCkpe0k9YjBbY1soY1tEPj4yXXwwKSszNj4+Ml0mMTI3XShEKXwwfWVs
c2V7ST1jW0g+PjJdfDB9aWYoKEl8MCk9PS0xKXtjW2c+PjJdPTA7Rz01MjA7YnJlYWt9ZWxzZXtI
PShEfDApPT0wO2lmKEZeSCl7Sj1EO0s9SDticmVha31lbHNle0w9bTtNPUQ7Tj1IO2JyZWFrIEw2
MjR9fX19d2hpbGUoMCk7aWYoKEd8MCk9PTUyMCl7Rz0wO2lmKEYpe0w9bTtNPTA7Tj0xO2JyZWFr
fWVsc2V7Sj0wO0s9MX19RD1kW3BdfDA7SD0oRCYxfDApPT0wO2lmKCgoY1txPj4yXXwwKS1tfDAp
PT0oKEg/RD4+PjE6Y1tBPj4yXXwwKXwwKSl7aWYoSCl7Tz1EPj4+MTtQPUQ+Pj4xfWVsc2V7RD1j
W0E+PjJdfDA7Tz1EO1A9RH1kUihvLE88PDEsMCk7aWYoKGFbcF0mMSk9PTApe1E9MTB9ZWxzZXtR
PShjW2g+PjJdJi0yKS0xfDB9ZFIobyxRLDApO2lmKChhW3BdJjEpPT0wKXtSPXl9ZWxzZXtSPWNb
ej4+Ml18MH1jW3E+PjJdPVIrUDtTPVJ9ZWxzZXtTPW19RD1DKzEyfDA7SD1jW0Q+PjJdfDA7VD1D
KzE2fDA7aWYoKEh8MCk9PShjW1Q+PjJdfDApKXtVPWIwW2NbKGNbQz4+Ml18MCkrMzY+PjJdJjEy
N10oQyl8MH1lbHNle1U9Y1tIPj4yXXwwfWlmKChmVShVLHUsUyxxLHQsQixuLHcscyx2KXwwKSE9
MCl7TD1TO009SjtOPUs7YnJlYWt9SD1jW0Q+PjJdfDA7aWYoKEh8MCk9PShjW1Q+PjJdfDApKXtU
PWNbKGNbQz4+Ml18MCkrNDA+PjJdfDA7YjBbVCYxMjddKEMpfDA7bT1TO3g9Qztjb250aW51ZX1l
bHNle2NbRD4+Ml09SCs0O209Uzt4PUM7Y29udGludWV9fXg9ZFtuXXwwO2lmKCh4JjF8MCk9PTAp
e1Y9eD4+PjF9ZWxzZXtWPWNbbis0Pj4yXXwwfWRve2lmKChWfDApIT0wKXt4PWNbcz4+Ml18MDtp
ZigoeC1yfDApPj0xNjApe2JyZWFrfVM9Y1t0Pj4yXXwwO2Nbcz4+Ml09eCs0O2NbeD4+Ml09U319
d2hpbGUoMCk7YltsPj4xXT1meihMLGNbcT4+Ml18MCxrLHUpfDA7ZnQobix3LGNbcz4+Ml18MCxr
KTtkb3tpZihGKXtXPTB9ZWxzZXtzPWNbQysxMj4+Ml18MDtpZigoc3wwKT09KGNbQysxNj4+Ml18
MCkpe1g9YjBbY1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7WD1jW3M+PjJdfDB9
aWYoKFh8MCkhPS0xKXtXPUM7YnJlYWt9Y1tqPj4yXT0wO1c9MH19d2hpbGUoMCk7aj0oV3wwKT09
MDtkb3tpZihOKXtHPTU2Mn1lbHNle0M9Y1tNKzEyPj4yXXwwO2lmKChDfDApPT0oY1tNKzE2Pj4y
XXwwKSl7WT1iMFtjWyhjW00+PjJdfDApKzM2Pj4yXSYxMjddKE0pfDB9ZWxzZXtZPWNbQz4+Ml18
MH1pZigoWXwwKT09LTEpe2NbZz4+Ml09MDtHPTU2MjticmVha31pZighKGpeKE18MCk9PTApKXti
cmVha31aPWV8MDtjW1o+PjJdPVc7ZFAobyk7ZFAobik7aT1mO3JldHVybn19d2hpbGUoMCk7ZG97
aWYoKEd8MCk9PTU2Mil7aWYoail7YnJlYWt9Wj1lfDA7Y1taPj4yXT1XO2RQKG8pO2RQKG4pO2k9
ZjtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4yXXwyO1o9ZXwwO2NbWj4+Ml09VztkUChv
KTtkUChuKTtpPWY7cmV0dXJufWZ1bmN0aW9uIGZaKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9
MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0w
LEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAs
VD0wLFU9MCxWPTAsVz0wLFg9MCxZPTA7ZT1pO2k9aSsxNDR8MDtsPWY7Zj1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+
PjJdPWNbbD4+Ml07bD1lKzEwNHwwO209ZSsxMTJ8MDtuPWUrMTI4fDA7bz1uO3A9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO3E9aTtpPWkrMTYwfDA7cj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cz1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7c3dpdGNoKGNbaCs0Pj4yXSY3NHwwKXtjYXNlIDg6e3Q9MTY7YnJl
YWt9O2Nhc2UgMDp7dD0wO2JyZWFrfTtjYXNlIDY0Ont0PTg7YnJlYWt9O2RlZmF1bHQ6e3Q9MTB9
fXU9ZXwwO2ZXKG0saCx1LGwpO2skKG98MCwwLDEyKTtoPW47ZFIobiwxMCwwKTtpZigoYVtvXSYx
KT09MCl7dj1oKzF8MDt3PXY7eD12O3k9bis4fDB9ZWxzZXt2PW4rOHwwO3c9Y1t2Pj4yXXwwO3g9
aCsxfDA7eT12fWNbcD4+Ml09dzt2PXF8MDtjW3I+PjJdPXY7Y1tzPj4yXT0wO2g9ZnwwO2Y9Z3ww
O2c9bnwwO3o9bis0fDA7QT1jW2w+PjJdfDA7bD13O3c9Y1toPj4yXXwwO0w3MTM6d2hpbGUoMSl7
ZG97aWYoKHd8MCk9PTApe0I9MH1lbHNle0M9Y1t3KzEyPj4yXXwwO2lmKChDfDApPT0oY1t3KzE2
Pj4yXXwwKSl7RD1iMFtjWyhjW3c+PjJdfDApKzM2Pj4yXSYxMjddKHcpfDB9ZWxzZXtEPWNbQz4+
Ml18MH1pZigoRHwwKSE9LTEpe0I9dzticmVha31jW2g+PjJdPTA7Qj0wfX13aGlsZSgwKTtFPShC
fDApPT0wO0M9Y1tmPj4yXXwwO2Rve2lmKChDfDApPT0wKXtGPTU5MH1lbHNle0c9Y1tDKzEyPj4y
XXwwO2lmKChHfDApPT0oY1tDKzE2Pj4yXXwwKSl7SD1iMFtjWyhjW0M+PjJdfDApKzM2Pj4yXSYx
MjddKEMpfDB9ZWxzZXtIPWNbRz4+Ml18MH1pZigoSHwwKT09LTEpe2NbZj4+Ml09MDtGPTU5MDti
cmVha31lbHNle0c9KEN8MCk9PTA7aWYoRV5HKXtJPUM7Sj1HO2JyZWFrfWVsc2V7Sz1sO0w9QztN
PUc7YnJlYWsgTDcxM319fX13aGlsZSgwKTtpZigoRnwwKT09NTkwKXtGPTA7aWYoRSl7Sz1sO0w9
MDtNPTE7YnJlYWt9ZWxzZXtJPTA7Sj0xfX1DPWRbb118MDtHPShDJjF8MCk9PTA7aWYoKChjW3A+
PjJdfDApLWx8MCk9PSgoRz9DPj4+MTpjW3o+PjJdfDApfDApKXtpZihHKXtOPUM+Pj4xO089Qz4+
PjF9ZWxzZXtDPWNbej4+Ml18MDtOPUM7Tz1DfWRSKG4sTjw8MSwwKTtpZigoYVtvXSYxKT09MCl7
UD0xMH1lbHNle1A9KGNbZz4+Ml0mLTIpLTF8MH1kUihuLFAsMCk7aWYoKGFbb10mMSk9PTApe1E9
eH1lbHNle1E9Y1t5Pj4yXXwwfWNbcD4+Ml09UStPO1I9UX1lbHNle1I9bH1DPUIrMTJ8MDtHPWNb
Qz4+Ml18MDtTPUIrMTZ8MDtpZigoR3wwKT09KGNbUz4+Ml18MCkpe1Q9YjBbY1soY1tCPj4yXXww
KSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7VD1jW0c+PjJdfDB9aWYoKGZVKFQsdCxSLHAscyxBLG0s
dixyLHUpfDApIT0wKXtLPVI7TD1JO009SjticmVha31HPWNbQz4+Ml18MDtpZigoR3wwKT09KGNb
Uz4+Ml18MCkpe1M9Y1soY1tCPj4yXXwwKSs0MD4+Ml18MDtiMFtTJjEyN10oQil8MDtsPVI7dz1C
O2NvbnRpbnVlfWVsc2V7Y1tDPj4yXT1HKzQ7bD1SO3c9Qjtjb250aW51ZX19dz1kW21dfDA7aWYo
KHcmMXwwKT09MCl7VT13Pj4+MX1lbHNle1U9Y1ttKzQ+PjJdfDB9ZG97aWYoKFV8MCkhPTApe3c9
Y1tyPj4yXXwwO2lmKCh3LXF8MCk+PTE2MCl7YnJlYWt9Uj1jW3M+PjJdfDA7Y1tyPj4yXT13KzQ7
Y1t3Pj4yXT1SfX13aGlsZSgwKTtjW2s+PjJdPWZCKEssY1twPj4yXXwwLGosdCl8MDtmdChtLHYs
Y1tyPj4yXXwwLGopO2Rve2lmKEUpe1Y9MH1lbHNle3I9Y1tCKzEyPj4yXXwwO2lmKChyfDApPT0o
Y1tCKzE2Pj4yXXwwKSl7Vz1iMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtX
PWNbcj4+Ml18MH1pZigoV3wwKSE9LTEpe1Y9QjticmVha31jW2g+PjJdPTA7Vj0wfX13aGlsZSgw
KTtoPShWfDApPT0wO2Rve2lmKE0pe0Y9NjMyfWVsc2V7Qj1jW0wrMTI+PjJdfDA7aWYoKEJ8MCk9
PShjW0wrMTY+PjJdfDApKXtYPWIwW2NbKGNbTD4+Ml18MCkrMzY+PjJdJjEyN10oTCl8MH1lbHNl
e1g9Y1tCPj4yXXwwfWlmKChYfDApPT0tMSl7Y1tmPj4yXT0wO0Y9NjMyO2JyZWFrfWlmKCEoaF4o
THwwKT09MCkpe2JyZWFrfVk9YnwwO2NbWT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13
aGlsZSgwKTtkb3tpZigoRnwwKT09NjMyKXtpZihoKXticmVha31ZPWJ8MDtjW1k+PjJdPVY7ZFAo
bik7ZFAobSk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1tqPj4yXT1jW2o+PjJdfDI7WT1ifDA7Y1tZ
Pj4yXT1WO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZl8oYixlLGYsZyxoLGosayl7
Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxR
PTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MDtlPWk7aT1pKzE0NHwwO2w9ZjtmPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1nO2c9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO2NbZz4+Ml09Y1tsPj4yXTtsPWUrMTA0fDA7bT1lKzExMnwwO249ZSsxMjh8MDtvPW47
cD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7cT1pO2k9aSsxNjB8MDtyPWk7aT1pKzR8MDtpPWkrNz4+
Mzw8MztzPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztzd2l0Y2goY1toKzQ+PjJdJjc0fDApe2Nhc2Ug
ODp7dD0xNjticmVha307Y2FzZSA2NDp7dD04O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307ZGVm
YXVsdDp7dD0xMH19dT1lfDA7ZlcobSxoLHUsbCk7ayQob3wwLDAsMTIpO2g9bjtkUihuLDEwLDAp
O2lmKChhW29dJjEpPT0wKXt2PWgrMXwwO3c9djt4PXY7eT1uKzh8MH1lbHNle3Y9bis4fDA7dz1j
W3Y+PjJdfDA7eD1oKzF8MDt5PXZ9Y1twPj4yXT13O3Y9cXwwO2Nbcj4+Ml09djtjW3M+PjJdPTA7
aD1mfDA7Zj1nfDA7Zz1ufDA7ej1uKzR8MDtBPWNbbD4+Ml18MDtsPXc7dz1jW2g+PjJdfDA7TDgw
Mjp3aGlsZSgxKXtkb3tpZigod3wwKT09MCl7Qj0wfWVsc2V7Qz1jW3crMTI+PjJdfDA7aWYoKEN8
MCk9PShjW3crMTY+PjJdfDApKXtEPWIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEyN10odyl8MH1l
bHNle0Q9Y1tDPj4yXXwwfWlmKChEfDApIT0tMSl7Qj13O2JyZWFrfWNbaD4+Ml09MDtCPTB9fXdo
aWxlKDApO0U9KEJ8MCk9PTA7Qz1jW2Y+PjJdfDA7ZG97aWYoKEN8MCk9PTApe0Y9NjYwfWVsc2V7
Rz1jW0MrMTI+PjJdfDA7aWYoKEd8MCk9PShjW0MrMTY+PjJdfDApKXtIPWIwW2NbKGNbQz4+Ml18
MCkrMzY+PjJdJjEyN10oQyl8MH1lbHNle0g9Y1tHPj4yXXwwfWlmKChIfDApPT0tMSl7Y1tmPj4y
XT0wO0Y9NjYwO2JyZWFrfWVsc2V7Rz0oQ3wwKT09MDtpZihFXkcpe0k9QztKPUc7YnJlYWt9ZWxz
ZXtLPWw7TD1DO009RzticmVhayBMODAyfX19fXdoaWxlKDApO2lmKChGfDApPT02NjApe0Y9MDtp
ZihFKXtLPWw7TD0wO009MTticmVha31lbHNle0k9MDtKPTF9fUM9ZFtvXXwwO0c9KEMmMXwwKT09
MDtpZigoKGNbcD4+Ml18MCktbHwwKT09KChHP0M+Pj4xOmNbej4+Ml18MCl8MCkpe2lmKEcpe049
Qz4+PjE7Tz1DPj4+MX1lbHNle0M9Y1t6Pj4yXXwwO049QztPPUN9ZFIobixOPDwxLDApO2lmKChh
W29dJjEpPT0wKXtQPTEwfWVsc2V7UD0oY1tnPj4yXSYtMiktMXwwfWRSKG4sUCwwKTtpZigoYVtv
XSYxKT09MCl7UT14fWVsc2V7UT1jW3k+PjJdfDB9Y1twPj4yXT1RK087Uj1RfWVsc2V7Uj1sfUM9
QisxMnwwO0c9Y1tDPj4yXXwwO1M9QisxNnwwO2lmKChHfDApPT0oY1tTPj4yXXwwKSl7VD1iMFtj
WyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDB9ZWxzZXtUPWNbRz4+Ml18MH1pZigoZlUoVCx0
LFIscCxzLEEsbSx2LHIsdSl8MCkhPTApe0s9UjtMPUk7TT1KO2JyZWFrfUc9Y1tDPj4yXXwwO2lm
KChHfDApPT0oY1tTPj4yXXwwKSl7Uz1jWyhjW0I+PjJdfDApKzQwPj4yXXwwO2IwW1MmMTI3XShC
KXwwO2w9Ujt3PUI7Y29udGludWV9ZWxzZXtjW0M+PjJdPUcrNDtsPVI7dz1CO2NvbnRpbnVlfX13
PWRbbV18MDtpZigodyYxfDApPT0wKXtVPXc+Pj4xfWVsc2V7VT1jW20rND4+Ml18MH1kb3tpZigo
VXwwKSE9MCl7dz1jW3I+PjJdfDA7aWYoKHctcXwwKT49MTYwKXticmVha31SPWNbcz4+Ml18MDtj
W3I+PjJdPXcrNDtjW3c+PjJdPVJ9fXdoaWxlKDApO2Nbaz4+Ml09ZkQoSyxjW3A+PjJdfDAsaix0
KXwwO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYoRSl7Vj0wfWVsc2V7cj1jW0IrMTI+PjJdfDA7
aWYoKHJ8MCk9PShjW0IrMTY+PjJdfDApKXtXPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10o
Qil8MH1lbHNle1c9Y1tyPj4yXXwwfWlmKChXfDApIT0tMSl7Vj1CO2JyZWFrfWNbaD4+Ml09MDtW
PTB9fXdoaWxlKDApO2g9KFZ8MCk9PTA7ZG97aWYoTSl7Rj03MDJ9ZWxzZXtCPWNbTCsxMj4+Ml18
MDtpZigoQnwwKT09KGNbTCsxNj4+Ml18MCkpe1g9YjBbY1soY1tMPj4yXXwwKSszNj4+Ml0mMTI3
XShMKXwwfWVsc2V7WD1jW0I+PjJdfDB9aWYoKFh8MCk9PS0xKXtjW2Y+PjJdPTA7Rj03MDI7YnJl
YWt9aWYoIShoXihMfDApPT0wKSl7YnJlYWt9WT1ifDA7Y1tZPj4yXT1WO2RQKG4pO2RQKG0pO2k9
ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDApPT03MDIpe2lmKGgpe2JyZWFrfVk9YnwwO2Nb
WT4+Ml09VjtkUChuKTtkUChtKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18
MjtZPWJ8MDtjW1k+PjJdPVY7ZFAobik7ZFAobSk7aT1lO3JldHVybn1mdW5jdGlvbiBmJChiLGUs
ZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIg
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6
PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEw9MCxNPTAsTj0wLE89
MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wO2U9aTtpPWkrMTQ0
fDA7bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1tsPj4yXTtsPWc7Zz1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tnPj4yXT1jW2w+PjJdO2w9ZSsxMDR8MDttPWUrMTEyfDA7bj1l
KzEyOHwwO289bjtwPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztxPWk7aT1pKzE2MHwwO3I9aTtpPWkr
NHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3N3aXRjaChjW2grND4+Ml0m
NzR8MCl7Y2FzZSA4Ont0PTE2O2JyZWFrfTtjYXNlIDA6e3Q9MDticmVha307Y2FzZSA2NDp7dD04
O2JyZWFrfTtkZWZhdWx0Ont0PTEwfX11PWV8MDtmVyhtLGgsdSxsKTtrJChvfDAsMCwxMik7aD1u
O2RSKG4sMTAsMCk7aWYoKGFbb10mMSk9PTApe3Y9aCsxfDA7dz12O3g9djt5PW4rOHwwfWVsc2V7
dj1uKzh8MDt3PWNbdj4+Ml18MDt4PWgrMXwwO3k9dn1jW3A+PjJdPXc7dj1xfDA7Y1tyPj4yXT12
O2Nbcz4+Ml09MDtoPWZ8MDtmPWd8MDtnPW58MDt6PW4rNHwwO0E9Y1tsPj4yXXwwO2w9dzt3PWNb
aD4+Ml18MDtMODkxOndoaWxlKDEpe2Rve2lmKCh3fDApPT0wKXtCPTB9ZWxzZXtDPWNbdysxMj4+
Ml18MDtpZigoQ3wwKT09KGNbdysxNj4+Ml18MCkpe0Q9YjBbY1soY1t3Pj4yXXwwKSszNj4+Ml0m
MTI3XSh3KXwwfWVsc2V7RD1jW0M+PjJdfDB9aWYoKER8MCkhPS0xKXtCPXc7YnJlYWt9Y1toPj4y
XT0wO0I9MH19d2hpbGUoMCk7RT0oQnwwKT09MDtDPWNbZj4+Ml18MDtkb3tpZigoQ3wwKT09MCl7
Rj03MzB9ZWxzZXtHPWNbQysxMj4+Ml18MDtpZigoR3wwKT09KGNbQysxNj4+Ml18MCkpe0g9YjBb
Y1soY1tDPj4yXXwwKSszNj4+Ml0mMTI3XShDKXwwfWVsc2V7SD1jW0c+PjJdfDB9aWYoKEh8MCk9
PS0xKXtjW2Y+PjJdPTA7Rj03MzA7YnJlYWt9ZWxzZXtHPShDfDApPT0wO2lmKEVeRyl7ST1DO0o9
RzticmVha31lbHNle0w9bDtNPUM7Tj1HO2JyZWFrIEw4OTF9fX19d2hpbGUoMCk7aWYoKEZ8MCk9
PTczMCl7Rj0wO2lmKEUpe0w9bDtNPTA7Tj0xO2JyZWFrfWVsc2V7ST0wO0o9MX19Qz1kW29dfDA7
Rz0oQyYxfDApPT0wO2lmKCgoY1twPj4yXXwwKS1sfDApPT0oKEc/Qz4+PjE6Y1t6Pj4yXXwwKXww
KSl7aWYoRyl7Tz1DPj4+MTtQPUM+Pj4xfWVsc2V7Qz1jW3o+PjJdfDA7Tz1DO1A9Q31kUihuLE88
PDEsMCk7aWYoKGFbb10mMSk9PTApe1E9MTB9ZWxzZXtRPShjW2c+PjJdJi0yKS0xfDB9ZFIobixR
LDApO2lmKChhW29dJjEpPT0wKXtSPXh9ZWxzZXtSPWNbeT4+Ml18MH1jW3A+PjJdPVIrUDtTPVJ9
ZWxzZXtTPWx9Qz1CKzEyfDA7Rz1jW0M+PjJdfDA7VD1CKzE2fDA7aWYoKEd8MCk9PShjW1Q+PjJd
fDApKXtVPWIwW2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1U9Y1tHPj4yXXww
fWlmKChmVShVLHQsUyxwLHMsQSxtLHYscix1KXwwKSE9MCl7TD1TO009STtOPUo7YnJlYWt9Rz1j
W0M+PjJdfDA7aWYoKEd8MCk9PShjW1Q+PjJdfDApKXtUPWNbKGNbQj4+Ml18MCkrNDA+PjJdfDA7
YjBbVCYxMjddKEIpfDA7bD1TO3c9Qjtjb250aW51ZX1lbHNle2NbQz4+Ml09Rys0O2w9Uzt3PUI7
Y29udGludWV9fXc9ZFttXXwwO2lmKCh3JjF8MCk9PTApe1Y9dz4+PjF9ZWxzZXtWPWNbbSs0Pj4y
XXwwfWRve2lmKChWfDApIT0wKXt3PWNbcj4+Ml18MDtpZigody1xfDApPj0xNjApe2JyZWFrfVM9
Y1tzPj4yXXwwO2Nbcj4+Ml09dys0O2Nbdz4+Ml09U319d2hpbGUoMCk7cz1mRihMLGNbcD4+Ml18
MCxqLHQpfDA7Y1trPj4yXT1zO2Nbays0Pj4yXT1LO2Z0KG0sdixjW3I+PjJdfDAsaik7ZG97aWYo
RSl7Vz0wfWVsc2V7cj1jW0IrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW0IrMTY+PjJdfDApKXtYPWIw
W2NbKGNbQj4+Ml18MCkrMzY+PjJdJjEyN10oQil8MH1lbHNle1g9Y1tyPj4yXXwwfWlmKChYfDAp
IT0tMSl7Vz1CO2JyZWFrfWNbaD4+Ml09MDtXPTB9fXdoaWxlKDApO2g9KFd8MCk9PTA7ZG97aWYo
Til7Rj03NzJ9ZWxzZXtCPWNbTSsxMj4+Ml18MDtpZigoQnwwKT09KGNbTSsxNj4+Ml18MCkpe1k9
YjBbY1soY1tNPj4yXXwwKSszNj4+Ml0mMTI3XShNKXwwfWVsc2V7WT1jW0I+PjJdfDB9aWYoKFl8
MCk9PS0xKXtjW2Y+PjJdPTA7Rj03NzI7YnJlYWt9aWYoIShoXihNfDApPT0wKSl7YnJlYWt9Wj1i
fDA7Y1taPj4yXT1XO2RQKG4pO2RQKG0pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChGfDAp
PT03NzIpe2lmKGgpe2JyZWFrfVo9YnwwO2NbWj4+Ml09VztkUChuKTtkUChtKTtpPWU7cmV0dXJu
fX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtaPWJ8MDtjW1o+PjJdPVc7ZFAobik7ZFAobSk7
aT1lO3JldHVybn1mdW5jdGlvbiBmMChiLGUsZixoLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDto
PWh8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0w
LEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAs
Vz0wLFg9MCxZPTAsWj0wLF89MCwkPTA7ZT1pO2k9aSsxNzZ8MDttPWY7Zj1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209aDtoPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2g+
PjJdPWNbbT4+Ml07bT1lKzEyOHwwO249ZSsxMzZ8MDtvPWUrMTQ0fDA7cD1lKzE2MHwwO3E9cDty
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztzPWk7aT1pKzE2MHwwO3Q9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3c9aTtp
PWkrMXwwO2k9aSs3Pj4zPDwzO3g9ZXwwO2YxKG8saix4LG0sbik7ayQocXwwLDAsMTIpO2o9cDtk
UihwLDEwLDApO2lmKChhW3FdJjEpPT0wKXt5PWorMXwwO3o9eTtBPXk7Qj1wKzh8MH1lbHNle3k9
cCs4fDA7ej1jW3k+PjJdfDA7QT1qKzF8MDtCPXl9Y1tyPj4yXT16O3k9c3wwO2NbdD4+Ml09eTtj
W3U+PjJdPTA7YVt2XT0xO2Fbd109Njk7aj1mfDA7Zj1ofDA7aD1wfDA7Qz1wKzR8MDtEPWNbbT4+
Ml18MDttPWNbbj4+Ml18MDtuPXo7ej1jW2o+PjJdfDA7TDk3NTp3aGlsZSgxKXtkb3tpZigoenww
KT09MCl7RT0wfWVsc2V7Rj1jW3orMTI+PjJdfDA7aWYoKEZ8MCk9PShjW3orMTY+PjJdfDApKXtH
PWIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MH1lbHNle0c9Y1tGPj4yXXwwfWlmKChH
fDApIT0tMSl7RT16O2JyZWFrfWNbaj4+Ml09MDtFPTB9fXdoaWxlKDApO0g9KEV8MCk9PTA7Rj1j
W2Y+PjJdfDA7ZG97aWYoKEZ8MCk9PTApe0k9Nzk2fWVsc2V7Sj1jW0YrMTI+PjJdfDA7aWYoKEp8
MCk9PShjW0YrMTY+PjJdfDApKXtLPWIwW2NbKGNbRj4+Ml18MCkrMzY+PjJdJjEyN10oRil8MH1l
bHNle0s9Y1tKPj4yXXwwfWlmKChLfDApPT0tMSl7Y1tmPj4yXT0wO0k9Nzk2O2JyZWFrfWVsc2V7
Sj0oRnwwKT09MDtpZihIXkope0w9RjtNPUo7YnJlYWt9ZWxzZXtOPW47Tz1GO1A9SjticmVhayBM
OTc1fX19fXdoaWxlKDApO2lmKChJfDApPT03OTYpe0k9MDtpZihIKXtOPW47Tz0wO1A9MTticmVh
a31lbHNle0w9MDtNPTF9fUY9ZFtxXXwwO0o9KEYmMXwwKT09MDtpZigoKGNbcj4+Ml18MCktbnww
KT09KChKP0Y+Pj4xOmNbQz4+Ml18MCl8MCkpe2lmKEope1E9Rj4+PjE7Uj1GPj4+MX1lbHNle0Y9
Y1tDPj4yXXwwO1E9RjtSPUZ9ZFIocCxRPDwxLDApO2lmKChhW3FdJjEpPT0wKXtTPTEwfWVsc2V7
Uz0oY1toPj4yXSYtMiktMXwwfWRSKHAsUywwKTtpZigoYVtxXSYxKT09MCl7VD1BfWVsc2V7VD1j
W0I+PjJdfDB9Y1tyPj4yXT1UK1I7VT1UfWVsc2V7VT1ufUY9RSsxMnwwO0o9Y1tGPj4yXXwwO1Y9
RSsxNnwwO2lmKChKfDApPT0oY1tWPj4yXXwwKSl7Vz1iMFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYx
MjddKEUpfDB9ZWxzZXtXPWNbSj4+Ml18MH1pZigoZjIoVyx2LHcsVSxyLEQsbSxvLHksdCx1LHgp
fDApIT0wKXtOPVU7Tz1MO1A9TTticmVha31KPWNbRj4+Ml18MDtpZigoSnwwKT09KGNbVj4+Ml18
MCkpe1Y9Y1soY1tFPj4yXXwwKSs0MD4+Ml18MDtiMFtWJjEyN10oRSl8MDtuPVU7ej1FO2NvbnRp
bnVlfWVsc2V7Y1tGPj4yXT1KKzQ7bj1VO3o9RTtjb250aW51ZX19ej1kW29dfDA7aWYoKHomMXww
KT09MCl7WD16Pj4+MX1lbHNle1g9Y1tvKzQ+PjJdfDB9ZG97aWYoKFh8MCkhPTApe2lmKChhW3Zd
JjEpPT0wKXticmVha316PWNbdD4+Ml18MDtpZigoei1zfDApPj0xNjApe2JyZWFrfVU9Y1t1Pj4y
XXwwO2NbdD4+Ml09eis0O2Nbej4+Ml09VX19d2hpbGUoMCk7Z1tsPj4yXT0rZkkoTixjW3I+PjJd
fDAsayk7ZnQobyx5LGNbdD4+Ml18MCxrKTtkb3tpZihIKXtZPTB9ZWxzZXt0PWNbRSsxMj4+Ml18
MDtpZigodHwwKT09KGNbRSsxNj4+Ml18MCkpe1o9YjBbY1soY1tFPj4yXXwwKSszNj4+Ml0mMTI3
XShFKXwwfWVsc2V7Wj1jW3Q+PjJdfDB9aWYoKFp8MCkhPS0xKXtZPUU7YnJlYWt9Y1tqPj4yXT0w
O1k9MH19d2hpbGUoMCk7aj0oWXwwKT09MDtkb3tpZihQKXtJPTgzOX1lbHNle0U9Y1tPKzEyPj4y
XXwwO2lmKChFfDApPT0oY1tPKzE2Pj4yXXwwKSl7Xz1iMFtjWyhjW08+PjJdfDApKzM2Pj4yXSYx
MjddKE8pfDB9ZWxzZXtfPWNbRT4+Ml18MH1pZigoX3wwKT09LTEpe2NbZj4+Ml09MDtJPTgzOTti
cmVha31pZighKGpeKE98MCk9PTApKXticmVha30kPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7ZFAobyk7
aT1lO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKEl8MCk9PTgzOSl7aWYoail7YnJlYWt9JD1ifDA7
Y1skPj4yXT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Nbaz4+Ml09Y1trPj4y
XXwyOyQ9YnwwO2NbJD4+Ml09WTtkUChwKTtkUChvKTtpPWU7cmV0dXJufWZ1bmN0aW9uIGYxKGEs
YixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7Zz1pO2k9aSs0MHwwO2g9Z3wwO2o9ZysxNnww
O2s9ZyszMnwwO2VqKGssYik7Yj1rfDA7az1jW2I+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtj
W2o+PjJdPTE1Njg4O2Nbais0Pj4yXT0xMjtjW2orOD4+Ml09MDtkVygxNTY4OCxqLDk2KX1qPShj
WzM5MjNdfDApLTF8MDtsPWNbays4Pj4yXXwwO2Rve2lmKChjW2srMTI+PjJdfDApLWw+PjI+Pj4w
Pmo+Pj4wKXttPWNbbCsoajw8Mik+PjJdfDA7aWYoKG18MCk9PTApe2JyZWFrfW49bTtvPWNbKGNb
bT4+Ml18MCkrNDg+PjJdfDA7Y2FbbyYxNV0obiw5NzQ0LDk3NzYsZCl8MDtuPWNbYj4+Ml18MDtp
ZigoY1szODI2XXwwKSE9LTEpe2NbaD4+Ml09MTUzMDQ7Y1toKzQ+PjJdPTEyO2NbaCs4Pj4yXT0w
O2RXKDE1MzA0LGgsOTYpfW89KGNbMzgyN118MCktMXwwO209Y1tuKzg+PjJdfDA7ZG97aWYoKGNb
bisxMj4+Ml18MCktbT4+Mj4+PjA+bz4+PjApe3A9Y1ttKyhvPDwyKT4+Ml18MDtpZigocHwwKT09
MCl7YnJlYWt9cT1wO3I9cDtjW2U+PjJdPWIwW2NbKGNbcj4+Ml18MCkrMTI+PjJdJjEyN10ocSl8
MDtjW2Y+PjJdPWIwW2NbKGNbcj4+Ml18MCkrMTY+PjJdJjEyN10ocSl8MDtiWltjWyhjW3A+PjJd
fDApKzIwPj4yXSYxMjddKGEscSk7cT1jW2I+PjJdfDA7ZHoocSl8MDtpPWc7cmV0dXJufX13aGls
ZSgwKTtvPWJPKDQpfDA7a3Eobyk7Ymwob3wwLDgxNzYsMTM0KX19d2hpbGUoMCk7Zz1iTyg0KXww
O2txKGcpO2JsKGd8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZjIoYixlLGYsZyxoLGksaixrLGwsbSxu
LG8pe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2k9aXwwO2o9anwwO2s9a3wwO2w9bHww
O209bXwwO249bnwwO289b3wwO3ZhciBwPTAscT0wLHI9MCxzPTAsdD0wO2lmKChifDApPT0oaXww
KSl7aWYoKGFbZV0mMSk9PTApe3A9LTE7cmV0dXJuIHB8MH1hW2VdPTA7aT1jW2g+PjJdfDA7Y1to
Pj4yXT1pKzE7YVtpXT00NjtpPWRba118MDtpZigoaSYxfDApPT0wKXtxPWk+Pj4xfWVsc2V7cT1j
W2srND4+Ml18MH1pZigocXwwKT09MCl7cD0wO3JldHVybiBwfDB9cT1jW20+PjJdfDA7aWYoKHEt
bHwwKT49MTYwKXtwPTA7cmV0dXJuIHB8MH1pPWNbbj4+Ml18MDtjW20+PjJdPXErNDtjW3E+PjJd
PWk7cD0wO3JldHVybiBwfDB9ZG97aWYoKGJ8MCk9PShqfDApKXtpPWRba118MDtpZigoaSYxfDAp
PT0wKXtyPWk+Pj4xfWVsc2V7cj1jW2srND4+Ml18MH1pZigocnwwKT09MCl7YnJlYWt9aWYoKGFb
ZV0mMSk9PTApe3A9LTE7cmV0dXJuIHB8MH1pPWNbbT4+Ml18MDtpZigoaS1sfDApPj0xNjApe3A9
MDtyZXR1cm4gcHwwfXE9Y1tuPj4yXXwwO2NbbT4+Ml09aSs0O2NbaT4+Ml09cTtjW24+PjJdPTA7
cD0wO3JldHVybiBwfDB9fXdoaWxlKDApO3I9bysxMjh8MDtqPW87d2hpbGUoMSl7aWYoKGp8MCk9
PShyfDApKXtzPXI7YnJlYWt9aWYoKGNbaj4+Ml18MCk9PShifDApKXtzPWo7YnJlYWt9ZWxzZXtq
PWorNHwwfX1qPXMtb3wwO289aj4+MjtpZigoanwwKT4xMjQpe3A9LTE7cmV0dXJuIHB8MH1zPWFb
OTc0NCtvfDBdfDA7TDExMTU6ZG97c3dpdGNoKG98MCl7Y2FzZSAyNTpjYXNlIDI0OntiPWNbaD4+
Ml18MDtkb3tpZigoYnwwKSE9KGd8MCkpe2lmKChhW2ItMXwwXSY5NXwwKT09KGFbZl0mMTI3fDAp
KXticmVha31lbHNle3A9LTF9cmV0dXJuIHB8MH19d2hpbGUoMCk7Y1toPj4yXT1iKzE7YVtiXT1z
O3A9MDtyZXR1cm4gcHwwfTtjYXNlIDIyOmNhc2UgMjM6e2FbZl09ODA7YnJlYWt9O2RlZmF1bHQ6
e3I9YVtmXXwwO2lmKChzJjk1fDApIT0ocjw8MjQ+PjI0fDApKXticmVhayBMMTExNX1hW2ZdPXJ8
LTEyODtpZigoYVtlXSYxKT09MCl7YnJlYWsgTDExMTV9YVtlXT0wO3I9ZFtrXXwwO2lmKChyJjF8
MCk9PTApe3Q9cj4+PjF9ZWxzZXt0PWNbays0Pj4yXXwwfWlmKCh0fDApPT0wKXticmVhayBMMTEx
NX1yPWNbbT4+Ml18MDtpZigoci1sfDApPj0xNjApe2JyZWFrIEwxMTE1fXE9Y1tuPj4yXXwwO2Nb
bT4+Ml09cis0O2Nbcj4+Ml09cX19fXdoaWxlKDApO209Y1toPj4yXXwwO2NbaD4+Ml09bSsxO2Fb
bV09cztpZigoanwwKT44NCl7cD0wO3JldHVybiBwfDB9Y1tuPj4yXT0oY1tuPj4yXXwwKSsxO3A9
MDtyZXR1cm4gcHwwfWZ1bmN0aW9uIGYzKGIsZSxmLGcsaixrLGwpe2I9YnwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9
MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MDtlPWk7aT1pKzE3NnwwO209ZjtmPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2Y+PjJdPWNbbT4+Ml07bT1nO2c9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
Zz4+Ml09Y1ttPj4yXTttPWUrMTI4fDA7bj1lKzEzNnwwO289ZSsxNDR8MDtwPWUrMTYwfDA7cT1w
O3I9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3M9aTtpPWkrMTYwfDA7dD1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7dz1p
O2k9aSsxfDA7aT1pKzc+PjM8PDM7eD1lfDA7ZjEobyxqLHgsbSxuKTtrJChxfDAsMCwxMik7aj1w
O2RSKHAsMTAsMCk7aWYoKGFbcV0mMSk9PTApe3k9aisxfDA7ej15O0E9eTtCPXArOHwwfWVsc2V7
eT1wKzh8MDt6PWNbeT4+Ml18MDtBPWorMXwwO0I9eX1jW3I+PjJdPXo7eT1zfDA7Y1t0Pj4yXT15
O2NbdT4+Ml09MDthW3ZdPTE7YVt3XT02OTtqPWZ8MDtmPWd8MDtnPXB8MDtDPXArNHwwO0Q9Y1tt
Pj4yXXwwO209Y1tuPj4yXXwwO249ejt6PWNbaj4+Ml18MDtMMTE0Mzp3aGlsZSgxKXtkb3tpZigo
enwwKT09MCl7RT0wfWVsc2V7Rj1jW3orMTI+PjJdfDA7aWYoKEZ8MCk9PShjW3orMTY+PjJdfDAp
KXtHPWIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10oeil8MH1lbHNle0c9Y1tGPj4yXXwwfWlm
KChHfDApIT0tMSl7RT16O2JyZWFrfWNbaj4+Ml09MDtFPTB9fXdoaWxlKDApO0g9KEV8MCk9PTA7
Rj1jW2Y+PjJdfDA7ZG97aWYoKEZ8MCk9PTApe0k9OTI5fWVsc2V7Sj1jW0YrMTI+PjJdfDA7aWYo
KEp8MCk9PShjW0YrMTY+PjJdfDApKXtLPWIwW2NbKGNbRj4+Ml18MCkrMzY+PjJdJjEyN10oRil8
MH1lbHNle0s9Y1tKPj4yXXwwfWlmKChLfDApPT0tMSl7Y1tmPj4yXT0wO0k9OTI5O2JyZWFrfWVs
c2V7Sj0oRnwwKT09MDtpZihIXkope0w9RjtNPUo7YnJlYWt9ZWxzZXtOPW47Tz1GO1A9SjticmVh
ayBMMTE0M319fX13aGlsZSgwKTtpZigoSXwwKT09OTI5KXtJPTA7aWYoSCl7Tj1uO089MDtQPTE7
YnJlYWt9ZWxzZXtMPTA7TT0xfX1GPWRbcV18MDtKPShGJjF8MCk9PTA7aWYoKChjW3I+PjJdfDAp
LW58MCk9PSgoSj9GPj4+MTpjW0M+PjJdfDApfDApKXtpZihKKXtRPUY+Pj4xO1I9Rj4+PjF9ZWxz
ZXtGPWNbQz4+Ml18MDtRPUY7Uj1GfWRSKHAsUTw8MSwwKTtpZigoYVtxXSYxKT09MCl7Uz0xMH1l
bHNle1M9KGNbZz4+Ml0mLTIpLTF8MH1kUihwLFMsMCk7aWYoKGFbcV0mMSk9PTApe1Q9QX1lbHNl
e1Q9Y1tCPj4yXXwwfWNbcj4+Ml09VCtSO1U9VH1lbHNle1U9bn1GPUUrMTJ8MDtKPWNbRj4+Ml18
MDtWPUUrMTZ8MDtpZigoSnwwKT09KGNbVj4+Ml18MCkpe1c9YjBbY1soY1tFPj4yXXwwKSszNj4+
Ml0mMTI3XShFKXwwfWVsc2V7Vz1jW0o+PjJdfDB9aWYoKGYyKFcsdix3LFUscixELG0sbyx5LHQs
dSx4KXwwKSE9MCl7Tj1VO089TDtQPU07YnJlYWt9Sj1jW0Y+PjJdfDA7aWYoKEp8MCk9PShjW1Y+
PjJdfDApKXtWPWNbKGNbRT4+Ml18MCkrNDA+PjJdfDA7YjBbViYxMjddKEUpfDA7bj1VO3o9RTtj
b250aW51ZX1lbHNle2NbRj4+Ml09Sis0O249VTt6PUU7Y29udGludWV9fXo9ZFtvXXwwO2lmKCh6
JjF8MCk9PTApe1g9ej4+PjF9ZWxzZXtYPWNbbys0Pj4yXXwwfWRve2lmKChYfDApIT0wKXtpZigo
YVt2XSYxKT09MCl7YnJlYWt9ej1jW3Q+PjJdfDA7aWYoKHotc3wwKT49MTYwKXticmVha31VPWNb
dT4+Ml18MDtjW3Q+PjJdPXorNDtjW3o+PjJdPVV9fXdoaWxlKDApO2hbbD4+M109K2ZMKE4sY1ty
Pj4yXXwwLGspO2Z0KG8seSxjW3Q+PjJdfDAsayk7ZG97aWYoSCl7WT0wfWVsc2V7dD1jW0UrMTI+
PjJdfDA7aWYoKHR8MCk9PShjW0UrMTY+PjJdfDApKXtaPWIwW2NbKGNbRT4+Ml18MCkrMzY+PjJd
JjEyN10oRSl8MH1lbHNle1o9Y1t0Pj4yXXwwfWlmKChafDApIT0tMSl7WT1FO2JyZWFrfWNbaj4+
Ml09MDtZPTB9fXdoaWxlKDApO2o9KFl8MCk9PTA7ZG97aWYoUCl7ST05NzJ9ZWxzZXtFPWNbTysx
Mj4+Ml18MDtpZigoRXwwKT09KGNbTysxNj4+Ml18MCkpe189YjBbY1soY1tPPj4yXXwwKSszNj4+
Ml0mMTI3XShPKXwwfWVsc2V7Xz1jW0U+PjJdfDB9aWYoKF98MCk9PS0xKXtjW2Y+PjJdPTA7ST05
NzI7YnJlYWt9aWYoIShqXihPfDApPT0wKSl7YnJlYWt9JD1ifDA7Y1skPj4yXT1ZO2RQKHApO2RQ
KG8pO2k9ZTtyZXR1cm59fXdoaWxlKDApO2Rve2lmKChJfDApPT05NzIpe2lmKGope2JyZWFrfSQ9
YnwwO2NbJD4+Ml09WTtkUChwKTtkUChvKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2s+PjJdPWNb
az4+Ml18MjskPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7ZFAobyk7aT1lO3JldHVybn1mdW5jdGlvbiBm
NChiLGUsZixnLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPWp8MDtrPWt8MDtsPWx8
MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0w
LHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAs
Tj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwk
PTA7ZT1pO2k9aSsxNzZ8MDttPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+
PjJdO209ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbT4+Ml07bT1lKzEyOHww
O249ZSsxMzZ8MDtvPWUrMTQ0fDA7cD1lKzE2MHwwO3E9cDtyPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztzPWk7aT1pKzE2MHwwO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3U9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO3Y9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3c9aTtpPWkrMXwwO2k9aSs3Pj4zPDwzO3g9
ZXwwO2YxKG8saix4LG0sbik7ayQocXwwLDAsMTIpO2o9cDtkUihwLDEwLDApO2lmKChhW3FdJjEp
PT0wKXt5PWorMXwwO3o9eTtBPXk7Qj1wKzh8MH1lbHNle3k9cCs4fDA7ej1jW3k+PjJdfDA7QT1q
KzF8MDtCPXl9Y1tyPj4yXT16O3k9c3wwO2NbdD4+Ml09eTtjW3U+PjJdPTA7YVt2XT0xO2Fbd109
Njk7aj1mfDA7Zj1nfDA7Zz1wfDA7Qz1wKzR8MDtEPWNbbT4+Ml18MDttPWNbbj4+Ml18MDtuPXo7
ej1jW2o+PjJdfDA7TDEyMjg6d2hpbGUoMSl7ZG97aWYoKHp8MCk9PTApe0U9MH1lbHNle0Y9Y1t6
KzEyPj4yXXwwO2lmKChGfDApPT0oY1t6KzE2Pj4yXXwwKSl7Rz1iMFtjWyhjW3o+PjJdfDApKzM2
Pj4yXSYxMjddKHopfDB9ZWxzZXtHPWNbRj4+Ml18MH1pZigoR3wwKSE9LTEpe0U9ejticmVha31j
W2o+PjJdPTA7RT0wfX13aGlsZSgwKTtIPShFfDApPT0wO0Y9Y1tmPj4yXXwwO2Rve2lmKChGfDAp
PT0wKXtJPTk5Nn1lbHNle0o9Y1tGKzEyPj4yXXwwO2lmKChKfDApPT0oY1tGKzE2Pj4yXXwwKSl7
Sz1iMFtjWyhjW0Y+PjJdfDApKzM2Pj4yXSYxMjddKEYpfDB9ZWxzZXtLPWNbSj4+Ml18MH1pZigo
S3wwKT09LTEpe2NbZj4+Ml09MDtJPTk5NjticmVha31lbHNle0o9KEZ8MCk9PTA7aWYoSF5KKXtM
PUY7TT1KO2JyZWFrfWVsc2V7Tj1uO089RjtQPUo7YnJlYWsgTDEyMjh9fX19d2hpbGUoMCk7aWYo
KEl8MCk9PTk5Nil7ST0wO2lmKEgpe049bjtPPTA7UD0xO2JyZWFrfWVsc2V7TD0wO009MX19Rj1k
W3FdfDA7Sj0oRiYxfDApPT0wO2lmKCgoY1tyPj4yXXwwKS1ufDApPT0oKEo/Rj4+PjE6Y1tDPj4y
XXwwKXwwKSl7aWYoSil7UT1GPj4+MTtSPUY+Pj4xfWVsc2V7Rj1jW0M+PjJdfDA7UT1GO1I9Rn1k
UihwLFE8PDEsMCk7aWYoKGFbcV0mMSk9PTApe1M9MTB9ZWxzZXtTPShjW2c+PjJdJi0yKS0xfDB9
ZFIocCxTLDApO2lmKChhW3FdJjEpPT0wKXtUPUF9ZWxzZXtUPWNbQj4+Ml18MH1jW3I+PjJdPVQr
UjtVPVR9ZWxzZXtVPW59Rj1FKzEyfDA7Sj1jW0Y+PjJdfDA7Vj1FKzE2fDA7aWYoKEp8MCk9PShj
W1Y+PjJdfDApKXtXPWIwW2NbKGNbRT4+Ml18MCkrMzY+PjJdJjEyN10oRSl8MH1lbHNle1c9Y1tK
Pj4yXXwwfWlmKChmMihXLHYsdyxVLHIsRCxtLG8seSx0LHUseCl8MCkhPTApe049VTtPPUw7UD1N
O2JyZWFrfUo9Y1tGPj4yXXwwO2lmKChKfDApPT0oY1tWPj4yXXwwKSl7Vj1jWyhjW0U+PjJdfDAp
KzQwPj4yXXwwO2IwW1YmMTI3XShFKXwwO249VTt6PUU7Y29udGludWV9ZWxzZXtjW0Y+PjJdPUor
NDtuPVU7ej1FO2NvbnRpbnVlfX16PWRbb118MDtpZigoeiYxfDApPT0wKXtYPXo+Pj4xfWVsc2V7
WD1jW28rND4+Ml18MH1kb3tpZigoWHwwKSE9MCl7aWYoKGFbdl0mMSk9PTApe2JyZWFrfXo9Y1t0
Pj4yXXwwO2lmKCh6LXN8MCk+PTE2MCl7YnJlYWt9VT1jW3U+PjJdfDA7Y1t0Pj4yXT16KzQ7Y1t6
Pj4yXT1VfX13aGlsZSgwKTtoW2w+PjNdPStmTihOLGNbcj4+Ml18MCxrKTtmdChvLHksY1t0Pj4y
XXwwLGspO2Rve2lmKEgpe1k9MH1lbHNle3Q9Y1tFKzEyPj4yXXwwO2lmKCh0fDApPT0oY1tFKzE2
Pj4yXXwwKSl7Wj1iMFtjWyhjW0U+PjJdfDApKzM2Pj4yXSYxMjddKEUpfDB9ZWxzZXtaPWNbdD4+
Ml18MH1pZigoWnwwKSE9LTEpe1k9RTticmVha31jW2o+PjJdPTA7WT0wfX13aGlsZSgwKTtqPShZ
fDApPT0wO2Rve2lmKFApe0k9MTAzOX1lbHNle0U9Y1tPKzEyPj4yXXwwO2lmKChFfDApPT0oY1tP
KzE2Pj4yXXwwKSl7Xz1iMFtjWyhjW08+PjJdfDApKzM2Pj4yXSYxMjddKE8pfDB9ZWxzZXtfPWNb
RT4+Ml18MH1pZigoX3wwKT09LTEpe2NbZj4+Ml09MDtJPTEwMzk7YnJlYWt9aWYoIShqXihPfDAp
PT0wKSl7YnJlYWt9JD1ifDA7Y1skPj4yXT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59fXdoaWxl
KDApO2Rve2lmKChJfDApPT0xMDM5KXtpZihqKXticmVha30kPWJ8MDtjWyQ+PjJdPVk7ZFAocCk7
ZFAobyk7aT1lO3JldHVybn19d2hpbGUoMCk7Y1trPj4yXT1jW2s+PjJdfDI7JD1ifDA7Y1skPj4y
XT1ZO2RQKHApO2RQKG8pO2k9ZTtyZXR1cm59ZnVuY3Rpb24gZjUoYSl7YT1hfDA7ZGUoYXwwKTtr
UyhhKTtyZXR1cm59ZnVuY3Rpb24gZjYoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24g
ZjcoYixlLGYsZyxoLGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1r
fDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9
MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0w
LE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTA7
ZT1pO2k9aSsxMzZ8MDtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJd
O2w9ZztnPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbD4+Ml07bD1lfDA7bT1lKzE2
fDA7bj1lKzEyMHwwO289aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3A9aTtpPWkrMTJ8MDtpPWkrNz4+
Mzw8MztxPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztyPWk7aT1pKzE2MHwwO3M9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO3Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2skKG58MCwwLDEyKTt1PXA7ZWoobyxo
KTtoPW98MDtvPWNbaD4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbD4+Ml09MTU2ODg7Y1ts
KzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njg4LGwsOTYpfWw9KGNbMzkyM118MCktMXwwO3Y9
Y1tvKzg+PjJdfDA7ZG97aWYoKGNbbysxMj4+Ml18MCktdj4+Mj4+PjA+bD4+PjApe3c9Y1t2Kyhs
PDwyKT4+Ml18MDtpZigod3wwKT09MCl7YnJlYWt9eD13O3k9bXwwO3o9Y1soY1t3Pj4yXXwwKSs0
OD4+Ml18MDtjYVt6JjE1XSh4LDk3NDQsOTc3MCx5KXwwO3g9Y1toPj4yXXwwO2R6KHgpfDA7ayQo
dXwwLDAsMTIpO3g9cDtkUihwLDEwLDApO2lmKChhW3VdJjEpPT0wKXt6PXgrMXwwO0E9ejtCPXo7
Qz1wKzh8MH1lbHNle3o9cCs4fDA7QT1jW3o+PjJdfDA7Qj14KzF8MDtDPXp9Y1txPj4yXT1BO3o9
cnwwO2Nbcz4+Ml09ejtjW3Q+PjJdPTA7eD1mfDA7dz1nfDA7RD1wfDA7RT1wKzR8MDtGPUE7Rz1j
W3g+PjJdfDA7TDEzMjM6d2hpbGUoMSl7ZG97aWYoKEd8MCk9PTApe0g9MH1lbHNle0k9Y1tHKzEy
Pj4yXXwwO2lmKChJfDApPT0oY1tHKzE2Pj4yXXwwKSl7Sj1iMFtjWyhjW0c+PjJdfDApKzM2Pj4y
XSYxMjddKEcpfDB9ZWxzZXtKPWNbST4+Ml18MH1pZigoSnwwKSE9LTEpe0g9RzticmVha31jW3g+
PjJdPTA7SD0wfX13aGlsZSgwKTtJPShIfDApPT0wO0s9Y1t3Pj4yXXwwO2Rve2lmKChLfDApPT0w
KXtMPTEwNzN9ZWxzZXtNPWNbSysxMj4+Ml18MDtpZigoTXwwKT09KGNbSysxNj4+Ml18MCkpe049
YjBbY1soY1tLPj4yXXwwKSszNj4+Ml0mMTI3XShLKXwwfWVsc2V7Tj1jW00+PjJdfDB9aWYoKE58
MCk9PS0xKXtjW3c+PjJdPTA7TD0xMDczO2JyZWFrfWVsc2V7aWYoSV4oS3wwKT09MCl7YnJlYWt9
ZWxzZXtPPUY7YnJlYWsgTDEzMjN9fX19d2hpbGUoMCk7aWYoKEx8MCk9PTEwNzMpe0w9MDtpZihJ
KXtPPUY7YnJlYWt9fUs9ZFt1XXwwO009KEsmMXwwKT09MDtpZigoKGNbcT4+Ml18MCktRnwwKT09
KChNP0s+Pj4xOmNbRT4+Ml18MCl8MCkpe2lmKE0pe1A9Sz4+PjE7UT1LPj4+MX1lbHNle0s9Y1tF
Pj4yXXwwO1A9SztRPUt9ZFIocCxQPDwxLDApO2lmKChhW3VdJjEpPT0wKXtSPTEwfWVsc2V7Uj0o
Y1tEPj4yXSYtMiktMXwwfWRSKHAsUiwwKTtpZigoYVt1XSYxKT09MCl7Uz1CfWVsc2V7Uz1jW0M+
PjJdfDB9Y1txPj4yXT1TK1E7VD1TfWVsc2V7VD1GfUs9SCsxMnwwO009Y1tLPj4yXXwwO1U9SCsx
NnwwO2lmKChNfDApPT0oY1tVPj4yXXwwKSl7Vj1iMFtjWyhjW0g+PjJdfDApKzM2Pj4yXSYxMjdd
KEgpfDB9ZWxzZXtWPWNbTT4+Ml18MH1pZigoZlUoViwxNixULHEsdCwwLG4seixzLHkpfDApIT0w
KXtPPVQ7YnJlYWt9TT1jW0s+PjJdfDA7aWYoKE18MCk9PShjW1U+PjJdfDApKXtVPWNbKGNbSD4+
Ml18MCkrNDA+PjJdfDA7YjBbVSYxMjddKEgpfDA7Rj1UO0c9SDtjb250aW51ZX1lbHNle2NbSz4+
Ml09TSs0O0Y9VDtHPUg7Y29udGludWV9fWFbTyszfDBdPTA7ZG97aWYoKGFbMTYyNjRdfDApPT0w
KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGls
ZSgwKTtHPWZSKE8sY1syOTU4XXwwLDEzMjAsKEY9aSxpPWkrOHwwLGNbRj4+Ml09ayxGKXwwKXww
O2k9RjtpZigoR3wwKSE9MSl7Y1tqPj4yXT00fUc9Y1t4Pj4yXXwwO2Rve2lmKChHfDApPT0wKXtX
PTB9ZWxzZXtGPWNbRysxMj4+Ml18MDtpZigoRnwwKT09KGNbRysxNj4+Ml18MCkpe1g9YjBbY1so
Y1tHPj4yXXwwKSszNj4+Ml0mMTI3XShHKXwwfWVsc2V7WD1jW0Y+PjJdfDB9aWYoKFh8MCkhPS0x
KXtXPUc7YnJlYWt9Y1t4Pj4yXT0wO1c9MH19d2hpbGUoMCk7eD0oV3wwKT09MDtHPWNbdz4+Ml18
MDtkb3tpZigoR3wwKT09MCl7TD0xMTE4fWVsc2V7Rj1jW0crMTI+PjJdfDA7aWYoKEZ8MCk9PShj
W0crMTY+PjJdfDApKXtZPWIwW2NbKGNbRz4+Ml18MCkrMzY+PjJdJjEyN10oRyl8MH1lbHNle1k9
Y1tGPj4yXXwwfWlmKChZfDApPT0tMSl7Y1t3Pj4yXT0wO0w9MTExODticmVha31pZighKHheKEd8
MCk9PTApKXticmVha31aPWJ8MDtjW1o+PjJdPVc7ZFAocCk7ZFAobik7aT1lO3JldHVybn19d2hp
bGUoMCk7ZG97aWYoKEx8MCk9PTExMTgpe2lmKHgpe2JyZWFrfVo9YnwwO2NbWj4+Ml09VztkUChw
KTtkUChuKTtpPWU7cmV0dXJufX13aGlsZSgwKTtjW2o+PjJdPWNbaj4+Ml18MjtaPWJ8MDtjW1o+
PjJdPVc7ZFAocCk7ZFAobik7aT1lO3JldHVybn19d2hpbGUoMCk7ZT1iTyg0KXwwO2txKGUpO2Js
KGV8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZjgoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtkPWk7aT1pKzgwfDA7aj1lO2U9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZT4+Ml09Y1tqPj4yXTtqPWR8MDtrPWQrOHwwO2w9ZCsyNHwwO209ZCs0OHww
O249ZCs1NnwwO289ZCs2NHwwO3A9ZCs3MnwwO3E9anwwO2FbcV09YVsyMzg0XXwwO2FbcSsxfDBd
PWFbMjM4NXwwXXwwO2FbcSsyfDBdPWFbMjM4NnwwXXwwO2FbcSszfDBdPWFbMjM4N3wwXXwwO2Fb
cSs0fDBdPWFbMjM4OHwwXXwwO2FbcSs1fDBdPWFbMjM4OXwwXXwwO3I9aisxfDA7cz1mKzR8MDt0
PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1PXJ9ZWxzZXthW3JdPTQzO3U9aisyfDB9aWYo
KHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2XT0xMDg7dT12KzF8MDtM
MTQxMDpkb3tzd2l0Y2godCY3NHwwKXtjYXNlIDY0OnthW3VdPTExMTticmVha307Y2FzZSA4Ontp
ZigodCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7YnJlYWsgTDE0MTB9ZWxzZXthW3VdPTg4O2JyZWFr
IEwxNDEwfWJyZWFrfTtkZWZhdWx0OnthW3VdPTEwMH19fXdoaWxlKDApO3U9a3wwO2Rve2lmKChh
WzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEz
NDQsMCl8MH19d2hpbGUoMCk7dD1nYih1LDEyLGNbMjk1OF18MCxxLChxPWksaT1pKzh8MCxjW3E+
PjJdPWgscSl8MCl8MDtpPXE7cT1rK3R8MDtMMTQyMzpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8MCl7
Y2FzZSAzMjp7dz1xO2JyZWFrfTtjYXNlIDE2OntoPWFbdV18MDtzd2l0Y2goaDw8MjQ+PjI0KXtj
YXNlIDQ1OmNhc2UgNDM6e3c9aysxfDA7YnJlYWsgTDE0MjM7YnJlYWt9O2RlZmF1bHQ6e319aWYo
ISgodHwwKT4xJmg8PDI0Pj4yND09NDgpKXt4PTExNDc7YnJlYWsgTDE0MjN9c3dpdGNoKGFbaysx
fDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PTExNDc7YnJlYWsgTDE0
MjN9fXc9aysyfDA7YnJlYWt9O2RlZmF1bHQ6e3g9MTE0N319fXdoaWxlKDApO2lmKCh4fDApPT0x
MTQ3KXt3PXV9eD1sfDA7ZWoobyxmKTtnYyh1LHcscSx4LG0sbixvKTtkeihjW28+PjJdfDApfDA7
Y1twPj4yXT1jW2U+PjJdO2Y5KGIscCx4LGNbbT4+Ml18MCxjW24+PjJdfDAsZixnKTtpPWQ7cmV0
dXJufWZ1bmN0aW9uIGY5KGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wO2s9aTtp
PWkrMTZ8MDtsPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2w+PjJdO2w9a3ww
O209ZHwwO2Q9Y1ttPj4yXXwwO2lmKChkfDApPT0wKXtjW2I+PjJdPTA7aT1rO3JldHVybn1uPWc7
Zz1lO289bi1nfDA7cD1oKzEyfDA7aD1jW3A+PjJdfDA7cT0oaHwwKT4ob3wwKT9oLW98MDowO289
ZjtoPW8tZ3wwO2Rve2lmKChofDApPjApe2lmKChiMVtjWyhjW2Q+PjJdfDApKzQ4Pj4yXSY2M10o
ZCxlLGgpfDApPT0oaHwwKSl7YnJlYWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtpPWs7cmV0dXJufX13
aGlsZSgwKTtkb3tpZigocXwwKT4wKXtkXyhsLHEsaik7aWYoKGFbbF0mMSk9PTApe3I9bCsxfDB9
ZWxzZXtyPWNbbCs4Pj4yXXwwfWlmKChiMVtjWyhjW2Q+PjJdfDApKzQ4Pj4yXSY2M10oZCxyLHEp
fDApPT0ocXwwKSl7ZFAobCk7YnJlYWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtkUChsKTtpPWs7cmV0
dXJufX13aGlsZSgwKTtsPW4tb3wwO2Rve2lmKChsfDApPjApe2lmKChiMVtjWyhjW2Q+PjJdfDAp
KzQ4Pj4yXSY2M10oZCxmLGwpfDApPT0obHwwKSl7YnJlYWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtp
PWs7cmV0dXJufX13aGlsZSgwKTtjW3A+PjJdPTA7Y1tiPj4yXT1kO2k9aztyZXR1cm59ZnVuY3Rp
b24gZ2EoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3Zh
ciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0w
LHg9MCx5PTA7aj1pO2k9aSs0OHwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJd
PWNbaz4+Ml07az1qfDA7bD1qKzE2fDA7bT1qKzI0fDA7bj1qKzMyfDA7aWYoKGNbZis0Pj4yXSYx
fDApPT0wKXtvPWNbKGNbZD4+Ml18MCkrMjQ+PjJdfDA7Y1tsPj4yXT1jW2U+PjJdO2I5W28mMzFd
KGIsZCxsLGYsZyxoJjEpO2k9ajtyZXR1cm59ZWoobSxmKTtmPW18MDttPWNbZj4+Ml18MDtpZigo
Y1szODI4XXwwKSE9LTEpe2Nbaz4+Ml09MTUzMTI7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RX
KDE1MzEyLGssOTYpfWs9KGNbMzgyOV18MCktMXwwO2c9Y1ttKzg+PjJdfDA7ZG97aWYoKGNbbSsx
Mj4+Ml18MCktZz4+Mj4+PjA+az4+PjApe2w9Y1tnKyhrPDwyKT4+Ml18MDtpZigobHwwKT09MCl7
YnJlYWt9ZD1sO289Y1tmPj4yXXwwO2R6KG8pfDA7bz1jW2w+PjJdfDA7aWYoaCl7YlpbY1tvKzI0
Pj4yXSYxMjddKG4sZCl9ZWxzZXtiWltjW28rMjg+PjJdJjEyN10obixkKX1kPW47bz1uO2w9YVtv
XXwwO2lmKChsJjEpPT0wKXtwPWQrMXwwO3E9cDtyPXA7cz1uKzh8MH1lbHNle3A9bis4fDA7cT1j
W3A+PjJdfDA7cj1kKzF8MDtzPXB9cD1lfDA7ZD1uKzR8MDt0PXE7dT1sO3doaWxlKDEpe2lmKCh1
JjEpPT0wKXt2PXJ9ZWxzZXt2PWNbcz4+Ml18MH1sPXUmMjU1O2lmKCh0fDApPT0odisoKGwmMXww
KT09MD9sPj4+MTpjW2Q+PjJdfDApfDApKXticmVha31sPWFbdF18MDt3PWNbcD4+Ml18MDtkb3tp
Zigod3wwKSE9MCl7eD13KzI0fDA7eT1jW3g+PjJdfDA7aWYoKHl8MCkhPShjW3crMjg+PjJdfDAp
KXtjW3g+PjJdPXkrMTthW3ldPWw7YnJlYWt9aWYoKGJfW2NbKGNbdz4+Ml18MCkrNTI+PjJdJjMx
XSh3LGwmMjU1KXwwKSE9LTEpe2JyZWFrfWNbcD4+Ml09MH19d2hpbGUoMCk7dD10KzF8MDt1PWFb
b118MH1jW2I+PjJdPWNbcD4+Ml07ZFAobik7aT1qO3JldHVybn19d2hpbGUoMCk7aj1iTyg0KXww
O2txKGopO2JsKGp8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ2IoYSxiLGQsZSxmKXthPWF8MDtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTA7Zz1pO2k9aSsxNnwwO2g9Z3wwO2o9
aDtjW2o+PjJdPWY7Y1tqKzQ+PjJdPTA7aj1iQihkfDApfDA7ZD1iQyhhfDAsYnwwLGV8MCxofDAp
fDA7aWYoKGp8MCk9PTApe2k9ZztyZXR1cm4gZHwwfWJCKGp8MCl8MDtpPWc7cmV0dXJuIGR8MH1m
dW5jdGlvbiBnYyhiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtq
PWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0w
LEs9MCxMPTA7bD1pO2k9aSs0OHwwO209bHwwO249bCsxNnwwO289bCszMnwwO3A9a3wwO2s9Y1tw
Pj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tuPj4yXT0xNTY5NjtjW24rND4+Ml09MTI7Y1tu
Kzg+PjJdPTA7ZFcoMTU2OTYsbiw5Nil9bj0oY1szOTI1XXwwKS0xfDA7cT1jW2srOD4+Ml18MDtp
ZigoY1trKzEyPj4yXXwwKS1xPj4yPj4+MDw9bj4+PjApe3I9Yk8oNCl8MDtzPXI7a3Eocyk7Ymwo
cnwwLDgxNzYsMTM0KX1rPWNbcSsobjw8Mik+PjJdfDA7aWYoKGt8MCk9PTApe3I9Yk8oNCl8MDtz
PXI7a3Eocyk7YmwocnwwLDgxNzYsMTM0KX1yPWs7cz1jW3A+PjJdfDA7aWYoKGNbMzgyOF18MCkh
PS0xKXtjW20+PjJdPTE1MzEyO2NbbSs0Pj4yXT0xMjtjW20rOD4+Ml09MDtkVygxNTMxMixtLDk2
KX1tPShjWzM4MjldfDApLTF8MDtwPWNbcys4Pj4yXXwwO2lmKChjW3MrMTI+PjJdfDApLXA+PjI+
Pj4wPD1tPj4+MCl7dD1iTyg0KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3NiwxMzQpfXM9Y1twKyht
PDwyKT4+Ml18MDtpZigoc3wwKT09MCl7dD1iTyg0KXwwO3U9dDtrcSh1KTtibCh0fDAsODE3Niwx
MzQpfXQ9cztiWltjWyhjW3M+PjJdfDApKzIwPj4yXSYxMjddKG8sdCk7dT1vO209bztwPWRbbV18
MDtpZigocCYxfDApPT0wKXt2PXA+Pj4xfWVsc2V7dj1jW28rND4+Ml18MH1kb3tpZigodnwwKT09
MCl7cD1jWyhjW2s+PjJdfDApKzMyPj4yXXwwO2NhW3AmMTVdKHIsYixmLGcpfDA7Y1tqPj4yXT1n
KyhmLWIpfWVsc2V7Y1tqPj4yXT1nO3A9YVtiXXwwO3N3aXRjaChwPDwyND4+MjQpe2Nhc2UgNDU6
Y2FzZSA0Mzp7bj1iX1tjWyhjW2s+PjJdfDApKzI4Pj4yXSYzMV0ocixwKXwwO3A9Y1tqPj4yXXww
O2Nbaj4+Ml09cCsxO2FbcF09bjt3PWIrMXwwO2JyZWFrfTtkZWZhdWx0Ont3PWJ9fUwxNTMzOmRv
e2lmKChmLXd8MCk+MSl7aWYoKGFbd118MCkhPTQ4KXt4PXc7YnJlYWt9bj13KzF8MDtzd2l0Y2go
YVtuXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVsdDp7eD13O2JyZWFrIEwxNTMz
fX1wPWs7cT1iX1tjWyhjW3A+PjJdfDApKzI4Pj4yXSYzMV0ociw0OCl8MDt5PWNbaj4+Ml18MDtj
W2o+PjJdPXkrMTthW3ldPXE7cT1iX1tjWyhjW3A+PjJdfDApKzI4Pj4yXSYzMV0ocixhW25dfDAp
fDA7bj1jW2o+PjJdfDA7Y1tqPj4yXT1uKzE7YVtuXT1xO3g9dysyfDB9ZWxzZXt4PXd9fXdoaWxl
KDApO2Rve2lmKCh4fDApIT0oZnwwKSl7cT1mLTF8MDtpZih4Pj4+MDxxPj4+MCl7ej14O0E9cX1l
bHNle2JyZWFrfWRve3E9YVt6XXwwO2Fbel09YVtBXXwwO2FbQV09cTt6PXorMXwwO0E9QS0xfDA7
fXdoaWxlKHo+Pj4wPEE+Pj4wKX19d2hpbGUoMCk7cT1iMFtjWyhjW3M+PjJdfDApKzE2Pj4yXSYx
MjddKHQpfDA7aWYoeD4+PjA8Zj4+PjApe249dSsxfDA7cD1rO3k9bys0fDA7Qj1vKzh8MDtDPTA7
RD0wO0U9eDt3aGlsZSgxKXtGPShhW21dJjEpPT0wO2Rve2lmKChhWyhGP246Y1tCPj4yXXwwKStE
fDBdfDApPT0wKXtHPUQ7SD1DfWVsc2V7aWYoKEN8MCkhPShhWyhGP246Y1tCPj4yXXwwKStEfDBd
fDApKXtHPUQ7SD1DO2JyZWFrfUk9Y1tqPj4yXXwwO2Nbaj4+Ml09SSsxO2FbSV09cTtJPWRbbV18
MDtHPShEPj4+MDwoKChJJjF8MCk9PTA/ST4+PjE6Y1t5Pj4yXXwwKS0xfDApPj4+MCkrRHwwO0g9
MH19d2hpbGUoMCk7Rj1iX1tjWyhjW3A+PjJdfDApKzI4Pj4yXSYzMV0ocixhW0VdfDApfDA7ST1j
W2o+PjJdfDA7Y1tqPj4yXT1JKzE7YVtJXT1GO0Y9RSsxfDA7aWYoRj4+PjA8Zj4+PjApe0M9SCsx
fDA7RD1HO0U9Rn1lbHNle2JyZWFrfX19RT1nKyh4LWIpfDA7RD1jW2o+PjJdfDA7aWYoKEV8MCk9
PShEfDApKXticmVha31DPUQtMXwwO2lmKEU+Pj4wPEM+Pj4wKXtKPUU7Sz1DfWVsc2V7YnJlYWt9
ZG97Qz1hW0pdfDA7YVtKXT1hW0tdfDA7YVtLXT1DO0o9SisxfDA7Sz1LLTF8MDt9d2hpbGUoSj4+
PjA8Sz4+PjApfX13aGlsZSgwKTtpZigoZXwwKT09KGZ8MCkpe0w9Y1tqPj4yXXwwO2NbaD4+Ml09
TDtkUChvKTtpPWw7cmV0dXJufWVsc2V7TD1nKyhlLWIpfDA7Y1toPj4yXT1MO2RQKG8pO2k9bDty
ZXR1cm59fWZ1bmN0aW9uIGdkKGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9
MCx0PTAsdT0wLHY9MCx3PTAseD0wO2Q9aTtpPWkrMTEyfDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3
Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWR8MDtsPWQrOHwwO209ZCszMnwwO249ZCs4MHwwO289
ZCs4OHwwO3A9ZCs5NnwwO3E9ZCsxMDR8MDtjW2s+PjJdPTM3O2Nbays0Pj4yXT0wO3I9aztrPXIr
MXwwO3M9Zis0fDA7dD1jW3M+PjJdfDA7aWYoKHQmMjA0OHwwKT09MCl7dT1rfWVsc2V7YVtrXT00
Mzt1PXIrMnwwfWlmKCh0JjUxMnwwKT09MCl7dj11fWVsc2V7YVt1XT0zNTt2PXUrMXwwfWFbdl09
MTA4O2FbdisxfDBdPTEwODt1PXYrMnwwO0wxNTc0OmRve3N3aXRjaCh0Jjc0fDApe2Nhc2UgNjQ6
e2FbdV09MTExO2JyZWFrfTtjYXNlIDg6e2lmKCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDticmVh
ayBMMTU3NH1lbHNle2FbdV09ODg7YnJlYWsgTDE1NzR9YnJlYWt9O2RlZmF1bHQ6e2FbdV09MTAw
fX19d2hpbGUoMCk7dT1sfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDAp
PT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt0PWdiKHUsMjIsY1sy
OTU4XXwwLHIsKHI9aSxpPWkrMTZ8MCxjW3I+PjJdPWgsY1tyKzg+PjJdPWoscil8MCl8MDtpPXI7
cj1sK3R8MDtMMTU4Nzpkb3tzd2l0Y2goY1tzPj4yXSYxNzZ8MCl7Y2FzZSAxNjp7aj1hW3VdfDA7
c3dpdGNoKGo8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnt3PWwrMXwwO2JyZWFrIEwxNTg3O2Jy
ZWFrfTtkZWZhdWx0Ont9fWlmKCEoKHR8MCk+MSZqPDwyND4+MjQ9PTQ4KSl7eD0xMjg2O2JyZWFr
IEwxNTg3fXN3aXRjaChhW2wrMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307ZGVmYXVs
dDp7eD0xMjg2O2JyZWFrIEwxNTg3fX13PWwrMnwwO2JyZWFrfTtjYXNlIDMyOnt3PXI7YnJlYWt9
O2RlZmF1bHQ6e3g9MTI4Nn19fXdoaWxlKDApO2lmKCh4fDApPT0xMjg2KXt3PXV9eD1tfDA7ZWoo
cCxmKTtnYyh1LHcscix4LG4sbyxwKTtkeihjW3A+PjJdfDApfDA7Y1txPj4yXT1jW2U+PjJdO2Y5
KGIscSx4LGNbbj4+Ml18MCxjW28+PjJdfDAsZixnKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdlKGIs
ZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9
MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTA7ZD1p
O2k9aSs4MHwwO2o9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1k
fDA7az1kKzh8MDtsPWQrMjR8MDttPWQrNDh8MDtuPWQrNTZ8MDtvPWQrNjR8MDtwPWQrNzJ8MDtx
PWp8MDthW3FdPWFbMjM4NF18MDthW3ErMXwwXT1hWzIzODV8MF18MDthW3ErMnwwXT1hWzIzODZ8
MF18MDthW3ErM3wwXT1hWzIzODd8MF18MDthW3ErNHwwXT1hWzIzODh8MF18MDthW3ErNXwwXT1h
WzIzODl8MF18MDtyPWorMXwwO3M9Zis0fDA7dD1jW3M+PjJdfDA7aWYoKHQmMjA0OHwwKT09MCl7
dT1yfWVsc2V7YVtyXT00Mzt1PWorMnwwfWlmKCh0JjUxMnwwKT09MCl7dj11fWVsc2V7YVt1XT0z
NTt2PXUrMXwwfWFbdl09MTA4O3U9disxfDA7TDE2MDU6ZG97c3dpdGNoKHQmNzR8MCl7Y2FzZSA2
NDp7YVt1XT0xMTE7YnJlYWt9O2Nhc2UgODp7aWYoKHQmMTYzODR8MCk9PTApe2FbdV09MTIwO2Jy
ZWFrIEwxNjA1fWVsc2V7YVt1XT04ODticmVhayBMMTYwNX1icmVha307ZGVmYXVsdDp7YVt1XT0x
MTd9fX13aGlsZSgwKTt1PWt8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8
MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3Q9Z2IodSwxMixj
WzI5NThdfDAscSwocT1pLGk9aSs4fDAsY1txPj4yXT1oLHEpfDApfDA7aT1xO3E9ayt0fDA7TDE2
MTg6ZG97c3dpdGNoKGNbcz4+Ml0mMTc2fDApe2Nhc2UgMzI6e3c9cTticmVha307Y2FzZSAxNjp7
aD1hW3VdfDA7c3dpdGNoKGg8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnt3PWsrMXwwO2JyZWFr
IEwxNjE4O2JyZWFrfTtkZWZhdWx0Ont9fWlmKCEoKHR8MCk+MSZoPDwyND4+MjQ9PTQ4KSl7eD0x
MzExO2JyZWFrIEwxNjE4fXN3aXRjaChhW2srMXwwXXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVh
a307ZGVmYXVsdDp7eD0xMzExO2JyZWFrIEwxNjE4fX13PWsrMnwwO2JyZWFrfTtkZWZhdWx0Ont4
PTEzMTF9fX13aGlsZSgwKTtpZigoeHwwKT09MTMxMSl7dz11fXg9bHwwO2VqKG8sZik7Z2ModSx3
LHEseCxtLG4sbyk7ZHooY1tvPj4yXXwwKXwwO2NbcD4+Ml09Y1tlPj4yXTtmOShiLHAseCxjW20+
PjJdfDAsY1tuPj4yXXwwLGYsZyk7aT1kO3JldHVybn1mdW5jdGlvbiBnZihiLGQsZSxmLGcsaCxq
KXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxt
PTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtkPWk7aT1pKzEx
MnwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1kfDA7bD1k
Kzh8MDttPWQrMzJ8MDtuPWQrODB8MDtvPWQrODh8MDtwPWQrOTZ8MDtxPWQrMTA0fDA7Y1trPj4y
XT0zNztjW2srND4+Ml09MDtyPWs7az1yKzF8MDtzPWYrNHwwO3Q9Y1tzPj4yXXwwO2lmKCh0JjIw
NDh8MCk9PTApe3U9a31lbHNle2Fba109NDM7dT1yKzJ8MH1pZigodCY1MTJ8MCk9PTApe3Y9dX1l
bHNle2FbdV09MzU7dj11KzF8MH1hW3ZdPTEwODthW3YrMXwwXT0xMDg7dT12KzJ8MDtMMTYzNjpk
b3tzd2l0Y2godCY3NHwwKXtjYXNlIDg6e2lmKCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDticmVh
ayBMMTYzNn1lbHNle2FbdV09ODg7YnJlYWsgTDE2MzZ9YnJlYWt9O2Nhc2UgNjQ6e2FbdV09MTEx
O2JyZWFrfTtkZWZhdWx0OnthW3VdPTExN319fXdoaWxlKDApO3U9bHwwO2Rve2lmKChhWzE2MjY0
XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8
MH19d2hpbGUoMCk7dD1nYih1LDIzLGNbMjk1OF18MCxyLChyPWksaT1pKzE2fDAsY1tyPj4yXT1o
LGNbcis4Pj4yXT1qLHIpfDApfDA7aT1yO3I9bCt0fDA7TDE2NDk6ZG97c3dpdGNoKGNbcz4+Ml0m
MTc2fDApe2Nhc2UgMTY6e2o9YVt1XXwwO3N3aXRjaChqPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0
Mzp7dz1sKzF8MDticmVhayBMMTY0OTticmVha307ZGVmYXVsdDp7fX1pZighKCh0fDApPjEmajw8
MjQ+PjI0PT00OCkpe3g9MTMzNjticmVhayBMMTY0OX1zd2l0Y2goYVtsKzF8MF18MCl7Y2FzZSAx
MjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTMzNjticmVhayBMMTY0OX19dz1sKzJ8MDti
cmVha307Y2FzZSAzMjp7dz1yO2JyZWFrfTtkZWZhdWx0Ont4PTEzMzZ9fX13aGlsZSgwKTtpZigo
eHwwKT09MTMzNil7dz11fXg9bXwwO2VqKHAsZik7Z2ModSx3LHIseCxuLG8scCk7ZHooY1twPj4y
XXwwKXwwO2NbcT4+Ml09Y1tlPj4yXTtmOShiLHEseCxjW24+PjJdfDAsY1tvPj4yXXwwLGYsZyk7
aT1kO3JldHVybn1mdW5jdGlvbiBnZyhiLGQsZSxmLGcsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7aj0rajt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MDtkPWk7aT1pKzE1MnwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJd
PWNbaz4+Ml07az1kfDA7bD1kKzh8MDttPWQrNDB8MDtuPWQrNDh8MDtvPWQrMTEyfDA7cD1kKzEy
MHwwO3E9ZCsxMjh8MDtyPWQrMTM2fDA7cz1kKzE0NHwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7
dD1rO2s9dCsxfDA7dT1mKzR8MDt2PWNbdT4+Ml18MDtpZigodiYyMDQ4fDApPT0wKXt3PWt9ZWxz
ZXthW2tdPTQzO3c9dCsyfDB9aWYoKHYmMTAyNHwwKT09MCl7eD13fWVsc2V7YVt3XT0zNTt4PXcr
MXwwfXc9diYyNjA7az12Pj4+MTQ7TDE2Njc6ZG97aWYoKHd8MCk9PTI2MCl7aWYoKGsmMXwwKT09
MCl7YVt4XT05Nzt5PTA7YnJlYWt9ZWxzZXthW3hdPTY1O3k9MDticmVha319ZWxzZXthW3hdPTQ2
O3Y9eCsyfDA7YVt4KzF8MF09NDI7c3dpdGNoKHd8MCl7Y2FzZSA0OntpZigoayYxfDApPT0wKXth
W3ZdPTEwMjt5PTE7YnJlYWsgTDE2Njd9ZWxzZXthW3ZdPTcwO3k9MTticmVhayBMMTY2N31icmVh
a307Y2FzZSAyNTY6e2lmKChrJjF8MCk9PTApe2Fbdl09MTAxO3k9MTticmVhayBMMTY2N31lbHNl
e2Fbdl09Njk7eT0xO2JyZWFrIEwxNjY3fWJyZWFrfTtkZWZhdWx0OntpZigoayYxfDApPT0wKXth
W3ZdPTEwMzt5PTE7YnJlYWsgTDE2Njd9ZWxzZXthW3ZdPTcxO3k9MTticmVhayBMMTY2N319fX19
d2hpbGUoMCk7az1sfDA7Y1ttPj4yXT1rO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2
MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7bD1jWzI5
NThdfDA7aWYoeSl7dz1nYihrLDMwLGwsdCwoej1pLGk9aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJd
LGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0E9d31lbHNle3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkr
OHwwLGhbej4+M109aix6KXwwKXwwO2k9ejtBPXd9ZG97aWYoKEF8MCk+Mjkpe3c9KGFbMTYyNjRd
fDApPT0wO2lmKHkpe2Rve2lmKHcpe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09
YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2w9Z2gobSxjWzI5NThdfDAsdCwoej1pLGk9aSsxNnww
LGNbej4+Ml09Y1tmKzg+PjJdLGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0I9bH1lbHNle2Rve2lm
KHcpe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdo
aWxlKDApO3c9Z2gobSxjWzI5NThdfDAsdCwoej1pLGk9aSsxNnwwLGNbej4+Ml09Y1tmKzg+PjJd
LGhbeis4Pj4zXT1qLHopfDApfDA7aT16O0I9d313PWNbbT4+Ml18MDtpZigod3wwKSE9MCl7Qz1C
O0Q9dztFPXc7YnJlYWt9a1goKTt3PWNbbT4+Ml18MDtDPUI7RD13O0U9d31lbHNle0M9QTtEPTA7
RT1jW20+PjJdfDB9fXdoaWxlKDApO0E9RStDfDA7TDE3MTY6ZG97c3dpdGNoKGNbdT4+Ml0mMTc2
fDApe2Nhc2UgMTY6e0I9YVtFXXwwO3N3aXRjaChCPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7
Rj1FKzF8MDticmVhayBMMTcxNjticmVha307ZGVmYXVsdDp7fX1pZighKChDfDApPjEmQjw8MjQ+
PjI0PT00OCkpe0c9MTM5MjticmVhayBMMTcxNn1zd2l0Y2goYVtFKzF8MF18MCl7Y2FzZSAxMjA6
Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e0c9MTM5MjticmVhayBMMTcxNn19Rj1FKzJ8MDticmVh
a307Y2FzZSAzMjp7Rj1BO2JyZWFrfTtkZWZhdWx0OntHPTEzOTJ9fX13aGlsZSgwKTtpZigoR3ww
KT09MTM5Mil7Rj1FfWRve2lmKChFfDApPT0oa3wwKSl7SD1ufDA7ST0wO0o9a31lbHNle0c9a0oo
Qzw8MSl8MDtpZigoR3wwKSE9MCl7SD1HO0k9RztKPUU7YnJlYWt9a1goKTtIPTA7ST0wO0o9Y1tt
Pj4yXXwwfX13aGlsZSgwKTtlaihxLGYpO2dqKEosRixBLEgsbyxwLHEpO2R6KGNbcT4+Ml18MCl8
MDtxPWV8MDtjW3M+PjJdPWNbcT4+Ml07ZjkocixzLEgsY1tvPj4yXXwwLGNbcD4+Ml18MCxmLGcp
O2c9Y1tyPj4yXXwwO2NbcT4+Ml09ZztjW2I+PjJdPWc7aWYoKEl8MCkhPTApe2tLKEkpfWlmKChE
fDApPT0wKXtpPWQ7cmV0dXJufWtLKEQpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ2goYSxiLGQsZSl7
YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wO2Y9aTtpPWkrMTZ8MDtnPWZ8
MDtoPWc7Y1toPj4yXT1lO2NbaCs0Pj4yXT0wO2g9YkIoYnwwKXwwO2I9YlEoYXwwLGR8MCxnfDAp
fDA7aWYoKGh8MCk9PTApe2k9ZjtyZXR1cm4gYnwwfWJCKGh8MCl8MDtpPWY7cmV0dXJuIGJ8MH1m
dW5jdGlvbiBnaShiLGQsZSxmLGcsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj0r
ajt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0w
LHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MDtkPWk7
aT1pKzE1MnwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaz4+Ml07az1k
fDA7bD1kKzh8MDttPWQrNDB8MDtuPWQrNDh8MDtvPWQrMTEyfDA7cD1kKzEyMHwwO3E9ZCsxMjh8
MDtyPWQrMTM2fDA7cz1kKzE0NHwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7dD1rO2s9dCsxfDA7
dT1mKzR8MDt2PWNbdT4+Ml18MDtpZigodiYyMDQ4fDApPT0wKXt3PWt9ZWxzZXthW2tdPTQzO3c9
dCsyfDB9aWYoKHYmMTAyNHwwKT09MCl7eD13fWVsc2V7YVt3XT0zNTt4PXcrMXwwfXc9diYyNjA7
az12Pj4+MTQ7TDE3NTQ6ZG97aWYoKHd8MCk9PTI2MCl7YVt4XT03Njt2PXgrMXwwO2lmKChrJjF8
MCk9PTApe2Fbdl09OTc7eT0wO2JyZWFrfWVsc2V7YVt2XT02NTt5PTA7YnJlYWt9fWVsc2V7YVt4
XT00NjthW3grMXwwXT00MjthW3grMnwwXT03Njt2PXgrM3wwO3N3aXRjaCh3fDApe2Nhc2UgNDp7
aWYoKGsmMXwwKT09MCl7YVt2XT0xMDI7eT0xO2JyZWFrIEwxNzU0fWVsc2V7YVt2XT03MDt5PTE7
YnJlYWsgTDE3NTR9YnJlYWt9O2Nhc2UgMjU2OntpZigoayYxfDApPT0wKXthW3ZdPTEwMTt5PTE7
YnJlYWsgTDE3NTR9ZWxzZXthW3ZdPTY5O3k9MTticmVhayBMMTc1NH1icmVha307ZGVmYXVsdDp7
aWYoKGsmMXwwKT09MCl7YVt2XT0xMDM7eT0xO2JyZWFrIEwxNzU0fWVsc2V7YVt2XT03MTt5PTE7
YnJlYWsgTDE3NTR9fX19fXdoaWxlKDApO2s9bHwwO2NbbT4+Ml09aztkb3tpZigoYVsxNjI2NF18
MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9
fXdoaWxlKDApO2w9Y1syOTU4XXwwO2lmKHkpe3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkrMTZ8MCxj
W3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtBPXd9ZWxzZXt3PWdiKGss
MzAsbCx0LCh6PWksaT1pKzh8MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7QT13fWRve2lmKChBfDAp
PjI5KXt3PShhWzE2MjY0XXwwKT09MDtpZih5KXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0w
KXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWdoKG0sY1syOTU4XXww
LHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9
ejtCPWx9ZWxzZXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFT
KDEsMTM0NCwwKXwwfX13aGlsZSgwKTt3PWdoKG0sY1syOTU4XXwwLHQsKHo9aSxpPWkrOHwwLGhb
ej4+M109aix6KXwwKXwwO2k9ejtCPXd9dz1jW20+PjJdfDA7aWYoKHd8MCkhPTApe0M9QjtEPXc7
RT13O2JyZWFrfWtYKCk7dz1jW20+PjJdfDA7Qz1CO0Q9dztFPXd9ZWxzZXtDPUE7RD0wO0U9Y1tt
Pj4yXXwwfX13aGlsZSgwKTtBPUUrQ3wwO0wxODAzOmRve3N3aXRjaChjW3U+PjJdJjE3NnwwKXtj
YXNlIDMyOntGPUE7YnJlYWt9O2Nhc2UgMTY6e0I9YVtFXXwwO3N3aXRjaChCPDwyND4+MjQpe2Nh
c2UgNDU6Y2FzZSA0Mzp7Rj1FKzF8MDticmVhayBMMTgwMzticmVha307ZGVmYXVsdDp7fX1pZigh
KChDfDApPjEmQjw8MjQ+PjI0PT00OCkpe0c9MTQ3NzticmVhayBMMTgwM31zd2l0Y2goYVtFKzF8
MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e0c9MTQ3NzticmVhayBMMTgw
M319Rj1FKzJ8MDticmVha307ZGVmYXVsdDp7Rz0xNDc3fX19d2hpbGUoMCk7aWYoKEd8MCk9PTE0
Nzcpe0Y9RX1kb3tpZigoRXwwKT09KGt8MCkpe0g9bnwwO0k9MDtKPWt9ZWxzZXtHPWtKKEM8PDEp
fDA7aWYoKEd8MCkhPTApe0g9RztJPUc7Sj1FO2JyZWFrfWtYKCk7SD0wO0k9MDtKPWNbbT4+Ml18
MH19d2hpbGUoMCk7ZWoocSxmKTtnaihKLEYsQSxILG8scCxxKTtkeihjW3E+PjJdfDApfDA7cT1l
fDA7Y1tzPj4yXT1jW3E+PjJdO2Y5KHIscyxILGNbbz4+Ml18MCxjW3A+PjJdfDAsZixnKTtnPWNb
cj4+Ml18MDtjW3E+PjJdPWc7Y1tiPj4yXT1nO2lmKChJfDApIT0wKXtrSyhJKX1pZigoRHwwKT09
MCl7aT1kO3JldHVybn1rSyhEKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdqKGIsZSxmLGcsaCxqLGsp
e2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0w
LEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wO2w9aTtpPWkr
NDh8MDttPWx8MDtuPWwrMTZ8MDtvPWwrMzJ8MDtwPWt8MDtrPWNbcD4+Ml18MDtpZigoY1szOTI0
XXwwKSE9LTEpe2Nbbj4+Ml09MTU2OTY7Y1tuKzQ+PjJdPTEyO2Nbbis4Pj4yXT0wO2RXKDE1Njk2
LG4sOTYpfW49KGNbMzkyNV18MCktMXwwO3E9Y1trKzg+PjJdfDA7aWYoKGNbaysxMj4+Ml18MCkt
cT4+Mj4+PjA8PW4+Pj4wKXtyPWJPKDQpfDA7cz1yO2txKHMpO2JsKHJ8MCw4MTc2LDEzNCl9az1j
W3ErKG48PDIpPj4yXXwwO2lmKChrfDApPT0wKXtyPWJPKDQpfDA7cz1yO2txKHMpO2JsKHJ8MCw4
MTc2LDEzNCl9cj1rO3M9Y1twPj4yXXwwO2lmKChjWzM4MjhdfDApIT0tMSl7Y1ttPj4yXT0xNTMx
MjtjW20rND4+Ml09MTI7Y1ttKzg+PjJdPTA7ZFcoMTUzMTIsbSw5Nil9bT0oY1szODI5XXwwKS0x
fDA7cD1jW3MrOD4+Ml18MDtpZigoY1tzKzEyPj4yXXwwKS1wPj4yPj4+MDw9bT4+PjApe3Q9Yk8o
NCl8MDt1PXQ7a3EodSk7YmwodHwwLDgxNzYsMTM0KX1zPWNbcCsobTw8Mik+PjJdfDA7aWYoKHN8
MCk9PTApe3Q9Yk8oNCl8MDt1PXQ7a3EodSk7YmwodHwwLDgxNzYsMTM0KX10PXM7YlpbY1soY1tz
Pj4yXXwwKSsyMD4+Ml0mMTI3XShvLHQpO2Nbaj4+Ml09Zzt1PWFbYl18MDtzd2l0Y2godTw8MjQ+
PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e209Yl9bY1soY1trPj4yXXwwKSsyOD4+Ml0mMzFdKHIsdSl8
MDt1PWNbaj4+Ml18MDtjW2o+PjJdPXUrMTthW3VdPW07dj1iKzF8MDticmVha307ZGVmYXVsdDp7
dj1ifX1tPWY7TDE4NTE6ZG97aWYoKG0tdnwwKT4xKXtpZigoYVt2XXwwKSE9NDgpe3c9djt4PTE1
MzI7YnJlYWt9dT12KzF8MDtzd2l0Y2goYVt1XXwwKXtjYXNlIDEyMDpjYXNlIDg4OnticmVha307
ZGVmYXVsdDp7dz12O3g9MTUzMjticmVhayBMMTg1MX19cD1rO249Yl9bY1soY1twPj4yXXwwKSsy
OD4+Ml0mMzFdKHIsNDgpfDA7cT1jW2o+PjJdfDA7Y1tqPj4yXT1xKzE7YVtxXT1uO249disyfDA7
cT1iX1tjWyhjW3A+PjJdfDApKzI4Pj4yXSYzMV0ocixhW3VdfDApfDA7dT1jW2o+PjJdfDA7Y1tq
Pj4yXT11KzE7YVt1XT1xO3E9bjt3aGlsZSgxKXtpZihxPj4+MD49Zj4+PjApe3k9cTt6PW47YnJl
YWsgTDE4NTF9dT1hW3FdfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDAp
PT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtpZigoYTModTw8MjQ+
PjI0fDAsY1syOTU4XXwwKXwwKT09MCl7eT1xO3o9bjticmVha31lbHNle3E9cSsxfDB9fX1lbHNl
e3c9djt4PTE1MzJ9fXdoaWxlKDApO0wxODY2OmRve2lmKCh4fDApPT0xNTMyKXt3aGlsZSgxKXt4
PTA7aWYodz4+PjA+PWY+Pj4wKXt5PXc7ej12O2JyZWFrIEwxODY2fXE9YVt3XXwwO2Rve2lmKChh
WzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEz
NDQsMCl8MH19d2hpbGUoMCk7aWYoKGJIKHE8PDI0Pj4yNHwwLGNbMjk1OF18MCl8MCk9PTApe3k9
dzt6PXY7YnJlYWt9ZWxzZXt3PXcrMXwwO3g9MTUzMn19fX13aGlsZSgwKTt4PW87dz1vO3Y9ZFt3
XXwwO2lmKCh2JjF8MCk9PTApe0E9dj4+PjF9ZWxzZXtBPWNbbys0Pj4yXXwwfWRve2lmKChBfDAp
PT0wKXt2PWNbaj4+Ml18MDt1PWNbKGNbaz4+Ml18MCkrMzI+PjJdfDA7Y2FbdSYxNV0ocix6LHks
dil8MDtjW2o+PjJdPShjW2o+PjJdfDApKyh5LXopfWVsc2V7ZG97aWYoKHp8MCkhPSh5fDApKXt2
PXktMXwwO2lmKHo+Pj4wPHY+Pj4wKXtCPXo7Qz12fWVsc2V7YnJlYWt9ZG97dj1hW0JdfDA7YVtC
XT1hW0NdfDA7YVtDXT12O0I9QisxfDA7Qz1DLTF8MDt9d2hpbGUoQj4+PjA8Qz4+PjApfX13aGls
ZSgwKTtxPWIwW2NbKGNbcz4+Ml18MCkrMTY+PjJdJjEyN10odCl8MDtpZih6Pj4+MDx5Pj4+MCl7
dj14KzF8MDt1PW8rNHwwO249bys4fDA7cD1rO0Q9MDtFPTA7Rj16O3doaWxlKDEpe0c9KGFbd10m
MSk9PTA7ZG97aWYoKGFbKEc/djpjW24+PjJdfDApK0V8MF18MCk+MCl7aWYoKER8MCkhPShhWyhH
P3Y6Y1tuPj4yXXwwKStFfDBdfDApKXtIPUU7ST1EO2JyZWFrfUo9Y1tqPj4yXXwwO2Nbaj4+Ml09
SisxO2FbSl09cTtKPWRbd118MDtIPShFPj4+MDwoKChKJjF8MCk9PTA/Sj4+PjE6Y1t1Pj4yXXww
KS0xfDApPj4+MCkrRXwwO0k9MH1lbHNle0g9RTtJPUR9fXdoaWxlKDApO0c9Yl9bY1soY1twPj4y
XXwwKSsyOD4+Ml0mMzFdKHIsYVtGXXwwKXwwO0o9Y1tqPj4yXXwwO2Nbaj4+Ml09SisxO2FbSl09
RztHPUYrMXwwO2lmKEc+Pj4wPHk+Pj4wKXtEPUkrMXwwO0U9SDtGPUd9ZWxzZXticmVha319fUY9
Zysoei1iKXwwO0U9Y1tqPj4yXXwwO2lmKChGfDApPT0oRXwwKSl7YnJlYWt9RD1FLTF8MDtpZihG
Pj4+MDxEPj4+MCl7Sz1GO0w9RH1lbHNle2JyZWFrfWRve0Q9YVtLXXwwO2FbS109YVtMXXwwO2Fb
TF09RDtLPUsrMXwwO0w9TC0xfDA7fXdoaWxlKEs+Pj4wPEw+Pj4wKX19d2hpbGUoMCk7TDE5MDU6
ZG97aWYoeT4+PjA8Zj4+PjApe0w9aztLPXk7d2hpbGUoMSl7ej1hW0tdfDA7aWYoejw8MjQ+PjI0
PT00Nil7YnJlYWt9SD1iX1tjWyhjW0w+PjJdfDApKzI4Pj4yXSYzMV0ocix6KXwwO3o9Y1tqPj4y
XXwwO2Nbaj4+Ml09eisxO2Fbel09SDtIPUsrMXwwO2lmKEg+Pj4wPGY+Pj4wKXtLPUh9ZWxzZXtN
PUg7YnJlYWsgTDE5MDV9fUw9YjBbY1soY1tzPj4yXXwwKSsxMj4+Ml0mMTI3XSh0KXwwO0g9Y1tq
Pj4yXXwwO2Nbaj4+Ml09SCsxO2FbSF09TDtNPUsrMXwwfWVsc2V7TT15fX13aGlsZSgwKTtjYVtj
WyhjW2s+PjJdfDApKzMyPj4yXSYxNV0ocixNLGYsY1tqPj4yXXwwKXwwO3I9KGNbaj4+Ml18MCkr
KG0tTSl8MDtjW2o+PjJdPXI7aWYoKGV8MCk9PShmfDApKXtOPXI7Y1toPj4yXT1OO2RQKG8pO2k9
bDtyZXR1cm59Tj1nKyhlLWIpfDA7Y1toPj4yXT1OO2RQKG8pO2k9bDtyZXR1cm59ZnVuY3Rpb24g
Z2soYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gZ2woYSl7YT1hfDA7ZGUo
YXwwKTtyZXR1cm59ZnVuY3Rpb24gZ20oYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxz
PTAsdD0wLHU9MCx2PTAsdz0wLHg9MDtkPWk7aT1pKzE0NHwwO2o9ZTtlPWk7aT1pKzR8MDtpPWkr
Nz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1kfDA7az1kKzh8MDtsPWQrMjR8MDttPWQrMTEyfDA7
bj1kKzEyMHwwO289ZCsxMjh8MDtwPWQrMTM2fDA7cT1qfDA7YVtxXT1hWzIzODRdfDA7YVtxKzF8
MF09YVsyMzg1fDBdfDA7YVtxKzJ8MF09YVsyMzg2fDBdfDA7YVtxKzN8MF09YVsyMzg3fDBdfDA7
YVtxKzR8MF09YVsyMzg4fDBdfDA7YVtxKzV8MF09YVsyMzg5fDBdfDA7cj1qKzF8MDtzPWYrNHww
O3Q9Y1tzPj4yXXwwO2lmKCh0JjIwNDh8MCk9PTApe3U9cn1lbHNle2Fbcl09NDM7dT1qKzJ8MH1p
ZigodCY1MTJ8MCk9PTApe3Y9dX1lbHNle2FbdV09MzU7dj11KzF8MH1hW3ZdPTEwODt1PXYrMXww
O0wxOTI4OmRve3N3aXRjaCh0Jjc0fDApe2Nhc2UgNjQ6e2FbdV09MTExO2JyZWFrfTtjYXNlIDg6
e2lmKCh0JjE2Mzg0fDApPT0wKXthW3VdPTEyMDticmVhayBMMTkyOH1lbHNle2FbdV09ODg7YnJl
YWsgTDE5Mjh9YnJlYWt9O2RlZmF1bHQ6e2FbdV09MTAwfX19d2hpbGUoMCk7dT1rfDA7ZG97aWYo
KGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEs
MTM0NCwwKXwwfX13aGlsZSgwKTt0PWdiKHUsMTIsY1syOTU4XXwwLHEsKHE9aSxpPWkrOHwwLGNb
cT4+Ml09aCxxKXwwKXwwO2k9cTtxPWsrdHwwO0wxOTQxOmRve3N3aXRjaChjW3M+PjJdJjE3Nnww
KXtjYXNlIDMyOnt3PXE7YnJlYWt9O2Nhc2UgMTY6e2g9YVt1XXwwO3N3aXRjaChoPDwyND4+MjQp
e2Nhc2UgNDU6Y2FzZSA0Mzp7dz1rKzF8MDticmVhayBMMTk0MTticmVha307ZGVmYXVsdDp7fX1p
ZighKCh0fDApPjEmaDw8MjQ+PjI0PT00OCkpe3g9MTYwMDticmVhayBMMTk0MX1zd2l0Y2goYVtr
KzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTYwMDticmVhayBM
MTk0MX19dz1rKzJ8MDticmVha307ZGVmYXVsdDp7eD0xNjAwfX19d2hpbGUoMCk7aWYoKHh8MCk9
PTE2MDApe3c9dX14PWx8MDtlaihvLGYpO2dwKHUsdyxxLHgsbSxuLG8pO2R6KGNbbz4+Ml18MCl8
MDtjW3A+PjJdPWNbZT4+Ml07Z3EoYixwLHgsY1ttPj4yXXwwLGNbbj4+Ml18MCxmLGcpO2k9ZDty
ZXR1cm59ZnVuY3Rpb24gZ24oYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0w
LHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MDtkPWk7aT1pKzEwNHwwO2o9ZTtlPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1kfDA7az1kKzI0fDA7bD1kKzQ4fDA7bT1k
Kzg4fDA7bj1kKzk2fDA7bz1kKzE2fDA7YVtvXT1hWzIzOTJdfDA7YVtvKzF8MF09YVsyMzkzfDBd
fDA7YVtvKzJ8MF09YVsyMzk0fDBdfDA7YVtvKzN8MF09YVsyMzk1fDBdfDA7YVtvKzR8MF09YVsy
Mzk2fDBdfDA7YVtvKzV8MF09YVsyMzk3fDBdfDA7cD1rfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0w
KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGls
ZSgwKTtxPWdiKHAsMjAsY1syOTU4XXwwLG8sKG89aSxpPWkrOHwwLGNbbz4+Ml09aCxvKXwwKXww
O2k9bztvPWsrcXwwO0wxOTU4OmRve3N3aXRjaChjW2YrND4+Ml0mMTc2fDApe2Nhc2UgMTY6e2g9
YVtwXXwwO3N3aXRjaChoPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7cj1rKzF8MDticmVhayBM
MTk1ODticmVha307ZGVmYXVsdDp7fX1pZighKChxfDApPjEmaDw8MjQ+PjI0PT00OCkpe3M9MTYx
NTticmVhayBMMTk1OH1zd2l0Y2goYVtrKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9
O2RlZmF1bHQ6e3M9MTYxNTticmVhayBMMTk1OH19cj1rKzJ8MDticmVha307Y2FzZSAzMjp7cj1v
O2JyZWFrfTtkZWZhdWx0OntzPTE2MTV9fX13aGlsZSgwKTtpZigoc3wwKT09MTYxNSl7cj1wfWVq
KG0sZik7cz1tfDA7bT1jW3M+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2o+PjJdPTE1Njk2
O2Nbais0Pj4yXT0xMjtjW2orOD4+Ml09MDtkVygxNTY5NixqLDk2KX1qPShjWzM5MjVdfDApLTF8
MDtoPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJdfDApLWg+PjI+Pj4wPmo+Pj4wKXt0PWNb
aCsoajw8Mik+PjJdfDA7aWYoKHR8MCk9PTApe2JyZWFrfXU9dDt2PWNbcz4+Ml18MDtkeih2KXww
O3Y9bHwwO3c9Y1soY1t0Pj4yXXwwKSszMj4+Ml18MDtjYVt3JjE1XSh1LHAsbyx2KXwwO3U9bCtx
fDA7aWYoKHJ8MCk9PShvfDApKXt4PXU7eT1lfDA7ej1jW3k+PjJdfDA7QT1ufDA7Y1tBPj4yXT16
O2Y5KGIsbix2LHgsdSxmLGcpO2k9ZDtyZXR1cm59eD1sKyhyLWspfDA7eT1lfDA7ej1jW3k+PjJd
fDA7QT1ufDA7Y1tBPj4yXT16O2Y5KGIsbix2LHgsdSxmLGcpO2k9ZDtyZXR1cm59fXdoaWxlKDAp
O2Q9Yk8oNCl8MDtrcShkKTtibChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdvKGIsZCxlLGYsZyxo
KXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0w
LG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MDtqPWk7
aT1pKzQ4fDA7az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8
MDtsPWorMTZ8MDttPWorMjR8MDtuPWorMzJ8MDtpZigoY1tmKzQ+PjJdJjF8MCk9PTApe289Y1so
Y1tkPj4yXXwwKSsyND4+Ml18MDtjW2w+PjJdPWNbZT4+Ml07YjlbbyYzMV0oYixkLGwsZixnLGgm
MSk7aT1qO3JldHVybn1laihtLGYpO2Y9bXwwO209Y1tmPj4yXXwwO2lmKChjWzM4MjZdfDApIT0t
MSl7Y1trPj4yXT0xNTMwNDtjW2srND4+Ml09MTI7Y1trKzg+PjJdPTA7ZFcoMTUzMDQsayw5Nil9
az0oY1szODI3XXwwKS0xfDA7Zz1jW20rOD4+Ml18MDtkb3tpZigoY1ttKzEyPj4yXXwwKS1nPj4y
Pj4+MD5rPj4+MCl7bD1jW2crKGs8PDIpPj4yXXwwO2lmKChsfDApPT0wKXticmVha31kPWw7bz1j
W2Y+PjJdfDA7ZHoobyl8MDtvPWNbbD4+Ml18MDtpZihoKXtiWltjW28rMjQ+PjJdJjEyN10obixk
KX1lbHNle2JaW2NbbysyOD4+Ml0mMTI3XShuLGQpfWQ9bjtvPWFbZF18MDtpZigobyYxKT09MCl7
bD1uKzR8MDtwPWw7cT1sO3I9bis4fDB9ZWxzZXtsPW4rOHwwO3A9Y1tsPj4yXXwwO3E9bis0fDA7
cj1sfWw9ZXwwO3M9cDt0PW87d2hpbGUoMSl7aWYoKHQmMSk9PTApe3U9cX1lbHNle3U9Y1tyPj4y
XXwwfW89dCYyNTU7aWYoKG8mMXwwKT09MCl7dj1vPj4+MX1lbHNle3Y9Y1txPj4yXXwwfWlmKChz
fDApPT0odSsodjw8Mil8MCkpe2JyZWFrfW89Y1tzPj4yXXwwO3c9Y1tsPj4yXXwwO2Rve2lmKCh3
fDApIT0wKXt4PXcrMjR8MDt5PWNbeD4+Ml18MDtpZigoeXwwKT09KGNbdysyOD4+Ml18MCkpe3o9
Yl9bY1soY1t3Pj4yXXwwKSs1Mj4+Ml0mMzFdKHcsbyl8MH1lbHNle2NbeD4+Ml09eSs0O2NbeT4+
Ml09bzt6PW99aWYoKHp8MCkhPS0xKXticmVha31jW2w+PjJdPTB9fXdoaWxlKDApO3M9cys0fDA7
dD1hW2RdfDB9Y1tiPj4yXT1jW2w+PjJdO2VlKG4pO2k9ajtyZXR1cm59fXdoaWxlKDApO2o9Yk8o
NCl8MDtrcShqKTtibChqfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdwKGIsZSxmLGcsaCxqLGspe2I9
YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MDtsPWk7aT1pKzQ4fDA7bT1sfDA7
bj1sKzE2fDA7bz1sKzMyfDA7cD1rfDA7az1jW3A+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtj
W24+PjJdPTE1Njg4O2Nbbis0Pj4yXT0xMjtjW24rOD4+Ml09MDtkVygxNTY4OCxuLDk2KX1uPShj
WzM5MjNdfDApLTF8MDtxPWNbays4Pj4yXXwwO2lmKChjW2srMTI+PjJdfDApLXE+PjI+Pj4wPD1u
Pj4+MCl7cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfWs9Y1txKyhuPDwyKT4+
Ml18MDtpZigoa3wwKT09MCl7cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfXI9
aztzPWNbcD4+Ml18MDtpZigoY1szODI2XXwwKSE9LTEpe2NbbT4+Ml09MTUzMDQ7Y1ttKzQ+PjJd
PTEyO2NbbSs4Pj4yXT0wO2RXKDE1MzA0LG0sOTYpfW09KGNbMzgyN118MCktMXwwO3A9Y1tzKzg+
PjJdfDA7aWYoKGNbcysxMj4+Ml18MCktcD4+Mj4+PjA8PW0+Pj4wKXt0PWJPKDQpfDA7dT10O2tx
KHUpO2JsKHR8MCw4MTc2LDEzNCl9cz1jW3ArKG08PDIpPj4yXXwwO2lmKChzfDApPT0wKXt0PWJP
KDQpfDA7dT10O2txKHUpO2JsKHR8MCw4MTc2LDEzNCl9dD1zO2JaW2NbKGNbcz4+Ml18MCkrMjA+
PjJdJjEyN10obyx0KTt1PW87bT1vO3A9ZFttXXwwO2lmKChwJjF8MCk9PTApe3Y9cD4+PjF9ZWxz
ZXt2PWNbbys0Pj4yXXwwfWRve2lmKCh2fDApPT0wKXtwPWNbKGNbaz4+Ml18MCkrNDg+PjJdfDA7
Y2FbcCYxNV0ocixiLGYsZyl8MDtjW2o+PjJdPWcrKGYtYjw8Mil9ZWxzZXtjW2o+PjJdPWc7cD1h
W2JdfDA7c3dpdGNoKHA8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOntuPWJfW2NbKGNbaz4+Ml18
MCkrNDQ+PjJdJjMxXShyLHApfDA7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzQ7Y1twPj4yXT1uO3c9
YisxfDA7YnJlYWt9O2RlZmF1bHQ6e3c9Yn19TDIwNTA6ZG97aWYoKGYtd3wwKT4xKXtpZigoYVt3
XXwwKSE9NDgpe3g9dzticmVha31uPXcrMXwwO3N3aXRjaChhW25dfDApe2Nhc2UgMTIwOmNhc2Ug
ODg6e2JyZWFrfTtkZWZhdWx0Ont4PXc7YnJlYWsgTDIwNTB9fXA9aztxPWJfW2NbKGNbcD4+Ml18
MCkrNDQ+PjJdJjMxXShyLDQ4KXwwO3k9Y1tqPj4yXXwwO2Nbaj4+Ml09eSs0O2NbeT4+Ml09cTtx
PWJfW2NbKGNbcD4+Ml18MCkrNDQ+PjJdJjMxXShyLGFbbl18MCl8MDtuPWNbaj4+Ml18MDtjW2o+
PjJdPW4rNDtjW24+PjJdPXE7eD13KzJ8MH1lbHNle3g9d319d2hpbGUoMCk7ZG97aWYoKHh8MCkh
PShmfDApKXtxPWYtMXwwO2lmKHg+Pj4wPHE+Pj4wKXt6PXg7QT1xfWVsc2V7YnJlYWt9ZG97cT1h
W3pdfDA7YVt6XT1hW0FdfDA7YVtBXT1xO3o9eisxfDA7QT1BLTF8MDt9d2hpbGUoej4+PjA8QT4+
PjApfX13aGlsZSgwKTtxPWIwW2NbKGNbcz4+Ml18MCkrMTY+PjJdJjEyN10odCl8MDtpZih4Pj4+
MDxmPj4+MCl7bj11KzF8MDtwPWs7eT1vKzR8MDtCPW8rOHwwO0M9MDtEPTA7RT14O3doaWxlKDEp
e0Y9KGFbbV0mMSk9PTA7ZG97aWYoKGFbKEY/bjpjW0I+PjJdfDApK0R8MF18MCk9PTApe0c9RDtI
PUN9ZWxzZXtpZigoQ3wwKSE9KGFbKEY/bjpjW0I+PjJdfDApK0R8MF18MCkpe0c9RDtIPUM7YnJl
YWt9ST1jW2o+PjJdfDA7Y1tqPj4yXT1JKzQ7Y1tJPj4yXT1xO0k9ZFttXXwwO0c9KEQ+Pj4wPCgo
KEkmMXwwKT09MD9JPj4+MTpjW3k+PjJdfDApLTF8MCk+Pj4wKStEfDA7SD0wfX13aGlsZSgwKTtG
PWJfW2NbKGNbcD4+Ml18MCkrNDQ+PjJdJjMxXShyLGFbRV18MCl8MDtJPWNbaj4+Ml18MDtjW2o+
PjJdPUkrNDtjW0k+PjJdPUY7Rj1FKzF8MDtpZihGPj4+MDxmPj4+MCl7Qz1IKzF8MDtEPUc7RT1G
fWVsc2V7YnJlYWt9fX1FPWcrKHgtYjw8Mil8MDtEPWNbaj4+Ml18MDtpZigoRXwwKT09KER8MCkp
e2JyZWFrfUM9RC00fDA7aWYoRT4+PjA8Qz4+PjApe0o9RTtLPUN9ZWxzZXticmVha31kb3tDPWNb
Sj4+Ml18MDtjW0o+PjJdPWNbSz4+Ml07Y1tLPj4yXT1DO0o9Sis0fDA7Sz1LLTR8MDt9d2hpbGUo
Sj4+PjA8Sz4+PjApfX13aGlsZSgwKTtpZigoZXwwKT09KGZ8MCkpe0w9Y1tqPj4yXXwwO2NbaD4+
Ml09TDtkUChvKTtpPWw7cmV0dXJufWVsc2V7TD1nKyhlLWI8PDIpfDA7Y1toPj4yXT1MO2RQKG8p
O2k9bDtyZXR1cm59fWZ1bmN0aW9uIGdxKGIsZCxlLGYsZyxoLGope2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wO2s9aTtpPWkrMTZ8MDtsPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2w+
PjJdO2w9a3wwO209ZHwwO2Q9Y1ttPj4yXXwwO2lmKChkfDApPT0wKXtjW2I+PjJdPTA7aT1rO3Jl
dHVybn1uPWc7Zz1lO289bi1nPj4yO3A9aCsxMnwwO2g9Y1twPj4yXXwwO3E9KGh8MCk+KG98MCk/
aC1vfDA6MDtvPWY7aD1vLWd8MDtnPWg+PjI7ZG97aWYoKGh8MCk+MCl7aWYoKGIxW2NbKGNbZD4+
Ml18MCkrNDg+PjJdJjYzXShkLGUsZyl8MCk9PShnfDApKXticmVha31jW20+PjJdPTA7Y1tiPj4y
XT0wO2k9aztyZXR1cm59fXdoaWxlKDApO2Rve2lmKChxfDApPjApe2V5KGwscSxqKTtpZigoYVts
XSYxKT09MCl7cj1sKzR8MH1lbHNle3I9Y1tsKzg+PjJdfDB9aWYoKGIxW2NbKGNbZD4+Ml18MCkr
NDg+PjJdJjYzXShkLHIscSl8MCk9PShxfDApKXtlZShsKTticmVha31jW20+PjJdPTA7Y1tiPj4y
XT0wO2VlKGwpO2k9aztyZXR1cm59fXdoaWxlKDApO2w9bi1vfDA7bz1sPj4yO2Rve2lmKChsfDAp
PjApe2lmKChiMVtjWyhjW2Q+PjJdfDApKzQ4Pj4yXSY2M10oZCxmLG8pfDApPT0ob3wwKSl7YnJl
YWt9Y1ttPj4yXT0wO2NbYj4+Ml09MDtpPWs7cmV0dXJufX13aGlsZSgwKTtjW3A+PjJdPTA7Y1ti
Pj4yXT1kO2k9aztyZXR1cm59ZnVuY3Rpb24gZ3IoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7
ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTA7ZD1pO2k9aSsyMzJ8MDtrPWU7ZT1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzMyfDA7
bj1kKzIwMHwwO289ZCsyMDh8MDtwPWQrMjE2fDA7cT1kKzIyNHwwO2Nbaz4+Ml09Mzc7Y1trKzQ+
PjJdPTA7cj1rO2s9cisxfDA7cz1mKzR8MDt0PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1
PWt9ZWxzZXthW2tdPTQzO3U9cisyfDB9aWYoKHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1
O3Y9dSsxfDB9YVt2XT0xMDg7YVt2KzF8MF09MTA4O3U9disyfDA7TDIxMTk6ZG97c3dpdGNoKHQm
NzR8MCl7Y2FzZSA4OntpZigodCYxNjM4NHwwKT09MCl7YVt1XT0xMjA7YnJlYWsgTDIxMTl9ZWxz
ZXthW3VdPTg4O2JyZWFrIEwyMTE5fWJyZWFrfTtjYXNlIDY0OnthW3VdPTExMTticmVha307ZGVm
YXVsdDp7YVt1XT0xMDB9fX13aGlsZSgwKTt1PWx8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lm
KChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDAp
O3Q9Z2IodSwyMixjWzI5NThdfDAsciwocj1pLGk9aSsxNnwwLGNbcj4+Ml09aCxjW3IrOD4+Ml09
aixyKXwwKXwwO2k9cjtyPWwrdHwwO0wyMTMyOmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNl
IDMyOnt3PXI7YnJlYWt9O2Nhc2UgMTY6e2o9YVt1XXwwO3N3aXRjaChqPDwyND4+MjQpe2Nhc2Ug
NDU6Y2FzZSA0Mzp7dz1sKzF8MDticmVhayBMMjEzMjticmVha307ZGVmYXVsdDp7fX1pZighKCh0
fDApPjEmajw8MjQ+PjI0PT00OCkpe3g9MTc2MDticmVhayBMMjEzMn1zd2l0Y2goYVtsKzF8MF18
MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3g9MTc2MDticmVhayBMMjEzMn19
dz1sKzJ8MDticmVha307ZGVmYXVsdDp7eD0xNzYwfX19d2hpbGUoMCk7aWYoKHh8MCk9PTE3NjAp
e3c9dX14PW18MDtlaihwLGYpO2dwKHUsdyxyLHgsbixvLHApO2R6KGNbcD4+Ml18MCl8MDtjW3E+
PjJdPWNbZT4+Ml07Z3EoYixxLHgsY1tuPj4yXXwwLGNbbz4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59
ZnVuY3Rpb24gZ3MoYixkLGUsZixnLGgpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9
aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2
PTAsdz0wLHg9MDtkPWk7aT1pKzE0NHwwO2o9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+
PjJdPWNbaj4+Ml07aj1kfDA7az1kKzh8MDtsPWQrMjR8MDttPWQrMTEyfDA7bj1kKzEyMHwwO289
ZCsxMjh8MDtwPWQrMTM2fDA7cT1qfDA7YVtxXT1hWzIzODRdfDA7YVtxKzF8MF09YVsyMzg1fDBd
fDA7YVtxKzJ8MF09YVsyMzg2fDBdfDA7YVtxKzN8MF09YVsyMzg3fDBdfDA7YVtxKzR8MF09YVsy
Mzg4fDBdfDA7YVtxKzV8MF09YVsyMzg5fDBdfDA7cj1qKzF8MDtzPWYrNHwwO3Q9Y1tzPj4yXXww
O2lmKCh0JjIwNDh8MCk9PTApe3U9cn1lbHNle2Fbcl09NDM7dT1qKzJ8MH1pZigodCY1MTJ8MCk9
PTApe3Y9dX1lbHNle2FbdV09MzU7dj11KzF8MH1hW3ZdPTEwODt1PXYrMXwwO0wyMTUwOmRve3N3
aXRjaCh0Jjc0fDApe2Nhc2UgNjQ6e2FbdV09MTExO2JyZWFrfTtjYXNlIDg6e2lmKCh0JjE2Mzg0
fDApPT0wKXthW3VdPTEyMDticmVhayBMMjE1MH1lbHNle2FbdV09ODg7YnJlYWsgTDIxNTB9YnJl
YWt9O2RlZmF1bHQ6e2FbdV09MTE3fX19d2hpbGUoMCk7dT1rfDA7ZG97aWYoKGFbMTYyNjRdfDAp
PT0wKXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13
aGlsZSgwKTt0PWdiKHUsMTIsY1syOTU4XXwwLHEsKHE9aSxpPWkrOHwwLGNbcT4+Ml09aCxxKXww
KXwwO2k9cTtxPWsrdHwwO0wyMTYzOmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNlIDE2Onto
PWFbdV18MDtzd2l0Y2goaDw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3c9aysxfDA7YnJlYWsg
TDIxNjM7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgodHwwKT4xJmg8PDI0Pj4yND09NDgpKXt4PTE3
ODU7YnJlYWsgTDIxNjN9c3dpdGNoKGFbaysxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFr
fTtkZWZhdWx0Ont4PTE3ODU7YnJlYWsgTDIxNjN9fXc9aysyfDA7YnJlYWt9O2Nhc2UgMzI6e3c9
cTticmVha307ZGVmYXVsdDp7eD0xNzg1fX19d2hpbGUoMCk7aWYoKHh8MCk9PTE3ODUpe3c9dX14
PWx8MDtlaihvLGYpO2dwKHUsdyxxLHgsbSxuLG8pO2R6KGNbbz4+Ml18MCl8MDtjW3A+PjJdPWNb
ZT4+Ml07Z3EoYixwLHgsY1ttPj4yXXwwLGNbbj4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59ZnVuY3Rp
b24gZ3QoYixkLGUsZixnLGgsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7
aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0w
LHc9MCx4PTA7ZD1pO2k9aSsyNDB8MDtrPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4y
XT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzMyfDA7bj1kKzIwOHwwO289ZCsyMTZ8MDtwPWQr
MjI0fDA7cT1kKzIzMnwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7cj1rO2s9cisxfDA7cz1mKzR8
MDt0PWNbcz4+Ml18MDtpZigodCYyMDQ4fDApPT0wKXt1PWt9ZWxzZXthW2tdPTQzO3U9cisyfDB9
aWYoKHQmNTEyfDApPT0wKXt2PXV9ZWxzZXthW3VdPTM1O3Y9dSsxfDB9YVt2XT0xMDg7YVt2KzF8
MF09MTA4O3U9disyfDA7TDIxODE6ZG97c3dpdGNoKHQmNzR8MCl7Y2FzZSA4OntpZigodCYxNjM4
NHwwKT09MCl7YVt1XT0xMjA7YnJlYWsgTDIxODF9ZWxzZXthW3VdPTg4O2JyZWFrIEwyMTgxfWJy
ZWFrfTtjYXNlIDY0OnthW3VdPTExMTticmVha307ZGVmYXVsdDp7YVt1XT0xMTd9fX13aGlsZSgw
KTt1PWx8MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFr
fWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO3Q9Z2IodSwyMyxjWzI5NThdfDAsciwo
cj1pLGk9aSsxNnwwLGNbcj4+Ml09aCxjW3IrOD4+Ml09aixyKXwwKXwwO2k9cjtyPWwrdHwwO0wy
MTk0OmRve3N3aXRjaChjW3M+PjJdJjE3NnwwKXtjYXNlIDE2OntqPWFbdV18MDtzd2l0Y2goajw8
MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3c9bCsxfDA7YnJlYWsgTDIxOTQ7YnJlYWt9O2RlZmF1
bHQ6e319aWYoISgodHwwKT4xJmo8PDI0Pj4yND09NDgpKXt4PTE4MTA7YnJlYWsgTDIxOTR9c3dp
dGNoKGFbbCsxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0Ont4PTE4MTA7
YnJlYWsgTDIxOTR9fXc9bCsyfDA7YnJlYWt9O2Nhc2UgMzI6e3c9cjticmVha307ZGVmYXVsdDp7
eD0xODEwfX19d2hpbGUoMCk7aWYoKHh8MCk9PTE4MTApe3c9dX14PW18MDtlaihwLGYpO2dwKHUs
dyxyLHgsbixvLHApO2R6KGNbcD4+Ml18MCl8MDtjW3E+PjJdPWNbZT4+Ml07Z3EoYixxLHgsY1tu
Pj4yXXwwLGNbbz4+Ml18MCxmLGcpO2k9ZDtyZXR1cm59ZnVuY3Rpb24gZ3UoYixkLGUsZixnLGop
e2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2o9K2o7dmFyIGs9MCxsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTA7ZD1pO2k9aSszMjB8MDtrPWU7ZT1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9ZHwwO2w9ZCs4fDA7bT1kKzQwfDA7bj1k
KzQ4fDA7bz1kKzI4MHwwO3A9ZCsyODh8MDtxPWQrMjk2fDA7cj1kKzMwNHwwO3M9ZCszMTJ8MDtj
W2s+PjJdPTM3O2Nbays0Pj4yXT0wO3Q9aztrPXQrMXwwO3U9Zis0fDA7dj1jW3U+PjJdfDA7aWYo
KHYmMjA0OHwwKT09MCl7dz1rfWVsc2V7YVtrXT00Mzt3PXQrMnwwfWlmKCh2JjEwMjR8MCk9PTAp
e3g9d31lbHNle2Fbd109MzU7eD13KzF8MH13PXYmMjYwO2s9dj4+PjE0O0wyMjEyOmRve2lmKCh3
fDApPT0yNjApe2lmKChrJjF8MCk9PTApe2FbeF09OTc7eT0wO2JyZWFrfWVsc2V7YVt4XT02NTt5
PTA7YnJlYWt9fWVsc2V7YVt4XT00Njt2PXgrMnwwO2FbeCsxfDBdPTQyO3N3aXRjaCh3fDApe2Nh
c2UgMjU2OntpZigoayYxfDApPT0wKXthW3ZdPTEwMTt5PTE7YnJlYWsgTDIyMTJ9ZWxzZXthW3Zd
PTY5O3k9MTticmVhayBMMjIxMn1icmVha307Y2FzZSA0OntpZigoayYxfDApPT0wKXthW3ZdPTEw
Mjt5PTE7YnJlYWsgTDIyMTJ9ZWxzZXthW3ZdPTcwO3k9MTticmVhayBMMjIxMn1icmVha307ZGVm
YXVsdDp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDM7eT0xO2JyZWFrIEwyMjEyfWVsc2V7YVt2XT03
MTt5PTE7YnJlYWsgTDIyMTJ9fX19fXdoaWxlKDApO2s9bHwwO2NbbT4+Ml09aztkb3tpZigoYVsx
NjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0
LDApfDB9fXdoaWxlKDApO2w9Y1syOTU4XXwwO2lmKHkpe3c9Z2IoaywzMCxsLHQsKHo9aSxpPWkr
MTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtBPXd9ZWxzZXt3
PWdiKGssMzAsbCx0LCh6PWksaT1pKzh8MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7QT13fWRve2lm
KChBfDApPjI5KXt3PShhWzE2MjY0XXwwKT09MDtpZih5KXtkb3tpZih3KXtpZigoYmMoMTYyNjQp
fDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWdoKG0sY1sy
OTU4XXwwLHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXww
KXwwO2k9ejtCPWx9ZWxzZXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5
NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt3PWdoKG0sY1syOTU4XXwwLHQsKHo9aSxpPWkr
MTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtCPXd9dz1jW20+
PjJdfDA7aWYoKHd8MCkhPTApe0M9QjtEPXc7RT13O2JyZWFrfWtYKCk7dz1jW20+PjJdfDA7Qz1C
O0Q9dztFPXd9ZWxzZXtDPUE7RD0wO0U9Y1ttPj4yXXwwfX13aGlsZSgwKTtBPUUrQ3wwO0wyMjYx
OmRve3N3aXRjaChjW3U+PjJdJjE3NnwwKXtjYXNlIDMyOntGPUE7YnJlYWt9O2Nhc2UgMTY6e0I9
YVtFXXwwO3N3aXRjaChCPDwyND4+MjQpe2Nhc2UgNDU6Y2FzZSA0Mzp7Rj1FKzF8MDticmVhayBM
MjI2MTticmVha307ZGVmYXVsdDp7fX1pZighKChDfDApPjEmQjw8MjQ+PjI0PT00OCkpe0c9MTg2
NjticmVhayBMMjI2MX1zd2l0Y2goYVtFKzF8MF18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9
O2RlZmF1bHQ6e0c9MTg2NjticmVhayBMMjI2MX19Rj1FKzJ8MDticmVha307ZGVmYXVsdDp7Rz0x
ODY2fX19d2hpbGUoMCk7aWYoKEd8MCk9PTE4NjYpe0Y9RX1kb3tpZigoRXwwKT09KGt8MCkpe0g9
bnwwO0k9MDtKPWt9ZWxzZXtHPWtKKEM8PDMpfDA7dT1HO2lmKChHfDApIT0wKXtIPXU7ST11O0o9
RTticmVha31rWCgpO0g9dTtJPXU7Sj1jW20+PjJdfDB9fXdoaWxlKDApO2VqKHEsZik7Z3YoSixG
LEEsSCxvLHAscSk7ZHooY1txPj4yXXwwKXwwO3E9ZXwwO2Nbcz4+Ml09Y1txPj4yXTtncShyLHMs
SCxjW28+PjJdfDAsY1twPj4yXXwwLGYsZyk7Zz1jW3I+PjJdfDA7Y1txPj4yXT1nO2NbYj4+Ml09
ZztpZigoSXwwKSE9MCl7a0soSSl9aWYoKER8MCk9PTApe2k9ZDtyZXR1cm59a0soRCk7aT1kO3Jl
dHVybn1mdW5jdGlvbiBndihiLGUsZixnLGgsaixrKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJ
PTAsSj0wLEs9MCxMPTAsTT0wLE49MDtsPWk7aT1pKzQ4fDA7bT1sfDA7bj1sKzE2fDA7bz1sKzMy
fDA7cD1rfDA7az1jW3A+PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW24+PjJdPTE1Njg4O2Nb
bis0Pj4yXT0xMjtjW24rOD4+Ml09MDtkVygxNTY4OCxuLDk2KX1uPShjWzM5MjNdfDApLTF8MDtx
PWNbays4Pj4yXXwwO2lmKChjW2srMTI+PjJdfDApLXE+PjI+Pj4wPD1uPj4+MCl7cj1iTyg0KXww
O3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfWs9Y1txKyhuPDwyKT4+Ml18MDtpZigoa3wwKT09
MCl7cj1iTyg0KXwwO3M9cjtrcShzKTtibChyfDAsODE3NiwxMzQpfXI9aztzPWNbcD4+Ml18MDtp
ZigoY1szODI2XXwwKSE9LTEpe2NbbT4+Ml09MTUzMDQ7Y1ttKzQ+PjJdPTEyO2NbbSs4Pj4yXT0w
O2RXKDE1MzA0LG0sOTYpfW09KGNbMzgyN118MCktMXwwO3A9Y1tzKzg+PjJdfDA7aWYoKGNbcysx
Mj4+Ml18MCktcD4+Mj4+PjA8PW0+Pj4wKXt0PWJPKDQpfDA7dT10O2txKHUpO2JsKHR8MCw4MTc2
LDEzNCl9cz1jW3ArKG08PDIpPj4yXXwwO2lmKChzfDApPT0wKXt0PWJPKDQpfDA7dT10O2txKHUp
O2JsKHR8MCw4MTc2LDEzNCl9dD1zO2JaW2NbKGNbcz4+Ml18MCkrMjA+PjJdJjEyN10obyx0KTtj
W2o+PjJdPWc7dT1hW2JdfDA7c3dpdGNoKHU8PDI0Pj4yNCl7Y2FzZSA0NTpjYXNlIDQzOnttPWJf
W2NbKGNbaz4+Ml18MCkrNDQ+PjJdJjMxXShyLHUpfDA7dT1jW2o+PjJdfDA7Y1tqPj4yXT11KzQ7
Y1t1Pj4yXT1tO3Y9YisxfDA7YnJlYWt9O2RlZmF1bHQ6e3Y9Yn19bT1mO0wyMzA5OmRve2lmKCht
LXZ8MCk+MSl7aWYoKGFbdl18MCkhPTQ4KXt3PXY7eD0xOTIxO2JyZWFrfXU9disxfDA7c3dpdGNo
KGFbdV18MCl7Y2FzZSAxMjA6Y2FzZSA4ODp7YnJlYWt9O2RlZmF1bHQ6e3c9djt4PTE5MjE7YnJl
YWsgTDIzMDl9fXA9aztuPWJfW2NbKGNbcD4+Ml18MCkrNDQ+PjJdJjMxXShyLDQ4KXwwO3E9Y1tq
Pj4yXXwwO2Nbaj4+Ml09cSs0O2NbcT4+Ml09bjtuPXYrMnwwO3E9Yl9bY1soY1twPj4yXXwwKSs0
ND4+Ml0mMzFdKHIsYVt1XXwwKXwwO3U9Y1tqPj4yXXwwO2Nbaj4+Ml09dSs0O2NbdT4+Ml09cTtx
PW47d2hpbGUoMSl7aWYocT4+PjA+PWY+Pj4wKXt5PXE7ej1uO2JyZWFrIEwyMzA5fXU9YVtxXXww
O2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4
XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7aWYoKGEzKHU8PDI0Pj4yNHwwLGNbMjk1OF18MCl8
MCk9PTApe3k9cTt6PW47YnJlYWt9ZWxzZXtxPXErMXwwfX19ZWxzZXt3PXY7eD0xOTIxfX13aGls
ZSgwKTtMMjMyNDpkb3tpZigoeHwwKT09MTkyMSl7d2hpbGUoMSl7eD0wO2lmKHc+Pj4wPj1mPj4+
MCl7eT13O3o9djticmVhayBMMjMyNH1xPWFbd118MDtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lm
KChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDAp
O2lmKChiSChxPDwyND4+MjR8MCxjWzI5NThdfDApfDApPT0wKXt5PXc7ej12O2JyZWFrfWVsc2V7
dz13KzF8MDt4PTE5MjF9fX19d2hpbGUoMCk7eD1vO3c9bzt2PWRbd118MDtpZigodiYxfDApPT0w
KXtBPXY+Pj4xfWVsc2V7QT1jW28rND4+Ml18MH1kb3tpZigoQXwwKT09MCl7dj1jW2o+PjJdfDA7
dT1jWyhjW2s+PjJdfDApKzQ4Pj4yXXwwO2NhW3UmMTVdKHIseix5LHYpfDA7Y1tqPj4yXT0oY1tq
Pj4yXXwwKSsoeS16PDwyKX1lbHNle2Rve2lmKCh6fDApIT0oeXwwKSl7dj15LTF8MDtpZih6Pj4+
MDx2Pj4+MCl7Qj16O0M9dn1lbHNle2JyZWFrfWRve3Y9YVtCXXwwO2FbQl09YVtDXXwwO2FbQ109
djtCPUIrMXwwO0M9Qy0xfDA7fXdoaWxlKEI+Pj4wPEM+Pj4wKX19d2hpbGUoMCk7cT1iMFtjWyhj
W3M+PjJdfDApKzE2Pj4yXSYxMjddKHQpfDA7aWYoej4+PjA8eT4+PjApe3Y9eCsxfDA7dT1vKzR8
MDtuPW8rOHwwO3A9aztEPTA7RT0wO0Y9ejt3aGlsZSgxKXtHPShhW3ddJjEpPT0wO2Rve2lmKChh
WyhHP3Y6Y1tuPj4yXXwwKStFfDBdfDApPjApe2lmKChEfDApIT0oYVsoRz92OmNbbj4+Ml18MCkr
RXwwXXwwKSl7SD1FO0k9RDticmVha31KPWNbaj4+Ml18MDtjW2o+PjJdPUorNDtjW0o+PjJdPXE7
Sj1kW3ddfDA7SD0oRT4+PjA8KCgoSiYxfDApPT0wP0o+Pj4xOmNbdT4+Ml18MCktMXwwKT4+PjAp
K0V8MDtJPTB9ZWxzZXtIPUU7ST1EfX13aGlsZSgwKTtHPWJfW2NbKGNbcD4+Ml18MCkrNDQ+PjJd
JjMxXShyLGFbRl18MCl8MDtKPWNbaj4+Ml18MDtjW2o+PjJdPUorNDtjW0o+PjJdPUc7Rz1GKzF8
MDtpZihHPj4+MDx5Pj4+MCl7RD1JKzF8MDtFPUg7Rj1HfWVsc2V7YnJlYWt9fX1GPWcrKHotYjw8
Mil8MDtFPWNbaj4+Ml18MDtpZigoRnwwKT09KEV8MCkpe2JyZWFrfUQ9RS00fDA7aWYoRj4+PjA8
RD4+PjApe0s9RjtMPUR9ZWxzZXticmVha31kb3tEPWNbSz4+Ml18MDtjW0s+PjJdPWNbTD4+Ml07
Y1tMPj4yXT1EO0s9Sys0fDA7TD1MLTR8MDt9d2hpbGUoSz4+PjA8TD4+PjApfX13aGlsZSgwKTtM
MjM2Mzpkb3tpZih5Pj4+MDxmPj4+MCl7TD1rO0s9eTt3aGlsZSgxKXt6PWFbS118MDtpZih6PDwy
ND4+MjQ9PTQ2KXticmVha31IPWJfW2NbKGNbTD4+Ml18MCkrNDQ+PjJdJjMxXShyLHopfDA7ej1j
W2o+PjJdfDA7Y1tqPj4yXT16KzQ7Y1t6Pj4yXT1IO0g9SysxfDA7aWYoSD4+PjA8Zj4+PjApe0s9
SH1lbHNle009SDticmVhayBMMjM2M319TD1iMFtjWyhjW3M+PjJdfDApKzEyPj4yXSYxMjddKHQp
fDA7SD1jW2o+PjJdfDA7Y1tqPj4yXT1IKzQ7Y1tIPj4yXT1MO009SysxfDB9ZWxzZXtNPXl9fXdo
aWxlKDApO2NhW2NbKGNbaz4+Ml18MCkrNDg+PjJdJjE1XShyLE0sZixjW2o+PjJdfDApfDA7cj0o
Y1tqPj4yXXwwKSsobS1NPDwyKXwwO2Nbaj4+Ml09cjtpZigoZXwwKT09KGZ8MCkpe049cjtjW2g+
PjJdPU47ZFAobyk7aT1sO3JldHVybn1OPWcrKGUtYjw8Mil8MDtjW2g+PjJdPU47ZFAobyk7aT1s
O3JldHVybn1mdW5jdGlvbiBndyhiLGQsZSxmLGcsail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aj0rajt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9
MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0w
LEo9MDtkPWk7aT1pKzMyMHwwO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNb
az4+Ml07az1kfDA7bD1kKzh8MDttPWQrNDB8MDtuPWQrNDh8MDtvPWQrMjgwfDA7cD1kKzI4OHww
O3E9ZCsyOTZ8MDtyPWQrMzA0fDA7cz1kKzMxMnwwO2Nbaz4+Ml09Mzc7Y1trKzQ+PjJdPTA7dD1r
O2s9dCsxfDA7dT1mKzR8MDt2PWNbdT4+Ml18MDtpZigodiYyMDQ4fDApPT0wKXt3PWt9ZWxzZXth
W2tdPTQzO3c9dCsyfDB9aWYoKHYmMTAyNHwwKT09MCl7eD13fWVsc2V7YVt3XT0zNTt4PXcrMXww
fXc9diYyNjA7az12Pj4+MTQ7TDIzODQ6ZG97aWYoKHd8MCk9PTI2MCl7YVt4XT03Njt2PXgrMXww
O2lmKChrJjF8MCk9PTApe2Fbdl09OTc7eT0wO2JyZWFrfWVsc2V7YVt2XT02NTt5PTA7YnJlYWt9
fWVsc2V7YVt4XT00NjthW3grMXwwXT00MjthW3grMnwwXT03Njt2PXgrM3wwO3N3aXRjaCh3fDAp
e2Nhc2UgMjU2OntpZigoayYxfDApPT0wKXthW3ZdPTEwMTt5PTE7YnJlYWsgTDIzODR9ZWxzZXth
W3ZdPTY5O3k9MTticmVhayBMMjM4NH1icmVha307Y2FzZSA0OntpZigoayYxfDApPT0wKXthW3Zd
PTEwMjt5PTE7YnJlYWsgTDIzODR9ZWxzZXthW3ZdPTcwO3k9MTticmVhayBMMjM4NH1icmVha307
ZGVmYXVsdDp7aWYoKGsmMXwwKT09MCl7YVt2XT0xMDM7eT0xO2JyZWFrIEwyMzg0fWVsc2V7YVt2
XT03MTt5PTE7YnJlYWsgTDIzODR9fX19fXdoaWxlKDApO2s9bHwwO2NbbT4+Ml09aztkb3tpZigo
YVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwx
MzQ0LDApfDB9fXdoaWxlKDApO2w9Y1syOTU4XXwwO2lmKHkpe3c9Z2IoaywzMCxsLHQsKHo9aSxp
PWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6KXwwKXwwO2k9ejtBPXd9ZWxz
ZXt3PWdiKGssMzAsbCx0LCh6PWksaT1pKzh8MCxoW3o+PjNdPWoseil8MCl8MDtpPXo7QT13fWRv
e2lmKChBfDApPjI5KXt3PShhWzE2MjY0XXwwKT09MDtpZih5KXtkb3tpZih3KXtpZigoYmMoMTYy
NjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtsPWdoKG0s
Y1syOTU4XXwwLHQsKHo9aSxpPWkrMTZ8MCxjW3o+PjJdPWNbZis4Pj4yXSxoW3orOD4+M109aix6
KXwwKXwwO2k9ejtCPWx9ZWxzZXtkb3tpZih3KXtpZigoYmMoMTYyNjQpfDApPT0wKXticmVha31j
WzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTt3PWdoKG0sY1syOTU4XXwwLHQsKHo9aSxp
PWkrOHwwLGhbej4+M109aix6KXwwKXwwO2k9ejtCPXd9dz1jW20+PjJdfDA7aWYoKHd8MCkhPTAp
e0M9QjtEPXc7RT13O2JyZWFrfWtYKCk7dz1jW20+PjJdfDA7Qz1CO0Q9dztFPXd9ZWxzZXtDPUE7
RD0wO0U9Y1ttPj4yXXwwfX13aGlsZSgwKTtBPUUrQ3wwO0wyNDMzOmRve3N3aXRjaChjW3U+PjJd
JjE3NnwwKXtjYXNlIDE2OntCPWFbRV18MDtzd2l0Y2goQjw8MjQ+PjI0KXtjYXNlIDQ1OmNhc2Ug
NDM6e0Y9RSsxfDA7YnJlYWsgTDI0MzM7YnJlYWt9O2RlZmF1bHQ6e319aWYoISgoQ3wwKT4xJkI8
PDI0Pj4yND09NDgpKXtHPTIwMTg7YnJlYWsgTDI0MzN9c3dpdGNoKGFbRSsxfDBdfDApe2Nhc2Ug
MTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0OntHPTIwMTg7YnJlYWsgTDI0MzN9fUY9RSsyfDA7
YnJlYWt9O2Nhc2UgMzI6e0Y9QTticmVha307ZGVmYXVsdDp7Rz0yMDE4fX19d2hpbGUoMCk7aWYo
KEd8MCk9PTIwMTgpe0Y9RX1kb3tpZigoRXwwKT09KGt8MCkpe0g9bnwwO0k9MDtKPWt9ZWxzZXtH
PWtKKEM8PDMpfDA7dT1HO2lmKChHfDApIT0wKXtIPXU7ST11O0o9RTticmVha31rWCgpO0g9dTtJ
PXU7Sj1jW20+PjJdfDB9fXdoaWxlKDApO2VqKHEsZik7Z3YoSixGLEEsSCxvLHAscSk7ZHooY1tx
Pj4yXXwwKXwwO3E9ZXwwO2Nbcz4+Ml09Y1txPj4yXTtncShyLHMsSCxjW28+PjJdfDAsY1twPj4y
XXwwLGYsZyk7Zz1jW3I+PjJdfDA7Y1txPj4yXT1nO2NbYj4+Ml09ZztpZigoSXwwKSE9MCl7a0so
SSl9aWYoKER8MCk9PTApe2k9ZDtyZXR1cm59a0soRCk7aT1kO3JldHVybn1mdW5jdGlvbiBneChi
LGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxr
PTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wO2Q9aTtpPWkrMjE2fDA7aj1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+
Ml09Y1tqPj4yXTtqPWR8MDtrPWQrMjR8MDtsPWQrNDh8MDttPWQrMjAwfDA7bj1kKzIwOHwwO289
ZCsxNnwwO2Fbb109YVsyMzkyXXwwO2FbbysxfDBdPWFbMjM5M3wwXXwwO2FbbysyfDBdPWFbMjM5
NHwwXXwwO2FbbyszfDBdPWFbMjM5NXwwXXwwO2Fbbys0fDBdPWFbMjM5NnwwXXwwO2Fbbys1fDBd
PWFbMjM5N3wwXXwwO3A9a3wwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXww
KT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7cT1nYihwLDIwLGNb
Mjk1OF18MCxvLChvPWksaT1pKzh8MCxjW28+PjJdPWgsbyl8MCl8MDtpPW87bz1rK3F8MDtMMjQ2
NDpkb3tzd2l0Y2goY1tmKzQ+PjJdJjE3NnwwKXtjYXNlIDE2OntoPWFbcF18MDtzd2l0Y2goaDw8
MjQ+PjI0KXtjYXNlIDQ1OmNhc2UgNDM6e3I9aysxfDA7YnJlYWsgTDI0NjQ7YnJlYWt9O2RlZmF1
bHQ6e319aWYoISgocXwwKT4xJmg8PDI0Pj4yND09NDgpKXtzPTIwNTE7YnJlYWsgTDI0NjR9c3dp
dGNoKGFbaysxfDBdfDApe2Nhc2UgMTIwOmNhc2UgODg6e2JyZWFrfTtkZWZhdWx0OntzPTIwNTE7
YnJlYWsgTDI0NjR9fXI9aysyfDA7YnJlYWt9O2Nhc2UgMzI6e3I9bzticmVha307ZGVmYXVsdDp7
cz0yMDUxfX19d2hpbGUoMCk7aWYoKHN8MCk9PTIwNTEpe3I9cH1laihtLGYpO3M9bXwwO209Y1tz
Pj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tqPj4yXT0xNTY4ODtjW2orND4+Ml09MTI7Y1tq
Kzg+PjJdPTA7ZFcoMTU2ODgsaiw5Nil9aj0oY1szOTIzXXwwKS0xfDA7aD1jW20rOD4+Ml18MDtk
b3tpZigoY1ttKzEyPj4yXXwwKS1oPj4yPj4+MD5qPj4+MCl7dD1jW2grKGo8PDIpPj4yXXwwO2lm
KCh0fDApPT0wKXticmVha311PXQ7dj1jW3M+PjJdfDA7ZHoodil8MDt2PWx8MDt3PWNbKGNbdD4+
Ml18MCkrNDg+PjJdfDA7Y2FbdyYxNV0odSxwLG8sdil8MDt1PWwrKHE8PDIpfDA7aWYoKHJ8MCk9
PShvfDApKXt4PXU7eT1lfDA7ej1jW3k+PjJdfDA7QT1ufDA7Y1tBPj4yXT16O2dxKGIsbix2LHgs
dSxmLGcpO2k9ZDtyZXR1cm59eD1sKyhyLWs8PDIpfDA7eT1lfDA7ej1jW3k+PjJdfDA7QT1ufDA7
Y1tBPj4yXT16O2dxKGIsbix2LHgsdSxmLGcpO2k9ZDtyZXR1cm59fXdoaWxlKDApO2Q9Yk8oNCl8
MDtrcShkKTtibChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGd5KGEpe2E9YXwwO3JldHVybiAyfWZ1
bmN0aW9uIGd6KGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGdBKGEpe2E9
YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGdCKGEsYixkLGUsZixnLGgpe2E9YXwwO2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MDtqPWk7aT1pKzE2
fDA7az1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7Y1trPj4yXT1j
W2Q+PjJdO2NbbD4+Ml09Y1tlPj4yXTtnRChhLGIsayxsLGYsZyxoLDIzNzYsMjM4NCk7aT1qO3Jl
dHVybn1mdW5jdGlvbiBnQyhiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtrPWk7
aT1pKzE2fDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTtsPWY7
Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209ays4fDA7bj1k
Kzh8MDtvPWIwW2NbKGNbbj4+Ml18MCkrMjA+PjJdJjEyN10obil8MDtjW2w+PjJdPWNbZT4+Ml07
Y1ttPj4yXT1jW2Y+PjJdO2Y9bztlPWFbb118MDtpZigoZSYxKT09MCl7cD1mKzF8MDtxPWYrMXww
fWVsc2V7Zj1jW28rOD4+Ml18MDtwPWY7cT1mfWY9ZSYyNTU7aWYoKGYmMXwwKT09MCl7cj1mPj4+
MX1lbHNle3I9Y1tvKzQ+PjJdfDB9Z0QoYixkLGwsbSxnLGgsaixxLHArcnwwKTtpPWs7cmV0dXJu
fWZ1bmN0aW9uIGdEKGQsZSxmLGcsaCxqLGssbCxtKXtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDt2YXIgbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9
MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wO249aTtpPWkrNDh8
MDtvPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW28+PjJdO289ZztnPWk7aT1p
KzR8MDtpPWkrNz4+Mzw8MztjW2c+PjJdPWNbbz4+Ml07bz1ufDA7cD1uKzE2fDA7cT1uKzI0fDA7
cj1uKzMyfDA7cz1uKzQwfDA7ZWoocCxoKTt0PXB8MDtwPWNbdD4+Ml18MDtpZigoY1szOTI0XXww
KSE9LTEpe2Nbbz4+Ml09MTU2OTY7Y1tvKzQ+PjJdPTEyO2Nbbys4Pj4yXT0wO2RXKDE1Njk2LG8s
OTYpfW89KGNbMzkyNV18MCktMXwwO3U9Y1twKzg+PjJdfDA7ZG97aWYoKGNbcCsxMj4+Ml18MCkt
dT4+Mj4+PjA+bz4+PjApe3Y9Y1t1KyhvPDwyKT4+Ml18MDtpZigodnwwKT09MCl7YnJlYWt9dz12
O3g9Y1t0Pj4yXXwwO2R6KHgpfDA7Y1tqPj4yXT0wO3g9ZnwwO0wyNTA2OmRve2lmKChsfDApPT0o
bXwwKSl7eT0yMTQxfWVsc2V7ej1nfDA7QT12O0I9dis4fDA7Qz12O0Q9ZTtFPXJ8MDtGPXN8MDtH
PXF8MDtIPWw7ST0wO0wyNTA4OndoaWxlKDEpe0o9STt3aGlsZSgxKXtpZigoSnwwKSE9MCl7eT0y
MTQxO2JyZWFrIEwyNTA2fUs9Y1t4Pj4yXXwwO2Rve2lmKChLfDApPT0wKXtMPTB9ZWxzZXtpZigo
Y1tLKzEyPj4yXXwwKSE9KGNbSysxNj4+Ml18MCkpe0w9SzticmVha31pZigoYjBbY1soY1tLPj4y
XXwwKSszNj4+Ml0mMTI3XShLKXwwKSE9LTEpe0w9SzticmVha31jW3g+PjJdPTA7TD0wfX13aGls
ZSgwKTtLPShMfDApPT0wO009Y1t6Pj4yXXwwO0wyNTE4OmRve2lmKChNfDApPT0wKXt5PTIwOTR9
ZWxzZXtkb3tpZigoY1tNKzEyPj4yXXwwKT09KGNbTSsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW00+
PjJdfDApKzM2Pj4yXSYxMjddKE0pfDApIT0tMSl7YnJlYWt9Y1t6Pj4yXT0wO3k9MjA5NDticmVh
ayBMMjUxOH19d2hpbGUoMCk7aWYoSyl7Tj1NfWVsc2V7eT0yMDk1O2JyZWFrIEwyNTA4fX19d2hp
bGUoMCk7aWYoKHl8MCk9PTIwOTQpe3k9MDtpZihLKXt5PTIwOTU7YnJlYWsgTDI1MDh9ZWxzZXtO
PTB9fWlmKChiMVtjWyhjW0E+PjJdfDApKzM2Pj4yXSY2M10odyxhW0hdfDAsMCl8MCk8PDI0Pj4y
ND09Mzcpe3k9MjA5ODticmVha31NPWFbSF18MDtpZihNPDwyND4+MjQ+LTEpe089Y1tCPj4yXXww
O2lmKChiW08rKE08PDI0Pj4yNDw8MSk+PjFdJjgxOTIpIT0wKXtQPUg7eT0yMTA5O2JyZWFrfX1R
PUwrMTJ8MDtNPWNbUT4+Ml18MDtSPUwrMTZ8MDtpZigoTXwwKT09KGNbUj4+Ml18MCkpe1M9KGIw
W2NbKGNbTD4+Ml18MCkrMzY+PjJdJjEyN10oTCl8MCkmMjU1fWVsc2V7Uz1hW01dfDB9TT1iX1tj
WyhjW0M+PjJdfDApKzEyPj4yXSYzMV0odyxTKXwwO2lmKE08PDI0Pj4yND09KGJfW2NbKGNbQz4+
Ml18MCkrMTI+PjJdJjMxXSh3LGFbSF18MCl8MCk8PDI0Pj4yNCl7eT0yMTM2O2JyZWFrfWNbaj4+
Ml09NDtKPTR9TDI1MzY6ZG97aWYoKHl8MCk9PTIxMzYpe3k9MDtKPWNbUT4+Ml18MDtpZigoSnww
KT09KGNbUj4+Ml18MCkpe009Y1soY1tMPj4yXXwwKSs0MD4+Ml18MDtiMFtNJjEyN10oTCl8MH1l
bHNle2NbUT4+Ml09SisxfVQ9SCsxfDB9ZWxzZSBpZigoeXwwKT09MjA5OCl7eT0wO0o9SCsxfDA7
aWYoKEp8MCk9PShtfDApKXt5PTIwOTk7YnJlYWsgTDI1MDh9TT1iMVtjWyhjW0E+PjJdfDApKzM2
Pj4yXSY2M10odyxhW0pdfDAsMCl8MDtzd2l0Y2goTTw8MjQ+PjI0KXtjYXNlIDY5OmNhc2UgNDg6
e1U9SCsyfDA7aWYoKFV8MCk9PShtfDApKXt5PTIxMDI7YnJlYWsgTDI1MDh9Vj1NO1c9YjFbY1so
Y1tBPj4yXXwwKSszNj4+Ml0mNjNdKHcsYVtVXXwwLDApfDA7WD1VO2JyZWFrfTtkZWZhdWx0OntW
PTA7Vz1NO1g9Sn19Sj1jWyhjW0Q+PjJdfDApKzM2Pj4yXXwwO2NbRT4+Ml09TDtjW0Y+PjJdPU47
YjdbSiY3XShxLGUscixzLGgsaixrLFcsVik7Y1t4Pj4yXT1jW0c+PjJdO1Q9WCsxfDB9ZWxzZSBp
ZigoeXwwKT09MjEwOSl7d2hpbGUoMSl7eT0wO0o9UCsxfDA7aWYoKEp8MCk9PShtfDApKXtZPW07
YnJlYWt9TT1hW0pdfDA7aWYoTTw8MjQ+PjI0PD0tMSl7WT1KO2JyZWFrfWlmKChiW08rKE08PDI0
Pj4yNDw8MSk+PjFdJjgxOTIpPT0wKXtZPUo7YnJlYWt9ZWxzZXtQPUo7eT0yMTA5fX1LPUw7Sj1O
O3doaWxlKDEpe2Rve2lmKChLfDApPT0wKXtaPTB9ZWxzZXtpZigoY1tLKzEyPj4yXXwwKSE9KGNb
SysxNj4+Ml18MCkpe1o9SzticmVha31pZigoYjBbY1soY1tLPj4yXXwwKSszNj4+Ml0mMTI3XShL
KXwwKSE9LTEpe1o9SzticmVha31jW3g+PjJdPTA7Wj0wfX13aGlsZSgwKTtNPShafDApPT0wO2Rv
e2lmKChKfDApPT0wKXt5PTIxMjJ9ZWxzZXtpZigoY1tKKzEyPj4yXXwwKSE9KGNbSisxNj4+Ml18
MCkpe2lmKE0pe189SjticmVha31lbHNle1Q9WTticmVhayBMMjUzNn19aWYoKGIwW2NbKGNbSj4+
Ml18MCkrMzY+PjJdJjEyN10oSil8MCk9PS0xKXtjW3o+PjJdPTA7eT0yMTIyO2JyZWFrfWVsc2V7
aWYoTV4oSnwwKT09MCl7Xz1KO2JyZWFrfWVsc2V7VD1ZO2JyZWFrIEwyNTM2fX19fXdoaWxlKDAp
O2lmKCh5fDApPT0yMTIyKXt5PTA7aWYoTSl7VD1ZO2JyZWFrIEwyNTM2fWVsc2V7Xz0wfX1VPVor
MTJ8MDskPWNbVT4+Ml18MDthYT1aKzE2fDA7aWYoKCR8MCk9PShjW2FhPj4yXXwwKSl7YWI9KGIw
W2NbKGNbWj4+Ml18MCkrMzY+PjJdJjEyN10oWil8MCkmMjU1fWVsc2V7YWI9YVskXXwwfWlmKGFi
PDwyND4+MjQ8PS0xKXtUPVk7YnJlYWsgTDI1MzZ9aWYoKGJbKGNbQj4+Ml18MCkrKGFiPDwyND4+
MjQ8PDEpPj4xXSY4MTkyKT09MCl7VD1ZO2JyZWFrIEwyNTM2fSQ9Y1tVPj4yXXwwO2lmKCgkfDAp
PT0oY1thYT4+Ml18MCkpe2FhPWNbKGNbWj4+Ml18MCkrNDA+PjJdfDA7YjBbYWEmMTI3XShaKXww
O0s9WjtKPV87Y29udGludWV9ZWxzZXtjW1U+PjJdPSQrMTtLPVo7Sj1fO2NvbnRpbnVlfX19fXdo
aWxlKDApO2lmKChUfDApPT0obXwwKSl7eT0yMTQxO2JyZWFrIEwyNTA2fUg9VDtJPWNbaj4+Ml18
MH1pZigoeXwwKT09MjA5OSl7Y1tqPj4yXT00O2FjPUw7YnJlYWt9ZWxzZSBpZigoeXwwKT09MjEw
Mil7Y1tqPj4yXT00O2FjPUw7YnJlYWt9ZWxzZSBpZigoeXwwKT09MjA5NSl7Y1tqPj4yXT00O2Fj
PUw7YnJlYWt9fX13aGlsZSgwKTtpZigoeXwwKT09MjE0MSl7YWM9Y1t4Pj4yXXwwfXc9ZnwwO2Rv
e2lmKChhY3wwKSE9MCl7aWYoKGNbYWMrMTI+PjJdfDApIT0oY1thYysxNj4+Ml18MCkpe2JyZWFr
fWlmKChiMFtjWyhjW2FjPj4yXXwwKSszNj4+Ml0mMTI3XShhYyl8MCkhPS0xKXticmVha31jW3c+
PjJdPTB9fXdoaWxlKDApO3g9Y1t3Pj4yXXwwO3Y9KHh8MCk9PTA7ST1nfDA7SD1jW0k+PjJdfDA7
TDI1OTQ6ZG97aWYoKEh8MCk9PTApe3k9MjE1MX1lbHNle2Rve2lmKChjW0grMTI+PjJdfDApPT0o
Y1tIKzE2Pj4yXXwwKSl7aWYoKGIwW2NbKGNbSD4+Ml18MCkrMzY+PjJdJjEyN10oSCl8MCkhPS0x
KXticmVha31jW0k+PjJdPTA7eT0yMTUxO2JyZWFrIEwyNTk0fX13aGlsZSgwKTtpZighdil7YnJl
YWt9YWQ9ZHwwO2NbYWQ+PjJdPXg7aT1uO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKHl8MCk9PTIx
NTEpe2lmKHYpe2JyZWFrfWFkPWR8MDtjW2FkPj4yXT14O2k9bjtyZXR1cm59fXdoaWxlKDApO2Nb
aj4+Ml09Y1tqPj4yXXwyO2FkPWR8MDtjW2FkPj4yXT14O2k9bjtyZXR1cm59fXdoaWxlKDApO249
Yk8oNCl8MDtrcShuKTtibChufDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdFKGEsYixkLGUsZixnLGgp
e2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9
MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtqPWk7aT1pKzMyfDA7az1kO2Q9
aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9aSs0fDA7aT1p
Kzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7bT1qKzI0fDA7ZWoobSxmKTtm
PW18MDttPWNbZj4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbbD4+Ml09MTU2OTY7Y1tsKzQ+
PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2LGwsOTYpfWw9KGNbMzkyNV18MCktMXwwO249Y1tt
Kzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+Ml18MCktbj4+Mj4+PjA+bD4+PjApe289Y1tuKyhsPDwy
KT4+Ml18MDtpZigob3wwKT09MCl7YnJlYWt9cD1vO289Y1tmPj4yXXwwO2R6KG8pfDA7bz1jW2U+
PjJdfDA7cT1iKzh8MDtyPWIwW2NbY1txPj4yXT4+Ml0mMTI3XShxKXwwO2Nbaz4+Ml09bztvPShm
cShkLGsscixyKzE2OHwwLHAsZywwKXwwKS1yfDA7aWYoKG98MCk+PTE2OCl7cz1kfDA7dD1jW3M+
PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1cm59Y1toKzI0Pj4yXT0oKG98MCkvMTJ8MHww
KSU3fDA7cz1kfDA7dD1jW3M+PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1cm59fXdoaWxl
KDApO2o9Yk8oNCl8MDtrcShqKTtibChqfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdGKGEsYixkLGUs
ZixnLGgpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAs
az0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtqPWk7aT1pKzMyfDA7
az1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7bT1qKzI0fDA7ZWoo
bSxmKTtmPW18MDttPWNbZj4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEpe2NbbD4+Ml09MTU2OTY7
Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2LGwsOTYpfWw9KGNbMzkyNV18MCktMXww
O249Y1ttKzg+PjJdfDA7ZG97aWYoKGNbbSsxMj4+Ml18MCktbj4+Mj4+PjA+bD4+PjApe289Y1tu
KyhsPDwyKT4+Ml18MDtpZigob3wwKT09MCl7YnJlYWt9cD1vO289Y1tmPj4yXXwwO2R6KG8pfDA7
bz1jW2U+PjJdfDA7cT1iKzh8MDtyPWIwW2NbKGNbcT4+Ml18MCkrND4+Ml0mMTI3XShxKXwwO2Nb
az4+Ml09bztvPShmcShkLGsscixyKzI4OHwwLHAsZywwKXwwKS1yfDA7aWYoKG98MCk+PTI4OCl7
cz1kfDA7dD1jW3M+PjJdfDA7dT1hfDA7Y1t1Pj4yXT10O2k9ajtyZXR1cm59Y1toKzE2Pj4yXT0o
KG98MCkvMTJ8MHwwKSUxMnwwO3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7
cmV0dXJufX13aGlsZSgwKTtqPWJPKDQpfDA7a3Eoaik7YmwoanwwLDgxNzYsMTM0KX1mdW5jdGlv
biBnRyhhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wO2I9aTtpPWkr
MzJ8MDtqPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2o+PjJdO2o9ZTtlPWk7
aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbaj4+Ml07aj1ifDA7az1iKzh8MDtsPWIrMjR8
MDtlaihsLGYpO2Y9bHwwO2w9Y1tmPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1trPj4yXT0x
NTY5NjtjW2srND4+Ml09MTI7Y1trKzg+PjJdPTA7ZFcoMTU2OTYsayw5Nil9az0oY1szOTI1XXww
KS0xfDA7bT1jW2wrOD4+Ml18MDtkb3tpZigoY1tsKzEyPj4yXXwwKS1tPj4yPj4+MD5rPj4+MCl7
bj1jW20rKGs8PDIpPj4yXXwwO2lmKChufDApPT0wKXticmVha31vPW47bj1jW2Y+PjJdfDA7ZHoo
bil8MDtjW2o+PjJdPWNbZT4+Ml07bj1nTChkLGosZyxvLDQpfDA7aWYoKGNbZz4+Ml0mNHwwKSE9
MCl7cD1kfDA7cT1jW3A+PjJdfDA7cj1hfDA7Y1tyPj4yXT1xO2k9YjtyZXR1cm59aWYoKG58MCk8
Njkpe3M9bisyZTN8MH1lbHNle3M9KG4tNjl8MCk+Pj4wPDMxP24rMTkwMHwwOm59Y1toKzIwPj4y
XT1zLTE5MDA7cD1kfDA7cT1jW3A+PjJdfDA7cj1hfDA7Y1tyPj4yXT1xO2k9YjtyZXR1cm59fXdo
aWxlKDApO2I9Yk8oNCl8MDtrcShiKTtibChifDAsODE3NiwxMzQpfWZ1bmN0aW9uIGdIKGQsZSxm
LGcsaCl7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MDtkPWk7aj1mO2Y9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO2NbZj4+Ml09Y1tqPj4yXTtqPWV8MDtlPWZ8MDtmPWgrOHwwO0wyNjUyOndoaWxl
KDEpe2g9Y1tqPj4yXXwwO2Rve2lmKChofDApPT0wKXtrPTB9ZWxzZXtpZigoY1toKzEyPj4yXXww
KSE9KGNbaCsxNj4+Ml18MCkpe2s9aDticmVha31pZigoYjBbY1soY1toPj4yXXwwKSszNj4+Ml0m
MTI3XShoKXwwKT09LTEpe2Nbaj4+Ml09MDtrPTA7YnJlYWt9ZWxzZXtrPWNbaj4+Ml18MDticmVh
a319fXdoaWxlKDApO2g9KGt8MCk9PTA7bD1jW2U+PjJdfDA7TDI2NjE6ZG97aWYoKGx8MCk9PTAp
e209MjIwN31lbHNle2Rve2lmKChjW2wrMTI+PjJdfDApPT0oY1tsKzE2Pj4yXXwwKSl7aWYoKGIw
W2NbKGNbbD4+Ml18MCkrMzY+PjJdJjEyN10obCl8MCkhPS0xKXticmVha31jW2U+PjJdPTA7bT0y
MjA3O2JyZWFrIEwyNjYxfX13aGlsZSgwKTtpZihoKXtuPWw7bz0wfWVsc2V7cD1sO3E9MDticmVh
ayBMMjY1Mn19fXdoaWxlKDApO2lmKChtfDApPT0yMjA3KXttPTA7aWYoaCl7cD0wO3E9MTticmVh
a31lbHNle249MDtvPTF9fWw9Y1tqPj4yXXwwO3I9Y1tsKzEyPj4yXXwwO2lmKChyfDApPT0oY1ts
KzE2Pj4yXXwwKSl7cz0oYjBbY1soY1tsPj4yXXwwKSszNj4+Ml0mMTI3XShsKXwwKSYyNTV9ZWxz
ZXtzPWFbcl18MH1pZihzPDwyND4+MjQ8PS0xKXtwPW47cT1vO2JyZWFrfWlmKChiWyhjW2Y+PjJd
fDApKyhzPDwyND4+MjQ8PDEpPj4xXSY4MTkyKT09MCl7cD1uO3E9bzticmVha31yPWNbaj4+Ml18
MDtsPXIrMTJ8MDt0PWNbbD4+Ml18MDtpZigodHwwKT09KGNbcisxNj4+Ml18MCkpe3U9Y1soY1ty
Pj4yXXwwKSs0MD4+Ml18MDtiMFt1JjEyN10ocil8MDtjb250aW51ZX1lbHNle2NbbD4+Ml09dCsx
O2NvbnRpbnVlfX1vPWNbaj4+Ml18MDtkb3tpZigob3wwKT09MCl7dj0wfWVsc2V7aWYoKGNbbysx
Mj4+Ml18MCkhPShjW28rMTY+PjJdfDApKXt2PW87YnJlYWt9aWYoKGIwW2NbKGNbbz4+Ml18MCkr
MzY+PjJdJjEyN10obyl8MCk9PS0xKXtjW2o+PjJdPTA7dj0wO2JyZWFrfWVsc2V7dj1jW2o+PjJd
fDA7YnJlYWt9fX13aGlsZSgwKTtqPSh2fDApPT0wO2Rve2lmKHEpe209MjIyNn1lbHNle2lmKChj
W3ArMTI+PjJdfDApIT0oY1twKzE2Pj4yXXwwKSl7aWYoIShqXihwfDApPT0wKSl7YnJlYWt9aT1k
O3JldHVybn1pZigoYjBbY1soY1twPj4yXXwwKSszNj4+Ml0mMTI3XShwKXwwKT09LTEpe2NbZT4+
Ml09MDttPTIyMjY7YnJlYWt9aWYoIWope2JyZWFrfWk9ZDtyZXR1cm59fXdoaWxlKDApO2Rve2lm
KChtfDApPT0yMjI2KXtpZihqKXticmVha31pPWQ7cmV0dXJufX13aGlsZSgwKTtjW2c+PjJdPWNb
Zz4+Ml18MjtpPWQ7cmV0dXJufWZ1bmN0aW9uIGdJKGIsZCxlLGYsZyxoLGosayxsKXtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49
MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0w
LEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAs
UT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0w
LGFjPTAsYWQ9MCxhZT0wLGFmPTAsYWc9MCxhaD0wLGFpPTAsYWo9MCxhaz0wLGFsPTAsYW09MDts
PWk7aT1pKzMyOHwwO209ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbT4+Ml07
bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWx8MDtuPWwrOHww
O289bCsxNnwwO3A9bCsyNHwwO3E9bCszMnwwO3I9bCs0MHwwO3M9bCs0OHwwO3Q9bCs1NnwwO3U9
bCs2NHwwO3Y9bCs3MnwwO3c9bCs4MHwwO3g9bCs4OHwwO3k9bCs5NnwwO3o9bCsxMTJ8MDtBPWwr
MTIwfDA7Qj1sKzEyOHwwO0M9bCsxMzZ8MDtEPWwrMTQ0fDA7RT1sKzE1MnwwO0Y9bCsxNjB8MDtH
PWwrMTY4fDA7SD1sKzE3NnwwO0k9bCsxODR8MDtKPWwrMTkyfDA7Sz1sKzIwMHwwO0w9bCsyMDh8
MDtNPWwrMjE2fDA7Tj1sKzIyNHwwO089bCsyMzJ8MDtQPWwrMjQwfDA7UT1sKzI0OHwwO1I9bCsy
NTZ8MDtTPWwrMjY0fDA7VD1sKzI3MnwwO1U9bCsyODB8MDtWPWwrMjg4fDA7Vz1sKzI5NnwwO1g9
bCszMDR8MDtZPWwrMzEyfDA7Wj1sKzMyMHwwO2NbaD4+Ml09MDtlaih6LGcpO189enwwO3o9Y1tf
Pj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1t5Pj4yXT0xNTY5NjtjW3krND4+Ml09MTI7Y1t5
Kzg+PjJdPTA7ZFcoMTU2OTYseSw5Nil9eT0oY1szOTI1XXwwKS0xfDA7JD1jW3orOD4+Ml18MDtk
b3tpZigoY1t6KzEyPj4yXXwwKS0kPj4yPj4+MD55Pj4+MCl7YWE9Y1skKyh5PDwyKT4+Ml18MDtp
ZigoYWF8MCk9PTApe2JyZWFrfWFiPWFhO2FhPWNbXz4+Ml18MDtkeihhYSl8MDtMMjcwOTpkb3tz
d2l0Y2goazw8MjQ+PjI0fDApe2Nhc2UgNzI6e2NbdT4+Ml09Y1tmPj4yXTthYT1nTChlLHUsaCxh
YiwyKXwwO2FjPWNbaD4+Ml18MDtpZigoYWMmNHwwKT09MCYoYWF8MCk8MjQpe2Nbais4Pj4yXT1h
YTticmVhayBMMjcwOX1lbHNle2NbaD4+Ml09YWN8NDticmVhayBMMjcwOX1icmVha307Y2FzZSA5
NzpjYXNlIDY1OnthYz1jW2Y+PjJdfDA7YWE9ZCs4fDA7YWQ9YjBbY1tjW2FhPj4yXT4+Ml0mMTI3
XShhYSl8MDtjW3g+PjJdPWFjO2FjPShmcShlLHgsYWQsYWQrMTY4fDAsYWIsaCwwKXwwKS1hZHww
O2lmKChhY3wwKT49MTY4KXticmVhayBMMjcwOX1jW2orMjQ+PjJdPSgoYWN8MCkvMTJ8MHwwKSU3
fDA7YnJlYWt9O2Nhc2UgMTA5OntjW3I+PjJdPWNbZj4+Ml07YWM9KGdMKGUscixoLGFiLDIpfDAp
LTF8MDthZD1jW2g+PjJdfDA7aWYoKGFkJjR8MCk9PTAmKGFjfDApPDEyKXtjW2orMTY+PjJdPWFj
O2JyZWFrIEwyNzA5fWVsc2V7Y1toPj4yXT1hZHw0O2JyZWFrIEwyNzA5fWJyZWFrfTtjYXNlIDEy
MTp7Y1tuPj4yXT1jW2Y+PjJdO2FkPWdMKGUsbixoLGFiLDQpfDA7aWYoKGNbaD4+Ml0mNHwwKSE9
MCl7YnJlYWsgTDI3MDl9aWYoKGFkfDApPDY5KXthZT1hZCsyZTN8MH1lbHNle2FlPShhZC02OXww
KT4+PjA8MzE/YWQrMTkwMHwwOmFkfWNbaisyMD4+Ml09YWUtMTkwMDticmVha307Y2FzZSA5ODpj
YXNlIDY2OmNhc2UgMTA0OnthZD1jW2Y+PjJdfDA7YWM9ZCs4fDA7YWE9YjBbY1soY1thYz4+Ml18
MCkrND4+Ml0mMTI3XShhYyl8MDtjW3c+PjJdPWFkO2FkPShmcShlLHcsYWEsYWErMjg4fDAsYWIs
aCwwKXwwKS1hYXwwO2lmKChhZHwwKT49Mjg4KXticmVhayBMMjcwOX1jW2orMTY+PjJdPSgoYWR8
MCkvMTJ8MHwwKSUxMnwwO2JyZWFrfTtjYXNlIDczOnthZD1qKzh8MDtjW3Q+PjJdPWNbZj4+Ml07
YWE9Z0woZSx0LGgsYWIsMil8MDthYz1jW2g+PjJdfDA7ZG97aWYoKGFjJjR8MCk9PTApe2lmKChh
YS0xfDApPj4+MD49MTIpe2JyZWFrfWNbYWQ+PjJdPWFhO2JyZWFrIEwyNzA5fX13aGlsZSgwKTtj
W2g+PjJdPWFjfDQ7YnJlYWt9O2Nhc2UgMTA2OntjW3M+PjJdPWNbZj4+Ml07YWE9Z0woZSxzLGgs
YWIsMyl8MDthZD1jW2g+PjJdfDA7aWYoKGFkJjR8MCk9PTAmKGFhfDApPDM2Nil7Y1tqKzI4Pj4y
XT1hYTticmVhayBMMjcwOX1lbHNle2NbaD4+Ml09YWR8NDticmVhayBMMjcwOX1icmVha307Y2Fz
ZSA2ODp7YWQ9ZXwwO2NbRT4+Ml09Y1thZD4+Ml07Y1tGPj4yXT1jW2Y+PjJdO2dEKEQsZCxFLEYs
ZyxoLGosMjM2OCwyMzc2KTtjW2FkPj4yXT1jW0Q+PjJdO2JyZWFrfTtjYXNlIDg0OnthZD1lfDA7
Y1tTPj4yXT1jW2FkPj4yXTtjW1Q+PjJdPWNbZj4+Ml07Z0QoUixkLFMsVCxnLGgsaiwyMzI4LDIz
MzYpO2NbYWQ+PjJdPWNbUj4+Ml07YnJlYWt9O2Nhc2UgMTE5OntjW28+PjJdPWNbZj4+Ml07YWQ9
Z0woZSxvLGgsYWIsMSl8MDthYT1jW2g+PjJdfDA7aWYoKGFhJjR8MCk9PTAmKGFkfDApPDcpe2Nb
aisyND4+Ml09YWQ7YnJlYWsgTDI3MDl9ZWxzZXtjW2g+PjJdPWFhfDQ7YnJlYWsgTDI3MDl9YnJl
YWt9O2Nhc2UgNzA6e2FhPWV8MDtjW0g+PjJdPWNbYWE+PjJdO2NbST4+Ml09Y1tmPj4yXTtnRChH
LGQsSCxJLGcsaCxqLDIzNjAsMjM2OCk7Y1thYT4+Ml09Y1tHPj4yXTticmVha307Y2FzZSA4OTp7
Y1ttPj4yXT1jW2Y+PjJdO2FhPWdMKGUsbSxoLGFiLDQpfDA7aWYoKGNbaD4+Ml0mNHwwKSE9MCl7
YnJlYWsgTDI3MDl9Y1tqKzIwPj4yXT1hYS0xOTAwO2JyZWFrfTtjYXNlIDM3OntjW1o+PjJdPWNb
Zj4+Ml07Z0soMCxlLFosaCxhYik7YnJlYWt9O2Nhc2UgMTE0OnthYT1lfDA7Y1tNPj4yXT1jW2Fh
Pj4yXTtjW04+PjJdPWNbZj4+Ml07Z0QoTCxkLE0sTixnLGgsaiwyMzQ0LDIzNTUpO2NbYWE+PjJd
PWNbTD4+Ml07YnJlYWt9O2Nhc2UgODI6e2FhPWV8MDtjW1A+PjJdPWNbYWE+PjJdO2NbUT4+Ml09
Y1tmPj4yXTtnRChPLGQsUCxRLGcsaCxqLDIzMzYsMjM0MSk7Y1thYT4+Ml09Y1tPPj4yXTticmVh
a307Y2FzZSA5OTp7YWE9ZCs4fDA7YWQ9YjBbY1soY1thYT4+Ml18MCkrMTI+PjJdJjEyN10oYWEp
fDA7YWE9ZXwwO2NbQj4+Ml09Y1thYT4+Ml07Y1tDPj4yXT1jW2Y+PjJdO2FmPWFkO2FnPWFbYWRd
fDA7aWYoKGFnJjEpPT0wKXthaD1hZisxfDA7YWk9YWYrMXwwfWVsc2V7YWY9Y1thZCs4Pj4yXXww
O2FoPWFmO2FpPWFmfWFmPWFnJjI1NTtpZigoYWYmMXwwKT09MCl7YWo9YWY+Pj4xfWVsc2V7YWo9
Y1thZCs0Pj4yXXwwfWdEKEEsZCxCLEMsZyxoLGosYWksYWgrYWp8MCk7Y1thYT4+Ml09Y1tBPj4y
XTticmVha307Y2FzZSA4Mzp7Y1twPj4yXT1jW2Y+PjJdO2FhPWdMKGUscCxoLGFiLDIpfDA7YWQ9
Y1toPj4yXXwwO2lmKChhZCY0fDApPT0wJihhYXwwKTw2MSl7Y1tqPj4yXT1hYTticmVhayBMMjcw
OX1lbHNle2NbaD4+Ml09YWR8NDticmVhayBMMjcwOX1icmVha307Y2FzZSA3Nzp7Y1txPj4yXT1j
W2Y+PjJdO2FkPWdMKGUscSxoLGFiLDIpfDA7YWE9Y1toPj4yXXwwO2lmKChhYSY0fDApPT0wJihh
ZHwwKTw2MCl7Y1tqKzQ+PjJdPWFkO2JyZWFrIEwyNzA5fWVsc2V7Y1toPj4yXT1hYXw0O2JyZWFr
IEwyNzA5fWJyZWFrfTtjYXNlIDExMDpjYXNlIDExNjp7Y1tKPj4yXT1jW2Y+PjJdO2dIKDAsZSxK
LGgsYWIpO2JyZWFrfTtjYXNlIDExMjp7Y1tLPj4yXT1jW2Y+PjJdO2dKKGQsais4fDAsZSxLLGgs
YWIpO2JyZWFrfTtjYXNlIDEyMDp7YWE9Y1soY1tkPj4yXXwwKSsyMD4+Ml18MDtjW1U+PjJdPWNb
ZT4+Ml07Y1tWPj4yXT1jW2Y+PjJdO2JYW2FhJjEyN10oYixkLFUsVixnLGgsaik7aT1sO3JldHVy
bn07Y2FzZSA4ODp7YWE9ZCs4fDA7YWQ9YjBbY1soY1thYT4+Ml18MCkrMjQ+PjJdJjEyN10oYWEp
fDA7YWE9ZXwwO2NbWD4+Ml09Y1thYT4+Ml07Y1tZPj4yXT1jW2Y+PjJdO2FmPWFkO2FnPWFbYWRd
fDA7aWYoKGFnJjEpPT0wKXthaz1hZisxfDA7YWw9YWYrMXwwfWVsc2V7YWY9Y1thZCs4Pj4yXXww
O2FrPWFmO2FsPWFmfWFmPWFnJjI1NTtpZigoYWYmMXwwKT09MCl7YW09YWY+Pj4xfWVsc2V7YW09
Y1thZCs0Pj4yXXwwfWdEKFcsZCxYLFksZyxoLGosYWwsYWsrYW18MCk7Y1thYT4+Ml09Y1tXPj4y
XTticmVha307Y2FzZSAxMDA6Y2FzZSAxMDE6e2FhPWorMTJ8MDtjW3Y+PjJdPWNbZj4+Ml07YWQ9
Z0woZSx2LGgsYWIsMil8MDthZj1jW2g+PjJdfDA7ZG97aWYoKGFmJjR8MCk9PTApe2lmKChhZC0x
fDApPj4+MD49MzEpe2JyZWFrfWNbYWE+PjJdPWFkO2JyZWFrIEwyNzA5fX13aGlsZSgwKTtjW2g+
PjJdPWFmfDQ7YnJlYWt9O2RlZmF1bHQ6e2NbaD4+Ml09Y1toPj4yXXw0fX19d2hpbGUoMCk7Y1ti
Pj4yXT1jW2U+PjJdO2k9bDtyZXR1cm59fXdoaWxlKDApO2w9Yk8oNCl8MDtrcShsKTtibChsfDAs
ODE3NiwxMzQpfWZ1bmN0aW9uIGdKKGEsYixlLGYsZyxoKXthPWF8MDtiPWJ8MDtlPWV8MDtmPWZ8
MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MDtqPWk7aT1pKzh8MDtrPWY7Zj1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2s+PjJdO2s9anwwO2w9YSs4fDA7YT1iMFtj
WyhjW2w+PjJdfDApKzg+PjJdJjEyN10obCl8MDtsPWRbYV18MDtpZigobCYxfDApPT0wKXttPWw+
Pj4xfWVsc2V7bT1jW2ErND4+Ml18MH1sPWRbYSsxMnwwXXwwO2lmKChsJjF8MCk9PTApe249bD4+
PjF9ZWxzZXtuPWNbYSsxNj4+Ml18MH1pZigobXwwKT09KC1ufDApKXtjW2c+PjJdPWNbZz4+Ml18
NDtpPWo7cmV0dXJufWNbaz4+Ml09Y1tmPj4yXTtmPWZxKGUsayxhLGErMjR8MCxoLGcsMCl8MDtn
PWYtYXwwO2Rve2lmKChmfDApPT0oYXwwKSl7aWYoKGNbYj4+Ml18MCkhPTEyKXticmVha31jW2I+
PjJdPTA7aT1qO3JldHVybn19d2hpbGUoMCk7aWYoKGd8MCkhPTEyKXtpPWo7cmV0dXJufWc9Y1ti
Pj4yXXwwO2lmKChnfDApPj0xMil7aT1qO3JldHVybn1jW2I+PjJdPWcrMTI7aT1qO3JldHVybn1m
dW5jdGlvbiBnSyhiLGQsZSxmLGcpe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO3ZhciBo
PTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTA7Yj1pO2g9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8
MztjW2U+PjJdPWNbaD4+Ml07aD1kfDA7ZD1jW2g+PjJdfDA7ZG97aWYoKGR8MCk9PTApe2o9MH1l
bHNle2lmKChjW2QrMTI+PjJdfDApIT0oY1tkKzE2Pj4yXXwwKSl7aj1kO2JyZWFrfWlmKChiMFtj
WyhjW2Q+PjJdfDApKzM2Pj4yXSYxMjddKGQpfDApPT0tMSl7Y1toPj4yXT0wO2o9MDticmVha31l
bHNle2o9Y1toPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7ZD0oanwwKT09MDtqPWV8MDtlPWNbaj4+
Ml18MDtMMjgyMjpkb3tpZigoZXwwKT09MCl7az0yMzM3fWVsc2V7ZG97aWYoKGNbZSsxMj4+Ml18
MCk9PShjW2UrMTY+PjJdfDApKXtpZigoYjBbY1soY1tlPj4yXXwwKSszNj4+Ml0mMTI3XShlKXww
KSE9LTEpe2JyZWFrfWNbaj4+Ml09MDtrPTIzMzc7YnJlYWsgTDI4MjJ9fXdoaWxlKDApO2lmKGQp
e2w9ZTttPTB9ZWxzZXtrPTIzMzh9fX13aGlsZSgwKTtpZigoa3wwKT09MjMzNyl7aWYoZCl7az0y
MzM4fWVsc2V7bD0wO209MX19aWYoKGt8MCk9PTIzMzgpe2NbZj4+Ml09Y1tmPj4yXXw2O2k9Yjty
ZXR1cm59ZD1jW2g+PjJdfDA7ZT1jW2QrMTI+PjJdfDA7aWYoKGV8MCk9PShjW2QrMTY+PjJdfDAp
KXtuPShiMFtjWyhjW2Q+PjJdfDApKzM2Pj4yXSYxMjddKGQpfDApJjI1NX1lbHNle249YVtlXXww
fWlmKChiMVtjWyhjW2c+PjJdfDApKzM2Pj4yXSY2M10oZyxuLDApfDApPDwyND4+MjQhPTM3KXtj
W2Y+PjJdPWNbZj4+Ml18NDtpPWI7cmV0dXJufW49Y1toPj4yXXwwO2c9bisxMnwwO2U9Y1tnPj4y
XXwwO2lmKChlfDApPT0oY1tuKzE2Pj4yXXwwKSl7ZD1jWyhjW24+PjJdfDApKzQwPj4yXXwwO2Iw
W2QmMTI3XShuKXwwfWVsc2V7Y1tnPj4yXT1lKzF9ZT1jW2g+PjJdfDA7ZG97aWYoKGV8MCk9PTAp
e289MH1lbHNle2lmKChjW2UrMTI+PjJdfDApIT0oY1tlKzE2Pj4yXXwwKSl7bz1lO2JyZWFrfWlm
KChiMFtjWyhjW2U+PjJdfDApKzM2Pj4yXSYxMjddKGUpfDApPT0tMSl7Y1toPj4yXT0wO289MDti
cmVha31lbHNle289Y1toPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7aD0ob3wwKT09MDtkb3tpZiht
KXtrPTIzNTd9ZWxzZXtpZigoY1tsKzEyPj4yXXwwKSE9KGNbbCsxNj4+Ml18MCkpe2lmKCEoaF4o
bHwwKT09MCkpe2JyZWFrfWk9YjtyZXR1cm59aWYoKGIwW2NbKGNbbD4+Ml18MCkrMzY+PjJdJjEy
N10obCl8MCk9PS0xKXtjW2o+PjJdPTA7az0yMzU3O2JyZWFrfWlmKCFoKXticmVha31pPWI7cmV0
dXJufX13aGlsZSgwKTtkb3tpZigoa3wwKT09MjM1Nyl7aWYoaCl7YnJlYWt9aT1iO3JldHVybn19
d2hpbGUoMCk7Y1tmPj4yXT1jW2Y+PjJdfDI7aT1iO3JldHVybn1mdW5jdGlvbiBnTChkLGUsZixn
LGgpe2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MCxtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTA7aj1pO2s9ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8Mztj
W2U+PjJdPWNbaz4+Ml07az1kfDA7ZD1jW2s+PjJdfDA7ZG97aWYoKGR8MCk9PTApe2w9MH1lbHNl
e2lmKChjW2QrMTI+PjJdfDApIT0oY1tkKzE2Pj4yXXwwKSl7bD1kO2JyZWFrfWlmKChiMFtjWyhj
W2Q+PjJdfDApKzM2Pj4yXSYxMjddKGQpfDApPT0tMSl7Y1trPj4yXT0wO2w9MDticmVha31lbHNl
e2w9Y1trPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7ZD0obHwwKT09MDtsPWV8MDtlPWNbbD4+Ml18
MDtMMjg3Njpkb3tpZigoZXwwKT09MCl7bT0yMzc3fWVsc2V7ZG97aWYoKGNbZSsxMj4+Ml18MCk9
PShjW2UrMTY+PjJdfDApKXtpZigoYjBbY1soY1tlPj4yXXwwKSszNj4+Ml0mMTI3XShlKXwwKSE9
LTEpe2JyZWFrfWNbbD4+Ml09MDttPTIzNzc7YnJlYWsgTDI4NzZ9fXdoaWxlKDApO2lmKGQpe249
ZX1lbHNle209MjM3OH19fXdoaWxlKDApO2lmKChtfDApPT0yMzc3KXtpZihkKXttPTIzNzh9ZWxz
ZXtuPTB9fWlmKChtfDApPT0yMzc4KXtjW2Y+PjJdPWNbZj4+Ml18NjtvPTA7aT1qO3JldHVybiBv
fDB9ZD1jW2s+PjJdfDA7ZT1jW2QrMTI+PjJdfDA7aWYoKGV8MCk9PShjW2QrMTY+PjJdfDApKXtw
PShiMFtjWyhjW2Q+PjJdfDApKzM2Pj4yXSYxMjddKGQpfDApJjI1NX1lbHNle3A9YVtlXXwwfWRv
e2lmKHA8PDI0Pj4yND4tMSl7ZT1nKzh8MDtpZigoYlsoY1tlPj4yXXwwKSsocDw8MjQ+PjI0PDwx
KT4+MV0mMjA0OCk9PTApe2JyZWFrfWQ9ZztxPShiMVtjWyhjW2Q+PjJdfDApKzM2Pj4yXSY2M10o
ZyxwLDApfDApPDwyND4+MjQ7cj1jW2s+PjJdfDA7cz1yKzEyfDA7dD1jW3M+PjJdfDA7aWYoKHR8
MCk9PShjW3IrMTY+PjJdfDApKXt1PWNbKGNbcj4+Ml18MCkrNDA+PjJdfDA7YjBbdSYxMjddKHIp
fDA7dj1xO3c9aDt4PW59ZWxzZXtjW3M+PjJdPXQrMTt2PXE7dz1oO3g9bn13aGlsZSgxKXt5PXYt
NDh8MDtxPXctMXwwO3Q9Y1trPj4yXXwwO2Rve2lmKCh0fDApPT0wKXt6PTB9ZWxzZXtpZigoY1t0
KzEyPj4yXXwwKSE9KGNbdCsxNj4+Ml18MCkpe3o9dDticmVha31pZigoYjBbY1soY1t0Pj4yXXww
KSszNj4+Ml0mMTI3XSh0KXwwKT09LTEpe2Nbaz4+Ml09MDt6PTA7YnJlYWt9ZWxzZXt6PWNbaz4+
Ml18MDticmVha319fXdoaWxlKDApO3Q9KHp8MCk9PTA7aWYoKHh8MCk9PTApe0E9ejtCPTB9ZWxz
ZXtkb3tpZigoY1t4KzEyPj4yXXwwKT09KGNbeCsxNj4+Ml18MCkpe2lmKChiMFtjWyhjW3g+PjJd
fDApKzM2Pj4yXSYxMjddKHgpfDApIT0tMSl7Qz14O2JyZWFrfWNbbD4+Ml09MDtDPTB9ZWxzZXtD
PXh9fXdoaWxlKDApO0E9Y1trPj4yXXwwO0I9Q31EPShCfDApPT0wO2lmKCEoKHReRCkmKHF8MCk+
MCkpe209MjQwNzticmVha31zPWNbQSsxMj4+Ml18MDtpZigoc3wwKT09KGNbQSsxNj4+Ml18MCkp
e0U9KGIwW2NbKGNbQT4+Ml18MCkrMzY+PjJdJjEyN10oQSl8MCkmMjU1fWVsc2V7RT1hW3NdfDB9
aWYoRTw8MjQ+PjI0PD0tMSl7bz15O209MjQyMjticmVha31pZigoYlsoY1tlPj4yXXwwKSsoRTw8
MjQ+PjI0PDwxKT4+MV0mMjA0OCk9PTApe289eTttPTI0MjM7YnJlYWt9cz0oKGIxW2NbKGNbZD4+
Ml18MCkrMzY+PjJdJjYzXShnLEUsMCl8MCk8PDI0Pj4yNCkrKHkqMTB8MCl8MDtyPWNbaz4+Ml18
MDt1PXIrMTJ8MDtGPWNbdT4+Ml18MDtpZigoRnwwKT09KGNbcisxNj4+Ml18MCkpe0c9Y1soY1ty
Pj4yXXwwKSs0MD4+Ml18MDtiMFtHJjEyN10ocil8MDt2PXM7dz1xO3g9Qjtjb250aW51ZX1lbHNl
e2NbdT4+Ml09RisxO3Y9czt3PXE7eD1CO2NvbnRpbnVlfX1pZigobXwwKT09MjQwNyl7ZG97aWYo
KEF8MCk9PTApe0g9MH1lbHNle2lmKChjW0ErMTI+PjJdfDApIT0oY1tBKzE2Pj4yXXwwKSl7SD1B
O2JyZWFrfWlmKChiMFtjWyhjW0E+PjJdfDApKzM2Pj4yXSYxMjddKEEpfDApPT0tMSl7Y1trPj4y
XT0wO0g9MDticmVha31lbHNle0g9Y1trPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7ZD0oSHwwKT09
MDtMMjkzMzpkb3tpZihEKXttPTI0MTd9ZWxzZXtkb3tpZigoY1tCKzEyPj4yXXwwKT09KGNbQisx
Nj4+Ml18MCkpe2lmKChiMFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7YnJl
YWt9Y1tsPj4yXT0wO209MjQxNzticmVhayBMMjkzM319d2hpbGUoMCk7aWYoZCl7bz15fWVsc2V7
YnJlYWt9aT1qO3JldHVybiBvfDB9fXdoaWxlKDApO2Rve2lmKChtfDApPT0yNDE3KXtpZihkKXti
cmVha31lbHNle289eX1pPWo7cmV0dXJuIG98MH19d2hpbGUoMCk7Y1tmPj4yXT1jW2Y+PjJdfDI7
bz15O2k9ajtyZXR1cm4gb3wwfWVsc2UgaWYoKG18MCk9PTI0MjIpe2k9ajtyZXR1cm4gb3wwfWVs
c2UgaWYoKG18MCk9PTI0MjMpe2k9ajtyZXR1cm4gb3wwfX19d2hpbGUoMCk7Y1tmPj4yXT1jW2Y+
PjJdfDQ7bz0wO2k9ajtyZXR1cm4gb3wwfWZ1bmN0aW9uIGdNKGEpe2E9YXwwO3JldHVybiAyfWZ1
bmN0aW9uIGdOKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGdPKGEpe2E9
YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGdQKGEsYixkLGUsZixnLGgpe2E9YXwwO2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO3ZhciBqPTAsaz0wLGw9MDtqPWk7aT1pKzE2
fDA7az1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZD4+Ml09Y1trPj4yXTtrPWU7ZT1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2s+PjJdO2s9anwwO2w9ais4fDA7Y1trPj4yXT1j
W2Q+PjJdO2NbbD4+Ml09Y1tlPj4yXTtnUihhLGIsayxsLGYsZyxoLDIyOTYsMjMyOCk7aT1qO3Jl
dHVybn1mdW5jdGlvbiBnUShiLGQsZSxmLGcsaCxqKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDtqPWp8MDt2YXIgaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MDtrPWk7
aT1pKzE2fDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1tsPj4yXTtsPWY7
Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9a3wwO209ays4fDA7bj1k
Kzh8MDtvPWIwW2NbKGNbbj4+Ml18MCkrMjA+PjJdJjEyN10obil8MDtjW2w+PjJdPWNbZT4+Ml07
Y1ttPj4yXT1jW2Y+PjJdO2Y9YVtvXXwwO2lmKChmJjEpPT0wKXtwPW8rNHwwO3E9bys0fDB9ZWxz
ZXtlPWNbbys4Pj4yXXwwO3A9ZTtxPWV9ZT1mJjI1NTtpZigoZSYxfDApPT0wKXtyPWU+Pj4xfWVs
c2V7cj1jW28rND4+Ml18MH1nUihiLGQsbCxtLGcsaCxqLHEscCsocjw8Mil8MCk7aT1rO3JldHVy
bn1mdW5jdGlvbiBnUihhLGIsZCxlLGYsZyxoLGosayl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAs
Rj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxU
PTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFl
PTAsYWY9MCxhZz0wO2w9aTtpPWkrNDh8MDttPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tk
Pj4yXT1jW20+PjJdO209ZTtlPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2U+PjJdPWNbbT4+Ml07
bT1sfDA7bj1sKzE2fDA7bz1sKzI0fDA7cD1sKzMyfDA7cT1sKzQwfDA7ZWoobixmKTtyPW58MDtu
PWNbcj4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbT4+Ml09MTU2ODg7Y1ttKzQ+PjJdPTEy
O2NbbSs4Pj4yXT0wO2RXKDE1Njg4LG0sOTYpfW09KGNbMzkyM118MCktMXwwO3M9Y1tuKzg+PjJd
fDA7ZG97aWYoKGNbbisxMj4+Ml18MCktcz4+Mj4+PjA+bT4+PjApe3Q9Y1tzKyhtPDwyKT4+Ml18
MDtpZigodHwwKT09MCl7YnJlYWt9dT10O3Y9Y1tyPj4yXXwwO2R6KHYpfDA7Y1tnPj4yXT0wO3Y9
ZHwwO0wyOTY5OmRve2lmKChqfDApPT0oa3wwKSl7dz0yNTA4fWVsc2V7eD1lfDA7eT10O3o9dDtB
PXQ7Qj1iO0M9cHwwO0Q9cXwwO0U9b3wwO0Y9ajtHPTA7TDI5NzE6d2hpbGUoMSl7SD1HO3doaWxl
KDEpe2lmKChIfDApIT0wKXt3PTI1MDg7YnJlYWsgTDI5Njl9ST1jW3Y+PjJdfDA7ZG97aWYoKEl8
MCk9PTApe0o9MH1lbHNle0s9Y1tJKzEyPj4yXXwwO2lmKChLfDApPT0oY1tJKzE2Pj4yXXwwKSl7
TD1iMFtjWyhjW0k+PjJdfDApKzM2Pj4yXSYxMjddKEkpfDB9ZWxzZXtMPWNbSz4+Ml18MH1pZigo
THwwKSE9LTEpe0o9STticmVha31jW3Y+PjJdPTA7Sj0wfX13aGlsZSgwKTtJPShKfDApPT0wO0s9
Y1t4Pj4yXXwwO2Rve2lmKChLfDApPT0wKXt3PTI0NjB9ZWxzZXtNPWNbSysxMj4+Ml18MDtpZigo
TXwwKT09KGNbSysxNj4+Ml18MCkpe049YjBbY1soY1tLPj4yXXwwKSszNj4+Ml0mMTI3XShLKXww
fWVsc2V7Tj1jW00+PjJdfDB9aWYoKE58MCk9PS0xKXtjW3g+PjJdPTA7dz0yNDYwO2JyZWFrfWVs
c2V7aWYoSV4oS3wwKT09MCl7Tz1LO2JyZWFrfWVsc2V7dz0yNDYyO2JyZWFrIEwyOTcxfX19fXdo
aWxlKDApO2lmKCh3fDApPT0yNDYwKXt3PTA7aWYoSSl7dz0yNDYyO2JyZWFrIEwyOTcxfWVsc2V7
Tz0wfX1pZigoYjFbY1soY1t5Pj4yXXwwKSs1Mj4+Ml0mNjNdKHUsY1tGPj4yXXwwLDApfDApPDwy
ND4+MjQ9PTM3KXt3PTI0NjU7YnJlYWt9aWYoYjFbY1soY1t6Pj4yXXwwKSsxMj4+Ml0mNjNdKHUs
ODE5MixjW0Y+PjJdfDApfDApe1A9Rjt3PTI0NzU7YnJlYWt9UT1KKzEyfDA7Sz1jW1E+PjJdfDA7
Uj1KKzE2fDA7aWYoKEt8MCk9PShjW1I+PjJdfDApKXtTPWIwW2NbKGNbSj4+Ml18MCkrMzY+PjJd
JjEyN10oSil8MH1lbHNle1M9Y1tLPj4yXXwwfUs9Yl9bY1soY1tBPj4yXXwwKSsyOD4+Ml0mMzFd
KHUsUyl8MDtpZigoS3wwKT09KGJfW2NbKGNbQT4+Ml18MCkrMjg+PjJdJjMxXSh1LGNbRj4+Ml18
MCl8MCkpe3c9MjUwMzticmVha31jW2c+PjJdPTQ7SD00fUwzMDAzOmRve2lmKCh3fDApPT0yNTAz
KXt3PTA7SD1jW1E+PjJdfDA7aWYoKEh8MCk9PShjW1I+PjJdfDApKXtLPWNbKGNbSj4+Ml18MCkr
NDA+PjJdfDA7YjBbSyYxMjddKEopfDB9ZWxzZXtjW1E+PjJdPUgrNH1UPUYrNHwwfWVsc2UgaWYo
KHd8MCk9PTI0NjUpe3c9MDtIPUYrNHwwO2lmKChIfDApPT0oa3wwKSl7dz0yNDY2O2JyZWFrIEwy
OTcxfUs9YjFbY1soY1t5Pj4yXXwwKSs1Mj4+Ml0mNjNdKHUsY1tIPj4yXXwwLDApfDA7c3dpdGNo
KEs8PDI0Pj4yNCl7Y2FzZSA2OTpjYXNlIDQ4OntNPUYrOHwwO2lmKChNfDApPT0oa3wwKSl7dz0y
NDY5O2JyZWFrIEwyOTcxfVU9SztWPWIxW2NbKGNbeT4+Ml18MCkrNTI+PjJdJjYzXSh1LGNbTT4+
Ml18MCwwKXwwO1c9TTticmVha307ZGVmYXVsdDp7VT0wO1Y9SztXPUh9fUg9Y1soY1tCPj4yXXww
KSszNj4+Ml18MDtjW0M+PjJdPUo7Y1tEPj4yXT1PO2I3W0gmN10obyxiLHAscSxmLGcsaCxWLFUp
O2Nbdj4+Ml09Y1tFPj4yXTtUPVcrNHwwfWVsc2UgaWYoKHd8MCk9PTI0NzUpe3doaWxlKDEpe3c9
MDtIPVArNHwwO2lmKChIfDApPT0oa3wwKSl7WD1rO2JyZWFrfWlmKGIxW2NbKGNbej4+Ml18MCkr
MTI+PjJdJjYzXSh1LDgxOTIsY1tIPj4yXXwwKXwwKXtQPUg7dz0yNDc1fWVsc2V7WD1IO2JyZWFr
fX1JPUo7SD1PO3doaWxlKDEpe2Rve2lmKChJfDApPT0wKXtZPTB9ZWxzZXtLPWNbSSsxMj4+Ml18
MDtpZigoS3wwKT09KGNbSSsxNj4+Ml18MCkpe1o9YjBbY1soY1tJPj4yXXwwKSszNj4+Ml0mMTI3
XShJKXwwfWVsc2V7Wj1jW0s+PjJdfDB9aWYoKFp8MCkhPS0xKXtZPUk7YnJlYWt9Y1t2Pj4yXT0w
O1k9MH19d2hpbGUoMCk7Sz0oWXwwKT09MDtkb3tpZigoSHwwKT09MCl7dz0yNDkwfWVsc2V7TT1j
W0grMTI+PjJdfDA7aWYoKE18MCk9PShjW0grMTY+PjJdfDApKXtfPWIwW2NbKGNbSD4+Ml18MCkr
MzY+PjJdJjEyN10oSCl8MH1lbHNle189Y1tNPj4yXXwwfWlmKChffDApPT0tMSl7Y1t4Pj4yXT0w
O3c9MjQ5MDticmVha31lbHNle2lmKEteKEh8MCk9PTApeyQ9SDticmVha31lbHNle1Q9WDticmVh
ayBMMzAwM319fX13aGlsZSgwKTtpZigod3wwKT09MjQ5MCl7dz0wO2lmKEspe1Q9WDticmVhayBM
MzAwM31lbHNleyQ9MH19TT1ZKzEyfDA7YWE9Y1tNPj4yXXwwO2FiPVkrMTZ8MDtpZigoYWF8MCk9
PShjW2FiPj4yXXwwKSl7YWM9YjBbY1soY1tZPj4yXXwwKSszNj4+Ml0mMTI3XShZKXwwfWVsc2V7
YWM9Y1thYT4+Ml18MH1pZighKGIxW2NbKGNbej4+Ml18MCkrMTI+PjJdJjYzXSh1LDgxOTIsYWMp
fDApKXtUPVg7YnJlYWsgTDMwMDN9YWE9Y1tNPj4yXXwwO2lmKChhYXwwKT09KGNbYWI+PjJdfDAp
KXthYj1jWyhjW1k+PjJdfDApKzQwPj4yXXwwO2IwW2FiJjEyN10oWSl8MDtJPVk7SD0kO2NvbnRp
bnVlfWVsc2V7Y1tNPj4yXT1hYSs0O0k9WTtIPSQ7Y29udGludWV9fX19d2hpbGUoMCk7aWYoKFR8
MCk9PShrfDApKXt3PTI1MDg7YnJlYWsgTDI5Njl9Rj1UO0c9Y1tnPj4yXXwwfWlmKCh3fDApPT0y
NDYyKXtjW2c+PjJdPTQ7YWQ9SjticmVha31lbHNlIGlmKCh3fDApPT0yNDY2KXtjW2c+PjJdPTQ7
YWQ9SjticmVha31lbHNlIGlmKCh3fDApPT0yNDY5KXtjW2c+PjJdPTQ7YWQ9SjticmVha319fXdo
aWxlKDApO2lmKCh3fDApPT0yNTA4KXthZD1jW3Y+PjJdfDB9dT1kfDA7ZG97aWYoKGFkfDApIT0w
KXt0PWNbYWQrMTI+PjJdfDA7aWYoKHR8MCk9PShjW2FkKzE2Pj4yXXwwKSl7YWU9YjBbY1soY1th
ZD4+Ml18MCkrMzY+PjJdJjEyN10oYWQpfDB9ZWxzZXthZT1jW3Q+PjJdfDB9aWYoKGFlfDApIT0t
MSl7YnJlYWt9Y1t1Pj4yXT0wfX13aGlsZSgwKTt2PWNbdT4+Ml18MDt0PSh2fDApPT0wO0c9ZXww
O0Y9Y1tHPj4yXXwwO2Rve2lmKChGfDApPT0wKXt3PTI1MjF9ZWxzZXt6PWNbRisxMj4+Ml18MDtp
ZigoenwwKT09KGNbRisxNj4+Ml18MCkpe2FmPWIwW2NbKGNbRj4+Ml18MCkrMzY+PjJdJjEyN10o
Ril8MH1lbHNle2FmPWNbej4+Ml18MH1pZigoYWZ8MCk9PS0xKXtjW0c+PjJdPTA7dz0yNTIxO2Jy
ZWFrfWlmKCEodF4oRnwwKT09MCkpe2JyZWFrfWFnPWF8MDtjW2FnPj4yXT12O2k9bDtyZXR1cm59
fXdoaWxlKDApO2Rve2lmKCh3fDApPT0yNTIxKXtpZih0KXticmVha31hZz1hfDA7Y1thZz4+Ml09
djtpPWw7cmV0dXJufX13aGlsZSgwKTtjW2c+PjJdPWNbZz4+Ml18MjthZz1hfDA7Y1thZz4+Ml09
djtpPWw7cmV0dXJufX13aGlsZSgwKTtsPWJPKDQpfDA7a3EobCk7YmwobHwwLDgxNzYsMTM0KX1m
dW5jdGlvbiBnUyhhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTA7aj1pO2k9aSszMnwwO2s9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+PjJdPWNb
az4+Ml07az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtrPWp8MDts
PWorOHwwO209aisyNHwwO2VqKG0sZik7Zj1tfDA7bT1jW2Y+PjJdfDA7aWYoKGNbMzkyMl18MCkh
PS0xKXtjW2w+PjJdPTE1Njg4O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY4OCxsLDk2
KX1sPShjWzM5MjNdfDApLTF8MDtuPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJdfDApLW4+
PjI+Pj4wPmw+Pj4wKXtvPWNbbisobDw8Mik+PjJdfDA7aWYoKG98MCk9PTApe2JyZWFrfXA9bztv
PWNbZj4+Ml18MDtkeihvKXwwO289Y1tlPj4yXXwwO3E9Yis4fDA7cj1iMFtjW2NbcT4+Ml0+PjJd
JjEyN10ocSl8MDtjW2s+PjJdPW87bz0oZlMoZCxrLHIscisxNjh8MCxwLGcsMCl8MCktcnwwO2lm
KChvfDApPj0xNjgpe3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09dDtpPWo7cmV0dXJu
fWNbaCsyND4+Ml09KChvfDApLzEyfDB8MCklN3wwO3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2Nb
dT4+Ml09dDtpPWo7cmV0dXJufX13aGlsZSgwKTtqPWJPKDQpfDA7a3Eoaik7YmwoanwwLDgxNzYs
MTM0KX1mdW5jdGlvbiBnVChhLGIsZCxlLGYsZyxoKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MCx1PTA7aj1pO2k9aSszMnwwO2s9ZDtkPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Q+
PjJdPWNbaz4+Ml07az1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1trPj4yXTtr
PWp8MDtsPWorOHwwO209aisyNHwwO2VqKG0sZik7Zj1tfDA7bT1jW2Y+PjJdfDA7aWYoKGNbMzky
Ml18MCkhPS0xKXtjW2w+PjJdPTE1Njg4O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY4
OCxsLDk2KX1sPShjWzM5MjNdfDApLTF8MDtuPWNbbSs4Pj4yXXwwO2Rve2lmKChjW20rMTI+PjJd
fDApLW4+PjI+Pj4wPmw+Pj4wKXtvPWNbbisobDw8Mik+PjJdfDA7aWYoKG98MCk9PTApe2JyZWFr
fXA9bztvPWNbZj4+Ml18MDtkeihvKXwwO289Y1tlPj4yXXwwO3E9Yis4fDA7cj1iMFtjWyhjW3E+
PjJdfDApKzQ+PjJdJjEyN10ocSl8MDtjW2s+PjJdPW87bz0oZlMoZCxrLHIscisyODh8MCxwLGcs
MCl8MCktcnwwO2lmKChvfDApPj0yODgpe3M9ZHwwO3Q9Y1tzPj4yXXwwO3U9YXwwO2NbdT4+Ml09
dDtpPWo7cmV0dXJufWNbaCsxNj4+Ml09KChvfDApLzEyfDB8MCklMTJ8MDtzPWR8MDt0PWNbcz4+
Ml18MDt1PWF8MDtjW3U+PjJdPXQ7aT1qO3JldHVybn19d2hpbGUoMCk7aj1iTyg0KXwwO2txKGop
O2JsKGp8MCw4MTc2LDEzNCl9ZnVuY3Rpb24gZ1UoYSxiLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MDtiPWk7aT1pKzMyfDA7aj1kO2Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwz
O2NbZD4+Ml09Y1tqPj4yXTtqPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2o+
PjJdO2o9YnwwO2s9Yis4fDA7bD1iKzI0fDA7ZWoobCxmKTtmPWx8MDtsPWNbZj4+Ml18MDtpZigo
Y1szOTIyXXwwKSE9LTEpe2Nbaz4+Ml09MTU2ODg7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RX
KDE1Njg4LGssOTYpfWs9KGNbMzkyM118MCktMXwwO209Y1tsKzg+PjJdfDA7ZG97aWYoKGNbbCsx
Mj4+Ml18MCktbT4+Mj4+PjA+az4+PjApe249Y1ttKyhrPDwyKT4+Ml18MDtpZigobnwwKT09MCl7
YnJlYWt9bz1uO249Y1tmPj4yXXwwO2R6KG4pfDA7Y1tqPj4yXT1jW2U+PjJdO249aGMoZCxqLGcs
byw0KXwwO2lmKChjW2c+PjJdJjR8MCkhPTApe3A9ZHwwO3E9Y1twPj4yXXwwO3I9YXwwO2Nbcj4+
Ml09cTtpPWI7cmV0dXJufWlmKChufDApPDY5KXtzPW4rMmUzfDB9ZWxzZXtzPShuLTY5fDApPj4+
MDwzMT9uKzE5MDB8MDpufWNbaCsyMD4+Ml09cy0xOTAwO3A9ZHwwO3E9Y1twPj4yXXwwO3I9YXww
O2Nbcj4+Ml09cTtpPWI7cmV0dXJufX13aGlsZSgwKTtiPWJPKDQpfDA7a3EoYik7YmwoYnwwLDgx
NzYsMTM0KX1mdW5jdGlvbiBnVihhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9
ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTAseD0wO2E9aTtnPWQ7ZD1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4y
XT1jW2c+PjJdO2c9YnwwO2I9ZHwwO2Q9ZjtMMzEyNzp3aGlsZSgxKXtoPWNbZz4+Ml18MDtkb3tp
ZigoaHwwKT09MCl7aj0xfWVsc2V7az1jW2grMTI+PjJdfDA7aWYoKGt8MCk9PShjW2grMTY+PjJd
fDApKXtsPWIwW2NbKGNbaD4+Ml18MCkrMzY+PjJdJjEyN10oaCl8MH1lbHNle2w9Y1trPj4yXXww
fWlmKChsfDApPT0tMSl7Y1tnPj4yXT0wO2o9MTticmVha31lbHNle2o9KGNbZz4+Ml18MCk9PTA7
YnJlYWt9fX13aGlsZSgwKTtoPWNbYj4+Ml18MDtkb3tpZigoaHwwKT09MCl7bT0yNTgxfWVsc2V7
az1jW2grMTI+PjJdfDA7aWYoKGt8MCk9PShjW2grMTY+PjJdfDApKXtuPWIwW2NbKGNbaD4+Ml18
MCkrMzY+PjJdJjEyN10oaCl8MH1lbHNle249Y1trPj4yXXwwfWlmKChufDApPT0tMSl7Y1tiPj4y
XT0wO209MjU4MTticmVha31lbHNle2s9KGh8MCk9PTA7aWYoal5rKXtvPWg7cD1rO2JyZWFrfWVs
c2V7cT1oO3I9azticmVhayBMMzEyN319fX13aGlsZSgwKTtpZigobXwwKT09MjU4MSl7bT0wO2lm
KGope3E9MDtyPTE7YnJlYWt9ZWxzZXtvPTA7cD0xfX1oPWNbZz4+Ml18MDtrPWNbaCsxMj4+Ml18
MDtpZigoa3wwKT09KGNbaCsxNj4+Ml18MCkpe3M9YjBbY1soY1toPj4yXXwwKSszNj4+Ml0mMTI3
XShoKXwwfWVsc2V7cz1jW2s+PjJdfDB9aWYoIShiMVtjWyhjW2Q+PjJdfDApKzEyPj4yXSY2M10o
Ziw4MTkyLHMpfDApKXtxPW87cj1wO2JyZWFrfWs9Y1tnPj4yXXwwO2g9aysxMnwwO3Q9Y1toPj4y
XXwwO2lmKCh0fDApPT0oY1trKzE2Pj4yXXwwKSl7dT1jWyhjW2s+PjJdfDApKzQwPj4yXXwwO2Iw
W3UmMTI3XShrKXwwO2NvbnRpbnVlfWVsc2V7Y1toPj4yXT10KzQ7Y29udGludWV9fXA9Y1tnPj4y
XXwwO2Rve2lmKChwfDApPT0wKXt2PTF9ZWxzZXtvPWNbcCsxMj4+Ml18MDtpZigob3wwKT09KGNb
cCsxNj4+Ml18MCkpe3c9YjBbY1soY1twPj4yXXwwKSszNj4+Ml0mMTI3XShwKXwwfWVsc2V7dz1j
W28+PjJdfDB9aWYoKHd8MCk9PS0xKXtjW2c+PjJdPTA7dj0xO2JyZWFrfWVsc2V7dj0oY1tnPj4y
XXwwKT09MDticmVha319fXdoaWxlKDApO2Rve2lmKHIpe209MjYwM31lbHNle2c9Y1txKzEyPj4y
XXwwO2lmKChnfDApPT0oY1txKzE2Pj4yXXwwKSl7eD1iMFtjWyhjW3E+PjJdfDApKzM2Pj4yXSYx
MjddKHEpfDB9ZWxzZXt4PWNbZz4+Ml18MH1pZigoeHwwKT09LTEpe2NbYj4+Ml09MDttPTI2MDM7
YnJlYWt9aWYoISh2XihxfDApPT0wKSl7YnJlYWt9aT1hO3JldHVybn19d2hpbGUoMCk7ZG97aWYo
KG18MCk9PTI2MDMpe2lmKHYpe2JyZWFrfWk9YTtyZXR1cm59fXdoaWxlKDApO2NbZT4+Ml09Y1tl
Pj4yXXwyO2k9YTtyZXR1cm59ZnVuY3Rpb24gZ1coYixkLGUsZixnLGgsaixrLGwpe2I9YnwwO2Q9
ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0w
LG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAs
Qz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxR
PTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAs
YWM9MCxhZD0wLGFlPTAsYWY9MCxhZz0wLGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0wO2w9
aTtpPWkrMzI4fDA7bT1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09Y1ttPj4yXTtt
PWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW20+PjJdO209bHwwO249bCs4fDA7
bz1sKzE2fDA7cD1sKzI0fDA7cT1sKzMyfDA7cj1sKzQwfDA7cz1sKzQ4fDA7dD1sKzU2fDA7dT1s
KzY0fDA7dj1sKzcyfDA7dz1sKzgwfDA7eD1sKzg4fDA7eT1sKzk2fDA7ej1sKzExMnwwO0E9bCsx
MjB8MDtCPWwrMTI4fDA7Qz1sKzEzNnwwO0Q9bCsxNDR8MDtFPWwrMTUyfDA7Rj1sKzE2MHwwO0c9
bCsxNjh8MDtIPWwrMTc2fDA7ST1sKzE4NHwwO0o9bCsxOTJ8MDtLPWwrMjAwfDA7TD1sKzIwOHww
O009bCsyMTZ8MDtOPWwrMjI0fDA7Tz1sKzIzMnwwO1A9bCsyNDB8MDtRPWwrMjQ4fDA7Uj1sKzI1
NnwwO1M9bCsyNjR8MDtUPWwrMjcyfDA7VT1sKzI4MHwwO1Y9bCsyODh8MDtXPWwrMjk2fDA7WD1s
KzMwNHwwO1k9bCszMTJ8MDtaPWwrMzIwfDA7Y1toPj4yXT0wO2VqKHosZyk7Xz16fDA7ej1jW18+
PjJdfDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW3k+PjJdPTE1Njg4O2NbeSs0Pj4yXT0xMjtjW3kr
OD4+Ml09MDtkVygxNTY4OCx5LDk2KX15PShjWzM5MjNdfDApLTF8MDskPWNbeis4Pj4yXXwwO2Rv
e2lmKChjW3orMTI+PjJdfDApLSQ+PjI+Pj4wPnk+Pj4wKXthYT1jWyQrKHk8PDIpPj4yXXwwO2lm
KChhYXwwKT09MCl7YnJlYWt9YWI9YWE7YWE9Y1tfPj4yXXwwO2R6KGFhKXwwO0wzMTkyOmRve3N3
aXRjaChrPDwyND4+MjR8MCl7Y2FzZSAxMDA6Y2FzZSAxMDE6e2FhPWorMTJ8MDtjW3Y+PjJdPWNb
Zj4+Ml07YWM9aGMoZSx2LGgsYWIsMil8MDthZD1jW2g+PjJdfDA7ZG97aWYoKGFkJjR8MCk9PTAp
e2lmKChhYy0xfDApPj4+MD49MzEpe2JyZWFrfWNbYWE+PjJdPWFjO2JyZWFrIEwzMTkyfX13aGls
ZSgwKTtjW2g+PjJdPWFkfDQ7YnJlYWt9O2Nhc2UgMTEwOmNhc2UgMTE2OntjW0o+PjJdPWNbZj4+
Ml07Z1YoMCxlLEosaCxhYik7YnJlYWt9O2Nhc2UgODg6e2FjPWQrOHwwO2FhPWIwW2NbKGNbYWM+
PjJdfDApKzI0Pj4yXSYxMjddKGFjKXwwO2FjPWV8MDtjW1g+PjJdPWNbYWM+PjJdO2NbWT4+Ml09
Y1tmPj4yXTthZT1hW2FhXXwwO2lmKChhZSYxKT09MCl7YWY9YWErNHwwO2FnPWFhKzR8MH1lbHNl
e2FoPWNbYWErOD4+Ml18MDthZj1haDthZz1haH1haD1hZSYyNTU7aWYoKGFoJjF8MCk9PTApe2Fp
PWFoPj4+MX1lbHNle2FpPWNbYWErND4+Ml18MH1nUihXLGQsWCxZLGcsaCxqLGFnLGFmKyhhaTw8
Mil8MCk7Y1thYz4+Ml09Y1tXPj4yXTticmVha307Y2FzZSA5ODpjYXNlIDY2OmNhc2UgMTA0Onth
Yz1jW2Y+PjJdfDA7YWE9ZCs4fDA7YWg9YjBbY1soY1thYT4+Ml18MCkrND4+Ml0mMTI3XShhYSl8
MDtjW3c+PjJdPWFjO2FjPShmUyhlLHcsYWgsYWgrMjg4fDAsYWIsaCwwKXwwKS1haHwwO2lmKChh
Y3wwKT49Mjg4KXticmVhayBMMzE5Mn1jW2orMTY+PjJdPSgoYWN8MCkvMTJ8MHwwKSUxMnwwO2Jy
ZWFrfTtjYXNlIDExMjp7Y1tLPj4yXT1jW2Y+PjJdO2dYKGQsais4fDAsZSxLLGgsYWIpO2JyZWFr
fTtjYXNlIDExNDp7YWM9ZXwwO2NbTT4+Ml09Y1thYz4+Ml07Y1tOPj4yXT1jW2Y+PjJdO2dSKEws
ZCxNLE4sZyxoLGosMjIxNiwyMjYwKTtjW2FjPj4yXT1jW0w+PjJdO2JyZWFrfTtjYXNlIDM3Ontj
W1o+PjJdPWNbZj4+Ml07Z1koMCxlLFosaCxhYik7YnJlYWt9O2Nhc2UgNjg6e2FjPWV8MDtjW0U+
PjJdPWNbYWM+PjJdO2NbRj4+Ml09Y1tmPj4yXTtnUihELGQsRSxGLGcsaCxqLDIyNjQsMjI5Nik7
Y1thYz4+Ml09Y1tEPj4yXTticmVha307Y2FzZSA4OTp7Y1ttPj4yXT1jW2Y+PjJdO2FjPWhjKGUs
bSxoLGFiLDQpfDA7aWYoKGNbaD4+Ml0mNHwwKSE9MCl7YnJlYWsgTDMxOTJ9Y1tqKzIwPj4yXT1h
Yy0xOTAwO2JyZWFrfTtjYXNlIDgyOnthYz1lfDA7Y1tQPj4yXT1jW2FjPj4yXTtjW1E+PjJdPWNb
Zj4+Ml07Z1IoTyxkLFAsUSxnLGgsaiwyMTkyLDIyMTIpO2NbYWM+PjJdPWNbTz4+Ml07YnJlYWt9
O2Nhc2UgODM6e2NbcD4+Ml09Y1tmPj4yXTthYz1oYyhlLHAsaCxhYiwyKXwwO2FoPWNbaD4+Ml18
MDtpZigoYWgmNHwwKT09MCYoYWN8MCk8NjEpe2Nbaj4+Ml09YWM7YnJlYWsgTDMxOTJ9ZWxzZXtj
W2g+PjJdPWFofDQ7YnJlYWsgTDMxOTJ9YnJlYWt9O2Nhc2UgMTA2OntjW3M+PjJdPWNbZj4+Ml07
YWg9aGMoZSxzLGgsYWIsMyl8MDthYz1jW2g+PjJdfDA7aWYoKGFjJjR8MCk9PTAmKGFofDApPDM2
Nil7Y1tqKzI4Pj4yXT1haDticmVhayBMMzE5Mn1lbHNle2NbaD4+Ml09YWN8NDticmVhayBMMzE5
Mn1icmVha307Y2FzZSA5NzpjYXNlIDY1OnthYz1jW2Y+PjJdfDA7YWg9ZCs4fDA7YWE9YjBbY1tj
W2FoPj4yXT4+Ml0mMTI3XShhaCl8MDtjW3g+PjJdPWFjO2FjPShmUyhlLHgsYWEsYWErMTY4fDAs
YWIsaCwwKXwwKS1hYXwwO2lmKChhY3wwKT49MTY4KXticmVhayBMMzE5Mn1jW2orMjQ+PjJdPSgo
YWN8MCkvMTJ8MHwwKSU3fDA7YnJlYWt9O2Nhc2UgOTk6e2FjPWQrOHwwO2FhPWIwW2NbKGNbYWM+
PjJdfDApKzEyPj4yXSYxMjddKGFjKXwwO2FjPWV8MDtjW0I+PjJdPWNbYWM+PjJdO2NbQz4+Ml09
Y1tmPj4yXTthaD1hW2FhXXwwO2lmKChhaCYxKT09MCl7YWo9YWErNHwwO2FrPWFhKzR8MH1lbHNl
e2FlPWNbYWErOD4+Ml18MDthaj1hZTthaz1hZX1hZT1haCYyNTU7aWYoKGFlJjF8MCk9PTApe2Fs
PWFlPj4+MX1lbHNle2FsPWNbYWErND4+Ml18MH1nUihBLGQsQixDLGcsaCxqLGFrLGFqKyhhbDw8
Mil8MCk7Y1thYz4+Ml09Y1tBPj4yXTticmVha307Y2FzZSA4NDp7YWM9ZXwwO2NbUz4+Ml09Y1th
Yz4+Ml07Y1tUPj4yXT1jW2Y+PjJdO2dSKFIsZCxTLFQsZyxoLGosMjE2MCwyMTkyKTtjW2FjPj4y
XT1jW1I+PjJdO2JyZWFrfTtjYXNlIDcwOnthYz1lfDA7Y1tIPj4yXT1jW2FjPj4yXTtjW0k+PjJd
PWNbZj4+Ml07Z1IoRyxkLEgsSSxnLGgsaiwyMTI4LDIxNjApO2NbYWM+PjJdPWNbRz4+Ml07YnJl
YWt9O2Nhc2UgNzI6e2NbdT4+Ml09Y1tmPj4yXTthYz1oYyhlLHUsaCxhYiwyKXwwO2FhPWNbaD4+
Ml18MDtpZigoYWEmNHwwKT09MCYoYWN8MCk8MjQpe2Nbais4Pj4yXT1hYzticmVhayBMMzE5Mn1l
bHNle2NbaD4+Ml09YWF8NDticmVhayBMMzE5Mn1icmVha307Y2FzZSAxMjE6e2Nbbj4+Ml09Y1tm
Pj4yXTthYT1oYyhlLG4saCxhYiw0KXwwO2lmKChjW2g+PjJdJjR8MCkhPTApe2JyZWFrIEwzMTky
fWlmKChhYXwwKTw2OSl7YW09YWErMmUzfDB9ZWxzZXthbT0oYWEtNjl8MCk+Pj4wPDMxP2FhKzE5
MDB8MDphYX1jW2orMjA+PjJdPWFtLTE5MDA7YnJlYWt9O2Nhc2UgMTA5OntjW3I+PjJdPWNbZj4+
Ml07YWE9KGhjKGUscixoLGFiLDIpfDApLTF8MDthYz1jW2g+PjJdfDA7aWYoKGFjJjR8MCk9PTAm
KGFhfDApPDEyKXtjW2orMTY+PjJdPWFhO2JyZWFrIEwzMTkyfWVsc2V7Y1toPj4yXT1hY3w0O2Jy
ZWFrIEwzMTkyfWJyZWFrfTtjYXNlIDczOnthYz1qKzh8MDtjW3Q+PjJdPWNbZj4+Ml07YWE9aGMo
ZSx0LGgsYWIsMil8MDthZT1jW2g+PjJdfDA7ZG97aWYoKGFlJjR8MCk9PTApe2lmKChhYS0xfDAp
Pj4+MD49MTIpe2JyZWFrfWNbYWM+PjJdPWFhO2JyZWFrIEwzMTkyfX13aGlsZSgwKTtjW2g+PjJd
PWFlfDQ7YnJlYWt9O2Nhc2UgNzc6e2NbcT4+Ml09Y1tmPj4yXTthYT1oYyhlLHEsaCxhYiwyKXww
O2FjPWNbaD4+Ml18MDtpZigoYWMmNHwwKT09MCYoYWF8MCk8NjApe2Nbais0Pj4yXT1hYTticmVh
ayBMMzE5Mn1lbHNle2NbaD4+Ml09YWN8NDticmVhayBMMzE5Mn1icmVha307Y2FzZSAxMTk6e2Nb
bz4+Ml09Y1tmPj4yXTthYz1oYyhlLG8saCxhYiwxKXwwO2FhPWNbaD4+Ml18MDtpZigoYWEmNHww
KT09MCYoYWN8MCk8Nyl7Y1tqKzI0Pj4yXT1hYzticmVhayBMMzE5Mn1lbHNle2NbaD4+Ml09YWF8
NDticmVhayBMMzE5Mn1icmVha307Y2FzZSAxMjA6e2FhPWNbKGNbZD4+Ml18MCkrMjA+PjJdfDA7
Y1tVPj4yXT1jW2U+PjJdO2NbVj4+Ml09Y1tmPj4yXTtiWFthYSYxMjddKGIsZCxVLFYsZyxoLGop
O2k9bDtyZXR1cm59O2RlZmF1bHQ6e2NbaD4+Ml09Y1toPj4yXXw0fX19d2hpbGUoMCk7Y1tiPj4y
XT1jW2U+PjJdO2k9bDtyZXR1cm59fXdoaWxlKDApO2w9Yk8oNCl8MDtrcShsKTtibChsfDAsODE3
NiwxMzQpfWZ1bmN0aW9uIGdYKGEsYixlLGYsZyxoKXthPWF8MDtiPWJ8MDtlPWV8MDtmPWZ8MDtn
PWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MDtqPWk7aT1pKzh8MDtrPWY7Zj1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2s+PjJdO2s9anwwO2w9YSs4fDA7YT1iMFtjWyhj
W2w+PjJdfDApKzg+PjJdJjEyN10obCl8MDtsPWRbYV18MDtpZigobCYxfDApPT0wKXttPWw+Pj4x
fWVsc2V7bT1jW2ErND4+Ml18MH1sPWRbYSsxMnwwXXwwO2lmKChsJjF8MCk9PTApe249bD4+PjF9
ZWxzZXtuPWNbYSsxNj4+Ml18MH1pZigobXwwKT09KC1ufDApKXtjW2c+PjJdPWNbZz4+Ml18NDtp
PWo7cmV0dXJufWNbaz4+Ml09Y1tmPj4yXTtmPWZTKGUsayxhLGErMjR8MCxoLGcsMCl8MDtnPWYt
YXwwO2Rve2lmKChmfDApPT0oYXwwKSl7aWYoKGNbYj4+Ml18MCkhPTEyKXticmVha31jW2I+PjJd
PTA7aT1qO3JldHVybn19d2hpbGUoMCk7aWYoKGd8MCkhPTEyKXtpPWo7cmV0dXJufWc9Y1tiPj4y
XXwwO2lmKChnfDApPj0xMil7aT1qO3JldHVybn1jW2I+PjJdPWcrMTI7aT1qO3JldHVybn0KLWZ1
bmN0aW9uIGdZKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9
MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wO2E9aTtnPWQ7ZD1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2c+PjJdO2c9YnwwO2I9Y1tnPj4yXXwwO2Rv
e2lmKChifDApPT0wKXtoPTF9ZWxzZXtqPWNbYisxMj4+Ml18MDtpZigoanwwKT09KGNbYisxNj4+
Ml18MCkpe2s9YjBbY1soY1tiPj4yXXwwKSszNj4+Ml0mMTI3XShiKXwwfWVsc2V7az1jW2o+PjJd
fDB9aWYoKGt8MCk9PS0xKXtjW2c+PjJdPTA7aD0xO2JyZWFrfWVsc2V7aD0oY1tnPj4yXXwwKT09
MDticmVha319fXdoaWxlKDApO2s9ZHwwO2Q9Y1trPj4yXXwwO2Rve2lmKChkfDApPT0wKXtsPTI3
MTZ9ZWxzZXtiPWNbZCsxMj4+Ml18MDtpZigoYnwwKT09KGNbZCsxNj4+Ml18MCkpe209YjBbY1so
Y1tkPj4yXXwwKSszNj4+Ml0mMTI3XShkKXwwfWVsc2V7bT1jW2I+PjJdfDB9aWYoKG18MCk9PS0x
KXtjW2s+PjJdPTA7bD0yNzE2O2JyZWFrfWVsc2V7Yj0oZHwwKT09MDtpZihoXmIpe249ZDtvPWI7
YnJlYWt9ZWxzZXtsPTI3MTg7YnJlYWt9fX19d2hpbGUoMCk7aWYoKGx8MCk9PTI3MTYpe2lmKGgp
e2w9MjcxOH1lbHNle249MDtvPTF9fWlmKChsfDApPT0yNzE4KXtjW2U+PjJdPWNbZT4+Ml18Njtp
PWE7cmV0dXJufWg9Y1tnPj4yXXwwO2Q9Y1toKzEyPj4yXXwwO2lmKChkfDApPT0oY1toKzE2Pj4y
XXwwKSl7cD1iMFtjWyhjW2g+PjJdfDApKzM2Pj4yXSYxMjddKGgpfDB9ZWxzZXtwPWNbZD4+Ml18
MH1pZigoYjFbY1soY1tmPj4yXXwwKSs1Mj4+Ml0mNjNdKGYscCwwKXwwKTw8MjQ+PjI0IT0zNyl7
Y1tlPj4yXT1jW2U+PjJdfDQ7aT1hO3JldHVybn1wPWNbZz4+Ml18MDtmPXArMTJ8MDtkPWNbZj4+
Ml18MDtpZigoZHwwKT09KGNbcCsxNj4+Ml18MCkpe2g9Y1soY1twPj4yXXwwKSs0MD4+Ml18MDti
MFtoJjEyN10ocCl8MH1lbHNle2NbZj4+Ml09ZCs0fWQ9Y1tnPj4yXXwwO2Rve2lmKChkfDApPT0w
KXtxPTF9ZWxzZXtmPWNbZCsxMj4+Ml18MDtpZigoZnwwKT09KGNbZCsxNj4+Ml18MCkpe3I9YjBb
Y1soY1tkPj4yXXwwKSszNj4+Ml0mMTI3XShkKXwwfWVsc2V7cj1jW2Y+PjJdfDB9aWYoKHJ8MCk9
PS0xKXtjW2c+PjJdPTA7cT0xO2JyZWFrfWVsc2V7cT0oY1tnPj4yXXwwKT09MDticmVha319fXdo
aWxlKDApO2Rve2lmKG8pe2w9Mjc0MH1lbHNle2c9Y1tuKzEyPj4yXXwwO2lmKChnfDApPT0oY1tu
KzE2Pj4yXXwwKSl7cz1iMFtjWyhjW24+PjJdfDApKzM2Pj4yXSYxMjddKG4pfDB9ZWxzZXtzPWNb
Zz4+Ml18MH1pZigoc3wwKT09LTEpe2Nbaz4+Ml09MDtsPTI3NDA7YnJlYWt9aWYoIShxXihufDAp
PT0wKSl7YnJlYWt9aT1hO3JldHVybn19d2hpbGUoMCk7ZG97aWYoKGx8MCk9PTI3NDApe2lmKHEp
e2JyZWFrfWk9YTtyZXR1cm59fXdoaWxlKDApO2NbZT4+Ml09Y1tlPj4yXXwyO2k9YTtyZXR1cm59
ZnVuY3Rpb24gZ1ooYSl7YT1hfDA7cmV0dXJuIDEyN31mdW5jdGlvbiBnXyhhKXthPWF8MDtyZXR1
cm4gMTI3fWZ1bmN0aW9uIGckKGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGcwKGEpe2E9YXww
O3JldHVybiAxMjd9ZnVuY3Rpb24gZzEoYSl7YT1hfDA7cmV0dXJuIDEyN31mdW5jdGlvbiBnMihh
KXthPWF8MDtyZXR1cm4gMH1mdW5jdGlvbiBnMyhhKXthPWF8MDtyZXR1cm4gMjE0NzQ4MzY0N31m
dW5jdGlvbiBnNChhKXthPWF8MDtyZXR1cm4gMjE0NzQ4MzY0N31mdW5jdGlvbiBnNShhKXthPWF8
MDtyZXR1cm4gMH1mdW5jdGlvbiBnNihiLGMpe2I9YnwwO2M9Y3wwO2M9YjtDPTY3MTA5NjM0O2Fb
Y109QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1O0M9Qz4+ODthW2MrMnwwXT1DJjI1NTtDPUM+
Pjg7YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0aW9uIGc3KGIsYyl7Yj1ifDA7Yz1jfDA7Yz1i
O0M9NjcxMDk2MzQ7YVtjXT1DJjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYyNTU7Qz1DPj44O2FbYysy
fDBdPUMmMjU1O0M9Qz4+ODthW2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVuY3Rpb24gZzgoYixjKXti
PWJ8MDtjPWN8MDtjPWI7Qz02NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1
NTtDPUM+Pjg7YVtjKzJ8MF09QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5j
dGlvbiBnOShiLGMpe2I9YnwwO2M9Y3wwO2M9YjtDPTY3MTA5NjM0O2FbY109QyYyNTU7Qz1DPj44
O2FbYysxfDBdPUMmMjU1O0M9Qz4+ODthW2MrMnwwXT1DJjI1NTtDPUM+Pjg7YVtjKzN8MF09QyYy
NTU7cmV0dXJufWZ1bmN0aW9uIGhhKGIsYyl7Yj1ifDA7Yz1jfDA7Yz1iO0M9NjcxMDk2MzQ7YVtj
XT1DJjI1NTtDPUM+Pjg7YVtjKzF8MF09QyYyNTU7Qz1DPj44O2FbYysyfDBdPUMmMjU1O0M9Qz4+
ODthW2MrM3wwXT1DJjI1NTtyZXR1cm59ZnVuY3Rpb24gaGIoYixjKXtiPWJ8MDtjPWN8MDtjPWI7
Qz02NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8
MF09QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlvbiBoYyhhLGIsZCxl
LGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0w
LG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wO2c9aTtoPWI7Yj1pO2k9aSs0fDA7aT1pKzc+PjM8
PDM7Y1tiPj4yXT1jW2g+PjJdO2g9YXwwO2E9Y1toPj4yXXwwO2Rve2lmKChhfDApPT0wKXtqPTF9
ZWxzZXtrPWNbYSsxMj4+Ml18MDtpZigoa3wwKT09KGNbYSsxNj4+Ml18MCkpe2w9YjBbY1soY1th
Pj4yXXwwKSszNj4+Ml0mMTI3XShhKXwwfWVsc2V7bD1jW2s+PjJdfDB9aWYoKGx8MCk9PS0xKXtj
W2g+PjJdPTA7aj0xO2JyZWFrfWVsc2V7aj0oY1toPj4yXXwwKT09MDticmVha319fXdoaWxlKDAp
O2w9YnwwO2I9Y1tsPj4yXXwwO2Rve2lmKChifDApPT0wKXttPTI5fWVsc2V7YT1jW2IrMTI+PjJd
fDA7aWYoKGF8MCk9PShjW2IrMTY+PjJdfDApKXtuPWIwW2NbKGNbYj4+Ml18MCkrMzY+PjJdJjEy
N10oYil8MH1lbHNle249Y1thPj4yXXwwfWlmKChufDApPT0tMSl7Y1tsPj4yXT0wO209Mjk7YnJl
YWt9ZWxzZXtpZihqXihifDApPT0wKXtvPWI7YnJlYWt9ZWxzZXttPTMxO2JyZWFrfX19fXdoaWxl
KDApO2lmKChtfDApPT0yOSl7aWYoail7bT0zMX1lbHNle289MH19aWYoKG18MCk9PTMxKXtjW2Q+
PjJdPWNbZD4+Ml18NjtwPTA7aT1nO3JldHVybiBwfDB9aj1jW2g+PjJdfDA7Yj1jW2orMTI+PjJd
fDA7aWYoKGJ8MCk9PShjW2orMTY+PjJdfDApKXtxPWIwW2NbKGNbaj4+Ml18MCkrMzY+PjJdJjEy
N10oail8MH1lbHNle3E9Y1tiPj4yXXwwfWI9ZTtpZighKGIxW2NbKGNbYj4+Ml18MCkrMTI+PjJd
JjYzXShlLDIwNDgscSl8MCkpe2NbZD4+Ml09Y1tkPj4yXXw0O3A9MDtpPWc7cmV0dXJuIHB8MH1q
PWU7bj0oYjFbY1soY1tqPj4yXXwwKSs1Mj4+Ml0mNjNdKGUscSwwKXwwKTw8MjQ+PjI0O3E9Y1to
Pj4yXXwwO2E9cSsxMnwwO2s9Y1thPj4yXXwwO2lmKChrfDApPT0oY1txKzE2Pj4yXXwwKSl7cj1j
WyhjW3E+PjJdfDApKzQwPj4yXXwwO2IwW3ImMTI3XShxKXwwO3M9bjt0PWY7dT1vfWVsc2V7Y1th
Pj4yXT1rKzQ7cz1uO3Q9Zjt1PW99d2hpbGUoMSl7dj1zLTQ4fDA7bz10LTF8MDtmPWNbaD4+Ml18
MDtkb3tpZigoZnwwKT09MCl7dz0wfWVsc2V7bj1jW2YrMTI+PjJdfDA7aWYoKG58MCk9PShjW2Yr
MTY+PjJdfDApKXt4PWIwW2NbKGNbZj4+Ml18MCkrMzY+PjJdJjEyN10oZil8MH1lbHNle3g9Y1tu
Pj4yXXwwfWlmKCh4fDApPT0tMSl7Y1toPj4yXT0wO3c9MDticmVha31lbHNle3c9Y1toPj4yXXww
O2JyZWFrfX19d2hpbGUoMCk7Zj0od3wwKT09MDtpZigodXwwKT09MCl7eT13O3o9MH1lbHNle249
Y1t1KzEyPj4yXXwwO2lmKChufDApPT0oY1t1KzE2Pj4yXXwwKSl7QT1iMFtjWyhjW3U+PjJdfDAp
KzM2Pj4yXSYxMjddKHUpfDB9ZWxzZXtBPWNbbj4+Ml18MH1pZigoQXwwKT09LTEpe2NbbD4+Ml09
MDtCPTB9ZWxzZXtCPXV9eT1jW2g+PjJdfDA7ej1CfUM9KHp8MCk9PTA7aWYoISgoZl5DKSYob3ww
KT4wKSl7YnJlYWt9Zj1jW3krMTI+PjJdfDA7aWYoKGZ8MCk9PShjW3krMTY+PjJdfDApKXtEPWIw
W2NbKGNbeT4+Ml18MCkrMzY+PjJdJjEyN10oeSl8MH1lbHNle0Q9Y1tmPj4yXXwwfWlmKCEoYjFb
Y1soY1tiPj4yXXwwKSsxMj4+Ml0mNjNdKGUsMjA0OCxEKXwwKSl7cD12O209ODE7YnJlYWt9Zj0o
KGIxW2NbKGNbaj4+Ml18MCkrNTI+PjJdJjYzXShlLEQsMCl8MCk8PDI0Pj4yNCkrKHYqMTB8MCl8
MDtuPWNbaD4+Ml18MDtrPW4rMTJ8MDthPWNbaz4+Ml18MDtpZigoYXwwKT09KGNbbisxNj4+Ml18
MCkpe3E9Y1soY1tuPj4yXXwwKSs0MD4+Ml18MDtiMFtxJjEyN10obil8MDtzPWY7dD1vO3U9ejtj
b250aW51ZX1lbHNle2Nbaz4+Ml09YSs0O3M9Zjt0PW87dT16O2NvbnRpbnVlfX1pZigobXwwKT09
ODEpe2k9ZztyZXR1cm4gcHwwfWRve2lmKCh5fDApPT0wKXtFPTF9ZWxzZXt1PWNbeSsxMj4+Ml18
MDtpZigodXwwKT09KGNbeSsxNj4+Ml18MCkpe0Y9YjBbY1soY1t5Pj4yXXwwKSszNj4+Ml0mMTI3
XSh5KXwwfWVsc2V7Rj1jW3U+PjJdfDB9aWYoKEZ8MCk9PS0xKXtjW2g+PjJdPTA7RT0xO2JyZWFr
fWVsc2V7RT0oY1toPj4yXXwwKT09MDticmVha319fXdoaWxlKDApO2Rve2lmKEMpe209NzV9ZWxz
ZXtoPWNbeisxMj4+Ml18MDtpZigoaHwwKT09KGNbeisxNj4+Ml18MCkpe0c9YjBbY1soY1t6Pj4y
XXwwKSszNj4+Ml0mMTI3XSh6KXwwfWVsc2V7Rz1jW2g+PjJdfDB9aWYoKEd8MCk9PS0xKXtjW2w+
PjJdPTA7bT03NTticmVha31pZihFXih6fDApPT0wKXtwPXZ9ZWxzZXticmVha31pPWc7cmV0dXJu
IHB8MH19d2hpbGUoMCk7ZG97aWYoKG18MCk9PTc1KXtpZihFKXticmVha31lbHNle3A9dn1pPWc7
cmV0dXJuIHB8MH19d2hpbGUoMCk7Y1tkPj4yXT1jW2Q+PjJdfDI7cD12O2k9ZztyZXR1cm4gcHww
fWZ1bmN0aW9uIGhkKGIsZCxlLGYsZyxoLGosayl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7aj1qfDA7az1rfDA7dmFyIGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTA7Zz1pO2k9aSsxMTJ8MDtmPWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tl
Pj4yXT1jW2Y+PjJdO2Y9Z3wwO2w9Zys4fDA7bT1sfDA7bj1mfDA7YVtuXT0zNztvPWYrMXwwO2Fb
b109ajtwPWYrMnwwO2FbcF09azthW2YrM3wwXT0wO2lmKGs8PDI0Pj4yNCE9MCl7YVtvXT1rO2Fb
cF09an1qPWJrKG18MCwxMDAsbnwwLGh8MCxjW2QrOD4+Ml18MCl8MDtkPWwranwwO2w9Y1tlPj4y
XXwwO2lmKChqfDApPT0wKXtxPWw7cj1ifDA7Y1tyPj4yXT1xO2k9ZztyZXR1cm59ZWxzZXtzPWw7
dD1tfXdoaWxlKDEpe209YVt0XXwwO2lmKChzfDApPT0wKXt1PTB9ZWxzZXtsPXMrMjR8MDtqPWNb
bD4+Ml18MDtpZigoanwwKT09KGNbcysyOD4+Ml18MCkpe3Y9Yl9bY1soY1tzPj4yXXwwKSs1Mj4+
Ml0mMzFdKHMsbSYyNTUpfDB9ZWxzZXtjW2w+PjJdPWorMTthW2pdPW07dj1tJjI1NX11PSh2fDAp
PT0tMT8wOnN9bT10KzF8MDtpZigobXwwKT09KGR8MCkpe3E9dTticmVha31lbHNle3M9dTt0PW19
fXI9YnwwO2Nbcj4+Ml09cTtpPWc7cmV0dXJufWZ1bmN0aW9uIGhlKGEsYixkLGUsZixnLGgsail7
YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxs
PTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTA7Zj1pO2k9aSs0MDh8MDtlPWQ7ZD1pO2k9aSs0fDA7
aT1pKzc+PjM8PDM7Y1tkPj4yXT1jW2U+PjJdO2U9ZnwwO2s9Zis0MDB8MDtsPWV8MDtjW2s+PjJd
PWUrNDAwO2hDKGIrOHwwLGwsayxnLGgsaik7aj1jW2s+PjJdfDA7az1jW2Q+PjJdfDA7aWYoKGx8
MCk9PShqfDApKXttPWs7bj1hfDA7Y1tuPj4yXT1tO2k9ZjtyZXR1cm59ZWxzZXtvPWs7cD1sfXdo
aWxlKDEpe2w9Y1twPj4yXXwwO2lmKChvfDApPT0wKXtxPTB9ZWxzZXtrPW8rMjR8MDtkPWNbaz4+
Ml18MDtpZigoZHwwKT09KGNbbysyOD4+Ml18MCkpe3I9Yl9bY1soY1tvPj4yXXwwKSs1Mj4+Ml0m
MzFdKG8sbCl8MH1lbHNle2Nbaz4+Ml09ZCs0O2NbZD4+Ml09bDtyPWx9cT0ocnwwKT09LTE/MDpv
fWw9cCs0fDA7aWYoKGx8MCk9PShqfDApKXttPXE7YnJlYWt9ZWxzZXtvPXE7cD1sfX1uPWF8MDtj
W24+PjJdPW07aT1mO3JldHVybn1mdW5jdGlvbiBoZihhKXthPWF8MDtkZShhfDApO2tTKGEpO3Jl
dHVybn1mdW5jdGlvbiBoZyhhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBoaChhLGIp
e2E9YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24gaGkoYSxiKXthPWF8MDti
PWJ8MDtrJChhfDAsMCwxMik7cmV0dXJufWZ1bmN0aW9uIGhqKGEsYil7YT1hfDA7Yj1ifDA7ayQo
YXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBoayhhLGIpe2E9YXwwO2I9YnwwO2RfKGEsMSw0NSk7
cmV0dXJufWZ1bmN0aW9uIGhsKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9u
IGhtKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGhuKGEsYil7YT1hfDA7Yj1ifDA7
ayQoYXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBobyhhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCww
LDEyKTtyZXR1cm59ZnVuY3Rpb24gaHAoYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7cmV0
dXJufWZ1bmN0aW9uIGhxKGEsYil7YT1hfDA7Yj1ifDA7ZF8oYSwxLDQ1KTtyZXR1cm59ZnVuY3Rp
b24gaHIoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaHMoYSl7YT1hfDA7
ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaHQoYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7
cmV0dXJufWZ1bmN0aW9uIGh1KGEsYil7YT1hfDA7Yj1ifDA7ayQoYXwwLDAsMTIpO3JldHVybn1m
dW5jdGlvbiBodihhLGIpe2E9YXwwO2I9YnwwO2skKGF8MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24g
aHcoYSxiKXthPWF8MDtiPWJ8MDtleShhLDEsNDUpO3JldHVybn1mdW5jdGlvbiBoeChhKXthPWF8
MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBoeShiKXtiPWJ8MDt2YXIgZD0wLGU9MCxm
PTAsZz0wO2Q9YjtlPWIrOHwwO2Y9Y1tlPj4yXXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYo
KGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7
aWYoKGZ8MCk9PShjWzI5NThdfDApKXtnPWJ8MDtkZShnKTtrUyhkKTtyZXR1cm59YTcoY1tlPj4y
XXwwKTtnPWJ8MDtkZShnKTtrUyhkKTtyZXR1cm59ZnVuY3Rpb24gaHooYil7Yj1ifDA7dmFyIGQ9
MCxlPTAsZj0wO2Q9Yis4fDA7ZT1jW2Q+PjJdfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigo
YmMoMTYyNjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtp
ZigoZXwwKT09KGNbMjk1OF18MCkpe2Y9YnwwO2RlKGYpO3JldHVybn1hNyhjW2Q+PjJdfDApO2Y9
YnwwO2RlKGYpO3JldHVybn1mdW5jdGlvbiBoQShiKXtiPWJ8MDt2YXIgZD0wLGU9MCxmPTAsZz0w
O2Q9YjtlPWIrOHwwO2Y9Y1tlPj4yXXwwO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2
MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7aWYoKGZ8
MCk9PShjWzI5NThdfDApKXtnPWJ8MDtkZShnKTtrUyhkKTtyZXR1cm59YTcoY1tlPj4yXXwwKTtn
PWJ8MDtkZShnKTtrUyhkKTtyZXR1cm59ZnVuY3Rpb24gaEIoYil7Yj1ifDA7dmFyIGQ9MCxlPTAs
Zj0wO2Q9Yis4fDA7ZT1jW2Q+PjJdfDA7ZG97aWYoKGFbMTYyNjRdfDApPT0wKXtpZigoYmMoMTYy
NjQpfDApPT0wKXticmVha31jWzI5NThdPWFTKDEsMTM0NCwwKXwwfX13aGlsZSgwKTtpZigoZXww
KT09KGNbMjk1OF18MCkpe2Y9YnwwO2RlKGYpO3JldHVybn1hNyhjW2Q+PjJdfDApO2Y9YnwwO2Rl
KGYpO3JldHVybn1mdW5jdGlvbiBoQyhiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7aD1ofDA7dmFyIGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTA7aj1pO2k9
aSsxMjB8MDtrPWp8MDtsPWorMTEyfDA7bT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7bj1qKzh8MDtv
PWt8MDthW29dPTM3O3A9aysxfDA7YVtwXT1nO3E9aysyfDA7YVtxXT1oO2FbayszfDBdPTA7aWYo
aDw8MjQ+PjI0IT0wKXthW3BdPWg7YVtxXT1nfWc9YnwwO2JrKG58MCwxMDAsb3wwLGZ8MCxjW2c+
PjJdfDApfDA7Y1tsPj4yXT0wO2NbbCs0Pj4yXT0wO2NbbT4+Ml09bjtuPShjW2U+PjJdfDApLWQ+
PjI7Zj1iQihjW2c+PjJdfDApfDA7Zz1rZShkLG0sbixsKXwwO2lmKChmfDApIT0wKXtiQihmfDAp
fDB9aWYoKGd8MCk9PS0xKXtoVig5MDQpfWVsc2V7Y1tlPj4yXT1kKyhnPDwyKTtpPWo7cmV0dXJu
fX1mdW5jdGlvbiBoRChhKXthPWF8MDtyZXR1cm4gMjE0NzQ4MzY0N31mdW5jdGlvbiBoRShhKXth
PWF8MDtyZXR1cm4gMjE0NzQ4MzY0N31mdW5jdGlvbiBoRihhKXthPWF8MDtyZXR1cm4gMH1mdW5j
dGlvbiBoRyhhKXthPWF8MDtyZXR1cm59ZnVuY3Rpb24gaEgoYixjKXtiPWJ8MDtjPWN8MDtjPWI7
Qz02NzEwOTYzNDthW2NdPUMmMjU1O0M9Qz4+ODthW2MrMXwwXT1DJjI1NTtDPUM+Pjg7YVtjKzJ8
MF09QyYyNTU7Qz1DPj44O2FbYyszfDBdPUMmMjU1O3JldHVybn1mdW5jdGlvbiBoSShiLGMpe2I9
YnwwO2M9Y3wwO2M9YjtDPTY3MTA5NjM0O2FbY109QyYyNTU7Qz1DPj44O2FbYysxfDBdPUMmMjU1
O0M9Qz4+ODthW2MrMnwwXT1DJjI1NTtDPUM+Pjg7YVtjKzN8MF09QyYyNTU7cmV0dXJufWZ1bmN0
aW9uIGhKKGEpe2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGhLKGEsYil7YT1hfDA7Yj1i
fDA7ayQoYXwwLDAsMTIpO3JldHVybn1mdW5jdGlvbiBoTChhLGIpe2E9YXwwO2I9YnwwO2skKGF8
MCwwLDEyKTtyZXR1cm59ZnVuY3Rpb24gaE0oYSxiKXthPWF8MDtiPWJ8MDtrJChhfDAsMCwxMik7
cmV0dXJufWZ1bmN0aW9uIGhOKGEsYil7YT1hfDA7Yj1ifDA7ZXkoYSwxLDQ1KTtyZXR1cm59ZnVu
Y3Rpb24gaE8oYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaFAoYSl7YT1h
fDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaFEoYixkLGUsZixnLGgsaixrKXtiPWJ8MDtkPWR8
MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAs
RD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxS
PTAsUz0wO2Q9aTtpPWkrMjgwfDA7bD1lO2U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZT4+Ml09
Y1tsPj4yXTtsPWY7Zj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tmPj4yXT1jW2w+PjJdO2w9ZHww
O209ZCsxNnwwO249ZCsxMjB8MDtvPWQrMTI4fDA7cD1kKzEzNnwwO3E9ZCsxNDR8MDtyPWQrMTUy
fDA7cz1kKzE2MHwwO3Q9ZCsxNzZ8MDt1PW58MDtjW3U+PjJdPW07dj1uKzR8MDtjW3Y+PjJdPTE2
Njt3PW0rMTAwfDA7ZWoocCxoKTttPXB8MDt4PWNbbT4+Ml18MDtpZigoY1szOTI0XXwwKSE9LTEp
e2NbbD4+Ml09MTU2OTY7Y1tsKzQ+PjJdPTEyO2NbbCs4Pj4yXT0wO2RXKDE1Njk2LGwsOTYpfWw9
KGNbMzkyNV18MCktMXwwO3k9Y1t4Kzg+PjJdfDA7ZG97aWYoKGNbeCsxMj4+Ml18MCkteT4+Mj4+
PjA+bD4+PjApe3o9Y1t5KyhsPDwyKT4+Ml18MDtpZigoenwwKT09MCl7YnJlYWt9QT16O2FbcV09
MDtCPWZ8MDtjW3I+PjJdPWNbQj4+Ml07ZG97aWYoaFIoZSxyLGcscCxjW2grND4+Ml18MCxqLHEs
QSxuLG8sdyl8MCl7Qz1zfDA7RD1jWyhjW3o+PjJdfDApKzMyPj4yXXwwO2NhW0QmMTVdKEEsMjEx
MiwyMTIyLEMpfDA7RD10fDA7RT1jW28+PjJdfDA7Rj1jW3U+PjJdfDA7Rz1FLUZ8MDtkb3tpZigo
R3wwKT45OCl7SD1rSihHKzJ8MCl8MDtpZigoSHwwKSE9MCl7ST1IO0o9SDticmVha31rWCgpO0k9
MDtKPTB9ZWxzZXtJPUQ7Sj0wfX13aGlsZSgwKTtpZigoYVtxXSYxKT09MCl7Sz1JfWVsc2V7YVtJ
XT00NTtLPUkrMXwwfWlmKEY+Pj4wPEU+Pj4wKXtHPXMrMTB8MDtIPXM7TD1LO009Rjt3aGlsZSgx
KXtOPUM7d2hpbGUoMSl7aWYoKE58MCk9PShHfDApKXtPPUc7YnJlYWt9aWYoKGFbTl18MCk9PShh
W01dfDApKXtPPU47YnJlYWt9ZWxzZXtOPU4rMXwwfX1hW0xdPWFbMjExMisoTy1IKXwwXXwwO049
TSsxfDA7UD1MKzF8MDtpZihOPj4+MDwoY1tvPj4yXXwwKT4+PjApe0w9UDtNPU59ZWxzZXtRPVA7
YnJlYWt9fX1lbHNle1E9S31hW1FdPTA7TT1iRChEfDAsMTQwOCwoTD1pLGk9aSs4fDAsY1tMPj4y
XT1rLEwpfDApfDA7aT1MO2lmKChNfDApPT0xKXtpZigoSnwwKT09MCl7YnJlYWt9a0soSik7YnJl
YWt9TT1iTyg4KXwwO2RFKE0sMTM2OCk7YmwoTXwwLDgxOTIsMjIpfX13aGlsZSgwKTtBPWV8MDt6
PWNbQT4+Ml18MDtkb3tpZigoenwwKT09MCl7Uj0wfWVsc2V7aWYoKGNbeisxMj4+Ml18MCkhPShj
W3orMTY+PjJdfDApKXtSPXo7YnJlYWt9aWYoKGIwW2NbKGNbej4+Ml18MCkrMzY+PjJdJjEyN10o
eil8MCkhPS0xKXtSPXo7YnJlYWt9Y1tBPj4yXT0wO1I9MH19d2hpbGUoMCk7QT0oUnwwKT09MDt6
PWNbQj4+Ml18MDtkb3tpZigoenwwKT09MCl7Uz0yNDR9ZWxzZXtpZigoY1t6KzEyPj4yXXwwKSE9
KGNbeisxNj4+Ml18MCkpe2lmKEEpe2JyZWFrfWVsc2V7Uz0yNDY7YnJlYWt9fWlmKChiMFtjWyhj
W3o+PjJdfDApKzM2Pj4yXSYxMjddKHopfDApPT0tMSl7Y1tCPj4yXT0wO1M9MjQ0O2JyZWFrfWVs
c2V7aWYoQV4oenwwKT09MCl7YnJlYWt9ZWxzZXtTPTI0NjticmVha319fX13aGlsZSgwKTtpZigo
U3wwKT09MjQ0KXtpZihBKXtTPTI0Nn19aWYoKFN8MCk9PTI0Nil7Y1tqPj4yXT1jW2o+PjJdfDJ9
Y1tiPj4yXT1SO3o9Y1ttPj4yXXwwO2R6KHopfDA7ej1jW3U+PjJdfDA7Y1t1Pj4yXT0wO2lmKCh6
fDApPT0wKXtpPWQ7cmV0dXJufWJZW2Nbdj4+Ml0mNTExXSh6KTtpPWQ7cmV0dXJufX13aGlsZSgw
KTtkPWJPKDQpfDA7a3EoZCk7YmwoZHwwLDgxNzYsMTM0KX1mdW5jdGlvbiBoUihlLGYsZyxoLGos
ayxsLG0sbixvLHApe2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209
bXwwO249bnwwO289b3wwO3A9cHwwO3ZhciBxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAs
TT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxf
PTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAs
YWs9MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFzPTAsYXQ9MCxhdT0wLGF2
PTAsYXc9MCxheD0wLGF5PTAsYXo9MCxhQT0wLGFCPTAsYUM9MCxhRD0wLGFFPTAsYUY9MCxhRz0w
LGFIPTAsYUk9MCxhSj0wLGFLPTAsYUw9MCxhTT0wLGFOPTAsYU89MCxhUD0wLGFRPTAsYVI9MCxh
Uz0wLGFUPTAsYVU9MCxhVj0wLGFXPTAsYVg9MCxhWT0wLGFaPTAsYV89MCxhJD0wLGEwPTAsYTE9
MCxhMj0wLGEzPTAsYTQ9MCxhNT0wLGE2PTAsYTc9MCxhOD0wLGE5PTAsYmE9MCxiYj0wLGJjPTAs
YmQ9MCxiZT0wLGJmPTAsYmc9MCxiaD0wLGJpPTAsYmo9MCxiaz0wLGJsPTAsYm09MCxibj0wLGJv
PTAsYnA9MCxicT0wLGJyPTAsYnM9MCxidD0wLGJ1PTAsYnY9MCxidz0wLGJ4PTAsYnk9MCxiej0w
LGJBPTAsYkI9MCxiQz0wLGJEPTAsYkU9MDtxPWk7aT1pKzQ0MHwwO3I9ZjtmPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2Y+PjJdPWNbcj4+Ml07cj1xfDA7cz1xKzQwMHwwO3Q9cSs0MDh8MDt1PXEr
NDE2fDA7dj1xKzQyNHwwO3c9djt4PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7eT1pO2k9aSsxMnww
O2k9aSs3Pj4zPDwzO3o9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztBPWk7aT1pKzEyfDA7aT1pKzc+
PjM8PDM7Qj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7RD1y
fDA7ayQod3wwLDAsMTIpO0U9eDtGPXk7Rz16O0g9QTtrJChFfDAsMCwxMik7ayQoRnwwLDAsMTIp
O2skKEd8MCwwLDEyKTtrJChIfDAsMCwxMik7aFgoZyxoLHMsdCx1LHYseCx5LHosQik7aD1ufDA7
Y1tvPj4yXT1jW2g+PjJdO2c9ZXwwO2U9ZnwwO2Y9bSs4fDA7bT16KzF8MDtJPXorNHwwO0o9eis4
fDA7Sz15KzF8MDtMPXkrNHwwO009eSs4fDA7Tj0oaiY1MTJ8MCkhPTA7aj14KzF8MDtPPXgrNHww
O1A9eCs4fDA7UT1BKzF8MDtSPUErNHwwO1M9QSs4fDA7VD1zKzN8MDtVPW4rNHwwO249dis0fDA7
Vj1wO3A9MTY2O1c9RDtYPUQ7RD1yKzQwMHwwO3I9MDtZPTA7TDI4Njp3aGlsZSgxKXtaPWNbZz4+
Ml18MDtkb3tpZigoWnwwKT09MCl7Xz0wfWVsc2V7aWYoKGNbWisxMj4+Ml18MCkhPShjW1orMTY+
PjJdfDApKXtfPVo7YnJlYWt9aWYoKGIwW2NbKGNbWj4+Ml18MCkrMzY+PjJdJjEyN10oWil8MCk9
PS0xKXtjW2c+PjJdPTA7Xz0wO2JyZWFrfWVsc2V7Xz1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgw
KTtaPShffDApPT0wOyQ9Y1tlPj4yXXwwO2Rve2lmKCgkfDApPT0wKXthYT0yNzF9ZWxzZXtpZigo
Y1skKzEyPj4yXXwwKSE9KGNbJCsxNj4+Ml18MCkpe2lmKFope2FiPSQ7YnJlYWt9ZWxzZXthYz1w
O2FkPVc7YWU9WDthZj1yO2FhPTUyMzticmVhayBMMjg2fX1pZigoYjBbY1soY1skPj4yXXwwKSsz
Nj4+Ml0mMTI3XSgkKXwwKT09LTEpe2NbZT4+Ml09MDthYT0yNzE7YnJlYWt9ZWxzZXtpZihaKXth
Yj0kO2JyZWFrfWVsc2V7YWM9cDthZD1XO2FlPVg7YWY9cjthYT01MjM7YnJlYWsgTDI4Nn19fX13
aGlsZSgwKTtpZigoYWF8MCk9PTI3MSl7YWE9MDtpZihaKXthYz1wO2FkPVc7YWU9WDthZj1yO2Fh
PTUyMzticmVha31lbHNle2FiPTB9fUwzMDg6ZG97c3dpdGNoKGFbcytZfDBdfDApe2Nhc2UgMTp7
aWYoKFl8MCk9PTMpe2FjPXA7YWQ9VzthZT1YO2FmPXI7YWE9NTIzO2JyZWFrIEwyODZ9JD1jW2c+
PjJdfDA7YWc9Y1skKzEyPj4yXXwwO2lmKChhZ3wwKT09KGNbJCsxNj4+Ml18MCkpe2FoPShiMFtj
WyhjWyQ+PjJdfDApKzM2Pj4yXSYxMjddKCQpfDApJjI1NX1lbHNle2FoPWFbYWddfDB9aWYoYWg8
PDI0Pj4yNDw9LTEpe2FhPTI5NjticmVhayBMMjg2fWlmKChiWyhjW2Y+PjJdfDApKyhhaDw8MjQ+
PjI0PDwxKT4+MV0mODE5Mik9PTApe2FhPTI5NjticmVhayBMMjg2fWFnPWNbZz4+Ml18MDskPWFn
KzEyfDA7YWk9Y1skPj4yXXwwO2lmKChhaXwwKT09KGNbYWcrMTY+PjJdfDApKXthaj0oYjBbY1so
Y1thZz4+Ml18MCkrNDA+PjJdJjEyN10oYWcpfDApJjI1NX1lbHNle2NbJD4+Ml09YWkrMTthaj1h
W2FpXXwwfWRVKEEsYWopO2FhPTI5NzticmVha307Y2FzZSAzOnthaT1hW0ZdfDA7JD1haSYyNTU7
YWc9KCQmMXwwKT09MD8kPj4+MTpjW0w+PjJdfDA7JD1hW0ddfDA7YWs9JCYyNTU7YWw9KGFrJjF8
MCk9PTA/YWs+Pj4xOmNbST4+Ml18MDtpZigoYWd8MCk9PSgtYWx8MCkpe2FtPXI7YW49RDthbz1Y
O2FwPVc7YXE9cDthcj1WO2JyZWFrIEwzMDh9YWs9KGFnfDApPT0wO2FnPWNbZz4+Ml18MDthcz1j
W2FnKzEyPj4yXXwwO2F0PWNbYWcrMTY+PjJdfDA7YXU9KGFzfDApPT0oYXR8MCk7aWYoIShha3wo
YWx8MCk9PTApKXtpZihhdSl7YWw9KGIwW2NbKGNbYWc+PjJdfDApKzM2Pj4yXSYxMjddKGFnKXww
KSYyNTU7YXY9Y1tnPj4yXXwwO2F3PWFsO2F4PWFbRl18MDtheT1hdjthej1jW2F2KzEyPj4yXXww
O2FBPWNbYXYrMTY+PjJdfDB9ZWxzZXthdz1hW2FzXXwwO2F4PWFpO2F5PWFnO2F6PWFzO2FBPWF0
fWF0PWF5KzEyfDA7YXY9KGF6fDApPT0oYUF8MCk7aWYoYXc8PDI0Pj4yND09KGFbKGF4JjEpPT0w
P0s6Y1tNPj4yXXwwXXwwKSl7aWYoYXYpe2FsPWNbKGNbYXk+PjJdfDApKzQwPj4yXXwwO2IwW2Fs
JjEyN10oYXkpfDB9ZWxzZXtjW2F0Pj4yXT1heisxfWF0PWRbRl18MDthbT0oKGF0JjF8MCk9PTA/
YXQ+Pj4xOmNbTD4+Ml18MCk+Pj4wPjE/eTpyO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVh
ayBMMzA4fWlmKGF2KXthQj0oYjBbY1soY1theT4+Ml18MCkrMzY+PjJdJjEyN10oYXkpfDApJjI1
NX1lbHNle2FCPWFbYXpdfDB9aWYoYUI8PDI0Pj4yNCE9KGFbKGFbR10mMSk9PTA/bTpjW0o+PjJd
fDBdfDApKXthYT0zNjM7YnJlYWsgTDI4Nn1hdj1jW2c+PjJdfDA7YXQ9YXYrMTJ8MDthbD1jW2F0
Pj4yXXwwO2lmKChhbHwwKT09KGNbYXYrMTY+PjJdfDApKXthQz1jWyhjW2F2Pj4yXXwwKSs0MD4+
Ml18MDtiMFthQyYxMjddKGF2KXwwfWVsc2V7Y1thdD4+Ml09YWwrMX1hW2xdPTE7YWw9ZFtHXXww
O2FtPSgoYWwmMXwwKT09MD9hbD4+PjE6Y1tJPj4yXXwwKT4+PjA+MT96OnI7YW49RDthbz1YO2Fw
PVc7YXE9cDthcj1WO2JyZWFrIEwzMDh9aWYoYWspe2lmKGF1KXthaz0oYjBbY1soY1thZz4+Ml18
MCkrMzY+PjJdJjEyN10oYWcpfDApJjI1NTthRD1hazthRT1hW0ddfDB9ZWxzZXthRD1hW2FzXXww
O2FFPSR9aWYoYUQ8PDI0Pj4yNCE9KGFbKGFFJjEpPT0wP206Y1tKPj4yXXwwXXwwKSl7YW09cjth
bj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDMwOH0kPWNbZz4+Ml18MDthaz0kKzEyfDA7
YWw9Y1thaz4+Ml18MDtpZigoYWx8MCk9PShjWyQrMTY+PjJdfDApKXthdD1jWyhjWyQ+PjJdfDAp
KzQwPj4yXXwwO2IwW2F0JjEyN10oJCl8MH1lbHNle2NbYWs+PjJdPWFsKzF9YVtsXT0xO2FsPWRb
R118MDthbT0oKGFsJjF8MCk9PTA/YWw+Pj4xOmNbST4+Ml18MCk+Pj4wPjE/ejpyO2FuPUQ7YW89
WDthcD1XO2FxPXA7YXI9VjticmVhayBMMzA4fWlmKGF1KXthdT0oYjBbY1soY1thZz4+Ml18MCkr
MzY+PjJdJjEyN10oYWcpfDApJjI1NTthRj1hdTthRz1hW0ZdfDB9ZWxzZXthRj1hW2FzXXwwO2FH
PWFpfWlmKGFGPDwyND4+MjQhPShhWyhhRyYxKT09MD9LOmNbTT4+Ml18MF18MCkpe2FbbF09MTth
bT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMMzA4fWFpPWNbZz4+Ml18MDthcz1h
aSsxMnwwO2F1PWNbYXM+PjJdfDA7aWYoKGF1fDApPT0oY1thaSsxNj4+Ml18MCkpe2FnPWNbKGNb
YWk+PjJdfDApKzQwPj4yXXwwO2IwW2FnJjEyN10oYWkpfDB9ZWxzZXtjW2FzPj4yXT1hdSsxfWF1
PWRbRl18MDthbT0oKGF1JjF8MCk9PTA/YXU+Pj4xOmNbTD4+Ml18MCk+Pj4wPjE/eTpyO2FuPUQ7
YW89WDthcD1XO2FxPXA7YXI9VjticmVha307Y2FzZSAwOnthYT0yOTc7YnJlYWt9O2Nhc2UgMjp7
aWYoISgocnwwKSE9MHxZPj4+MDwyKSl7aWYoKFl8MCk9PTIpe2FIPShhW1RdfDApIT0wfWVsc2V7
YUg9MH1pZighKE58YUgpKXthbT0wO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMMzA4
fX1hdT1hW0VdfDA7YXM9KGF1JjEpPT0wP2o6Y1tQPj4yXXwwO0wzODI6ZG97aWYoKFl8MCk9PTAp
e2FJPWFzfWVsc2V7aWYoKGRbcysoWS0xKXwwXXwwKT49Mil7YUk9YXM7YnJlYWt9YWk9YXUmMjU1
O2FnPWFzKygoYWkmMXwwKT09MD9haT4+PjE6Y1tPPj4yXXwwKXwwO2FpPWFzO3doaWxlKDEpe2lm
KChhaXwwKT09KGFnfDApKXthSj1hZzticmVha31hbD1hW2FpXXwwO2lmKGFsPDwyND4+MjQ8PS0x
KXthSj1haTticmVha31pZigoYlsoY1tmPj4yXXwwKSsoYWw8PDI0Pj4yNDw8MSk+PjFdJjgxOTIp
PT0wKXthSj1haTticmVha31lbHNle2FpPWFpKzF8MH19YWk9YUotYXN8MDthZz1hW0hdfDA7YWw9
YWcmMjU1O2FrPShhbCYxfDApPT0wP2FsPj4+MTpjW1I+PjJdfDA7aWYoYWk+Pj4wPmFrPj4+MCl7
YUk9YXM7YnJlYWt9YWw9KGFnJjEpPT0wP1E6Y1tTPj4yXXwwO2FnPWFsK2FrfDA7aWYoKGFKfDAp
PT0oYXN8MCkpe2FJPWFzO2JyZWFrfSQ9YXM7YXQ9YWwrKGFrLWFpKXwwO3doaWxlKDEpe2lmKChh
W2F0XXwwKSE9KGFbJF18MCkpe2FJPWFzO2JyZWFrIEwzODJ9YWk9YXQrMXwwO2lmKChhaXwwKT09
KGFnfDApKXthST1hSjticmVha31lbHNleyQ9JCsxfDA7YXQ9YWl9fX19d2hpbGUoMCk7YXQ9YXUm
MjU1O0wzOTY6ZG97aWYoKGFJfDApPT0oYXMrKChhdCYxfDApPT0wP2F0Pj4+MTpjW08+PjJdfDAp
fDApKXthSz1hSX1lbHNleyQ9YWI7YWc9YUk7d2hpbGUoMSl7YWk9Y1tnPj4yXXwwO2Rve2lmKChh
aXwwKT09MCl7YUw9MH1lbHNle2lmKChjW2FpKzEyPj4yXXwwKSE9KGNbYWkrMTY+PjJdfDApKXth
TD1haTticmVha31pZigoYjBbY1soY1thaT4+Ml18MCkrMzY+PjJdJjEyN10oYWkpfDApPT0tMSl7
Y1tnPj4yXT0wO2FMPTA7YnJlYWt9ZWxzZXthTD1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTth
aT0oYUx8MCk9PTA7ZG97aWYoKCR8MCk9PTApe2FhPTM5Mn1lbHNle2lmKChjWyQrMTI+PjJdfDAp
IT0oY1skKzE2Pj4yXXwwKSl7aWYoYWkpe2FNPSQ7YnJlYWt9ZWxzZXthSz1hZzticmVhayBMMzk2
fX1pZigoYjBbY1soY1skPj4yXXwwKSszNj4+Ml0mMTI3XSgkKXwwKT09LTEpe2NbZT4+Ml09MDth
YT0zOTI7YnJlYWt9ZWxzZXtpZihhaSl7YU09JDticmVha31lbHNle2FLPWFnO2JyZWFrIEwzOTZ9
fX19d2hpbGUoMCk7aWYoKGFhfDApPT0zOTIpe2FhPTA7aWYoYWkpe2FLPWFnO2JyZWFrIEwzOTZ9
ZWxzZXthTT0wfX1haz1jW2c+PjJdfDA7YWw9Y1thaysxMj4+Ml18MDtpZigoYWx8MCk9PShjW2Fr
KzE2Pj4yXXwwKSl7YU49KGIwW2NbKGNbYWs+PjJdfDApKzM2Pj4yXSYxMjddKGFrKXwwKSYyNTV9
ZWxzZXthTj1hW2FsXXwwfWlmKGFOPDwyND4+MjQhPShhW2FnXXwwKSl7YUs9YWc7YnJlYWsgTDM5
Nn1hbD1jW2c+PjJdfDA7YWs9YWwrMTJ8MDthdj1jW2FrPj4yXXwwO2lmKChhdnwwKT09KGNbYWwr
MTY+PjJdfDApKXthQz1jWyhjW2FsPj4yXXwwKSs0MD4+Ml18MDtiMFthQyYxMjddKGFsKXwwfWVs
c2V7Y1thaz4+Ml09YXYrMX1hdj1hZysxfDA7YWs9YVtFXXwwO2FsPWFrJjI1NTtpZigoYXZ8MCk9
PSgoKGFrJjEpPT0wP2o6Y1tQPj4yXXwwKSsoKGFsJjF8MCk9PTA/YWw+Pj4xOmNbTz4+Ml18MCl8
MCkpe2FLPWF2O2JyZWFrfWVsc2V7JD1hTTthZz1hdn19fX13aGlsZSgwKTtpZighTil7YW09cjth
bj1EO2FvPVg7YXA9VzthcT1wO2FyPVY7YnJlYWsgTDMwOH1hdD1hW0VdfDA7YXM9YXQmMjU1O2lm
KChhS3wwKT09KCgoYXQmMSk9PTA/ajpjW1A+PjJdfDApKygoYXMmMXwwKT09MD9hcz4+PjE6Y1tP
Pj4yXXwwKXwwKSl7YW09cjthbj1EO2FvPVg7YXA9VzthcT1wO2FyPVZ9ZWxzZXthYT00MDU7YnJl
YWsgTDI4Nn1icmVha307Y2FzZSA0Onthcz0wO2F0PUQ7YXU9WDthZz1XOyQ9cDthdj1WO0w0MzE6
d2hpbGUoMSl7YWw9Y1tnPj4yXXwwO2Rve2lmKChhbHwwKT09MCl7YU89MH1lbHNle2lmKChjW2Fs
KzEyPj4yXXwwKSE9KGNbYWwrMTY+PjJdfDApKXthTz1hbDticmVha31pZigoYjBbY1soY1thbD4+
Ml18MCkrMzY+PjJdJjEyN10oYWwpfDApPT0tMSl7Y1tnPj4yXT0wO2FPPTA7YnJlYWt9ZWxzZXth
Tz1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTthbD0oYU98MCk9PTA7YWs9Y1tlPj4yXXwwO2Rv
e2lmKChha3wwKT09MCl7YWE9NDE4fWVsc2V7aWYoKGNbYWsrMTI+PjJdfDApIT0oY1thaysxNj4+
Ml18MCkpe2lmKGFsKXticmVha31lbHNle2JyZWFrIEw0MzF9fWlmKChiMFtjWyhjW2FrPj4yXXww
KSszNj4+Ml0mMTI3XShhayl8MCk9PS0xKXtjW2U+PjJdPTA7YWE9NDE4O2JyZWFrfWVsc2V7aWYo
YWwpe2JyZWFrfWVsc2V7YnJlYWsgTDQzMX19fX13aGlsZSgwKTtpZigoYWF8MCk9PTQxOCl7YWE9
MDtpZihhbCl7YnJlYWt9fWFrPWNbZz4+Ml18MDthQz1jW2FrKzEyPj4yXXwwO2lmKChhQ3wwKT09
KGNbYWsrMTY+PjJdfDApKXthUD0oYjBbY1soY1thaz4+Ml18MCkrMzY+PjJdJjEyN10oYWspfDAp
JjI1NX1lbHNle2FQPWFbYUNdfDB9ZG97aWYoYVA8PDI0Pj4yND4tMSl7aWYoKGJbKGNbZj4+Ml18
MCkrKGFQPDwyND4+MjQ8PDEpPj4xXSYyMDQ4KT09MCl7YWE9NDM3O2JyZWFrfWFDPWNbbz4+Ml18
MDtpZigoYUN8MCk9PShhdnwwKSl7YWs9KGNbVT4+Ml18MCkhPTE2NjthUT1jW2g+PjJdfDA7YVI9
YXYtYVF8MDthUz1hUj4+PjA8MjE0NzQ4MzY0Nz9hUjw8MTotMTthVD1rTChhaz9hUTowLGFTKXww
O2lmKChhVHwwKT09MCl7a1goKX1kb3tpZihhayl7Y1toPj4yXT1hVDthVT1hVH1lbHNle2FRPWNb
aD4+Ml18MDtjW2g+PjJdPWFUO2lmKChhUXwwKT09MCl7YVU9YVQ7YnJlYWt9YllbY1tVPj4yXSY1
MTFdKGFRKTthVT1jW2g+PjJdfDB9fXdoaWxlKDApO2NbVT4+Ml09ODI7YVQ9YVUrYVJ8MDtjW28+
PjJdPWFUO2FWPShjW2g+PjJdfDApK2FTfDA7YVc9YVR9ZWxzZXthVj1hdjthVz1hQ31jW28+PjJd
PWFXKzE7YVthV109YVA7YVg9YXMrMXwwO2FZPWF0O2FaPWF1O2FfPWFnO2EkPSQ7YTA9YVZ9ZWxz
ZXthYT00Mzd9fXdoaWxlKDApO2lmKChhYXwwKT09NDM3KXthYT0wO2FsPWRbd118MDtpZigoKChh
bCYxfDApPT0wP2FsPj4+MTpjW24+PjJdfDApfDApPT0wfChhc3wwKT09MCl7YnJlYWt9aWYoYVA8
PDI0Pj4yNCE9KGFbdV18MCkpe2JyZWFrfWlmKChhdXwwKT09KGF0fDApKXthbD1hdS1hZ3wwO2FU
PWFsPj4+MDwyMTQ3NDgzNjQ3P2FsPDwxOi0xO2lmKCgkfDApPT0xNjYpe2ExPTB9ZWxzZXthMT1h
Z31haz1rTChhMSxhVCl8MDthaT1haztpZigoYWt8MCk9PTApe2tYKCl9YTI9YWkrKGFUPj4+Mjw8
Mil8MDthMz1haSsoYWw+PjI8PDIpfDA7YTQ9YWk7YTU9ODJ9ZWxzZXthMj1hdDthMz1hdTthND1h
ZzthNT0kfWNbYTM+PjJdPWFzO2FYPTA7YVk9YTI7YVo9YTMrNHwwO2FfPWE0O2EkPWE1O2EwPWF2
fWFpPWNbZz4+Ml18MDthbD1haSsxMnwwO2FUPWNbYWw+PjJdfDA7aWYoKGFUfDApPT0oY1thaSsx
Nj4+Ml18MCkpe2FrPWNbKGNbYWk+PjJdfDApKzQwPj4yXXwwO2IwW2FrJjEyN10oYWkpfDA7YXM9
YVg7YXQ9YVk7YXU9YVo7YWc9YV87JD1hJDthdj1hMDtjb250aW51ZX1lbHNle2NbYWw+PjJdPWFU
KzE7YXM9YVg7YXQ9YVk7YXU9YVo7YWc9YV87JD1hJDthdj1hMDtjb250aW51ZX19aWYoKGFnfDAp
PT0oYXV8MCl8KGFzfDApPT0wKXthNj1hdDthNz1hdTthOD1hZzthOT0kfWVsc2V7aWYoKGF1fDAp
PT0oYXR8MCkpe2FUPWF1LWFnfDA7YWw9YVQ+Pj4wPDIxNDc0ODM2NDc/YVQ8PDE6LTE7aWYoKCR8
MCk9PTE2Nil7YmE9MH1lbHNle2JhPWFnfWFpPWtMKGJhLGFsKXwwO2FrPWFpO2lmKChhaXwwKT09
MCl7a1goKX1iYj1haysoYWw+Pj4yPDwyKXwwO2JjPWFrKyhhVD4+Mjw8Mil8MDtiZD1haztiZT04
Mn1lbHNle2JiPWF0O2JjPWF1O2JkPWFnO2JlPSR9Y1tiYz4+Ml09YXM7YTY9YmI7YTc9YmMrNHww
O2E4PWJkO2E5PWJlfWlmKChjW0I+PjJdfDApPjApe2FrPWNbZz4+Ml18MDtkb3tpZigoYWt8MCk9
PTApe2JmPTB9ZWxzZXtpZigoY1thaysxMj4+Ml18MCkhPShjW2FrKzE2Pj4yXXwwKSl7YmY9YWs7
YnJlYWt9aWYoKGIwW2NbKGNbYWs+PjJdfDApKzM2Pj4yXSYxMjddKGFrKXwwKT09LTEpe2NbZz4+
Ml09MDtiZj0wO2JyZWFrfWVsc2V7YmY9Y1tnPj4yXXwwO2JyZWFrfX19d2hpbGUoMCk7YWs9KGJm
fDApPT0wO2FzPWNbZT4+Ml18MDtkb3tpZigoYXN8MCk9PTApe2FhPTQ3MH1lbHNle2lmKChjW2Fz
KzEyPj4yXXwwKSE9KGNbYXMrMTY+PjJdfDApKXtpZihhayl7Ymc9YXM7YnJlYWt9ZWxzZXthYT00
Nzc7YnJlYWsgTDI4Nn19aWYoKGIwW2NbKGNbYXM+PjJdfDApKzM2Pj4yXSYxMjddKGFzKXwwKT09
LTEpe2NbZT4+Ml09MDthYT00NzA7YnJlYWt9ZWxzZXtpZihhayl7Ymc9YXM7YnJlYWt9ZWxzZXth
YT00Nzc7YnJlYWsgTDI4Nn19fX13aGlsZSgwKTtpZigoYWF8MCk9PTQ3MCl7YWE9MDtpZihhayl7
YWE9NDc3O2JyZWFrIEwyODZ9ZWxzZXtiZz0wfX1hcz1jW2c+PjJdfDA7JD1jW2FzKzEyPj4yXXww
O2lmKCgkfDApPT0oY1thcysxNj4+Ml18MCkpe2JoPShiMFtjWyhjW2FzPj4yXXwwKSszNj4+Ml0m
MTI3XShhcyl8MCkmMjU1fWVsc2V7Ymg9YVskXXwwfWlmKGJoPDwyND4+MjQhPShhW3RdfDApKXth
YT00Nzc7YnJlYWsgTDI4Nn0kPWNbZz4+Ml18MDthcz0kKzEyfDA7YWc9Y1thcz4+Ml18MDtpZigo
YWd8MCk9PShjWyQrMTY+PjJdfDApKXthdT1jWyhjWyQ+PjJdfDApKzQwPj4yXXwwO2IwW2F1JjEy
N10oJCl8MDtiaT1hdjtiaj1iZ31lbHNle2NbYXM+PjJdPWFnKzE7Ymk9YXY7Ymo9Ymd9d2hpbGUo
MSl7YWc9Y1tnPj4yXXwwO2Rve2lmKChhZ3wwKT09MCl7Yms9MH1lbHNle2lmKChjW2FnKzEyPj4y
XXwwKSE9KGNbYWcrMTY+PjJdfDApKXtiaz1hZzticmVha31pZigoYjBbY1soY1thZz4+Ml18MCkr
MzY+PjJdJjEyN10oYWcpfDApPT0tMSl7Y1tnPj4yXT0wO2JrPTA7YnJlYWt9ZWxzZXtiaz1jW2c+
PjJdfDA7YnJlYWt9fX13aGlsZSgwKTthZz0oYmt8MCk9PTA7ZG97aWYoKGJqfDApPT0wKXthYT00
OTN9ZWxzZXtpZigoY1tiaisxMj4+Ml18MCkhPShjW2JqKzE2Pj4yXXwwKSl7aWYoYWcpe2JsPWJq
O2JyZWFrfWVsc2V7YWE9NTAxO2JyZWFrIEwyODZ9fWlmKChiMFtjWyhjW2JqPj4yXXwwKSszNj4+
Ml0mMTI3XShiail8MCk9PS0xKXtjW2U+PjJdPTA7YWE9NDkzO2JyZWFrfWVsc2V7aWYoYWcpe2Js
PWJqO2JyZWFrfWVsc2V7YWE9NTAxO2JyZWFrIEwyODZ9fX19d2hpbGUoMCk7aWYoKGFhfDApPT00
OTMpe2FhPTA7aWYoYWcpe2FhPTUwMTticmVhayBMMjg2fWVsc2V7Ymw9MH19YXM9Y1tnPj4yXXww
OyQ9Y1thcysxMj4+Ml18MDtpZigoJHwwKT09KGNbYXMrMTY+PjJdfDApKXtibT0oYjBbY1soY1th
cz4+Ml18MCkrMzY+PjJdJjEyN10oYXMpfDApJjI1NX1lbHNle2JtPWFbJF18MH1pZihibTw8MjQ+
PjI0PD0tMSl7YWE9NTAxO2JyZWFrIEwyODZ9aWYoKGJbKGNbZj4+Ml18MCkrKGJtPDwyND4+MjQ8
PDEpPj4xXSYyMDQ4KT09MCl7YWE9NTAxO2JyZWFrIEwyODZ9JD1jW28+PjJdfDA7aWYoKCR8MCk9
PShiaXwwKSl7YXM9KGNbVT4+Ml18MCkhPTE2NjthdT1jW2g+PjJdfDA7YXQ9YmktYXV8MDthVD1h
dD4+PjA8MjE0NzQ4MzY0Nz9hdDw8MTotMTthbD1rTChhcz9hdTowLGFUKXwwO2lmKChhbHwwKT09
MCl7a1goKX1kb3tpZihhcyl7Y1toPj4yXT1hbDtibj1hbH1lbHNle2F1PWNbaD4+Ml18MDtjW2g+
PjJdPWFsO2lmKChhdXwwKT09MCl7Ym49YWw7YnJlYWt9YllbY1tVPj4yXSY1MTFdKGF1KTtibj1j
W2g+PjJdfDB9fXdoaWxlKDApO2NbVT4+Ml09ODI7YWw9Ym4rYXR8MDtjW28+PjJdPWFsO2JvPShj
W2g+PjJdfDApK2FUfDA7YnA9YWx9ZWxzZXtibz1iaTticD0kfWFsPWNbZz4+Ml18MDthcz1jW2Fs
KzEyPj4yXXwwO2lmKChhc3wwKT09KGNbYWwrMTY+PjJdfDApKXthZz0oYjBbY1soY1thbD4+Ml18
MCkrMzY+PjJdJjEyN10oYWwpfDApJjI1NTticT1hZzticj1jW28+PjJdfDB9ZWxzZXticT1hW2Fz
XXwwO2JyPWJwfWNbbz4+Ml09YnIrMTthW2JyXT1icTthcz0oY1tCPj4yXXwwKS0xfDA7Y1tCPj4y
XT1hczthZz1jW2c+PjJdfDA7YWw9YWcrMTJ8MDthdT1jW2FsPj4yXXwwO2lmKChhdXwwKT09KGNb
YWcrMTY+PjJdfDApKXthaT1jWyhjW2FnPj4yXXwwKSs0MD4+Ml18MDtiMFthaSYxMjddKGFnKXww
fWVsc2V7Y1thbD4+Ml09YXUrMX1pZigoYXN8MCk+MCl7Ymk9Ym87Ymo9Ymx9ZWxzZXticz1ibzti
cmVha319fWVsc2V7YnM9YXZ9aWYoKGNbbz4+Ml18MCk9PShjW2g+PjJdfDApKXthYT01MjE7YnJl
YWsgTDI4Nn1lbHNle2FtPXI7YW49YTY7YW89YTc7YXA9YTg7YXE9YTk7YXI9YnN9YnJlYWt9O2Rl
ZmF1bHQ6e2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WfX19d2hpbGUoMCk7TDU4NTpkb3tp
ZigoYWF8MCk9PTI5Nyl7YWE9MDtpZigoWXwwKT09Myl7YWM9cDthZD1XO2FlPVg7YWY9cjthYT01
MjM7YnJlYWsgTDI4Nn1lbHNle2J0PWFifXdoaWxlKDEpe1o9Y1tnPj4yXXwwO2Rve2lmKChafDAp
PT0wKXtidT0wfWVsc2V7aWYoKGNbWisxMj4+Ml18MCkhPShjW1orMTY+PjJdfDApKXtidT1aO2Jy
ZWFrfWlmKChiMFtjWyhjW1o+PjJdfDApKzM2Pj4yXSYxMjddKFopfDApPT0tMSl7Y1tnPj4yXT0w
O2J1PTA7YnJlYWt9ZWxzZXtidT1jW2c+PjJdfDA7YnJlYWt9fX13aGlsZSgwKTtaPShidXwwKT09
MDtkb3tpZigoYnR8MCk9PTApe2FhPTMxMH1lbHNle2lmKChjW2J0KzEyPj4yXXwwKSE9KGNbYnQr
MTY+PjJdfDApKXtpZihaKXtidj1idDticmVha31lbHNle2FtPXI7YW49RDthbz1YO2FwPVc7YXE9
cDthcj1WO2JyZWFrIEw1ODV9fWlmKChiMFtjWyhjW2J0Pj4yXXwwKSszNj4+Ml0mMTI3XShidCl8
MCk9PS0xKXtjW2U+PjJdPTA7YWE9MzEwO2JyZWFrfWVsc2V7aWYoWil7YnY9YnQ7YnJlYWt9ZWxz
ZXthbT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMNTg1fX19fXdoaWxlKDApO2lm
KChhYXwwKT09MzEwKXthYT0wO2lmKFope2FtPXI7YW49RDthbz1YO2FwPVc7YXE9cDthcj1WO2Jy
ZWFrIEw1ODV9ZWxzZXtidj0wfX0kPWNbZz4+Ml18MDthVD1jWyQrMTI+PjJdfDA7aWYoKGFUfDAp
PT0oY1skKzE2Pj4yXXwwKSl7Ync9KGIwW2NbKGNbJD4+Ml18MCkrMzY+PjJdJjEyN10oJCl8MCkm
MjU1fWVsc2V7Ync9YVthVF18MH1pZihidzw8MjQ+PjI0PD0tMSl7YW09cjthbj1EO2FvPVg7YXA9
VzthcT1wO2FyPVY7YnJlYWsgTDU4NX1pZigoYlsoY1tmPj4yXXwwKSsoYnc8PDI0Pj4yNDw8MSk+
PjFdJjgxOTIpPT0wKXthbT1yO2FuPUQ7YW89WDthcD1XO2FxPXA7YXI9VjticmVhayBMNTg1fWFU
PWNbZz4+Ml18MDskPWFUKzEyfDA7YXQ9Y1skPj4yXXwwO2lmKChhdHwwKT09KGNbYVQrMTY+PjJd
fDApKXtieD0oYjBbY1soY1thVD4+Ml18MCkrNDA+PjJdJjEyN10oYVQpfDApJjI1NX1lbHNle2Nb
JD4+Ml09YXQrMTtieD1hW2F0XXwwfWRVKEEsYngpO2J0PWJ2fX19d2hpbGUoMCk7YXY9WSsxfDA7
aWYoYXY+Pj4wPDQpe1Y9YXI7cD1hcTtXPWFwO1g9YW87RD1hbjtyPWFtO1k9YXZ9ZWxzZXthYz1h
cTthZD1hcDthZT1hbzthZj1hbTthYT01MjM7YnJlYWt9fUw2MjI6ZG97aWYoKGFhfDApPT0yOTYp
e2Nbaz4+Ml09Y1trPj4yXXw0O2J5PTA7Yno9VztiQT1wfWVsc2UgaWYoKGFhfDApPT0zNjMpe2Nb
az4+Ml09Y1trPj4yXXw0O2J5PTA7Yno9VztiQT1wfWVsc2UgaWYoKGFhfDApPT00MDUpe2Nbaz4+
Ml09Y1trPj4yXXw0O2J5PTA7Yno9VztiQT1wfWVsc2UgaWYoKGFhfDApPT00Nzcpe2Nbaz4+Ml09
Y1trPj4yXXw0O2J5PTA7Yno9YTg7YkE9YTl9ZWxzZSBpZigoYWF8MCk9PTUwMSl7Y1trPj4yXT1j
W2s+PjJdfDQ7Ynk9MDtiej1hODtiQT1hOX1lbHNlIGlmKChhYXwwKT09NTIxKXtjW2s+PjJdPWNb
az4+Ml18NDtieT0wO2J6PWE4O2JBPWE5fWVsc2UgaWYoKGFhfDApPT01MjMpe0w2MzA6ZG97aWYo
KGFmfDApIT0wKXthbT1hZjthbz1hZisxfDA7YXA9YWYrOHwwO2FxPWFmKzR8MDtZPTE7TDYzMjp3
aGlsZSgxKXtyPWRbYW1dfDA7aWYoKHImMXwwKT09MCl7YkI9cj4+PjF9ZWxzZXtiQj1jW2FxPj4y
XXwwfWlmKFk+Pj4wPj1iQj4+PjApe2JyZWFrIEw2MzB9cj1jW2c+PjJdfDA7ZG97aWYoKHJ8MCk9
PTApe2JDPTB9ZWxzZXtpZigoY1tyKzEyPj4yXXwwKSE9KGNbcisxNj4+Ml18MCkpe2JDPXI7YnJl
YWt9aWYoKGIwW2NbKGNbcj4+Ml18MCkrMzY+PjJdJjEyN10ocil8MCk9PS0xKXtjW2c+PjJdPTA7
YkM9MDticmVha31lbHNle2JDPWNbZz4+Ml18MDticmVha319fXdoaWxlKDApO3I9KGJDfDApPT0w
O1o9Y1tlPj4yXXwwO2Rve2lmKChafDApPT0wKXthYT01NDF9ZWxzZXtpZigoY1taKzEyPj4yXXww
KSE9KGNbWisxNj4+Ml18MCkpe2lmKHIpe2JyZWFrfWVsc2V7YnJlYWsgTDYzMn19aWYoKGIwW2Nb
KGNbWj4+Ml18MCkrMzY+PjJdJjEyN10oWil8MCk9PS0xKXtjW2U+PjJdPTA7YWE9NTQxO2JyZWFr
fWVsc2V7aWYocil7YnJlYWt9ZWxzZXticmVhayBMNjMyfX19fXdoaWxlKDApO2lmKChhYXwwKT09
NTQxKXthYT0wO2lmKHIpe2JyZWFrfX1aPWNbZz4+Ml18MDthbj1jW1orMTI+PjJdfDA7aWYoKGFu
fDApPT0oY1taKzE2Pj4yXXwwKSl7YkQ9KGIwW2NbKGNbWj4+Ml18MCkrMzY+PjJdJjEyN10oWil8
MCkmMjU1fWVsc2V7YkQ9YVthbl18MH1pZigoYVthbV0mMSk9PTApe2JFPWFvfWVsc2V7YkU9Y1th
cD4+Ml18MH1pZihiRDw8MjQ+PjI0IT0oYVtiRStZfDBdfDApKXticmVha31hbj1ZKzF8MDtaPWNb
Zz4+Ml18MDtEPVorMTJ8MDtYPWNbRD4+Ml18MDtpZigoWHwwKT09KGNbWisxNj4+Ml18MCkpe2Fy
PWNbKGNbWj4+Ml18MCkrNDA+PjJdfDA7YjBbYXImMTI3XShaKXwwO1k9YW47Y29udGludWV9ZWxz
ZXtjW0Q+PjJdPVgrMTtZPWFuO2NvbnRpbnVlfX1jW2s+PjJdPWNbaz4+Ml18NDtieT0wO2J6PWFk
O2JBPWFjO2JyZWFrIEw2MjJ9fXdoaWxlKDApO2lmKChhZHwwKT09KGFlfDApKXtieT0xO2J6PWFl
O2JBPWFjO2JyZWFrfWNbQz4+Ml09MDtmdCh2LGFkLGFlLEMpO2lmKChjW0M+PjJdfDApPT0wKXti
eT0xO2J6PWFkO2JBPWFjO2JyZWFrfWNbaz4+Ml09Y1trPj4yXXw0O2J5PTA7Yno9YWQ7YkE9YWN9
fXdoaWxlKDApO2RQKEEpO2RQKHopO2RQKHkpO2RQKHgpO2RQKHYpO2lmKChienwwKT09MCl7aT1x
O3JldHVybiBieXwwfWJZW2JBJjUxMV0oYnopO2k9cTtyZXR1cm4gYnl8MH1mdW5jdGlvbiBoUyhi
LGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxt
PTAsbj0wO2Y9YjtnPWQ7aD1hW2ZdfDA7aT1oJjI1NTtpZigoaSYxfDApPT0wKXtqPWk+Pj4xfWVs
c2V7aj1jW2IrND4+Ml18MH1pZigoaCYxKT09MCl7az0xMDtsPWh9ZWxzZXtoPWNbYj4+Ml18MDtr
PShoJi0yKS0xfDA7bD1oJjI1NX1oPWUtZ3wwO2lmKChlfDApPT0oZHwwKSl7cmV0dXJuIGJ8MH1p
Zigoay1qfDApPj4+MDxoPj4+MCl7ZDEoYixrLGoraC1rfDAsaixqLDAsMCk7bT1hW2ZdfDB9ZWxz
ZXttPWx9aWYoKG0mMSk9PTApe249YisxfDB9ZWxzZXtuPWNbYis4Pj4yXXwwfW09ZSsoai1nKXww
O2c9ZDtkPW4ranwwO3doaWxlKDEpe2FbZF09YVtnXXwwO2w9ZysxfDA7aWYoKGx8MCk9PShlfDAp
KXticmVha31lbHNle2c9bDtkPWQrMXwwfX1hW24rbXwwXT0wO209aitofDA7aWYoKGFbZl0mMSk9
PTApe2FbZl09bTw8MSYyNTU7cmV0dXJuIGJ8MH1lbHNle2NbYis0Pj4yXT1tO3JldHVybiBifDB9
cmV0dXJuIDB9ZnVuY3Rpb24gaFQoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rp
b24gaFUoYSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaFYoYSl7YT1hfDA7dmFyIGI9
MDtiPWJPKDgpfDA7ZEUoYixhKTtibChifDAsODE5MiwyMil9ZnVuY3Rpb24gaFcoYixkLGUsZixn
LGgsaixrKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2
YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9
MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MDtkPWk7aT1pKzE2MHwwO2w9ZTtlPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2U+PjJdPWNbbD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
Zj4+Ml09Y1tsPj4yXTtsPWR8MDttPWQrMTZ8MDtuPWQrMTIwfDA7bz1kKzEyOHwwO3A9ZCsxMzZ8
MDtxPWQrMTQ0fDA7cj1kKzE1MnwwO3M9bnwwO2Nbcz4+Ml09bTt0PW4rNHwwO2NbdD4+Ml09MTY2
O3U9bSsxMDB8MDtlaihwLGgpO209cHwwO3Y9Y1ttPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7
Y1tsPj4yXT0xNTY5NjtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2OTYsbCw5Nil9bD0o
Y1szOTI1XXwwKS0xfDA7dz1jW3YrOD4+Ml18MDtkb3tpZigoY1t2KzEyPj4yXXwwKS13Pj4yPj4+
MD5sPj4+MCl7eD1jW3crKGw8PDIpPj4yXXwwO2lmKCh4fDApPT0wKXticmVha315PXg7YVtxXT0w
O3o9ZnwwO0E9Y1t6Pj4yXXwwO2Nbcj4+Ml09QTtpZihoUihlLHIsZyxwLGNbaCs0Pj4yXXwwLGos
cSx5LG4sbyx1KXwwKXtCPWs7aWYoKGFbQl0mMSk9PTApe2FbaysxfDBdPTA7YVtCXT0wfWVsc2V7
YVtjW2srOD4+Ml18MF09MDtjW2srND4+Ml09MH1CPXg7aWYoKGFbcV0mMSkhPTApe2RVKGssYl9b
Y1soY1tCPj4yXXwwKSsyOD4+Ml0mMzFdKHksNDUpfDApfXg9Yl9bY1soY1tCPj4yXXwwKSsyOD4+
Ml0mMzFdKHksNDgpfDA7eT1jW28+PjJdfDA7Qj15LTF8MDtDPWNbcz4+Ml18MDt3aGlsZSgxKXtp
ZihDPj4+MD49Qj4+PjApe2JyZWFrfWlmKChhW0NdfDApPT14PDwyND4+MjQpe0M9QysxfDB9ZWxz
ZXticmVha319aFMoayxDLHkpfDB9eD1lfDA7Qj1jW3g+PjJdfDA7ZG97aWYoKEJ8MCk9PTApe0Q9
MH1lbHNle2lmKChjW0IrMTI+PjJdfDApIT0oY1tCKzE2Pj4yXXwwKSl7RD1CO2JyZWFrfWlmKChi
MFtjWyhjW0I+PjJdfDApKzM2Pj4yXSYxMjddKEIpfDApIT0tMSl7RD1CO2JyZWFrfWNbeD4+Ml09
MDtEPTB9fXdoaWxlKDApO3g9KER8MCk9PTA7ZG97aWYoKEF8MCk9PTApe0U9NjIxfWVsc2V7aWYo
KGNbQSsxMj4+Ml18MCkhPShjW0ErMTY+PjJdfDApKXtpZih4KXticmVha31lbHNle0U9NjIzO2Jy
ZWFrfX1pZigoYjBbY1soY1tBPj4yXXwwKSszNj4+Ml0mMTI3XShBKXwwKT09LTEpe2Nbej4+Ml09
MDtFPTYyMTticmVha31lbHNle2lmKHheKEF8MCk9PTApe2JyZWFrfWVsc2V7RT02MjM7YnJlYWt9
fX19d2hpbGUoMCk7aWYoKEV8MCk9PTYyMSl7aWYoeCl7RT02MjN9fWlmKChFfDApPT02MjMpe2Nb
aj4+Ml09Y1tqPj4yXXwyfWNbYj4+Ml09RDtBPWNbbT4+Ml18MDtkeihBKXwwO0E9Y1tzPj4yXXww
O2Nbcz4+Ml09MDtpZigoQXwwKT09MCl7aT1kO3JldHVybn1iWVtjW3Q+PjJdJjUxMV0oQSk7aT1k
O3JldHVybn19d2hpbGUoMCk7ZD1iTyg0KXwwO2txKGQpO2JsKGR8MCw4MTc2LDEzNCl9ZnVuY3Rp
b24gaFgoYixkLGUsZixnLGgsaixrLGwsbSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7dmFyIG49MCxvPTAscD0wLHE9MCxyPTAscz0w
LHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAs
ST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wO249aTtpPWkrNTZ8MDtvPW58MDtwPW4rMTZ8MDtx
PW4rMzJ8MDtyPW4rNDB8MDtzPXI7dD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3U9dDt2PWk7aT1p
KzEyfDA7aT1pKzc+PjM8PDM7dz12O3g9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt5PXg7ej1pO2k9
aSs0fDA7aT1pKzc+PjM8PDM7QT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0I9QTtEPWk7aT1pKzEy
fDA7aT1pKzc+PjM8PDM7RT1EO0Y9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztHPUY7SD1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO0k9SDtpZihiKXtiPWNbZD4+Ml18MDtpZigoY1s0MDQ0XXwwKSE9LTEp
e2NbcD4+Ml09MTYxNzY7Y1twKzQ+PjJdPTEyO2NbcCs4Pj4yXT0wO2RXKDE2MTc2LHAsOTYpfXA9
KGNbNDA0NV18MCktMXwwO0o9Y1tiKzg+PjJdfDA7aWYoKGNbYisxMj4+Ml18MCktSj4+Mj4+PjA8
PXA+Pj4wKXtLPWJPKDQpfDA7TD1LO2txKEwpO2JsKEt8MCw4MTc2LDEzNCl9Yj1jW0orKHA8PDIp
Pj4yXXwwO2lmKChifDApPT0wKXtLPWJPKDQpfDA7TD1LO2txKEwpO2JsKEt8MCw4MTc2LDEzNCl9
Sz1iO2JaW2NbKGNbYj4+Ml18MCkrNDQ+PjJdJjEyN10ocSxLKTtMPWU7Qz1jW3E+PjJdfDA7YVtM
XT1DJjI1NTtDPUM+Pjg7YVtMKzF8MF09QyYyNTU7Qz1DPj44O2FbTCsyfDBdPUMmMjU1O0M9Qz4+
ODthW0wrM3wwXT1DJjI1NTtMPWI7YlpbY1soY1tMPj4yXXwwKSszMj4+Ml0mMTI3XShyLEspO3E9
bDtpZigoYVtxXSYxKT09MCl7YVtsKzF8MF09MDthW3FdPTB9ZWxzZXthW2NbbCs4Pj4yXXwwXT0w
O2NbbCs0Pj4yXT0wfWQkKGwsMCk7Y1txPj4yXT1jW3M+PjJdO2NbcSs0Pj4yXT1jW3MrND4+Ml07
Y1txKzg+PjJdPWNbcys4Pj4yXTtrJChzfDAsMCwxMik7ZFAocik7YlpbY1soY1tMPj4yXXwwKSsy
OD4+Ml0mMTI3XSh0LEspO3I9aztpZigoYVtyXSYxKT09MCl7YVtrKzF8MF09MDthW3JdPTB9ZWxz
ZXthW2Nbays4Pj4yXXwwXT0wO2Nbays0Pj4yXT0wfWQkKGssMCk7Y1tyPj4yXT1jW3U+PjJdO2Nb
cis0Pj4yXT1jW3UrND4+Ml07Y1tyKzg+PjJdPWNbdSs4Pj4yXTtrJCh1fDAsMCwxMik7ZFAodCk7
dD1iO2FbZl09YjBbY1soY1t0Pj4yXXwwKSsxMj4+Ml0mMTI3XShLKXwwO2FbZ109YjBbY1soY1t0
Pj4yXXwwKSsxNj4+Ml0mMTI3XShLKXwwO2JaW2NbKGNbTD4+Ml18MCkrMjA+PjJdJjEyN10odixL
KTt0PWg7aWYoKGFbdF0mMSk9PTApe2FbaCsxfDBdPTA7YVt0XT0wfWVsc2V7YVtjW2grOD4+Ml18
MF09MDtjW2grND4+Ml09MH1kJChoLDApO2NbdD4+Ml09Y1t3Pj4yXTtjW3QrND4+Ml09Y1t3KzQ+
PjJdO2NbdCs4Pj4yXT1jW3crOD4+Ml07ayQod3wwLDAsMTIpO2RQKHYpO2JaW2NbKGNbTD4+Ml18
MCkrMjQ+PjJdJjEyN10oeCxLKTtMPWo7aWYoKGFbTF0mMSk9PTApe2FbaisxfDBdPTA7YVtMXT0w
fWVsc2V7YVtjW2orOD4+Ml18MF09MDtjW2orND4+Ml09MH1kJChqLDApO2NbTD4+Ml09Y1t5Pj4y
XTtjW0wrND4+Ml09Y1t5KzQ+PjJdO2NbTCs4Pj4yXT1jW3krOD4+Ml07ayQoeXwwLDAsMTIpO2RQ
KHgpO009YjBbY1soY1tiPj4yXXwwKSszNj4+Ml0mMTI3XShLKXwwO2NbbT4+Ml09TTtpPW47cmV0
dXJufWVsc2V7Sz1jW2Q+PjJdfDA7aWYoKGNbNDA0Nl18MCkhPS0xKXtjW28+PjJdPTE2MTg0O2Nb
bys0Pj4yXT0xMjtjW28rOD4+Ml09MDtkVygxNjE4NCxvLDk2KX1vPShjWzQwNDddfDApLTF8MDtk
PWNbSys4Pj4yXXwwO2lmKChjW0srMTI+PjJdfDApLWQ+PjI+Pj4wPD1vPj4+MCl7Tj1iTyg0KXww
O089TjtrcShPKTtibChOfDAsODE3NiwxMzQpfUs9Y1tkKyhvPDwyKT4+Ml18MDtpZigoS3wwKT09
MCl7Tj1iTyg0KXwwO089TjtrcShPKTtibChOfDAsODE3NiwxMzQpfU49SztiWltjWyhjW0s+PjJd
fDApKzQ0Pj4yXSYxMjddKHosTik7Tz1lO0M9Y1t6Pj4yXXwwO2FbT109QyYyNTU7Qz1DPj44O2Fb
TysxfDBdPUMmMjU1O0M9Qz4+ODthW08rMnwwXT1DJjI1NTtDPUM+Pjg7YVtPKzN8MF09QyYyNTU7
Tz1LO2JaW2NbKGNbTz4+Ml18MCkrMzI+PjJdJjEyN10oQSxOKTt6PWw7aWYoKGFbel0mMSk9PTAp
e2FbbCsxfDBdPTA7YVt6XT0wfWVsc2V7YVtjW2wrOD4+Ml18MF09MDtjW2wrND4+Ml09MH1kJChs
LDApO2Nbej4+Ml09Y1tCPj4yXTtjW3orND4+Ml09Y1tCKzQ+PjJdO2Nbeis4Pj4yXT1jW0IrOD4+
Ml07ayQoQnwwLDAsMTIpO2RQKEEpO2JaW2NbKGNbTz4+Ml18MCkrMjg+PjJdJjEyN10oRCxOKTtB
PWs7aWYoKGFbQV0mMSk9PTApe2FbaysxfDBdPTA7YVtBXT0wfWVsc2V7YVtjW2srOD4+Ml18MF09
MDtjW2srND4+Ml09MH1kJChrLDApO2NbQT4+Ml09Y1tFPj4yXTtjW0ErND4+Ml09Y1tFKzQ+PjJd
O2NbQSs4Pj4yXT1jW0UrOD4+Ml07ayQoRXwwLDAsMTIpO2RQKEQpO0Q9SzthW2ZdPWIwW2NbKGNb
RD4+Ml18MCkrMTI+PjJdJjEyN10oTil8MDthW2ddPWIwW2NbKGNbRD4+Ml18MCkrMTY+PjJdJjEy
N10oTil8MDtiWltjWyhjW08+PjJdfDApKzIwPj4yXSYxMjddKEYsTik7RD1oO2lmKChhW0RdJjEp
PT0wKXthW2grMXwwXT0wO2FbRF09MH1lbHNle2FbY1toKzg+PjJdfDBdPTA7Y1toKzQ+PjJdPTB9
ZCQoaCwwKTtjW0Q+PjJdPWNbRz4+Ml07Y1tEKzQ+PjJdPWNbRys0Pj4yXTtjW0QrOD4+Ml09Y1tH
Kzg+PjJdO2skKEd8MCwwLDEyKTtkUChGKTtiWltjWyhjW08+PjJdfDApKzI0Pj4yXSYxMjddKEgs
Tik7Tz1qO2lmKChhW09dJjEpPT0wKXthW2orMXwwXT0wO2FbT109MH1lbHNle2FbY1tqKzg+PjJd
fDBdPTA7Y1tqKzQ+PjJdPTB9ZCQoaiwwKTtjW08+PjJdPWNbST4+Ml07Y1tPKzQ+PjJdPWNbSSs0
Pj4yXTtjW08rOD4+Ml09Y1tJKzg+PjJdO2skKEl8MCwwLDEyKTtkUChIKTtNPWIwW2NbKGNbSz4+
Ml18MCkrMzY+PjJdJjEyN10oTil8MDtjW20+PjJdPU07aT1uO3JldHVybn19ZnVuY3Rpb24gaFko
YixkLGUsZixnLGgsaixrKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8
MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3
PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9
MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTA7ZD1pO2k9aSs2MDB8MDts
PWU7ZT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW2w+PjJdO2w9ZjtmPWk7aT1pKzR8
MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1kfDA7bT1kKzE2fDA7bj1kKzQxNnwwO289
ZCs0MjR8MDtwPWQrNDMyfDA7cT1kKzQ0MHwwO3I9ZCs0NDh8MDtzPWQrNDU2fDA7dD1kKzQ5Nnww
O3U9bnwwO2NbdT4+Ml09bTt2PW4rNHwwO2Nbdj4+Ml09MTY2O3c9bSs0MDB8MDtlaihwLGgpO209
cHwwO3g9Y1ttPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7Y1tsPj4yXT0xNTY4ODtjW2wrND4+
Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2ODgsbCw5Nil9bD0oY1szOTIzXXwwKS0xfDA7eT1jW3gr
OD4+Ml18MDtkb3tpZigoY1t4KzEyPj4yXXwwKS15Pj4yPj4+MD5sPj4+MCl7ej1jW3krKGw8PDIp
Pj4yXXwwO2lmKCh6fDApPT0wKXticmVha31BPXo7YVtxXT0wO0I9ZnwwO2Nbcj4+Ml09Y1tCPj4y
XTtkb3tpZihoWihlLHIsZyxwLGNbaCs0Pj4yXXwwLGoscSxBLG4sbyx3KXwwKXtDPXN8MDtEPWNb
KGNbej4+Ml18MCkrNDg+PjJdfDA7Y2FbRCYxNV0oQSwyMDk2LDIxMDYsQyl8MDtEPXR8MDtFPWNb
bz4+Ml18MDtGPWNbdT4+Ml18MDtHPUUtRnwwO2Rve2lmKChHfDApPjM5Mil7SD1rSigoRz4+Mikr
MnwwKXwwO2lmKChIfDApIT0wKXtJPUg7Sj1IO2JyZWFrfWtYKCk7ST0wO0o9MH1lbHNle0k9RDtK
PTB9fXdoaWxlKDApO2lmKChhW3FdJjEpPT0wKXtLPUl9ZWxzZXthW0ldPTQ1O0s9SSsxfDB9aWYo
Rj4+PjA8RT4+PjApe0c9cys0MHwwO0g9cztMPUs7TT1GO3doaWxlKDEpe049Qzt3aGlsZSgxKXtp
ZigoTnwwKT09KEd8MCkpe089RzticmVha31pZigoY1tOPj4yXXwwKT09KGNbTT4+Ml18MCkpe089
TjticmVha31lbHNle049Tis0fDB9fWFbTF09YVsyMDk2KyhPLUg+PjIpfDBdfDA7Tj1NKzR8MDtQ
PUwrMXwwO2lmKE4+Pj4wPChjW28+PjJdfDApPj4+MCl7TD1QO009Tn1lbHNle1E9UDticmVha319
fWVsc2V7UT1LfWFbUV09MDtNPWJEKER8MCwxNDA4LChMPWksaT1pKzh8MCxjW0w+PjJdPWssTCl8
MCl8MDtpPUw7aWYoKE18MCk9PTEpe2lmKChKfDApPT0wKXticmVha31rSyhKKTticmVha31NPWJP
KDgpfDA7ZEUoTSwxMzY4KTtibChNfDAsODE5MiwyMil9fXdoaWxlKDApO0E9ZXwwO3o9Y1tBPj4y
XXwwO2Rve2lmKCh6fDApPT0wKXtSPTB9ZWxzZXtNPWNbeisxMj4+Ml18MDtpZigoTXwwKT09KGNb
eisxNj4+Ml18MCkpe1M9YjBbY1soY1t6Pj4yXXwwKSszNj4+Ml0mMTI3XSh6KXwwfWVsc2V7Uz1j
W00+PjJdfDB9aWYoKFN8MCkhPS0xKXtSPXo7YnJlYWt9Y1tBPj4yXT0wO1I9MH19d2hpbGUoMCk7
QT0oUnwwKT09MDt6PWNbQj4+Ml18MDtkb3tpZigoenwwKT09MCl7VD03Mzl9ZWxzZXtNPWNbeisx
Mj4+Ml18MDtpZigoTXwwKT09KGNbeisxNj4+Ml18MCkpe1U9YjBbY1soY1t6Pj4yXXwwKSszNj4+
Ml0mMTI3XSh6KXwwfWVsc2V7VT1jW00+PjJdfDB9aWYoKFV8MCk9PS0xKXtjW0I+PjJdPTA7VD03
Mzk7YnJlYWt9ZWxzZXtpZihBXih6fDApPT0wKXticmVha31lbHNle1Q9NzQxO2JyZWFrfX19fXdo
aWxlKDApO2lmKChUfDApPT03Mzkpe2lmKEEpe1Q9NzQxfX1pZigoVHwwKT09NzQxKXtjW2o+PjJd
PWNbaj4+Ml18Mn1jW2I+PjJdPVI7ej1jW20+PjJdfDA7ZHooeil8MDt6PWNbdT4+Ml18MDtjW3U+
PjJdPTA7aWYoKHp8MCk9PTApe2k9ZDtyZXR1cm59YllbY1t2Pj4yXSY1MTFdKHopO2k9ZDtyZXR1
cm59fXdoaWxlKDApO2Q9Yk8oNCl8MDtrcShkKTtibChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGha
KGIsZSxmLGcsaCxqLGssbCxtLG4sbyl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1q
fDA7az1rfDA7bD1sfDA7bT1tfDA7bj1ufDA7bz1vfDA7dmFyIHA9MCxxPTAscj0wLHM9MCx0PTAs
dT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJ
PTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9
MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAs
YWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFz
PTAsYXQ9MCxhdT0wLGF2PTAsYXc9MCxheD0wLGF5PTAsYXo9MCxhQT0wLGFCPTAsYUM9MCxhRD0w
LGFFPTAsYUY9MCxhRz0wLGFIPTAsYUk9MCxhSj0wLGFLPTAsYUw9MCxhTT0wLGFOPTAsYU89MCxh
UD0wLGFRPTAsYVI9MCxhUz0wLGFUPTAsYVU9MCxhVj0wLGFXPTAsYVg9MCxhWT0wLGFaPTAsYV89
MCxhJD0wLGEwPTAsYTE9MCxhMj0wLGEzPTAsYTQ9MCxhNT0wLGE2PTAsYTc9MCxhOD0wLGE5PTAs
YmE9MCxiYj0wLGJjPTAsYmQ9MCxiZT0wLGJmPTAsYmc9MCxiaD0wLGJpPTAsYmo9MCxiaz0wLGJs
PTAsYm09MCxibj0wLGJvPTAsYnA9MCxicT0wLGJyPTAsYnM9MCxidD0wLGJ1PTAsYnY9MCxidz0w
LGJ4PTAsYnk9MCxiej0wLGJBPTAsYkI9MCxiQz0wLGJEPTA7cD1pO2k9aSs0NDh8MDtxPWU7ZT1p
O2k9aSs0fDA7aT1pKzc+PjM8PDM7Y1tlPj4yXT1jW3E+PjJdO3E9cHwwO3I9cCs4fDA7cz1wKzQw
OHwwO3Q9cCs0MTZ8MDt1PXArNDI0fDA7dj1wKzQzMnwwO3c9djt4PWk7aT1pKzEyfDA7aT1pKzc+
PjM8PDM7eT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3o9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztB
PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7Qj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qz1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7Y1txPj4yXT1vO289cnwwO2skKHd8MCwwLDEyKTtEPXg7RT15O0Y9ejtH
PUE7ayQoRHwwLDAsMTIpO2skKEV8MCwwLDEyKTtrJChGfDAsMCwxMik7ayQoR3wwLDAsMTIpO2gy
KGYsZyxzLHQsdSx2LHgseSx6LEIpO2c9bXwwO2Nbbj4+Ml09Y1tnPj4yXTtmPWJ8MDtiPWV8MDtl
PWw7SD16KzR8MDtJPXorOHwwO0o9eSs0fDA7Sz15Kzh8MDtMPShoJjUxMnwwKSE9MDtoPXgrNHww
O009eCs4fDA7Tj1BKzR8MDtPPUErOHwwO1A9cyszfDA7UT12KzR8MDtSPTE2NjtTPW87VD1vO289
cis0MDB8MDtyPTA7VT0wO0w4OTA6d2hpbGUoMSl7Vj1jW2Y+PjJdfDA7ZG97aWYoKFZ8MCk9PTAp
e1c9MX1lbHNle1g9Y1tWKzEyPj4yXXwwO2lmKChYfDApPT0oY1tWKzE2Pj4yXXwwKSl7WT1iMFtj
WyhjW1Y+PjJdfDApKzM2Pj4yXSYxMjddKFYpfDB9ZWxzZXtZPWNbWD4+Ml18MH1pZigoWXwwKT09
LTEpe2NbZj4+Ml09MDtXPTE7YnJlYWt9ZWxzZXtXPShjW2Y+PjJdfDApPT0wO2JyZWFrfX19d2hp
bGUoMCk7Vj1jW2I+PjJdfDA7ZG97aWYoKFZ8MCk9PTApe1o9NzY3fWVsc2V7WD1jW1YrMTI+PjJd
fDA7aWYoKFh8MCk9PShjW1YrMTY+PjJdfDApKXtfPWIwW2NbKGNbVj4+Ml18MCkrMzY+PjJdJjEy
N10oVil8MH1lbHNle189Y1tYPj4yXXwwfWlmKChffDApPT0tMSl7Y1tiPj4yXT0wO1o9NzY3O2Jy
ZWFrfWVsc2V7aWYoV14oVnwwKT09MCl7JD1WO2JyZWFrfWVsc2V7YWE9UjthYj1TO2FjPVQ7YWQ9
cjtaPTEwMDc7YnJlYWsgTDg5MH19fX13aGlsZSgwKTtpZigoWnwwKT09NzY3KXtaPTA7aWYoVyl7
YWE9UjthYj1TO2FjPVQ7YWQ9cjtaPTEwMDc7YnJlYWt9ZWxzZXskPTB9fUw5MTQ6ZG97c3dpdGNo
KGFbcytVfDBdfDApe2Nhc2UgMjp7aWYoISgocnwwKSE9MHxVPj4+MDwyKSl7aWYoKFV8MCk9PTIp
e2FlPShhW1BdfDApIT0wfWVsc2V7YWU9MH1pZighKEx8YWUpKXthZj0wO2FnPW87YWg9VDthaT1T
O2FqPVI7YnJlYWsgTDkxNH19Vj1hW0RdfDA7WD0oViYxKT09MD9oOmNbTT4+Ml18MDtMOTIyOmRv
e2lmKChVfDApPT0wKXthaz1YO2FsPVY7YW09JH1lbHNle2lmKChkW3MrKFUtMSl8MF18MCk8Mil7
YW49WDthbz1WfWVsc2V7YWs9WDthbD1WO2FtPSQ7YnJlYWt9d2hpbGUoMSl7YXA9YW8mMjU1O2lm
KChhbnwwKT09KCgoYW8mMSk9PTA/aDpjW00+PjJdfDApKygoKGFwJjF8MCk9PTA/YXA+Pj4xOmNb
aD4+Ml18MCk8PDIpfDApKXthcT1hbzticmVha31pZighKGIxW2NbKGNbZT4+Ml18MCkrMTI+PjJd
JjYzXShsLDgxOTIsY1thbj4+Ml18MCl8MCkpe1o9ODY4O2JyZWFrfWFuPWFuKzR8MDthbz1hW0Rd
fDB9aWYoKFp8MCk9PTg2OCl7Wj0wO2FxPWFbRF18MH1hcD0oYXEmMSk9PTA7YXI9YW4tKGFwP2g6
Y1tNPj4yXXwwKT4+Mjthcz1hW0ddfDA7YXQ9YXMmMjU1O2F1PShhdCYxfDApPT0wO0w5MzI6ZG97
aWYoYXI+Pj4wPD0oYXU/YXQ+Pj4xOmNbTj4+Ml18MCk+Pj4wKXthdj0oYXMmMSk9PTA7YXc9KGF2
P046Y1tPPj4yXXwwKSsoKGF1P2F0Pj4+MTpjW04+PjJdfDApLWFyPDwyKXwwO2F4PShhdj9OOmNb
Tz4+Ml18MCkrKChhdT9hdD4+PjE6Y1tOPj4yXXwwKTw8Mil8MDtpZigoYXd8MCk9PShheHwwKSl7
YWs9YW47YWw9YXE7YW09JDticmVhayBMOTIyfWVsc2V7YXk9YXc7YXo9YXA/aDpjW00+PjJdfDB9
d2hpbGUoMSl7aWYoKGNbYXk+PjJdfDApIT0oY1thej4+Ml18MCkpe2JyZWFrIEw5MzJ9YXc9YXkr
NHwwO2lmKChhd3wwKT09KGF4fDApKXthaz1hbjthbD1hcTthbT0kO2JyZWFrIEw5MjJ9YXk9YXc7
YXo9YXorNHwwfX19d2hpbGUoMCk7YWs9YXA/aDpjW00+PjJdfDA7YWw9YXE7YW09JH19d2hpbGUo
MCk7TDkzOTp3aGlsZSgxKXtWPWFsJjI1NTtpZigoYWt8MCk9PSgoKGFsJjEpPT0wP2g6Y1tNPj4y
XXwwKSsoKChWJjF8MCk9PTA/Vj4+PjE6Y1toPj4yXXwwKTw8Mil8MCkpe2JyZWFrfVY9Y1tmPj4y
XXwwO2Rve2lmKChWfDApPT0wKXthQT0xfWVsc2V7WD1jW1YrMTI+PjJdfDA7aWYoKFh8MCk9PShj
W1YrMTY+PjJdfDApKXthQj1iMFtjWyhjW1Y+PjJdfDApKzM2Pj4yXSYxMjddKFYpfDB9ZWxzZXth
Qj1jW1g+PjJdfDB9aWYoKGFCfDApPT0tMSl7Y1tmPj4yXT0wO2FBPTE7YnJlYWt9ZWxzZXthQT0o
Y1tmPj4yXXwwKT09MDticmVha319fXdoaWxlKDApO2Rve2lmKChhbXwwKT09MCl7Wj04ODl9ZWxz
ZXtWPWNbYW0rMTI+PjJdfDA7aWYoKFZ8MCk9PShjW2FtKzE2Pj4yXXwwKSl7YUM9YjBbY1soY1th
bT4+Ml18MCkrMzY+PjJdJjEyN10oYW0pfDB9ZWxzZXthQz1jW1Y+PjJdfDB9aWYoKGFDfDApPT0t
MSl7Y1tiPj4yXT0wO1o9ODg5O2JyZWFrfWVsc2V7aWYoYUFeKGFtfDApPT0wKXthRD1hbTticmVh
a31lbHNle2JyZWFrIEw5Mzl9fX19d2hpbGUoMCk7aWYoKFp8MCk9PTg4OSl7Wj0wO2lmKGFBKXti
cmVha31lbHNle2FEPTB9fVY9Y1tmPj4yXXwwO2FwPWNbVisxMj4+Ml18MDtpZigoYXB8MCk9PShj
W1YrMTY+PjJdfDApKXthRT1iMFtjWyhjW1Y+PjJdfDApKzM2Pj4yXSYxMjddKFYpfDB9ZWxzZXth
RT1jW2FwPj4yXXwwfWlmKChhRXwwKSE9KGNbYWs+PjJdfDApKXticmVha31hcD1jW2Y+PjJdfDA7
Vj1hcCsxMnwwO1g9Y1tWPj4yXXwwO2lmKChYfDApPT0oY1thcCsxNj4+Ml18MCkpe2F0PWNbKGNb
YXA+PjJdfDApKzQwPj4yXXwwO2IwW2F0JjEyN10oYXApfDB9ZWxzZXtjW1Y+PjJdPVgrNH1haz1h
ays0fDA7YWw9YVtEXXwwO2FtPWFEfWlmKCFMKXthZj1yO2FnPW87YWg9VDthaT1TO2FqPVI7YnJl
YWsgTDkxNH1YPWFbRF18MDtWPVgmMjU1O2lmKChha3wwKT09KCgoWCYxKT09MD9oOmNbTT4+Ml18
MCkrKCgoViYxfDApPT0wP1Y+Pj4xOmNbaD4+Ml18MCk8PDIpfDApKXthZj1yO2FnPW87YWg9VDth
aT1TO2FqPVJ9ZWxzZXtaPTkwMTticmVhayBMODkwfWJyZWFrfTtjYXNlIDQ6e1Y9MDtYPW87YXA9
VDthdD1TO2F1PVI7TDk3NTp3aGlsZSgxKXthcj1jW2Y+PjJdfDA7ZG97aWYoKGFyfDApPT0wKXth
Rj0xfWVsc2V7YXM9Y1thcisxMj4+Ml18MDtpZigoYXN8MCk9PShjW2FyKzE2Pj4yXXwwKSl7YUc9
YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXthRz1jW2FzPj4yXXwwfWlm
KChhR3wwKT09LTEpe2NbZj4+Ml09MDthRj0xO2JyZWFrfWVsc2V7YUY9KGNbZj4+Ml18MCk9PTA7
YnJlYWt9fX13aGlsZSgwKTthcj1jW2I+PjJdfDA7ZG97aWYoKGFyfDApPT0wKXtaPTkxNX1lbHNl
e2FzPWNbYXIrMTI+PjJdfDA7aWYoKGFzfDApPT0oY1thcisxNj4+Ml18MCkpe2FIPWIwW2NbKGNb
YXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwfWVsc2V7YUg9Y1thcz4+Ml18MH1pZigoYUh8MCk9
PS0xKXtjW2I+PjJdPTA7Wj05MTU7YnJlYWt9ZWxzZXtpZihhRl4oYXJ8MCk9PTApe2JyZWFrfWVs
c2V7YnJlYWsgTDk3NX19fX13aGlsZSgwKTtpZigoWnwwKT09OTE1KXtaPTA7aWYoYUYpe2JyZWFr
fX1hcj1jW2Y+PjJdfDA7YXM9Y1thcisxMj4+Ml18MDtpZigoYXN8MCk9PShjW2FyKzE2Pj4yXXww
KSl7YUk9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxzZXthST1jW2FzPj4y
XXwwfWlmKGIxW2NbKGNbZT4+Ml18MCkrMTI+PjJdJjYzXShsLDIwNDgsYUkpfDApe2FzPWNbbj4+
Ml18MDtpZigoYXN8MCk9PShjW3E+PjJdfDApKXtoMyhtLG4scSk7YUo9Y1tuPj4yXXwwfWVsc2V7
YUo9YXN9Y1tuPj4yXT1hSis0O2NbYUo+PjJdPWFJO2FLPVYrMXwwO2FMPVg7YU09YXA7YU49YXQ7
YU89YXV9ZWxzZXthcz1kW3ddfDA7aWYoKCgoYXMmMXwwKT09MD9hcz4+PjE6Y1tRPj4yXXwwKXww
KT09MHwoVnwwKT09MCl7YnJlYWt9aWYoKGFJfDApIT0oY1t1Pj4yXXwwKSl7YnJlYWt9aWYoKGFw
fDApPT0oWHwwKSl7YXM9KGF1fDApIT0xNjY7YXI9YXAtYXR8MDtheD1hcj4+PjA8MjE0NzQ4MzY0
Nz9hcjw8MTotMTtpZihhcyl7YVA9YXR9ZWxzZXthUD0wfWFzPWtMKGFQLGF4KXwwO2F3PWFzO2lm
KChhc3wwKT09MCl7a1goKX1hUT1hdysoYXg+Pj4yPDwyKXwwO2FSPWF3Kyhhcj4+Mjw8Mil8MDth
Uz1hdzthVD04Mn1lbHNle2FRPVg7YVI9YXA7YVM9YXQ7YVQ9YXV9Y1thUj4+Ml09VjthSz0wO2FM
PWFRO2FNPWFSKzR8MDthTj1hUzthTz1hVH1hdz1jW2Y+PjJdfDA7YXI9YXcrMTJ8MDtheD1jW2Fy
Pj4yXXwwO2lmKChheHwwKT09KGNbYXcrMTY+PjJdfDApKXthcz1jWyhjW2F3Pj4yXXwwKSs0MD4+
Ml18MDtiMFthcyYxMjddKGF3KXwwO1Y9YUs7WD1hTDthcD1hTTthdD1hTjthdT1hTztjb250aW51
ZX1lbHNle2NbYXI+PjJdPWF4KzQ7Vj1hSztYPWFMO2FwPWFNO2F0PWFOO2F1PWFPO2NvbnRpbnVl
fX1pZigoYXR8MCk9PShhcHwwKXwoVnwwKT09MCl7YVU9WDthVj1hcDthVz1hdDthWD1hdX1lbHNl
e2lmKChhcHwwKT09KFh8MCkpe2F4PShhdXwwKSE9MTY2O2FyPWFwLWF0fDA7YXc9YXI+Pj4wPDIx
NDc0ODM2NDc/YXI8PDE6LTE7aWYoYXgpe2FZPWF0fWVsc2V7YVk9MH1heD1rTChhWSxhdyl8MDth
cz1heDtpZigoYXh8MCk9PTApe2tYKCl9YVo9YXMrKGF3Pj4+Mjw8Mil8MDthXz1hcysoYXI+PjI8
PDIpfDA7YSQ9YXM7YTA9ODJ9ZWxzZXthWj1YO2FfPWFwO2EkPWF0O2EwPWF1fWNbYV8+PjJdPVY7
YVU9YVo7YVY9YV8rNHwwO2FXPWEkO2FYPWEwfWFzPWNbQj4+Ml18MDtpZigoYXN8MCk+MCl7YXI9
Y1tmPj4yXXwwO2Rve2lmKChhcnwwKT09MCl7YTE9MX1lbHNle2F3PWNbYXIrMTI+PjJdfDA7aWYo
KGF3fDApPT0oY1thcisxNj4+Ml18MCkpe2EyPWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjdd
KGFyKXwwfWVsc2V7YTI9Y1thdz4+Ml18MH1pZigoYTJ8MCk9PS0xKXtjW2Y+PjJdPTA7YTE9MTti
cmVha31lbHNle2ExPShjW2Y+PjJdfDApPT0wO2JyZWFrfX19d2hpbGUoMCk7YXI9Y1tiPj4yXXww
O2Rve2lmKChhcnwwKT09MCl7Wj05NjR9ZWxzZXtWPWNbYXIrMTI+PjJdfDA7aWYoKFZ8MCk9PShj
W2FyKzE2Pj4yXXwwKSl7YTM9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9ZWxz
ZXthMz1jW1Y+PjJdfDB9aWYoKGEzfDApPT0tMSl7Y1tiPj4yXT0wO1o9OTY0O2JyZWFrfWVsc2V7
aWYoYTFeKGFyfDApPT0wKXthND1hcjticmVha31lbHNle1o9OTcwO2JyZWFrIEw4OTB9fX19d2hp
bGUoMCk7aWYoKFp8MCk9PTk2NCl7Wj0wO2lmKGExKXtaPTk3MDticmVhayBMODkwfWVsc2V7YTQ9
MH19YXI9Y1tmPj4yXXwwO1Y9Y1thcisxMj4+Ml18MDtpZigoVnwwKT09KGNbYXIrMTY+PjJdfDAp
KXthNT1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2E1PWNbVj4+Ml18
MH1pZigoYTV8MCkhPShjW3Q+PjJdfDApKXtaPTk3MDticmVhayBMODkwfVY9Y1tmPj4yXXwwO2Fy
PVYrMTJ8MDthdT1jW2FyPj4yXXwwO2lmKChhdXwwKT09KGNbVisxNj4+Ml18MCkpe2F0PWNbKGNb
Vj4+Ml18MCkrNDA+PjJdfDA7YjBbYXQmMTI3XShWKXwwO2E2PWE0O2E3PWFzfWVsc2V7Y1thcj4+
Ml09YXUrNDthNj1hNDthNz1hc313aGlsZSgxKXthdT1jW2Y+PjJdfDA7ZG97aWYoKGF1fDApPT0w
KXthOD0xfWVsc2V7YXI9Y1thdSsxMj4+Ml18MDtpZigoYXJ8MCk9PShjW2F1KzE2Pj4yXXwwKSl7
YTk9YjBbY1soY1thdT4+Ml18MCkrMzY+PjJdJjEyN10oYXUpfDB9ZWxzZXthOT1jW2FyPj4yXXww
fWlmKChhOXwwKT09LTEpe2NbZj4+Ml09MDthOD0xO2JyZWFrfWVsc2V7YTg9KGNbZj4+Ml18MCk9
PTA7YnJlYWt9fX13aGlsZSgwKTtkb3tpZigoYTZ8MCk9PTApe1o9OTg3fWVsc2V7YXU9Y1thNisx
Mj4+Ml18MDtpZigoYXV8MCk9PShjW2E2KzE2Pj4yXXwwKSl7YmE9YjBbY1soY1thNj4+Ml18MCkr
MzY+PjJdJjEyN10oYTYpfDB9ZWxzZXtiYT1jW2F1Pj4yXXwwfWlmKChiYXwwKT09LTEpe2NbYj4+
Ml09MDtaPTk4NzticmVha31lbHNle2lmKGE4XihhNnwwKT09MCl7YmI9YTY7YnJlYWt9ZWxzZXta
PTk5NDticmVhayBMODkwfX19fXdoaWxlKDApO2lmKChafDApPT05ODcpe1o9MDtpZihhOCl7Wj05
OTQ7YnJlYWsgTDg5MH1lbHNle2JiPTB9fWF1PWNbZj4+Ml18MDthcj1jW2F1KzEyPj4yXXwwO2lm
KChhcnwwKT09KGNbYXUrMTY+PjJdfDApKXtiYz1iMFtjWyhjW2F1Pj4yXXwwKSszNj4+Ml0mMTI3
XShhdSl8MH1lbHNle2JjPWNbYXI+PjJdfDB9aWYoIShiMVtjWyhjW2U+PjJdfDApKzEyPj4yXSY2
M10obCwyMDQ4LGJjKXwwKSl7Wj05OTQ7YnJlYWsgTDg5MH1pZigoY1tuPj4yXXwwKT09KGNbcT4+
Ml18MCkpe2gzKG0sbixxKX1hcj1jW2Y+PjJdfDA7YXU9Y1thcisxMj4+Ml18MDtpZigoYXV8MCk9
PShjW2FyKzE2Pj4yXXwwKSl7YmQ9YjBbY1soY1thcj4+Ml18MCkrMzY+PjJdJjEyN10oYXIpfDB9
ZWxzZXtiZD1jW2F1Pj4yXXwwfWF1PWNbbj4+Ml18MDtjW24+PjJdPWF1KzQ7Y1thdT4+Ml09YmQ7
YXU9YTctMXwwO2NbQj4+Ml09YXU7YXI9Y1tmPj4yXXwwO1Y9YXIrMTJ8MDthdD1jW1Y+PjJdfDA7
aWYoKGF0fDApPT0oY1thcisxNj4+Ml18MCkpe2FwPWNbKGNbYXI+PjJdfDApKzQwPj4yXXwwO2Iw
W2FwJjEyN10oYXIpfDB9ZWxzZXtjW1Y+PjJdPWF0KzR9aWYoKGF1fDApPjApe2E2PWJiO2E3PWF1
fWVsc2V7YnJlYWt9fX1pZigoY1tuPj4yXXwwKT09KGNbZz4+Ml18MCkpe1o9MTAwNTticmVhayBM
ODkwfWVsc2V7YWY9cjthZz1hVTthaD1hVjthaT1hVzthaj1hWH1icmVha307Y2FzZSAxOntpZigo
VXwwKT09Myl7YWE9UjthYj1TO2FjPVQ7YWQ9cjtaPTEwMDc7YnJlYWsgTDg5MH1hcz1jW2Y+PjJd
fDA7YXU9Y1thcysxMj4+Ml18MDtpZigoYXV8MCk9PShjW2FzKzE2Pj4yXXwwKSl7YmU9YjBbY1so
Y1thcz4+Ml18MCkrMzY+PjJdJjEyN10oYXMpfDB9ZWxzZXtiZT1jW2F1Pj4yXXwwfWlmKCEoYjFb
Y1soY1tlPj4yXXwwKSsxMj4+Ml0mNjNdKGwsODE5MixiZSl8MCkpe1o9NzkxO2JyZWFrIEw4OTB9
YXU9Y1tmPj4yXXwwO2FzPWF1KzEyfDA7YXQ9Y1thcz4+Ml18MDtpZigoYXR8MCk9PShjW2F1KzE2
Pj4yXXwwKSl7YmY9YjBbY1soY1thdT4+Ml18MCkrNDA+PjJdJjEyN10oYXUpfDB9ZWxzZXtjW2Fz
Pj4yXT1hdCs0O2JmPWNbYXQ+PjJdfDB9ZWgoQSxiZik7Wj03OTI7YnJlYWt9O2Nhc2UgMDp7Wj03
OTI7YnJlYWt9O2Nhc2UgMzp7YXQ9YVtFXXwwO2FzPWF0JjI1NTthdT0oYXMmMXwwKT09MDtWPWFb
Rl18MDthcj1WJjI1NTthcD0oYXImMXwwKT09MDtpZigoKGF1P2FzPj4+MTpjW0o+PjJdfDApfDAp
PT0oLShhcD9hcj4+PjE6Y1tIPj4yXXwwKXwwKSl7YWY9cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2Jy
ZWFrIEw5MTR9ZG97aWYoKChhdT9hcz4+PjE6Y1tKPj4yXXwwKXwwKSE9MCl7aWYoKChhcD9hcj4+
PjE6Y1tIPj4yXXwwKXwwKT09MCl7YnJlYWt9WD1jW2Y+PjJdfDA7YXc9Y1tYKzEyPj4yXXwwO2lm
KChhd3wwKT09KGNbWCsxNj4+Ml18MCkpe2F4PWIwW2NbKGNbWD4+Ml18MCkrMzY+PjJdJjEyN10o
WCl8MDtiZz1heDtiaD1hW0VdfDB9ZWxzZXtiZz1jW2F3Pj4yXXwwO2JoPWF0fWF3PWNbZj4+Ml18
MDtheD1hdysxMnwwO1g9Y1theD4+Ml18MDthdj0oWHwwKT09KGNbYXcrMTY+PjJdfDApO2lmKChi
Z3wwKT09KGNbKChiaCYxKT09MD9KOmNbSz4+Ml18MCk+PjJdfDApKXtpZihhdil7Ymk9Y1soY1th
dz4+Ml18MCkrNDA+PjJdfDA7YjBbYmkmMTI3XShhdyl8MH1lbHNle2NbYXg+PjJdPVgrNH1heD1k
W0VdfDA7YWY9KChheCYxfDApPT0wP2F4Pj4+MTpjW0o+PjJdfDApPj4+MD4xP3k6cjthZz1vO2Fo
PVQ7YWk9Uzthaj1SO2JyZWFrIEw5MTR9aWYoYXYpe2JqPWIwW2NbKGNbYXc+PjJdfDApKzM2Pj4y
XSYxMjddKGF3KXwwfWVsc2V7Ymo9Y1tYPj4yXXwwfWlmKChianwwKSE9KGNbKChhW0ZdJjEpPT0w
P0g6Y1tJPj4yXXwwKT4+Ml18MCkpe1o9ODU3O2JyZWFrIEw4OTB9WD1jW2Y+PjJdfDA7YXc9WCsx
MnwwO2F2PWNbYXc+PjJdfDA7aWYoKGF2fDApPT0oY1tYKzE2Pj4yXXwwKSl7YXg9Y1soY1tYPj4y
XXwwKSs0MD4+Ml18MDtiMFtheCYxMjddKFgpfDB9ZWxzZXtjW2F3Pj4yXT1hdis0fWFba109MTth
dj1kW0ZdfDA7YWY9KChhdiYxfDApPT0wP2F2Pj4+MTpjW0g+PjJdfDApPj4+MD4xP3o6cjthZz1v
O2FoPVQ7YWk9Uzthaj1SO2JyZWFrIEw5MTR9fXdoaWxlKDApO2FyPWNbZj4+Ml18MDthcD1jW2Fy
KzEyPj4yXXwwO2F2PShhcHwwKT09KGNbYXIrMTY+PjJdfDApO2lmKCgoYXU/YXM+Pj4xOmNbSj4+
Ml18MCl8MCk9PTApe2lmKGF2KXthdz1iMFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8
MDtiaz1hdztibD1hW0ZdfDB9ZWxzZXtiaz1jW2FwPj4yXXwwO2JsPVZ9aWYoKGJrfDApIT0oY1so
KGJsJjEpPT0wP0g6Y1tJPj4yXXwwKT4+Ml18MCkpe2FmPXI7YWc9bzthaD1UO2FpPVM7YWo9Ujti
cmVhayBMOTE0fWF3PWNbZj4+Ml18MDtYPWF3KzEyfDA7YXg9Y1tYPj4yXXwwO2lmKChheHwwKT09
KGNbYXcrMTY+PjJdfDApKXtiaT1jWyhjW2F3Pj4yXXwwKSs0MD4+Ml18MDtiMFtiaSYxMjddKGF3
KXwwfWVsc2V7Y1tYPj4yXT1heCs0fWFba109MTtheD1kW0ZdfDA7YWY9KChheCYxfDApPT0wP2F4
Pj4+MTpjW0g+PjJdfDApPj4+MD4xP3o6cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFrIEw5MTR9
aWYoYXYpe2F2PWIwW2NbKGNbYXI+PjJdfDApKzM2Pj4yXSYxMjddKGFyKXwwO2JtPWF2O2JuPWFb
RV18MH1lbHNle2JtPWNbYXA+PjJdfDA7Ym49YXR9aWYoKGJtfDApIT0oY1soKGJuJjEpPT0wP0o6
Y1tLPj4yXXwwKT4+Ml18MCkpe2Fba109MTthZj1yO2FnPW87YWg9VDthaT1TO2FqPVI7YnJlYWsg
TDkxNH1hcD1jW2Y+PjJdfDA7YXY9YXArMTJ8MDthcj1jW2F2Pj4yXXwwO2lmKChhcnwwKT09KGNb
YXArMTY+PjJdfDApKXtheD1jWyhjW2FwPj4yXXwwKSs0MD4+Ml18MDtiMFtheCYxMjddKGFwKXww
fWVsc2V7Y1thdj4+Ml09YXIrNH1hcj1kW0VdfDA7YWY9KChhciYxfDApPT0wP2FyPj4+MTpjW0o+
PjJdfDApPj4+MD4xP3k6cjthZz1vO2FoPVQ7YWk9Uzthaj1SO2JyZWFrfTtkZWZhdWx0OnthZj1y
O2FnPW87YWg9VDthaT1TO2FqPVJ9fX13aGlsZSgwKTtMMTE4Mzpkb3tpZigoWnwwKT09NzkyKXta
PTA7aWYoKFV8MCk9PTMpe2FhPVI7YWI9UzthYz1UO2FkPXI7Wj0xMDA3O2JyZWFrIEw4OTB9ZWxz
ZXtibz0kfXdoaWxlKDEpe2FyPWNbZj4+Ml18MDtkb3tpZigoYXJ8MCk9PTApe2JwPTF9ZWxzZXth
dj1jW2FyKzEyPj4yXXwwO2lmKChhdnwwKT09KGNbYXIrMTY+PjJdfDApKXticT1iMFtjWyhjW2Fy
Pj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2JxPWNbYXY+PjJdfDB9aWYoKGJxfDApPT0t
MSl7Y1tmPj4yXT0wO2JwPTE7YnJlYWt9ZWxzZXticD0oY1tmPj4yXXwwKT09MDticmVha319fXdo
aWxlKDApO2Rve2lmKChib3wwKT09MCl7Wj04MDZ9ZWxzZXthcj1jW2JvKzEyPj4yXXwwO2lmKChh
cnwwKT09KGNbYm8rMTY+PjJdfDApKXticj1iMFtjWyhjW2JvPj4yXXwwKSszNj4+Ml0mMTI3XShi
byl8MH1lbHNle2JyPWNbYXI+PjJdfDB9aWYoKGJyfDApPT0tMSl7Y1tiPj4yXT0wO1o9ODA2O2Jy
ZWFrfWVsc2V7aWYoYnBeKGJvfDApPT0wKXticz1ibzticmVha31lbHNle2FmPXI7YWc9bzthaD1U
O2FpPVM7YWo9UjticmVhayBMMTE4M319fX13aGlsZSgwKTtpZigoWnwwKT09ODA2KXtaPTA7aWYo
YnApe2FmPXI7YWc9bzthaD1UO2FpPVM7YWo9UjticmVhayBMMTE4M31lbHNle2JzPTB9fWFyPWNb
Zj4+Ml18MDthdj1jW2FyKzEyPj4yXXwwO2lmKChhdnwwKT09KGNbYXIrMTY+PjJdfDApKXtidD1i
MFtjWyhjW2FyPj4yXXwwKSszNj4+Ml0mMTI3XShhcil8MH1lbHNle2J0PWNbYXY+PjJdfDB9aWYo
IShiMVtjWyhjW2U+PjJdfDApKzEyPj4yXSY2M10obCw4MTkyLGJ0KXwwKSl7YWY9cjthZz1vO2Fo
PVQ7YWk9Uzthaj1SO2JyZWFrIEwxMTgzfWF2PWNbZj4+Ml18MDthcj1hdisxMnwwO2FwPWNbYXI+
PjJdfDA7aWYoKGFwfDApPT0oY1thdisxNj4+Ml18MCkpe2J1PWIwW2NbKGNbYXY+PjJdfDApKzQw
Pj4yXSYxMjddKGF2KXwwfWVsc2V7Y1thcj4+Ml09YXArNDtidT1jW2FwPj4yXXwwfWVoKEEsYnUp
O2JvPWJzfX19d2hpbGUoMCk7YXQ9VSsxfDA7aWYoYXQ+Pj4wPDQpe1I9YWo7Uz1haTtUPWFoO289
YWc7cj1hZjtVPWF0fWVsc2V7YWE9YWo7YWI9YWk7YWM9YWg7YWQ9YWY7Wj0xMDA3O2JyZWFrfX1M
MTIyMDpkb3tpZigoWnwwKT09ODU3KXtjW2o+PjJdPWNbaj4+Ml18NDtidj0wO2J3PVM7Yng9Un1l
bHNlIGlmKChafDApPT05MDEpe2Nbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9UztieD1SfWVsc2Ug
aWYoKFp8MCk9PTk3MCl7Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hVztieD1hWH1lbHNlIGlm
KChafDApPT05OTQpe2Nbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9YVc7Yng9YVh9ZWxzZSBpZigo
WnwwKT09MTAwNSl7Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hVztieD1hWH1lbHNlIGlmKCha
fDApPT0xMDA3KXtMMTIyNzpkb3tpZigoYWR8MCkhPTApe2FmPWFkO2FoPWFkKzR8MDthaT1hZCs4
fDA7YWo9MTtMMTIyOTp3aGlsZSgxKXtVPWRbYWZdfDA7aWYoKFUmMXwwKT09MCl7Ynk9VT4+PjF9
ZWxzZXtieT1jW2FoPj4yXXwwfWlmKGFqPj4+MD49Ynk+Pj4wKXticmVhayBMMTIyN31VPWNbZj4+
Ml18MDtkb3tpZigoVXwwKT09MCl7Yno9MX1lbHNle3I9Y1tVKzEyPj4yXXwwO2lmKChyfDApPT0o
Y1tVKzE2Pj4yXXwwKSl7YkE9YjBbY1soY1tVPj4yXXwwKSszNj4+Ml0mMTI3XShVKXwwfWVsc2V7
YkE9Y1tyPj4yXXwwfWlmKChiQXwwKT09LTEpe2NbZj4+Ml09MDtiej0xO2JyZWFrfWVsc2V7Yno9
KGNbZj4+Ml18MCk9PTA7YnJlYWt9fX13aGlsZSgwKTtVPWNbYj4+Ml18MDtkb3tpZigoVXwwKT09
MCl7Wj0xMDI2fWVsc2V7cj1jW1UrMTI+PjJdfDA7aWYoKHJ8MCk9PShjW1UrMTY+PjJdfDApKXti
Qj1iMFtjWyhjW1U+PjJdfDApKzM2Pj4yXSYxMjddKFUpfDB9ZWxzZXtiQj1jW3I+PjJdfDB9aWYo
KGJCfDApPT0tMSl7Y1tiPj4yXT0wO1o9MTAyNjticmVha31lbHNle2lmKGJ6XihVfDApPT0wKXti
cmVha31lbHNle2JyZWFrIEwxMjI5fX19fXdoaWxlKDApO2lmKChafDApPT0xMDI2KXtaPTA7aWYo
Ynope2JyZWFrfX1VPWNbZj4+Ml18MDtyPWNbVSsxMj4+Ml18MDtpZigocnwwKT09KGNbVSsxNj4+
Ml18MCkpe2JDPWIwW2NbKGNbVT4+Ml18MCkrMzY+PjJdJjEyN10oVSl8MH1lbHNle2JDPWNbcj4+
Ml18MH1pZigoYVthZl0mMSk9PTApe2JEPWFofWVsc2V7YkQ9Y1thaT4+Ml18MH1pZigoYkN8MCkh
PShjW2JEKyhhajw8Mik+PjJdfDApKXticmVha31yPWFqKzF8MDtVPWNbZj4+Ml18MDthZz1VKzEy
fDA7bz1jW2FnPj4yXXwwO2lmKChvfDApPT0oY1tVKzE2Pj4yXXwwKSl7VD1jWyhjW1U+PjJdfDAp
KzQwPj4yXXwwO2IwW1QmMTI3XShVKXwwO2FqPXI7Y29udGludWV9ZWxzZXtjW2FnPj4yXT1vKzQ7
YWo9cjtjb250aW51ZX19Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hYjtieD1hYTticmVhayBM
MTIyMH19d2hpbGUoMCk7aWYoKGFifDApPT0oYWN8MCkpe2J2PTE7Ync9YWM7Yng9YWE7YnJlYWt9
Y1tDPj4yXT0wO2Z0KHYsYWIsYWMsQyk7aWYoKGNbQz4+Ml18MCk9PTApe2J2PTE7Ync9YWI7Yng9
YWE7YnJlYWt9Y1tqPj4yXT1jW2o+PjJdfDQ7YnY9MDtidz1hYjtieD1hYX1lbHNlIGlmKChafDAp
PT03OTEpe2Nbaj4+Ml09Y1tqPj4yXXw0O2J2PTA7Ync9UztieD1SfX13aGlsZSgwKTtlZShBKTtl
ZSh6KTtlZSh5KTtlZSh4KTtkUCh2KTtpZigoYnd8MCk9PTApe2k9cDtyZXR1cm4gYnZ8MH1iWVti
eCY1MTFdKGJ3KTtpPXA7cmV0dXJuIGJ2fDB9ZnVuY3Rpb24gaF8oYixkLGUpe2I9YnwwO2Q9ZHww
O2U9ZXwwO3ZhciBmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTA7Zj1iO2c9
ZDtoPWFbZl18MDtpPWgmMjU1O2lmKChpJjF8MCk9PTApe2o9aT4+PjF9ZWxzZXtqPWNbYis0Pj4y
XXwwfWlmKChoJjEpPT0wKXtrPTE7bD1ofWVsc2V7aD1jW2I+PjJdfDA7az0oaCYtMiktMXwwO2w9
aCYyNTV9aD1lLWc+PjI7aWYoKGh8MCk9PTApe3JldHVybiBifDB9aWYoKGstanwwKT4+PjA8aD4+
PjApe2VCKGIsayxqK2gta3wwLGosaiwwLDApO209YVtmXXwwfWVsc2V7bT1sfWlmKChtJjEpPT0w
KXtuPWIrNHwwfWVsc2V7bj1jW2IrOD4+Ml18MH1tPW4rKGo8PDIpfDA7aWYoKGR8MCk9PShlfDAp
KXtvPW19ZWxzZXtsPWorKChlLTQrKC1nfDApfDApPj4+MikrMXwwO2c9ZDtkPW07d2hpbGUoMSl7
Y1tkPj4yXT1jW2c+PjJdO209Zys0fDA7aWYoKG18MCk9PShlfDApKXticmVha31lbHNle2c9bTtk
PWQrNHwwfX1vPW4rKGw8PDIpfDB9Y1tvPj4yXT0wO289aitofDA7aWYoKGFbZl0mMSk9PTApe2Fb
Zl09bzw8MSYyNTU7cmV0dXJuIGJ8MH1lbHNle2NbYis0Pj4yXT1vO3JldHVybiBifDB9cmV0dXJu
IDB9ZnVuY3Rpb24gaCQoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaDAo
YSl7YT1hfDA7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gaDEoYixkLGUsZixnLGgsaixrKXtiPWJ8
MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxu
PTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9
MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MDtkPWk7aT1pKzQ1NnwwO2w9ZTtlPWk7aT1pKzR8MDtp
PWkrNz4+Mzw8MztjW2U+PjJdPWNbbD4+Ml07bD1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2Nb
Zj4+Ml09Y1tsPj4yXTtsPWR8MDttPWQrMTZ8MDtuPWQrNDE2fDA7bz1kKzQyNHwwO3A9ZCs0MzJ8
MDtxPWQrNDQwfDA7cj1kKzQ0OHwwO3M9bnwwO2Nbcz4+Ml09bTt0PW4rNHwwO2NbdD4+Ml09MTY2
O3U9bSs0MDB8MDtlaihwLGgpO209cHwwO3Y9Y1ttPj4yXXwwO2lmKChjWzM5MjJdfDApIT0tMSl7
Y1tsPj4yXT0xNTY4ODtjW2wrND4+Ml09MTI7Y1tsKzg+PjJdPTA7ZFcoMTU2ODgsbCw5Nil9bD0o
Y1szOTIzXXwwKS0xfDA7dz1jW3YrOD4+Ml18MDtkb3tpZigoY1t2KzEyPj4yXXwwKS13Pj4yPj4+
MD5sPj4+MCl7eD1jW3crKGw8PDIpPj4yXXwwO2lmKCh4fDApPT0wKXticmVha315PXg7YVtxXT0w
O3o9ZnwwO0E9Y1t6Pj4yXXwwO2Nbcj4+Ml09QTtpZihoWihlLHIsZyxwLGNbaCs0Pj4yXXwwLGos
cSx5LG4sbyx1KXwwKXtCPWs7aWYoKGFbQl0mMSk9PTApe2Nbays0Pj4yXT0wO2FbQl09MH1lbHNl
e2NbY1trKzg+PjJdPj4yXT0wO2Nbays0Pj4yXT0wfUI9eDtpZigoYVtxXSYxKSE9MCl7ZWgoayxi
X1tjWyhjW0I+PjJdfDApKzQ0Pj4yXSYzMV0oeSw0NSl8MCl9eD1iX1tjWyhjW0I+PjJdfDApKzQ0
Pj4yXSYzMV0oeSw0OCl8MDt5PWNbbz4+Ml18MDtCPXktNHwwO0M9Y1tzPj4yXXwwO3doaWxlKDEp
e2lmKEM+Pj4wPj1CPj4+MCl7YnJlYWt9aWYoKGNbQz4+Ml18MCk9PSh4fDApKXtDPUMrNHwwfWVs
c2V7YnJlYWt9fWhfKGssQyx5KXwwfXg9ZXwwO0I9Y1t4Pj4yXXwwO2Rve2lmKChCfDApPT0wKXtE
PTB9ZWxzZXtFPWNbQisxMj4+Ml18MDtpZigoRXwwKT09KGNbQisxNj4+Ml18MCkpe0Y9YjBbY1so
Y1tCPj4yXXwwKSszNj4+Ml0mMTI3XShCKXwwfWVsc2V7Rj1jW0U+PjJdfDB9aWYoKEZ8MCkhPS0x
KXtEPUI7YnJlYWt9Y1t4Pj4yXT0wO0Q9MH19d2hpbGUoMCk7eD0oRHwwKT09MDtkb3tpZigoQXww
KT09MCl7Rz0xMTA1fWVsc2V7Qj1jW0ErMTI+PjJdfDA7aWYoKEJ8MCk9PShjW0ErMTY+PjJdfDAp
KXtIPWIwW2NbKGNbQT4+Ml18MCkrMzY+PjJdJjEyN10oQSl8MH1lbHNle0g9Y1tCPj4yXXwwfWlm
KChIfDApPT0tMSl7Y1t6Pj4yXT0wO0c9MTEwNTticmVha31lbHNle2lmKHheKEF8MCk9PTApe2Jy
ZWFrfWVsc2V7Rz0xMTA3O2JyZWFrfX19fXdoaWxlKDApO2lmKChHfDApPT0xMTA1KXtpZih4KXtH
PTExMDd9fWlmKChHfDApPT0xMTA3KXtjW2o+PjJdPWNbaj4+Ml18Mn1jW2I+PjJdPUQ7QT1jW20+
PjJdfDA7ZHooQSl8MDtBPWNbcz4+Ml18MDtjW3M+PjJdPTA7aWYoKEF8MCk9PTApe2k9ZDtyZXR1
cm59YllbY1t0Pj4yXSY1MTFdKEEpO2k9ZDtyZXR1cm59fXdoaWxlKDApO2Q9Yk8oNCl8MDtrcShk
KTtibChkfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGgyKGIsZCxlLGYsZyxoLGosayxsLG0pe2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO3Zh
ciBuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0w
LEI9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MDtuPWk7
aT1pKzU2fDA7bz1ufDA7cD1uKzE2fDA7cT1uKzMyfDA7cj1uKzQwfDA7cz1yO3Q9aTtpPWkrMTJ8
MDtpPWkrNz4+Mzw8Mzt1PXQ7dj1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3c9djt4PWk7aT1pKzEy
fDA7aT1pKzc+PjM8PDM7eT14O3o9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0E9aTtpPWkrMTJ8MDtp
PWkrNz4+Mzw8MztCPUE7RD1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO0U9RDtGPWk7aT1pKzEyfDA7
aT1pKzc+PjM8PDM7Rz1GO0g9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztJPUg7aWYoYil7Yj1jW2Q+
PjJdfDA7aWYoKGNbNDA0MF18MCkhPS0xKXtjW3A+PjJdPTE2MTYwO2NbcCs0Pj4yXT0xMjtjW3Ar
OD4+Ml09MDtkVygxNjE2MCxwLDk2KX1wPShjWzQwNDFdfDApLTF8MDtKPWNbYis4Pj4yXXwwO2lm
KChjW2IrMTI+PjJdfDApLUo+PjI+Pj4wPD1wPj4+MCl7Sz1iTyg0KXwwO0w9SztrcShMKTtibChL
fDAsODE3NiwxMzQpfWI9Y1tKKyhwPDwyKT4+Ml18MDtpZigoYnwwKT09MCl7Sz1iTyg0KXwwO0w9
SztrcShMKTtibChLfDAsODE3NiwxMzQpfUs9YjtiWltjWyhjW2I+PjJdfDApKzQ0Pj4yXSYxMjdd
KHEsSyk7TD1lO0M9Y1txPj4yXXwwO2FbTF09QyYyNTU7Qz1DPj44O2FbTCsxfDBdPUMmMjU1O0M9
Qz4+ODthW0wrMnwwXT1DJjI1NTtDPUM+Pjg7YVtMKzN8MF09QyYyNTU7TD1iO2JaW2NbKGNbTD4+
Ml18MCkrMzI+PjJdJjEyN10ocixLKTtxPWw7aWYoKGFbcV0mMSk9PTApe2NbbCs0Pj4yXT0wO2Fb
cV09MH1lbHNle2NbY1tsKzg+PjJdPj4yXT0wO2NbbCs0Pj4yXT0wfWV6KGwsMCk7Y1txPj4yXT1j
W3M+PjJdO2NbcSs0Pj4yXT1jW3MrND4+Ml07Y1txKzg+PjJdPWNbcys4Pj4yXTtrJChzfDAsMCwx
Mik7ZWUocik7YlpbY1soY1tMPj4yXXwwKSsyOD4+Ml0mMTI3XSh0LEspO3I9aztpZigoYVtyXSYx
KT09MCl7Y1trKzQ+PjJdPTA7YVtyXT0wfWVsc2V7Y1tjW2srOD4+Ml0+PjJdPTA7Y1trKzQ+PjJd
PTB9ZXooaywwKTtjW3I+PjJdPWNbdT4+Ml07Y1tyKzQ+PjJdPWNbdSs0Pj4yXTtjW3IrOD4+Ml09
Y1t1Kzg+PjJdO2skKHV8MCwwLDEyKTtlZSh0KTt0PWI7Y1tmPj4yXT1iMFtjWyhjW3Q+PjJdfDAp
KzEyPj4yXSYxMjddKEspfDA7Y1tnPj4yXT1iMFtjWyhjW3Q+PjJdfDApKzE2Pj4yXSYxMjddKEsp
fDA7YlpbY1soY1tiPj4yXXwwKSsyMD4+Ml0mMTI3XSh2LEspO2I9aDtpZigoYVtiXSYxKT09MCl7
YVtoKzF8MF09MDthW2JdPTB9ZWxzZXthW2NbaCs4Pj4yXXwwXT0wO2NbaCs0Pj4yXT0wfWQkKGgs
MCk7Y1tiPj4yXT1jW3c+PjJdO2NbYis0Pj4yXT1jW3crND4+Ml07Y1tiKzg+PjJdPWNbdys4Pj4y
XTtrJCh3fDAsMCwxMik7ZFAodik7YlpbY1soY1tMPj4yXXwwKSsyND4+Ml0mMTI3XSh4LEspO0w9
ajtpZigoYVtMXSYxKT09MCl7Y1tqKzQ+PjJdPTA7YVtMXT0wfWVsc2V7Y1tjW2orOD4+Ml0+PjJd
PTA7Y1tqKzQ+PjJdPTB9ZXooaiwwKTtjW0w+PjJdPWNbeT4+Ml07Y1tMKzQ+PjJdPWNbeSs0Pj4y
XTtjW0wrOD4+Ml09Y1t5Kzg+PjJdO2skKHl8MCwwLDEyKTtlZSh4KTtNPWIwW2NbKGNbdD4+Ml18
MCkrMzY+PjJdJjEyN10oSyl8MDtjW20+PjJdPU07aT1uO3JldHVybn1lbHNle0s9Y1tkPj4yXXww
O2lmKChjWzQwNDJdfDApIT0tMSl7Y1tvPj4yXT0xNjE2ODtjW28rND4+Ml09MTI7Y1tvKzg+PjJd
PTA7ZFcoMTYxNjgsbyw5Nil9bz0oY1s0MDQzXXwwKS0xfDA7ZD1jW0srOD4+Ml18MDtpZigoY1tL
KzEyPj4yXXwwKS1kPj4yPj4+MDw9bz4+PjApe049Yk8oNCl8MDtPPU47a3EoTyk7YmwoTnwwLDgx
NzYsMTM0KX1LPWNbZCsobzw8Mik+PjJdfDA7aWYoKEt8MCk9PTApe049Yk8oNCl8MDtPPU47a3Eo
Tyk7YmwoTnwwLDgxNzYsMTM0KX1OPUs7YlpbY1soY1tLPj4yXXwwKSs0ND4+Ml0mMTI3XSh6LE4p
O089ZTtDPWNbej4+Ml18MDthW09dPUMmMjU1O0M9Qz4+ODthW08rMXwwXT1DJjI1NTtDPUM+Pjg7
YVtPKzJ8MF09QyYyNTU7Qz1DPj44O2FbTyszfDBdPUMmMjU1O089SztiWltjWyhjW08+PjJdfDAp
KzMyPj4yXSYxMjddKEEsTik7ej1sO2lmKChhW3pdJjEpPT0wKXtjW2wrND4+Ml09MDthW3pdPTB9
ZWxzZXtjW2NbbCs4Pj4yXT4+Ml09MDtjW2wrND4+Ml09MH1leihsLDApO2Nbej4+Ml09Y1tCPj4y
XTtjW3orND4+Ml09Y1tCKzQ+PjJdO2Nbeis4Pj4yXT1jW0IrOD4+Ml07ayQoQnwwLDAsMTIpO2Vl
KEEpO2JaW2NbKGNbTz4+Ml18MCkrMjg+PjJdJjEyN10oRCxOKTtBPWs7aWYoKGFbQV0mMSk9PTAp
e2Nbays0Pj4yXT0wO2FbQV09MH1lbHNle2NbY1trKzg+PjJdPj4yXT0wO2Nbays0Pj4yXT0wfWV6
KGssMCk7Y1tBPj4yXT1jW0U+PjJdO2NbQSs0Pj4yXT1jW0UrND4+Ml07Y1tBKzg+PjJdPWNbRSs4
Pj4yXTtrJChFfDAsMCwxMik7ZWUoRCk7RD1LO2NbZj4+Ml09YjBbY1soY1tEPj4yXXwwKSsxMj4+
Ml0mMTI3XShOKXwwO2NbZz4+Ml09YjBbY1soY1tEPj4yXXwwKSsxNj4+Ml0mMTI3XShOKXwwO2Ja
W2NbKGNbSz4+Ml18MCkrMjA+PjJdJjEyN10oRixOKTtLPWg7aWYoKGFbS10mMSk9PTApe2FbaCsx
fDBdPTA7YVtLXT0wfWVsc2V7YVtjW2grOD4+Ml18MF09MDtjW2grND4+Ml09MH1kJChoLDApO2Nb
Sz4+Ml09Y1tHPj4yXTtjW0srND4+Ml09Y1tHKzQ+PjJdO2NbSys4Pj4yXT1jW0crOD4+Ml07ayQo
R3wwLDAsMTIpO2RQKEYpO2JaW2NbKGNbTz4+Ml18MCkrMjQ+PjJdJjEyN10oSCxOKTtPPWo7aWYo
KGFbT10mMSk9PTApe2Nbais0Pj4yXT0wO2FbT109MH1lbHNle2NbY1tqKzg+PjJdPj4yXT0wO2Nb
ais0Pj4yXT0wfWV6KGosMCk7Y1tPPj4yXT1jW0k+PjJdO2NbTys0Pj4yXT1jW0krND4+Ml07Y1tP
Kzg+PjJdPWNbSSs4Pj4yXTtrJChJfDAsMCwxMik7ZWUoSCk7TT1iMFtjWyhjW0Q+PjJdfDApKzM2
Pj4yXSYxMjddKE4pfDA7Y1ttPj4yXT1NO2k9bjtyZXR1cm59fWZ1bmN0aW9uIGgzKGEsYixkKXth
PWF8MDtiPWJ8MDtkPWR8MDt2YXIgZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MDtlPWEr
NHwwO2Y9KGNbZT4+Ml18MCkhPTE2NjtnPWF8MDthPWNbZz4+Ml18MDtoPWE7aT0oY1tkPj4yXXww
KS1ofDA7aj1pPj4+MDwyMTQ3NDgzNjQ3P2k8PDE6LTE7aT0oY1tiPj4yXXwwKS1oPj4yO2lmKGYp
e2s9YX1lbHNle2s9MH1hPWtMKGssail8MDtrPWE7aWYoKGF8MCk9PTApe2tYKCl9ZG97aWYoZil7
Y1tnPj4yXT1rO2w9a31lbHNle2E9Y1tnPj4yXXwwO2NbZz4+Ml09aztpZigoYXwwKT09MCl7bD1r
O2JyZWFrfWJZW2NbZT4+Ml0mNTExXShhKTtsPWNbZz4+Ml18MH19d2hpbGUoMCk7Y1tlPj4yXT04
MjtjW2I+PjJdPWwrKGk8PDIpO2NbZD4+Ml09KGNbZz4+Ml18MCkrKGo+Pj4yPDwyKTtyZXR1cm59
ZnVuY3Rpb24gaDQoYixlLGYsZyxqLGssbCl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aj1qfDA7
az1rfDA7bD0rbDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9
MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0w
LEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAsVz0wO2U9aTtpPWkr
MjgwfDA7bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWV8MDtu
PWUrMTIwfDA7bz1lKzIzMnwwO3A9ZSsyNDB8MDtxPWUrMjQ4fDA7cj1lKzI1NnwwO3M9ZSsyNjR8
MDt0PXM7dT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzEyfDA7aT1pKzc+PjM8
PDM7eD13O3k9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3o9aTtpPWkrMTAwfDA7aT1pKzc+PjM8PDM7
QT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qz1pO2k9aSs0
fDA7aT1pKzc+PjM8PDM7RD1lKzE2fDA7Y1tuPj4yXT1EO0U9ZSsxMjh8MDtGPWFaKER8MCwxMDAs
MTM2MCwoRD1pLGk9aSs4fDAsaFtEPj4zXT1sLEQpfDApfDA7aT1EO2Rve2lmKEY+Pj4wPjk5KXtk
b3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09
YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO0c9Z2gobixjWzI5NThdfDAsMTM2MCwoRD1pLGk9aSs4
fDAsaFtEPj4zXT1sLEQpfDApfDA7aT1EO0g9Y1tuPj4yXXwwO2lmKChIfDApPT0wKXtrWCgpO0k9
Y1tuPj4yXXwwfWVsc2V7ST1IfUg9a0ooRyl8MDtpZigoSHwwKSE9MCl7Sj1IO0s9RztMPUk7TT1I
O2JyZWFrfWtYKCk7Sj0wO0s9RztMPUk7TT0wfWVsc2V7Sj1FO0s9RjtMPTA7TT0wfX13aGlsZSgw
KTtlaihvLGopO0Y9b3wwO0U9Y1tGPj4yXXwwO2lmKChjWzM5MjRdfDApIT0tMSl7Y1ttPj4yXT0x
NTY5NjtjW20rND4+Ml09MTI7Y1ttKzg+PjJdPTA7ZFcoMTU2OTYsbSw5Nil9bT0oY1szOTI1XXww
KS0xfDA7ST1jW0UrOD4+Ml18MDtkb3tpZigoY1tFKzEyPj4yXXwwKS1JPj4yPj4+MD5tPj4+MCl7
RD1jW0krKG08PDIpPj4yXXwwO2lmKChEfDApPT0wKXticmVha31HPUQ7SD1jW24+PjJdfDA7Tj1I
K0t8MDtPPWNbKGNbRD4+Ml18MCkrMzI+PjJdfDA7Y2FbTyYxNV0oRyxILE4sSil8MDtpZigoS3ww
KT09MCl7UD0wfWVsc2V7UD0oYVtjW24+PjJdfDBdfDApPT00NX1rJCh0fDAsMCwxMik7ayQodnww
LDAsMTIpO2skKHh8MCwwLDEyKTtoNShnLFAsbyxwLHEscixzLHUsdyx5KTtOPXp8MDtIPWNbeT4+
Ml18MDtpZigoS3wwKT4oSHwwKSl7Tz1kW3hdfDA7aWYoKE8mMXwwKT09MCl7UT1PPj4+MX1lbHNl
e1E9Y1t3KzQ+PjJdfDB9Tz1kW3ZdfDA7aWYoKE8mMXwwKT09MCl7Uj1PPj4+MX1lbHNle1I9Y1t1
KzQ+PjJdfDB9Uz0oSy1IPDwxfDEpK1ErUnwwfWVsc2V7Tz1kW3hdfDA7aWYoKE8mMXwwKT09MCl7
VD1PPj4+MX1lbHNle1Q9Y1t3KzQ+PjJdfDB9Tz1kW3ZdfDA7aWYoKE8mMXwwKT09MCl7VT1PPj4+
MX1lbHNle1U9Y1t1KzQ+PjJdfDB9Uz1UKzIrVXwwfU89UytIfDA7ZG97aWYoTz4+PjA+MTAwKXtE
PWtKKE8pfDA7aWYoKER8MCkhPTApe1Y9RDtXPUQ7YnJlYWt9a1goKTtWPTA7Vz0wfWVsc2V7Vj1O
O1c9MH19d2hpbGUoMCk7aDYoVixBLEIsY1tqKzQ+PjJdfDAsSixKK0t8MCxHLFAscCxhW3FdfDAs
YVtyXXwwLHMsdSx3LEgpO2NbQz4+Ml09Y1tmPj4yXTtmOShiLEMsVixjW0E+PjJdfDAsY1tCPj4y
XXwwLGosayk7aWYoKFd8MCkhPTApe2tLKFcpfWRQKHcpO2RQKHUpO2RQKHMpO049Y1tGPj4yXXww
O2R6KE4pfDA7aWYoKE18MCkhPTApe2tLKE0pfWlmKChMfDApPT0wKXtpPWU7cmV0dXJufWtLKEwp
O2k9ZTtyZXR1cm59fXdoaWxlKDApO2U9Yk8oNCl8MDtrcShlKTtibChlfDAsODE3NiwxMzQpfWZ1
bmN0aW9uIGg1KGIsZCxlLGYsZyxoLGosayxsLG0pe2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO2o9anwwO2s9a3wwO2w9bHwwO209bXwwO3ZhciBuPTAsbz0wLHA9MCxxPTAscj0w
LHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxEPTAsRT0wLEY9MCxHPTAs
SD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MDtu
PWk7aT1pKzQwfDA7bz1ufDA7cD1uKzE2fDA7cT1uKzMyfDA7cj1xO3M9aTtpPWkrMTJ8MDtpPWkr
Nz4+Mzw8Mzt0PXM7dT1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7dj11O3c9aTtpPWkrMTJ8MDtpPWkr
Nz4+Mzw8Mzt4PXc7eT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3o9eTtBPWk7aT1pKzEyfDA7aT1p
Kzc+PjM8PDM7Qj1BO0Q9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0U9RDtGPWk7aT1pKzEyfDA7aT1p
Kzc+PjM8PDM7Rz1GO0g9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0k9SDtKPWk7aT1pKzEyfDA7aT1p
Kzc+PjM8PDM7Sz1KO0w9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8MztNPUw7Tj1pO2k9aSsxMnwwO2k9
aSs3Pj4zPDwzO089TjtQPWNbZT4+Ml18MDtpZihiKXtpZigoY1s0MDQ0XXwwKSE9LTEpe2NbcD4+
Ml09MTYxNzY7Y1twKzQ+PjJdPTEyO2NbcCs4Pj4yXT0wO2RXKDE2MTc2LHAsOTYpfXA9KGNbNDA0
NV18MCktMXwwO2I9Y1tQKzg+PjJdfDA7aWYoKGNbUCsxMj4+Ml18MCktYj4+Mj4+PjA8PXA+Pj4w
KXtRPWJPKDQpfDA7Uj1RO2txKFIpO2JsKFF8MCw4MTc2LDEzNCl9ZT1jW2IrKHA8PDIpPj4yXXww
O2lmKChlfDApPT0wKXtRPWJPKDQpfDA7Uj1RO2txKFIpO2JsKFF8MCw4MTc2LDEzNCl9UT1lO1I9
Y1tlPj4yXXwwO2lmKGQpe2JaW2NbUis0ND4+Ml0mMTI3XShyLFEpO3I9ZjtDPWNbcT4+Ml18MDth
W3JdPUMmMjU1O0M9Qz4+ODthW3IrMXwwXT1DJjI1NTtDPUM+Pjg7YVtyKzJ8MF09QyYyNTU7Qz1D
Pj44O2FbciszfDBdPUMmMjU1O2JaW2NbKGNbZT4+Ml18MCkrMzI+PjJdJjEyN10ocyxRKTtyPWw7
aWYoKGFbcl0mMSk9PTApe2FbbCsxfDBdPTA7YVtyXT0wfWVsc2V7YVtjW2wrOD4+Ml18MF09MDtj
W2wrND4+Ml09MH1kJChsLDApO2Nbcj4+Ml09Y1t0Pj4yXTtjW3IrND4+Ml09Y1t0KzQ+PjJdO2Nb
cis4Pj4yXT1jW3QrOD4+Ml07ayQodHwwLDAsMTIpO2RQKHMpfWVsc2V7YlpbY1tSKzQwPj4yXSYx
MjddKHYsUSk7dj1mO0M9Y1t1Pj4yXXwwO2Fbdl09QyYyNTU7Qz1DPj44O2FbdisxfDBdPUMmMjU1
O0M9Qz4+ODthW3YrMnwwXT1DJjI1NTtDPUM+Pjg7YVt2KzN8MF09QyYyNTU7YlpbY1soY1tlPj4y
XXwwKSsyOD4+Ml0mMTI3XSh3LFEpO3Y9bDtpZigoYVt2XSYxKT09MCl7YVtsKzF8MF09MDthW3Zd
PTB9ZWxzZXthW2NbbCs4Pj4yXXwwXT0wO2NbbCs0Pj4yXT0wfWQkKGwsMCk7Y1t2Pj4yXT1jW3g+
PjJdO2Nbdis0Pj4yXT1jW3grND4+Ml07Y1t2Kzg+PjJdPWNbeCs4Pj4yXTtrJCh4fDAsMCwxMik7
ZFAodyl9dz1lO2FbZ109YjBbY1soY1t3Pj4yXXwwKSsxMj4+Ml0mMTI3XShRKXwwO2FbaF09YjBb
Y1soY1t3Pj4yXXwwKSsxNj4+Ml0mMTI3XShRKXwwO3c9ZTtiWltjWyhjW3c+PjJdfDApKzIwPj4y
XSYxMjddKHksUSk7eD1qO2lmKChhW3hdJjEpPT0wKXthW2orMXwwXT0wO2FbeF09MH1lbHNle2Fb
Y1tqKzg+PjJdfDBdPTA7Y1tqKzQ+PjJdPTB9ZCQoaiwwKTtjW3g+PjJdPWNbej4+Ml07Y1t4KzQ+
PjJdPWNbeis0Pj4yXTtjW3grOD4+Ml09Y1t6Kzg+PjJdO2skKHp8MCwwLDEyKTtkUCh5KTtiWltj
WyhjW3c+PjJdfDApKzI0Pj4yXSYxMjddKEEsUSk7dz1rO2lmKChhW3ddJjEpPT0wKXthW2srMXww
XT0wO2Fbd109MH1lbHNle2FbY1trKzg+PjJdfDBdPTA7Y1trKzQ+PjJdPTB9ZCQoaywwKTtjW3c+
PjJdPWNbQj4+Ml07Y1t3KzQ+PjJdPWNbQis0Pj4yXTtjW3crOD4+Ml09Y1tCKzg+PjJdO2skKEJ8
MCwwLDEyKTtkUChBKTtTPWIwW2NbKGNbZT4+Ml18MCkrMzY+PjJdJjEyN10oUSl8MDtjW20+PjJd
PVM7aT1uO3JldHVybn1lbHNle2lmKChjWzQwNDZdfDApIT0tMSl7Y1tvPj4yXT0xNjE4NDtjW28r
ND4+Ml09MTI7Y1tvKzg+PjJdPTA7ZFcoMTYxODQsbyw5Nil9bz0oY1s0MDQ3XXwwKS0xfDA7UT1j
W1ArOD4+Ml18MDtpZigoY1tQKzEyPj4yXXwwKS1RPj4yPj4+MDw9bz4+PjApe1Q9Yk8oNCl8MDtV
PVQ7a3EoVSk7YmwoVHwwLDgxNzYsMTM0KX1QPWNbUSsobzw8Mik+PjJdfDA7aWYoKFB8MCk9PTAp
e1Q9Yk8oNCl8MDtVPVQ7a3EoVSk7YmwoVHwwLDgxNzYsMTM0KX1UPVA7VT1jW1A+PjJdfDA7aWYo
ZCl7YlpbY1tVKzQ0Pj4yXSYxMjddKEUsVCk7RT1mO0M9Y1tEPj4yXXwwO2FbRV09QyYyNTU7Qz1D
Pj44O2FbRSsxfDBdPUMmMjU1O0M9Qz4+ODthW0UrMnwwXT1DJjI1NTtDPUM+Pjg7YVtFKzN8MF09
QyYyNTU7YlpbY1soY1tQPj4yXXwwKSszMj4+Ml0mMTI3XShGLFQpO0U9bDtpZigoYVtFXSYxKT09
MCl7YVtsKzF8MF09MDthW0VdPTB9ZWxzZXthW2NbbCs4Pj4yXXwwXT0wO2NbbCs0Pj4yXT0wfWQk
KGwsMCk7Y1tFPj4yXT1jW0c+PjJdO2NbRSs0Pj4yXT1jW0crND4+Ml07Y1tFKzg+PjJdPWNbRys4
Pj4yXTtrJChHfDAsMCwxMik7ZFAoRil9ZWxzZXtiWltjW1UrNDA+PjJdJjEyN10oSSxUKTtJPWY7
Qz1jW0g+PjJdfDA7YVtJXT1DJjI1NTtDPUM+Pjg7YVtJKzF8MF09QyYyNTU7Qz1DPj44O2FbSSsy
fDBdPUMmMjU1O0M9Qz4+ODthW0krM3wwXT1DJjI1NTtiWltjWyhjW1A+PjJdfDApKzI4Pj4yXSYx
MjddKEosVCk7ST1sO2lmKChhW0ldJjEpPT0wKXthW2wrMXwwXT0wO2FbSV09MH1lbHNle2FbY1ts
Kzg+PjJdfDBdPTA7Y1tsKzQ+PjJdPTB9ZCQobCwwKTtjW0k+PjJdPWNbSz4+Ml07Y1tJKzQ+PjJd
PWNbSys0Pj4yXTtjW0krOD4+Ml09Y1tLKzg+PjJdO2skKEt8MCwwLDEyKTtkUChKKX1KPVA7YVtn
XT1iMFtjWyhjW0o+PjJdfDApKzEyPj4yXSYxMjddKFQpfDA7YVtoXT1iMFtjWyhjW0o+PjJdfDAp
KzE2Pj4yXSYxMjddKFQpfDA7Sj1QO2JaW2NbKGNbSj4+Ml18MCkrMjA+PjJdJjEyN10oTCxUKTto
PWo7aWYoKGFbaF0mMSk9PTApe2FbaisxfDBdPTA7YVtoXT0wfWVsc2V7YVtjW2orOD4+Ml18MF09
MDtjW2orND4+Ml09MH1kJChqLDApO2NbaD4+Ml09Y1tNPj4yXTtjW2grND4+Ml09Y1tNKzQ+PjJd
O2NbaCs4Pj4yXT1jW00rOD4+Ml07ayQoTXwwLDAsMTIpO2RQKEwpO2JaW2NbKGNbSj4+Ml18MCkr
MjQ+PjJdJjEyN10oTixUKTtKPWs7aWYoKGFbSl0mMSk9PTApe2FbaysxfDBdPTA7YVtKXT0wfWVs
c2V7YVtjW2srOD4+Ml18MF09MDtjW2srND4+Ml09MH1kJChrLDApO2NbSj4+Ml09Y1tPPj4yXTtj
W0orND4+Ml09Y1tPKzQ+PjJdO2NbSis4Pj4yXT1jW08rOD4+Ml07ayQoT3wwLDAsMTIpO2RQKE4p
O1M9YjBbY1soY1tQPj4yXXwwKSszNj4+Ml0mMTI3XShUKXwwO2NbbT4+Ml09UztpPW47cmV0dXJu
fX1mdW5jdGlvbiBoNihkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscil7ZD1kfDA7ZT1lfDA7
Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7bD1sfDA7bT1tfDA7bj1ufDA7bz1v
fDA7cD1wfDA7cT1xfDA7cj1yfDA7dmFyIHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAs
QT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxP
PTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0wLFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFh
PTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFnPTAsYWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0w
LGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0wLGFzPTAsYXQ9MCxhdT0wLGF2PTAsYXc9MCxh
eD0wLGF5PTA7Y1tmPj4yXT1kO3M9ajt0PXE7dT1xKzF8MDt2PXErOHwwO3c9cSs0fDA7cT1wO3g9
KGcmNTEyfDApPT0wO3k9cCsxfDA7ej1wKzR8MDtBPXArOHwwO3A9ais4fDA7Qj0ocnwwKT4wO0M9
bztEPW8rMXwwO0U9bys4fDA7Rj1vKzR8MDtvPS1yfDA7Rz1oO2g9MDt3aGlsZSgxKXtMMTU4MDpk
b3tzd2l0Y2goYVtsK2h8MF18MCl7Y2FzZSAwOntjW2U+PjJdPWNbZj4+Ml07SD1HO2JyZWFrfTtj
YXNlIDE6e2NbZT4+Ml09Y1tmPj4yXTtJPWJfW2NbKGNbcz4+Ml18MCkrMjg+PjJdJjMxXShqLDMy
KXwwO0o9Y1tmPj4yXXwwO2NbZj4+Ml09SisxO2FbSl09STtIPUc7YnJlYWt9O2Nhc2UgMzp7ST1h
W3RdfDA7Sj1JJjI1NTtpZigoSiYxfDApPT0wKXtLPUo+Pj4xfWVsc2V7Sz1jW3c+PjJdfDB9aWYo
KEt8MCk9PTApe0g9RzticmVhayBMMTU4MH1pZigoSSYxKT09MCl7TD11fWVsc2V7TD1jW3Y+PjJd
fDB9ST1hW0xdfDA7Sj1jW2Y+PjJdfDA7Y1tmPj4yXT1KKzE7YVtKXT1JO0g9RzticmVha307Y2Fz
ZSAyOntJPWFbcV18MDtKPUkmMjU1O009KEomMXwwKT09MDtpZihNKXtOPUo+Pj4xfWVsc2V7Tj1j
W3o+PjJdfDB9aWYoKE58MCk9PTB8eCl7SD1HO2JyZWFrIEwxNTgwfWlmKChJJjEpPT0wKXtPPXk7
UD15fWVsc2V7ST1jW0E+PjJdfDA7Tz1JO1A9SX1pZihNKXtRPUo+Pj4xfWVsc2V7UT1jW3o+PjJd
fDB9Sj1PK1F8MDtNPWNbZj4+Ml18MDtpZigoUHwwKT09KEp8MCkpe1I9TX1lbHNle0k9UDtTPU07
d2hpbGUoMSl7YVtTXT1hW0ldfDA7TT1JKzF8MDtUPVMrMXwwO2lmKChNfDApPT0oSnwwKSl7Uj1U
O2JyZWFrfWVsc2V7ST1NO1M9VH19fWNbZj4+Ml09UjtIPUc7YnJlYWt9O2Nhc2UgNDp7Uz1jW2Y+
PjJdfDA7ST1rP0crMXwwOkc7Sj1JO3doaWxlKDEpe2lmKEo+Pj4wPj1pPj4+MCl7YnJlYWt9VD1h
W0pdfDA7aWYoVDw8MjQ+PjI0PD0tMSl7YnJlYWt9aWYoKGJbKGNbcD4+Ml18MCkrKFQ8PDI0Pj4y
NDw8MSk+PjFdJjIwNDgpPT0wKXticmVha31lbHNle0o9SisxfDB9fVQ9SjtpZihCKXtpZihKPj4+
MD5JPj4+MCl7TT1JKygtVHwwKXwwO1Q9TT4+PjA8bz4+PjA/bzpNO009VCtyfDA7VT1KO1Y9cjtX
PVM7d2hpbGUoMSl7WD1VLTF8MDtZPWFbWF18MDtjW2Y+PjJdPVcrMTthW1ddPVk7WT1WLTF8MDta
PShZfDApPjA7aWYoIShYPj4+MD5JPj4+MCZaKSl7YnJlYWt9VT1YO1Y9WTtXPWNbZj4+Ml18MH1X
PUorVHwwO2lmKFope189TTskPVc7YWE9MTM1NH1lbHNle2FiPTA7YWM9TTthZD1XfX1lbHNle189
cjskPUo7YWE9MTM1NH1pZigoYWF8MCk9PTEzNTQpe2FhPTA7YWI9Yl9bY1soY1tzPj4yXXwwKSsy
OD4+Ml0mMzFdKGosNDgpfDA7YWM9XzthZD0kfVc9Y1tmPj4yXXwwO2NbZj4+Ml09VysxO2lmKChh
Y3wwKT4wKXtWPWFjO1U9Vzt3aGlsZSgxKXthW1VdPWFiO1k9Vi0xfDA7WD1jW2Y+PjJdfDA7Y1tm
Pj4yXT1YKzE7aWYoKFl8MCk+MCl7Vj1ZO1U9WH1lbHNle2FlPVg7YnJlYWt9fX1lbHNle2FlPVd9
YVthZV09bTthZj1hZH1lbHNle2FmPUp9aWYoKGFmfDApPT0oSXwwKSl7VT1iX1tjWyhjW3M+PjJd
fDApKzI4Pj4yXSYzMV0oaiw0OCl8MDtWPWNbZj4+Ml18MDtjW2Y+PjJdPVYrMTthW1ZdPVV9ZWxz
ZXtVPWFbQ118MDtWPVUmMjU1O2lmKChWJjF8MCk9PTApe2FnPVY+Pj4xfWVsc2V7YWc9Y1tGPj4y
XXwwfWlmKChhZ3wwKT09MCl7YWg9YWY7YWk9MDthaj0wO2FrPS0xfWVsc2V7aWYoKFUmMSk9PTAp
e2FsPUR9ZWxzZXthbD1jW0U+PjJdfDB9YWg9YWY7YWk9MDthaj0wO2FrPWFbYWxdfDB9d2hpbGUo
MSl7ZG97aWYoKGFpfDApPT0oYWt8MCkpe1U9Y1tmPj4yXXwwO2NbZj4+Ml09VSsxO2FbVV09bjtV
PWFqKzF8MDtWPWFbQ118MDtNPVYmMjU1O2lmKChNJjF8MCk9PTApe2FtPU0+Pj4xfWVsc2V7YW09
Y1tGPj4yXXwwfWlmKFU+Pj4wPj1hbT4+PjApe2FuPWFrO2FvPVU7YXA9MDticmVha31NPShWJjEp
PT0wO2lmKE0pe2FxPUR9ZWxzZXthcT1jW0U+PjJdfDB9aWYoKGFbYXErVXwwXXwwKT09MTI3KXth
bj0tMTthbz1VO2FwPTA7YnJlYWt9aWYoTSl7YXI9RH1lbHNle2FyPWNbRT4+Ml18MH1hbj1hW2Fy
K1V8MF18MDthbz1VO2FwPTB9ZWxzZXthbj1hazthbz1hajthcD1haX19d2hpbGUoMCk7VT1haC0x
fDA7TT1hW1VdfDA7Vj1jW2Y+PjJdfDA7Y1tmPj4yXT1WKzE7YVtWXT1NO2lmKChVfDApPT0oSXww
KSl7YnJlYWt9ZWxzZXthaD1VO2FpPWFwKzF8MDthaj1hbzthaz1hbn19fUo9Y1tmPj4yXXwwO2lm
KChTfDApPT0oSnwwKSl7SD1JO2JyZWFrIEwxNTgwfVc9Si0xfDA7aWYoUz4+PjA8Vz4+PjApe2Fz
PVM7YXQ9V31lbHNle0g9STticmVhayBMMTU4MH13aGlsZSgxKXtXPWFbYXNdfDA7YVthc109YVth
dF18MDthW2F0XT1XO1c9YXMrMXwwO0o9YXQtMXwwO2lmKFc+Pj4wPEo+Pj4wKXthcz1XO2F0PUp9
ZWxzZXtIPUk7YnJlYWt9fWJyZWFrfTtkZWZhdWx0OntIPUd9fX13aGlsZSgwKTtJPWgrMXwwO2lm
KEk+Pj4wPDQpe0c9SDtoPUl9ZWxzZXticmVha319aD1hW3RdfDA7dD1oJjI1NTtIPSh0JjF8MCk9
PTA7aWYoSCl7YXU9dD4+PjF9ZWxzZXthdT1jW3c+PjJdfDB9aWYoYXU+Pj4wPjEpe2lmKChoJjEp
PT0wKXthdj11O2F3PXV9ZWxzZXt1PWNbdj4+Ml18MDthdj11O2F3PXV9aWYoSCl7YXg9dD4+PjF9
ZWxzZXtheD1jW3c+PjJdfDB9dz1hditheHwwO2F4PWNbZj4+Ml18MDthdj1hdysxfDA7aWYoKGF2
fDApPT0od3wwKSl7YXk9YXh9ZWxzZXthdz1heDtheD1hdjt3aGlsZSgxKXthW2F3XT1hW2F4XXww
O2F2PWF3KzF8MDt0PWF4KzF8MDtpZigodHwwKT09KHd8MCkpe2F5PWF2O2JyZWFrfWVsc2V7YXc9
YXY7YXg9dH19fWNbZj4+Ml09YXl9c3dpdGNoKGcmMTc2fDApe2Nhc2UgMTY6e3JldHVybn07Y2Fz
ZSAzMjp7Y1tlPj4yXT1jW2Y+PjJdO3JldHVybn07ZGVmYXVsdDp7Y1tlPj4yXT1kO3JldHVybn19
fWZ1bmN0aW9uIGg3KGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGg4KGEp
e2E9YXwwO2RlKGF8MCk7cmV0dXJufWZ1bmN0aW9uIGg5KGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9
ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAs
RT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxT
PTAsVD0wLFU9MCxWPTAsVz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTA7ZT1p
O2k9aSs2NHwwO2w9ZjtmPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1l
fDA7bT1lKzE2fDA7bj1lKzI0fDA7bz1lKzMyfDA7cD1lKzQwfDA7cT1lKzQ4fDA7cj1xO3M9aTtp
PWkrMTJ8MDtpPWkrNz4+Mzw8Mzt0PXM7dT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7
aT1pKzR8MDtpPWkrNz4+Mzw8Mzt4PWk7aT1pKzEwMHwwO2k9aSs3Pj4zPDwzO3k9aTtpPWkrNHww
O2k9aSs3Pj4zPDwzO3o9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO0E9aTtpPWkrNHwwO2k9aSs3Pj4z
PDwzO2VqKG0saCk7Qj1tfDA7Qz1jW0I+PjJdfDA7aWYoKGNbMzkyNF18MCkhPS0xKXtjW2w+PjJd
PTE1Njk2O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTY5NixsLDk2KX1sPShjWzM5MjVd
fDApLTF8MDtEPWNbQys4Pj4yXXwwO2Rve2lmKChjW0MrMTI+PjJdfDApLUQ+PjI+Pj4wPmw+Pj4w
KXtFPWNbRCsobDw8Mik+PjJdfDA7aWYoKEV8MCk9PTApe2JyZWFrfUY9RTtHPWs7SD1rO0k9YVtI
XXwwO0o9SSYyNTU7aWYoKEomMXwwKT09MCl7Sz1KPj4+MX1lbHNle0s9Y1trKzQ+PjJdfDB9aWYo
KEt8MCk9PTApe0w9MH1lbHNle2lmKChJJjEpPT0wKXtNPUcrMXwwfWVsc2V7TT1jW2srOD4+Ml18
MH1JPWFbTV18MDtMPUk8PDI0Pj4yND09KGJfW2NbKGNbRT4+Ml18MCkrMjg+PjJdJjMxXShGLDQ1
KXwwKTw8MjQ+PjI0fWskKHJ8MCwwLDEyKTtrJCh0fDAsMCwxMik7ayQodnwwLDAsMTIpO2g1KGcs
TCxtLG4sbyxwLHEscyx1LHcpO0U9eHwwO0k9YVtIXXwwO0o9SSYyNTU7Tj0oSiYxfDApPT0wO2lm
KE4pe089Sj4+PjF9ZWxzZXtPPWNbays0Pj4yXXwwfVA9Y1t3Pj4yXXwwO2lmKChPfDApPihQfDAp
KXtpZihOKXtRPUo+Pj4xfWVsc2V7UT1jW2srND4+Ml18MH1KPWRbdl18MDtpZigoSiYxfDApPT0w
KXtSPUo+Pj4xfWVsc2V7Uj1jW3UrND4+Ml18MH1KPWRbdF18MDtpZigoSiYxfDApPT0wKXtTPUo+
Pj4xfWVsc2V7Uz1jW3MrND4+Ml18MH1UPShRLVA8PDF8MSkrUitTfDB9ZWxzZXtKPWRbdl18MDtp
ZigoSiYxfDApPT0wKXtVPUo+Pj4xfWVsc2V7VT1jW3UrND4+Ml18MH1KPWRbdF18MDtpZigoSiYx
fDApPT0wKXtWPUo+Pj4xfWVsc2V7Vj1jW3MrND4+Ml18MH1UPVUrMitWfDB9Sj1UK1B8MDtkb3tp
ZihKPj4+MD4xMDApe049a0ooSil8MDtpZigoTnwwKSE9MCl7Vz1OO1g9TjtZPUk7YnJlYWt9a1go
KTtXPTA7WD0wO1k9YVtIXXwwfWVsc2V7Vz1FO1g9MDtZPUl9fXdoaWxlKDApO2lmKChZJjEpPT0w
KXtaPUcrMXwwO189RysxfDB9ZWxzZXtJPWNbays4Pj4yXXwwO1o9STtfPUl9ST1ZJjI1NTtpZigo
SSYxfDApPT0wKXskPUk+Pj4xfWVsc2V7JD1jW2srND4+Ml18MH1oNihXLHkseixjW2grND4+Ml18
MCxfLForJHwwLEYsTCxuLGFbb118MCxhW3BdfDAscSxzLHUsUCk7Y1tBPj4yXT1jW2Y+PjJdO2Y5
KGIsQSxXLGNbeT4+Ml18MCxjW3o+PjJdfDAsaCxqKTtpZigoWHwwKT09MCl7ZFAodSk7ZFAocyk7
ZFAocSk7YWE9Y1tCPj4yXXwwO2FiPWFhfDA7YWM9ZHooYWIpfDA7aT1lO3JldHVybn1rSyhYKTtk
UCh1KTtkUChzKTtkUChxKTthYT1jW0I+PjJdfDA7YWI9YWF8MDthYz1keihhYil8MDtpPWU7cmV0
dXJufX13aGlsZSgwKTtlPWJPKDQpfDA7a3EoZSk7YmwoZXwwLDgxNzYsMTM0KX1mdW5jdGlvbiBp
YShiLGUsZixnLGosayxsKXtiPWJ8MDtlPWV8MDtmPWZ8MDtnPWd8MDtqPWp8MDtrPWt8MDtsPSts
O3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAs
ej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxO
PTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9MCxXPTAsWD0wO2U9aTtpPWkrNTc2fDA7
bT1mO2Y9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2NbZj4+Ml09Y1ttPj4yXTttPWV8MDtuPWUrMTIw
fDA7bz1lKzUyOHwwO3A9ZSs1MzZ8MDtxPWUrNTQ0fDA7cj1lKzU1MnwwO3M9ZSs1NjB8MDt0PXM7
dT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7eD13
O3k9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3o9aTtpPWkrNDAwfDA7QT1pO2k9aSs0fDA7aT1pKzc+
PjM8PDM7Qj1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7Qz1pO2k9aSs0fDA7aT1pKzc+PjM8PDM7RD1l
KzE2fDA7Y1tuPj4yXT1EO0U9ZSsxMjh8MDtGPWFaKER8MCwxMDAsMTM2MCwoRD1pLGk9aSs4fDAs
aFtEPj4zXT1sLEQpfDApfDA7aT1EO2Rve2lmKEY+Pj4wPjk5KXtkb3tpZigoYVsxNjI2NF18MCk9
PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFrfWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdo
aWxlKDApO0c9Z2gobixjWzI5NThdfDAsMTM2MCwoRD1pLGk9aSs4fDAsaFtEPj4zXT1sLEQpfDAp
fDA7aT1EO0g9Y1tuPj4yXXwwO2lmKChIfDApPT0wKXtrWCgpO0k9Y1tuPj4yXXwwfWVsc2V7ST1I
fUg9a0ooRzw8Mil8MDtKPUg7aWYoKEh8MCkhPTApe0s9SjtMPUc7TT1JO049SjticmVha31rWCgp
O0s9SjtMPUc7TT1JO049Sn1lbHNle0s9RTtMPUY7TT0wO049MH19d2hpbGUoMCk7ZWoobyxqKTtG
PW98MDtFPWNbRj4+Ml18MDtpZigoY1szOTIyXXwwKSE9LTEpe2NbbT4+Ml09MTU2ODg7Y1ttKzQ+
PjJdPTEyO2NbbSs4Pj4yXT0wO2RXKDE1Njg4LG0sOTYpfW09KGNbMzkyM118MCktMXwwO0k9Y1tF
Kzg+PjJdfDA7ZG97aWYoKGNbRSsxMj4+Ml18MCktST4+Mj4+PjA+bT4+PjApe0Q9Y1tJKyhtPDwy
KT4+Ml18MDtpZigoRHwwKT09MCl7YnJlYWt9Sj1EO0c9Y1tuPj4yXXwwO0g9RytMfDA7Tz1jWyhj
W0Q+PjJdfDApKzQ4Pj4yXXwwO2NhW08mMTVdKEosRyxILEspfDA7aWYoKEx8MCk9PTApe1A9MH1l
bHNle1A9KGFbY1tuPj4yXXwwXXwwKT09NDV9ayQodHwwLDAsMTIpO2skKHZ8MCwwLDEyKTtrJCh4
fDAsMCwxMik7aWIoZyxQLG8scCxxLHIscyx1LHcseSk7SD16fDA7Rz1jW3k+PjJdfDA7aWYoKEx8
MCk+KEd8MCkpe089ZFt4XXwwO2lmKChPJjF8MCk9PTApe1E9Tz4+PjF9ZWxzZXtRPWNbdys0Pj4y
XXwwfU89ZFt2XXwwO2lmKChPJjF8MCk9PTApe1I9Tz4+PjF9ZWxzZXtSPWNbdSs0Pj4yXXwwfVM9
KEwtRzw8MXwxKStRK1J8MH1lbHNle089ZFt4XXwwO2lmKChPJjF8MCk9PTApe1Q9Tz4+PjF9ZWxz
ZXtUPWNbdys0Pj4yXXwwfU89ZFt2XXwwO2lmKChPJjF8MCk9PTApe1U9Tz4+PjF9ZWxzZXtVPWNb
dSs0Pj4yXXwwfVM9VCsyK1V8MH1PPVMrR3wwO2Rve2lmKE8+Pj4wPjEwMCl7RD1rSihPPDwyKXww
O1Y9RDtpZigoRHwwKSE9MCl7Vz1WO1g9VjticmVha31rWCgpO1c9VjtYPVZ9ZWxzZXtXPUg7WD0w
fX13aGlsZSgwKTtpYyhXLEEsQixjW2orND4+Ml18MCxLLEsrKEw8PDIpfDAsSixQLHAsY1txPj4y
XXwwLGNbcj4+Ml18MCxzLHUsdyxHKTtjW0M+PjJdPWNbZj4+Ml07Z3EoYixDLFcsY1tBPj4yXXww
LGNbQj4+Ml18MCxqLGspO2lmKChYfDApIT0wKXtrSyhYKX1lZSh3KTtlZSh1KTtkUChzKTtIPWNb
Rj4+Ml18MDtkeihIKXwwO2lmKChOfDApIT0wKXtrSyhOKX1pZigoTXwwKT09MCl7aT1lO3JldHVy
bn1rSyhNKTtpPWU7cmV0dXJufX13aGlsZSgwKTtlPWJPKDQpfDA7a3EoZSk7YmwoZXwwLDgxNzYs
MTM0KX1mdW5jdGlvbiBpYihiLGQsZSxmLGcsaCxqLGssbCxtKXtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDtsPWx8MDttPW18MDt2YXIgbj0wLG89MCxwPTAs
cT0wLHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsRD0wLEU9MCxG
PTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9
MCxVPTA7bj1pO2k9aSs0MHwwO289bnwwO3A9bisxNnwwO3E9biszMnwwO3I9cTtzPWk7aT1pKzEy
fDA7aT1pKzc+PjM8PDM7dD1zO3U9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzEy
fDA7aT1pKzc+PjM8PDM7eD13O3k9aTtpPWkrMTJ8MDtpPWkrNz4+Mzw8Mzt6PXk7QT1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO0I9QTtEPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztFPUQ7Rj1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO0c9RjtIPWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztJPUg7Sj1pO2k9aSsx
MnwwO2k9aSs3Pj4zPDwzO0s9SjtMPWk7aT1pKzEyfDA7aT1pKzc+PjM8PDM7TT1MO049aTtpPWkr
MTJ8MDtpPWkrNz4+Mzw8MztPPU47UD1jW2U+PjJdfDA7aWYoYil7aWYoKGNbNDA0MF18MCkhPS0x
KXtjW3A+PjJdPTE2MTYwO2NbcCs0Pj4yXT0xMjtjW3ArOD4+Ml09MDtkVygxNjE2MCxwLDk2KX1w
PShjWzQwNDFdfDApLTF8MDtiPWNbUCs4Pj4yXXwwO2lmKChjW1ArMTI+PjJdfDApLWI+PjI+Pj4w
PD1wPj4+MCl7UT1iTyg0KXwwO1I9UTtrcShSKTtibChRfDAsODE3NiwxMzQpfWU9Y1tiKyhwPDwy
KT4+Ml18MDtpZigoZXwwKT09MCl7UT1iTyg0KXwwO1I9UTtrcShSKTtibChRfDAsODE3NiwxMzQp
fVE9ZTtSPWNbZT4+Ml18MDtpZihkKXtiWltjW1IrNDQ+PjJdJjEyN10ocixRKTtyPWY7Qz1jW3E+
PjJdfDA7YVtyXT1DJjI1NTtDPUM+Pjg7YVtyKzF8MF09QyYyNTU7Qz1DPj44O2FbcisyfDBdPUMm
MjU1O0M9Qz4+ODthW3IrM3wwXT1DJjI1NTtiWltjWyhjW2U+PjJdfDApKzMyPj4yXSYxMjddKHMs
USk7cj1sO2lmKChhW3JdJjEpPT0wKXtjW2wrND4+Ml09MDthW3JdPTB9ZWxzZXtjW2NbbCs4Pj4y
XT4+Ml09MDtjW2wrND4+Ml09MH1leihsLDApO2Nbcj4+Ml09Y1t0Pj4yXTtjW3IrND4+Ml09Y1t0
KzQ+PjJdO2Nbcis4Pj4yXT1jW3QrOD4+Ml07ayQodHwwLDAsMTIpO2VlKHMpfWVsc2V7YlpbY1tS
KzQwPj4yXSYxMjddKHYsUSk7dj1mO0M9Y1t1Pj4yXXwwO2Fbdl09QyYyNTU7Qz1DPj44O2Fbdisx
fDBdPUMmMjU1O0M9Qz4+ODthW3YrMnwwXT1DJjI1NTtDPUM+Pjg7YVt2KzN8MF09QyYyNTU7Ylpb
Y1soY1tlPj4yXXwwKSsyOD4+Ml0mMTI3XSh3LFEpO3Y9bDtpZigoYVt2XSYxKT09MCl7Y1tsKzQ+
PjJdPTA7YVt2XT0wfWVsc2V7Y1tjW2wrOD4+Ml0+PjJdPTA7Y1tsKzQ+PjJdPTB9ZXoobCwwKTtj
W3Y+PjJdPWNbeD4+Ml07Y1t2KzQ+PjJdPWNbeCs0Pj4yXTtjW3YrOD4+Ml09Y1t4Kzg+PjJdO2sk
KHh8MCwwLDEyKTtlZSh3KX13PWU7Y1tnPj4yXT1iMFtjWyhjW3c+PjJdfDApKzEyPj4yXSYxMjdd
KFEpfDA7Y1toPj4yXT1iMFtjWyhjW3c+PjJdfDApKzE2Pj4yXSYxMjddKFEpfDA7YlpbY1soY1tl
Pj4yXXwwKSsyMD4+Ml0mMTI3XSh5LFEpO3g9ajtpZigoYVt4XSYxKT09MCl7YVtqKzF8MF09MDth
W3hdPTB9ZWxzZXthW2Nbais4Pj4yXXwwXT0wO2Nbais0Pj4yXT0wfWQkKGosMCk7Y1t4Pj4yXT1j
W3o+PjJdO2NbeCs0Pj4yXT1jW3orND4+Ml07Y1t4Kzg+PjJdPWNbeis4Pj4yXTtrJCh6fDAsMCwx
Mik7ZFAoeSk7YlpbY1soY1tlPj4yXXwwKSsyND4+Ml0mMTI3XShBLFEpO2U9aztpZigoYVtlXSYx
KT09MCl7Y1trKzQ+PjJdPTA7YVtlXT0wfWVsc2V7Y1tjW2srOD4+Ml0+PjJdPTA7Y1trKzQ+PjJd
PTB9ZXooaywwKTtjW2U+PjJdPWNbQj4+Ml07Y1tlKzQ+PjJdPWNbQis0Pj4yXTtjW2UrOD4+Ml09
Y1tCKzg+PjJdO2skKEJ8MCwwLDEyKTtlZShBKTtTPWIwW2NbKGNbdz4+Ml18MCkrMzY+PjJdJjEy
N10oUSl8MDtjW20+PjJdPVM7aT1uO3JldHVybn1lbHNle2lmKChjWzQwNDJdfDApIT0tMSl7Y1tv
Pj4yXT0xNjE2ODtjW28rND4+Ml09MTI7Y1tvKzg+PjJdPTA7ZFcoMTYxNjgsbyw5Nil9bz0oY1s0
MDQzXXwwKS0xfDA7UT1jW1ArOD4+Ml18MDtpZigoY1tQKzEyPj4yXXwwKS1RPj4yPj4+MDw9bz4+
PjApe1Q9Yk8oNCl8MDtVPVQ7a3EoVSk7YmwoVHwwLDgxNzYsMTM0KX1QPWNbUSsobzw8Mik+PjJd
fDA7aWYoKFB8MCk9PTApe1Q9Yk8oNCl8MDtVPVQ7a3EoVSk7YmwoVHwwLDgxNzYsMTM0KX1UPVA7
VT1jW1A+PjJdfDA7aWYoZCl7YlpbY1tVKzQ0Pj4yXSYxMjddKEUsVCk7RT1mO0M9Y1tEPj4yXXww
O2FbRV09QyYyNTU7Qz1DPj44O2FbRSsxfDBdPUMmMjU1O0M9Qz4+ODthW0UrMnwwXT1DJjI1NTtD
PUM+Pjg7YVtFKzN8MF09QyYyNTU7YlpbY1soY1tQPj4yXXwwKSszMj4+Ml0mMTI3XShGLFQpO0U9
bDtpZigoYVtFXSYxKT09MCl7Y1tsKzQ+PjJdPTA7YVtFXT0wfWVsc2V7Y1tjW2wrOD4+Ml0+PjJd
PTA7Y1tsKzQ+PjJdPTB9ZXoobCwwKTtjW0U+PjJdPWNbRz4+Ml07Y1tFKzQ+PjJdPWNbRys0Pj4y
XTtjW0UrOD4+Ml09Y1tHKzg+PjJdO2skKEd8MCwwLDEyKTtlZShGKX1lbHNle2JaW2NbVSs0MD4+
Ml0mMTI3XShJLFQpO0k9ZjtDPWNbSD4+Ml18MDthW0ldPUMmMjU1O0M9Qz4+ODthW0krMXwwXT1D
JjI1NTtDPUM+Pjg7YVtJKzJ8MF09QyYyNTU7Qz1DPj44O2FbSSszfDBdPUMmMjU1O2JaW2NbKGNb
UD4+Ml18MCkrMjg+PjJdJjEyN10oSixUKTtJPWw7aWYoKGFbSV0mMSk9PTApe2NbbCs0Pj4yXT0w
O2FbSV09MH1lbHNle2NbY1tsKzg+PjJdPj4yXT0wO2NbbCs0Pj4yXT0wfWV6KGwsMCk7Y1tJPj4y
XT1jW0s+PjJdO2NbSSs0Pj4yXT1jW0srND4+Ml07Y1tJKzg+PjJdPWNbSys4Pj4yXTtrJChLfDAs
MCwxMik7ZWUoSil9Sj1QO2NbZz4+Ml09YjBbY1soY1tKPj4yXXwwKSsxMj4+Ml0mMTI3XShUKXww
O2NbaD4+Ml09YjBbY1soY1tKPj4yXXwwKSsxNj4+Ml0mMTI3XShUKXwwO2JaW2NbKGNbUD4+Ml18
MCkrMjA+PjJdJjEyN10oTCxUKTtoPWo7aWYoKGFbaF0mMSk9PTApe2FbaisxfDBdPTA7YVtoXT0w
fWVsc2V7YVtjW2orOD4+Ml18MF09MDtjW2orND4+Ml09MH1kJChqLDApO2NbaD4+Ml09Y1tNPj4y
XTtjW2grND4+Ml09Y1tNKzQ+PjJdO2NbaCs4Pj4yXT1jW00rOD4+Ml07ayQoTXwwLDAsMTIpO2RQ
KEwpO2JaW2NbKGNbUD4+Ml18MCkrMjQ+PjJdJjEyN10oTixUKTtQPWs7aWYoKGFbUF0mMSk9PTAp
e2Nbays0Pj4yXT0wO2FbUF09MH1lbHNle2NbY1trKzg+PjJdPj4yXT0wO2Nbays0Pj4yXT0wfWV6
KGssMCk7Y1tQPj4yXT1jW08+PjJdO2NbUCs0Pj4yXT1jW08rND4+Ml07Y1tQKzg+PjJdPWNbTys4
Pj4yXTtrJChPfDAsMCwxMik7ZWUoTik7Uz1iMFtjWyhjW0o+PjJdfDApKzM2Pj4yXSYxMjddKFQp
fDA7Y1ttPj4yXT1TO2k9bjtyZXR1cm59fWZ1bmN0aW9uIGljKGIsZCxlLGYsZyxoLGksaixrLGws
bSxuLG8scCxxKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8
MDtrPWt8MDtsPWx8MDttPW18MDtuPW58MDtvPW98MDtwPXB8MDtxPXF8MDt2YXIgcj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9
MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MCxPPTAsUD0wLFE9MCxSPTAsUz0wLFQ9MCxVPTAsVj0w
LFc9MCxYPTAsWT0wLFo9MCxfPTAsJD0wLGFhPTAsYWI9MCxhYz0wLGFkPTAsYWU9MCxhZj0wLGFn
PTAsYWg9MCxhaT0wLGFqPTAsYWs9MCxhbD0wLGFtPTAsYW49MCxhbz0wLGFwPTAsYXE9MCxhcj0w
LGFzPTAsYXQ9MCxhdT0wLGF2PTAsYXc9MDtjW2U+PjJdPWI7cj1pO3M9cDt0PXArNHwwO3U9cCs4
fDA7cD1vO3Y9KGYmNTEyfDApPT0wO3c9bys0fDA7eD1vKzh8MDtvPWk7eT0ocXwwKT4wO3o9bjtB
PW4rMXwwO0I9bis4fDA7Qz1uKzR8MDtuPWc7Zz0wO3doaWxlKDEpe0wxOTAxOmRve3N3aXRjaChh
W2srZ3wwXXwwKXtjYXNlIDA6e2NbZD4+Ml09Y1tlPj4yXTtEPW47YnJlYWt9O2Nhc2UgMTp7Y1tk
Pj4yXT1jW2U+PjJdO0U9Yl9bY1soY1tyPj4yXXwwKSs0ND4+Ml0mMzFdKGksMzIpfDA7Rj1jW2U+
PjJdfDA7Y1tlPj4yXT1GKzQ7Y1tGPj4yXT1FO0Q9bjticmVha307Y2FzZSAzOntFPWFbc118MDtG
PUUmMjU1O2lmKChGJjF8MCk9PTApe0c9Rj4+PjF9ZWxzZXtHPWNbdD4+Ml18MH1pZigoR3wwKT09
MCl7RD1uO2JyZWFrIEwxOTAxfWlmKChFJjEpPT0wKXtIPXR9ZWxzZXtIPWNbdT4+Ml18MH1FPWNb
SD4+Ml18MDtGPWNbZT4+Ml18MDtjW2U+PjJdPUYrNDtjW0Y+PjJdPUU7RD1uO2JyZWFrfTtjYXNl
IDI6e0U9YVtwXXwwO0Y9RSYyNTU7ST0oRiYxfDApPT0wO2lmKEkpe0o9Rj4+PjF9ZWxzZXtKPWNb
dz4+Ml18MH1pZigoSnwwKT09MHx2KXtEPW47YnJlYWsgTDE5MDF9aWYoKEUmMSk9PTApe0s9dztM
PXc7TT13fWVsc2V7RT1jW3g+PjJdfDA7Sz1FO0w9RTtNPUV9aWYoSSl7Tj1GPj4+MX1lbHNle049
Y1t3Pj4yXXwwfUY9SysoTjw8Mil8MDtJPWNbZT4+Ml18MDtpZigoTHwwKT09KEZ8MCkpe089SX1l
bHNle0U9KEsrKE4tMTw8MikrKC1NfDApfDApPj4+MjtQPUw7UT1JO3doaWxlKDEpe2NbUT4+Ml09
Y1tQPj4yXTtSPVArNHwwO2lmKChSfDApPT0oRnwwKSl7YnJlYWt9UD1SO1E9USs0fDB9Tz1JKyhF
KzE8PDIpfDB9Y1tlPj4yXT1PO0Q9bjticmVha307Y2FzZSA0OntRPWNbZT4+Ml18MDtQPWo/bis0
fDA6bjtGPVA7d2hpbGUoMSl7aWYoRj4+PjA+PWg+Pj4wKXticmVha31pZihiMVtjWyhjW28+PjJd
fDApKzEyPj4yXSY2M10oaSwyMDQ4LGNbRj4+Ml18MCl8MCl7Rj1GKzR8MH1lbHNle2JyZWFrfX1p
Zih5KXtpZihGPj4+MD5QPj4+MCl7RT1GO0k9cTtkb3tFPUUtNHwwO1I9Y1tFPj4yXXwwO1M9Y1tl
Pj4yXXwwO2NbZT4+Ml09Uys0O2NbUz4+Ml09UjtJPUktMXwwO1Q9KEl8MCk+MDt9d2hpbGUoRT4+
PjA+UD4+PjAmVCk7aWYoVCl7VT1JO1Y9RTtXPTE2MzB9ZWxzZXtYPTA7WT1JO1o9RX19ZWxzZXtV
PXE7Vj1GO1c9MTYzMH1pZigoV3wwKT09MTYzMCl7Vz0wO1g9Yl9bY1soY1tyPj4yXXwwKSs0ND4+
Ml0mMzFdKGksNDgpfDA7WT1VO1o9Vn1SPWNbZT4+Ml18MDtjW2U+PjJdPVIrNDtpZigoWXwwKT4w
KXtTPVk7Xz1SO3doaWxlKDEpe2NbXz4+Ml09WDskPVMtMXwwO2FhPWNbZT4+Ml18MDtjW2U+PjJd
PWFhKzQ7aWYoKCR8MCk+MCl7Uz0kO189YWF9ZWxzZXthYj1hYTticmVha319fWVsc2V7YWI9Un1j
W2FiPj4yXT1sO2FjPVp9ZWxzZXthYz1GfWlmKChhY3wwKT09KFB8MCkpe189Yl9bY1soY1tyPj4y
XXwwKSs0ND4+Ml0mMzFdKGksNDgpfDA7Uz1jW2U+PjJdfDA7Y1tlPj4yXT1TKzQ7Y1tTPj4yXT1f
fWVsc2V7Xz1hW3pdfDA7Uz1fJjI1NTtpZigoUyYxfDApPT0wKXthZD1TPj4+MX1lbHNle2FkPWNb
Qz4+Ml18MH1pZigoYWR8MCk9PTApe2FlPWFjO2FmPTA7YWc9MDthaD0tMX1lbHNle2lmKChfJjEp
PT0wKXthaT1BfWVsc2V7YWk9Y1tCPj4yXXwwfWFlPWFjO2FmPTA7YWc9MDthaD1hW2FpXXwwfXdo
aWxlKDEpe2Rve2lmKChhZnwwKT09KGFofDApKXtfPWNbZT4+Ml18MDtjW2U+PjJdPV8rNDtjW18+
PjJdPW07Xz1hZysxfDA7Uz1hW3pdfDA7RT1TJjI1NTtpZigoRSYxfDApPT0wKXthaj1FPj4+MX1l
bHNle2FqPWNbQz4+Ml18MH1pZihfPj4+MD49YWo+Pj4wKXthaz1haDthbD1fO2FtPTA7YnJlYWt9
RT0oUyYxKT09MDtpZihFKXthbj1BfWVsc2V7YW49Y1tCPj4yXXwwfWlmKChhW2FuK198MF18MCk9
PTEyNyl7YWs9LTE7YWw9XzthbT0wO2JyZWFrfWlmKEUpe2FvPUF9ZWxzZXthbz1jW0I+PjJdfDB9
YWs9YVthbytffDBdfDA7YWw9XzthbT0wfWVsc2V7YWs9YWg7YWw9YWc7YW09YWZ9fXdoaWxlKDAp
O189YWUtNHwwO0U9Y1tfPj4yXXwwO1M9Y1tlPj4yXXwwO2NbZT4+Ml09Uys0O2NbUz4+Ml09RTtp
ZigoX3wwKT09KFB8MCkpe2JyZWFrfWVsc2V7YWU9XzthZj1hbSsxfDA7YWc9YWw7YWg9YWt9fX1G
PWNbZT4+Ml18MDtpZigoUXwwKT09KEZ8MCkpe0Q9UDticmVhayBMMTkwMX1SPUYtNHwwO2lmKFE+
Pj4wPFI+Pj4wKXthcD1RO2FxPVJ9ZWxzZXtEPVA7YnJlYWsgTDE5MDF9d2hpbGUoMSl7Uj1jW2Fw
Pj4yXXwwO2NbYXA+PjJdPWNbYXE+PjJdO2NbYXE+PjJdPVI7Uj1hcCs0fDA7Rj1hcS00fDA7aWYo
Uj4+PjA8Rj4+PjApe2FwPVI7YXE9Rn1lbHNle0Q9UDticmVha319YnJlYWt9O2RlZmF1bHQ6e0Q9
bn19fXdoaWxlKDApO1A9ZysxfDA7aWYoUD4+PjA8NCl7bj1EO2c9UH1lbHNle2JyZWFrfX1nPWFb
c118MDtzPWcmMjU1O0Q9KHMmMXwwKT09MDtpZihEKXthcj1zPj4+MX1lbHNle2FyPWNbdD4+Ml18
MH1pZihhcj4+PjA+MSl7aWYoKGcmMSk9PTApe2FzPXQ7YXQ9dDthdT10fWVsc2V7Zz1jW3U+PjJd
fDA7YXM9ZzthdD1nO2F1PWd9aWYoRCl7YXY9cz4+PjF9ZWxzZXthdj1jW3Q+PjJdfDB9dD1hcyso
YXY8PDIpfDA7cz1jW2U+PjJdfDA7RD1hdCs0fDA7aWYoKER8MCk9PSh0fDApKXthdz1zfWVsc2V7
YXQ9KChhcysoYXYtMjw8MikrKC1hdXwwKXwwKT4+PjIpKzF8MDthdT1zO2F2PUQ7d2hpbGUoMSl7
Y1thdT4+Ml09Y1thdj4+Ml07RD1hdis0fDA7aWYoKER8MCk9PSh0fDApKXticmVha31lbHNle2F1
PWF1KzR8MDthdj1EfX1hdz1zKyhhdDw8Mil8MH1jW2U+PjJdPWF3fXN3aXRjaChmJjE3NnwwKXtj
YXNlIDMyOntjW2Q+PjJdPWNbZT4+Ml07cmV0dXJufTtjYXNlIDE2OntyZXR1cm59O2RlZmF1bHQ6
e2NbZD4+Ml09YjtyZXR1cm59fX1mdW5jdGlvbiBpZChhKXthPWF8MDtkZShhfDApO2tTKGEpO3Jl
dHVybn1mdW5jdGlvbiBpZShhKXthPWF8MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBpZyhiLGQs
ZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFyIGY9MDtpZigoYVtkXSYxKT09MCl7Zj1kKzF8MH1lbHNl
e2Y9Y1tkKzg+PjJdfDB9ZD1hOChmfDAsMjAwKXwwO3JldHVybiBkPj4+KCgoZHwwKSE9LTF8MCk+
Pj4wKXwwfWZ1bmN0aW9uIGloKGIsZSxmLGcsaCxqLGspe2I9YnwwO2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2o9anwwO2s9a3wwO3ZhciBsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAscz0wLHQ9
MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxHPTAsSD0w
LEk9MCxKPTAsSz0wLEw9MCxNPTAsTj0wLE89MCxQPTAsUT0wLFI9MCxTPTAsVD0wLFU9MCxWPTAs
Vz0wLFg9MCxZPTAsWj0wLF89MCwkPTAsYWE9MCxhYj0wLGFjPTA7ZT1pO2k9aSs2NHwwO2w9Zjtm
PWk7aT1pKzR8MDtpPWkrNz4+Mzw8MztjW2Y+PjJdPWNbbD4+Ml07bD1lfDA7bT1lKzE2fDA7bj1l
KzI0fDA7bz1lKzMyfDA7cD1lKzQwfDA7cT1lKzQ4fDA7cj1xO3M9aTtpPWkrMTJ8MDtpPWkrNz4+
Mzw8Mzt0PXM7dT1pO2k9aSsxMnwwO2k9aSs3Pj4zPDwzO3Y9dTt3PWk7aT1pKzR8MDtpPWkrNz4+
Mzw8Mzt4PWk7aT1pKzQwMHwwO3k9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO3o9aTtpPWkrNHwwO2k9
aSs3Pj4zPDwzO0E9aTtpPWkrNHwwO2k9aSs3Pj4zPDwzO2VqKG0saCk7Qj1tfDA7Qz1jW0I+PjJd
fDA7aWYoKGNbMzkyMl18MCkhPS0xKXtjW2w+PjJdPTE1Njg4O2NbbCs0Pj4yXT0xMjtjW2wrOD4+
Ml09MDtkVygxNTY4OCxsLDk2KX1sPShjWzM5MjNdfDApLTF8MDtEPWNbQys4Pj4yXXwwO2Rve2lm
KChjW0MrMTI+PjJdfDApLUQ+PjI+Pj4wPmw+Pj4wKXtFPWNbRCsobDw8Mik+PjJdfDA7aWYoKEV8
MCk9PTApe2JyZWFrfUY9RTtHPWs7SD1hW0ddfDA7ST1IJjI1NTtpZigoSSYxfDApPT0wKXtKPUk+
Pj4xfWVsc2V7Sj1jW2srND4+Ml18MH1pZigoSnwwKT09MCl7Sz0wfWVsc2V7aWYoKEgmMSk9PTAp
e0w9ays0fDB9ZWxzZXtMPWNbays4Pj4yXXwwfUg9Y1tMPj4yXXwwO0s9KEh8MCk9PShiX1tjWyhj
W0U+PjJdfDApKzQ0Pj4yXSYzMV0oRiw0NSl8MCl9ayQocnwwLDAsMTIpO2skKHR8MCwwLDEyKTtr
JCh2fDAsMCwxMik7aWIoZyxLLG0sbixvLHAscSxzLHUsdyk7RT14fDA7SD1hW0ddfDA7ST1IJjI1
NTtNPShJJjF8MCk9PTA7aWYoTSl7Tj1JPj4+MX1lbHNle049Y1trKzQ+PjJdfDB9Tz1jW3c+PjJd
fDA7aWYoKE58MCk+KE98MCkpe2lmKE0pe1A9ST4+PjF9ZWxzZXtQPWNbays0Pj4yXXwwfUk9ZFt2
XXwwO2lmKChJJjF8MCk9PTApe1E9ST4+PjF9ZWxzZXtRPWNbdSs0Pj4yXXwwfUk9ZFt0XXwwO2lm
KChJJjF8MCk9PTApe1I9ST4+PjF9ZWxzZXtSPWNbcys0Pj4yXXwwfVM9KFAtTzw8MXwxKStRK1J8
MH1lbHNle0k9ZFt2XXwwO2lmKChJJjF8MCk9PTApe1Q9ST4+PjF9ZWxzZXtUPWNbdSs0Pj4yXXww
fUk9ZFt0XXwwO2lmKChJJjF8MCk9PTApe1U9ST4+PjF9ZWxzZXtVPWNbcys0Pj4yXXwwfVM9VCsy
K1V8MH1JPVMrT3wwO2Rve2lmKEk+Pj4wPjEwMCl7TT1rSihJPDwyKXwwO1Y9TTtpZigoTXwwKSE9
MCl7Vz1WO1g9VjtZPUg7YnJlYWt9a1goKTtXPVY7WD1WO1k9YVtHXXwwfWVsc2V7Vz1FO1g9MDtZ
PUh9fXdoaWxlKDApO2lmKChZJjEpPT0wKXtaPWsrNHwwO189ays0fDB9ZWxzZXtIPWNbays4Pj4y
XXwwO1o9SDtfPUh9SD1ZJjI1NTtpZigoSCYxfDApPT0wKXskPUg+Pj4xfWVsc2V7JD1jW2srND4+
Ml18MH1pYyhXLHkseixjW2grND4+Ml18MCxfLForKCQ8PDIpfDAsRixLLG4sY1tvPj4yXXwwLGNb
cD4+Ml18MCxxLHMsdSxPKTtjW0E+PjJdPWNbZj4+Ml07Z3EoYixBLFcsY1t5Pj4yXXwwLGNbej4+
Ml18MCxoLGopO2lmKChYfDApPT0wKXtlZSh1KTtlZShzKTtkUChxKTthYT1jW0I+PjJdfDA7YWI9
YWF8MDthYz1keihhYil8MDtpPWU7cmV0dXJufWtLKFgpO2VlKHUpO2VlKHMpO2RQKHEpO2FhPWNb
Qj4+Ml18MDthYj1hYXwwO2FjPWR6KGFiKXwwO2k9ZTtyZXR1cm59fXdoaWxlKDApO2U9Yk8oNCl8
MDtrcShlKTtibChlfDAsODE3NiwxMzQpfWZ1bmN0aW9uIGlpKGIsZCxlLGYsZyxoKXtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDt2YXIgaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAs
cD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wO2Q9aTtpPWkrMTZ8MDtqPWR8MDtrPWo7ayQoa3ww
LDAsMTIpO2w9YjttPWg7bj1hW2hdfDA7aWYoKG4mMSk9PTApe289bSsxfDA7cD1tKzF8MH1lbHNl
e209Y1toKzg+PjJdfDA7bz1tO3A9bX1tPW4mMjU1O2lmKChtJjF8MCk9PTApe3E9bT4+PjF9ZWxz
ZXtxPWNbaCs0Pj4yXXwwfWg9bytxfDA7ZG97aWYocD4+PjA8aD4+PjApe3E9cDtkb3tkVShqLGFb
cV18MCk7cT1xKzF8MDt9d2hpbGUocT4+PjA8aD4+PjApO3E9KGV8MCk9PS0xPy0xOmU8PDE7aWYo
KGFba10mMSk9PTApe3I9cTtzPTE3NjI7YnJlYWt9dD1jW2orOD4+Ml18MDt1PXF9ZWxzZXtyPShl
fDApPT0tMT8tMTplPDwxO3M9MTc2Mn19d2hpbGUoMCk7aWYoKHN8MCk9PTE3NjIpe3Q9aisxfDA7
dT1yfXI9Yk0odXwwLGZ8MCxnfDAsdHwwKXwwO2skKGx8MCwwLDEyKTtsPWswKHJ8MCl8MDt0PXIr
bHwwO2lmKChsfDApPjApe3Y9cn1lbHNle2RQKGopO2k9ZDtyZXR1cm59ZG97ZFUoYixhW3ZdfDAp
O3Y9disxfDA7fXdoaWxlKHY+Pj4wPHQ+Pj4wKTtkUChqKTtpPWQ7cmV0dXJufWZ1bmN0aW9uIGlq
KGEsYil7YT1hfDA7Yj1ifDA7YTEoKChifDApPT0tMT8tMTpiPDwxKXwwKXwwO3JldHVybn1mdW5j
dGlvbiBpayhhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5jdGlvbiBpbChhKXthPWF8
MDtkZShhfDApO3JldHVybn1mdW5jdGlvbiBpbShiLGQsZSl7Yj1ifDA7ZD1kfDA7ZT1lfDA7dmFy
IGY9MDtpZigoYVtkXSYxKT09MCl7Zj1kKzF8MH1lbHNle2Y9Y1tkKzg+PjJdfDB9ZD1hOChmfDAs
MjAwKXwwO3JldHVybiBkPj4+KCgoZHwwKSE9LTF8MCk+Pj4wKXwwfWZ1bmN0aW9uIGlvKGEsYil7
YT1hfDA7Yj1ifDA7YTEoKChifDApPT0tMT8tMTpiPDwxKXwwKXwwO3JldHVybn1mdW5jdGlvbiBp
cChiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7dmFyIGo9
MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0w
LHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wO2Q9aTtpPWkr
MjI0fDA7aj1kfDA7az1kKzh8MDtsPWQrNDB8MDttPWQrNDh8MDtuPWQrNTZ8MDtvPWQrNjR8MDtw
PWQrMTkyfDA7cT1kKzIwMHwwO3I9ZCsyMDh8MDtzPXI7dD1pO2k9aSs4fDA7dT1pO2k9aSs4fDA7
ayQoc3wwLDAsMTIpO3Y9Yjt3PXR8MDtjW3QrND4+Ml09MDtjW3Q+PjJdPTQxMDQ7eD1hW2hdfDA7
aWYoKHgmMSk9PTApe3k9aCs0fDA7ej1oKzR8MH1lbHNle0E9Y1toKzg+PjJdfDA7eT1BO3o9QX1B
PXgmMjU1O2lmKChBJjF8MCk9PTApe0I9QT4+PjF9ZWxzZXtCPWNbaCs0Pj4yXXwwfWg9eSsoQjw8
Mil8MDtMMjEzNTpkb3tpZih6Pj4+MDxoPj4+MCl7Qj10O3k9a3wwO0E9ayszMnwwO3g9ejtDPTQx
MDQ7d2hpbGUoMSl7Y1ttPj4yXT14O0Q9KGI2W2NbQysxMj4+Ml0mMzFdKHcsaix4LGgsbSx5LEEs
bCl8MCk9PTI7RT1jW20+PjJdfDA7aWYoRHwoRXwwKT09KHh8MCkpe2JyZWFrfWlmKHk+Pj4wPChj
W2w+PjJdfDApPj4+MCl7RD15O2Rve2RVKHIsYVtEXXwwKTtEPUQrMXwwO313aGlsZShEPj4+MDwo
Y1tsPj4yXXwwKT4+PjApO0Y9Y1ttPj4yXXwwfWVsc2V7Rj1FfWlmKEY+Pj4wPj1oPj4+MCl7YnJl
YWsgTDIxMzV9eD1GO0M9Y1tCPj4yXXwwfUI9Yk8oOCl8MDtkRShCLDkwNCk7YmwoQnwwLDgxOTIs
MjIpfX13aGlsZSgwKTtkZSh0fDApO2lmKChhW3NdJjEpPT0wKXtHPXIrMXwwfWVsc2V7Rz1jW3Ir
OD4+Ml18MH1zPWJNKCgoZXwwKT09LTE/LTE6ZTw8MSl8MCxmfDAsZ3wwLEd8MCl8MDtrJCh2fDAs
MCwxMik7dj11fDA7Y1t1KzQ+PjJdPTA7Y1t1Pj4yXT00MDQ4O0c9azAoc3wwKXwwO2c9cytHfDA7
aWYoKEd8MCk8MSl7SD11fDA7ZGUoSCk7ZFAocik7aT1kO3JldHVybn1HPXU7Zj1nO2U9b3wwO3Q9
bysxMjh8MDtvPXM7cz00MDQ4O3doaWxlKDEpe2NbcT4+Ml09bztGPShiNltjW3MrMTY+PjJdJjMx
XSh2LG4sbywoZi1vfDApPjMyP28rMzJ8MDpnLHEsZSx0LHApfDApPT0yO2g9Y1txPj4yXXwwO2lm
KEZ8KGh8MCk9PShvfDApKXticmVha31pZihlPj4+MDwoY1twPj4yXXwwKT4+PjApe0Y9ZTtkb3tl
aChiLGNbRj4+Ml18MCk7Rj1GKzR8MDt9d2hpbGUoRj4+PjA8KGNbcD4+Ml18MCk+Pj4wKTtJPWNb
cT4+Ml18MH1lbHNle0k9aH1pZihJPj4+MD49Zz4+PjApe0o9MTgyOTticmVha31vPUk7cz1jW0c+
PjJdfDB9aWYoKEp8MCk9PTE4Mjkpe0g9dXwwO2RlKEgpO2RQKHIpO2k9ZDtyZXR1cm59ZD1iTyg4
KXwwO2RFKGQsOTA0KTtibChkfDAsODE5MiwyMil9ZnVuY3Rpb24gaXEoYil7Yj1ifDA7dmFyIGQ9
MCxlPTAsZj0wO2NbYj4+Ml09MzU2ODtkPWIrOHwwO2U9Y1tkPj4yXXwwO2Rve2lmKChhWzE2MjY0
XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4XT1hUygxLDEzNDQsMCl8
MH19d2hpbGUoMCk7aWYoKGV8MCk9PShjWzI5NThdfDApKXtmPWJ8MDtkZShmKTtyZXR1cm59YTco
Y1tkPj4yXXwwKTtmPWJ8MDtkZShmKTtyZXR1cm59ZnVuY3Rpb24gaXIoYSl7YT1hfDA7YT1iTyg4
KXwwO2RBKGEsMTM1Mik7Y1thPj4yXT0yNTA0O2JsKGF8MCw4MjA4LDMyKX1mdW5jdGlvbiBpcyhi
LGQpe2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxv
PTAscD0wLHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9
MCxEPTAsRT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTA7ZT1pO2k9aSs0NDh8MDtm
PWV8MDtnPWUrMTZ8MDtoPWUrMzJ8MDtqPWUrNDh8MDtrPWUrNjR8MDtsPWUrODB8MDttPWUrOTZ8
MDtuPWUrMTEyfDA7bz1lKzEyOHwwO3A9ZSsxNDR8MDtxPWUrMTYwfDA7cj1lKzE3NnwwO3M9ZSsx
OTJ8MDt0PWUrMjA4fDA7dT1lKzIyNHwwO3Y9ZSsyNDB8MDt3PWUrMjU2fDA7eD1lKzI3MnwwO3k9
ZSsyODh8MDt6PWUrMzA0fDA7QT1lKzMyMHwwO0I9ZSszMzZ8MDtDPWUrMzUyfDA7RD1lKzM2OHww
O0U9ZSszODR8MDtGPWUrNDAwfDA7Rz1lKzQxNnwwO0g9ZSs0MzJ8MDtjW2IrND4+Ml09ZC0xO2Nb
Yj4+Ml09MzgyNDtkPWIrOHwwO0k9YisxMnwwO2FbYisxMzZ8MF09MTtKPWIrMjR8MDtLPUo7Y1tJ
Pj4yXT1LO2NbZD4+Ml09SztjW2IrMTY+PjJdPUorMTEyO0o9Mjg7TD1LO2Rve2lmKChMfDApPT0w
KXtNPTB9ZWxzZXtjW0w+PjJdPTA7TT1jW0k+PjJdfDB9TD1NKzR8MDtjW0k+PjJdPUw7Sj1KLTF8
MDt9d2hpbGUoKEp8MCkhPTApO2RaKGIrMTQ0fDAsMTM0NCwxKTtKPWNbZD4+Ml18MDtkPWNbST4+
Ml18MDtpZigoSnwwKSE9KGR8MCkpe2NbST4+Ml09ZCsofigoZC00KygtSnwwKXwwKT4+PjIpPDwy
KX1jWzM2MTddPTA7Y1szNjE2XT0zNTI4O2lmKChjWzM4NDRdfDApIT0tMSl7Y1tIPj4yXT0xNTM3
NjtjW0grND4+Ml09MTI7Y1tIKzg+PjJdPTA7ZFcoMTUzNzYsSCw5Nil9aUooYiwxNDQ2NCwoY1sz
ODQ1XXwwKS0xfDApO2NbMzYxNV09MDtjWzM2MTRdPTM0ODg7aWYoKGNbMzg0Ml18MCkhPS0xKXtj
W0c+PjJdPTE1MzY4O2NbRys0Pj4yXT0xMjtjW0crOD4+Ml09MDtkVygxNTM2OCxHLDk2KX1pSihi
LDE0NDU2LChjWzM4NDNdfDApLTF8MCk7Y1szNjY3XT0wO2NbMzY2Nl09MzkzNjtjWzM2NjhdPTA7
YVsxNDY3Nl09MDtjWzM2NjhdPWNbKGE2KCl8MCk+PjJdO2lmKChjWzM5MjRdfDApIT0tMSl7Y1tG
Pj4yXT0xNTY5NjtjW0YrND4+Ml09MTI7Y1tGKzg+PjJdPTA7ZFcoMTU2OTYsRiw5Nil9aUooYiwx
NDY2NCwoY1szOTI1XXwwKS0xfDApO2NbMzY2NV09MDtjWzM2NjRdPTM4NTY7aWYoKGNbMzkyMl18
MCkhPS0xKXtjW0U+PjJdPTE1Njg4O2NbRSs0Pj4yXT0xMjtjW0UrOD4+Ml09MDtkVygxNTY4OCxF
LDk2KX1pSihiLDE0NjU2LChjWzM5MjNdfDApLTF8MCk7Y1szNjE5XT0wO2NbMzYxOF09MzYyNDtp
ZigoY1szODQ4XXwwKSE9LTEpe2NbRD4+Ml09MTUzOTI7Y1tEKzQ+PjJdPTEyO2NbRCs4Pj4yXT0w
O2RXKDE1MzkyLEQsOTYpfWlKKGIsMTQ0NzIsKGNbMzg0OV18MCktMXwwKTtjWzUyMV09MDtjWzUy
MF09MzU2ODtkb3tpZigoYVsxNjI2NF18MCk9PTApe2lmKChiYygxNjI2NCl8MCk9PTApe2JyZWFr
fWNbMjk1OF09YVMoMSwxMzQ0LDApfDB9fXdoaWxlKDApO2NbNTIyXT1jWzI5NThdO2lmKChjWzM4
NDZdfDApIT0tMSl7Y1tDPj4yXT0xNTM4NDtjW0MrND4+Ml09MTI7Y1tDKzg+PjJdPTA7ZFcoMTUz
ODQsQyw5Nil9aUooYiwyMDgwLChjWzM4NDddfDApLTF8MCk7Y1szNjIxXT0wO2NbMzYyMF09MzY4
MDtpZigoY1szODUwXXwwKSE9LTEpe2NbQj4+Ml09MTU0MDA7Y1tCKzQ+PjJdPTEyO2NbQis4Pj4y
XT0wO2RXKDE1NDAwLEIsOTYpfWlKKGIsMTQ0ODAsKGNbMzg1MV18MCktMXwwKTtjWzM2MjNdPTA7
Y1szNjIyXT0zNzM2O2lmKChjWzM4NTJdfDApIT0tMSl7Y1tBPj4yXT0xNTQwODtjW0ErND4+Ml09
MTI7Y1tBKzg+PjJdPTA7ZFcoMTU0MDgsQSw5Nil9aUooYiwxNDQ4OCwoY1szODUzXXwwKS0xfDAp
O2NbMzU5N109MDtjWzM1OTZdPTMwMzI7YVsxNDM5Ml09NDY7YVsxNDM5M109NDQ7ayQoMTQzOTYs
MCwxMik7aWYoKGNbMzgyOF18MCkhPS0xKXtjW3o+PjJdPTE1MzEyO2Nbeis0Pj4yXT0xMjtjW3or
OD4+Ml09MDtkVygxNTMxMix6LDk2KX1pSihiLDE0Mzg0LChjWzM4MjldfDApLTF8MCk7Y1s1MTNd
PTA7Y1s1MTJdPTI5ODQ7Y1s1MTRdPTQ2O2NbNTE1XT00NDtrJCgyMDY0LDAsMTIpO2lmKChjWzM4
MjZdfDApIT0tMSl7Y1t5Pj4yXT0xNTMwNDtjW3krND4+Ml09MTI7Y1t5Kzg+PjJdPTA7ZFcoMTUz
MDQseSw5Nil9aUooYiwyMDQ4LChjWzM4MjddfDApLTF8MCk7Y1szNjEzXT0wO2NbMzYxMl09MzQx
NjtpZigoY1szODQwXXwwKSE9LTEpe2NbeD4+Ml09MTUzNjA7Y1t4KzQ+PjJdPTEyO2NbeCs4Pj4y
XT0wO2RXKDE1MzYwLHgsOTYpfWlKKGIsMTQ0NDgsKGNbMzg0MV18MCktMXwwKTtjWzM2MTFdPTA7
Y1szNjEwXT0zMzQ0O2lmKChjWzM4MzhdfDApIT0tMSl7Y1t3Pj4yXT0xNTM1MjtjW3crND4+Ml09
MTI7Y1t3Kzg+PjJdPTA7ZFcoMTUzNTIsdyw5Nil9aUooYiwxNDQ0MCwoY1szODM5XXwwKS0xfDAp
O2NbMzYwOV09MDtjWzM2MDhdPTMyODA7aWYoKGNbMzgzNl18MCkhPS0xKXtjW3Y+PjJdPTE1MzQ0
O2Nbdis0Pj4yXT0xMjtjW3YrOD4+Ml09MDtkVygxNTM0NCx2LDk2KX1pSihiLDE0NDMyLChjWzM4
MzddfDApLTF8MCk7Y1szNjA3XT0wO2NbMzYwNl09MzIxNjtpZigoY1szODM0XXwwKSE9LTEpe2Nb
dT4+Ml09MTUzMzY7Y1t1KzQ+PjJdPTEyO2NbdSs4Pj4yXT0wO2RXKDE1MzM2LHUsOTYpfWlKKGIs
MTQ0MjQsKGNbMzgzNV18MCktMXwwKTtjWzM2NzddPTA7Y1szNjc2XT00OTEyO2lmKChjWzQwNDZd
fDApIT0tMSl7Y1t0Pj4yXT0xNjE4NDtjW3QrND4+Ml09MTI7Y1t0Kzg+PjJdPTA7ZFcoMTYxODQs
dCw5Nil9aUooYiwxNDcwNCwoY1s0MDQ3XXwwKS0xfDApO2NbMzY3NV09MDtjWzM2NzRdPTQ4NDg7
aWYoKGNbNDA0NF18MCkhPS0xKXtjW3M+PjJdPTE2MTc2O2Nbcys0Pj4yXT0xMjtjW3MrOD4+Ml09
MDtkVygxNjE3NixzLDk2KX1pSihiLDE0Njk2LChjWzQwNDVdfDApLTF8MCk7Y1szNjczXT0wO2Nb
MzY3Ml09NDc4NDtpZigoY1s0MDQyXXwwKSE9LTEpe2Nbcj4+Ml09MTYxNjg7Y1tyKzQ+PjJdPTEy
O2Nbcis4Pj4yXT0wO2RXKDE2MTY4LHIsOTYpfWlKKGIsMTQ2ODgsKGNbNDA0M118MCktMXwwKTtj
WzM2NzFdPTA7Y1szNjcwXT00NzIwO2lmKChjWzQwNDBdfDApIT0tMSl7Y1txPj4yXT0xNjE2MDtj
W3ErND4+Ml09MTI7Y1txKzg+PjJdPTA7ZFcoMTYxNjAscSw5Nil9aUooYiwxNDY4MCwoY1s0MDQx
XXwwKS0xfDApO2NbMzU5NV09MDtjWzM1OTRdPTI2ODg7aWYoKGNbMzgxNl18MCkhPS0xKXtjW3A+
PjJdPTE1MjY0O2NbcCs0Pj4yXT0xMjtjW3ArOD4+Ml09MDtkVygxNTI2NCxwLDk2KX1pSihiLDE0
Mzc2LChjWzM4MTddfDApLTF8MCk7Y1szNTkzXT0wO2NbMzU5Ml09MjY0ODtpZigoY1szODE0XXww
KSE9LTEpe2Nbbz4+Ml09MTUyNTY7Y1tvKzQ+PjJdPTEyO2Nbbys4Pj4yXT0wO2RXKDE1MjU2LG8s
OTYpfWlKKGIsMTQzNjgsKGNbMzgxNV18MCktMXwwKTtjWzM1OTFdPTA7Y1szNTkwXT0yNjA4O2lm
KChjWzM4MTJdfDApIT0tMSl7Y1tuPj4yXT0xNTI0ODtjW24rND4+Ml09MTI7Y1tuKzg+PjJdPTA7
ZFcoMTUyNDgsbiw5Nil9aUooYiwxNDM2MCwoY1szODEzXXwwKS0xfDApO2NbMzU4OV09MDtjWzM1
ODhdPTI1Njg7aWYoKGNbMzgxMF18MCkhPS0xKXtjW20+PjJdPTE1MjQwO2NbbSs0Pj4yXT0xMjtj
W20rOD4+Ml09MDtkVygxNTI0MCxtLDk2KX1pSihiLDE0MzUyLChjWzM4MTFdfDApLTF8MCk7Y1s1
MDldPTA7Y1s1MDhdPTI4ODg7Y1s1MTBdPTI5MzY7aWYoKGNbMzgyNF18MCkhPS0xKXtjW2w+PjJd
PTE1Mjk2O2NbbCs0Pj4yXT0xMjtjW2wrOD4+Ml09MDtkVygxNTI5NixsLDk2KX1pSihiLDIwMzIs
KGNbMzgyNV18MCktMXwwKTtjWzUwNV09MDtjWzUwNF09Mjc5MjtjWzUwNl09Mjg0MDtpZigoY1sz
ODIyXXwwKSE9LTEpe2Nbaz4+Ml09MTUyODg7Y1trKzQ+PjJdPTEyO2Nbays4Pj4yXT0wO2RXKDE1
Mjg4LGssOTYpfWlKKGIsMjAxNiwoY1szODIzXXwwKS0xfDApO2NbNTAxXT0wO2NbNTAwXT0zNzky
O2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1syOTU4
XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7Y1s1MDJdPWNbMjk1OF07Y1s1MDBdPTI3NjA7aWYo
KGNbMzgyMF18MCkhPS0xKXtjW2o+PjJdPTE1MjgwO2Nbais0Pj4yXT0xMjtjW2orOD4+Ml09MDtk
VygxNTI4MCxqLDk2KX1pSihiLDJlMywoY1szODIxXXwwKS0xfDApO2NbNDk3XT0wO2NbNDk2XT0z
NzkyO2Rve2lmKChhWzE2MjY0XXwwKT09MCl7aWYoKGJjKDE2MjY0KXwwKT09MCl7YnJlYWt9Y1sy
OTU4XT1hUygxLDEzNDQsMCl8MH19d2hpbGUoMCk7Y1s0OThdPWNbMjk1OF07Y1s0OTZdPTI3Mjg7
aWYoKGNbMzgxOF18MCkhPS0xKXtjW2g+PjJdPTE1MjcyO2NbaCs0Pj4yXT0xMjtjW2grOD4+Ml09
MDtkVygxNTI3MixoLDk2KX1pSihiLDE5ODQsKGNbMzgxOV18MCktMXwwKTtjWzM2MDVdPTA7Y1sz
NjA0XT0zMTIwO2lmKChjWzM4MzJdfDApIT0tMSl7Y1tnPj4yXT0xNTMyODtjW2crND4+Ml09MTI7
Y1tnKzg+PjJdPTA7ZFcoMTUzMjgsZyw5Nil9aUooYiwxNDQxNiwoY1szODMzXXwwKS0xfDApO2Nb
MzYwM109MDtjWzM2MDJdPTMwODA7aWYoKGNbMzgzMF18MCkhPS0xKXtjW2Y+PjJdPTE1MzIwO2Nb
Zis0Pj4yXT0xMjtjW2YrOD4+Ml09MDtkVygxNTMyMCxmLDk2KX1pSihiLDE0NDA4LChjWzM4MzFd
fDApLTF8MCk7aT1lO3JldHVybn1mdW5jdGlvbiBpdChhLGIpe2E9YXwwO2I9YnwwO3JldHVybiBi
fDB9ZnVuY3Rpb24gaXUoYSxiLGQsZSxmLGcsaCxpKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtjW2Y+PjJdPWQ7Y1tpPj4yXT1nO3JldHVybiAzfWZ1bmN0
aW9uIGl2KGEsYixkLGUsZixnLGgsaSl7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1n
fDA7aD1ofDA7aT1pfDA7Y1tmPj4yXT1kO2NbaT4+Ml09ZztyZXR1cm4gM31mdW5jdGlvbiBpdyhh
LGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2NbZj4+Ml09ZDtyZXR1cm4g
M31mdW5jdGlvbiBpeChhKXthPWF8MDtyZXR1cm4gMX1mdW5jdGlvbiBpeShhKXthPWF8MDtyZXR1
cm4gMX1mdW5jdGlvbiBpeihhKXthPWF8MDtyZXR1cm4gMX1mdW5jdGlvbiBpQShhLGIpe2E9YXww
O2I9YnwwO3JldHVybiBiPDwyND4+MjR8MH1mdW5jdGlvbiBpQihhLGIsYyl7YT1hfDA7Yj1ifDA7
Yz1jfDA7cmV0dXJuKGI+Pj4wPDEyOD9iJjI1NTpjKXwwfWZ1bmN0aW9uIGlDKGEsYixjKXthPWF8
MDtiPWJ8MDtjPWN8MDtyZXR1cm4oYjw8MjQ+PjI0Pi0xP2I6Yyl8MH1mdW5jdGlvbiBpRChhLGIs
YyxkLGUpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2I9ZC1jfDA7cmV0dXJuKGI+Pj4w
PGU+Pj4wP2I6ZSl8MH1mdW5jdGlvbiBpRShhKXthPWF8MDtjW2ErND4+Ml09KEk9Y1szODU0XXww
LGNbMzg1NF09SSsxLEkpKzE7cmV0dXJufWZ1bmN0aW9uIGlGKGIsZCxlLGYpe2I9YnwwO2Q9ZHww
O2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGk9MDtpZigoZHwwKT09KGV8MCkpe2c9ZDtyZXR1cm4g
Z3wwfWVsc2V7aD1kO2k9Zn13aGlsZSgxKXtjW2k+PjJdPWFbaF18MDtmPWgrMXwwO2lmKChmfDAp
PT0oZXwwKSl7Zz1lO2JyZWFrfWVsc2V7aD1mO2k9aSs0fDB9fXJldHVybiBnfDB9ZnVuY3Rpb24g
aUcoYixkLGUsZixnKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGk9MCxq
PTA7aWYoKGR8MCk9PShlfDApKXtoPWQ7cmV0dXJuIGh8MH1iPSgoZS00KygtZHwwKXwwKT4+PjIp
KzF8MDtpPWQ7aj1nO3doaWxlKDEpe2c9Y1tpPj4yXXwwO2Fbal09Zz4+PjA8MTI4P2cmMjU1OmY7
Zz1pKzR8MDtpZigoZ3wwKT09KGV8MCkpe2JyZWFrfWVsc2V7aT1nO2o9aisxfDB9fWg9ZCsoYjw8
Mil8MDtyZXR1cm4gaHwwfWZ1bmN0aW9uIGlIKGIsYyxkLGUpe2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9
ZXwwO3ZhciBmPTAsZz0wLGg9MDtpZigoY3wwKT09KGR8MCkpe2Y9YztyZXR1cm4gZnwwfWVsc2V7
Zz1jO2g9ZX13aGlsZSgxKXthW2hdPWFbZ118MDtlPWcrMXwwO2lmKChlfDApPT0oZHwwKSl7Zj1k
O2JyZWFrfWVsc2V7Zz1lO2g9aCsxfDB9fXJldHVybiBmfDB9ZnVuY3Rpb24gaUkoYixjLGQsZSxm
KXtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxpPTA7aWYoKGN8MCk9
PShkfDApKXtnPWM7cmV0dXJuIGd8MH1lbHNle2g9YztpPWZ9d2hpbGUoMSl7Zj1hW2hdfDA7YVtp
XT1mPDwyND4+MjQ+LTE/ZjplO2Y9aCsxfDA7aWYoKGZ8MCk9PShkfDApKXtnPWQ7YnJlYWt9ZWxz
ZXtoPWY7aT1pKzF8MH19cmV0dXJuIGd8MH1mdW5jdGlvbiBpSihhLGIsZCl7YT1hfDA7Yj1ifDA7
ZD1kfDA7dmFyIGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MDtkZyhifDAp
O2U9YSs4fDA7Zj1hKzEyfDA7YT1jW2Y+PjJdfDA7Zz1lfDA7aD1jW2c+PjJdfDA7aT1hLWg+PjI7
ZG97aWYoaT4+PjA+ZD4+PjApe2o9aH1lbHNle2s9ZCsxfDA7aWYoaT4+PjA8az4+PjApe2o1KGUs
ay1pfDApO2o9Y1tnPj4yXXwwO2JyZWFrfWlmKGk+Pj4wPD1rPj4+MCl7aj1oO2JyZWFrfWw9aCso
azw8Mil8MDtpZigobHwwKT09KGF8MCkpe2o9aDticmVha31jW2Y+PjJdPWErKH4oKGEtNCsoLWx8
MCl8MCk+Pj4yKTw8Mik7aj1ofX13aGlsZSgwKTtoPWNbaisoZDw8Mik+PjJdfDA7aWYoKGh8MCk9
PTApe209ajtuPW0rKGQ8PDIpfDA7Y1tuPj4yXT1iO3JldHVybn1keihofDApfDA7bT1jW2c+PjJd
fDA7bj1tKyhkPDwyKXwwO2Nbbj4+Ml09YjtyZXR1cm59ZnVuY3Rpb24gaUsoYSl7YT1hfDA7aUwo
YSk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGlMKGIpe2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTAs
aD0wLGk9MCxqPTAsaz0wLGw9MCxtPTA7Y1tiPj4yXT0zODI0O2Q9YisxMnwwO2U9Y1tkPj4yXXww
O2Y9Yis4fDA7Zz1jW2Y+PjJdfDA7aWYoKGV8MCkhPShnfDApKXtoPTA7aT1nO2c9ZTt3aGlsZSgx
KXtlPWNbaSsoaDw8Mik+PjJdfDA7aWYoKGV8MCk9PTApe2o9ZztrPWl9ZWxzZXtsPWV8MDtkeihs
KXwwO2o9Y1tkPj4yXXwwO2s9Y1tmPj4yXXwwfWw9aCsxfDA7aWYobD4+PjA8ai1rPj4yPj4+MCl7
aD1sO2k9aztnPWp9ZWxzZXticmVha319fWRQKGIrMTQ0fDApO2o9Y1tmPj4yXXwwO2lmKChqfDAp
PT0wKXttPWJ8MDtkZShtKTtyZXR1cm59Zj1jW2Q+PjJdfDA7aWYoKGp8MCkhPShmfDApKXtjW2Q+
PjJdPWYrKH4oKGYtNCsoLWp8MCl8MCk+Pj4yKTw8Mil9aWYoKGp8MCk9PShiKzI0fDApKXthW2Ir
MTM2fDBdPTA7bT1ifDA7ZGUobSk7cmV0dXJufWVsc2V7a1Moaik7bT1ifDA7ZGUobSk7cmV0dXJu
fX1mdW5jdGlvbiBpTSgpe3ZhciBiPTAsZD0wO2lmKChhWzE2MjQ4XXwwKSE9MCl7Yj1jWzI5NTBd
fDA7cmV0dXJuIGJ8MH1pZigoYmMoMTYyNDgpfDApPT0wKXtiPWNbMjk1MF18MDtyZXR1cm4gYnww
fWRve2lmKChhWzE2MjU2XXwwKT09MCl7aWYoKGJjKDE2MjU2KXwwKT09MCl7YnJlYWt9aXMoMTQ0
OTYsMSk7Y1syOTU0XT0xNDQ5NjtjWzI5NTJdPTExODE2fX13aGlsZSgwKTtkPWNbY1syOTUyXT4+
Ml18MDtjWzI5NTZdPWQ7ZGcoZHwwKTtjWzI5NTBdPTExODI0O2I9Y1syOTUwXXwwO3JldHVybiBi
fDB9ZnVuY3Rpb24gaU4oYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0wO2Q9Y1tiPj4yXXwwO2NbYT4+
Ml09ZDtkZyhkfDApO3JldHVybn1mdW5jdGlvbiBpTyhhKXthPWF8MDtkeihjW2E+PjJdfDApfDA7
cmV0dXJufWZ1bmN0aW9uIGlQKGEpe2E9YXwwO2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9u
IGlRKGEpe2E9YXwwO2lmKChhfDApPT0wKXtyZXR1cm59YllbY1soY1thPj4yXXwwKSs0Pj4yXSY1
MTFdKGEpO3JldHVybn1mdW5jdGlvbiBpUihhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1m
dW5jdGlvbiBpUyhiKXtiPWJ8MDt2YXIgZD0wO2NbYj4+Ml09MzkzNjtkPWNbYis4Pj4yXXwwO2Rv
e2lmKChkfDApIT0wKXtpZigoYVtiKzEyfDBdJjEpPT0wKXticmVha31rVChkKX19d2hpbGUoMCk7
ZGUoYnwwKTtrUyhiKTtyZXR1cm59ZnVuY3Rpb24gaVQoYil7Yj1ifDA7dmFyIGQ9MDtjW2I+PjJd
PTM5MzY7ZD1jW2IrOD4+Ml18MDtkb3tpZigoZHwwKSE9MCl7aWYoKGFbYisxMnwwXSYxKT09MCl7
YnJlYWt9a1QoZCl9fXdoaWxlKDApO2RlKGJ8MCk7cmV0dXJufWZ1bmN0aW9uIGlVKGEpe2E9YXww
O2RlKGF8MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGlWKGEpe2E9YXwwO2lxKGEpO2tTKGEpO3Jl
dHVybn1mdW5jdGlvbiBpVyhhKXthPWF8MDt2YXIgYj0wO2I9Y1soaU0oKXwwKT4+Ml18MDtjW2E+
PjJdPWI7ZGcoYnwwKTtyZXR1cm59ZnVuY3Rpb24gaVgoYSxiKXthPWF8MDtiPWJ8MDt2YXIgZD0w
LGU9MCxmPTAsZz0wLGg9MDtkPWk7aT1pKzE2fDA7ZT1kfDA7Zj1jW2E+PjJdfDA7YT1ifDA7aWYo
KGNbYT4+Ml18MCkhPS0xKXtjW2U+PjJdPWI7Y1tlKzQ+PjJdPTEyO2NbZSs4Pj4yXT0wO2RXKGEs
ZSw5Nil9ZT0oY1tiKzQ+PjJdfDApLTF8MDtiPWNbZis4Pj4yXXwwO2lmKChjW2YrMTI+PjJdfDAp
LWI+PjI+Pj4wPD1lPj4+MCl7Zz1iTyg0KXwwO2g9ZztrcShoKTtibChnfDAsODE3NiwxMzQpO3Jl
dHVybiAwfWY9Y1tiKyhlPDwyKT4+Ml18MDtpZigoZnwwKT09MCl7Zz1iTyg0KXwwO2g9ZztrcSho
KTtibChnfDAsODE3NiwxMzQpO3JldHVybiAwfWVsc2V7aT1kO3JldHVybiBmfDB9cmV0dXJuIDB9
ZnVuY3Rpb24gaVkoYSxkLGUpe2E9YXwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTA7aWYoZT4+PjA+PTEy
OCl7Zj0wO3JldHVybiBmfDB9Zj0oYlsoY1soYTYoKXwwKT4+Ml18MCkrKGU8PDEpPj4xXSZkKTw8
MTY+PjE2IT0wO3JldHVybiBmfDB9ZnVuY3Rpb24gaVooYSxkLGUsZil7YT1hfDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7dmFyIGc9MCxoPTAsaT0wLGo9MDtpZigoZHwwKT09KGV8MCkpe2c9ZDtyZXR1cm4g
Z3wwfWVsc2V7aD1kO2k9Zn13aGlsZSgxKXtmPWNbaD4+Ml18MDtpZihmPj4+MDwxMjgpe2o9Ylso
Y1soYTYoKXwwKT4+Ml18MCkrKGY8PDEpPj4xXXwwfWVsc2V7aj0wfWJbaT4+MV09ajtmPWgrNHww
O2lmKChmfDApPT0oZXwwKSl7Zz1lO2JyZWFrfWVsc2V7aD1mO2k9aSsyfDB9fXJldHVybiBnfDB9
ZnVuY3Rpb24gaV8oYSxkLGUsZil7YT1hfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAs
aT0wO2lmKChlfDApPT0oZnwwKSl7Zz1lO3JldHVybiBnfDB9ZWxzZXtoPWV9d2hpbGUoMSl7ZT1j
W2g+PjJdfDA7aWYoZT4+PjA8MTI4KXtpZigoYlsoY1soYTYoKXwwKT4+Ml18MCkrKGU8PDEpPj4x
XSZkKTw8MTY+PjE2IT0wKXtnPWg7aT0yMDk0O2JyZWFrfX1lPWgrNHwwO2lmKChlfDApPT0oZnww
KSl7Zz1mO2k9MjA5NjticmVha31lbHNle2g9ZX19aWYoKGl8MCk9PTIwOTQpe3JldHVybiBnfDB9
ZWxzZSBpZigoaXwwKT09MjA5Nil7cmV0dXJuIGd8MH1yZXR1cm4gMH1mdW5jdGlvbiBpJChhLGQs
ZSxmKXthPWF8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MDthPWU7d2hpbGUoMSl7aWYo
KGF8MCk9PShmfDApKXtnPWY7aD0yMTA0O2JyZWFrfWU9Y1thPj4yXXwwO2lmKGU+Pj4wPj0xMjgp
e2c9YTtoPTIxMDY7YnJlYWt9aWYoKGJbKGNbKGE2KCl8MCk+PjJdfDApKyhlPDwxKT4+MV0mZCk8
PDE2Pj4xNj09MCl7Zz1hO2g9MjEwNTticmVha31lbHNle2E9YSs0fDB9fWlmKChofDApPT0yMTA0
KXtyZXR1cm4gZ3wwfWVsc2UgaWYoKGh8MCk9PTIxMDUpe3JldHVybiBnfDB9ZWxzZSBpZigoaHww
KT09MjEwNil7cmV0dXJuIGd8MH1yZXR1cm4gMH1mdW5jdGlvbiBpMChhLGIpe2E9YXwwO2I9Ynww
O3ZhciBkPTA7aWYoYj4+PjA+PTEyOCl7ZD1iO3JldHVybiBkfDB9ZD1jWyhjWyhiUigpfDApPj4y
XXwwKSsoYjw8Mik+PjJdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBpMShhLGIsZCl7YT1hfDA7Yj1i
fDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2lmKChifDApPT0oZHwwKSl7ZT1iO3JldHVybiBlfDB9
ZWxzZXtmPWJ9d2hpbGUoMSl7Yj1jW2Y+PjJdfDA7aWYoYj4+PjA8MTI4KXtnPWNbKGNbKGJSKCl8
MCk+PjJdfDApKyhiPDwyKT4+Ml18MH1lbHNle2c9Yn1jW2Y+PjJdPWc7Yj1mKzR8MDtpZigoYnww
KT09KGR8MCkpe2U9ZDticmVha31lbHNle2Y9Yn19cmV0dXJuIGV8MH1mdW5jdGlvbiBpMihhLGIp
e2E9YXwwO2I9YnwwO3ZhciBkPTA7aWYoYj4+PjA+PTEyOCl7ZD1iO3JldHVybiBkfDB9ZD1jWyhj
WyhiUygpfDApPj4yXXwwKSsoYjw8Mik+PjJdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBpMyhhLGIs
ZCl7YT1hfDA7Yj1ifDA7ZD1kfDA7dmFyIGU9MCxmPTAsZz0wO2lmKChifDApPT0oZHwwKSl7ZT1i
O3JldHVybiBlfDB9ZWxzZXtmPWJ9d2hpbGUoMSl7Yj1jW2Y+PjJdfDA7aWYoYj4+PjA8MTI4KXtn
PWNbKGNbKGJTKCl8MCk+PjJdfDApKyhiPDwyKT4+Ml18MH1lbHNle2c9Yn1jW2Y+PjJdPWc7Yj1m
KzR8MDtpZigoYnwwKT09KGR8MCkpe2U9ZDticmVha31lbHNle2Y9Yn19cmV0dXJuIGV8MH1mdW5j
dGlvbiBpNChhLGIpe2E9YXwwO2I9YnwwO3ZhciBkPTA7aWYoYjw8MjQ+PjI0PD0tMSl7ZD1iO3Jl
dHVybiBkfDB9ZD1jWyhjWyhiUigpfDApPj4yXXwwKSsoKGImMjU1KTw8Mik+PjJdJjI1NTtyZXR1
cm4gZHwwfWZ1bmN0aW9uIGk1KGIsZCxlKXtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MCxo
PTA7aWYoKGR8MCk9PShlfDApKXtmPWQ7cmV0dXJuIGZ8MH1lbHNle2c9ZH13aGlsZSgxKXtkPWFb
Z118MDtpZihkPDwyND4+MjQ+LTEpe2g9Y1soY1soYlIoKXwwKT4+Ml18MCkrKGQ8PDI0Pj4yNDw8
Mik+PjJdJjI1NX1lbHNle2g9ZH1hW2ddPWg7ZD1nKzF8MDtpZigoZHwwKT09KGV8MCkpe2Y9ZTti
cmVha31lbHNle2c9ZH19cmV0dXJuIGZ8MH1mdW5jdGlvbiBpNihhLGIpe2E9YXwwO2I9YnwwO3Zh
ciBkPTA7aWYoYjw8MjQ+PjI0PD0tMSl7ZD1iO3JldHVybiBkfDB9ZD1jWyhjWyhiUygpfDApPj4y
XXwwKSsoYjw8MjQ+PjI0PDwyKT4+Ml0mMjU1O3JldHVybiBkfDB9ZnVuY3Rpb24gaTcoYixkLGUp
e2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0wLGg9MDtpZigoZHwwKT09KGV8MCkpe2Y9ZDty
ZXR1cm4gZnwwfWVsc2V7Zz1kfXdoaWxlKDEpe2Q9YVtnXXwwO2lmKGQ8PDI0Pj4yND4tMSl7aD1j
WyhjWyhiUygpfDApPj4yXXwwKSsoZDw8MjQ+PjI0PDwyKT4+Ml0mMjU1fWVsc2V7aD1kfWFbZ109
aDtkPWcrMXwwO2lmKChkfDApPT0oZXwwKSl7Zj1lO2JyZWFrfWVsc2V7Zz1kfX1yZXR1cm4gZnww
fWZ1bmN0aW9uIGk4KGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGk5KGEpe2E9YXwwO2RlKGF8
MCk7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGphKGEsYixkLGUsZixnLGgsail7YT1hfDA7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aj1qfDA7dmFyIGs9MCxsPTA7Yj1pO2k9aSsx
NnwwO2E9YnwwO2s9Yis4fDA7Y1thPj4yXT1kO2Nbaz4+Ml09ZztsPWpsKGQsZSxhLGcsaCxrLDEx
MTQxMTEsMCl8MDtjW2Y+PjJdPWQrKChjW2E+PjJdfDApLWQ+PjE8PDEpO2Nbaj4+Ml09ZysoKGNb
az4+Ml18MCktZyk7aT1iO3JldHVybiBsfDB9ZnVuY3Rpb24gamIoYixkLGUsZixnLGgsaixrKXti
PWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09
MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0w
LEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MDtsPWk7aT1pKzh8MDttPWx8
MDtuPW07bz1pO2k9aSsxfDA7aT1pKzc+PjM8PDM7cD1lO3doaWxlKDEpe2lmKChwfDApPT0oZnww
KSl7cT1mO2JyZWFrfWlmKChjW3A+PjJdfDApPT0wKXtxPXA7YnJlYWt9ZWxzZXtwPXArNHwwfX1j
W2s+PjJdPWg7Y1tnPj4yXT1lO0wyNTU1OmRve2lmKChlfDApPT0oZnwwKXwoaHwwKT09KGp8MCkp
e3I9ZX1lbHNle3A9ZDtzPWo7dD1iKzh8MDt1PW98MDt2PWg7dz1lO3g9cTtMMjU1Nzp3aGlsZSgx
KXt5PWNbcCs0Pj4yXXwwO2NbbT4+Ml09Y1twPj4yXTtjW20rND4+Ml09eTt5PWJCKGNbdD4+Ml18
MCl8MDt6PWtzKHYsZyx4LXc+PjIscy12fDAsZCl8MDtpZigoeXwwKSE9MCl7YkIoeXwwKXwwfXN3
aXRjaCh6fDApe2Nhc2UtMTp7QT0yMTg4O2JyZWFrIEwyNTU3O2JyZWFrfTtjYXNlIDA6e0I9MTtB
PTIyMjQ7YnJlYWsgTDI1NTc7YnJlYWt9O2RlZmF1bHQ6e319eT0oY1trPj4yXXwwKSt6fDA7Y1tr
Pj4yXT15O2lmKCh5fDApPT0oanwwKSl7QT0yMjIxO2JyZWFrfWlmKCh4fDApPT0oZnwwKSl7Qz1m
O0Q9eTtFPWNbZz4+Ml18MH1lbHNle3k9YkIoY1t0Pj4yXXwwKXwwO3o9a2codSwwLGQpfDA7aWYo
KHl8MCkhPTApe2JCKHl8MCl8MH1pZigoenwwKT09LTEpe0I9MjtBPTIyMjY7YnJlYWt9eT1jW2s+
PjJdfDA7aWYoej4+PjA+KHMteXwwKT4+PjApe0I9MTtBPTIyMjc7YnJlYWt9TDI1NzQ6ZG97aWYo
KHp8MCkhPTApe0Y9ejtHPXU7SD15O3doaWxlKDEpe0k9YVtHXXwwO2Nbaz4+Ml09SCsxO2FbSF09
STtJPUYtMXwwO2lmKChJfDApPT0wKXticmVhayBMMjU3NH1GPUk7Rz1HKzF8MDtIPWNbaz4+Ml18
MH19fXdoaWxlKDApO3k9KGNbZz4+Ml18MCkrNHwwO2NbZz4+Ml09eTt6PXk7d2hpbGUoMSl7aWYo
KHp8MCk9PShmfDApKXtKPWY7YnJlYWt9aWYoKGNbej4+Ml18MCk9PTApe0o9ejticmVha31lbHNl
e3o9eis0fDB9fUM9SjtEPWNbaz4+Ml18MDtFPXl9aWYoKEV8MCk9PShmfDApfChEfDApPT0oanww
KSl7cj1FO2JyZWFrIEwyNTU1fWVsc2V7dj1EO3c9RTt4PUN9fWlmKChBfDApPT0yMTg4KXtjW2s+
PjJdPXY7TDI1ODY6ZG97aWYoKHd8MCk9PShjW2c+PjJdfDApKXtLPXd9ZWxzZXt4PXc7dT12O3do
aWxlKDEpe3M9Y1t4Pj4yXXwwO3A9YkIoY1t0Pj4yXXwwKXwwO3o9a2codSxzLG4pfDA7aWYoKHB8
MCkhPTApe2JCKHB8MCl8MH1pZigoenwwKT09LTEpe0s9eDticmVhayBMMjU4Nn1wPShjW2s+PjJd
fDApK3p8MDtjW2s+PjJdPXA7ej14KzR8MDtpZigoenwwKT09KGNbZz4+Ml18MCkpe0s9ejticmVh
a31lbHNle3g9ejt1PXB9fX19d2hpbGUoMCk7Y1tnPj4yXT1LO0I9MjtpPWw7cmV0dXJuIEJ8MH1l
bHNlIGlmKChBfDApPT0yMjIxKXtyPWNbZz4+Ml18MDticmVha31lbHNlIGlmKChBfDApPT0yMjI0
KXtpPWw7cmV0dXJuIEJ8MH1lbHNlIGlmKChBfDApPT0yMjI2KXtpPWw7cmV0dXJuIEJ8MH1lbHNl
IGlmKChBfDApPT0yMjI3KXtpPWw7cmV0dXJuIEJ8MH19fXdoaWxlKDApO0I9KHJ8MCkhPShmfDAp
fDA7aT1sO3JldHVybiBCfDB9ZnVuY3Rpb24gamMoYixkLGUsZixnLGgsaixrKXtiPWJ8MDtkPWR8
MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtqPWp8MDtrPWt8MDt2YXIgbD0wLG09MCxuPTAsbz0w
LHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAs
RD0wLEU9MCxGPTAsRz0wLEg9MCxJPTA7bD1pO2k9aSs4fDA7bT1sfDA7bj1tO289ZTt3aGlsZSgx
KXtpZigob3wwKT09KGZ8MCkpe3A9ZjticmVha31pZigoYVtvXXwwKT09MCl7cD1vO2JyZWFrfWVs
c2V7bz1vKzF8MH19Y1trPj4yXT1oO2NbZz4+Ml09ZTtMMjYwNzpkb3tpZigoZXwwKT09KGZ8MCl8
KGh8MCk9PShqfDApKXtxPWV9ZWxzZXtvPWQ7cj1qO3M9Yis4fDA7dD1oO3U9ZTt2PXA7TDI2MDk6
d2hpbGUoMSl7dz1jW28rND4+Ml18MDtjW20+PjJdPWNbbz4+Ml07Y1ttKzQ+PjJdPXc7eD12O3c9
YkIoY1tzPj4yXXwwKXwwO3k9a2QodCxnLHgtdXwwLHItdD4+MixkKXwwO2lmKCh3fDApIT0wKXti
Qih3fDApfDB9c3dpdGNoKHl8MCl7Y2FzZS0xOnt6PTIyNDM7YnJlYWsgTDI2MDk7YnJlYWt9O2Nh
c2UgMDp7QT0yO3o9MjI3ODticmVhayBMMjYwOTticmVha307ZGVmYXVsdDp7fX13PShjW2s+PjJd
fDApKyh5PDwyKXwwO2Nbaz4+Ml09dztpZigod3wwKT09KGp8MCkpe3o9MjI3NTticmVha315PWNb
Zz4+Ml18MDtpZigodnwwKT09KGZ8MCkpe0I9ZjtDPXc7RD15fWVsc2V7RT1iQihjW3M+PjJdfDAp
fDA7Rj1rYyh3LHksMSxkKXwwO2lmKChFfDApIT0wKXtiQihFfDApfDB9aWYoKEZ8MCkhPTApe0E9
Mjt6PTIyODI7YnJlYWt9Y1trPj4yXT0oY1trPj4yXXwwKSs0O0Y9KGNbZz4+Ml18MCkrMXwwO2Nb
Zz4+Ml09RjtFPUY7d2hpbGUoMSl7aWYoKEV8MCk9PShmfDApKXtHPWY7YnJlYWt9aWYoKGFbRV18
MCk9PTApe0c9RTticmVha31lbHNle0U9RSsxfDB9fUI9RztDPWNbaz4+Ml18MDtEPUZ9aWYoKER8
MCk9PShmfDApfChDfDApPT0oanwwKSl7cT1EO2JyZWFrIEwyNjA3fWVsc2V7dD1DO3U9RDt2PUJ9
fWlmKCh6fDApPT0yMjQzKXtjW2s+PjJdPXQ7TDI2MzE6ZG97aWYoKHV8MCk9PShjW2c+PjJdfDAp
KXtIPXV9ZWxzZXt2PXQ7cj11O0wyNjMyOndoaWxlKDEpe289YkIoY1tzPj4yXXwwKXwwO0U9a2Mo
dixyLHgtcnwwLG4pfDA7aWYoKG98MCkhPTApe2JCKG98MCl8MH1zd2l0Y2goRXwwKXtjYXNlIDA6
e0k9cisxfDA7YnJlYWt9O2Nhc2UtMTp7ej0yMjU0O2JyZWFrIEwyNjMyO2JyZWFrfTtjYXNlLTI6
e3o9MjI1NTticmVhayBMMjYzMjticmVha307ZGVmYXVsdDp7ST1yK0V8MH19RT0oY1trPj4yXXww
KSs0fDA7Y1trPj4yXT1FO2lmKChJfDApPT0oY1tnPj4yXXwwKSl7SD1JO2JyZWFrIEwyNjMxfWVs
c2V7dj1FO3I9SX19aWYoKHp8MCk9PTIyNTQpe2NbZz4+Ml09cjtBPTI7aT1sO3JldHVybiBBfDB9
ZWxzZSBpZigoenwwKT09MjI1NSl7Y1tnPj4yXT1yO0E9MTtpPWw7cmV0dXJuIEF8MH19fXdoaWxl
KDApO2NbZz4+Ml09SDtBPShIfDApIT0oZnwwKXwwO2k9bDtyZXR1cm4gQXwwfWVsc2UgaWYoKHp8
MCk9PTIyNzUpe3E9Y1tnPj4yXXwwO2JyZWFrfWVsc2UgaWYoKHp8MCk9PTIyNzgpe2k9bDtyZXR1
cm4gQXwwfWVsc2UgaWYoKHp8MCk9PTIyODIpe2k9bDtyZXR1cm4gQXwwfX19d2hpbGUoMCk7QT0o
cXwwKSE9KGZ8MCl8MDtpPWw7cmV0dXJuIEF8MH1mdW5jdGlvbiBqZChiLGQsZSxmLGcpe2I9Ynww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO3ZhciBoPTAsaj0wLGs9MCxsPTAsbT0wLG49MDtoPWk7
aT1pKzh8MDtjW2c+PjJdPWU7ZT1ofDA7aj1iQihjW2IrOD4+Ml18MCl8MDtiPWtnKGUsMCxkKXww
O2lmKChqfDApIT0wKXtiQihqfDApfDB9c3dpdGNoKGJ8MCl7Y2FzZS0xOmNhc2UgMDp7az0yO2k9
aDtyZXR1cm4ga3wwfTtkZWZhdWx0Ont9fWo9Yi0xfDA7Yj1jW2c+PjJdfDA7aWYoaj4+PjA+KGYt
YnwwKT4+PjApe2s9MTtpPWg7cmV0dXJuIGt8MH1pZigoanwwKT09MCl7az0wO2k9aDtyZXR1cm4g
a3wwfWVsc2V7bD1qO209ZTtuPWJ9d2hpbGUoMSl7Yj1hW21dfDA7Y1tnPj4yXT1uKzE7YVtuXT1i
O2I9bC0xfDA7aWYoKGJ8MCk9PTApe2s9MDticmVha31sPWI7bT1tKzF8MDtuPWNbZz4+Ml18MH1p
PWg7cmV0dXJuIGt8MH1mdW5jdGlvbiBqZShhKXthPWF8MDt2YXIgYj0wLGQ9MCxlPTAsZj0wLGc9
MDtiPWErOHwwO2E9YkIoY1tiPj4yXXwwKXwwO2Q9a2YoMCwwLDEpfDA7aWYoKGF8MCkhPTApe2JC
KGF8MCl8MH1pZigoZHwwKSE9MCl7ZT0tMTtyZXR1cm4gZXwwfWQ9Y1tiPj4yXXwwO2lmKChkfDAp
PT0wKXtlPTE7cmV0dXJuIGV8MH1lPWJCKGR8MCl8MDtkPWJkKCl8MDtpZigoZXwwKT09MCl7Zj0o
ZHwwKT09MTtnPWYmMTtyZXR1cm4gZ3wwfWJCKGV8MCl8MDtmPShkfDApPT0xO2c9ZiYxO3JldHVy
biBnfDB9ZnVuY3Rpb24gamYoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTA7aWYoKGZ8MCk9PTB8KGR8
MCk9PShlfDApKXtnPTA7cmV0dXJuIGd8MH1oPWU7aT1hKzh8MDthPWQ7ZD0wO2o9MDtMMjY5Mzp3
aGlsZSgxKXtrPWJCKGNbaT4+Ml18MCl8MDtsPWtiKGEsaC1hfDAsYil8MDtpZigoa3wwKSE9MCl7
YkIoa3wwKXwwfXN3aXRjaChsfDApe2Nhc2UgMDp7bT0xO249YSsxfDA7YnJlYWt9O2Nhc2UtMTpj
YXNlLTI6e2c9ZDtvPTIzNDM7YnJlYWsgTDI2OTM7YnJlYWt9O2RlZmF1bHQ6e209bDtuPWErbHww
fX1sPW0rZHwwO2s9aisxfDA7aWYoaz4+PjA+PWY+Pj4wfChufDApPT0oZXwwKSl7Zz1sO289MjM0
NTticmVha31lbHNle2E9bjtkPWw7aj1rfX1pZigob3wwKT09MjM0NSl7cmV0dXJuIGd8MH1lbHNl
IGlmKChvfDApPT0yMzQzKXtyZXR1cm4gZ3wwfXJldHVybiAwfWZ1bmN0aW9uIGpnKGEpe2E9YXww
O3ZhciBiPTAsZD0wLGU9MDtiPWNbYSs4Pj4yXXwwO2Rve2lmKChifDApPT0wKXtkPTF9ZWxzZXth
PWJCKGJ8MCl8MDtlPWJkKCl8MDtpZigoYXwwKT09MCl7ZD1lO2JyZWFrfWJCKGF8MCl8MDtkPWV9
fXdoaWxlKDApO3JldHVybiBkfDB9ZnVuY3Rpb24gamgoYSxiLGQsZSxmKXthPWF8MDtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDtjW2Y+PjJdPWQ7cmV0dXJuIDN9ZnVuY3Rpb24gamkoYSl7YT1hfDA7
cmV0dXJuIDB9ZnVuY3Rpb24gamooYSl7YT1hfDA7cmV0dXJuIDB9ZnVuY3Rpb24gamsoYSl7YT1h
fDA7cmV0dXJuIDR9ZnVuY3Rpb24gamwoZCxmLGcsaCxpLGosayxsKXtkPWR8MDtmPWZ8MDtnPWd8
MDtoPWh8MDtpPWl8MDtqPWp8MDtrPWt8MDtsPWx8MDt2YXIgbT0wLG49MCxvPTAscD0wLHE9MCxy
PTA7Y1tnPj4yXT1kO2Nbaj4+Ml09aDtkb3tpZigobCYyfDApIT0wKXtpZigoaS1ofDApPDMpe209
MTtyZXR1cm4gbXwwfWVsc2V7Y1tqPj4yXT1oKzE7YVtoXT0tMTc7ZD1jW2o+PjJdfDA7Y1tqPj4y
XT1kKzE7YVtkXT0tNjk7ZD1jW2o+PjJdfDA7Y1tqPj4yXT1kKzE7YVtkXT0tNjU7YnJlYWt9fX13
aGlsZSgwKTtoPWY7bD1jW2c+PjJdfDA7aWYobD4+PjA+PWY+Pj4wKXttPTA7cmV0dXJuIG18MH1k
PWk7aT1sO0wyNzI3OndoaWxlKDEpe2w9YltpPj4xXXwwO249bCY2NTUzNTtpZihuPj4+MD5rPj4+
MCl7bT0yO289MjM5OTticmVha31kb3tpZigobCY2NTUzNSk8MTI4KXtwPWNbaj4+Ml18MDtpZigo
ZC1wfDApPDEpe209MTtvPTIzODg7YnJlYWsgTDI3Mjd9Y1tqPj4yXT1wKzE7YVtwXT1sJjI1NX1l
bHNle2lmKChsJjY1NTM1KTwyMDQ4KXtwPWNbaj4+Ml18MDtpZigoZC1wfDApPDIpe209MTtvPTIz
ODk7YnJlYWsgTDI3Mjd9Y1tqPj4yXT1wKzE7YVtwXT0obj4+PjZ8MTkyKSYyNTU7cD1jW2o+PjJd
fDA7Y1tqPj4yXT1wKzE7YVtwXT0obiY2M3wxMjgpJjI1NTticmVha31pZigobCY2NTUzNSk8NTUy
OTYpe3A9Y1tqPj4yXXwwO2lmKChkLXB8MCk8Myl7bT0xO289MjM5NzticmVhayBMMjcyN31jW2o+
PjJdPXArMTthW3BdPShuPj4+MTJ8MjI0KSYyNTU7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzE7YVtw
XT0obj4+PjYmNjN8MTI4KSYyNTU7cD1jW2o+PjJdfDA7Y1tqPj4yXT1wKzE7YVtwXT0obiY2M3wx
MjgpJjI1NTticmVha31pZigobCY2NTUzNSk+PTU2MzIwKXtpZigobCY2NTUzNSk8NTczNDQpe209
MjtvPTIzOTM7YnJlYWsgTDI3Mjd9cD1jW2o+PjJdfDA7aWYoKGQtcHwwKTwzKXttPTE7bz0yMzk0
O2JyZWFrIEwyNzI3fWNbaj4+Ml09cCsxO2FbcF09KG4+Pj4xMnwyMjQpJjI1NTtwPWNbaj4+Ml18
MDtjW2o+PjJdPXArMTthW3BdPShuPj4+NiY2M3wxMjgpJjI1NTtwPWNbaj4+Ml18MDtjW2o+PjJd
PXArMTthW3BdPShuJjYzfDEyOCkmMjU1O2JyZWFrfWlmKChoLWl8MCk8NCl7bT0xO289MjM5MTti
cmVhayBMMjcyN31wPWkrMnwwO3E9ZVtwPj4xXXwwO2lmKChxJjY0NTEyfDApIT01NjMyMCl7bT0y
O289MjM5MjticmVhayBMMjcyN31pZigoZC0oY1tqPj4yXXwwKXwwKTw0KXttPTE7bz0yMzk4O2Jy
ZWFrIEwyNzI3fXI9biY5NjA7aWYoKChyPDwxMCkrNjU1MzZ8bjw8MTAmNjQ1MTJ8cSYxMDIzKT4+
PjA+az4+PjApe209MjtvPTI0MDA7YnJlYWsgTDI3Mjd9Y1tnPj4yXT1wO3A9KHI+Pj42KSsxfDA7
cj1jW2o+PjJdfDA7Y1tqPj4yXT1yKzE7YVtyXT0ocD4+PjJ8MjQwKSYyNTU7cj1jW2o+PjJdfDA7
Y1tqPj4yXT1yKzE7YVtyXT0obj4+PjImMTV8cDw8NCY0OHwxMjgpJjI1NTtwPWNbaj4+Ml18MDtj
W2o+PjJdPXArMTthW3BdPShuPDw0JjQ4fHE+Pj42JjE1fDEyOCkmMjU1O3A9Y1tqPj4yXXwwO2Nb
aj4+Ml09cCsxO2FbcF09KHEmNjN8MTI4KSYyNTV9fXdoaWxlKDApO249KGNbZz4+Ml18MCkrMnww
O2NbZz4+Ml09bjtpZihuPj4+MDxmPj4+MCl7aT1ufWVsc2V7bT0wO289MjM5NTticmVha319aWYo
KG98MCk9PTIzODkpe3JldHVybiBtfDB9ZWxzZSBpZigob3wwKT09MjM5Myl7cmV0dXJuIG18MH1l
bHNlIGlmKChvfDApPT0yMzk0KXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTI0MDApe3JldHVy
biBtfDB9ZWxzZSBpZigob3wwKT09MjM4OCl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yMzkx
KXtyZXR1cm4gbXwwfWVsc2UgaWYoKG98MCk9PTIzOTIpe3JldHVybiBtfDB9ZWxzZSBpZigob3ww
KT09MjM5NSl7cmV0dXJuIG18MH1lbHNlIGlmKChvfDApPT0yMzk3KXtyZXR1cm4gbXwwfWVsc2Ug
aWYoKG98MCk9PTIzOTgpe3JldHVybiBtfDB9ZWxzZSBpZigob3wwKT09MjM5OSl7cmV0dXJuIG18
MH1yZXR1cm4gMH1mdW5jdGlvbiBqbShlLGYsZyxoLGksaixrLGwpe2U9ZXwwO2Y9ZnwwO2c9Z3ww
O2g9aHwwO2k9aXwwO2o9anwwO2s9a3wwO2w9bHwwO3ZhciBtPTAsbj0wLG89MCxwPTAscT0wLHI9
MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTA7Y1tnPj4yXT1lO2Nbaj4+Ml09aDtoPWNbZz4+
Ml18MDtkb3tpZigobCY0fDApPT0wKXttPWh9ZWxzZXtpZigoZi1ofDApPD0yKXttPWg7YnJlYWt9
aWYoKGFbaF18MCkhPS0xNyl7bT1oO2JyZWFrfWlmKChhW2grMXwwXXwwKSE9LTY5KXttPWg7YnJl
YWt9aWYoKGFbaCsyfDBdfDApIT0tNjUpe209aDticmVha31lPWgrM3wwO2NbZz4+Ml09ZTttPWV9
fXdoaWxlKDApO0wyNzcyOmRve2lmKG0+Pj4wPGY+Pj4wKXtoPWY7bD1pO2U9Y1tqPj4yXXwwO249
bTtMMjc3NDp3aGlsZSgxKXtpZihlPj4+MD49aT4+PjApe289bjticmVhayBMMjc3Mn1wPWFbbl18
MDtxPXAmMjU1O2lmKHE+Pj4wPms+Pj4wKXtyPTI7cz0yNDQ0O2JyZWFrfWRve2lmKHA8PDI0Pj4y
ND4tMSl7YltlPj4xXT1wJjI1NTtjW2c+PjJdPShjW2c+PjJdfDApKzF9ZWxzZXtpZigocCYyNTUp
PDE5NCl7cj0yO3M9MjQ1MzticmVhayBMMjc3NH1pZigocCYyNTUpPDIyNCl7aWYoKGgtbnwwKTwy
KXtyPTE7cz0yNDU0O2JyZWFrIEwyNzc0fXQ9ZFtuKzF8MF18MDtpZigodCYxOTJ8MCkhPTEyOCl7
cj0yO3M9MjQ1NTticmVhayBMMjc3NH11PXQmNjN8cTw8NiYxOTg0O2lmKHU+Pj4wPms+Pj4wKXty
PTI7cz0yNDU2O2JyZWFrIEwyNzc0fWJbZT4+MV09dSY2NTUzNTtjW2c+PjJdPShjW2c+PjJdfDAp
KzI7YnJlYWt9aWYoKHAmMjU1KTwyNDApe2lmKChoLW58MCk8Myl7cj0xO3M9MjQ1NzticmVhayBM
Mjc3NH11PWFbbisxfDBdfDA7c3dpdGNoKHF8MCl7Y2FzZSAyMjQ6e2lmKCh1Ji0zMik8PDI0Pj4y
NCE9LTk2KXtyPTI7cz0yNDUwO2JyZWFrIEwyNzc0fWJyZWFrfTtjYXNlIDIzNzp7aWYoKHUmLTMy
KTw8MjQ+PjI0IT0tMTI4KXtyPTI7cz0yNDUyO2JyZWFrIEwyNzc0fWJyZWFrfTtkZWZhdWx0Ontp
ZigodSYtNjQpPDwyND4+MjQhPS0xMjgpe3I9MjtzPTI0NjI7YnJlYWsgTDI3NzR9fX10PWRbbisy
fDBdfDA7aWYoKHQmMTkyfDApIT0xMjgpe3I9MjtzPTI0NDM7YnJlYWsgTDI3NzR9dj0odSYyNTUp
PDw2JjQwMzJ8cTw8MTJ8dCY2MztpZigodiY2NTUzNSk+Pj4wPms+Pj4wKXtyPTI7cz0yNDQyO2Jy
ZWFrIEwyNzc0fWJbZT4+MV09diY2NTUzNTtjW2c+PjJdPShjW2c+PjJdfDApKzM7YnJlYWt9aWYo
KHAmMjU1KT49MjQ1KXtyPTI7cz0yNDQ3O2JyZWFrIEwyNzc0fWlmKChoLW58MCk8NCl7cj0xO3M9
MjQ1ODticmVhayBMMjc3NH12PWFbbisxfDBdfDA7c3dpdGNoKHF8MCl7Y2FzZSAyNDA6e2lmKCh2
KzExMiYyNTUpPj00OCl7cj0yO3M9MjQ0ODticmVhayBMMjc3NH1icmVha307Y2FzZSAyNDQ6e2lm
KCh2Ji0xNik8PDI0Pj4yNCE9LTEyOCl7cj0yO3M9MjQ1OTticmVhayBMMjc3NH1icmVha307ZGVm
YXVsdDp7aWYoKHYmLTY0KTw8MjQ+PjI0IT0tMTI4KXtyPTI7cz0yNDYwO2JyZWFrIEwyNzc0fX19
dD1kW24rMnwwXXwwO2lmKCh0JjE5MnwwKSE9MTI4KXtyPTI7cz0yNDYxO2JyZWFrIEwyNzc0fXU9
ZFtuKzN8MF18MDtpZigodSYxOTJ8MCkhPTEyOCl7cj0yO3M9MjQ0OTticmVhayBMMjc3NH1pZigo
bC1lfDApPDQpe3I9MTtzPTI0NDU7YnJlYWsgTDI3NzR9dz1xJjc7eD12JjI1NTt2PXQ8PDY7eT11
JjYzO2lmKCh4PDwxMiYyNTgwNDh8dzw8MTh8diY0MDMyfHkpPj4+MD5rPj4+MCl7cj0yO3M9MjQ0
NjticmVhayBMMjc3NH1iW2U+PjFdPSh4PDwyJjYwfHQ+Pj40JjN8KCh4Pj4+NCYzfHc8PDIpPDw2
KSsxNjMyMHw1NTI5NikmNjU1MzU7dz0oY1tqPj4yXXwwKSsyfDA7Y1tqPj4yXT13O2Jbdz4+MV09
KHl8diY5NjB8NTYzMjApJjY1NTM1O2NbZz4+Ml09KGNbZz4+Ml18MCkrNH19d2hpbGUoMCk7cT0o
Y1tqPj4yXXwwKSsyfDA7Y1tqPj4yXT1xO3A9Y1tnPj4yXXwwO2lmKHA+Pj4wPGY+Pj4wKXtlPXE7
bj1wfWVsc2V7bz1wO2JyZWFrIEwyNzcyfX1pZigoc3wwKT09MjQ0Mil7cmV0dXJuIHJ8MH1lbHNl
IGlmKChzfDApPT0yNDQzKXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NDQpe3JldHVybiBy
fDB9ZWxzZSBpZigoc3wwKT09MjQ0OCl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDQ5KXty
ZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTApe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09
MjQ0NSl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDQ2KXtyZXR1cm4gcnwwfWVsc2UgaWYo
KHN8MCk9PTI0NDcpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ1Nil7cmV0dXJuIHJ8MH1l
bHNlIGlmKChzfDApPT0yNDU3KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NTgpe3JldHVy
biByfDB9ZWxzZSBpZigoc3wwKT09MjQ1OSl7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDYw
KXtyZXR1cm4gcnwwfWVsc2UgaWYoKHN8MCk9PTI0NjEpe3JldHVybiByfDB9ZWxzZSBpZigoc3ww
KT09MjQ2Mil7cmV0dXJuIHJ8MH1lbHNlIGlmKChzfDApPT0yNDUyKXtyZXR1cm4gcnwwfWVsc2Ug
aWYoKHN8MCk9PTI0NTMpe3JldHVybiByfDB9ZWxzZSBpZigoc3wwKT09MjQ1NCl7cmV0dXJuIHJ8
MH1lbHNlIGlmKChzfDApPT0yNDU1KXtyZXR1cm4gcnwwfX1lbHNle289bX19d2hpbGUoMCk7cj1v
Pj4+MDxmPj4+MHwwO3JldHVybiByfDB9ZnVuY3Rpb24gam4oYixjLGUsZixnKXtiPWJ8MDtjPWN8
MDtlPWV8MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxw
PTAscT0wLHI9MCxzPTAsdD0wLHU9MCx2PTA7ZG97aWYoKGcmNHwwKT09MCl7aD1ifWVsc2V7aWYo
KGMtYnwwKTw9Mil7aD1iO2JyZWFrfWlmKChhW2JdfDApIT0tMTcpe2g9YjticmVha31pZigoYVti
KzF8MF18MCkhPS02OSl7aD1iO2JyZWFrfWg9KGFbYisyfDBdfDApPT0tNjU/YiszfDA6Yn19d2hp
bGUoMCk7TDI4NDE6ZG97aWYoaD4+PjA8Yz4+PjAmKGV8MCkhPTApe2c9YztpPTA7aj1oO0wyODQz
OndoaWxlKDEpe2s9YVtqXXwwO2w9ayYyNTU7aWYobD4+PjA+Zj4+PjApe209ajticmVhayBMMjg0
MX1kb3tpZihrPDwyND4+MjQ+LTEpe249aisxfDA7bz1pfWVsc2V7aWYoKGsmMjU1KTwxOTQpe209
ajticmVhayBMMjg0MX1pZigoayYyNTUpPDIyNCl7aWYoKGctanwwKTwyKXttPWo7YnJlYWsgTDI4
NDF9cD1kW2orMXwwXXwwO2lmKChwJjE5MnwwKSE9MTI4KXttPWo7YnJlYWsgTDI4NDF9aWYoKHAm
NjN8bDw8NiYxOTg0KT4+PjA+Zj4+PjApe209ajticmVhayBMMjg0MX1uPWorMnwwO289aTticmVh
a31pZigoayYyNTUpPDI0MCl7cT1qO2lmKChnLXF8MCk8Myl7bT1qO2JyZWFrIEwyODQxfXA9YVtq
KzF8MF18MDtzd2l0Y2gobHwwKXtjYXNlIDIyNDp7aWYoKHAmLTMyKTw8MjQ+PjI0IT0tOTYpe3I9
MjQ4MzticmVhayBMMjg0M31icmVha307Y2FzZSAyMzc6e2lmKChwJi0zMik8PDI0Pj4yNCE9LTEy
OCl7cj0yNDg1O2JyZWFrIEwyODQzfWJyZWFrfTtkZWZhdWx0OntpZigocCYtNjQpPDwyND4+MjQh
PS0xMjgpe3I9MjQ4NzticmVhayBMMjg0M319fXM9ZFtqKzJ8MF18MDtpZigocyYxOTJ8MCkhPTEy
OCl7bT1qO2JyZWFrIEwyODQxfWlmKCgocCYyNTUpPDw2JjQwMzJ8bDw8MTImNjE0NDB8cyY2Myk+
Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDI4NDF9bj1qKzN8MDtvPWk7YnJlYWt9aWYoKGsmMjU1KT49
MjQ1KXttPWo7YnJlYWsgTDI4NDF9dD1qO2lmKChnLXR8MCk8NCl7bT1qO2JyZWFrIEwyODQxfWlm
KChlLWl8MCk+Pj4wPDIpe209ajticmVhayBMMjg0MX1zPWFbaisxfDBdfDA7c3dpdGNoKGx8MCl7
Y2FzZSAyNDA6e2lmKChzKzExMiYyNTUpPj00OCl7cj0yNDk2O2JyZWFrIEwyODQzfWJyZWFrfTtj
YXNlIDI0NDp7aWYoKHMmLTE2KTw8MjQ+PjI0IT0tMTI4KXtyPTI0OTg7YnJlYWsgTDI4NDN9YnJl
YWt9O2RlZmF1bHQ6e2lmKChzJi02NCk8PDI0Pj4yNCE9LTEyOCl7cj0yNTAwO2JyZWFrIEwyODQz
fX19cD1kW2orMnwwXXwwO2lmKChwJjE5MnwwKSE9MTI4KXttPWo7YnJlYWsgTDI4NDF9dT1kW2or
M3wwXXwwO2lmKCh1JjE5MnwwKSE9MTI4KXttPWo7YnJlYWsgTDI4NDF9aWYoKChzJjI1NSk8PDEy
JjI1ODA0OHxsPDwxOCYxODM1MDA4fHA8PDYmNDAzMnx1JjYzKT4+PjA+Zj4+PjApe209ajticmVh
ayBMMjg0MX1uPWorNHwwO289aSsxfDB9fXdoaWxlKDApO2w9bysxfDA7aWYobj4+PjA8Yz4+PjAm
bD4+PjA8ZT4+PjApe2k9bDtqPW59ZWxzZXttPW47YnJlYWsgTDI4NDF9fWlmKChyfDApPT0yNTAw
KXt2PXQtYnwwO3JldHVybiB2fDB9ZWxzZSBpZigocnwwKT09MjQ5Nil7dj10LWJ8MDtyZXR1cm4g
dnwwfWVsc2UgaWYoKHJ8MCk9PTI0OTgpe3Y9dC1ifDA7cmV0dXJuIHZ8MH1lbHNlIGlmKChyfDAp
PT0yNDgzKXt2PXEtYnwwO3JldHVybiB2fDB9ZWxzZSBpZigocnwwKT09MjQ4NSl7dj1xLWJ8MDty
ZXR1cm4gdnwwfWVsc2UgaWYoKHJ8MCk9PTI0ODcpe3Y9cS1ifDA7cmV0dXJuIHZ8MH19ZWxzZXtt
PWh9fXdoaWxlKDApO3Y9bS1ifDA7cmV0dXJuIHZ8MH1mdW5jdGlvbiBqbyhhLGIsZCxlLGYsZyxo
LGope2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9aHwwO2o9anwwO3ZhciBr
PTAsbD0wO2I9aTtpPWkrMTZ8MDthPWJ8MDtrPWIrOHwwO2NbYT4+Ml09ZDtjW2s+PjJdPWc7bD1q
bShkLGUsYSxnLGgsaywxMTE0MTExLDApfDA7Y1tmPj4yXT1kKygoY1thPj4yXXwwKS1kKTtjW2o+
PjJdPWcrKChjW2s+PjJdfDApLWc+PjE8PDEpO2k9YjtyZXR1cm4gbHwwfWZ1bmN0aW9uIGpwKGEs
YixjLGQsZSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7cmV0dXJuIGpuKGMsZCxlLDEx
MTQxMTEsMCl8MH1mdW5jdGlvbiBqcShhKXthPWF8MDtkZShhfDApO2tTKGEpO3JldHVybn1mdW5j
dGlvbiBqcihhLGIsZCxlLGYsZyxoLGope2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9
Z3wwO2g9aHwwO2o9anwwO3ZhciBrPTAsbD0wO2I9aTtpPWkrMTZ8MDthPWJ8MDtrPWIrOHwwO2Nb
YT4+Ml09ZDtjW2s+PjJdPWc7bD1qdyhkLGUsYSxnLGgsaywxMTE0MTExLDApfDA7Y1tmPj4yXT1k
KygoY1thPj4yXXwwKS1kPj4yPDwyKTtjW2o+PjJdPWcrKChjW2s+PjJdfDApLWcpO2k9YjtyZXR1
cm4gbHwwfWZ1bmN0aW9uIGpzKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Y1tmPj4yXT1kO3JldHVybiAzfWZ1bmN0aW9uIGp0KGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0
aW9uIGp1KGEpe2E9YXwwO3JldHVybiAwfWZ1bmN0aW9uIGp2KGEpe2E9YXwwO3JldHVybiA0fWZ1
bmN0aW9uIGp3KGIsZCxlLGYsZyxoLGksail7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7aT1pfDA7aj1qfDA7dmFyIGs9MCxsPTAsbT0wLG49MDtjW2U+PjJdPWI7Y1toPj4yXT1m
O2Rve2lmKChqJjJ8MCkhPTApe2lmKChnLWZ8MCk8Myl7az0xO3JldHVybiBrfDB9ZWxzZXtjW2g+
PjJdPWYrMTthW2ZdPS0xNztiPWNbaD4+Ml18MDtjW2g+PjJdPWIrMTthW2JdPS02OTtiPWNbaD4+
Ml18MDtjW2g+PjJdPWIrMTthW2JdPS02NTticmVha319fXdoaWxlKDApO2Y9Y1tlPj4yXXwwO2lm
KGY+Pj4wPj1kPj4+MCl7az0wO3JldHVybiBrfDB9aj1nO2c9ZjtMMjkxMjp3aGlsZSgxKXtmPWNb
Zz4+Ml18MDtpZigoZiYtMjA0OHwwKT09NTUyOTZ8Zj4+PjA+aT4+PjApe2s9MjtsPTI1NDg7YnJl
YWt9ZG97aWYoZj4+PjA8MTI4KXtiPWNbaD4+Ml18MDtpZigoai1ifDApPDEpe2s9MTtsPTI1NDQ7
YnJlYWsgTDI5MTJ9Y1toPj4yXT1iKzE7YVtiXT1mJjI1NX1lbHNle2lmKGY+Pj4wPDIwNDgpe2I9
Y1toPj4yXXwwO2lmKChqLWJ8MCk8Mil7az0xO2w9MjU0NzticmVhayBMMjkxMn1jW2g+PjJdPWIr
MTthW2JdPShmPj4+NnwxOTIpJjI1NTtiPWNbaD4+Ml18MDtjW2g+PjJdPWIrMTthW2JdPShmJjYz
fDEyOCkmMjU1O2JyZWFrfWI9Y1toPj4yXXwwO209ai1ifDA7aWYoZj4+PjA8NjU1MzYpe2lmKCht
fDApPDMpe2s9MTtsPTI1NDk7YnJlYWsgTDI5MTJ9Y1toPj4yXT1iKzE7YVtiXT0oZj4+PjEyfDIy
NCkmMjU1O249Y1toPj4yXXwwO2NbaD4+Ml09bisxO2Fbbl09KGY+Pj42JjYzfDEyOCkmMjU1O249
Y1toPj4yXXwwO2NbaD4+Ml09bisxO2Fbbl09KGYmNjN8MTI4KSYyNTU7YnJlYWt9ZWxzZXtpZigo
bXwwKTw0KXtrPTE7bD0yNTQyO2JyZWFrIEwyOTEyfWNbaD4+Ml09YisxO2FbYl09KGY+Pj4xOHwy
NDApJjI1NTtiPWNbaD4+Ml18MDtjW2g+PjJdPWIrMTthW2JdPShmPj4+MTImNjN8MTI4KSYyNTU7
Yj1jW2g+PjJdfDA7Y1toPj4yXT1iKzE7YVtiXT0oZj4+PjYmNjN8MTI4KSYyNTU7Yj1jW2g+PjJd
fDA7Y1toPj4yXT1iKzE7YVtiXT0oZiY2M3wxMjgpJjI1NTticmVha319fXdoaWxlKDApO2Y9KGNb
ZT4+Ml18MCkrNHwwO2NbZT4+Ml09ZjtpZihmPj4+MDxkPj4+MCl7Zz1mfWVsc2V7az0wO2w9MjU0
MzticmVha319aWYoKGx8MCk9PTI1NDMpe3JldHVybiBrfDB9ZWxzZSBpZigobHwwKT09MjU0Mil7
cmV0dXJuIGt8MH1lbHNlIGlmKChsfDApPT0yNTQ0KXtyZXR1cm4ga3wwfWVsc2UgaWYoKGx8MCk9
PTI1NDgpe3JldHVybiBrfDB9ZWxzZSBpZigobHwwKT09MjU0OSl7cmV0dXJuIGt8MH1lbHNlIGlm
KChsfDApPT0yNTQ3KXtyZXR1cm4ga3wwfXJldHVybiAwfWZ1bmN0aW9uIGp4KGIsZSxmLGcsaCxp
LGosayl7Yj1ifDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1ofDA7aT1pfDA7aj1qfDA7az1rfDA7dmFy
IGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9MDtjW2Y+PjJdPWI7Y1tpPj4y
XT1nO2c9Y1tmPj4yXXwwO2Rve2lmKChrJjR8MCk9PTApe2w9Z31lbHNle2lmKChlLWd8MCk8PTIp
e2w9ZzticmVha31pZigoYVtnXXwwKSE9LTE3KXtsPWc7YnJlYWt9aWYoKGFbZysxfDBdfDApIT0t
Njkpe2w9ZzticmVha31pZigoYVtnKzJ8MF18MCkhPS02NSl7bD1nO2JyZWFrfWI9ZyszfDA7Y1tm
Pj4yXT1iO2w9Yn19d2hpbGUoMCk7TDI5NDQ6ZG97aWYobD4+PjA8ZT4+PjApe2c9ZTtrPWNbaT4+
Ml18MDtiPWw7TDI5NDY6d2hpbGUoMSl7aWYoaz4+PjA+PWg+Pj4wKXttPWI7YnJlYWsgTDI5NDR9
bj1hW2JdfDA7bz1uJjI1NTtkb3tpZihuPDwyND4+MjQ+LTEpe2lmKG8+Pj4wPmo+Pj4wKXtwPTI7
cT0yNjA5O2JyZWFrIEwyOTQ2fWNbaz4+Ml09bztjW2Y+PjJdPShjW2Y+PjJdfDApKzF9ZWxzZXtp
ZigobiYyNTUpPDE5NCl7cD0yO3E9MjYwMjticmVhayBMMjk0Nn1pZigobiYyNTUpPDIyNCl7aWYo
KGctYnwwKTwyKXtwPTE7cT0yNjA1O2JyZWFrIEwyOTQ2fXI9ZFtiKzF8MF18MDtpZigociYxOTJ8
MCkhPTEyOCl7cD0yO3E9MjU5ODticmVhayBMMjk0Nn1zPXImNjN8bzw8NiYxOTg0O2lmKHM+Pj4w
Pmo+Pj4wKXtwPTI7cT0yNjA0O2JyZWFrIEwyOTQ2fWNbaz4+Ml09cztjW2Y+PjJdPShjW2Y+PjJd
fDApKzI7YnJlYWt9aWYoKG4mMjU1KTwyNDApe2lmKChnLWJ8MCk8Myl7cD0xO3E9MjYwNjticmVh
ayBMMjk0Nn1zPWFbYisxfDBdfDA7c3dpdGNoKG98MCl7Y2FzZSAyMjQ6e2lmKChzJi0zMik8PDI0
Pj4yNCE9LTk2KXtwPTI7cT0yNTkxO2JyZWFrIEwyOTQ2fWJyZWFrfTtjYXNlIDIzNzp7aWYoKHMm
LTMyKTw8MjQ+PjI0IT0tMTI4KXtwPTI7cT0yNTkzO2JyZWFrIEwyOTQ2fWJyZWFrfTtkZWZhdWx0
OntpZigocyYtNjQpPDwyND4+MjQhPS0xMjgpe3A9MjtxPTI2MDM7YnJlYWsgTDI5NDZ9fX1yPWRb
YisyfDBdfDA7aWYoKHImMTkyfDApIT0xMjgpe3A9MjtxPTI1OTQ7YnJlYWsgTDI5NDZ9dD0ocyYy
NTUpPDw2JjQwMzJ8bzw8MTImNjE0NDB8ciY2MztpZih0Pj4+MD5qPj4+MCl7cD0yO3E9MjU5Mjti
cmVhayBMMjk0Nn1jW2s+PjJdPXQ7Y1tmPj4yXT0oY1tmPj4yXXwwKSszO2JyZWFrfWlmKChuJjI1
NSk+PTI0NSl7cD0yO3E9MjYwNzticmVhayBMMjk0Nn1pZigoZy1ifDApPDQpe3A9MTtxPTI2MDg7
YnJlYWsgTDI5NDZ9dD1hW2IrMXwwXXwwO3N3aXRjaChvfDApe2Nhc2UgMjQwOntpZigodCsxMTIm
MjU1KT49NDgpe3A9MjtxPTI1OTA7YnJlYWsgTDI5NDZ9YnJlYWt9O2Nhc2UgMjQ0OntpZigodCYt
MTYpPDwyND4+MjQhPS0xMjgpe3A9MjtxPTI1OTY7YnJlYWsgTDI5NDZ9YnJlYWt9O2RlZmF1bHQ6
e2lmKCh0Ji02NCk8PDI0Pj4yNCE9LTEyOCl7cD0yO3E9MjU5NzticmVhayBMMjk0Nn19fXI9ZFti
KzJ8MF18MDtpZigociYxOTJ8MCkhPTEyOCl7cD0yO3E9MjU5OTticmVhayBMMjk0Nn1zPWRbYisz
fDBdfDA7aWYoKHMmMTkyfDApIT0xMjgpe3A9MjtxPTI2MDE7YnJlYWsgTDI5NDZ9dT0odCYyNTUp
PDwxMiYyNTgwNDh8bzw8MTgmMTgzNTAwOHxyPDw2JjQwMzJ8cyY2MztpZih1Pj4+MD5qPj4+MCl7
cD0yO3E9MjYwMDticmVhayBMMjk0Nn1jW2s+PjJdPXU7Y1tmPj4yXT0oY1tmPj4yXXwwKSs0fX13
aGlsZSgwKTtvPShjW2k+PjJdfDApKzR8MDtjW2k+PjJdPW87bj1jW2Y+PjJdfDA7aWYobj4+PjA8
ZT4+PjApe2s9bztiPW59ZWxzZXttPW47YnJlYWsgTDI5NDR9fWlmKChxfDApPT0yNTk3KXtyZXR1
cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI1OTgpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjU5
OSl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjAwKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8
MCk9PTI1OTMpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjU5NCl7cmV0dXJuIHB8MH1lbHNl
IGlmKChxfDApPT0yNTk2KXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDUpe3JldHVybiBw
fDB9ZWxzZSBpZigocXwwKT09MjYwNil7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjA3KXty
ZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDgpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09
MjYwOSl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNTkwKXtyZXR1cm4gcHwwfWVsc2UgaWYo
KHF8MCk9PTI1OTEpe3JldHVybiBwfDB9ZWxzZSBpZigocXwwKT09MjU5Mil7cmV0dXJuIHB8MH1l
bHNlIGlmKChxfDApPT0yNjAxKXtyZXR1cm4gcHwwfWVsc2UgaWYoKHF8MCk9PTI2MDIpe3JldHVy
biBwfDB9ZWxzZSBpZigocXwwKT09MjYwMyl7cmV0dXJuIHB8MH1lbHNlIGlmKChxfDApPT0yNjA0
KXtyZXR1cm4gcHwwfX1lbHNle209bH19d2hpbGUoMCk7cD1tPj4+MDxlPj4+MHwwO3JldHVybiBw
fDB9ZnVuY3Rpb24gankoYixjLGUsZixnKXtiPWJ8MDtjPWN8MDtlPWV8MDtmPWZ8MDtnPWd8MDt2
YXIgaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAsdD0wLHU9
MDtkb3tpZigoZyY0fDApPT0wKXtoPWJ9ZWxzZXtpZigoYy1ifDApPD0yKXtoPWI7YnJlYWt9aWYo
KGFbYl18MCkhPS0xNyl7aD1iO2JyZWFrfWlmKChhW2IrMXwwXXwwKSE9LTY5KXtoPWI7YnJlYWt9
aD0oYVtiKzJ8MF18MCk9PS02NT9iKzN8MDpifX13aGlsZSgwKTtMMzAxMTpkb3tpZihoPj4+MDxj
Pj4+MCYoZXwwKSE9MCl7Zz1jO2k9MTtqPWg7TDMwMTM6d2hpbGUoMSl7az1hW2pdfDA7bD1rJjI1
NTtkb3tpZihrPDwyND4+MjQ+LTEpe2lmKGw+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDMwMTF9bj1q
KzF8MH1lbHNle2lmKChrJjI1NSk8MTk0KXttPWo7YnJlYWsgTDMwMTF9aWYoKGsmMjU1KTwyMjQp
e2lmKChnLWp8MCk8Mil7bT1qO2JyZWFrIEwzMDExfW89ZFtqKzF8MF18MDtpZigobyYxOTJ8MCkh
PTEyOCl7bT1qO2JyZWFrIEwzMDExfWlmKChvJjYzfGw8PDYmMTk4NCk+Pj4wPmY+Pj4wKXttPWo7
YnJlYWsgTDMwMTF9bj1qKzJ8MDticmVha31pZigoayYyNTUpPDI0MCl7cD1qO2lmKChnLXB8MCk8
Myl7bT1qO2JyZWFrIEwzMDExfW89YVtqKzF8MF18MDtzd2l0Y2gobHwwKXtjYXNlIDIyNDp7aWYo
KG8mLTMyKTw8MjQ+PjI0IT0tOTYpe3E9MjYzMDticmVhayBMMzAxM31icmVha307Y2FzZSAyMzc6
e2lmKChvJi0zMik8PDI0Pj4yNCE9LTEyOCl7cT0yNjMyO2JyZWFrIEwzMDEzfWJyZWFrfTtkZWZh
dWx0OntpZigobyYtNjQpPDwyND4+MjQhPS0xMjgpe3E9MjYzNDticmVhayBMMzAxM319fXI9ZFtq
KzJ8MF18MDtpZigociYxOTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwzMDExfWlmKCgobyYyNTUpPDw2
JjQwMzJ8bDw8MTImNjE0NDB8ciY2Myk+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDMwMTF9bj1qKzN8
MDticmVha31pZigoayYyNTUpPj0yNDUpe209ajticmVhayBMMzAxMX1zPWo7aWYoKGctc3wwKTw0
KXttPWo7YnJlYWsgTDMwMTF9cj1hW2orMXwwXXwwO3N3aXRjaChsfDApe2Nhc2UgMjQwOntpZigo
cisxMTImMjU1KT49NDgpe3E9MjY0MjticmVhayBMMzAxM31icmVha307Y2FzZSAyNDQ6e2lmKChy
Ji0xNik8PDI0Pj4yNCE9LTEyOCl7cT0yNjQ0O2JyZWFrIEwzMDEzfWJyZWFrfTtkZWZhdWx0Ontp
ZigociYtNjQpPDwyND4+MjQhPS0xMjgpe3E9MjY0NjticmVhayBMMzAxM319fW89ZFtqKzJ8MF18
MDtpZigobyYxOTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwzMDExfXQ9ZFtqKzN8MF18MDtpZigodCYx
OTJ8MCkhPTEyOCl7bT1qO2JyZWFrIEwzMDExfWlmKCgociYyNTUpPDwxMiYyNTgwNDh8bDw8MTgm
MTgzNTAwOHxvPDw2JjQwMzJ8dCY2Myk+Pj4wPmY+Pj4wKXttPWo7YnJlYWsgTDMwMTF9bj1qKzR8
MH19d2hpbGUoMCk7aWYoIShuPj4+MDxjPj4+MCZpPj4+MDxlPj4+MCkpe209bjticmVhayBMMzAx
MX1pPWkrMXwwO2o9bn1pZigocXwwKT09MjY0NCl7dT1zLWJ8MDtyZXR1cm4gdXwwfWVsc2UgaWYo
KHF8MCk9PTI2NDIpe3U9cy1ifDA7cmV0dXJuIHV8MH1lbHNlIGlmKChxfDApPT0yNjMwKXt1PXAt
YnwwO3JldHVybiB1fDB9ZWxzZSBpZigocXwwKT09MjYzMil7dT1wLWJ8MDtyZXR1cm4gdXwwfWVs
c2UgaWYoKHF8MCk9PTI2MzQpe3U9cC1ifDA7cmV0dXJuIHV8MH1lbHNlIGlmKChxfDApPT0yNjQ2
KXt1PXMtYnwwO3JldHVybiB1fDB9fWVsc2V7bT1ofX13aGlsZSgwKTt1PW0tYnwwO3JldHVybiB1
fDB9ZnVuY3Rpb24ganooYil7Yj1ifDA7cmV0dXJuIGFbYis4fDBdfDB9ZnVuY3Rpb24gakEoYSl7
YT1hfDA7cmV0dXJuIGNbYSs4Pj4yXXwwfWZ1bmN0aW9uIGpCKGIpe2I9YnwwO3JldHVybiBhW2Ir
OXwwXXwwfWZ1bmN0aW9uIGpDKGEpe2E9YXwwO3JldHVybiBjW2ErMTI+PjJdfDB9ZnVuY3Rpb24g
akQoYSxiLGQsZSxmLGcsaCxqKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDto
PWh8MDtqPWp8MDt2YXIgaz0wLGw9MDtiPWk7aT1pKzE2fDA7YT1ifDA7az1iKzh8MDtjW2E+PjJd
PWQ7Y1trPj4yXT1nO2w9angoZCxlLGEsZyxoLGssMTExNDExMSwwKXwwO2NbZj4+Ml09ZCsoKGNb
YT4+Ml18MCktZCk7Y1tqPj4yXT1nKygoY1trPj4yXXwwKS1nPj4yPDwyKTtpPWI7cmV0dXJuIGx8
MH1mdW5jdGlvbiBqRShhLGIsYyxkLGUpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO3Jl
dHVybiBqeShjLGQsZSwxMTE0MTExLDApfDB9ZnVuY3Rpb24gakYoYSl7YT1hfDA7ZGUoYXwwKTtr
UyhhKTtyZXR1cm59ZnVuY3Rpb24gakcoYSl7YT1hfDA7ZGUoYXwwKTtrUyhhKTtyZXR1cm59ZnVu
Y3Rpb24gakgoYSl7YT1hfDA7Y1thPj4yXT0zMDMyO2RQKGErMTJ8MCk7ZGUoYXwwKTtrUyhhKTty
ZXR1cm59ZnVuY3Rpb24gakkoYSl7YT1hfDA7Y1thPj4yXT0zMDMyO2RQKGErMTJ8MCk7ZGUoYXww
KTtyZXR1cm59ZnVuY3Rpb24gakooYSl7YT1hfDA7Y1thPj4yXT0yOTg0O2RQKGErMTZ8MCk7ZGUo
YXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24gaksoYSl7YT1hfDA7Y1thPj4yXT0yOTg0O2RQKGEr
MTZ8MCk7ZGUoYXwwKTtyZXR1cm59ZnVuY3Rpb24gakwoYSxiKXthPWF8MDtiPWJ8MDtkWShhLGIr
MTJ8MCk7cmV0dXJufWZ1bmN0aW9uIGpNKGEsYil7YT1hfDA7Yj1ifDA7ZFkoYSxiKzE2fDApO3Jl
dHVybn1mdW5jdGlvbiBqTihhLGIpe2E9YXwwO2I9YnwwO2RaKGEsMTI4OCw0KTtyZXR1cm59ZnVu
Y3Rpb24gak8oYSxiKXthPWF8MDtiPWJ8MDtleChhLDEyNjQsa20oMTI2NCl8MCk7cmV0dXJufWZ1
bmN0aW9uIGpQKGEsYil7YT1hfDA7Yj1ifDA7ZFooYSwxMjU2LDUpO3JldHVybn1mdW5jdGlvbiBq
UShhLGIpe2E9YXwwO2I9YnwwO2V4KGEsMTIzMixrbSgxMjMyKXwwKTtyZXR1cm59ZnVuY3Rpb24g
alIoYil7Yj1ifDA7dmFyIGQ9MDtpZigoYVsxNjM1Ml18MCkhPTApe2Q9Y1szNzAyXXwwO3JldHVy
biBkfDB9aWYoKGJjKDE2MzUyKXwwKT09MCl7ZD1jWzM3MDJdfDA7cmV0dXJuIGR8MH1kb3tpZigo
YVsxNjIzMl18MCk9PTApe2lmKChiYygxNjIzMil8MCk9PTApe2JyZWFrfWskKDExMzQ0LDAsMTY4
KTthJCgyNjYsMCx1fDApfDB9fXdoaWxlKDApO2RRKDExMzQ0LDE1MzYpfDA7ZFEoMTEzNTYsMTUy
OCl8MDtkUSgxMTM2OCwxNTIwKXwwO2RRKDExMzgwLDE1MDQpfDA7ZFEoMTEzOTIsMTQ4OCl8MDtk
USgxMTQwNCwxNDgwKXwwO2RRKDExNDE2LDE0NjQpfDA7ZFEoMTE0MjgsMTQ1Nil8MDtkUSgxMTQ0
MCwxNDQ4KXwwO2RRKDExNDUyLDE0NDApfDA7ZFEoMTE0NjQsMTQzMil8MDtkUSgxMTQ3NiwxNDAw
KXwwO2RRKDExNDg4LDEzOTIpfDA7ZFEoMTE1MDAsMTM4NCl8MDtjWzM3MDJdPTExMzQ0O2Q9Y1sz
NzAyXXwwO3JldHVybiBkfDB9ZnVuY3Rpb24galMoYil7Yj1ifDA7dmFyIGQ9MDtpZigoYVsxNjI5
Nl18MCkhPTApe2Q9Y1szNjgwXXwwO3JldHVybiBkfDB9aWYoKGJjKDE2Mjk2KXwwKT09MCl7ZD1j
WzM2ODBdfDA7cmV0dXJuIGR8MH1kb3tpZigoYVsxNjIwOF18MCk9PTApe2lmKChiYygxNjIwOCl8
MCk9PTApe2JyZWFrfWskKDEwNjAwLDAsMTY4KTthJCgxNDgsMCx1fDApfDB9fXdoaWxlKDApO2Vm
KDEwNjAwLDE5MTIpfDA7ZWYoMTA2MTIsMTg4MCl8MDtlZigxMDYyNCwxODQ4KXwwO2VmKDEwNjM2
LDE4MDgpfDA7ZWYoMTA2NDgsMTc2OCl8MDtlZigxMDY2MCwxNzM2KXwwO2VmKDEwNjcyLDE2OTYp
fDA7ZWYoMTA2ODQsMTY4MCl8MDtlZigxMDY5NiwxNjI0KXwwO2VmKDEwNzA4LDE2MDgpfDA7ZWYo
MTA3MjAsMTU5Mil8MDtlZigxMDczMiwxNTc2KXwwO2VmKDEwNzQ0LDE1NjApfDA7ZWYoMTA3NTYs
MTU0NCl8MDtjWzM2ODBdPTEwNjAwO2Q9Y1szNjgwXXwwO3JldHVybiBkfDB9ZnVuY3Rpb24galQo
Yil7Yj1ifDA7dmFyIGQ9MDtpZigoYVsxNjM0NF18MCkhPTApe2Q9Y1szNzAwXXwwO3JldHVybiBk
fDB9aWYoKGJjKDE2MzQ0KXwwKT09MCl7ZD1jWzM3MDBdfDA7cmV0dXJuIGR8MH1kb3tpZigoYVsx
NjIyNF18MCk9PTApe2lmKChiYygxNjIyNCl8MCk9PTApe2JyZWFrfWskKDExMDU2LDAsMjg4KTth
JCgxNzAsMCx1fDApfDB9fXdoaWxlKDApO2RRKDExMDU2LDI4OCl8MDtkUSgxMTA2OCwyNzIpfDA7
ZFEoMTEwODAsMjY0KXwwO2RRKDExMDkyLDI1Nil8MDtkUSgxMTEwNCwyNDgpfDA7ZFEoMTExMTYs
MjQwKXwwO2RRKDExMTI4LDIzMil8MDtkUSgxMTE0MCwyMjQpfDA7ZFEoMTExNTIsMTY4KXwwO2RR
KDExMTY0LDE2MCl8MDtkUSgxMTE3NiwxNDQpfDA7ZFEoMTExODgsMTI4KXwwO2RRKDExMjAwLDEy
MCl8MDtkUSgxMTIxMiwxMTIpfDA7ZFEoMTEyMjQsMTA0KXwwO2RRKDExMjM2LDk2KXwwO2RRKDEx
MjQ4LDI0OCl8MDtkUSgxMTI2MCw4OCl8MDtkUSgxMTI3Miw4MCl8MDtkUSgxMTI4NCwxOTc2KXww
O2RRKDExMjk2LDE5NjgpfDA7ZFEoMTEzMDgsMTk2MCl8MDtkUSgxMTMyMCwxOTUyKXwwO2RRKDEx
MzMyLDE5NDQpfDA7Y1szNzAwXT0xMTA1NjtkPWNbMzcwMF18MDtyZXR1cm4gZHwwfWZ1bmN0aW9u
IGpVKGIpe2I9YnwwO3ZhciBkPTA7aWYoKGFbMTYyODhdfDApIT0wKXtkPWNbMzY3OF18MDtyZXR1
cm4gZHwwfWlmKChiYygxNjI4OCl8MCk9PTApe2Q9Y1szNjc4XXwwO3JldHVybiBkfDB9ZG97aWYo
KGFbMTYyMDBdfDApPT0wKXtpZigoYmMoMTYyMDApfDApPT0wKXticmVha31rJCgxMDMxMiwwLDI4
OCk7YSQoMTIyLDAsdXwwKXwwfX13aGlsZSgwKTtlZigxMDMxMiw4MjQpfDA7ZWYoMTAzMjQsNzg0
KXwwO2VmKDEwMzM2LDc2MCl8MDtlZigxMDM0OCw3MzYpfDA7ZWYoMTAzNjAsNDI0KXwwO2VmKDEw
MzcyLDcxMil8MDtlZigxMDM4NCw2ODgpfDA7ZWYoMTAzOTYsNjU2KXwwO2VmKDEwNDA4LDYxNil8
MDtlZigxMDQyMCw1ODQpfDA7ZWYoMTA0MzIsNTQ0KXwwO2VmKDEwNDQ0LDUwNCl8MDtlZigxMDQ1
Niw0ODgpfDA7ZWYoMTA0NjgsNDcyKXwwO2VmKDEwNDgwLDQ1Nil8MDtlZigxMDQ5Miw0NDApfDA7
ZWYoMTA1MDQsNDI0KXwwO2VmKDEwNTE2LDQwOCl8MDtlZigxMDUyOCwzOTIpfDA7ZWYoMTA1NDAs
Mzc2KXwwO2VmKDEwNTUyLDM0NCl8MDtlZigxMDU2NCwzMjgpfDA7ZWYoMTA1NzYsMzEyKXwwO2Vm
KDEwNTg4LDI5Nil8MDtjWzM2NzhdPTEwMzEyO2Q9Y1szNjc4XXwwO3JldHVybiBkfDB9ZnVuY3Rp
b24galYoYil7Yj1ifDA7dmFyIGQ9MDtpZigoYVsxNjM2MF18MCkhPTApe2Q9Y1szNzA0XXwwO3Jl
dHVybiBkfDB9aWYoKGJjKDE2MzYwKXwwKT09MCl7ZD1jWzM3MDRdfDA7cmV0dXJuIGR8MH1kb3tp
ZigoYVsxNjI0MF18MCk9PTApe2lmKChiYygxNjI0MCl8MCk9PTApe2JyZWFrfWskKDExNTEyLDAs
Mjg4KTthJCgxMjAsMCx1fDApfDB9fXdoaWxlKDApO2RRKDExNTEyLDg2NCl8MDtkUSgxMTUyNCw4
NTYpfDA7Y1szNzA0XT0xMTUxMjtkPWNbMzcwNF18MDtyZXR1cm4gZHwwfWZ1bmN0aW9uIGpXKGIp
e2I9YnwwO3ZhciBkPTA7aWYoKGFbMTYzMDRdfDApIT0wKXtkPWNbMzY4Ml18MDtyZXR1cm4gZHww
fWlmKChiYygxNjMwNCl8MCk9PTApe2Q9Y1szNjgyXXwwO3JldHVybiBkfDB9ZG97aWYoKGFbMTYy
MTZdfDApPT0wKXtpZigoYmMoMTYyMTYpfDApPT0wKXticmVha31rJCgxMDc2OCwwLDI4OCk7YSQo
MjQwLDAsdXwwKXwwfX13aGlsZSgwKTtlZigxMDc2OCw4ODgpfDA7ZWYoMTA3ODAsODcyKXwwO2Nb
MzY4Ml09MTA3Njg7ZD1jWzM2ODJdfDA7cmV0dXJuIGR8MH1mdW5jdGlvbiBqWChiKXtiPWJ8MDtp
ZigoYVsxNjM2OF18MCkhPTApe3JldHVybiAxNDgyNH1pZigoYmMoMTYzNjgpfDApPT0wKXtyZXR1
cm4gMTQ4MjR9ZFooMTQ4MjQsMTIxNiw4KTthJCgyNTgsMTQ4MjQsdXwwKXwwO3JldHVybiAxNDgy
NH1mdW5jdGlvbiBqWShiKXtiPWJ8MDtpZigoYVsxNjMxMl18MCkhPTApe3JldHVybiAxNDczNn1p
ZigoYmMoMTYzMTIpfDApPT0wKXtyZXR1cm4gMTQ3MzZ9ZXgoMTQ3MzYsMTE3NixrbSgxMTc2KXww
KTthJCgxOTIsMTQ3MzYsdXwwKXwwO3JldHVybiAxNDczNn1mdW5jdGlvbiBqWihiKXtiPWJ8MDtp
ZigoYVsxNjM5Ml18MCkhPTApe3JldHVybiAxNDg3Mn1pZigoYmMoMTYzOTIpfDApPT0wKXtyZXR1
cm4gMTQ4NzJ9ZFooMTQ4NzIsMTE0NCw4KTthJCgyNTgsMTQ4NzIsdXwwKXwwO3JldHVybiAxNDg3
Mn1mdW5jdGlvbiBqXyhiKXtiPWJ8MDtpZigoYVsxNjMzNl18MCkhPTApe3JldHVybiAxNDc4NH1p
ZigoYmMoMTYzMzYpfDApPT0wKXtyZXR1cm4gMTQ3ODR9ZXgoMTQ3ODQsMTEwNCxrbSgxMTA0KXww
KTthJCgxOTIsMTQ3ODQsdXwwKXwwO3JldHVybiAxNDc4NH1mdW5jdGlvbiBqJChiKXtiPWJ8MDtp
ZigoYVsxNjM4NF18MCkhPTApe3JldHVybiAxNDg1Nn1pZigoYmMoMTYzODQpfDApPT0wKXtyZXR1
cm4gMTQ4NTZ9ZFooMTQ4NTYsMTA4MCwyMCk7YSQoMjU4LDE0ODU2LHV8MCl8MDtyZXR1cm4gMTQ4
NTZ9ZnVuY3Rpb24gajAoYil7Yj1ifDA7aWYoKGFbMTYzMjhdfDApIT0wKXtyZXR1cm4gMTQ3Njh9
aWYoKGJjKDE2MzI4KXwwKT09MCl7cmV0dXJuIDE0NzY4fWV4KDE0NzY4LDk5MixrbSg5OTIpfDAp
O2EkKDE5MiwxNDc2OCx1fDApfDA7cmV0dXJuIDE0NzY4fWZ1bmN0aW9uIGoxKGIpe2I9YnwwO2lm
KChhWzE2Mzc2XXwwKSE9MCl7cmV0dXJuIDE0ODQwfWlmKChiYygxNjM3Nil8MCk9PTApe3JldHVy
biAxNDg0MH1kWigxNDg0MCw5NzYsMTEpO2EkKDI1OCwxNDg0MCx1fDApfDA7cmV0dXJuIDE0ODQw
fWZ1bmN0aW9uIGoyKGIpe2I9YnwwO2lmKChhWzE2MzIwXXwwKSE9MCl7cmV0dXJuIDE0NzUyfWlm
KChiYygxNjMyMCl8MCk9PTApe3JldHVybiAxNDc1Mn1leCgxNDc1Miw5Mjgsa20oOTI4KXwwKTth
JCgxOTIsMTQ3NTIsdXwwKXwwO3JldHVybiAxNDc1Mn1mdW5jdGlvbiBqMyhhKXthPWF8MDt2YXIg
Yj0wLGQ9MCxlPTAsZj0wO2I9YSs0fDA7ZD0oY1thPj4yXXwwKSsoY1tiKzQ+PjJdfDApfDA7YT1k
O2U9Y1tiPj4yXXwwO2lmKChlJjF8MCk9PTApe2Y9ZTtiWVtmJjUxMV0oYSk7cmV0dXJufWVsc2V7
Zj1jWyhjW2Q+PjJdfDApKyhlLTEpPj4yXXwwO2JZW2YmNTExXShhKTtyZXR1cm59fWZ1bmN0aW9u
IGo0KGEpe2E9YXwwO2VlKDExMDQ0KTtlZSgxMTAzMik7ZWUoMTEwMjApO2VlKDExMDA4KTtlZSgx
MDk5Nik7ZWUoMTA5ODQpO2VlKDEwOTcyKTtlZSgxMDk2MCk7ZWUoMTA5NDgpO2VlKDEwOTM2KTtl
ZSgxMDkyNCk7ZWUoMTA5MTIpO2VlKDEwOTAwKTtlZSgxMDg4OCk7ZWUoMTA4NzYpO2VlKDEwODY0
KTtlZSgxMDg1Mik7ZWUoMTA4NDApO2VlKDEwODI4KTtlZSgxMDgxNik7ZWUoMTA4MDQpO2VlKDEw
NzkyKTtlZSgxMDc4MCk7ZWUoMTA3NjgpO3JldHVybn1mdW5jdGlvbiBqNShiLGQpe2I9YnwwO2Q9
ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxx
PTAscj0wO2U9Yis4fDA7Zj1iKzR8MDtnPWNbZj4+Ml18MDtoPWNbZT4+Ml18MDtpPWc7aWYoaC1p
Pj4yPj4+MD49ZD4+PjApe2o9ZDtrPWc7ZG97aWYoKGt8MCk9PTApe2w9MH1lbHNle2Nbaz4+Ml09
MDtsPWNbZj4+Ml18MH1rPWwrNHwwO2NbZj4+Ml09aztqPWotMXwwO313aGlsZSgoanwwKSE9MCk7
cmV0dXJufWo9YisxNnwwO2s9YnwwO2w9Y1trPj4yXXwwO2c9aS1sPj4yO2k9ZytkfDA7aWYoaT4+
PjA+MTA3Mzc0MTgyMyl7aXIoMCl9bT1oLWx8MDtkb3tpZihtPj4yPj4+MD41MzY4NzA5MTApe249
MTA3Mzc0MTgyMztvPTI5MTl9ZWxzZXtsPW0+PjE7aD1sPj4+MDxpPj4+MD9pOmw7aWYoKGh8MCk9
PTApe3A9MDtxPTA7YnJlYWt9bD1iKzEyOHwwO2lmKCEoKGFbbF0mMSk9PTAmaD4+PjA8MjkpKXtu
PWg7bz0yOTE5O2JyZWFrfWFbbF09MTtwPWo7cT1ofX13aGlsZSgwKTtpZigob3wwKT09MjkxOSl7
cD1rTyhuPDwyKXwwO3E9bn1uPWQ7ZD1wKyhnPDwyKXwwO2Rve2lmKChkfDApPT0wKXtyPTB9ZWxz
ZXtjW2Q+PjJdPTA7cj1kfWQ9cis0fDA7bj1uLTF8MDt9d2hpbGUoKG58MCkhPTApO249cCsocTw8
Mil8MDtxPWNbaz4+Ml18MDtyPShjW2Y+PjJdfDApLXF8MDtvPXArKGctKHI+PjIpPDwyKXwwO2c9
bztwPXE7a1koZ3wwLHB8MCxyKXwwO2Nbaz4+Ml09bztjW2Y+PjJdPWQ7Y1tlPj4yXT1uO2lmKChx
fDApPT0wKXtyZXR1cm59aWYoKHF8MCk9PShqfDApKXthW2IrMTI4fDBdPTA7cmV0dXJufWVsc2V7
a1MocCk7cmV0dXJufX1mdW5jdGlvbiBqNihhKXthPWF8MDtkUCgxMTc4OCk7ZFAoMTE3NzYpO2RQ
KDExNzY0KTtkUCgxMTc1Mik7ZFAoMTE3NDApO2RQKDExNzI4KTtkUCgxMTcxNik7ZFAoMTE3MDQp
O2RQKDExNjkyKTtkUCgxMTY4MCk7ZFAoMTE2NjgpO2RQKDExNjU2KTtkUCgxMTY0NCk7ZFAoMTE2
MzIpO2RQKDExNjIwKTtkUCgxMTYwOCk7ZFAoMTE1OTYpO2RQKDExNTg0KTtkUCgxMTU3Mik7ZFAo
MTE1NjApO2RQKDExNTQ4KTtkUCgxMTUzNik7ZFAoMTE1MjQpO2RQKDExNTEyKTtyZXR1cm59ZnVu
Y3Rpb24gajcoYSl7YT1hfDA7ZWUoMTA1ODgpO2VlKDEwNTc2KTtlZSgxMDU2NCk7ZWUoMTA1NTIp
O2VlKDEwNTQwKTtlZSgxMDUyOCk7ZWUoMTA1MTYpO2VlKDEwNTA0KTtlZSgxMDQ5Mik7ZWUoMTA0
ODApO2VlKDEwNDY4KTtlZSgxMDQ1Nik7ZWUoMTA0NDQpO2VlKDEwNDMyKTtlZSgxMDQyMCk7ZWUo
MTA0MDgpO2VlKDEwMzk2KTtlZSgxMDM4NCk7ZWUoMTAzNzIpO2VlKDEwMzYwKTtlZSgxMDM0OCk7
ZWUoMTAzMzYpO2VlKDEwMzI0KTtlZSgxMDMxMik7cmV0dXJufWZ1bmN0aW9uIGo4KGEpe2E9YXww
O2RQKDExMzMyKTtkUCgxMTMyMCk7ZFAoMTEzMDgpO2RQKDExMjk2KTtkUCgxMTI4NCk7ZFAoMTEy
NzIpO2RQKDExMjYwKTtkUCgxMTI0OCk7ZFAoMTEyMzYpO2RQKDExMjI0KTtkUCgxMTIxMik7ZFAo
MTEyMDApO2RQKDExMTg4KTtkUCgxMTE3Nik7ZFAoMTExNjQpO2RQKDExMTUyKTtkUCgxMTE0MCk7
ZFAoMTExMjgpO2RQKDExMTE2KTtkUCgxMTEwNCk7ZFAoMTEwOTIpO2RQKDExMDgwKTtkUCgxMTA2
OCk7ZFAoMTEwNTYpO3JldHVybn1mdW5jdGlvbiBqOShhKXthPWF8MDtlZSgxMDc1Nik7ZWUoMTA3
NDQpO2VlKDEwNzMyKTtlZSgxMDcyMCk7ZWUoMTA3MDgpO2VlKDEwNjk2KTtlZSgxMDY4NCk7ZWUo
MTA2NzIpO2VlKDEwNjYwKTtlZSgxMDY0OCk7ZWUoMTA2MzYpO2VlKDEwNjI0KTtlZSgxMDYxMik7
ZWUoMTA2MDApO3JldHVybn1mdW5jdGlvbiBrYShhKXthPWF8MDtkUCgxMTUwMCk7ZFAoMTE0ODgp
O2RQKDExNDc2KTtkUCgxMTQ2NCk7ZFAoMTE0NTIpO2RQKDExNDQwKTtkUCgxMTQyOCk7ZFAoMTE0
MTYpO2RQKDExNDA0KTtkUCgxMTM5Mik7ZFAoMTEzODApO2RQKDExMzY4KTtkUCgxMTM1Nik7ZFAo
MTEzNDQpO3JldHVybn1mdW5jdGlvbiBrYihhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7cmV0dXJu
IGtjKDAsYSxiLChjfDApIT0wP2M6OTgzMil8MH1mdW5jdGlvbiBrYyhiLGQsZSxmKXtiPWJ8MDtk
PWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAs
cT0wLHI9MCx0PTAsdT0wLHY9MCx3PTA7Zz1pO2k9aSs4fDA7aD1nfDA7Y1toPj4yXT1iO2o9KChm
fDApPT0wPzk4MjQ6Zil8MDtmPWNbaj4+Ml18MDtMNzpkb3tpZigoZHwwKT09MCl7aWYoKGZ8MCk9
PTApe2s9MH1lbHNle2JyZWFrfWk9ZztyZXR1cm4ga3wwfWVsc2V7aWYoKGJ8MCk9PTApe2w9aDtj
W2g+PjJdPWw7bT1sfWVsc2V7bT1ifWlmKChlfDApPT0wKXtrPS0yO2k9ZztyZXR1cm4ga3wwfWRv
e2lmKChmfDApPT0wKXtsPWFbZF18MDtuPWwmMjU1O2lmKGw8PDI0Pj4yND4tMSl7Y1ttPj4yXT1u
O2s9bDw8MjQ+PjI0IT0wfDA7aT1nO3JldHVybiBrfDB9ZWxzZXtsPW4tMTk0fDA7aWYobD4+PjA+
NTApe2JyZWFrIEw3fW89ZCsxfDA7cD1jW3MrKGw8PDIpPj4yXXwwO3E9ZS0xfDA7YnJlYWt9fWVs
c2V7bz1kO3A9ZjtxPWV9fXdoaWxlKDApO0wyNTpkb3tpZigocXwwKT09MCl7cj1wfWVsc2V7bD1h
W29dfDA7bj0obCYyNTUpPj4+MztpZigobi0xNnxuKyhwPj4yNikpPj4+MD43KXticmVhayBMN31l
bHNle3Q9bzt1PXA7dj1xO3c9bH13aGlsZSgxKXt0PXQrMXwwO3U9KHcmMjU1KS0xMjh8dTw8Njt2
PXYtMXwwO2lmKCh1fDApPj0wKXticmVha31pZigodnwwKT09MCl7cj11O2JyZWFrIEwyNX13PWFb
dF18MDtpZigoKHcmMjU1KS0xMjh8MCk+Pj4wPjYzKXticmVhayBMN319Y1tqPj4yXT0wO2NbbT4+
Ml09dTtrPWUtdnwwO2k9ZztyZXR1cm4ga3wwfX13aGlsZSgwKTtjW2o+PjJdPXI7az0tMjtpPWc7
cmV0dXJuIGt8MH19d2hpbGUoMCk7Y1tqPj4yXT0wO2NbKGJ3KCl8MCk+PjJdPTEzODtrPS0xO2k9
ZztyZXR1cm4ga3wwfWZ1bmN0aW9uIGtkKGEsYixkLGUsZil7YT1hfDA7Yj1ifDA7ZD1kfDA7ZT1l
fDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
cz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9MCxH
PTAsSD0wLEk9MCxKPTA7Zz1pO2k9aSsxMDMyfDA7aD1nfDA7aj1nKzEwMjR8MDtrPWNbYj4+Ml18
MDtjW2o+PjJdPWs7bD0oYXwwKSE9MDttPWw/ZToyNTY7ZT1sP2E6aHwwO0wzODpkb3tpZigoa3ww
KT09MHwobXwwKT09MCl7bj0wO289ZDtwPW07cT1lO3I9a31lbHNle2E9aHwwO3M9bTt0PWQ7dT0w
O3Y9ZTt3PWs7d2hpbGUoMSl7eD10Pj4+Mjt5PXg+Pj4wPj1zPj4+MDtpZighKHl8dD4+PjA+MTMx
KSl7bj11O289dDtwPXM7cT12O3I9dzticmVhayBMMzh9ej15P3M6eDtBPXQtenwwO3g9a2Uodixq
LHosZil8MDtpZigoeHwwKT09LTEpe2JyZWFrfWlmKCh2fDApPT0oYXwwKSl7Qj1hO0M9c31lbHNl
e0I9disoeDw8Mil8MDtDPXMteHwwfXo9eCt1fDA7eD1jW2o+PjJdfDA7aWYoKHh8MCk9PTB8KEN8
MCk9PTApe249ejtvPUE7cD1DO3E9QjtyPXg7YnJlYWsgTDM4fWVsc2V7cz1DO3Q9QTt1PXo7dj1C
O3c9eH19bj0tMTtvPUE7cD0wO3E9djtyPWNbaj4+Ml18MH19d2hpbGUoMCk7TDQ5OmRve2lmKChy
fDApPT0wKXtEPW59ZWxzZXtpZigocHwwKT09MHwob3wwKT09MCl7RD1uO2JyZWFrfWVsc2V7RT1w
O0Y9bztHPW47SD1xO0k9cn13aGlsZSgxKXtKPWtjKEgsSSxGLGYpfDA7aWYoKEorMnwwKT4+PjA8
Myl7YnJlYWt9QT0oY1tqPj4yXXwwKStKfDA7Y1tqPj4yXT1BO0I9RS0xfDA7Qz1HKzF8MDtpZigo
QnwwKT09MHwoRnwwKT09KEp8MCkpe0Q9QzticmVhayBMNDl9ZWxzZXtFPUI7Rj1GLUp8MDtHPUM7
SD1IKzR8MDtJPUF9fXN3aXRjaChKfDApe2Nhc2UgMDp7Y1tqPj4yXT0wO0Q9RzticmVhayBMNDk7
YnJlYWt9O2Nhc2UtMTp7RD0tMTticmVhayBMNDk7YnJlYWt9O2RlZmF1bHQ6e2NbZj4+Ml09MDtE
PUc7YnJlYWsgTDQ5fX19fXdoaWxlKDApO2lmKCFsKXtpPWc7cmV0dXJuIER8MH1jW2I+PjJdPWNb
aj4+Ml07aT1nO3JldHVybiBEfDB9ZnVuY3Rpb24ga2UoYixlLGYsZyl7Yj1ifDA7ZT1lfDA7Zj1m
fDA7Zz1nfDA7dmFyIGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxyPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9
MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MDto
PWNbZT4+Ml18MDtkb3tpZigoZ3wwKT09MCl7aT01Nn1lbHNle2o9Z3wwO2s9Y1tqPj4yXXwwO2lm
KChrfDApPT0wKXtpPTU2O2JyZWFrfWlmKChifDApPT0wKXtsPWs7bT1oO249ZjtpPTY3O2JyZWFr
fWNbaj4+Ml09MDtvPWs7cD1oO3E9YjtyPWY7aT04N319d2hpbGUoMCk7aWYoKGl8MCk9PTU2KXtp
ZigoYnwwKT09MCl7dD1oO3U9ZjtpPTU4fWVsc2V7dj1oO3c9Yjt4PWY7aT01N319TDcwOndoaWxl
KDEpe2lmKChpfDApPT04Nyl7aT0wO2g9ZFtwXXwwO2c9aD4+PjM7aWYoKGctMTZ8Zysobz4+MjYp
KT4+PjA+Nyl7aT04ODticmVha31nPXArMXwwO3k9aC0xMjh8bzw8Njtkb3tpZigoeXwwKTwwKXto
PShkW2ddfDApLTEyOHwwO2lmKGg+Pj4wPjYzKXtpPTkxO2JyZWFrIEw3MH1rPXArMnwwO3o9aHx5
PDw2O2lmKCh6fDApPj0wKXtBPXo7Qj1rO2JyZWFrfWg9KGRba118MCktMTI4fDA7aWYoaD4+PjA+
NjMpe2k9OTQ7YnJlYWsgTDcwfUE9aHx6PDw2O0I9cCszfDB9ZWxzZXtBPXk7Qj1nfX13aGlsZSgw
KTtjW3E+PjJdPUE7dj1CO3c9cSs0fDA7eD1yLTF8MDtpPTU3O2NvbnRpbnVlfWVsc2UgaWYoKGl8
MCk9PTU4KXtpPTA7Zz1hW3RdfDA7ZG97aWYoKChnJjI1NSktMXwwKT4+PjA8MTI3KXtpZigodCYz
fDApIT0wKXtDPXQ7RD11O0U9ZzticmVha31oPWNbdD4+Ml18MDtpZigoKGgtMTY4NDMwMDl8aCkm
LTIxMzkwNjIxNDR8MCk9PTApe0Y9dTtHPXR9ZWxzZXtDPXQ7RD11O0U9aCYyNTU7YnJlYWt9ZG97
Rz1HKzR8MDtGPUYtNHwwO0g9Y1tHPj4yXXwwO313aGlsZSgoKEgtMTY4NDMwMDl8SCkmLTIxMzkw
NjIxNDR8MCk9PTApO0M9RztEPUY7RT1IJjI1NX1lbHNle0M9dDtEPXU7RT1nfX13aGlsZSgwKTtn
PUUmMjU1O2lmKChnLTF8MCk+Pj4wPDEyNyl7dD1DKzF8MDt1PUQtMXwwO2k9NTg7Y29udGludWV9
aD1nLTE5NHwwO2lmKGg+Pj4wPjUwKXtJPUQ7Sj1iO0s9QztpPTk4O2JyZWFrfWw9Y1tzKyhoPDwy
KT4+Ml18MDttPUMrMXwwO249RDtpPTY3O2NvbnRpbnVlfWVsc2UgaWYoKGl8MCk9PTU3KXtpPTA7
aWYoKHh8MCk9PTApe0w9ZjtpPTEwNjticmVha31lbHNle009eDtOPXc7Tz12fXdoaWxlKDEpe2g9
YVtPXXwwO2Rve2lmKCgoaCYyNTUpLTF8MCk+Pj4wPDEyNyl7aWYoKE8mM3wwKT09MCZNPj4+MD4z
KXtQPU07UT1OO1I9T31lbHNle1M9TztUPU47VT1NO1Y9aDticmVha313aGlsZSgxKXtXPWNbUj4+
Ml18MDtpZigoKFctMTY4NDMwMDl8VykmLTIxMzkwNjIxNDR8MCkhPTApe2k9ODE7YnJlYWt9Y1tR
Pj4yXT1XJjI1NTtjW1ErND4+Ml09ZFtSKzF8MF18MDtjW1ErOD4+Ml09ZFtSKzJ8MF18MDtYPVIr
NHwwO1k9USsxNnwwO2NbUSsxMj4+Ml09ZFtSKzN8MF18MDtaPVAtNHwwO2lmKFo+Pj4wPjMpe1A9
WjtRPVk7Uj1YfWVsc2V7aT04MjticmVha319aWYoKGl8MCk9PTgxKXtpPTA7Uz1SO1Q9UTtVPVA7
Vj1XJjI1NTticmVha31lbHNlIGlmKChpfDApPT04Mil7aT0wO1M9WDtUPVk7VT1aO1Y9YVtYXXww
O2JyZWFrfX1lbHNle1M9TztUPU47VT1NO1Y9aH19d2hpbGUoMCk7Xz1WJjI1NTtpZigoXy0xfDAp
Pj4+MD49MTI3KXticmVha31jW1Q+PjJdPV87aD1VLTF8MDtpZigoaHwwKT09MCl7TD1mO2k9MTA1
O2JyZWFrIEw3MH1lbHNle009aDtOPVQrNHwwO089UysxfDB9fWg9Xy0xOTR8MDtpZihoPj4+MD41
MCl7ST1VO0o9VDtLPVM7aT05ODticmVha31vPWNbcysoaDw8Mik+PjJdfDA7cD1TKzF8MDtxPVQ7
cj1VO2k9ODc7Y29udGludWV9ZWxzZSBpZigoaXwwKT09Njcpe2k9MDtoPShkW21dfDApPj4+Mztp
ZigoaC0xNnxoKyhsPj4yNikpPj4+MD43KXtpPTY4O2JyZWFrfWg9bSsxfDA7ZG97aWYoKGwmMzM1
NTQ0MzJ8MCk9PTApeyQ9aH1lbHNle2lmKCgoZFtoXXwwKS0xMjh8MCk+Pj4wPjYzKXtpPTcxO2Jy
ZWFrIEw3MH1nPW0rMnwwO2lmKChsJjUyNDI4OHwwKT09MCl7JD1nO2JyZWFrfWlmKCgoZFtnXXww
KS0xMjh8MCk+Pj4wPjYzKXtpPTc0O2JyZWFrIEw3MH0kPW0rM3wwfX13aGlsZSgwKTt0PSQ7dT1u
LTF8MDtpPTU4O2NvbnRpbnVlfX1pZigoaXwwKT09NzEpe2FhPWw7YWI9bS0xfDA7YWM9YjthZD1u
O2k9OTd9ZWxzZSBpZigoaXwwKT09NzQpe2FhPWw7YWI9bS0xfDA7YWM9YjthZD1uO2k9OTd9ZWxz
ZSBpZigoaXwwKT09Njgpe2FhPWw7YWI9bS0xfDA7YWM9YjthZD1uO2k9OTd9ZWxzZSBpZigoaXww
KT09ODgpe2FhPW87YWI9cC0xfDA7YWM9cTthZD1yO2k9OTd9ZWxzZSBpZigoaXwwKT09OTEpe2Fh
PXk7YWI9cC0xfDA7YWM9cTthZD1yO2k9OTd9ZWxzZSBpZigoaXwwKT09OTQpe2FhPXo7YWI9cC0x
fDA7YWM9cTthZD1yO2k9OTd9ZWxzZSBpZigoaXwwKT09MTA1KXtyZXR1cm4gTHwwfWVsc2UgaWYo
KGl8MCk9PTEwNil7cmV0dXJuIEx8MH1pZigoaXwwKT09OTcpe2lmKChhYXwwKT09MCl7ST1hZDtK
PWFjO0s9YWI7aT05OH1lbHNle2FlPWFjO2FmPWFifX1kb3tpZigoaXwwKT09OTgpe2lmKChhW0td
fDApIT0wKXthZT1KO2FmPUs7YnJlYWt9aWYoKEp8MCkhPTApe2NbSj4+Ml09MDtjW2U+PjJdPTB9
TD1mLUl8MDtyZXR1cm4gTHwwfX13aGlsZSgwKTtjWyhidygpfDApPj4yXT0xMzg7aWYoKGFlfDAp
PT0wKXtMPS0xO3JldHVybiBMfDB9Y1tlPj4yXT1hZjtMPS0xO3JldHVybiBMfDB9ZnVuY3Rpb24g
a2YoYixlLGYpe2I9YnwwO2U9ZXwwO2Y9ZnwwO3ZhciBnPTAsaD0wLGo9MCxrPTAsbD0wLG09MCxu
PTA7Zz1pO2k9aSs4fDA7aD1nfDA7Y1toPj4yXT1iO2lmKChlfDApPT0wKXtqPTA7aT1nO3JldHVy
biBqfDB9ZG97aWYoKGZ8MCkhPTApe2lmKChifDApPT0wKXtrPWg7Y1toPj4yXT1rO2w9a31lbHNl
e2w9Yn1rPWFbZV18MDttPWsmMjU1O2lmKGs8PDI0Pj4yND4tMSl7Y1tsPj4yXT1tO2o9azw8MjQ+
PjI0IT0wfDA7aT1nO3JldHVybiBqfDB9az1tLTE5NHwwO2lmKGs+Pj4wPjUwKXticmVha31tPWUr
MXwwO249Y1tzKyhrPDwyKT4+Ml18MDtpZihmPj4+MDw0KXtpZigobiYtMjE0NzQ4MzY0OD4+Pigo
KGYqNnwwKS02fDApPj4+MCl8MCkhPTApe2JyZWFrfX1rPWRbbV18MDttPWs+Pj4zO2lmKChtLTE2
fG0rKG4+PjI2KSk+Pj4wPjcpe2JyZWFrfW09ay0xMjh8bjw8NjtpZigobXwwKT49MCl7Y1tsPj4y
XT1tO2o9MjtpPWc7cmV0dXJuIGp8MH1uPShkW2UrMnwwXXwwKS0xMjh8MDtpZihuPj4+MD42Myl7
YnJlYWt9az1ufG08PDY7aWYoKGt8MCk+PTApe2NbbD4+Ml09aztqPTM7aT1nO3JldHVybiBqfDB9
bT0oZFtlKzN8MF18MCktMTI4fDA7aWYobT4+PjA+NjMpe2JyZWFrfWNbbD4+Ml09bXxrPDw2O2o9
NDtpPWc7cmV0dXJuIGp8MH19d2hpbGUoMCk7Y1soYncoKXwwKT4+Ml09MTM4O2o9LTE7aT1nO3Jl
dHVybiBqfDB9ZnVuY3Rpb24ga2coYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTA7aWYo
KGJ8MCk9PTApe2Y9MTtyZXR1cm4gZnwwfWlmKGQ+Pj4wPDEyOCl7YVtiXT1kJjI1NTtmPTE7cmV0
dXJuIGZ8MH1pZihkPj4+MDwyMDQ4KXthW2JdPShkPj4+NnwxOTIpJjI1NTthW2IrMXwwXT0oZCY2
M3wxMjgpJjI1NTtmPTI7cmV0dXJuIGZ8MH1pZihkPj4+MDw1NTI5NnwoZC01NzM0NHwwKT4+PjA8
ODE5Mil7YVtiXT0oZD4+PjEyfDIyNCkmMjU1O2FbYisxfDBdPShkPj4+NiY2M3wxMjgpJjI1NTth
W2IrMnwwXT0oZCY2M3wxMjgpJjI1NTtmPTM7cmV0dXJuIGZ8MH1pZigoZC02NTUzNnwwKT4+PjA8
MTA0ODU3Nil7YVtiXT0oZD4+PjE4fDI0MCkmMjU1O2FbYisxfDBdPShkPj4+MTImNjN8MTI4KSYy
NTU7YVtiKzJ8MF09KGQ+Pj42JjYzfDEyOCkmMjU1O2FbYiszfDBdPShkJjYzfDEyOCkmMjU1O2Y9
NDtyZXR1cm4gZnwwfWVsc2V7Y1soYncoKXwwKT4+Ml09MTM4O2Y9LTE7cmV0dXJuIGZ8MH1yZXR1
cm4gMH1mdW5jdGlvbiBraChhKXthPWF8MDtyZXR1cm59ZnVuY3Rpb24ga2koYSl7YT1hfDA7cmV0
dXJufWZ1bmN0aW9uIGtqKGEpe2E9YXwwO3JldHVybiAxMzI4fDB9ZnVuY3Rpb24ga2soYSl7YT1h
fDA7cmV0dXJufWZ1bmN0aW9uIGtsKGEpe2E9YXwwO3JldHVybn1mdW5jdGlvbiBrbShhKXthPWF8
MDt2YXIgYj0wO2I9YTt3aGlsZSgxKXtpZigoY1tiPj4yXXwwKT09MCl7YnJlYWt9ZWxzZXtiPWIr
NHwwfX1yZXR1cm4gYi1hPj4yfDB9ZnVuY3Rpb24ga24oYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHww
O3ZhciBlPTAsZj0wLGc9MDtpZigoZHwwKT09MCl7cmV0dXJuIGF8MH1lbHNle2U9YjtmPWQ7Zz1h
fXdoaWxlKDEpe2Q9Zi0xfDA7Y1tnPj4yXT1jW2U+PjJdO2lmKChkfDApPT0wKXticmVha31lbHNl
e2U9ZSs0fDA7Zj1kO2c9Zys0fDB9fXJldHVybiBhfDB9ZnVuY3Rpb24ga28oYSxiLGQpe2E9YXww
O2I9YnwwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wO2U9KGR8MCk9PTA7aWYoYS1iPj4y
Pj4+MDxkPj4+MCl7aWYoZSl7cmV0dXJuIGF8MH1lbHNle2Y9ZH1kb3tmPWYtMXwwO2NbYSsoZjw8
Mik+PjJdPWNbYisoZjw8Mik+PjJdO313aGlsZSgoZnwwKSE9MCk7cmV0dXJuIGF8MH1lbHNle2lm
KGUpe3JldHVybiBhfDB9ZWxzZXtnPWI7aD1kO2k9YX13aGlsZSgxKXtkPWgtMXwwO2NbaT4+Ml09
Y1tnPj4yXTtpZigoZHwwKT09MCl7YnJlYWt9ZWxzZXtnPWcrNHwwO2g9ZDtpPWkrNHwwfX1yZXR1
cm4gYXwwfXJldHVybiAwfWZ1bmN0aW9uIGtwKGEsYixkKXthPWF8MDtiPWJ8MDtkPWR8MDt2YXIg
ZT0wLGY9MDtpZigoZHwwKT09MCl7cmV0dXJuIGF8MH1lbHNle2U9ZDtmPWF9d2hpbGUoMSl7ZD1l
LTF8MDtjW2Y+PjJdPWI7aWYoKGR8MCk9PTApe2JyZWFrfWVsc2V7ZT1kO2Y9Zis0fDB9fXJldHVy
biBhfDB9ZnVuY3Rpb24ga3EoYSl7YT1hfDA7Y1thPj4yXT0yNDQwO3JldHVybn1mdW5jdGlvbiBr
cihiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2YXIgZz0wO2lmKChjW2QrOD4+Ml18
MCkhPShifDApKXtyZXR1cm59Yj1kKzE2fDA7Zz1jW2I+PjJdfDA7aWYoKGd8MCk9PTApe2NbYj4+
Ml09ZTtjW2QrMjQ+PjJdPWY7Y1tkKzM2Pj4yXT0xO3JldHVybn1pZigoZ3wwKSE9KGV8MCkpe2U9
ZCszNnwwO2NbZT4+Ml09KGNbZT4+Ml18MCkrMTtjW2QrMjQ+PjJdPTI7YVtkKzU0fDBdPTE7cmV0
dXJufWU9ZCsyNHwwO2lmKChjW2U+PjJdfDApIT0yKXtyZXR1cm59Y1tlPj4yXT1mO3JldHVybn1m
dW5jdGlvbiBrcyhhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO3ZhciBn
PTAsaD0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9
MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxGPTAsRz0wLEg9MDtmPWk7aT1p
KzI2NHwwO2c9ZnwwO2g9ZisyNTZ8MDtqPWNbYj4+Ml18MDtjW2g+PjJdPWo7az0oYXwwKSE9MDts
PWs/ZToyNTY7ZT1rP2E6Z3wwO0wyNDM6ZG97aWYoKGp8MCk9PTB8KGx8MCk9PTApe209MDtuPWQ7
bz1sO3A9ZTtxPWp9ZWxzZXthPWd8MDtyPWw7cz1kO3Q9MDt1PWU7dj1qO3doaWxlKDEpe3c9cz4+
PjA+PXI+Pj4wO2lmKCEod3xzPj4+MD4zMikpe209dDtuPXM7bz1yO3A9dTtxPXY7YnJlYWsgTDI0
M314PXc/cjpzO3k9cy14fDA7dz1rdCh1LGgseCwwKXwwO2lmKCh3fDApPT0tMSl7YnJlYWt9aWYo
KHV8MCk9PShhfDApKXt6PWE7QT1yfWVsc2V7ej11K3d8MDtBPXItd3wwfXg9dyt0fDA7dz1jW2g+
PjJdfDA7aWYoKHd8MCk9PTB8KEF8MCk9PTApe209eDtuPXk7bz1BO3A9ejtxPXc7YnJlYWsgTDI0
M31lbHNle3I9QTtzPXk7dD14O3U9ejt2PXd9fW09LTE7bj15O289MDtwPXU7cT1jW2g+PjJdfDB9
fXdoaWxlKDApO0wyNTQ6ZG97aWYoKHF8MCk9PTApe0I9bX1lbHNle2lmKChvfDApPT0wfChufDAp
PT0wKXtCPW07YnJlYWt9ZWxzZXtDPW87RD1uO0U9bTtGPXA7Rz1xfXdoaWxlKDEpe0g9a2coRixj
W0c+PjJdfDAsMCl8MDtpZigoSCsxfDApPj4+MDwyKXticmVha315PShjW2g+PjJdfDApKzR8MDtj
W2g+PjJdPXk7ej1ELTF8MDtBPUUrMXwwO2lmKChDfDApPT0oSHwwKXwoenwwKT09MCl7Qj1BO2Jy
ZWFrIEwyNTR9ZWxzZXtDPUMtSHwwO0Q9ejtFPUE7Rj1GK0h8MDtHPXl9fWlmKChIfDApIT0wKXtC
PS0xO2JyZWFrfWNbaD4+Ml09MDtCPUV9fXdoaWxlKDApO2lmKCFrKXtpPWY7cmV0dXJuIEJ8MH1j
W2I+PjJdPWNbaD4+Ml07aT1mO3JldHVybiBCfDB9ZnVuY3Rpb24ga3QoYixkLGUsZil7Yj1ifDA7
ZD1kfDA7ZT1lfDA7Zj1mfDA7dmFyIGc9MCxoPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0w
LHE9MCxyPTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTA7Zj1pO2k9aSs4fDA7
Zz1mfDA7aWYoKGJ8MCk9PTApe2g9Y1tkPj4yXXwwO2o9Z3wwO2s9Y1toPj4yXXwwO2lmKChrfDAp
PT0wKXtsPTA7aT1mO3JldHVybiBsfDB9ZWxzZXttPTA7bj1oO289a313aGlsZSgxKXtpZihvPj4+
MD4xMjcpe2s9a2coaixvLDApfDA7aWYoKGt8MCk9PS0xKXtsPS0xO3A9MjQwO2JyZWFrfWVsc2V7
cT1rfX1lbHNle3E9MX1rPXErbXwwO2g9bis0fDA7cj1jW2g+PjJdfDA7aWYoKHJ8MCk9PTApe2w9
aztwPTI0MTticmVha31lbHNle209aztuPWg7bz1yfX1pZigocHwwKT09MjQwKXtpPWY7cmV0dXJu
IGx8MH1lbHNlIGlmKChwfDApPT0yNDEpe2k9ZjtyZXR1cm4gbHwwfX1MMjgwOmRve2lmKGU+Pj4w
PjMpe289ZTtuPWI7bT1jW2Q+PjJdfDA7d2hpbGUoMSl7cT1jW20+PjJdfDA7aWYoKHF8MCk9PTAp
e3M9bzt0PW47YnJlYWsgTDI4MH1pZihxPj4+MD4xMjcpe2o9a2cobixxLDApfDA7aWYoKGp8MCk9
PS0xKXtsPS0xO2JyZWFrfXU9bitqfDA7dj1vLWp8MDt3PW19ZWxzZXthW25dPXEmMjU1O3U9bisx
fDA7dj1vLTF8MDt3PWNbZD4+Ml18MH1xPXcrNHwwO2NbZD4+Ml09cTtpZih2Pj4+MD4zKXtvPXY7
bj11O209cX1lbHNle3M9djt0PXU7YnJlYWsgTDI4MH19aT1mO3JldHVybiBsfDB9ZWxzZXtzPWU7
dD1ifX13aGlsZSgwKTtMMjkyOmRve2lmKChzfDApPT0wKXt4PTB9ZWxzZXtiPWd8MDt1PXM7dj10
O3c9Y1tkPj4yXXwwO3doaWxlKDEpe209Y1t3Pj4yXXwwO2lmKChtfDApPT0wKXtwPTIzNjticmVh
a31pZihtPj4+MD4xMjcpe249a2coYixtLDApfDA7aWYoKG58MCk9PS0xKXtsPS0xO3A9MjQzO2Jy
ZWFrfWlmKG4+Pj4wPnU+Pj4wKXtwPTIzMjticmVha31vPWNbdz4+Ml18MDtrZyh2LG8sMCl8MDt5
PXYrbnwwO3o9dS1ufDA7QT13fWVsc2V7YVt2XT1tJjI1NTt5PXYrMXwwO3o9dS0xfDA7QT1jW2Q+
PjJdfDB9bT1BKzR8MDtjW2Q+PjJdPW07aWYoKHp8MCk9PTApe3g9MDticmVhayBMMjkyfWVsc2V7
dT16O3Y9eTt3PW19fWlmKChwfDApPT0yMzIpe2w9ZS11fDA7aT1mO3JldHVybiBsfDB9ZWxzZSBp
ZigocHwwKT09MjM2KXthW3ZdPTA7eD11O2JyZWFrfWVsc2UgaWYoKHB8MCk9PTI0Myl7aT1mO3Jl
dHVybiBsfDB9fX13aGlsZSgwKTtjW2Q+PjJdPTA7bD1lLXh8MDtpPWY7cmV0dXJuIGx8MH1mdW5j
dGlvbiBrdShhKXthPWF8MDtrUyhhKTtyZXR1cm59ZnVuY3Rpb24ga3YoYSl7YT1hfDA7a2goYXww
KTtyZXR1cm59ZnVuY3Rpb24ga3coYSl7YT1hfDA7a2goYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rp
b24ga3goYSl7YT1hfDA7a2goYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24ga3koYSl7YT1hfDA7
a2goYXwwKTtrUyhhKTtyZXR1cm59ZnVuY3Rpb24ga3ooYSxiLGQpe2E9YXwwO2I9YnwwO2Q9ZHww
O3ZhciBlPTAsZj0wLGc9MCxoPTA7ZT1pO2k9aSs1NnwwO2Y9ZXwwO2lmKChhfDApPT0oYnwwKSl7
Zz0xO2k9ZTtyZXR1cm4gZ3wwfWlmKChifDApPT0wKXtnPTA7aT1lO3JldHVybiBnfDB9aD1rQyhi
LDk3MDQsOTY4OCwtMSl8MDtiPWg7aWYoKGh8MCk9PTApe2c9MDtpPWU7cmV0dXJuIGd8MH1rJChm
fDAsMCw1Nik7Y1tmPj4yXT1iO2NbZis4Pj4yXT1hO2NbZisxMj4+Ml09LTE7Y1tmKzQ4Pj4yXT0x
O2NiW2NbKGNbaD4+Ml18MCkrMjg+PjJdJjE1XShiLGYsY1tkPj4yXXwwLDEpO2lmKChjW2YrMjQ+
PjJdfDApIT0xKXtnPTA7aT1lO3JldHVybiBnfDB9Y1tkPj4yXT1jW2YrMTY+PjJdO2c9MTtpPWU7
cmV0dXJuIGd8MH1mdW5jdGlvbiBrQShiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDt2
YXIgZz0wO2lmKChifDApIT0oY1tkKzg+PjJdfDApKXtnPWNbYis4Pj4yXXwwO2NiW2NbKGNbZz4+
Ml18MCkrMjg+PjJdJjE1XShnLGQsZSxmKTtyZXR1cm59Zz1kKzE2fDA7Yj1jW2c+PjJdfDA7aWYo
KGJ8MCk9PTApe2NbZz4+Ml09ZTtjW2QrMjQ+PjJdPWY7Y1tkKzM2Pj4yXT0xO3JldHVybn1pZigo
YnwwKSE9KGV8MCkpe2U9ZCszNnwwO2NbZT4+Ml09KGNbZT4+Ml18MCkrMTtjW2QrMjQ+PjJdPTI7
YVtkKzU0fDBdPTE7cmV0dXJufWU9ZCsyNHwwO2lmKChjW2U+PjJdfDApIT0yKXtyZXR1cm59Y1tl
Pj4yXT1mO3JldHVybn1mdW5jdGlvbiBrQihiLGQsZSxmKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8
MDt2YXIgZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wO2lmKChifDApPT0oY1tkKzg+PjJdfDAp
KXtnPWQrMTZ8MDtoPWNbZz4+Ml18MDtpZigoaHwwKT09MCl7Y1tnPj4yXT1lO2NbZCsyND4+Ml09
ZjtjW2QrMzY+PjJdPTE7cmV0dXJufWlmKChofDApIT0oZXwwKSl7aD1kKzM2fDA7Y1toPj4yXT0o
Y1toPj4yXXwwKSsxO2NbZCsyND4+Ml09MjthW2QrNTR8MF09MTtyZXR1cm59aD1kKzI0fDA7aWYo
KGNbaD4+Ml18MCkhPTIpe3JldHVybn1jW2g+PjJdPWY7cmV0dXJufWg9Y1tiKzEyPj4yXXwwO2c9
YisxNisoaDw8Myl8MDtpPWNbYisyMD4+Ml18MDtqPWk+Pjg7aWYoKGkmMXwwKT09MCl7az1qfWVs
c2V7az1jWyhjW2U+PjJdfDApK2o+PjJdfDB9aj1jW2IrMTY+PjJdfDA7Y2JbY1soY1tqPj4yXXww
KSsyOD4+Ml0mMTVdKGosZCxlK2t8MCwoaSYyfDApIT0wP2Y6Mik7aWYoKGh8MCk8PTEpe3JldHVy
bn1oPWQrNTR8MDtpPWU7az1iKzI0fDA7d2hpbGUoMSl7Yj1jW2srND4+Ml18MDtqPWI+Pjg7aWYo
KGImMXwwKT09MCl7bD1qfWVsc2V7bD1jWyhjW2k+PjJdfDApK2o+PjJdfDB9aj1jW2s+PjJdfDA7
Y2JbY1soY1tqPj4yXXwwKSsyOD4+Ml0mMTVdKGosZCxlK2x8MCwoYiYyfDApIT0wP2Y6Mik7aWYo
KGFbaF0mMSkhPTApe209Mjk3O2JyZWFrfWI9ays4fDA7aWYoYj4+PjA8Zz4+PjApe2s9Yn1lbHNl
e209Mjk4O2JyZWFrfX1pZigobXwwKT09Mjk3KXtyZXR1cm59ZWxzZSBpZigobXwwKT09Mjk4KXty
ZXR1cm59fWZ1bmN0aW9uIGtDKGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBm
PTAsZz0wLGg9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MDtmPWk7aT1pKzU2fDA7Zz1mfDA7aD1j
W2E+PjJdfDA7aj1hKyhjW2gtOD4+Ml18MCl8MDtrPWNbaC00Pj4yXXwwO2g9aztjW2c+PjJdPWQ7
Y1tnKzQ+PjJdPWE7Y1tnKzg+PjJdPWI7Y1tnKzEyPj4yXT1lO2U9ZysxNnwwO2I9ZysyMHwwO2E9
ZysyNHwwO2w9ZysyOHwwO209ZyszMnwwO249Zys0MHwwO2skKGV8MCwwLDM5KTtpZigoa3wwKT09
KGR8MCkpe2NbZys0OD4+Ml09MTtiOVtjWyhjW2s+PjJdfDApKzIwPj4yXSYzMV0oaCxnLGosaiwx
LDApO2k9ZjtyZXR1cm4oKGNbYT4+Ml18MCk9PTE/ajowKXwwfWJXW2NbKGNbaz4+Ml18MCkrMjQ+
PjJdJjddKGgsZyxqLDEsMCk7c3dpdGNoKGNbZyszNj4+Ml18MCl7Y2FzZSAxOntkb3tpZigoY1th
Pj4yXXwwKSE9MSl7aWYoKGNbbj4+Ml18MCkhPTApe289MDtpPWY7cmV0dXJuIG98MH1pZigoY1ts
Pj4yXXwwKSE9MSl7bz0wO2k9ZjtyZXR1cm4gb3wwfWlmKChjW20+PjJdfDApPT0xKXticmVha31l
bHNle289MH1pPWY7cmV0dXJuIG98MH19d2hpbGUoMCk7bz1jW2U+PjJdfDA7aT1mO3JldHVybiBv
fDB9O2Nhc2UgMDp7aWYoKGNbbj4+Ml18MCkhPTEpe289MDtpPWY7cmV0dXJuIG98MH1pZigoY1ts
Pj4yXXwwKSE9MSl7bz0wO2k9ZjtyZXR1cm4gb3wwfW89KGNbbT4+Ml18MCk9PTE/Y1tiPj4yXXww
OjA7aT1mO3JldHVybiBvfDB9O2RlZmF1bHQ6e289MDtpPWY7cmV0dXJuIG98MH19cmV0dXJuIDB9
ZnVuY3Rpb24ga0QoYixkLGUsZixnKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtpZigo
Y1tkKzg+PjJdfDApPT0oYnwwKSl7aWYoKGNbZCs0Pj4yXXwwKSE9KGV8MCkpe3JldHVybn1nPWQr
Mjh8MDtpZigoY1tnPj4yXXwwKT09MSl7cmV0dXJufWNbZz4+Ml09ZjtyZXR1cm59aWYoKGNbZD4+
Ml18MCkhPShifDApKXtyZXR1cm59ZG97aWYoKGNbZCsxNj4+Ml18MCkhPShlfDApKXtiPWQrMjB8
MDtpZigoY1tiPj4yXXwwKT09KGV8MCkpe2JyZWFrfWNbZCszMj4+Ml09ZjtjW2I+PjJdPWU7Yj1k
KzQwfDA7Y1tiPj4yXT0oY1tiPj4yXXwwKSsxO2Rve2lmKChjW2QrMzY+PjJdfDApPT0xKXtpZigo
Y1tkKzI0Pj4yXXwwKSE9Mil7YnJlYWt9YVtkKzU0fDBdPTF9fXdoaWxlKDApO2NbZCs0ND4+Ml09
NDtyZXR1cm59fXdoaWxlKDApO2lmKChmfDApIT0xKXtyZXR1cm59Y1tkKzMyPj4yXT0xO3JldHVy
bn1mdW5jdGlvbiBrRShiLGQsZSxmLGcsaCl7Yj1ifDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7dmFyIGk9MDtpZigoY1tkKzg+PjJdfDApIT0oYnwwKSl7cmV0dXJufWFbZCs1M3wwXT0x
O2lmKChjW2QrND4+Ml18MCkhPShmfDApKXtyZXR1cm59YVtkKzUyfDBdPTE7Zj1kKzE2fDA7Yj1j
W2Y+PjJdfDA7aWYoKGJ8MCk9PTApe2NbZj4+Ml09ZTtjW2QrMjQ+PjJdPWc7Y1tkKzM2Pj4yXT0x
O2lmKCEoKGNbZCs0OD4+Ml18MCk9PTEmKGd8MCk9PTEpKXtyZXR1cm59YVtkKzU0fDBdPTE7cmV0
dXJufWlmKChifDApIT0oZXwwKSl7ZT1kKzM2fDA7Y1tlPj4yXT0oY1tlPj4yXXwwKSsxO2FbZCs1
NHwwXT0xO3JldHVybn1lPWQrMjR8MDtiPWNbZT4+Ml18MDtpZigoYnwwKT09Mil7Y1tlPj4yXT1n
O2k9Z31lbHNle2k9Yn1pZighKChjW2QrNDg+PjJdfDApPT0xJihpfDApPT0xKSl7cmV0dXJufWFb
ZCs1NHwwXT0xO3JldHVybn1mdW5jdGlvbiBrRihiLGQsZSxmLGcpe2I9YnwwO2Q9ZHwwO2U9ZXww
O2Y9ZnwwO2c9Z3wwO3ZhciBoPTAsaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAs
cj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6PTAsQT0wLEI9MCxDPTAsRD0wLEU9MCxG
PTAsRz0wLEg9MDtoPWJ8MDtpZigoaHwwKT09KGNbZCs4Pj4yXXwwKSl7aWYoKGNbZCs0Pj4yXXww
KSE9KGV8MCkpe3JldHVybn1pPWQrMjh8MDtpZigoY1tpPj4yXXwwKT09MSl7cmV0dXJufWNbaT4+
Ml09ZjtyZXR1cm59aWYoKGh8MCk9PShjW2Q+PjJdfDApKXtkb3tpZigoY1tkKzE2Pj4yXXwwKSE9
KGV8MCkpe2g9ZCsyMHwwO2lmKChjW2g+PjJdfDApPT0oZXwwKSl7YnJlYWt9Y1tkKzMyPj4yXT1m
O2k9ZCs0NHwwO2lmKChjW2k+PjJdfDApPT00KXtyZXR1cm59aj1jW2IrMTI+PjJdfDA7az1iKzE2
KyhqPDwzKXwwO0w0NzQ6ZG97aWYoKGp8MCk+MCl7bD1kKzUyfDA7bT1kKzUzfDA7bj1kKzU0fDA7
bz1iKzh8MDtwPWQrMjR8MDtxPWU7cj0wO3M9YisxNnwwO3Q9MDtMNDc2OndoaWxlKDEpe2FbbF09
MDthW21dPTA7dT1jW3MrND4+Ml18MDt2PXU+Pjg7aWYoKHUmMXwwKT09MCl7dz12fWVsc2V7dz1j
WyhjW3E+PjJdfDApK3Y+PjJdfDB9dj1jW3M+PjJdfDA7YjlbY1soY1t2Pj4yXXwwKSsyMD4+Ml0m
MzFdKHYsZCxlLGUrd3wwLDItKHU+Pj4xJjEpfDAsZyk7aWYoKGFbbl0mMSkhPTApe3g9dDt5PXI7
YnJlYWt9ZG97aWYoKGFbbV0mMSk9PTApe3o9dDtBPXJ9ZWxzZXtpZigoYVtsXSYxKT09MCl7aWYo
KGNbbz4+Ml0mMXwwKT09MCl7eD0xO3k9cjticmVhayBMNDc2fWVsc2V7ej0xO0E9cjticmVha319
aWYoKGNbcD4+Ml18MCk9PTEpe0I9Mzg1O2JyZWFrIEw0NzR9aWYoKGNbbz4+Ml0mMnwwKT09MCl7
Qj0zODU7YnJlYWsgTDQ3NH1lbHNle3o9MTtBPTF9fX13aGlsZSgwKTt1PXMrOHwwO2lmKHU+Pj4w
PGs+Pj4wKXtyPUE7cz11O3Q9en1lbHNle3g9ejt5PUE7YnJlYWt9fWlmKHkpe0M9eDtCPTM4NH1l
bHNle0Q9eDtCPTM4MX19ZWxzZXtEPTA7Qj0zODF9fXdoaWxlKDApO2Rve2lmKChCfDApPT0zODEp
e2NbaD4+Ml09ZTtrPWQrNDB8MDtjW2s+PjJdPShjW2s+PjJdfDApKzE7aWYoKGNbZCszNj4+Ml18
MCkhPTEpe0M9RDtCPTM4NDticmVha31pZigoY1tkKzI0Pj4yXXwwKSE9Mil7Qz1EO0I9Mzg0O2Jy
ZWFrfWFbZCs1NHwwXT0xO2lmKEQpe0I9Mzg1fWVsc2V7Qj0zODZ9fX13aGlsZSgwKTtpZigoQnww
KT09Mzg0KXtpZihDKXtCPTM4NX1lbHNle0I9Mzg2fX1pZigoQnwwKT09Mzg1KXtjW2k+PjJdPTM7
cmV0dXJufWVsc2UgaWYoKEJ8MCk9PTM4Nil7Y1tpPj4yXT00O3JldHVybn19fXdoaWxlKDApO2lm
KChmfDApIT0xKXtyZXR1cm59Y1tkKzMyPj4yXT0xO3JldHVybn1DPWNbYisxMj4+Ml18MDtEPWIr
MTYrKEM8PDMpfDA7eD1jW2IrMjA+PjJdfDA7eT14Pj44O2lmKCh4JjF8MCk9PTApe0U9eX1lbHNl
e0U9Y1soY1tlPj4yXXwwKSt5Pj4yXXwwfXk9Y1tiKzE2Pj4yXXwwO2JXW2NbKGNbeT4+Ml18MCkr
MjQ+PjJdJjddKHksZCxlK0V8MCwoeCYyfDApIT0wP2Y6MixnKTt4PWIrMjR8MDtpZigoQ3wwKTw9
MSl7cmV0dXJufUM9Y1tiKzg+PjJdfDA7ZG97aWYoKEMmMnwwKT09MCl7Yj1kKzM2fDA7aWYoKGNb
Yj4+Ml18MCk9PTEpe2JyZWFrfWlmKChDJjF8MCk9PTApe0U9ZCs1NHwwO3k9ZTtBPXg7d2hpbGUo
MSl7aWYoKGFbRV0mMSkhPTApe0I9NDI1O2JyZWFrfWlmKChjW2I+PjJdfDApPT0xKXtCPTQyNjti
cmVha316PWNbQSs0Pj4yXXwwO3c9ej4+ODtpZigoeiYxfDApPT0wKXtGPXd9ZWxzZXtGPWNbKGNb
eT4+Ml18MCkrdz4+Ml18MH13PWNbQT4+Ml18MDtiV1tjWyhjW3c+PjJdfDApKzI0Pj4yXSY3XSh3
LGQsZStGfDAsKHomMnwwKSE9MD9mOjIsZyk7ej1BKzh8MDtpZih6Pj4+MDxEPj4+MCl7QT16fWVs
c2V7Qj00MTI7YnJlYWt9fWlmKChCfDApPT00MTIpe3JldHVybn1lbHNlIGlmKChCfDApPT00MjUp
e3JldHVybn1lbHNlIGlmKChCfDApPT00MjYpe3JldHVybn19QT1kKzI0fDA7eT1kKzU0fDA7RT1l
O2k9eDt3aGlsZSgxKXtpZigoYVt5XSYxKSE9MCl7Qj00MjI7YnJlYWt9aWYoKGNbYj4+Ml18MCk9
PTEpe2lmKChjW0E+PjJdfDApPT0xKXtCPTQyMzticmVha319ej1jW2krND4+Ml18MDt3PXo+Pjg7
aWYoKHomMXwwKT09MCl7Rz13fWVsc2V7Rz1jWyhjW0U+PjJdfDApK3c+PjJdfDB9dz1jW2k+PjJd
fDA7YldbY1soY1t3Pj4yXXwwKSsyND4+Ml0mN10odyxkLGUrR3wwLCh6JjJ8MCkhPTA/ZjoyLGcp
O3o9aSs4fDA7aWYoej4+PjA8RD4+PjApe2k9en1lbHNle0I9NDI0O2JyZWFrfX1pZigoQnwwKT09
NDIyKXtyZXR1cm59ZWxzZSBpZigoQnwwKT09NDIzKXtyZXR1cm59ZWxzZSBpZigoQnwwKT09NDI0
KXtyZXR1cm59fX13aGlsZSgwKTtHPWQrNTR8MDtGPWU7Qz14O3doaWxlKDEpe2lmKChhW0ddJjEp
IT0wKXtCPTQyMTticmVha314PWNbQys0Pj4yXXwwO2k9eD4+ODtpZigoeCYxfDApPT0wKXtIPWl9
ZWxzZXtIPWNbKGNbRj4+Ml18MCkraT4+Ml18MH1pPWNbQz4+Ml18MDtiV1tjWyhjW2k+PjJdfDAp
KzI0Pj4yXSY3XShpLGQsZStIfDAsKHgmMnwwKSE9MD9mOjIsZyk7eD1DKzh8MDtpZih4Pj4+MDxE
Pj4+MCl7Qz14fWVsc2V7Qj00MjA7YnJlYWt9fWlmKChCfDApPT00MjApe3JldHVybn1lbHNlIGlm
KChCfDApPT00MjEpe3JldHVybn19ZnVuY3Rpb24ga0coYixkLGUsZixnKXtiPWJ8MDtkPWR8MDtl
PWV8MDtmPWZ8MDtnPWd8MDt2YXIgaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wO2g9YnwwO2lm
KChofDApPT0oY1tkKzg+PjJdfDApKXtpZigoY1tkKzQ+PjJdfDApIT0oZXwwKSl7cmV0dXJufWk9
ZCsyOHwwO2lmKChjW2k+PjJdfDApPT0xKXtyZXR1cm59Y1tpPj4yXT1mO3JldHVybn1pZigoaHww
KSE9KGNbZD4+Ml18MCkpe2g9Y1tiKzg+PjJdfDA7YldbY1soY1toPj4yXXwwKSsyND4+Ml0mN10o
aCxkLGUsZixnKTtyZXR1cm59ZG97aWYoKGNbZCsxNj4+Ml18MCkhPShlfDApKXtoPWQrMjB8MDtp
ZigoY1toPj4yXXwwKT09KGV8MCkpe2JyZWFrfWNbZCszMj4+Ml09ZjtpPWQrNDR8MDtpZigoY1tp
Pj4yXXwwKT09NCl7cmV0dXJufWo9ZCs1MnwwO2Fbal09MDtrPWQrNTN8MDthW2tdPTA7bD1jW2Ir
OD4+Ml18MDtiOVtjWyhjW2w+PjJdfDApKzIwPj4yXSYzMV0obCxkLGUsZSwxLGcpO2lmKChhW2td
JjEpPT0wKXttPTA7bj00NDF9ZWxzZXtpZigoYVtqXSYxKT09MCl7bT0xO249NDQxfX1MNTc2OmRv
e2lmKChufDApPT00NDEpe2NbaD4+Ml09ZTtqPWQrNDB8MDtjW2o+PjJdPShjW2o+PjJdfDApKzE7
ZG97aWYoKGNbZCszNj4+Ml18MCk9PTEpe2lmKChjW2QrMjQ+PjJdfDApIT0yKXtuPTQ0NDticmVh
a31hW2QrNTR8MF09MTtpZihtKXticmVhayBMNTc2fX1lbHNle249NDQ0fX13aGlsZSgwKTtpZigo
bnwwKT09NDQ0KXtpZihtKXticmVha319Y1tpPj4yXT00O3JldHVybn19d2hpbGUoMCk7Y1tpPj4y
XT0zO3JldHVybn19d2hpbGUoMCk7aWYoKGZ8MCkhPTEpe3JldHVybn1jW2QrMzI+PjJdPTE7cmV0
dXJufWZ1bmN0aW9uIGtIKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDt2YXIgaT0wLGo9MCxrPTAsbD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0
PTAsdT0wLHY9MCx3PTA7aWYoKGJ8MCkhPShjW2QrOD4+Ml18MCkpe2k9ZCs1MnwwO2o9YVtpXSYx
O2s9ZCs1M3wwO2w9YVtrXSYxO209Y1tiKzEyPj4yXXwwO249YisxNisobTw8Myl8MDthW2ldPTA7
YVtrXT0wO289Y1tiKzIwPj4yXXwwO3A9bz4+ODtpZigobyYxfDApPT0wKXtxPXB9ZWxzZXtxPWNb
KGNbZj4+Ml18MCkrcD4+Ml18MH1wPWNbYisxNj4+Ml18MDtiOVtjWyhjW3A+PjJdfDApKzIwPj4y
XSYzMV0ocCxkLGUsZitxfDAsKG8mMnwwKSE9MD9nOjIsaCk7TDU5ODpkb3tpZigobXwwKT4xKXtv
PWQrMjR8MDtxPWIrOHwwO3A9ZCs1NHwwO3I9ZjtzPWIrMjR8MDtkb3tpZigoYVtwXSYxKSE9MCl7
YnJlYWsgTDU5OH1kb3tpZigoYVtpXSYxKT09MCl7aWYoKGFba10mMSk9PTApe2JyZWFrfWlmKChj
W3E+PjJdJjF8MCk9PTApe2JyZWFrIEw1OTh9fWVsc2V7aWYoKGNbbz4+Ml18MCk9PTEpe2JyZWFr
IEw1OTh9aWYoKGNbcT4+Ml0mMnwwKT09MCl7YnJlYWsgTDU5OH19fXdoaWxlKDApO2FbaV09MDth
W2tdPTA7dD1jW3MrND4+Ml18MDt1PXQ+Pjg7aWYoKHQmMXwwKT09MCl7dj11fWVsc2V7dj1jWyhj
W3I+PjJdfDApK3U+PjJdfDB9dT1jW3M+PjJdfDA7YjlbY1soY1t1Pj4yXXwwKSsyMD4+Ml0mMzFd
KHUsZCxlLGYrdnwwLCh0JjJ8MCkhPTA/ZzoyLGgpO3M9cys4fDA7fXdoaWxlKHM+Pj4wPG4+Pj4w
KX19d2hpbGUoMCk7YVtpXT1qO2Fba109bDtyZXR1cm59YVtkKzUzfDBdPTE7aWYoKGNbZCs0Pj4y
XXwwKSE9KGZ8MCkpe3JldHVybn1hW2QrNTJ8MF09MTtmPWQrMTZ8MDtsPWNbZj4+Ml18MDtpZigo
bHwwKT09MCl7Y1tmPj4yXT1lO2NbZCsyND4+Ml09ZztjW2QrMzY+PjJdPTE7aWYoISgoY1tkKzQ4
Pj4yXXwwKT09MSYoZ3wwKT09MSkpe3JldHVybn1hW2QrNTR8MF09MTtyZXR1cm59aWYoKGx8MCkh
PShlfDApKXtlPWQrMzZ8MDtjW2U+PjJdPShjW2U+PjJdfDApKzE7YVtkKzU0fDBdPTE7cmV0dXJu
fWU9ZCsyNHwwO2w9Y1tlPj4yXXwwO2lmKChsfDApPT0yKXtjW2U+PjJdPWc7dz1nfWVsc2V7dz1s
fWlmKCEoKGNbZCs0OD4+Ml18MCk9PTEmKHd8MCk9PTEpKXtyZXR1cm59YVtkKzU0fDBdPTE7cmV0
dXJufWZ1bmN0aW9uIGtJKGIsZCxlLGYsZyxoKXtiPWJ8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8
MDtoPWh8MDt2YXIgaT0wLGo9MDtpZigoYnwwKSE9KGNbZCs4Pj4yXXwwKSl7aT1jW2IrOD4+Ml18
MDtiOVtjWyhjW2k+PjJdfDApKzIwPj4yXSYzMV0oaSxkLGUsZixnLGgpO3JldHVybn1hW2QrNTN8
MF09MTtpZigoY1tkKzQ+PjJdfDApIT0oZnwwKSl7cmV0dXJufWFbZCs1MnwwXT0xO2Y9ZCsxNnww
O2g9Y1tmPj4yXXwwO2lmKChofDApPT0wKXtjW2Y+PjJdPWU7Y1tkKzI0Pj4yXT1nO2NbZCszNj4+
Ml09MTtpZighKChjW2QrNDg+PjJdfDApPT0xJihnfDApPT0xKSl7cmV0dXJufWFbZCs1NHwwXT0x
O3JldHVybn1pZigoaHwwKSE9KGV8MCkpe2U9ZCszNnwwO2NbZT4+Ml09KGNbZT4+Ml18MCkrMTth
W2QrNTR8MF09MTtyZXR1cm59ZT1kKzI0fDA7aD1jW2U+PjJdfDA7aWYoKGh8MCk9PTIpe2NbZT4+
Ml09ZztqPWd9ZWxzZXtqPWh9aWYoISgoY1tkKzQ4Pj4yXXwwKT09MSYoanwwKT09MSkpe3JldHVy
bn1hW2QrNTR8MF09MTtyZXR1cm59ZnVuY3Rpb24ga0ooYSl7YT1hfDA7dmFyIGI9MCxkPTAsZT0w
LGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wLFA9MCxRPTAsUj0wLFM9MCxUPTAsVT0wLFY9
MCxXPTAsWD0wLFk9MCxaPTAsXz0wLCQ9MCxhYT0wLGFiPTAsYWM9MCxhZD0wLGFlPTAsYWY9MCxh
Zz0wLGFoPTAsYWk9MCxhaj0wLGFrPTAsYWw9MCxhbT0wLGFuPTAsYW89MCxhcD0wLGFxPTAsYXI9
MCxhcz0wLGF0PTAsYXU9MCxhdj0wLGF3PTAsYXg9MCxheT0wLGF6PTAsYUE9MCxhQj0wLGFDPTAs
YUQ9MCxhRT0wLGFGPTAsYUc9MDtkb3tpZihhPj4+MDwyNDUpe2lmKGE+Pj4wPDExKXtiPTE2fWVs
c2V7Yj1hKzExJi04fWQ9Yj4+PjM7ZT1jWzI0NjBdfDA7Zj1lPj4+KGQ+Pj4wKTtpZigoZiYzfDAp
IT0wKXtnPShmJjFeMSkrZHwwO2g9Zzw8MTtpPTk4ODArKGg8PDIpfDA7aj05ODgwKyhoKzI8PDIp
fDA7aD1jW2o+PjJdfDA7az1oKzh8MDtsPWNbaz4+Ml18MDtkb3tpZigoaXwwKT09KGx8MCkpe2Nb
MjQ2MF09ZSZ+KDE8PGcpfWVsc2V7aWYobD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVy
biAwfW09bCsxMnwwO2lmKChjW20+PjJdfDApPT0oaHwwKSl7Y1ttPj4yXT1pO2Nbaj4+Ml09bDti
cmVha31lbHNle2JHKCk7cmV0dXJuIDB9fX13aGlsZSgwKTtsPWc8PDM7Y1toKzQ+PjJdPWx8Mztq
PWgrKGx8NCl8MDtjW2o+PjJdPWNbaj4+Ml18MTtuPWs7cmV0dXJuIG58MH1pZihiPj4+MDw9KGNb
MjQ2Ml18MCk+Pj4wKXtvPWI7YnJlYWt9aWYoKGZ8MCkhPTApe2o9Mjw8ZDtsPWY8PGQmKGp8LWop
O2o9KGwmLWwpLTF8MDtsPWo+Pj4xMiYxNjtpPWo+Pj4obD4+PjApO2o9aT4+PjUmODttPWk+Pj4o
aj4+PjApO2k9bT4+PjImNDtwPW0+Pj4oaT4+PjApO209cD4+PjEmMjtxPXA+Pj4obT4+PjApO3A9
cT4+PjEmMTtyPShqfGx8aXxtfHApKyhxPj4+KHA+Pj4wKSl8MDtwPXI8PDE7cT05ODgwKyhwPDwy
KXwwO209OTg4MCsocCsyPDwyKXwwO3A9Y1ttPj4yXXwwO2k9cCs4fDA7bD1jW2k+PjJdfDA7ZG97
aWYoKHF8MCk9PShsfDApKXtjWzI0NjBdPWUmfigxPDxyKX1lbHNle2lmKGw+Pj4wPChjWzI0NjRd
fDApPj4+MCl7YkcoKTtyZXR1cm4gMH1qPWwrMTJ8MDtpZigoY1tqPj4yXXwwKT09KHB8MCkpe2Nb
aj4+Ml09cTtjW20+PjJdPWw7YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUoMCk7bD1y
PDwzO209bC1ifDA7Y1twKzQ+PjJdPWJ8MztxPXA7ZT1xK2J8MDtjW3ErKGJ8NCk+PjJdPW18MTtj
W3ErbD4+Ml09bTtsPWNbMjQ2Ml18MDtpZigobHwwKSE9MCl7cT1jWzI0NjVdfDA7ZD1sPj4+Mzts
PWQ8PDE7Zj05ODgwKyhsPDwyKXwwO2s9Y1syNDYwXXwwO2g9MTw8ZDtkb3tpZigoayZofDApPT0w
KXtjWzI0NjBdPWt8aDtzPWY7dD05ODgwKyhsKzI8PDIpfDB9ZWxzZXtkPTk4ODArKGwrMjw8Mil8
MDtnPWNbZD4+Ml18MDtpZihnPj4+MD49KGNbMjQ2NF18MCk+Pj4wKXtzPWc7dD1kO2JyZWFrfWJH
KCk7cmV0dXJuIDB9fXdoaWxlKDApO2NbdD4+Ml09cTtjW3MrMTI+PjJdPXE7Y1txKzg+PjJdPXM7
Y1txKzEyPj4yXT1mfWNbMjQ2Ml09bTtjWzI0NjVdPWU7bj1pO3JldHVybiBufDB9bD1jWzI0NjFd
fDA7aWYoKGx8MCk9PTApe289YjticmVha31oPShsJi1sKS0xfDA7bD1oPj4+MTImMTY7az1oPj4+
KGw+Pj4wKTtoPWs+Pj41Jjg7cD1rPj4+KGg+Pj4wKTtrPXA+Pj4yJjQ7cj1wPj4+KGs+Pj4wKTtw
PXI+Pj4xJjI7ZD1yPj4+KHA+Pj4wKTtyPWQ+Pj4xJjE7Zz1jWzEwMTQ0KygoaHxsfGt8cHxyKSso
ZD4+PihyPj4+MCkpPDwyKT4+Ml18MDtyPWc7ZD1nO3A9KGNbZys0Pj4yXSYtOCktYnwwO3doaWxl
KDEpe2c9Y1tyKzE2Pj4yXXwwO2lmKChnfDApPT0wKXtrPWNbcisyMD4+Ml18MDtpZigoa3wwKT09
MCl7YnJlYWt9ZWxzZXt1PWt9fWVsc2V7dT1nfWc9KGNbdSs0Pj4yXSYtOCktYnwwO2s9Zz4+PjA8
cD4+PjA7cj11O2Q9az91OmQ7cD1rP2c6cH1yPWQ7aT1jWzI0NjRdfDA7aWYocj4+PjA8aT4+PjAp
e2JHKCk7cmV0dXJuIDB9ZT1yK2J8MDttPWU7aWYocj4+PjA+PWU+Pj4wKXtiRygpO3JldHVybiAw
fWU9Y1tkKzI0Pj4yXXwwO2Y9Y1tkKzEyPj4yXXwwO2Rve2lmKChmfDApPT0oZHwwKSl7cT1kKzIw
fDA7Zz1jW3E+PjJdfDA7aWYoKGd8MCk9PTApe2s9ZCsxNnwwO2w9Y1trPj4yXXwwO2lmKChsfDAp
PT0wKXt2PTA7YnJlYWt9ZWxzZXt3PWw7eD1rfX1lbHNle3c9Zzt4PXF9d2hpbGUoMSl7cT13KzIw
fDA7Zz1jW3E+PjJdfDA7aWYoKGd8MCkhPTApe3c9Zzt4PXE7Y29udGludWV9cT13KzE2fDA7Zz1j
W3E+PjJdfDA7aWYoKGd8MCk9PTApe2JyZWFrfWVsc2V7dz1nO3g9cX19aWYoeD4+PjA8aT4+PjAp
e2JHKCk7cmV0dXJuIDB9ZWxzZXtjW3g+PjJdPTA7dj13O2JyZWFrfX1lbHNle3E9Y1tkKzg+PjJd
fDA7aWYocT4+PjA8aT4+PjApe2JHKCk7cmV0dXJuIDB9Zz1xKzEyfDA7aWYoKGNbZz4+Ml18MCkh
PShkfDApKXtiRygpO3JldHVybiAwfWs9Zis4fDA7aWYoKGNbaz4+Ml18MCk9PShkfDApKXtjW2c+
PjJdPWY7Y1trPj4yXT1xO3Y9ZjticmVha31lbHNle2JHKCk7cmV0dXJuIDB9fX13aGlsZSgwKTtM
NzQwOmRve2lmKChlfDApIT0wKXtmPWQrMjh8MDtpPTEwMTQ0KyhjW2Y+PjJdPDwyKXwwO2Rve2lm
KChkfDApPT0oY1tpPj4yXXwwKSl7Y1tpPj4yXT12O2lmKCh2fDApIT0wKXticmVha31jWzI0NjFd
PWNbMjQ2MV0mfigxPDxjW2Y+PjJdKTticmVhayBMNzQwfWVsc2V7aWYoZT4+PjA8KGNbMjQ2NF18
MCk+Pj4wKXtiRygpO3JldHVybiAwfXE9ZSsxNnwwO2lmKChjW3E+PjJdfDApPT0oZHwwKSl7Y1tx
Pj4yXT12fWVsc2V7Y1tlKzIwPj4yXT12fWlmKCh2fDApPT0wKXticmVhayBMNzQwfX19d2hpbGUo
MCk7aWYodj4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWNbdisyND4+Ml09ZTtm
PWNbZCsxNj4+Ml18MDtkb3tpZigoZnwwKSE9MCl7aWYoZj4+PjA8KGNbMjQ2NF18MCk+Pj4wKXti
RygpO3JldHVybiAwfWVsc2V7Y1t2KzE2Pj4yXT1mO2NbZisyND4+Ml09djticmVha319fXdoaWxl
KDApO2Y9Y1tkKzIwPj4yXXwwO2lmKChmfDApPT0wKXticmVha31pZihmPj4+MDwoY1syNDY0XXww
KT4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW3YrMjA+PjJdPWY7Y1tmKzI0Pj4yXT12O2JyZWFr
fX19d2hpbGUoMCk7aWYocD4+PjA8MTYpe2U9cCtifDA7Y1tkKzQ+PjJdPWV8MztmPXIrKGUrNCl8
MDtjW2Y+PjJdPWNbZj4+Ml18MX1lbHNle2NbZCs0Pj4yXT1ifDM7Y1tyKyhifDQpPj4yXT1wfDE7
Y1tyKyhwK2IpPj4yXT1wO2Y9Y1syNDYyXXwwO2lmKChmfDApIT0wKXtlPWNbMjQ2NV18MDtpPWY+
Pj4zO2Y9aTw8MTtxPTk4ODArKGY8PDIpfDA7az1jWzI0NjBdfDA7Zz0xPDxpO2Rve2lmKChrJmd8
MCk9PTApe2NbMjQ2MF09a3xnO3k9cTt6PTk4ODArKGYrMjw8Mil8MH1lbHNle2k9OTg4MCsoZisy
PDwyKXwwO2w9Y1tpPj4yXXwwO2lmKGw+Pj4wPj0oY1syNDY0XXwwKT4+PjApe3k9bDt6PWk7YnJl
YWt9YkcoKTtyZXR1cm4gMH19d2hpbGUoMCk7Y1t6Pj4yXT1lO2NbeSsxMj4+Ml09ZTtjW2UrOD4+
Ml09eTtjW2UrMTI+PjJdPXF9Y1syNDYyXT1wO2NbMjQ2NV09bX1mPWQrOHwwO2lmKChmfDApPT0w
KXtvPWI7YnJlYWt9ZWxzZXtuPWZ9cmV0dXJuIG58MH1lbHNle2lmKGE+Pj4wPjQyOTQ5NjcyMzEp
e289LTE7YnJlYWt9Zj1hKzExfDA7Zz1mJi04O2s9Y1syNDYxXXwwO2lmKChrfDApPT0wKXtvPWc7
YnJlYWt9cj0tZ3wwO2k9Zj4+Pjg7ZG97aWYoKGl8MCk9PTApe0E9MH1lbHNle2lmKGc+Pj4wPjE2
Nzc3MjE1KXtBPTMxO2JyZWFrfWY9KGkrMTA0ODMyMHwwKT4+PjE2Jjg7bD1pPDxmO2g9KGwrNTIw
MTkyfDApPj4+MTYmNDtqPWw8PGg7bD0oaisyNDU3NjB8MCk+Pj4xNiYyO0I9MTQtKGh8ZnxsKSso
ajw8bD4+PjE1KXwwO0E9Zz4+PigoQis3fDApPj4+MCkmMXxCPDwxfX13aGlsZSgwKTtpPWNbMTAx
NDQrKEE8PDIpPj4yXXwwO0w3ODg6ZG97aWYoKGl8MCk9PTApe0M9MDtEPXI7RT0wfWVsc2V7aWYo
KEF8MCk9PTMxKXtGPTB9ZWxzZXtGPTI1LShBPj4+MSl8MH1kPTA7bT1yO3A9aTtxPWc8PEY7ZT0w
O3doaWxlKDEpe0I9Y1twKzQ+PjJdJi04O2w9Qi1nfDA7aWYobD4+PjA8bT4+PjApe2lmKChCfDAp
PT0oZ3wwKSl7Qz1wO0Q9bDtFPXA7YnJlYWsgTDc4OH1lbHNle0c9cDtIPWx9fWVsc2V7Rz1kO0g9
bX1sPWNbcCsyMD4+Ml18MDtCPWNbcCsxNisocT4+PjMxPDwyKT4+Ml18MDtqPShsfDApPT0wfChs
fDApPT0oQnwwKT9lOmw7aWYoKEJ8MCk9PTApe0M9RztEPUg7RT1qO2JyZWFrfWVsc2V7ZD1HO209
SDtwPUI7cT1xPDwxO2U9an19fX13aGlsZSgwKTtpZigoRXwwKT09MCYoQ3wwKT09MCl7aT0yPDxB
O3I9ayYoaXwtaSk7aWYoKHJ8MCk9PTApe289ZzticmVha31pPShyJi1yKS0xfDA7cj1pPj4+MTIm
MTY7ZT1pPj4+KHI+Pj4wKTtpPWU+Pj41Jjg7cT1lPj4+KGk+Pj4wKTtlPXE+Pj4yJjQ7cD1xPj4+
KGU+Pj4wKTtxPXA+Pj4xJjI7bT1wPj4+KHE+Pj4wKTtwPW0+Pj4xJjE7ST1jWzEwMTQ0KygoaXxy
fGV8cXxwKSsobT4+PihwPj4+MCkpPDwyKT4+Ml18MH1lbHNle0k9RX1pZigoSXwwKT09MCl7Sj1E
O0s9Q31lbHNle3A9STttPUQ7cT1DO3doaWxlKDEpe2U9KGNbcCs0Pj4yXSYtOCktZ3wwO3I9ZT4+
PjA8bT4+PjA7aT1yP2U6bTtlPXI/cDpxO3I9Y1twKzE2Pj4yXXwwO2lmKChyfDApIT0wKXtwPXI7
bT1pO3E9ZTtjb250aW51ZX1yPWNbcCsyMD4+Ml18MDtpZigocnwwKT09MCl7Sj1pO0s9ZTticmVh
a31lbHNle3A9cjttPWk7cT1lfX19aWYoKEt8MCk9PTApe289ZzticmVha31pZihKPj4+MD49KChj
WzI0NjJdfDApLWd8MCk+Pj4wKXtvPWc7YnJlYWt9cT1LO209Y1syNDY0XXwwO2lmKHE+Pj4wPG0+
Pj4wKXtiRygpO3JldHVybiAwfXA9cStnfDA7az1wO2lmKHE+Pj4wPj1wPj4+MCl7YkcoKTtyZXR1
cm4gMH1lPWNbSysyND4+Ml18MDtpPWNbSysxMj4+Ml18MDtkb3tpZigoaXwwKT09KEt8MCkpe3I9
SysyMHwwO2Q9Y1tyPj4yXXwwO2lmKChkfDApPT0wKXtqPUsrMTZ8MDtCPWNbaj4+Ml18MDtpZigo
QnwwKT09MCl7TD0wO2JyZWFrfWVsc2V7TT1CO049an19ZWxzZXtNPWQ7Tj1yfXdoaWxlKDEpe3I9
TSsyMHwwO2Q9Y1tyPj4yXXwwO2lmKChkfDApIT0wKXtNPWQ7Tj1yO2NvbnRpbnVlfXI9TSsxNnww
O2Q9Y1tyPj4yXXwwO2lmKChkfDApPT0wKXticmVha31lbHNle009ZDtOPXJ9fWlmKE4+Pj4wPG0+
Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1tOPj4yXT0wO0w9TTticmVha319ZWxzZXtyPWNbSys4
Pj4yXXwwO2lmKHI+Pj4wPG0+Pj4wKXtiRygpO3JldHVybiAwfWQ9cisxMnwwO2lmKChjW2Q+PjJd
fDApIT0oS3wwKSl7YkcoKTtyZXR1cm4gMH1qPWkrOHwwO2lmKChjW2o+PjJdfDApPT0oS3wwKSl7
Y1tkPj4yXT1pO2Nbaj4+Ml09cjtMPWk7YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUo
MCk7TDgzODpkb3tpZigoZXwwKSE9MCl7aT1LKzI4fDA7bT0xMDE0NCsoY1tpPj4yXTw8Mil8MDtk
b3tpZigoS3wwKT09KGNbbT4+Ml18MCkpe2NbbT4+Ml09TDtpZigoTHwwKSE9MCl7YnJlYWt9Y1sy
NDYxXT1jWzI0NjFdJn4oMTw8Y1tpPj4yXSk7YnJlYWsgTDgzOH1lbHNle2lmKGU+Pj4wPChjWzI0
NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1yPWUrMTZ8MDtpZigoY1tyPj4yXXwwKT09KEt8MCkp
e2Nbcj4+Ml09TH1lbHNle2NbZSsyMD4+Ml09TH1pZigoTHwwKT09MCl7YnJlYWsgTDgzOH19fXdo
aWxlKDApO2lmKEw+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1cm4gMH1jW0wrMjQ+PjJd
PWU7aT1jW0srMTY+PjJdfDA7ZG97aWYoKGl8MCkhPTApe2lmKGk+Pj4wPChjWzI0NjRdfDApPj4+
MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbTCsxNj4+Ml09aTtjW2krMjQ+PjJdPUw7YnJlYWt9fX13
aGlsZSgwKTtpPWNbSysyMD4+Ml18MDtpZigoaXwwKT09MCl7YnJlYWt9aWYoaT4+PjA8KGNbMjQ2
NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1tMKzIwPj4yXT1pO2NbaSsyND4+Ml09TDti
cmVha319fXdoaWxlKDApO2Rve2lmKEo+Pj4wPDE2KXtlPUorZ3wwO2NbSys0Pj4yXT1lfDM7aT1x
KyhlKzQpfDA7Y1tpPj4yXT1jW2k+PjJdfDF9ZWxzZXtjW0srND4+Ml09Z3wzO2NbcSsoZ3w0KT4+
Ml09SnwxO2NbcSsoSitnKT4+Ml09SjtpPUo+Pj4zO2lmKEo+Pj4wPDI1Nil7ZT1pPDwxO209OTg4
MCsoZTw8Mil8MDtyPWNbMjQ2MF18MDtqPTE8PGk7ZG97aWYoKHImanwwKT09MCl7Y1syNDYwXT1y
fGo7Tz1tO1A9OTg4MCsoZSsyPDwyKXwwfWVsc2V7aT05ODgwKyhlKzI8PDIpfDA7ZD1jW2k+PjJd
fDA7aWYoZD4+PjA+PShjWzI0NjRdfDApPj4+MCl7Tz1kO1A9aTticmVha31iRygpO3JldHVybiAw
fX13aGlsZSgwKTtjW1A+PjJdPWs7Y1tPKzEyPj4yXT1rO2NbcSsoZys4KT4+Ml09TztjW3ErKGcr
MTIpPj4yXT1tO2JyZWFrfWU9cDtqPUo+Pj44O2Rve2lmKChqfDApPT0wKXtRPTB9ZWxzZXtpZihK
Pj4+MD4xNjc3NzIxNSl7UT0zMTticmVha31yPShqKzEwNDgzMjB8MCk+Pj4xNiY4O2k9ajw8cjtk
PShpKzUyMDE5MnwwKT4+PjE2JjQ7Qj1pPDxkO2k9KEIrMjQ1NzYwfDApPj4+MTYmMjtsPTE0LShk
fHJ8aSkrKEI8PGk+Pj4xNSl8MDtRPUo+Pj4oKGwrN3wwKT4+PjApJjF8bDw8MX19d2hpbGUoMCk7
aj0xMDE0NCsoUTw8Mil8MDtjW3ErKGcrMjgpPj4yXT1RO2NbcSsoZysyMCk+PjJdPTA7Y1txKyhn
KzE2KT4+Ml09MDttPWNbMjQ2MV18MDtsPTE8PFE7aWYoKG0mbHwwKT09MCl7Y1syNDYxXT1tfGw7
Y1tqPj4yXT1lO2NbcSsoZysyNCk+PjJdPWo7Y1txKyhnKzEyKT4+Ml09ZTtjW3ErKGcrOCk+PjJd
PWU7YnJlYWt9aWYoKFF8MCk9PTMxKXtSPTB9ZWxzZXtSPTI1LShRPj4+MSl8MH1sPUo8PFI7bT1j
W2o+PjJdfDA7d2hpbGUoMSl7aWYoKGNbbSs0Pj4yXSYtOHwwKT09KEp8MCkpe2JyZWFrfVM9bSsx
NisobD4+PjMxPDwyKXwwO2o9Y1tTPj4yXXwwO2lmKChqfDApPT0wKXtUPTY2MTticmVha31lbHNl
e2w9bDw8MTttPWp9fWlmKChUfDApPT02NjEpe2lmKFM+Pj4wPChjWzI0NjRdfDApPj4+MCl7Ykco
KTtyZXR1cm4gMH1lbHNle2NbUz4+Ml09ZTtjW3ErKGcrMjQpPj4yXT1tO2NbcSsoZysxMik+PjJd
PWU7Y1txKyhnKzgpPj4yXT1lO2JyZWFrfX1sPW0rOHwwO2o9Y1tsPj4yXXwwO2k9Y1syNDY0XXww
O2lmKG0+Pj4wPGk+Pj4wKXtiRygpO3JldHVybiAwfWlmKGo+Pj4wPGk+Pj4wKXtiRygpO3JldHVy
biAwfWVsc2V7Y1tqKzEyPj4yXT1lO2NbbD4+Ml09ZTtjW3ErKGcrOCk+PjJdPWo7Y1txKyhnKzEy
KT4+Ml09bTtjW3ErKGcrMjQpPj4yXT0wO2JyZWFrfX19d2hpbGUoMCk7cT1LKzh8MDtpZigocXww
KT09MCl7bz1nO2JyZWFrfWVsc2V7bj1xfXJldHVybiBufDB9fXdoaWxlKDApO0s9Y1syNDYyXXww
O2lmKG8+Pj4wPD1LPj4+MCl7Uz1LLW98MDtKPWNbMjQ2NV18MDtpZihTPj4+MD4xNSl7Uj1KO2Nb
MjQ2NV09UitvO2NbMjQ2Ml09UztjW1IrKG8rNCk+PjJdPVN8MTtjW1IrSz4+Ml09UztjW0orND4+
Ml09b3wzfWVsc2V7Y1syNDYyXT0wO2NbMjQ2NV09MDtjW0orND4+Ml09S3wzO1M9SisoSys0KXww
O2NbUz4+Ml09Y1tTPj4yXXwxfW49Sis4fDA7cmV0dXJuIG58MH1KPWNbMjQ2M118MDtpZihvPj4+
MDxKPj4+MCl7Uz1KLW98MDtjWzI0NjNdPVM7Sj1jWzI0NjZdfDA7Sz1KO2NbMjQ2Nl09SytvO2Nb
Sysobys0KT4+Ml09U3wxO2NbSis0Pj4yXT1vfDM7bj1KKzh8MDtyZXR1cm4gbnwwfWRve2lmKChj
WzI0NTBdfDApPT0wKXtKPWJFKDgpfDA7aWYoKEotMSZKfDApPT0wKXtjWzI0NTJdPUo7Y1syNDUx
XT1KO2NbMjQ1M109LTE7Y1syNDU0XT0tMTtjWzI0NTVdPTA7Y1syNTcxXT0wO2NbMjQ1MF09KGJW
KDApfDApJi0xNl4xNDMxNjU1NzY4O2JyZWFrfWVsc2V7YkcoKTtyZXR1cm4gMH19fXdoaWxlKDAp
O0o9bys0OHwwO1M9Y1syNDUyXXwwO0s9bys0N3wwO1I9UytLfDA7UT0tU3wwO1M9UiZRO2lmKFM+
Pj4wPD1vPj4+MCl7bj0wO3JldHVybiBufDB9Tz1jWzI1NzBdfDA7ZG97aWYoKE98MCkhPTApe1A9
Y1syNTY4XXwwO0w9UCtTfDA7aWYoTD4+PjA8PVA+Pj4wfEw+Pj4wPk8+Pj4wKXtuPTB9ZWxzZXti
cmVha31yZXR1cm4gbnwwfX13aGlsZSgwKTtMOTMwOmRve2lmKChjWzI1NzFdJjR8MCk9PTApe089
Y1syNDY2XXwwO0w5MzI6ZG97aWYoKE98MCk9PTApe1Q9NjkxfWVsc2V7TD1PO1A9MTAyODg7d2hp
bGUoMSl7VT1QfDA7TT1jW1U+PjJdfDA7aWYoTT4+PjA8PUw+Pj4wKXtWPVArNHwwO2lmKChNKyhj
W1Y+PjJdfDApfDApPj4+MD5MPj4+MCl7YnJlYWt9fU09Y1tQKzg+PjJdfDA7aWYoKE18MCk9PTAp
e1Q9NjkxO2JyZWFrIEw5MzJ9ZWxzZXtQPU19fWlmKChQfDApPT0wKXtUPTY5MTticmVha31MPVIt
KGNbMjQ2M118MCkmUTtpZihMPj4+MD49MjE0NzQ4MzY0Nyl7Vz0wO2JyZWFrfW09YnYoTHwwKXww
O2U9KG18MCk9PSgoY1tVPj4yXXwwKSsoY1tWPj4yXXwwKXwwKTtYPWU/bTotMTtZPWU/TDowO1o9
bTtfPUw7VD03MDB9fXdoaWxlKDApO2Rve2lmKChUfDApPT02OTEpe089YnYoMCl8MDtpZigoT3ww
KT09LTEpe1c9MDticmVha31nPU87TD1jWzI0NTFdfDA7bT1MLTF8MDtpZigobSZnfDApPT0wKXsk
PVN9ZWxzZXskPVMtZysobStnJi1MKXwwfUw9Y1syNTY4XXwwO2c9TCskfDA7aWYoISgkPj4+MD5v
Pj4+MCYkPj4+MDwyMTQ3NDgzNjQ3KSl7Vz0wO2JyZWFrfW09Y1syNTcwXXwwO2lmKChtfDApIT0w
KXtpZihnPj4+MDw9TD4+PjB8Zz4+PjA+bT4+PjApe1c9MDticmVha319bT1idigkfDApfDA7Zz0o
bXwwKT09KE98MCk7WD1nP086LTE7WT1nPyQ6MDtaPW07Xz0kO1Q9NzAwfX13aGlsZSgwKTtMOTUy
OmRve2lmKChUfDApPT03MDApe209LV98MDtpZigoWHwwKSE9LTEpe2FhPVk7YWI9WDtUPTcxMTti
cmVhayBMOTMwfWRve2lmKChafDApIT0tMSZfPj4+MDwyMTQ3NDgzNjQ3Jl8+Pj4wPEo+Pj4wKXtn
PWNbMjQ1Ml18MDtPPUstXytnJi1nO2lmKE8+Pj4wPj0yMTQ3NDgzNjQ3KXthYz1fO2JyZWFrfWlm
KChidihPfDApfDApPT0tMSl7YnYobXwwKXwwO1c9WTticmVhayBMOTUyfWVsc2V7YWM9TytffDA7
YnJlYWt9fWVsc2V7YWM9X319d2hpbGUoMCk7aWYoKFp8MCk9PS0xKXtXPVl9ZWxzZXthYT1hYzth
Yj1aO1Q9NzExO2JyZWFrIEw5MzB9fX13aGlsZSgwKTtjWzI1NzFdPWNbMjU3MV18NDthZD1XO1Q9
NzA4fWVsc2V7YWQ9MDtUPTcwOH19d2hpbGUoMCk7ZG97aWYoKFR8MCk9PTcwOCl7aWYoUz4+PjA+
PTIxNDc0ODM2NDcpe2JyZWFrfVc9YnYoU3wwKXwwO1o9YnYoMCl8MDtpZighKChafDApIT0tMSYo
V3wwKSE9LTEmVz4+PjA8Wj4+PjApKXticmVha31hYz1aLVd8MDtaPWFjPj4+MD4obys0MHwwKT4+
PjA7WT1aP1c6LTE7aWYoKFl8MCkhPS0xKXthYT1aP2FjOmFkO2FiPVk7VD03MTF9fX13aGlsZSgw
KTtkb3tpZigoVHwwKT09NzExKXthZD0oY1syNTY4XXwwKSthYXwwO2NbMjU2OF09YWQ7aWYoYWQ+
Pj4wPihjWzI1NjldfDApPj4+MCl7Y1syNTY5XT1hZH1hZD1jWzI0NjZdfDA7TDk3Mjpkb3tpZigo
YWR8MCk9PTApe1M9Y1syNDY0XXwwO2lmKChTfDApPT0wfGFiPj4+MDxTPj4+MCl7Y1syNDY0XT1h
Yn1jWzI1NzJdPWFiO2NbMjU3M109YWE7Y1syNTc1XT0wO2NbMjQ2OV09Y1syNDUwXTtjWzI0Njhd
PS0xO1M9MDtkb3tZPVM8PDE7YWM9OTg4MCsoWTw8Mil8MDtjWzk4ODArKFkrMzw8Mik+PjJdPWFj
O2NbOTg4MCsoWSsyPDwyKT4+Ml09YWM7Uz1TKzF8MDt9d2hpbGUoUz4+PjA8MzIpO1M9YWIrOHww
O2lmKChTJjd8MCk9PTApe2FlPTB9ZWxzZXthZT0tUyY3fVM9YWEtNDAtYWV8MDtjWzI0NjZdPWFi
K2FlO2NbMjQ2M109UztjW2FiKyhhZSs0KT4+Ml09U3wxO2NbYWIrKGFhLTM2KT4+Ml09NDA7Y1sy
NDY3XT1jWzI0NTRdfWVsc2V7Uz0xMDI4ODt3aGlsZSgxKXthZj1jW1M+PjJdfDA7YWc9Uys0fDA7
YWg9Y1thZz4+Ml18MDtpZigoYWJ8MCk9PShhZithaHwwKSl7VD03MjM7YnJlYWt9YWM9Y1tTKzg+
PjJdfDA7aWYoKGFjfDApPT0wKXticmVha31lbHNle1M9YWN9fWRve2lmKChUfDApPT03MjMpe2lm
KChjW1MrMTI+PjJdJjh8MCkhPTApe2JyZWFrfWFjPWFkO2lmKCEoYWM+Pj4wPj1hZj4+PjAmYWM+
Pj4wPGFiPj4+MCkpe2JyZWFrfWNbYWc+PjJdPWFoK2FhO2FjPWNbMjQ2Nl18MDtZPShjWzI0NjNd
fDApK2FhfDA7Wj1hYztXPWFjKzh8MDtpZigoVyY3fDApPT0wKXthaT0wfWVsc2V7YWk9LVcmN31X
PVktYWl8MDtjWzI0NjZdPVorYWk7Y1syNDYzXT1XO2NbWisoYWkrNCk+PjJdPVd8MTtjW1orKFkr
NCk+PjJdPTQwO2NbMjQ2N109Y1syNDU0XTticmVhayBMOTcyfX13aGlsZSgwKTtpZihhYj4+PjA8
KGNbMjQ2NF18MCk+Pj4wKXtjWzI0NjRdPWFifVM9YWIrYWF8MDtZPTEwMjg4O3doaWxlKDEpe2Fq
PVl8MDtpZigoY1thaj4+Ml18MCk9PShTfDApKXtUPTczMzticmVha31aPWNbWSs4Pj4yXXwwO2lm
KChafDApPT0wKXticmVha31lbHNle1k9Wn19ZG97aWYoKFR8MCk9PTczMyl7aWYoKGNbWSsxMj4+
Ml0mOHwwKSE9MCl7YnJlYWt9Y1thaj4+Ml09YWI7Uz1ZKzR8MDtjW1M+PjJdPShjW1M+PjJdfDAp
K2FhO1M9YWIrOHwwO2lmKChTJjd8MCk9PTApe2FrPTB9ZWxzZXthaz0tUyY3fVM9YWIrKGFhKzgp
fDA7aWYoKFMmN3wwKT09MCl7YWw9MH1lbHNle2FsPS1TJjd9Uz1hYisoYWwrYWEpfDA7Wj1TO1c9
YWsrb3wwO2FjPWFiK1d8MDtfPWFjO0s9Uy0oYWIrYWspLW98MDtjW2FiKyhhays0KT4+Ml09b3wz
O2Rve2lmKChafDApPT0oY1syNDY2XXwwKSl7Sj0oY1syNDYzXXwwKStLfDA7Y1syNDYzXT1KO2Nb
MjQ2Nl09XztjW2FiKyhXKzQpPj4yXT1KfDF9ZWxzZXtpZigoWnwwKT09KGNbMjQ2NV18MCkpe0o9
KGNbMjQ2Ml18MCkrS3wwO2NbMjQ2Ml09SjtjWzI0NjVdPV87Y1thYisoVys0KT4+Ml09SnwxO2Nb
YWIrKEorVyk+PjJdPUo7YnJlYWt9Sj1hYSs0fDA7WD1jW2FiKyhKK2FsKT4+Ml18MDtpZigoWCYz
fDApPT0xKXskPVgmLTg7Vj1YPj4+MztMMTAxNzpkb3tpZihYPj4+MDwyNTYpe1U9Y1thYisoKGFs
fDgpK2FhKT4+Ml18MDtRPWNbYWIrKGFhKzEyK2FsKT4+Ml18MDtSPTk4ODArKFY8PDE8PDIpfDA7
ZG97aWYoKFV8MCkhPShSfDApKXtpZihVPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJu
IDB9aWYoKGNbVSsxMj4+Ml18MCk9PShafDApKXticmVha31iRygpO3JldHVybiAwfX13aGlsZSgw
KTtpZigoUXwwKT09KFV8MCkpe2NbMjQ2MF09Y1syNDYwXSZ+KDE8PFYpO2JyZWFrfWRve2lmKChR
fDApPT0oUnwwKSl7YW09USs4fDB9ZWxzZXtpZihRPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7
cmV0dXJuIDB9bT1RKzh8MDtpZigoY1ttPj4yXXwwKT09KFp8MCkpe2FtPW07YnJlYWt9YkcoKTty
ZXR1cm4gMH19d2hpbGUoMCk7Y1tVKzEyPj4yXT1RO2NbYW0+PjJdPVV9ZWxzZXtSPVM7bT1jW2Fi
KygoYWx8MjQpK2FhKT4+Ml18MDtQPWNbYWIrKGFhKzEyK2FsKT4+Ml18MDtkb3tpZigoUHwwKT09
KFJ8MCkpe089YWx8MTY7Zz1hYisoSitPKXwwO0w9Y1tnPj4yXXwwO2lmKChMfDApPT0wKXtlPWFi
KyhPK2FhKXwwO089Y1tlPj4yXXwwO2lmKChPfDApPT0wKXthbj0wO2JyZWFrfWVsc2V7YW89Tzth
cD1lfX1lbHNle2FvPUw7YXA9Z313aGlsZSgxKXtnPWFvKzIwfDA7TD1jW2c+PjJdfDA7aWYoKEx8
MCkhPTApe2FvPUw7YXA9Zztjb250aW51ZX1nPWFvKzE2fDA7TD1jW2c+PjJdfDA7aWYoKEx8MCk9
PTApe2JyZWFrfWVsc2V7YW89TDthcD1nfX1pZihhcD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygp
O3JldHVybiAwfWVsc2V7Y1thcD4+Ml09MDthbj1hbzticmVha319ZWxzZXtnPWNbYWIrKChhbHw4
KSthYSk+PjJdfDA7aWYoZz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfUw9Zysx
MnwwO2lmKChjW0w+PjJdfDApIT0oUnwwKSl7YkcoKTtyZXR1cm4gMH1lPVArOHwwO2lmKChjW2U+
PjJdfDApPT0oUnwwKSl7Y1tMPj4yXT1QO2NbZT4+Ml09Zzthbj1QO2JyZWFrfWVsc2V7YkcoKTty
ZXR1cm4gMH19fXdoaWxlKDApO2lmKChtfDApPT0wKXticmVha31QPWFiKyhhYSsyOCthbCl8MDtV
PTEwMTQ0KyhjW1A+PjJdPDwyKXwwO2Rve2lmKChSfDApPT0oY1tVPj4yXXwwKSl7Y1tVPj4yXT1h
bjtpZigoYW58MCkhPTApe2JyZWFrfWNbMjQ2MV09Y1syNDYxXSZ+KDE8PGNbUD4+Ml0pO2JyZWFr
IEwxMDE3fWVsc2V7aWYobT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfVE9bSsx
NnwwO2lmKChjW1E+PjJdfDApPT0oUnwwKSl7Y1tRPj4yXT1hbn1lbHNle2NbbSsyMD4+Ml09YW59
aWYoKGFufDApPT0wKXticmVhayBMMTAxN319fXdoaWxlKDApO2lmKGFuPj4+MDwoY1syNDY0XXww
KT4+PjApe2JHKCk7cmV0dXJuIDB9Y1thbisyND4+Ml09bTtSPWFsfDE2O1A9Y1thYisoUithYSk+
PjJdfDA7ZG97aWYoKFB8MCkhPTApe2lmKFA+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1
cm4gMH1lbHNle2NbYW4rMTY+PjJdPVA7Y1tQKzI0Pj4yXT1hbjticmVha319fXdoaWxlKDApO1A9
Y1thYisoSitSKT4+Ml18MDtpZigoUHwwKT09MCl7YnJlYWt9aWYoUD4+PjA8KGNbMjQ2NF18MCk+
Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1thbisyMD4+Ml09UDtjW1ArMjQ+PjJdPWFuO2JyZWFr
fX19d2hpbGUoMCk7YXE9YWIrKCgkfGFsKSthYSl8MDthcj0kK0t8MH1lbHNle2FxPVo7YXI9S31K
PWFxKzR8MDtjW0o+PjJdPWNbSj4+Ml0mLTI7Y1thYisoVys0KT4+Ml09YXJ8MTtjW2FiKyhhcitX
KT4+Ml09YXI7Sj1hcj4+PjM7aWYoYXI+Pj4wPDI1Nil7Vj1KPDwxO1g9OTg4MCsoVjw8Mil8MDtQ
PWNbMjQ2MF18MDttPTE8PEo7ZG97aWYoKFAmbXwwKT09MCl7Y1syNDYwXT1QfG07YXM9WDthdD05
ODgwKyhWKzI8PDIpfDB9ZWxzZXtKPTk4ODArKFYrMjw8Mil8MDtVPWNbSj4+Ml18MDtpZihVPj4+
MD49KGNbMjQ2NF18MCk+Pj4wKXthcz1VO2F0PUo7YnJlYWt9YkcoKTtyZXR1cm4gMH19d2hpbGUo
MCk7Y1thdD4+Ml09XztjW2FzKzEyPj4yXT1fO2NbYWIrKFcrOCk+PjJdPWFzO2NbYWIrKFcrMTIp
Pj4yXT1YO2JyZWFrfVY9YWM7bT1hcj4+Pjg7ZG97aWYoKG18MCk9PTApe2F1PTB9ZWxzZXtpZihh
cj4+PjA+MTY3NzcyMTUpe2F1PTMxO2JyZWFrfVA9KG0rMTA0ODMyMHwwKT4+PjE2Jjg7JD1tPDxQ
O0o9KCQrNTIwMTkyfDApPj4+MTYmNDtVPSQ8PEo7JD0oVSsyNDU3NjB8MCk+Pj4xNiYyO1E9MTQt
KEp8UHwkKSsoVTw8JD4+PjE1KXwwO2F1PWFyPj4+KChRKzd8MCk+Pj4wKSYxfFE8PDF9fXdoaWxl
KDApO209MTAxNDQrKGF1PDwyKXwwO2NbYWIrKFcrMjgpPj4yXT1hdTtjW2FiKyhXKzIwKT4+Ml09
MDtjW2FiKyhXKzE2KT4+Ml09MDtYPWNbMjQ2MV18MDtRPTE8PGF1O2lmKChYJlF8MCk9PTApe2Nb
MjQ2MV09WHxRO2NbbT4+Ml09VjtjW2FiKyhXKzI0KT4+Ml09bTtjW2FiKyhXKzEyKT4+Ml09Vjtj
W2FiKyhXKzgpPj4yXT1WO2JyZWFrfWlmKChhdXwwKT09MzEpe2F2PTB9ZWxzZXthdj0yNS0oYXU+
Pj4xKXwwfVE9YXI8PGF2O1g9Y1ttPj4yXXwwO3doaWxlKDEpe2lmKChjW1grND4+Ml0mLTh8MCk9
PShhcnwwKSl7YnJlYWt9YXc9WCsxNisoUT4+PjMxPDwyKXwwO209Y1thdz4+Ml18MDtpZigobXww
KT09MCl7VD04MDY7YnJlYWt9ZWxzZXtRPVE8PDE7WD1tfX1pZigoVHwwKT09ODA2KXtpZihhdz4+
PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1thdz4+Ml09VjtjW2FiKyhX
KzI0KT4+Ml09WDtjW2FiKyhXKzEyKT4+Ml09VjtjW2FiKyhXKzgpPj4yXT1WO2JyZWFrfX1RPVgr
OHwwO209Y1tRPj4yXXwwOyQ9Y1syNDY0XXwwO2lmKFg+Pj4wPCQ+Pj4wKXtiRygpO3JldHVybiAw
fWlmKG0+Pj4wPCQ+Pj4wKXtiRygpO3JldHVybiAwfWVsc2V7Y1ttKzEyPj4yXT1WO2NbUT4+Ml09
VjtjW2FiKyhXKzgpPj4yXT1tO2NbYWIrKFcrMTIpPj4yXT1YO2NbYWIrKFcrMjQpPj4yXT0wO2Jy
ZWFrfX19d2hpbGUoMCk7bj1hYisoYWt8OCl8MDtyZXR1cm4gbnwwfX13aGlsZSgwKTtZPWFkO1c9
MTAyODg7d2hpbGUoMSl7YXg9Y1tXPj4yXXwwO2lmKGF4Pj4+MDw9WT4+PjApe2F5PWNbVys0Pj4y
XXwwO2F6PWF4K2F5fDA7aWYoYXo+Pj4wPlk+Pj4wKXticmVha319Vz1jW1crOD4+Ml18MH1XPWF4
KyhheS0zOSl8MDtpZigoVyY3fDApPT0wKXthQT0wfWVsc2V7YUE9LVcmN31XPWF4KyhheS00Nyth
QSl8MDthYz1XPj4+MDwoYWQrMTZ8MCk+Pj4wP1k6VztXPWFjKzh8MDtfPWFiKzh8MDtpZigoXyY3
fDApPT0wKXthQj0wfWVsc2V7YUI9LV8mN31fPWFhLTQwLWFCfDA7Y1syNDY2XT1hYithQjtjWzI0
NjNdPV87Y1thYisoYUIrNCk+PjJdPV98MTtjW2FiKyhhYS0zNik+PjJdPTQwO2NbMjQ2N109Y1sy
NDU0XTtjW2FjKzQ+PjJdPTI3O2NbVz4+Ml09Y1syNTcyXTtjW1crND4+Ml09Y1sxMDI5Mj4+Ml07
Y1tXKzg+PjJdPWNbMTAyOTY+PjJdO2NbVysxMj4+Ml09Y1sxMDMwMD4+Ml07Y1syNTcyXT1hYjtj
WzI1NzNdPWFhO2NbMjU3NV09MDtjWzI1NzRdPVc7Vz1hYysyOHwwO2NbVz4+Ml09NztpZigoYWMr
MzJ8MCk+Pj4wPGF6Pj4+MCl7Xz1XO3doaWxlKDEpe1c9Xys0fDA7Y1tXPj4yXT03O2lmKChfKzh8
MCk+Pj4wPGF6Pj4+MCl7Xz1XfWVsc2V7YnJlYWt9fX1pZigoYWN8MCk9PShZfDApKXticmVha31f
PWFjLWFkfDA7Vz1ZKyhfKzQpfDA7Y1tXPj4yXT1jW1c+PjJdJi0yO2NbYWQrND4+Ml09X3wxO2Nb
WStfPj4yXT1fO1c9Xz4+PjM7aWYoXz4+PjA8MjU2KXtLPVc8PDE7Wj05ODgwKyhLPDwyKXwwO1M9
Y1syNDYwXXwwO209MTw8Vztkb3tpZigoUyZtfDApPT0wKXtjWzI0NjBdPVN8bTthQz1aO2FEPTk4
ODArKEsrMjw8Mil8MH1lbHNle1c9OTg4MCsoSysyPDwyKXwwO1E9Y1tXPj4yXXwwO2lmKFE+Pj4w
Pj0oY1syNDY0XXwwKT4+PjApe2FDPVE7YUQ9VzticmVha31iRygpO3JldHVybiAwfX13aGlsZSgw
KTtjW2FEPj4yXT1hZDtjW2FDKzEyPj4yXT1hZDtjW2FkKzg+PjJdPWFDO2NbYWQrMTI+PjJdPVo7
YnJlYWt9Sz1hZDttPV8+Pj44O2Rve2lmKChtfDApPT0wKXthRT0wfWVsc2V7aWYoXz4+PjA+MTY3
NzcyMTUpe2FFPTMxO2JyZWFrfVM9KG0rMTA0ODMyMHwwKT4+PjE2Jjg7WT1tPDxTO2FjPShZKzUy
MDE5MnwwKT4+PjE2JjQ7Vz1ZPDxhYztZPShXKzI0NTc2MHwwKT4+PjE2JjI7UT0xNC0oYWN8U3xZ
KSsoVzw8WT4+PjE1KXwwO2FFPV8+Pj4oKFErN3wwKT4+PjApJjF8UTw8MX19d2hpbGUoMCk7bT0x
MDE0NCsoYUU8PDIpfDA7Y1thZCsyOD4+Ml09YUU7Y1thZCsyMD4+Ml09MDtjW2FkKzE2Pj4yXT0w
O1o9Y1syNDYxXXwwO1E9MTw8YUU7aWYoKFomUXwwKT09MCl7Y1syNDYxXT1afFE7Y1ttPj4yXT1L
O2NbYWQrMjQ+PjJdPW07Y1thZCsxMj4+Ml09YWQ7Y1thZCs4Pj4yXT1hZDticmVha31pZigoYUV8
MCk9PTMxKXthRj0wfWVsc2V7YUY9MjUtKGFFPj4+MSl8MH1RPV88PGFGO1o9Y1ttPj4yXXwwO3do
aWxlKDEpe2lmKChjW1orND4+Ml0mLTh8MCk9PShffDApKXticmVha31hRz1aKzE2KyhRPj4+MzE8
PDIpfDA7bT1jW2FHPj4yXXwwO2lmKChtfDApPT0wKXtUPTg0MTticmVha31lbHNle1E9UTw8MTta
PW19fWlmKChUfDApPT04NDEpe2lmKGFHPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCk7cmV0dXJu
IDB9ZWxzZXtjW2FHPj4yXT1LO2NbYWQrMjQ+PjJdPVo7Y1thZCsxMj4+Ml09YWQ7Y1thZCs4Pj4y
XT1hZDticmVha319UT1aKzh8MDtfPWNbUT4+Ml18MDttPWNbMjQ2NF18MDtpZihaPj4+MDxtPj4+
MCl7YkcoKTtyZXR1cm4gMH1pZihfPj4+MDxtPj4+MCl7YkcoKTtyZXR1cm4gMH1lbHNle2NbXysx
Mj4+Ml09SztjW1E+PjJdPUs7Y1thZCs4Pj4yXT1fO2NbYWQrMTI+PjJdPVo7Y1thZCsyND4+Ml09
MDticmVha319fXdoaWxlKDApO2FkPWNbMjQ2M118MDtpZihhZD4+PjA8PW8+Pj4wKXticmVha31f
PWFkLW98MDtjWzI0NjNdPV87YWQ9Y1syNDY2XXwwO1E9YWQ7Y1syNDY2XT1RK287Y1tRKyhvKzQp
Pj4yXT1ffDE7Y1thZCs0Pj4yXT1vfDM7bj1hZCs4fDA7cmV0dXJuIG58MH19d2hpbGUoMCk7Y1so
YncoKXwwKT4+Ml09MTI7bj0wO3JldHVybiBufDB9ZnVuY3Rpb24ga0soYSl7YT1hfDA7dmFyIGI9
MCxkPTAsZT0wLGY9MCxnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0w
LHI9MCxzPTAsdD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAs
Rj0wLEc9MCxIPTAsST0wLEo9MCxLPTAsTD0wLE09MCxOPTAsTz0wO2lmKChhfDApPT0wKXtyZXR1
cm59Yj1hLTh8MDtkPWI7ZT1jWzI0NjRdfDA7aWYoYj4+PjA8ZT4+PjApe2JHKCl9Zj1jW2EtND4+
Ml18MDtnPWYmMztpZigoZ3wwKT09MSl7YkcoKX1oPWYmLTg7aT1hKyhoLTgpfDA7aj1pO0wxMTg5
OmRve2lmKChmJjF8MCk9PTApe2s9Y1tiPj4yXXwwO2lmKChnfDApPT0wKXtyZXR1cm59bD0tOC1r
fDA7bT1hK2x8MDtuPW07bz1rK2h8MDtpZihtPj4+MDxlPj4+MCl7YkcoKX1pZigobnwwKT09KGNb
MjQ2NV18MCkpe3A9YSsoaC00KXwwO2lmKChjW3A+PjJdJjN8MCkhPTMpe3E9bjtyPW87YnJlYWt9
Y1syNDYyXT1vO2NbcD4+Ml09Y1twPj4yXSYtMjtjW2ErKGwrNCk+PjJdPW98MTtjW2k+PjJdPW87
cmV0dXJufXA9az4+PjM7aWYoaz4+PjA8MjU2KXtrPWNbYSsobCs4KT4+Ml18MDtzPWNbYSsobCsx
Mik+PjJdfDA7dD05ODgwKyhwPDwxPDwyKXwwO2Rve2lmKChrfDApIT0odHwwKSl7aWYoaz4+PjA8
ZT4+PjApe2JHKCl9aWYoKGNbaysxMj4+Ml18MCk9PShufDApKXticmVha31iRygpfX13aGlsZSgw
KTtpZigoc3wwKT09KGt8MCkpe2NbMjQ2MF09Y1syNDYwXSZ+KDE8PHApO3E9bjtyPW87YnJlYWt9
ZG97aWYoKHN8MCk9PSh0fDApKXt1PXMrOHwwfWVsc2V7aWYocz4+PjA8ZT4+PjApe2JHKCl9dj1z
Kzh8MDtpZigoY1t2Pj4yXXwwKT09KG58MCkpe3U9djticmVha31iRygpfX13aGlsZSgwKTtjW2sr
MTI+PjJdPXM7Y1t1Pj4yXT1rO3E9bjtyPW87YnJlYWt9dD1tO3A9Y1thKyhsKzI0KT4+Ml18MDt2
PWNbYSsobCsxMik+PjJdfDA7ZG97aWYoKHZ8MCk9PSh0fDApKXt3PWErKGwrMjApfDA7eD1jW3c+
PjJdfDA7aWYoKHh8MCk9PTApe3k9YSsobCsxNil8MDt6PWNbeT4+Ml18MDtpZigoenwwKT09MCl7
QT0wO2JyZWFrfWVsc2V7Qj16O0M9eX19ZWxzZXtCPXg7Qz13fXdoaWxlKDEpe3c9QisyMHwwO3g9
Y1t3Pj4yXXwwO2lmKCh4fDApIT0wKXtCPXg7Qz13O2NvbnRpbnVlfXc9QisxNnwwO3g9Y1t3Pj4y
XXwwO2lmKCh4fDApPT0wKXticmVha31lbHNle0I9eDtDPXd9fWlmKEM+Pj4wPGU+Pj4wKXtiRygp
fWVsc2V7Y1tDPj4yXT0wO0E9QjticmVha319ZWxzZXt3PWNbYSsobCs4KT4+Ml18MDtpZih3Pj4+
MDxlPj4+MCl7YkcoKX14PXcrMTJ8MDtpZigoY1t4Pj4yXXwwKSE9KHR8MCkpe2JHKCl9eT12Kzh8
MDtpZigoY1t5Pj4yXXwwKT09KHR8MCkpe2NbeD4+Ml09djtjW3k+PjJdPXc7QT12O2JyZWFrfWVs
c2V7YkcoKX19fXdoaWxlKDApO2lmKChwfDApPT0wKXtxPW47cj1vO2JyZWFrfXY9YSsobCsyOCl8
MDttPTEwMTQ0KyhjW3Y+PjJdPDwyKXwwO2Rve2lmKCh0fDApPT0oY1ttPj4yXXwwKSl7Y1ttPj4y
XT1BO2lmKChBfDApIT0wKXticmVha31jWzI0NjFdPWNbMjQ2MV0mfigxPDxjW3Y+PjJdKTtxPW47
cj1vO2JyZWFrIEwxMTg5fWVsc2V7aWYocD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWs9cCsx
NnwwO2lmKChjW2s+PjJdfDApPT0odHwwKSl7Y1trPj4yXT1BfWVsc2V7Y1twKzIwPj4yXT1BfWlm
KChBfDApPT0wKXtxPW47cj1vO2JyZWFrIEwxMTg5fX19d2hpbGUoMCk7aWYoQT4+PjA8KGNbMjQ2
NF18MCk+Pj4wKXtiRygpfWNbQSsyND4+Ml09cDt0PWNbYSsobCsxNik+PjJdfDA7ZG97aWYoKHR8
MCkhPTApe2lmKHQ+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKX1lbHNle2NbQSsxNj4+Ml09dDtj
W3QrMjQ+PjJdPUE7YnJlYWt9fX13aGlsZSgwKTt0PWNbYSsobCsyMCk+PjJdfDA7aWYoKHR8MCk9
PTApe3E9bjtyPW87YnJlYWt9aWYodD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tB
KzIwPj4yXT10O2NbdCsyND4+Ml09QTtxPW47cj1vO2JyZWFrfX1lbHNle3E9ZDtyPWh9fXdoaWxl
KDApO2Q9cTtpZihkPj4+MD49aT4+PjApe2JHKCl9QT1hKyhoLTQpfDA7ZT1jW0E+PjJdfDA7aWYo
KGUmMXwwKT09MCl7YkcoKX1kb3tpZigoZSYyfDApPT0wKXtpZigoanwwKT09KGNbMjQ2Nl18MCkp
e0I9KGNbMjQ2M118MCkrcnwwO2NbMjQ2M109QjtjWzI0NjZdPXE7Y1txKzQ+PjJdPUJ8MTtpZigo
cXwwKSE9KGNbMjQ2NV18MCkpe3JldHVybn1jWzI0NjVdPTA7Y1syNDYyXT0wO3JldHVybn1pZigo
anwwKT09KGNbMjQ2NV18MCkpe0I9KGNbMjQ2Ml18MCkrcnwwO2NbMjQ2Ml09QjtjWzI0NjVdPXE7
Y1txKzQ+PjJdPUJ8MTtjW2QrQj4+Ml09QjtyZXR1cm59Qj0oZSYtOCkrcnwwO0M9ZT4+PjM7TDEy
OTI6ZG97aWYoZT4+PjA8MjU2KXt1PWNbYStoPj4yXXwwO2c9Y1thKyhofDQpPj4yXXwwO2I9OTg4
MCsoQzw8MTw8Mil8MDtkb3tpZigodXwwKSE9KGJ8MCkpe2lmKHU+Pj4wPChjWzI0NjRdfDApPj4+
MCl7YkcoKX1pZigoY1t1KzEyPj4yXXwwKT09KGp8MCkpe2JyZWFrfWJHKCl9fXdoaWxlKDApO2lm
KChnfDApPT0odXwwKSl7Y1syNDYwXT1jWzI0NjBdJn4oMTw8Qyk7YnJlYWt9ZG97aWYoKGd8MCk9
PShifDApKXtEPWcrOHwwfWVsc2V7aWYoZz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWY9Zys4
fDA7aWYoKGNbZj4+Ml18MCk9PShqfDApKXtEPWY7YnJlYWt9YkcoKX19d2hpbGUoMCk7Y1t1KzEy
Pj4yXT1nO2NbRD4+Ml09dX1lbHNle2I9aTtmPWNbYSsoaCsxNik+PjJdfDA7dD1jW2ErKGh8NCk+
PjJdfDA7ZG97aWYoKHR8MCk9PShifDApKXtwPWErKGgrMTIpfDA7dj1jW3A+PjJdfDA7aWYoKHZ8
MCk9PTApe209YSsoaCs4KXwwO2s9Y1ttPj4yXXwwO2lmKChrfDApPT0wKXtFPTA7YnJlYWt9ZWxz
ZXtGPWs7Rz1tfX1lbHNle0Y9djtHPXB9d2hpbGUoMSl7cD1GKzIwfDA7dj1jW3A+PjJdfDA7aWYo
KHZ8MCkhPTApe0Y9djtHPXA7Y29udGludWV9cD1GKzE2fDA7dj1jW3A+PjJdfDA7aWYoKHZ8MCk9
PTApe2JyZWFrfWVsc2V7Rj12O0c9cH19aWYoRz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVs
c2V7Y1tHPj4yXT0wO0U9RjticmVha319ZWxzZXtwPWNbYStoPj4yXXwwO2lmKHA+Pj4wPChjWzI0
NjRdfDApPj4+MCl7YkcoKX12PXArMTJ8MDtpZigoY1t2Pj4yXXwwKSE9KGJ8MCkpe2JHKCl9bT10
Kzh8MDtpZigoY1ttPj4yXXwwKT09KGJ8MCkpe2Nbdj4+Ml09dDtjW20+PjJdPXA7RT10O2JyZWFr
fWVsc2V7YkcoKX19fXdoaWxlKDApO2lmKChmfDApPT0wKXticmVha310PWErKGgrMjApfDA7dT0x
MDE0NCsoY1t0Pj4yXTw8Mil8MDtkb3tpZigoYnwwKT09KGNbdT4+Ml18MCkpe2NbdT4+Ml09RTtp
ZigoRXwwKSE9MCl7YnJlYWt9Y1syNDYxXT1jWzI0NjFdJn4oMTw8Y1t0Pj4yXSk7YnJlYWsgTDEy
OTJ9ZWxzZXtpZihmPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9Zz1mKzE2fDA7aWYoKGNbZz4+
Ml18MCk9PShifDApKXtjW2c+PjJdPUV9ZWxzZXtjW2YrMjA+PjJdPUV9aWYoKEV8MCk9PTApe2Jy
ZWFrIEwxMjkyfX19d2hpbGUoMCk7aWYoRT4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWNbRSsy
ND4+Ml09ZjtiPWNbYSsoaCs4KT4+Ml18MDtkb3tpZigoYnwwKSE9MCl7aWYoYj4+PjA8KGNbMjQ2
NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tFKzE2Pj4yXT1iO2NbYisyND4+Ml09RTticmVha319fXdo
aWxlKDApO2I9Y1thKyhoKzEyKT4+Ml18MDtpZigoYnwwKT09MCl7YnJlYWt9aWYoYj4+PjA8KGNb
MjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7Y1tFKzIwPj4yXT1iO2NbYisyND4+Ml09RTticmVha319
fXdoaWxlKDApO2NbcSs0Pj4yXT1CfDE7Y1tkK0I+PjJdPUI7aWYoKHF8MCkhPShjWzI0NjVdfDAp
KXtIPUI7YnJlYWt9Y1syNDYyXT1CO3JldHVybn1lbHNle2NbQT4+Ml09ZSYtMjtjW3ErND4+Ml09
cnwxO2NbZCtyPj4yXT1yO0g9cn19d2hpbGUoMCk7cj1IPj4+MztpZihIPj4+MDwyNTYpe2Q9cjw8
MTtlPTk4ODArKGQ8PDIpfDA7QT1jWzI0NjBdfDA7RT0xPDxyO2Rve2lmKChBJkV8MCk9PTApe2Nb
MjQ2MF09QXxFO0k9ZTtKPTk4ODArKGQrMjw8Mil8MH1lbHNle3I9OTg4MCsoZCsyPDwyKXwwO2g9
Y1tyPj4yXXwwO2lmKGg+Pj4wPj0oY1syNDY0XXwwKT4+PjApe0k9aDtKPXI7YnJlYWt9YkcoKX19
d2hpbGUoMCk7Y1tKPj4yXT1xO2NbSSsxMj4+Ml09cTtjW3ErOD4+Ml09STtjW3ErMTI+PjJdPWU7
cmV0dXJufWU9cTtJPUg+Pj44O2Rve2lmKChJfDApPT0wKXtLPTB9ZWxzZXtpZihIPj4+MD4xNjc3
NzIxNSl7Sz0zMTticmVha31KPShJKzEwNDgzMjB8MCk+Pj4xNiY4O2Q9STw8SjtFPShkKzUyMDE5
MnwwKT4+PjE2JjQ7QT1kPDxFO2Q9KEErMjQ1NzYwfDApPj4+MTYmMjtyPTE0LShFfEp8ZCkrKEE8
PGQ+Pj4xNSl8MDtLPUg+Pj4oKHIrN3wwKT4+PjApJjF8cjw8MX19d2hpbGUoMCk7ST0xMDE0NCso
Szw8Mil8MDtjW3ErMjg+PjJdPUs7Y1txKzIwPj4yXT0wO2NbcSsxNj4+Ml09MDtyPWNbMjQ2MV18
MDtkPTE8PEs7ZG97aWYoKHImZHwwKT09MCl7Y1syNDYxXT1yfGQ7Y1tJPj4yXT1lO2NbcSsyND4+
Ml09STtjW3ErMTI+PjJdPXE7Y1txKzg+PjJdPXF9ZWxzZXtpZigoS3wwKT09MzEpe0w9MH1lbHNl
e0w9MjUtKEs+Pj4xKXwwfUE9SDw8TDtKPWNbST4+Ml18MDt3aGlsZSgxKXtpZigoY1tKKzQ+PjJd
Ji04fDApPT0oSHwwKSl7YnJlYWt9TT1KKzE2KyhBPj4+MzE8PDIpfDA7RT1jW00+PjJdfDA7aWYo
KEV8MCk9PTApe049MTAxODticmVha31lbHNle0E9QTw8MTtKPUV9fWlmKChOfDApPT0xMDE4KXtp
ZihNPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9ZWxzZXtjW00+PjJdPWU7Y1txKzI0Pj4yXT1K
O2NbcSsxMj4+Ml09cTtjW3ErOD4+Ml09cTticmVha319QT1KKzh8MDtCPWNbQT4+Ml18MDtFPWNb
MjQ2NF18MDtpZihKPj4+MDxFPj4+MCl7YkcoKX1pZihCPj4+MDxFPj4+MCl7YkcoKX1lbHNle2Nb
QisxMj4+Ml09ZTtjW0E+PjJdPWU7Y1txKzg+PjJdPUI7Y1txKzEyPj4yXT1KO2NbcSsyND4+Ml09
MDticmVha319fXdoaWxlKDApO3E9KGNbMjQ2OF18MCktMXwwO2NbMjQ2OF09cTtpZigocXwwKT09
MCl7Tz0xMDI5Nn1lbHNle3JldHVybn13aGlsZSgxKXtxPWNbTz4+Ml18MDtpZigocXwwKT09MCl7
YnJlYWt9ZWxzZXtPPXErOHwwfX1jWzI0NjhdPS0xO3JldHVybn1mdW5jdGlvbiBrTChhLGIpe2E9
YXwwO2I9YnwwO3ZhciBkPTAsZT0wLGY9MCxnPTA7aWYoKGF8MCk9PTApe2Q9a0ooYil8MDtyZXR1
cm4gZHwwfWlmKGI+Pj4wPjQyOTQ5NjcyMzEpe2NbKGJ3KCl8MCk+PjJdPTEyO2Q9MDtyZXR1cm4g
ZHwwfWlmKGI+Pj4wPDExKXtlPTE2fWVsc2V7ZT1iKzExJi04fWY9a00oYS04fDAsZSl8MDtpZigo
ZnwwKSE9MCl7ZD1mKzh8MDtyZXR1cm4gZHwwfWY9a0ooYil8MDtpZigoZnwwKT09MCl7ZD0wO3Jl
dHVybiBkfDB9ZT1jW2EtND4+Ml18MDtnPShlJi04KS0oKGUmM3wwKT09MD84OjQpfDA7ZT1nPj4+
MDxiPj4+MD9nOmI7a1koZnwwLGF8MCxlKXwwO2tLKGEpO2Q9ZjtyZXR1cm4gZHwwfWZ1bmN0aW9u
IGtNKGEsYil7YT1hfDA7Yj1ifDA7dmFyIGQ9MCxlPTAsZj0wLGc9MCxoPTAsaT0wLGo9MCxrPTAs
bD0wLG09MCxuPTAsbz0wLHA9MCxxPTAscj0wLHM9MCx0PTAsdT0wLHY9MCx3PTAseD0wLHk9MCx6
PTAsQT0wO2Q9YSs0fDA7ZT1jW2Q+PjJdfDA7Zj1lJi04O2c9YTtoPWcrZnwwO2k9aDtqPWNbMjQ2
NF18MDtpZihnPj4+MDxqPj4+MCl7YkcoKTtyZXR1cm4gMH1rPWUmMztpZighKChrfDApIT0xJmc+
Pj4wPGg+Pj4wKSl7YkcoKTtyZXR1cm4gMH1sPWcrKGZ8NCl8MDttPWNbbD4+Ml18MDtpZigobSYx
fDApPT0wKXtiRygpO3JldHVybiAwfWlmKChrfDApPT0wKXtpZihiPj4+MDwyNTYpe249MDtyZXR1
cm4gbnwwfWRve2lmKGY+Pj4wPj0oYis0fDApPj4+MCl7aWYoKGYtYnwwKT4+PjA+Y1syNDUyXTw8
MT4+PjApe2JyZWFrfWVsc2V7bj1hfXJldHVybiBufDB9fXdoaWxlKDApO249MDtyZXR1cm4gbnww
fWlmKGY+Pj4wPj1iPj4+MCl7az1mLWJ8MDtpZihrPj4+MDw9MTUpe249YTtyZXR1cm4gbnwwfWNb
ZD4+Ml09ZSYxfGJ8MjtjW2crKGIrNCk+PjJdPWt8MztjW2w+PjJdPWNbbD4+Ml18MTtrTihnK2J8
MCxrKTtuPWE7cmV0dXJuIG58MH1pZigoaXwwKT09KGNbMjQ2Nl18MCkpe2s9KGNbMjQ2M118MCkr
ZnwwO2lmKGs+Pj4wPD1iPj4+MCl7bj0wO3JldHVybiBufDB9bD1rLWJ8MDtjW2Q+PjJdPWUmMXxi
fDI7Y1tnKyhiKzQpPj4yXT1sfDE7Y1syNDY2XT1nK2I7Y1syNDYzXT1sO249YTtyZXR1cm4gbnww
fWlmKChpfDApPT0oY1syNDY1XXwwKSl7bD0oY1syNDYyXXwwKStmfDA7aWYobD4+PjA8Yj4+PjAp
e249MDtyZXR1cm4gbnwwfWs9bC1ifDA7aWYoaz4+PjA+MTUpe2NbZD4+Ml09ZSYxfGJ8MjtjW2cr
KGIrNCk+PjJdPWt8MTtjW2crbD4+Ml09aztvPWcrKGwrNCl8MDtjW28+PjJdPWNbbz4+Ml0mLTI7
cD1nK2J8MDtxPWt9ZWxzZXtjW2Q+PjJdPWUmMXxsfDI7ZT1nKyhsKzQpfDA7Y1tlPj4yXT1jW2U+
PjJdfDE7cD0wO3E9MH1jWzI0NjJdPXE7Y1syNDY1XT1wO249YTtyZXR1cm4gbnwwfWlmKChtJjJ8
MCkhPTApe249MDtyZXR1cm4gbnwwfXA9KG0mLTgpK2Z8MDtpZihwPj4+MDxiPj4+MCl7bj0wO3Jl
dHVybiBufDB9cT1wLWJ8MDtlPW0+Pj4zO0wxNDc4OmRve2lmKG0+Pj4wPDI1Nil7bD1jW2crKGYr
OCk+PjJdfDA7az1jW2crKGYrMTIpPj4yXXwwO289OTg4MCsoZTw8MTw8Mil8MDtkb3tpZigobHww
KSE9KG98MCkpe2lmKGw+Pj4wPGo+Pj4wKXtiRygpO3JldHVybiAwfWlmKChjW2wrMTI+PjJdfDAp
PT0oaXwwKSl7YnJlYWt9YkcoKTtyZXR1cm4gMH19d2hpbGUoMCk7aWYoKGt8MCk9PShsfDApKXtj
WzI0NjBdPWNbMjQ2MF0mfigxPDxlKTticmVha31kb3tpZigoa3wwKT09KG98MCkpe3I9ays4fDB9
ZWxzZXtpZihrPj4+MDxqPj4+MCl7YkcoKTtyZXR1cm4gMH1zPWsrOHwwO2lmKChjW3M+PjJdfDAp
PT0oaXwwKSl7cj1zO2JyZWFrfWJHKCk7cmV0dXJuIDB9fXdoaWxlKDApO2NbbCsxMj4+Ml09aztj
W3I+PjJdPWx9ZWxzZXtvPWg7cz1jW2crKGYrMjQpPj4yXXwwO3Q9Y1tnKyhmKzEyKT4+Ml18MDtk
b3tpZigodHwwKT09KG98MCkpe3U9ZysoZisyMCl8MDt2PWNbdT4+Ml18MDtpZigodnwwKT09MCl7
dz1nKyhmKzE2KXwwO3g9Y1t3Pj4yXXwwO2lmKCh4fDApPT0wKXt5PTA7YnJlYWt9ZWxzZXt6PXg7
QT13fX1lbHNle3o9djtBPXV9d2hpbGUoMSl7dT16KzIwfDA7dj1jW3U+PjJdfDA7aWYoKHZ8MCkh
PTApe3o9djtBPXU7Y29udGludWV9dT16KzE2fDA7dj1jW3U+PjJdfDA7aWYoKHZ8MCk9PTApe2Jy
ZWFrfWVsc2V7ej12O0E9dX19aWYoQT4+PjA8aj4+PjApe2JHKCk7cmV0dXJuIDB9ZWxzZXtjW0E+
PjJdPTA7eT16O2JyZWFrfX1lbHNle3U9Y1tnKyhmKzgpPj4yXXwwO2lmKHU+Pj4wPGo+Pj4wKXti
RygpO3JldHVybiAwfXY9dSsxMnwwO2lmKChjW3Y+PjJdfDApIT0ob3wwKSl7YkcoKTtyZXR1cm4g
MH13PXQrOHwwO2lmKChjW3c+PjJdfDApPT0ob3wwKSl7Y1t2Pj4yXT10O2Nbdz4+Ml09dTt5PXQ7
YnJlYWt9ZWxzZXtiRygpO3JldHVybiAwfX19d2hpbGUoMCk7aWYoKHN8MCk9PTApe2JyZWFrfXQ9
ZysoZisyOCl8MDtsPTEwMTQ0KyhjW3Q+PjJdPDwyKXwwO2Rve2lmKChvfDApPT0oY1tsPj4yXXww
KSl7Y1tsPj4yXT15O2lmKCh5fDApIT0wKXticmVha31jWzI0NjFdPWNbMjQ2MV0mfigxPDxjW3Q+
PjJdKTticmVhayBMMTQ3OH1lbHNle2lmKHM+Pj4wPChjWzI0NjRdfDApPj4+MCl7YkcoKTtyZXR1
cm4gMH1rPXMrMTZ8MDtpZigoY1trPj4yXXwwKT09KG98MCkpe2Nbaz4+Ml09eX1lbHNle2Nbcysy
MD4+Ml09eX1pZigoeXwwKT09MCl7YnJlYWsgTDE0Nzh9fX13aGlsZSgwKTtpZih5Pj4+MDwoY1sy
NDY0XXwwKT4+PjApe2JHKCk7cmV0dXJuIDB9Y1t5KzI0Pj4yXT1zO289Y1tnKyhmKzE2KT4+Ml18
MDtkb3tpZigob3wwKSE9MCl7aWYobz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpO3JldHVybiAw
fWVsc2V7Y1t5KzE2Pj4yXT1vO2NbbysyND4+Ml09eTticmVha319fXdoaWxlKDApO289Y1tnKyhm
KzIwKT4+Ml18MDtpZigob3wwKT09MCl7YnJlYWt9aWYobz4+PjA8KGNbMjQ2NF18MCk+Pj4wKXti
RygpO3JldHVybiAwfWVsc2V7Y1t5KzIwPj4yXT1vO2NbbysyND4+Ml09eTticmVha319fXdoaWxl
KDApO2lmKHE+Pj4wPDE2KXtjW2Q+PjJdPXB8Y1tkPj4yXSYxfDI7eT1nKyhwfDQpfDA7Y1t5Pj4y
XT1jW3k+PjJdfDE7bj1hO3JldHVybiBufDB9ZWxzZXtjW2Q+PjJdPWNbZD4+Ml0mMXxifDI7Y1tn
KyhiKzQpPj4yXT1xfDM7ZD1nKyhwfDQpfDA7Y1tkPj4yXT1jW2Q+PjJdfDE7a04oZytifDAscSk7
bj1hO3JldHVybiBufDB9cmV0dXJuIDB9ZnVuY3Rpb24ga04oYSxiKXthPWF8MDtiPWJ8MDt2YXIg
ZD0wLGU9MCxmPTAsZz0wLGg9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MCxy
PTAscz0wLHQ9MCx1PTAsdj0wLHc9MCx4PTAseT0wLHo9MCxBPTAsQj0wLEM9MCxEPTAsRT0wLEY9
MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MDtkPWE7ZT1kK2J8MDtmPWU7Zz1jW2ErND4+Ml18MDtM
MTU1NDpkb3tpZigoZyYxfDApPT0wKXtoPWNbYT4+Ml18MDtpZigoZyYzfDApPT0wKXtyZXR1cm59
aT1kKygtaHwwKXwwO2o9aTtrPWgrYnwwO2w9Y1syNDY0XXwwO2lmKGk+Pj4wPGw+Pj4wKXtiRygp
fWlmKChqfDApPT0oY1syNDY1XXwwKSl7bT1kKyhiKzQpfDA7aWYoKGNbbT4+Ml0mM3wwKSE9Myl7
bj1qO289azticmVha31jWzI0NjJdPWs7Y1ttPj4yXT1jW20+PjJdJi0yO2NbZCsoNC1oKT4+Ml09
a3wxO2NbZT4+Ml09aztyZXR1cm59bT1oPj4+MztpZihoPj4+MDwyNTYpe3A9Y1tkKyg4LWgpPj4y
XXwwO3E9Y1tkKygxMi1oKT4+Ml18MDtyPTk4ODArKG08PDE8PDIpfDA7ZG97aWYoKHB8MCkhPShy
fDApKXtpZihwPj4+MDxsPj4+MCl7YkcoKX1pZigoY1twKzEyPj4yXXwwKT09KGp8MCkpe2JyZWFr
fWJHKCl9fXdoaWxlKDApO2lmKChxfDApPT0ocHwwKSl7Y1syNDYwXT1jWzI0NjBdJn4oMTw8bSk7
bj1qO289azticmVha31kb3tpZigocXwwKT09KHJ8MCkpe3M9cSs4fDB9ZWxzZXtpZihxPj4+MDxs
Pj4+MCl7YkcoKX10PXErOHwwO2lmKChjW3Q+PjJdfDApPT0oanwwKSl7cz10O2JyZWFrfWJHKCl9
fXdoaWxlKDApO2NbcCsxMj4+Ml09cTtjW3M+PjJdPXA7bj1qO289azticmVha31yPWk7bT1jW2Qr
KDI0LWgpPj4yXXwwO3Q9Y1tkKygxMi1oKT4+Ml18MDtkb3tpZigodHwwKT09KHJ8MCkpe3U9MTYt
aHwwO3Y9ZCsodSs0KXwwO3c9Y1t2Pj4yXXwwO2lmKCh3fDApPT0wKXt4PWQrdXwwO3U9Y1t4Pj4y
XXwwO2lmKCh1fDApPT0wKXt5PTA7YnJlYWt9ZWxzZXt6PXU7QT14fX1lbHNle3o9dztBPXZ9d2hp
bGUoMSl7dj16KzIwfDA7dz1jW3Y+PjJdfDA7aWYoKHd8MCkhPTApe3o9dztBPXY7Y29udGludWV9
dj16KzE2fDA7dz1jW3Y+PjJdfDA7aWYoKHd8MCk9PTApe2JyZWFrfWVsc2V7ej13O0E9dn19aWYo
QT4+PjA8bD4+PjApe2JHKCl9ZWxzZXtjW0E+PjJdPTA7eT16O2JyZWFrfX1lbHNle3Y9Y1tkKyg4
LWgpPj4yXXwwO2lmKHY+Pj4wPGw+Pj4wKXtiRygpfXc9disxMnwwO2lmKChjW3c+PjJdfDApIT0o
cnwwKSl7YkcoKX14PXQrOHwwO2lmKChjW3g+PjJdfDApPT0ocnwwKSl7Y1t3Pj4yXT10O2NbeD4+
Ml09djt5PXQ7YnJlYWt9ZWxzZXtiRygpfX19d2hpbGUoMCk7aWYoKG18MCk9PTApe249ajtvPWs7
YnJlYWt9dD1kKygyOC1oKXwwO2w9MTAxNDQrKGNbdD4+Ml08PDIpfDA7ZG97aWYoKHJ8MCk9PShj
W2w+PjJdfDApKXtjW2w+PjJdPXk7aWYoKHl8MCkhPTApe2JyZWFrfWNbMjQ2MV09Y1syNDYxXSZ+
KDE8PGNbdD4+Ml0pO249ajtvPWs7YnJlYWsgTDE1NTR9ZWxzZXtpZihtPj4+MDwoY1syNDY0XXww
KT4+PjApe2JHKCl9aT1tKzE2fDA7aWYoKGNbaT4+Ml18MCk9PShyfDApKXtjW2k+PjJdPXl9ZWxz
ZXtjW20rMjA+PjJdPXl9aWYoKHl8MCk9PTApe249ajtvPWs7YnJlYWsgTDE1NTR9fX13aGlsZSgw
KTtpZih5Pj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9Y1t5KzI0Pj4yXT1tO3I9MTYtaHwwO3Q9
Y1tkK3I+PjJdfDA7ZG97aWYoKHR8MCkhPTApe2lmKHQ+Pj4wPChjWzI0NjRdfDApPj4+MCl7Ykco
KX1lbHNle2NbeSsxNj4+Ml09dDtjW3QrMjQ+PjJdPXk7YnJlYWt9fX13aGlsZSgwKTt0PWNbZCso
cis0KT4+Ml18MDtpZigodHwwKT09MCl7bj1qO289azticmVha31pZih0Pj4+MDwoY1syNDY0XXww
KT4+PjApe2JHKCl9ZWxzZXtjW3krMjA+PjJdPXQ7Y1t0KzI0Pj4yXT15O249ajtvPWs7YnJlYWt9
fWVsc2V7bj1hO289Yn19d2hpbGUoMCk7YT1jWzI0NjRdfDA7aWYoZT4+PjA8YT4+PjApe2JHKCl9
eT1kKyhiKzQpfDA7ej1jW3k+PjJdfDA7ZG97aWYoKHomMnwwKT09MCl7aWYoKGZ8MCk9PShjWzI0
NjZdfDApKXtBPShjWzI0NjNdfDApK298MDtjWzI0NjNdPUE7Y1syNDY2XT1uO2Nbbis0Pj4yXT1B
fDE7aWYoKG58MCkhPShjWzI0NjVdfDApKXtyZXR1cm59Y1syNDY1XT0wO2NbMjQ2Ml09MDtyZXR1
cm59aWYoKGZ8MCk9PShjWzI0NjVdfDApKXtBPShjWzI0NjJdfDApK298MDtjWzI0NjJdPUE7Y1sy
NDY1XT1uO2Nbbis0Pj4yXT1BfDE7Y1tuK0E+PjJdPUE7cmV0dXJufUE9KHomLTgpK298MDtzPXo+
Pj4zO0wxNjUzOmRve2lmKHo+Pj4wPDI1Nil7Zz1jW2QrKGIrOCk+PjJdfDA7dD1jW2QrKGIrMTIp
Pj4yXXwwO2g9OTg4MCsoczw8MTw8Mil8MDtkb3tpZigoZ3wwKSE9KGh8MCkpe2lmKGc+Pj4wPGE+
Pj4wKXtiRygpfWlmKChjW2crMTI+PjJdfDApPT0oZnwwKSl7YnJlYWt9YkcoKX19d2hpbGUoMCk7
aWYoKHR8MCk9PShnfDApKXtjWzI0NjBdPWNbMjQ2MF0mfigxPDxzKTticmVha31kb3tpZigodHww
KT09KGh8MCkpe0I9dCs4fDB9ZWxzZXtpZih0Pj4+MDxhPj4+MCl7YkcoKX1tPXQrOHwwO2lmKChj
W20+PjJdfDApPT0oZnwwKSl7Qj1tO2JyZWFrfWJHKCl9fXdoaWxlKDApO2NbZysxMj4+Ml09dDtj
W0I+PjJdPWd9ZWxzZXtoPWU7bT1jW2QrKGIrMjQpPj4yXXwwO2w9Y1tkKyhiKzEyKT4+Ml18MDtk
b3tpZigobHwwKT09KGh8MCkpe2k9ZCsoYisyMCl8MDtwPWNbaT4+Ml18MDtpZigocHwwKT09MCl7
cT1kKyhiKzE2KXwwO3Y9Y1txPj4yXXwwO2lmKCh2fDApPT0wKXtDPTA7YnJlYWt9ZWxzZXtEPXY7
RT1xfX1lbHNle0Q9cDtFPWl9d2hpbGUoMSl7aT1EKzIwfDA7cD1jW2k+PjJdfDA7aWYoKHB8MCkh
PTApe0Q9cDtFPWk7Y29udGludWV9aT1EKzE2fDA7cD1jW2k+PjJdfDA7aWYoKHB8MCk9PTApe2Jy
ZWFrfWVsc2V7RD1wO0U9aX19aWYoRT4+PjA8YT4+PjApe2JHKCl9ZWxzZXtjW0U+PjJdPTA7Qz1E
O2JyZWFrfX1lbHNle2k9Y1tkKyhiKzgpPj4yXXwwO2lmKGk+Pj4wPGE+Pj4wKXtiRygpfXA9aSsx
MnwwO2lmKChjW3A+PjJdfDApIT0oaHwwKSl7YkcoKX1xPWwrOHwwO2lmKChjW3E+PjJdfDApPT0o
aHwwKSl7Y1twPj4yXT1sO2NbcT4+Ml09aTtDPWw7YnJlYWt9ZWxzZXtiRygpfX19d2hpbGUoMCk7
aWYoKG18MCk9PTApe2JyZWFrfWw9ZCsoYisyOCl8MDtnPTEwMTQ0KyhjW2w+PjJdPDwyKXwwO2Rv
e2lmKChofDApPT0oY1tnPj4yXXwwKSl7Y1tnPj4yXT1DO2lmKChDfDApIT0wKXticmVha31jWzI0
NjFdPWNbMjQ2MV0mfigxPDxjW2w+PjJdKTticmVhayBMMTY1M31lbHNle2lmKG0+Pj4wPChjWzI0
NjRdfDApPj4+MCl7YkcoKX10PW0rMTZ8MDtpZigoY1t0Pj4yXXwwKT09KGh8MCkpe2NbdD4+Ml09
Q31lbHNle2NbbSsyMD4+Ml09Q31pZigoQ3wwKT09MCl7YnJlYWsgTDE2NTN9fX13aGlsZSgwKTtp
ZihDPj4+MDwoY1syNDY0XXwwKT4+PjApe2JHKCl9Y1tDKzI0Pj4yXT1tO2g9Y1tkKyhiKzE2KT4+
Ml18MDtkb3tpZigoaHwwKSE9MCl7aWYoaD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVsc2V7
Y1tDKzE2Pj4yXT1oO2NbaCsyND4+Ml09QzticmVha319fXdoaWxlKDApO2g9Y1tkKyhiKzIwKT4+
Ml18MDtpZigoaHwwKT09MCl7YnJlYWt9aWYoaD4+PjA8KGNbMjQ2NF18MCk+Pj4wKXtiRygpfWVs
c2V7Y1tDKzIwPj4yXT1oO2NbaCsyND4+Ml09QzticmVha319fXdoaWxlKDApO2Nbbis0Pj4yXT1B
fDE7Y1tuK0E+PjJdPUE7aWYoKG58MCkhPShjWzI0NjVdfDApKXtGPUE7YnJlYWt9Y1syNDYyXT1B
O3JldHVybn1lbHNle2NbeT4+Ml09eiYtMjtjW24rND4+Ml09b3wxO2NbbitvPj4yXT1vO0Y9b319
d2hpbGUoMCk7bz1GPj4+MztpZihGPj4+MDwyNTYpe3o9bzw8MTt5PTk4ODArKHo8PDIpfDA7Qz1j
WzI0NjBdfDA7Yj0xPDxvO2Rve2lmKChDJmJ8MCk9PTApe2NbMjQ2MF09Q3xiO0c9eTtIPTk4ODAr
KHorMjw8Mil8MH1lbHNle289OTg4MCsoeisyPDwyKXwwO2Q9Y1tvPj4yXXwwO2lmKGQ+Pj4wPj0o
Y1syNDY0XXwwKT4+PjApe0c9ZDtIPW87YnJlYWt9YkcoKX19d2hpbGUoMCk7Y1tIPj4yXT1uO2Nb
RysxMj4+Ml09bjtjW24rOD4+Ml09RztjW24rMTI+PjJdPXk7cmV0dXJufXk9bjtHPUY+Pj44O2Rv
e2lmKChHfDApPT0wKXtJPTB9ZWxzZXtpZihGPj4+MD4xNjc3NzIxNSl7ST0zMTticmVha31IPShH
KzEwNDgzMjB8MCk+Pj4xNiY4O3o9Rzw8SDtiPSh6KzUyMDE5MnwwKT4+PjE2JjQ7Qz16PDxiO3o9
KEMrMjQ1NzYwfDApPj4+MTYmMjtvPTE0LShifEh8eikrKEM8PHo+Pj4xNSl8MDtJPUY+Pj4oKG8r
N3wwKT4+PjApJjF8bzw8MX19d2hpbGUoMCk7Rz0xMDE0NCsoSTw8Mil8MDtjW24rMjg+PjJdPUk7
Y1tuKzIwPj4yXT0wO2NbbisxNj4+Ml09MDtvPWNbMjQ2MV18MDt6PTE8PEk7aWYoKG8menwwKT09
MCl7Y1syNDYxXT1vfHo7Y1tHPj4yXT15O2NbbisyND4+Ml09RztjW24rMTI+PjJdPW47Y1tuKzg+
PjJdPW47cmV0dXJufWlmKChJfDApPT0zMSl7Sj0wfWVsc2V7Sj0yNS0oST4+PjEpfDB9ST1GPDxK
O0o9Y1tHPj4yXXwwO3doaWxlKDEpe2lmKChjW0orND4+Ml0mLTh8MCk9PShGfDApKXticmVha31L
PUorMTYrKEk+Pj4zMTw8Mil8MDtHPWNbSz4+Ml18MDtpZigoR3wwKT09MCl7TD0xMjk4O2JyZWFr
fWVsc2V7ST1JPDwxO0o9R319aWYoKEx8MCk9PTEyOTgpe2lmKEs+Pj4wPChjWzI0NjRdfDApPj4+
MCl7YkcoKX1jW0s+PjJdPXk7Y1tuKzI0Pj4yXT1KO2NbbisxMj4+Ml09bjtjW24rOD4+Ml09bjty
ZXR1cm59Sz1KKzh8MDtMPWNbSz4+Ml18MDtJPWNbMjQ2NF18MDtpZihKPj4+MDxJPj4+MCl7Ykco
KX1pZihMPj4+MDxJPj4+MCl7YkcoKX1jW0wrMTI+PjJdPXk7Y1tLPj4yXT15O2Nbbis4Pj4yXT1M
O2NbbisxMj4+Ml09SjtjW24rMjQ+PjJdPTA7cmV0dXJufWZ1bmN0aW9uIGtPKGEpe2E9YXwwO3Zh
ciBiPTAsZD0wLGU9MDtiPShhfDApPT0wPzE6YTt3aGlsZSgxKXtkPWtKKGIpfDA7aWYoKGR8MCkh
PTApe2U9MTM0MjticmVha31hPShJPWNbNDA0OF18MCxjWzQwNDhdPUkrMCxJKTtpZigoYXwwKT09
MCl7YnJlYWt9YjVbYSYzXSgpfWlmKChlfDApPT0xMzQyKXtyZXR1cm4gZHwwfWQ9Yk8oNCl8MDtj
W2Q+PjJdPTI0MDg7YmwoZHwwLDgxNjAsMzApO3JldHVybiAwfWZ1bmN0aW9uIGtQKGEpe2E9YXww
O3JldHVybiBrTyhhKXwwfWZ1bmN0aW9uIGtRKGEpe2E9YXwwO3JldHVybn1mdW5jdGlvbiBrUihh
KXthPWF8MDtyZXR1cm4gMTE2MHwwfWZ1bmN0aW9uIGtTKGEpe2E9YXwwO2lmKChhfDApIT0wKXtr
SyhhKX1yZXR1cm59ZnVuY3Rpb24ga1QoYSl7YT1hfDA7a1MoYSk7cmV0dXJufWZ1bmN0aW9uIGtV
KGEpe2E9YXwwO2tTKGEpO3JldHVybn1mdW5jdGlvbiBrVihiLGQpe2I9YnwwO2Q9ZHwwO3ZhciBl
PTAsZj0wLGc9MCxpPTAsaj0wLGs9MCxsPTAsbT0wLG49MCxvPTAscD0wLHE9MC4wLHI9MCxzPTAs
dD0wLHU9MCx2PTAuMCx3PTAseD0wLHk9MCx6PTAuMCxBPTAuMCxCPTAsQz0wLEQ9MCxFPTAuMCxG
PTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49MC4wLE89MCxQPTAsUT0wLjAsUj0wLjAs
Uz0wLjA7ZT1iO3doaWxlKDEpe2Y9ZSsxfDA7aWYoKGFQKGFbZV18MCl8MCk9PTApe2JyZWFrfWVs
c2V7ZT1mfX1zd2l0Y2goYVtlXXwwKXtjYXNlIDQzOntnPWY7aT0wO2JyZWFrfTtjYXNlIDQ1Ontn
PWY7aT0xO2JyZWFrfTtkZWZhdWx0OntnPWU7aT0wfX1lPS0xO2Y9MDtqPWc7d2hpbGUoMSl7az1h
W2pdfDA7aWYoKChrPDwyND4+MjQpLTQ4fDApPj4+MDwxMCl7bD1lfWVsc2V7aWYoazw8MjQ+PjI0
IT00NnwoZXwwKT4tMSl7YnJlYWt9ZWxzZXtsPWZ9fWU9bDtmPWYrMXwwO2o9aisxfDB9bD1qKygt
ZnwwKXwwO2c9KGV8MCk8MDttPSgoZ14xKTw8MzE+PjMxKStmfDA7bj0obXwwKT4xODtvPShuPy0x
ODotbXwwKSsoZz9mOmUpfDA7ZT1uPzE4Om07ZG97aWYoKGV8MCk9PTApe3A9YjtxPTAuMH1lbHNl
e2lmKChlfDApPjkpe209bDtuPWU7Zj0wO3doaWxlKDEpe2c9YVttXXwwO3I9bSsxfDA7aWYoZzw8
MjQ+PjI0PT00Nil7cz1hW3JdfDA7dD1tKzJ8MH1lbHNle3M9Zzt0PXJ9dT0oZioxMHwwKS00OCso
czw8MjQ+PjI0KXwwO3I9bi0xfDA7aWYoKHJ8MCk+OSl7bT10O249cjtmPXV9ZWxzZXticmVha319
dj0rKHV8MCkqMS4wZTk7dz05O3g9dDt5PTEzNzB9ZWxzZXtpZigoZXwwKT4wKXt2PTAuMDt3PWU7
eD1sO3k9MTM3MH1lbHNle3o9MC4wO0E9MC4wfX1pZigoeXwwKT09MTM3MCl7Zj14O249dzttPTA7
d2hpbGUoMSl7cj1hW2ZdfDA7Zz1mKzF8MDtpZihyPDwyND4+MjQ9PTQ2KXtCPWFbZ118MDtDPWYr
MnwwfWVsc2V7Qj1yO0M9Z31EPShtKjEwfDApLTQ4KyhCPDwyND4+MjQpfDA7Zz1uLTF8MDtpZigo
Z3wwKT4wKXtmPUM7bj1nO209RH1lbHNle2JyZWFrfX16PSsoRHwwKTtBPXZ9RT1BK3o7TDE4MTY6
ZG97c3dpdGNoKGs8PDI0Pj4yNCl7Y2FzZSA2OTpjYXNlIDEwMTp7bT1qKzF8MDtzd2l0Y2goYVtt
XXwwKXtjYXNlIDQ1OntGPWorMnwwO0c9MTticmVha307Y2FzZSA0Mzp7Rj1qKzJ8MDtHPTA7YnJl
YWt9O2RlZmF1bHQ6e0Y9bTtHPTB9fW09YVtGXXwwO2lmKCgobTw8MjQ+PjI0KS00OHwwKT4+PjA8
MTApe0g9RjtJPTA7Sj1tfWVsc2V7Sz0wO0w9RjtNPUc7YnJlYWsgTDE4MTZ9d2hpbGUoMSl7bT0o
SSoxMHwwKS00OCsoSjw8MjQ+PjI0KXwwO249SCsxfDA7Zj1hW25dfDA7aWYoKChmPDwyND4+MjQp
LTQ4fDApPj4+MDwxMCl7SD1uO0k9bTtKPWZ9ZWxzZXtLPW07TD1uO009RzticmVha319YnJlYWt9
O2RlZmF1bHQ6e0s9MDtMPWo7TT0wfX19d2hpbGUoMCk7bj1vKygoTXwwKT09MD9LOi1LfDApfDA7
bT0obnwwKTwwPy1ufDA6bjtpZigobXwwKT41MTEpe2NbKGJ3KCl8MCk+PjJdPTM0O049MS4wO089
ODtQPTUxMTt5PTEzODd9ZWxzZXtpZigobXwwKT09MCl7UT0xLjB9ZWxzZXtOPTEuMDtPPTg7UD1t
O3k9MTM4N319aWYoKHl8MCk9PTEzODcpe3doaWxlKDEpe3k9MDtpZigoUCYxfDApPT0wKXtSPU59
ZWxzZXtSPU4qK2hbTz4+M119bT1QPj4xO2lmKChtfDApPT0wKXtRPVI7YnJlYWt9ZWxzZXtOPVI7
Tz1PKzh8MDtQPW07eT0xMzg3fX19aWYoKG58MCk+LTEpe3A9TDtxPUUqUTticmVha31lbHNle3A9
TDtxPUUvUTticmVha319fXdoaWxlKDApO2lmKChkfDApIT0wKXtjW2Q+PjJdPXB9aWYoKGl8MCk9
PTApe1M9cTtyZXR1cm4rU31TPS0wLjAtcTtyZXR1cm4rU31mdW5jdGlvbiBrVyhhLGIsYyl7YT1h
fDA7Yj1ifDA7Yz1jfDA7cmV0dXJuKygra1YoYSxiKSl9ZnVuY3Rpb24ga1goKXt2YXIgYT0wO2E9
Yk8oNCl8MDtjW2E+PjJdPTI0MDg7YmwoYXwwLDgxNjAsMzApfWZ1bmN0aW9uIGtZKGIsZCxlKXti
PWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wO2Y9YnwwO2lmKChiJjMpPT0oZCYzKSl7d2hpbGUoYiYz
KXtpZigoZXwwKT09MClyZXR1cm4gZnwwO2FbYl09YVtkXXwwO2I9YisxfDA7ZD1kKzF8MDtlPWUt
MXwwfXdoaWxlKChlfDApPj00KXtjW2I+PjJdPWNbZD4+Ml07Yj1iKzR8MDtkPWQrNHwwO2U9ZS00
fDB9fXdoaWxlKChlfDApPjApe2FbYl09YVtkXXwwO2I9YisxfDA7ZD1kKzF8MDtlPWUtMXwwfXJl
dHVybiBmfDB9ZnVuY3Rpb24ga1ooYil7Yj1ifDA7dmFyIGM9MDtjPWFbbisoYj4+PjI0KXwwXXww
O2lmKChjfDApPDgpcmV0dXJuIGN8MDtjPWFbbisoYj4+MTYmMjU1KXwwXXwwO2lmKChjfDApPDgp
cmV0dXJuIGMrOHwwO2M9YVtuKyhiPj44JjI1NSl8MF18MDtpZigoY3wwKTw4KXJldHVybiBjKzE2
fDA7cmV0dXJuKGFbbisoYiYyNTUpfDBdfDApKzI0fDB9ZnVuY3Rpb24ga18oYixjLGQpe2I9Ynww
O2M9Y3wwO2Q9ZHwwO2lmKChjfDApPChifDApJihifDApPChjK2R8MCkpe2M9YytkfDA7Yj1iK2R8
MDt3aGlsZSgoZHwwKT4wKXtiPWItMXwwO2M9Yy0xfDA7ZD1kLTF8MDthW2JdPWFbY118MH19ZWxz
ZXtrWShiLGMsZCl8MH19ZnVuY3Rpb24gayQoYixkLGUpe2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBm
PTAsZz0wLGg9MDtmPWIrZXwwO2lmKChlfDApPj0yMCl7ZD1kJjI1NTtlPWImMztnPWR8ZDw8OHxk
PDwxNnxkPDwyNDtoPWYmfjM7aWYoZSl7ZT1iKzQtZXwwO3doaWxlKChifDApPChlfDApKXthW2Jd
PWQ7Yj1iKzF8MH19d2hpbGUoKGJ8MCk8KGh8MCkpe2NbYj4+Ml09ZztiPWIrNHwwfX13aGlsZSgo
YnwwKTwoZnwwKSl7YVtiXT1kO2I9YisxfDB9fWZ1bmN0aW9uIGswKGIpe2I9YnwwO3ZhciBjPTA7
Yz1iO3doaWxlKGFbY118MCl7Yz1jKzF8MH1yZXR1cm4gYy1ifDB9ZnVuY3Rpb24gazEoYSxiLGMs
ZCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7dmFyIGU9MDtlPWErYz4+PjA7cmV0dXJuKEs9Yitk
KyhlPj4+MDxhPj4+MHwwKT4+PjAsZXwwKXwwfWZ1bmN0aW9uIGsyKGEsYixjLGQpe2E9YXwwO2I9
YnwwO2M9Y3wwO2Q9ZHwwO3ZhciBlPTA7ZT1iLWQ+Pj4wO2U9Yi1kLShjPj4+MD5hPj4+MHwwKT4+
PjA7cmV0dXJuKEs9ZSxhLWM+Pj4wfDApfDB9ZnVuY3Rpb24gazMoYSxiLGMpe2E9YXwwO2I9Ynww
O2M9Y3wwO2lmKChjfDApPDMyKXtLPWI8PGN8KGEmKDE8PGMpLTE8PDMyLWMpPj4+MzItYztyZXR1
cm4gYTw8Y31LPWE8PGMtMzI7cmV0dXJuIDB9ZnVuY3Rpb24gazQoYSxiLGMpe2E9YXwwO2I9Ynww
O2M9Y3wwO2lmKChjfDApPDMyKXtLPWI+Pj5jO3JldHVybiBhPj4+Y3woYiYoMTw8YyktMSk8PDMy
LWN9Sz0wO3JldHVybiBiPj4+Yy0zMnwwfWZ1bmN0aW9uIGs1KGEsYixjKXthPWF8MDtiPWJ8MDtj
PWN8MDtpZigoY3wwKTwzMil7Sz1iPj5jO3JldHVybiBhPj4+Y3woYiYoMTw8YyktMSk8PDMyLWN9
Sz0oYnwwKTwwPy0xOjA7cmV0dXJuIGI+PmMtMzJ8MH1mdW5jdGlvbiBrNihiKXtiPWJ8MDt2YXIg
Yz0wO2M9YVttKyhiJjI1NSl8MF18MDtpZigoY3wwKTw4KXJldHVybiBjfDA7Yz1hW20rKGI+Pjgm
MjU1KXwwXXwwO2lmKChjfDApPDgpcmV0dXJuIGMrOHwwO2M9YVttKyhiPj4xNiYyNTUpfDBdfDA7
aWYoKGN8MCk8OClyZXR1cm4gYysxNnwwO3JldHVybihhW20rKGI+Pj4yNCl8MF18MCkrMjR8MH1m
dW5jdGlvbiBrNyhhLGIpe2E9YXwwO2I9YnwwO3ZhciBjPTAsZD0wLGU9MCxmPTA7Yz1hJjY1NTM1
O2Q9YiY2NTUzNTtlPWFnKGQsYyl8MDtmPWE+Pj4xNjthPShlPj4+MTYpKyhhZyhkLGYpfDApfDA7
ZD1iPj4+MTY7Yj1hZyhkLGMpfDA7cmV0dXJuKEs9KGE+Pj4xNikrKGFnKGQsZil8MCkrKCgoYSY2
NTUzNSkrYnwwKT4+PjE2KXwwLGErYjw8MTZ8ZSY2NTUzNXwwKXwwfWZ1bmN0aW9uIGs4KGEsYixj
LGQpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO3ZhciBlPTAsZj0wLGc9MCxoPTAsaT0wO2U9Yj4+
MzF8KChifDApPDA/LTE6MCk8PDE7Zj0oKGJ8MCk8MD8tMTowKT4+MzF8KChifDApPDA/LTE6MCk8
PDE7Zz1kPj4zMXwoKGR8MCk8MD8tMTowKTw8MTtoPSgoZHwwKTwwPy0xOjApPj4zMXwoKGR8MCk8
MD8tMTowKTw8MTtpPWsyKGVeYSxmXmIsZSxmKXwwO2I9SzthPWdeZTtlPWheZjtmPWsyKChsZChp
LGIsazIoZ15jLGheZCxnLGgpfDAsSywwKXwwKV5hLEteZSxhLGUpfDA7cmV0dXJuKEs9SyxmKXww
fWZ1bmN0aW9uIGs5KGEsYixkLGUpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO3ZhciBmPTAsZz0w
LGg9MCxqPTAsaz0wLGw9MCxtPTA7Zj1pO2k9aSs4fDA7Zz1mfDA7aD1iPj4zMXwoKGJ8MCk8MD8t
MTowKTw8MTtqPSgoYnwwKTwwPy0xOjApPj4zMXwoKGJ8MCk8MD8tMTowKTw8MTtrPWU+PjMxfCgo
ZXwwKTwwPy0xOjApPDwxO2w9KChlfDApPDA/LTE6MCk+PjMxfCgoZXwwKTwwPy0xOjApPDwxO209
azIoaF5hLGpeYixoLGopfDA7Yj1LO2E9azIoa15kLGxeZSxrLGwpfDA7bGQobSxiLGEsSyxnKXww
O2E9azIoY1tnPj4yXV5oLGNbZys0Pj4yXV5qLGgsail8MDtqPUs7aT1mO3JldHVybihLPWosYSl8
MH1mdW5jdGlvbiBsYShhLGIsYyxkKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDt2YXIgZT0wLGY9
MDtlPWE7YT1jO2M9azcoZSxhKXwwO2Y9SztyZXR1cm4oSz0oYWcoYixhKXwwKSsoYWcoZCxlKXww
KStmfGYmMCxjfDB8MCl8MH1mdW5jdGlvbiBsYihhLGIsYyxkKXthPWF8MDtiPWJ8MDtjPWN8MDtk
PWR8MDt2YXIgZT0wO2U9bGQoYSxiLGMsZCwwKXwwO3JldHVybihLPUssZSl8MH1mdW5jdGlvbiBs
YyhhLGIsZCxlKXthPWF8MDtiPWJ8MDtkPWR8MDtlPWV8MDt2YXIgZj0wLGc9MDtmPWk7aT1pKzh8
MDtnPWZ8MDtsZChhLGIsZCxlLGcpfDA7aT1mO3JldHVybihLPWNbZys0Pj4yXXwwLGNbZz4+Ml18
MCl8MH1mdW5jdGlvbiBsZChhLGIsZCxlLGYpe2E9YXwwO2I9YnwwO2Q9ZHwwO2U9ZXwwO2Y9Znww
O3ZhciBnPTAsaD0wLGk9MCxqPTAsaz0wLGw9MCxtPTAsbj0wLG89MCxwPTAscT0wLHI9MCxzPTAs
dD0wLHU9MCx2PTAsdz0wLHg9MCx5PTAsej0wLEE9MCxCPTAsQz0wLEQ9MCxFPTAsRj0wLEc9MCxI
PTAsST0wLEo9MCxMPTAsTT0wO2c9YTtoPWI7aT1oO2o9ZDtrPWU7bD1rO2lmKChpfDApPT0wKXtt
PShmfDApIT0wO2lmKChsfDApPT0wKXtpZihtKXtjW2Y+PjJdPShnPj4+MCklKGo+Pj4wKTtjW2Yr
ND4+Ml09MH1uPTA7bz0oZz4+PjApLyhqPj4+MCk+Pj4wO3JldHVybihLPW4sbyl8MH1lbHNle2lm
KCFtKXtuPTA7bz0wO3JldHVybihLPW4sbyl8MH1jW2Y+PjJdPWF8MDtjW2YrND4+Ml09YiYwO249
MDtvPTA7cmV0dXJuKEs9bixvKXwwfX1tPShsfDApPT0wO2Rve2lmKChqfDApPT0wKXtpZihtKXtp
ZigoZnwwKSE9MCl7Y1tmPj4yXT0oaT4+PjApJShqPj4+MCk7Y1tmKzQ+PjJdPTB9bj0wO289KGk+
Pj4wKS8oaj4+PjApPj4+MDtyZXR1cm4oSz1uLG8pfDB9aWYoKGd8MCk9PTApe2lmKChmfDApIT0w
KXtjW2Y+PjJdPTA7Y1tmKzQ+PjJdPShpPj4+MCklKGw+Pj4wKX1uPTA7bz0oaT4+PjApLyhsPj4+
MCk+Pj4wO3JldHVybihLPW4sbyl8MH1wPWwtMXwwO2lmKChwJmx8MCk9PTApe2lmKChmfDApIT0w
KXtjW2Y+PjJdPWF8MDtjW2YrND4+Ml09cCZpfGImMH1uPTA7bz1pPj4+KChrNihsfDApfDApPj4+
MCk7cmV0dXJuKEs9bixvKXwwfXA9KGtaKGx8MCl8MCktKGtaKGl8MCl8MCl8MDtpZihwPj4+MDw9
MzApe3E9cCsxfDA7cj0zMS1wfDA7cz1xO3Q9aTw8cnxnPj4+KHE+Pj4wKTt1PWk+Pj4ocT4+PjAp
O3Y9MDt3PWc8PHI7YnJlYWt9aWYoKGZ8MCk9PTApe249MDtvPTA7cmV0dXJuKEs9bixvKXwwfWNb
Zj4+Ml09YXwwO2NbZis0Pj4yXT1ofGImMDtuPTA7bz0wO3JldHVybihLPW4sbyl8MH1lbHNle2lm
KCFtKXtyPShrWihsfDApfDApLShrWihpfDApfDApfDA7aWYocj4+PjA8PTMxKXtxPXIrMXwwO3A9
MzEtcnwwO3g9ci0zMT4+MzE7cz1xO3Q9Zz4+PihxPj4+MCkmeHxpPDxwO3U9aT4+PihxPj4+MCkm
eDt2PTA7dz1nPDxwO2JyZWFrfWlmKChmfDApPT0wKXtuPTA7bz0wO3JldHVybihLPW4sbyl8MH1j
W2Y+PjJdPWF8MDtjW2YrND4+Ml09aHxiJjA7bj0wO289MDtyZXR1cm4oSz1uLG8pfDB9cD1qLTF8
MDtpZigocCZqfDApIT0wKXt4PShrWihqfDApfDApKzMzLShrWihpfDApfDApfDA7cT02NC14fDA7
cj0zMi14fDA7eT1yPj4zMTt6PXgtMzJ8MDtBPXo+PjMxO3M9eDt0PXItMT4+MzEmaT4+Pih6Pj4+
MCl8KGk8PHJ8Zz4+Pih4Pj4+MCkpJkE7dT1BJmk+Pj4oeD4+PjApO3Y9Zzw8cSZ5O3c9KGk8PHF8
Zz4+Pih6Pj4+MCkpJnl8Zzw8ciZ4LTMzPj4zMTticmVha31pZigoZnwwKSE9MCl7Y1tmPj4yXT1w
Jmc7Y1tmKzQ+PjJdPTB9aWYoKGp8MCk9PTEpe249aHxiJjA7bz1hfDB8MDtyZXR1cm4oSz1uLG8p
fDB9ZWxzZXtwPWs2KGp8MCl8MDtuPWk+Pj4ocD4+PjApfDA7bz1pPDwzMi1wfGc+Pj4ocD4+PjAp
fDA7cmV0dXJuKEs9bixvKXwwfX19d2hpbGUoMCk7aWYoKHN8MCk9PTApe0I9dztDPXY7RD11O0U9
dDtGPTA7Rz0wfWVsc2V7Zz1kfDB8MDtkPWt8ZSYwO2U9azEoZyxkLC0xLC0xKXwwO2s9SztpPXc7
dz12O3Y9dTt1PXQ7dD1zO3M9MDt3aGlsZSgxKXtIPXc+Pj4zMXxpPDwxO0k9c3x3PDwxO2o9dTw8
MXxpPj4+MzF8MDthPXU+Pj4zMXx2PDwxfDA7azIoZSxrLGosYSl8MDtiPUs7aD1iPj4zMXwoKGJ8
MCk8MD8tMTowKTw8MTtKPWgmMTtMPWsyKGosYSxoJmcsKCgoYnwwKTwwPy0xOjApPj4zMXwoKGJ8
MCk8MD8tMTowKTw8MSkmZCl8MDtNPUs7Yj10LTF8MDtpZigoYnwwKT09MCl7YnJlYWt9ZWxzZXtp
PUg7dz1JO3Y9TTt1PUw7dD1iO3M9Sn19Qj1IO0M9STtEPU07RT1MO0Y9MDtHPUp9Sj1DO0M9MDtp
ZigoZnwwKSE9MCl7Y1tmPj4yXT1FO2NbZis0Pj4yXT1EfW49KEp8MCk+Pj4zMXwoQnxDKTw8MXwo
Qzw8MXxKPj4+MzEpJjB8RjtvPShKPDwxfDA+Pj4zMSkmLTJ8RztyZXR1cm4oSz1uLG8pfDB9ZnVu
Y3Rpb24gbGUoKXtiUCgpfWZ1bmN0aW9uIGxmKGEsYixjLGQsZSxmKXthPWF8MDtiPWJ8MDtjPWN8
MDtkPWR8MDtlPWV8MDtmPWZ8MDtiV1thJjddKGJ8MCxjfDAsZHwwLGV8MCxmfDApfWZ1bmN0aW9u
IGxnKGEsYixjLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7YlhbYSYxMjddKGJ8MCxjfDAsZHwwLGV8MCxmfDAsZ3wwLGh8MCl9ZnVuY3Rp
b24gbGgoYSxiKXthPWF8MDtiPWJ8MDtiWVthJjUxMV0oYnwwKX1mdW5jdGlvbiBsaShhLGIsYyl7
YT1hfDA7Yj1ifDA7Yz1jfDA7YlpbYSYxMjddKGJ8MCxjfDApfWZ1bmN0aW9uIGxqKGEsYixjKXth
PWF8MDtiPWJ8MDtjPWN8MDtyZXR1cm4gYl9bYSYzMV0oYnwwLGN8MCl8MH1mdW5jdGlvbiBsayhh
LGIsYyxkLGUsZil7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7cmV0dXJuIGIk
W2EmMzFdKGJ8MCxjfDAsZHwwLGV8MCxmfDApfDB9ZnVuY3Rpb24gbGwoYSxiKXthPWF8MDtiPWJ8
MDtyZXR1cm4gYjBbYSYxMjddKGJ8MCl8MH1mdW5jdGlvbiBsbShhLGIsYyxkKXthPWF8MDtiPWJ8
MDtjPWN8MDtkPWR8MDtyZXR1cm4gYjFbYSY2M10oYnwwLGN8MCxkfDApfDB9ZnVuY3Rpb24gbG4o
YSxiLGMsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz0rZzti
MlthJjE1XShifDAsY3wwLGR8MCxlfDAsZnwwLCtnKX1mdW5jdGlvbiBsbyhhLGIsYyxkKXthPWF8
MDtiPWJ8MDtjPWN8MDtkPWR8MDtiM1thJjddKGJ8MCxjfDAsZHwwKX1mdW5jdGlvbiBscChhLGIs
YyxkLGUsZixnLGgsaSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7
aD1ofDA7aT1pfDA7YjRbYSYxNV0oYnwwLGN8MCxkfDAsZXwwLGZ8MCxnfDAsaHwwLGl8MCl9ZnVu
Y3Rpb24gbHEoYSl7YT1hfDA7YjVbYSYzXSgpfWZ1bmN0aW9uIGxyKGEsYixjLGQsZSxmLGcsaCxp
KXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDty
ZXR1cm4gYjZbYSYzMV0oYnwwLGN8MCxkfDAsZXwwLGZ8MCxnfDAsaHwwLGl8MCl8MH1mdW5jdGlv
biBscyhhLGIsYyxkLGUsZixnLGgsaSxqKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtm
PWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDtqPWp8MDtiN1thJjddKGJ8MCxjfDAsZHwwLGV8MCxmfDAs
Z3wwLGh8MCxpfDAsanwwKX1mdW5jdGlvbiBsdChhLGIsYyxkLGUsZixnLGgpe2E9YXwwO2I9Ynww
O2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2c9Z3wwO2g9K2g7YjhbYSY3XShifDAsY3wwLGR8MCxl
fDAsZnwwLGd8MCwraCl9ZnVuY3Rpb24gbHUoYSxiLGMsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7Yz1j
fDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7YjlbYSYzMV0oYnwwLGN8MCxkfDAsZXwwLGZ8MCxn
fDApfWZ1bmN0aW9uIGx2KGEsYixjLGQsZSl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7
cmV0dXJuIGNhW2EmMTVdKGJ8MCxjfDAsZHwwLGV8MCl8MH1mdW5jdGlvbiBsdyhhLGIsYyxkLGUp
e2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2NiW2EmMTVdKGJ8MCxjfDAsZHwwLGV8MCl9
ZnVuY3Rpb24gbHgoYSxiLGMsZCxlKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDthaCgw
KX1mdW5jdGlvbiBseShhLGIsYyxkLGUsZixnKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8MDtlPWV8
MDtmPWZ8MDtnPWd8MDthaCgxKX1mdW5jdGlvbiBseihhKXthPWF8MDthaCgyKX1mdW5jdGlvbiBs
QShhLGIpe2E9YXwwO2I9YnwwO2FoKDMpfWZ1bmN0aW9uIGxCKGEsYil7YT1hfDA7Yj1ifDA7YWgo
NCk7cmV0dXJuIDB9ZnVuY3Rpb24gbEMoYSxiLGMsZCxlKXthPWF8MDtiPWJ8MDtjPWN8MDtkPWR8
MDtlPWV8MDthaCg1KTtyZXR1cm4gMH1mdW5jdGlvbiBsRChhKXthPWF8MDthaCg2KTtyZXR1cm4g
MH1mdW5jdGlvbiBsRShhLGIsYyl7YT1hfDA7Yj1ifDA7Yz1jfDA7YWgoNyk7cmV0dXJuIDB9ZnVu
Y3Rpb24gbEYoYSxiLGMsZCxlLGYpe2E9YXwwO2I9YnwwO2M9Y3wwO2Q9ZHwwO2U9ZXwwO2Y9K2Y7
YWgoOCl9ZnVuY3Rpb24gbEcoYSxiLGMpe2E9YXwwO2I9YnwwO2M9Y3wwO2FoKDkpfWZ1bmN0aW9u
IGxIKGEsYixjLGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7
Zz1nfDA7aD1ofDA7YWgoMTApfWZ1bmN0aW9uIGxJKCl7YWgoMTEpfWZ1bmN0aW9uIGxKKGEsYixj
LGQsZSxmLGcsaCl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1mfDA7Zz1nfDA7aD1o
fDA7YWgoMTIpO3JldHVybiAwfWZ1bmN0aW9uIGxLKGEsYixjLGQsZSxmLGcsaCxpKXthPWF8MDti
PWJ8MDtjPWN8MDtkPWR8MDtlPWV8MDtmPWZ8MDtnPWd8MDtoPWh8MDtpPWl8MDthaCgxMyl9ZnVu
Y3Rpb24gbEwoYSxiLGMsZCxlLGYsZyl7YT1hfDA7Yj1ifDA7Yz1jfDA7ZD1kfDA7ZT1lfDA7Zj1m
fDA7Zz0rZzthaCgxNCl9ZnVuY3Rpb24gbE0oYSxiLGMsZCxlLGYpe2E9YXwwO2I9YnwwO2M9Y3ww
O2Q9ZHwwO2U9ZXwwO2Y9ZnwwO2FoKDE1KX1mdW5jdGlvbiBsTihhLGIsYyxkKXthPWF8MDtiPWJ8
MDtjPWN8MDtkPWR8MDthaCgxNik7cmV0dXJuIDB9ZnVuY3Rpb24gbE8oYSxiLGMsZCl7YT1hfDA7
Yj1ifDA7Yz1jfDA7ZD1kfDA7YWgoMTcpfQotLy8gRU1TQ1JJUFRFTl9FTkRfRlVOQ1MKLXZhciBi
Vz1bbHgsbHgsa0csbHgsa0QsbHgsa0YsbHhdO3ZhciBiWD1bbHksbHksZ0csbHksZ1AsbHksZ1Ms
bHksaWgsbHksZ3QsbHksZ3IsbHksaDksbHksZ0IsbHksZ0YsbHksZ1QsbHksZ2YsbHksZjcsbHks
Z0UsbHksZkgsbHksZlosbHksZ1EsbHksZ2QsbHksZiQsbHksZlgsbHksZlksbHksZlEsbHksZl8s
bHksZlYsbHksZlQsbHksZjQsbHksZjMsbHksZjAsbHksZ1UsbHksZkEsbHksZ0MsbHksZkUsbHks
ZnYsbHksZnksbHksZkMsbHksZnIsbHksZk0sbHksZkssbHksZnAsbHksbHksbHksbHksbHksbHks
bHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHks
bHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHksbHks
bHksbHksbHksbHksbHksbHksbHldO3ZhciBiWT1bbHosbHosaWssbHosZm4sbHosZ2wsbHosZEgs
bHosZW4sbHosaUUsbHosZHIsbHosaEEsbHosZjUsbHosZEIsbHosZEcsbHosZk8sbHosZmIsbHos
ZTcsbHosa1EsbHosZEMsbHosaVAsbHosaVMsbHosZ08sbHosZlAsbHosa3EsbHosZTEsbHosaWUs
bHosaVEsbHosZVMsbHosZm8sbHosaHIsbHosaUwsbHosakksbHosaVUsbHosa2ssbHosakgsbHos
ZTUsbHosYzUsbHosZEcsbHosY3QsbHosZmYsbHosaGcsbHosakssbHosaVIsbHosa0ssbHosaDcs
bHosakcsbHosZVYsbHosYzQsbHosZmUsbHosZEMsbHosajMsbHosZjYsbHosZGYsbHosaHMsbHos
ZVIsbHosZSQsbHosaHksbHosZ04sbHosZTgsbHosaGwsbHosa1UsbHosZW0sbHosajYsbHosajcs
bHosZTIsbHosZXUsbHosa3gsbHosaVYsbHosaTksbHosa2ksbHosZVQsbHosZTYsbHosaE8sbHos
ZGQsbHosaHgsbHosZTMsbHosajksbHosa2wsbHosanEsbHosZGIsbHosaUssbHosaU8sbHosaHos
bHosaFUsbHosa3UsbHosaEcsbHosaDgsbHosajgsbHosaGYsbHosZ2ssbHosZmEsbHosZGMsbHos
ZmMsbHosZVgsbHosZE4sbHosaCQsbHosaFQsbHosakosbHosZWUsbHosZEksbHosa2ksbHosa3ks
bHosZV8sbHosZE8sbHosZVEsbHosZTAsbHosaWQsbHosZUQsbHosZVosbHosZHMsbHosaVcsbHos
ZTksbHosaEosbHosZ3osbHosaG0sbHosYyQsbHosaXEsbHosaDAsbHosZVcsbHosZXQsbHosZVks
bHosakYsbHosajQsbHosZ0EsbHosa3csbHosaWwsbHosY18sbHosa3YsbHosaEIsbHosaFAsbHos
Y1csbHosZFAsbHosaVQsbHosZEYsbHosZVUsbHosa2EsbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHosbHos
bHosbHosbHosbHosbHosbHosbHosbHosbHpdO3ZhciBiWj1bbEEsbEEsalAsbEEsYzAsbEEsaE0s
bEEsak0sbEEsaGIsbEEsakwsbEEsaWosbEEsZDksbEEsaGssbEEsaEgsbEEsaHcsbEEsaGosbEEs
aGgsbEEsaE4sbEEsaU4sbEEsZzksbEEsZG0sbEEsaEksbEEsak8sbEEsaEssbEEsaG8sbEEsZEUs
bEEsaG4sbEEsalEsbEEsaGEsbEEsaHEsbEEsak4sbEEsZzgsbEEsZDIsbEEsZHQsbEEsYzYsbEEs
aW8sbEEsaHQsbEEsZzcsbEEsZzYsbEEsaGksbEEsaHUsbEEsaHYsbEEsaHAsbEEsaEwsbEEsbEEs
bEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEs
bEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEsbEEs
bEEsbEEsbEEsbEEsbEEsbEEsbEFdO3ZhciBiXz1bbEIsbEIsaTQsbEIsZHcsbEIsaUEsbEIsaXQs
bEIsZDgsbEIsYzksbEIsZHAsbEIsaTAsbEIsaTYsbEIsZUksbEIsaTIsbEIsZDcsbEIsYzIsbEIs
ZUgsbEIsbEIsbEJdO3ZhciBiJD1bbEMsbEMsamgsbEMsamYsbEMsakUsbEMsaXcsbEMsaUcsbEMs
anAsbEMsaUksbEMsZmssbEMsaUQsbEMsamQsbEMsZUwsbEMsanMsbEMsbEMsbEMsbEMsbEMsbEMs
bENdO3ZhciBiMD1bbEQsbEQsajIsbEQsZzQsbEQsZDYsbEQsalUsbEQsZXIsbEQsajAsbEQsZzAs
bEQsamUsbEQsamssbEQsZ3ksbEQsalMsbEQsZHYsbEQsZU8sbEQsZUcsbEQsalksbEQsalcsbEQs
anQsbEQsa2osbEQsZGksbEQsakMsbEQsanosbEQsalgsbEQsamosbEQsakEsbEQsZDQsbEQsaEYs
bEQsalosbEQsZHUsbEQsYzEsbEQsZzEsbEQsaTgsbEQsajEsbEQsanYsbEQsaEQsbEQsalIsbEQs
YzcsbEQsanUsbEQsamcsbEQsZUosbEQsZyQsbEQsYzgsbEQsakIsbEQsZDUsbEQsZUUsbEQsZG4s
bEQsZzIsbEQsaXosbEQsaXksbEQsa1IsbEQsZUYsbEQsZ1osbEQsalQsbEQsaXgsbEQsZ18sbEQs
ZGgsbEQsZzMsbEQsZzUsbEQsalYsbEQsaEUsbEQsZ00sbEQsaiQsbEQsal8sbEQsamksbERdO3Zh
ciBiMT1bbEUsbEUsZU0sbEUsaTUsbEUsaTMsbEUsa3osbEUsaUIsbEUsZmwsbEUsZEosbEUsZXMs
bEUsZXEsbEUsaVksbEUsZWEsbEUsaW0sbEUsaUMsbEUsaTEsbEUsZU4sbEUsZGwsbEUsaTcsbEUs
aWcsbEUsZDMsbEUsZVAsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUs
bEUsbEUsbEUsbEUsbEUsbEUsbEUsbEUsbEVdO3ZhciBiMj1bbEYsbEYsZ3csbEYsZ3UsbEYsZ2ks
bEYsZ2csbEYsbEYsbEYsbEYsbEYsbEYsbEZdO3ZhciBiMz1bbEcsbEcsZGssbEcsZTQsbEcsbEcs
bEddO3ZhciBiND1bbEgsbEgsaGUsbEgsaGQsbEgsaFEsbEgsaFksbEgsaFcsbEgsaDEsbEgsbEgs
bEhdO3ZhciBiNT1bbEksbEksbGUsbEldO3ZhciBiNj1bbEosbEosaXUsbEosamMsbEosam8sbEos
aXYsbEosanIsbEosakQsbEosamIsbEosamEsbEosbEosbEosbEosbEosbEosbEosbEosbEosbEos
bEosbEosbEosbEosbEpdO3ZhciBiNz1bbEssbEssZ1csbEssZ0ksbEssbEssbEtdO3ZhciBiOD1b
bEwsbEwsaWEsbEwsaDQsbEwsbEwsbExdO3ZhciBiOT1bbE0sbE0sa0gsbE0sZ3MsbE0sZ20sbE0s
Z28sbE0sa0ksbE0sZ3gsbE0saWksbE0sZWQsbE0sZ24sbE0sZ2EsbE0sZ2UsbE0sZjgsbE0sa0Us
bE0sZWIsbE0saXAsbE1dO3ZhciBjYT1bbE4sbE4saVosbE4saV8sbE4saUgsbE4saUYsbE4saSQs
bE4sbE4sbE4sbE4sbE5dO3ZhciBjYj1bbE8sbE8sa0EsbE8sa0IsbE8sZWMsbE8sa3IsbE8sZUss
bE8sZm0sbE8sZmQsbE9dO3JldHVybntfc3RybGVuOmswLF9mcmVlOmtLLF9tYWluOmNELF9yZWFs
bG9jOmtMLF9tZW1tb3ZlOmtfLF9fR0xPQkFMX19JX2E6Y1QsX21lbXNldDprJCxfbWFsbG9jOmtK
LF9tZW1jcHk6a1ksX2xsdm1fY3Rsel9pMzI6a1osX19HTE9CQUxfX0lfYTg6ZHkscnVuUG9zdFNl
dHM6Y3Msc3RhY2tBbGxvYzpjYyxzdGFja1NhdmU6Y2Qsc3RhY2tSZXN0b3JlOmNlLHNldFRocmV3
OmNmLHNldFRlbXBSZXQwOmNpLHNldFRlbXBSZXQxOmNqLHNldFRlbXBSZXQyOmNrLHNldFRlbXBS
ZXQzOmNsLHNldFRlbXBSZXQ0OmNtLHNldFRlbXBSZXQ1OmNuLHNldFRlbXBSZXQ2OmNvLHNldFRl
bXBSZXQ3OmNwLHNldFRlbXBSZXQ4OmNxLHNldFRlbXBSZXQ5OmNyLGR5bkNhbGxfdmlpaWlpOmxm
LGR5bkNhbGxfdmlpaWlpaWk6bGcsZHluQ2FsbF92aTpsaCxkeW5DYWxsX3ZpaTpsaSxkeW5DYWxs
X2lpaTpsaixkeW5DYWxsX2lpaWlpaTpsayxkeW5DYWxsX2lpOmxsLGR5bkNhbGxfaWlpaTpsbSxk
eW5DYWxsX3ZpaWlpaWY6bG4sZHluQ2FsbF92aWlpOmxvLGR5bkNhbGxfdmlpaWlpaWlpOmxwLGR5
bkNhbGxfdjpscSxkeW5DYWxsX2lpaWlpaWlpaTpscixkeW5DYWxsX3ZpaWlpaWlpaWk6bHMsZHlu
Q2FsbF92aWlpaWlpZjpsdCxkeW5DYWxsX3ZpaWlpaWk6bHUsZHluQ2FsbF9paWlpaTpsdixkeW5D
YWxsX3ZpaWlpOmx3fX0pCi0vLyBFTVNDUklQVEVOX0VORF9BU00KLSh7ICJNYXRoIjogTWF0aCwg
IkludDhBcnJheSI6IEludDhBcnJheSwgIkludDE2QXJyYXkiOiBJbnQxNkFycmF5LCAiSW50MzJB
cnJheSI6IEludDMyQXJyYXksICJVaW50OEFycmF5IjogVWludDhBcnJheSwgIlVpbnQxNkFycmF5
IjogVWludDE2QXJyYXksICJVaW50MzJBcnJheSI6IFVpbnQzMkFycmF5LCAiRmxvYXQzMkFycmF5
IjogRmxvYXQzMkFycmF5LCAiRmxvYXQ2NEFycmF5IjogRmxvYXQ2NEFycmF5IH0sIHsgImFib3J0
IjogYWJvcnQsICJhc3NlcnQiOiBhc3NlcnQsICJhc21QcmludEludCI6IGFzbVByaW50SW50LCAi
YXNtUHJpbnRGbG9hdCI6IGFzbVByaW50RmxvYXQsICJtaW4iOiBNYXRoX21pbiwgImludm9rZV92
aWlpaWkiOiBpbnZva2VfdmlpaWlpLCAiaW52b2tlX3ZpaWlpaWlpIjogaW52b2tlX3ZpaWlpaWlp
LCAiaW52b2tlX3ZpIjogaW52b2tlX3ZpLCAiaW52b2tlX3ZpaSI6IGludm9rZV92aWksICJpbnZv
a2VfaWlpIjogaW52b2tlX2lpaSwgImludm9rZV9paWlpaWkiOiBpbnZva2VfaWlpaWlpLCAiaW52
b2tlX2lpIjogaW52b2tlX2lpLCAiaW52b2tlX2lpaWkiOiBpbnZva2VfaWlpaSwgImludm9rZV92
aWlpaWlmIjogaW52b2tlX3ZpaWlpaWYsICJpbnZva2VfdmlpaSI6IGludm9rZV92aWlpLCAiaW52
b2tlX3ZpaWlpaWlpaSI6IGludm9rZV92aWlpaWlpaWksICJpbnZva2VfdiI6IGludm9rZV92LCAi
aW52b2tlX2lpaWlpaWlpaSI6IGludm9rZV9paWlpaWlpaWksICJpbnZva2VfdmlpaWlpaWlpaSI6
IGludm9rZV92aWlpaWlpaWlpLCAiaW52b2tlX3ZpaWlpaWlmIjogaW52b2tlX3ZpaWlpaWlmLCAi
aW52b2tlX3ZpaWlpaWkiOiBpbnZva2VfdmlpaWlpaSwgImludm9rZV9paWlpaSI6IGludm9rZV9p
aWlpaSwgImludm9rZV92aWlpaSI6IGludm9rZV92aWlpaSwgIl9sbHZtX2xpZmV0aW1lX2VuZCI6
IF9sbHZtX2xpZmV0aW1lX2VuZCwgIl9fc2NhblN0cmluZyI6IF9fc2NhblN0cmluZywgIl9wdGhy
ZWFkX211dGV4X2xvY2siOiBfcHRocmVhZF9tdXRleF9sb2NrLCAiX19fY3hhX2VuZF9jYXRjaCI6
IF9fX2N4YV9lbmRfY2F0Y2gsICJfc3RydG91bGwiOiBfc3RydG91bGwsICJfX2lzRmxvYXQiOiBf
X2lzRmxvYXQsICJfZmZsdXNoIjogX2ZmbHVzaCwgIl9faXNMZWFwWWVhciI6IF9faXNMZWFwWWVh
ciwgIl9md3JpdGUiOiBfZndyaXRlLCAiX3NlbmQiOiBfc2VuZCwgIl9sbHZtX3VtdWxfd2l0aF9v
dmVyZmxvd19pMzIiOiBfbGx2bV91bXVsX3dpdGhfb3ZlcmZsb3dfaTMyLCAiX2lzc3BhY2UiOiBf
aXNzcGFjZSwgIl9yZWFkIjogX3JlYWQsICJfX19jeGFfZ3VhcmRfYWJvcnQiOiBfX19jeGFfZ3Vh
cmRfYWJvcnQsICJfbmV3bG9jYWxlIjogX25ld2xvY2FsZSwgIl9fX2d4eF9wZXJzb25hbGl0eV92
MCI6IF9fX2d4eF9wZXJzb25hbGl0eV92MCwgIl9wdGhyZWFkX2NvbmRfd2FpdCI6IF9wdGhyZWFk
X2NvbmRfd2FpdCwgIl9fX2N4YV9yZXRocm93IjogX19fY3hhX3JldGhyb3csICJfX19yZXN1bWVF
eGNlcHRpb24iOiBfX19yZXN1bWVFeGNlcHRpb24sICJfbGx2bV92YV9lbmQiOiBfbGx2bV92YV9l
bmQsICJfdnNzY2FuZiI6IF92c3NjYW5mLCAiX3NucHJpbnRmIjogX3NucHJpbnRmLCAiX2ZnZXRj
IjogX2ZnZXRjLCAiX2F0ZXhpdCI6IF9hdGV4aXQsICJfX19jeGFfZnJlZV9leGNlcHRpb24iOiBf
X19jeGFfZnJlZV9leGNlcHRpb24sICJfX1o4Y2F0Y2xvc2VQOF9ubF9jYXRkIjogX19aOGNhdGNs
b3NlUDhfbmxfY2F0ZCwgIl9fX3NldEVyck5vIjogX19fc2V0RXJyTm8sICJfaXN4ZGlnaXQiOiBf
aXN4ZGlnaXQsICJfZXhpdCI6IF9leGl0LCAiX3NwcmludGYiOiBfc3ByaW50ZiwgIl9fX2N0eXBl
X2JfbG9jIjogX19fY3R5cGVfYl9sb2MsICJfZnJlZWxvY2FsZSI6IF9mcmVlbG9jYWxlLCAiX19a
N2NhdG9wZW5QS2NpIjogX19aN2NhdG9wZW5QS2NpLCAiX2FzcHJpbnRmIjogX2FzcHJpbnRmLCAi
X19fY3hhX2lzX251bWJlcl90eXBlIjogX19fY3hhX2lzX251bWJlcl90eXBlLCAiX19fY3hhX2Rv
ZXNfaW5oZXJpdCI6IF9fX2N4YV9kb2VzX2luaGVyaXQsICJfX19jeGFfZ3VhcmRfYWNxdWlyZSI6
IF9fX2N4YV9ndWFyZF9hY3F1aXJlLCAiX19fbG9jYWxlX21iX2N1cl9tYXgiOiBfX19sb2NhbGVf
bWJfY3VyX21heCwgIl9fX2N4YV9iZWdpbl9jYXRjaCI6IF9fX2N4YV9iZWdpbl9jYXRjaCwgIl9y
ZWN2IjogX3JlY3YsICJfX3BhcnNlSW50NjQiOiBfX3BhcnNlSW50NjQsICJfX1pTdDE4dW5jYXVn
aHRfZXhjZXB0aW9udiI6IF9fWlN0MTh1bmNhdWdodF9leGNlcHRpb252LCAiX19fY3hhX2NhbGxf
dW5leHBlY3RlZCI6IF9fX2N4YV9jYWxsX3VuZXhwZWN0ZWQsICJfX2V4aXQiOiBfX2V4aXQsICJf
c3RyZnRpbWUiOiBfc3RyZnRpbWUsICJfX19jeGFfdGhyb3ciOiBfX19jeGFfdGhyb3csICJfbGx2
bV9laF9leGNlcHRpb24iOiBfbGx2bV9laF9leGNlcHRpb24sICJfcHJlYWQiOiBfcHJlYWQsICJf
X2FycmF5U3VtIjogX19hcnJheVN1bSwgIl9sb2ciOiBfbG9nLCAiX19fY3hhX2ZpbmRfbWF0Y2hp
bmdfY2F0Y2giOiBfX19jeGFfZmluZF9tYXRjaGluZ19jYXRjaCwgIl9fZm9ybWF0U3RyaW5nIjog
X19mb3JtYXRTdHJpbmcsICJfcHRocmVhZF9jb25kX2Jyb2FkY2FzdCI6IF9wdGhyZWFkX2NvbmRf
YnJvYWRjYXN0LCAiX19aU3Q5dGVybWluYXRldiI6IF9fWlN0OXRlcm1pbmF0ZXYsICJfcHRocmVh
ZF9tdXRleF91bmxvY2siOiBfcHRocmVhZF9tdXRleF91bmxvY2ssICJfc2JyayI6IF9zYnJrLCAi
X19fZXJybm9fbG9jYXRpb24iOiBfX19lcnJub19sb2NhdGlvbiwgIl9zdHJlcnJvciI6IF9zdHJl
cnJvciwgIl9sbHZtX2xpZmV0aW1lX3N0YXJ0IjogX2xsdm1fbGlmZXRpbWVfc3RhcnQsICJfX19j
eGFfZ3VhcmRfcmVsZWFzZSI6IF9fX2N4YV9ndWFyZF9yZWxlYXNlLCAiX3VuZ2V0YyI6IF91bmdl
dGMsICJfdXNlbG9jYWxlIjogX3VzZWxvY2FsZSwgIl92c25wcmludGYiOiBfdnNucHJpbnRmLCAi
X3NzY2FuZiI6IF9zc2NhbmYsICJfc3lzY29uZiI6IF9zeXNjb25mLCAiX2ZyZWFkIjogX2ZyZWFk
LCAiX2Fib3J0IjogX2Fib3J0LCAiX2lzZGlnaXQiOiBfaXNkaWdpdCwgIl9zdHJ0b2xsIjogX3N0
cnRvbGwsICJfX2FkZERheXMiOiBfX2FkZERheXMsICJfZmxvb3IiOiBfZmxvb3IsICJfX3JlYWxs
eU5lZ2F0aXZlIjogX19yZWFsbHlOZWdhdGl2ZSwgIl9fWjdjYXRnZXRzUDhfbmxfY2F0ZGlpUEtj
IjogX19aN2NhdGdldHNQOF9ubF9jYXRkaWlQS2MsICJfd3JpdGUiOiBfd3JpdGUsICJfX19jeGFf
YWxsb2NhdGVfZXhjZXB0aW9uIjogX19fY3hhX2FsbG9jYXRlX2V4Y2VwdGlvbiwgIl9fX2N4YV9w
dXJlX3ZpcnR1YWwiOiBfX19jeGFfcHVyZV92aXJ0dWFsLCAiX3Zhc3ByaW50ZiI6IF92YXNwcmlu
dGYsICJfX19jdHlwZV90b3VwcGVyX2xvYyI6IF9fX2N0eXBlX3RvdXBwZXJfbG9jLCAiX19fY3R5
cGVfdG9sb3dlcl9sb2MiOiBfX19jdHlwZV90b2xvd2VyX2xvYywgIl9wd3JpdGUiOiBfcHdyaXRl
LCAiX3N0cmVycm9yX3IiOiBfc3RyZXJyb3JfciwgIl90aW1lIjogX3RpbWUsICJTVEFDS1RPUCI6
IFNUQUNLVE9QLCAiU1RBQ0tfTUFYIjogU1RBQ0tfTUFYLCAidGVtcERvdWJsZVB0ciI6IHRlbXBE
b3VibGVQdHIsICJBQk9SVCI6IEFCT1JULCAiY3R0el9pOCI6IGN0dHpfaTgsICJjdGx6X2k4Ijog
Y3Rsel9pOCwgIk5hTiI6IE5hTiwgIkluZmluaXR5IjogSW5maW5pdHksICJfc3RkaW4iOiBfc3Rk
aW4sICJfX1pUVk4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRSI6IF9fWlRWTjEwX19j
eHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FLCAiX19aVFZOMTBfX2N4eGFiaXYxMjBfX3NpX2Ns
YXNzX3R5cGVfaW5mb0UiOiBfX1pUVk4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZv
RSwgIl9zdGRlcnIiOiBfc3RkZXJyLCAiX19fZnNtdTgiOiBfX19mc211OCwgIl9zdGRvdXQiOiBf
c3Rkb3V0LCAiX19fZHNvX2hhbmRsZSI6IF9fX2Rzb19oYW5kbGUgfSwgYnVmZmVyKTsKLXZhciBf
c3RybGVuID0gTW9kdWxlWyJfc3RybGVuIl0gPSBhc21bIl9zdHJsZW4iXTsKLXZhciBfZnJlZSA9
IE1vZHVsZVsiX2ZyZWUiXSA9IGFzbVsiX2ZyZWUiXTsKLXZhciBfbWFpbiA9IE1vZHVsZVsiX21h
aW4iXSA9IGFzbVsiX21haW4iXTsKLXZhciBfcmVhbGxvYyA9IE1vZHVsZVsiX3JlYWxsb2MiXSA9
IGFzbVsiX3JlYWxsb2MiXTsKLXZhciBfbWVtbW92ZSA9IE1vZHVsZVsiX21lbW1vdmUiXSA9IGFz
bVsiX21lbW1vdmUiXTsKLXZhciBfX0dMT0JBTF9fSV9hID0gTW9kdWxlWyJfX0dMT0JBTF9fSV9h
Il0gPSBhc21bIl9fR0xPQkFMX19JX2EiXTsKLXZhciBfbWVtc2V0ID0gTW9kdWxlWyJfbWVtc2V0
Il0gPSBhc21bIl9tZW1zZXQiXTsKLXZhciBfbWFsbG9jID0gTW9kdWxlWyJfbWFsbG9jIl0gPSBh
c21bIl9tYWxsb2MiXTsKLXZhciBfbWVtY3B5ID0gTW9kdWxlWyJfbWVtY3B5Il0gPSBhc21bIl9t
ZW1jcHkiXTsKLXZhciBfbGx2bV9jdGx6X2kzMiA9IE1vZHVsZVsiX2xsdm1fY3Rsel9pMzIiXSA9
IGFzbVsiX2xsdm1fY3Rsel9pMzIiXTsKLXZhciBfX0dMT0JBTF9fSV9hOCA9IE1vZHVsZVsiX19H
TE9CQUxfX0lfYTgiXSA9IGFzbVsiX19HTE9CQUxfX0lfYTgiXTsKLXZhciBydW5Qb3N0U2V0cyA9
IE1vZHVsZVsicnVuUG9zdFNldHMiXSA9IGFzbVsicnVuUG9zdFNldHMiXTsKLXZhciBkeW5DYWxs
X3ZpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWkiXSA9IGFzbVsiZHluQ2FsbF92aWlpaWki
XTsKLXZhciBkeW5DYWxsX3ZpaWlpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlpIl0gPSBh
c21bImR5bkNhbGxfdmlpaWlpaWkiXTsKLXZhciBkeW5DYWxsX3ZpID0gTW9kdWxlWyJkeW5DYWxs
X3ZpIl0gPSBhc21bImR5bkNhbGxfdmkiXTsKLXZhciBkeW5DYWxsX3ZpaSA9IE1vZHVsZVsiZHlu
Q2FsbF92aWkiXSA9IGFzbVsiZHluQ2FsbF92aWkiXTsKLXZhciBkeW5DYWxsX2lpaSA9IE1vZHVs
ZVsiZHluQ2FsbF9paWkiXSA9IGFzbVsiZHluQ2FsbF9paWkiXTsKLXZhciBkeW5DYWxsX2lpaWlp
aSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpaWkiXSA9IGFzbVsiZHluQ2FsbF9paWlpaWkiXTsKLXZh
ciBkeW5DYWxsX2lpID0gTW9kdWxlWyJkeW5DYWxsX2lpIl0gPSBhc21bImR5bkNhbGxfaWkiXTsK
LXZhciBkeW5DYWxsX2lpaWkgPSBNb2R1bGVbImR5bkNhbGxfaWlpaSJdID0gYXNtWyJkeW5DYWxs
X2lpaWkiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaWYgPSBNb2R1bGVbImR5bkNhbGxfdmlpaWlpZiJd
ID0gYXNtWyJkeW5DYWxsX3ZpaWlpaWYiXTsKLXZhciBkeW5DYWxsX3ZpaWkgPSBNb2R1bGVbImR5
bkNhbGxfdmlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWkiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaWlp
aSA9IE1vZHVsZVsiZHluQ2FsbF92aWlpaWlpaWkiXSA9IGFzbVsiZHluQ2FsbF92aWlpaWlpaWki
XTsKLXZhciBkeW5DYWxsX3YgPSBNb2R1bGVbImR5bkNhbGxfdiJdID0gYXNtWyJkeW5DYWxsX3Yi
XTsKLXZhciBkeW5DYWxsX2lpaWlpaWlpaSA9IE1vZHVsZVsiZHluQ2FsbF9paWlpaWlpaWkiXSA9
IGFzbVsiZHluQ2FsbF9paWlpaWlpaWkiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaWlpaWkgPSBNb2R1
bGVbImR5bkNhbGxfdmlpaWlpaWlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWlpaWlpaWkiXTsKLXZh
ciBkeW5DYWxsX3ZpaWlpaWlmID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpaWlmIl0gPSBhc21bImR5
bkNhbGxfdmlpaWlpaWYiXTsKLXZhciBkeW5DYWxsX3ZpaWlpaWkgPSBNb2R1bGVbImR5bkNhbGxf
dmlpaWlpaSJdID0gYXNtWyJkeW5DYWxsX3ZpaWlpaWkiXTsKLXZhciBkeW5DYWxsX2lpaWlpID0g
TW9kdWxlWyJkeW5DYWxsX2lpaWlpIl0gPSBhc21bImR5bkNhbGxfaWlpaWkiXTsKLXZhciBkeW5D
YWxsX3ZpaWlpID0gTW9kdWxlWyJkeW5DYWxsX3ZpaWlpIl0gPSBhc21bImR5bkNhbGxfdmlpaWki
XTsKLVJ1bnRpbWUuc3RhY2tBbGxvYyA9IGZ1bmN0aW9uKHNpemUpIHsgcmV0dXJuIGFzbVsnc3Rh
Y2tBbGxvYyddKHNpemUpIH07Ci1SdW50aW1lLnN0YWNrU2F2ZSA9IGZ1bmN0aW9uKCkgeyByZXR1
cm4gYXNtWydzdGFja1NhdmUnXSgpIH07Ci1SdW50aW1lLnN0YWNrUmVzdG9yZSA9IGZ1bmN0aW9u
KHRvcCkgeyBhc21bJ3N0YWNrUmVzdG9yZSddKHRvcCkgfTsKLS8vIFRPRE86IHN0cmlwIG91dCBw
YXJ0cyBvZiB0aGlzIHdlIGRvIG5vdCBuZWVkCi0vLz09PT09PT0gYmVnaW4gY2xvc3VyZSBpNjQg
Y29kZSA9PT09PT09Ci0vLyBDb3B5cmlnaHQgMjAwOSBUaGUgQ2xvc3VyZSBMaWJyYXJ5IEF1dGhv
cnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNo
ZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0vLyB5b3UgbWF5IG5vdCB1
c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0vLyBZ
b3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLS8vCi0vLyAgICAgIGh0dHA6
Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotLy8KLS8vIFVubGVzcyByZXF1
aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUK
LS8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJB
Uy1JUyIgQkFTSVMsCi0vLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkg
S0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLS8vIFNlZSB0aGUgTGljZW5zZSBmb3Ig
dGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLS8vIGxpbWl0
YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotLyoqCi0gKiBAZmlsZW92ZXJ2aWV3IERlZmluZXMg
YSBMb25nIGNsYXNzIGZvciByZXByZXNlbnRpbmcgYSA2NC1iaXQgdHdvJ3MtY29tcGxlbWVudAot
ICogaW50ZWdlciB2YWx1ZSwgd2hpY2ggZmFpdGhmdWxseSBzaW11bGF0ZXMgdGhlIGJlaGF2aW9y
IG9mIGEgSmF2YSAibG9uZyIuIFRoaXMKLSAqIGltcGxlbWVudGF0aW9uIGlzIGRlcml2ZWQgZnJv
bSBMb25nTGliIGluIEdXVC4KLSAqCi0gKi8KLXZhciBpNjRNYXRoID0gKGZ1bmN0aW9uKCkgeyAv
LyBFbXNjcmlwdGVuIHdyYXBwZXIKLSAgdmFyIGdvb2cgPSB7IG1hdGg6IHt9IH07Ci0gIC8qKgot
ICAgKiBDb25zdHJ1Y3RzIGEgNjQtYml0IHR3bydzLWNvbXBsZW1lbnQgaW50ZWdlciwgZ2l2ZW4g
aXRzIGxvdyBhbmQgaGlnaCAzMi1iaXQKLSAgICogdmFsdWVzIGFzICpzaWduZWQqIGludGVnZXJz
LiAgU2VlIHRoZSBmcm9tKiBmdW5jdGlvbnMgYmVsb3cgZm9yIG1vcmUKLSAgICogY29udmVuaWVu
dCB3YXlzIG9mIGNvbnN0cnVjdGluZyBMb25ncy4KLSAgICoKLSAgICogVGhlIGludGVybmFsIHJl
cHJlc2VudGF0aW9uIG9mIGEgbG9uZyBpcyB0aGUgdHdvIGdpdmVuIHNpZ25lZCwgMzItYml0IHZh
bHVlcy4KLSAgICogV2UgdXNlIDMyLWJpdCBwaWVjZXMgYmVjYXVzZSB0aGVzZSBhcmUgdGhlIHNp
emUgb2YgaW50ZWdlcnMgb24gd2hpY2gKLSAgICogSmF2YXNjcmlwdCBwZXJmb3JtcyBiaXQtb3Bl
cmF0aW9ucy4gIEZvciBvcGVyYXRpb25zIGxpa2UgYWRkaXRpb24gYW5kCi0gICAqIG11bHRpcGxp
Y2F0aW9uLCB3ZSBzcGxpdCBlYWNoIG51bWJlciBpbnRvIDE2LWJpdCBwaWVjZXMsIHdoaWNoIGNh
biBlYXNpbHkgYmUKLSAgICogbXVsdGlwbGllZCB3aXRoaW4gSmF2YXNjcmlwdCdzIGZsb2F0aW5n
LXBvaW50IHJlcHJlc2VudGF0aW9uIHdpdGhvdXQgb3ZlcmZsb3cKLSAgICogb3IgY2hhbmdlIGlu
IHNpZ24uCi0gICAqCi0gICAqIEluIHRoZSBhbGdvcml0aG1zIGJlbG93LCB3ZSBmcmVxdWVudGx5
IHJlZHVjZSB0aGUgbmVnYXRpdmUgY2FzZSB0byB0aGUKLSAgICogcG9zaXRpdmUgY2FzZSBieSBu
ZWdhdGluZyB0aGUgaW5wdXQocykgYW5kIHRoZW4gcG9zdC1wcm9jZXNzaW5nIHRoZSByZXN1bHQu
Ci0gICAqIE5vdGUgdGhhdCB3ZSBtdXN0IEFMV0FZUyBjaGVjayBzcGVjaWFsbHkgd2hldGhlciB0
aG9zZSB2YWx1ZXMgYXJlIE1JTl9WQUxVRQotICAgKiAoLTJeNjMpIGJlY2F1c2UgLU1JTl9WQUxV
RSA9PSBNSU5fVkFMVUUgKHNpbmNlIDJeNjMgY2Fubm90IGJlIHJlcHJlc2VudGVkIGFzCi0gICAq
IGEgcG9zaXRpdmUgbnVtYmVyLCBpdCBvdmVyZmxvd3MgYmFjayBpbnRvIGEgbmVnYXRpdmUpLiAg
Tm90IGhhbmRsaW5nIHRoaXMKLSAgICogY2FzZSB3b3VsZCBvZnRlbiByZXN1bHQgaW4gaW5maW5p
dGUgcmVjdXJzaW9uLgotICAgKgotICAgKiBAcGFyYW0ge251bWJlcn0gbG93ICBUaGUgbG93IChz
aWduZWQpIDMyIGJpdHMgb2YgdGhlIGxvbmcuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBoaWdoICBU
aGUgaGlnaCAoc2lnbmVkKSAzMiBiaXRzIG9mIHRoZSBsb25nLgotICAgKiBAY29uc3RydWN0b3IK
LSAgICovCi0gIGdvb2cubWF0aC5Mb25nID0gZnVuY3Rpb24obG93LCBoaWdoKSB7Ci0gICAgLyoq
Ci0gICAgICogQHR5cGUge251bWJlcn0KLSAgICAgKiBAcHJpdmF0ZQotICAgICAqLwotICAgIHRo
aXMubG93XyA9IGxvdyB8IDA7ICAvLyBmb3JjZSBpbnRvIDMyIHNpZ25lZCBiaXRzLgotICAgIC8q
KgotICAgICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAgICogQHByaXZhdGUKLSAgICAgKi8KLSAgICB0
aGlzLmhpZ2hfID0gaGlnaCB8IDA7ICAvLyBmb3JjZSBpbnRvIDMyIHNpZ25lZCBiaXRzLgotICB9
OwotICAvLyBOT1RFOiBDb21tb24gY29uc3RhbnQgdmFsdWVzIFpFUk8sIE9ORSwgTkVHX09ORSwg
ZXRjLiBhcmUgZGVmaW5lZCBiZWxvdyB0aGUKLSAgLy8gZnJvbSogbWV0aG9kcyBvbiB3aGljaCB0
aGV5IGRlcGVuZC4KLSAgLyoqCi0gICAqIEEgY2FjaGUgb2YgdGhlIExvbmcgcmVwcmVzZW50YXRp
b25zIG9mIHNtYWxsIGludGVnZXIgdmFsdWVzLgotICAgKiBAdHlwZSB7IU9iamVjdH0KLSAgICog
QHByaXZhdGUKLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLkludENhY2hlXyA9IHt9OwotICAvKioK
LSAgICogUmV0dXJucyBhIExvbmcgcmVwcmVzZW50aW5nIHRoZSBnaXZlbiAoMzItYml0KSBpbnRl
Z2VyIHZhbHVlLgotICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgVGhlIDMyLWJpdCBpbnRlZ2Vy
IGluIHF1ZXN0aW9uLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBjb3JyZXNw
b25kaW5nIExvbmcgdmFsdWUuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5mcm9tSW50ID0gZnVu
Y3Rpb24odmFsdWUpIHsKLSAgICBpZiAoLTEyOCA8PSB2YWx1ZSAmJiB2YWx1ZSA8IDEyOCkgewot
ICAgICAgdmFyIGNhY2hlZE9iaiA9IGdvb2cubWF0aC5Mb25nLkludENhY2hlX1t2YWx1ZV07Ci0g
ICAgICBpZiAoY2FjaGVkT2JqKSB7Ci0gICAgICAgIHJldHVybiBjYWNoZWRPYmo7Ci0gICAgICB9
Ci0gICAgfQotICAgIHZhciBvYmogPSBuZXcgZ29vZy5tYXRoLkxvbmcodmFsdWUgfCAwLCB2YWx1
ZSA8IDAgPyAtMSA6IDApOwotICAgIGlmICgtMTI4IDw9IHZhbHVlICYmIHZhbHVlIDwgMTI4KSB7
Ci0gICAgICBnb29nLm1hdGguTG9uZy5JbnRDYWNoZV9bdmFsdWVdID0gb2JqOwotICAgIH0KLSAg
ICByZXR1cm4gb2JqOwotICB9OwotICAvKioKLSAgICogUmV0dXJucyBhIExvbmcgcmVwcmVzZW50
aW5nIHRoZSBnaXZlbiB2YWx1ZSwgcHJvdmlkZWQgdGhhdCBpdCBpcyBhIGZpbml0ZQotICAgKiBu
dW1iZXIuICBPdGhlcndpc2UsIHplcm8gaXMgcmV0dXJuZWQuCi0gICAqIEBwYXJhbSB7bnVtYmVy
fSB2YWx1ZSBUaGUgbnVtYmVyIGluIHF1ZXN0aW9uLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRo
Lkxvbmd9IFRoZSBjb3JyZXNwb25kaW5nIExvbmcgdmFsdWUuCi0gICAqLwotICBnb29nLm1hdGgu
TG9uZy5mcm9tTnVtYmVyID0gZnVuY3Rpb24odmFsdWUpIHsKLSAgICBpZiAoaXNOYU4odmFsdWUp
IHx8ICFpc0Zpbml0ZSh2YWx1ZSkpIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5aRVJP
OwotICAgIH0gZWxzZSBpZiAodmFsdWUgPD0gLWdvb2cubWF0aC5Mb25nLlRXT19QV1JfNjNfREJM
XykgewotICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRTsKLSAgICB9IGVsc2Ug
aWYgKHZhbHVlICsgMSA+PSBnb29nLm1hdGguTG9uZy5UV09fUFdSXzYzX0RCTF8pIHsKLSAgICAg
IHJldHVybiBnb29nLm1hdGguTG9uZy5NQVhfVkFMVUU7Ci0gICAgfSBlbHNlIGlmICh2YWx1ZSA8
IDApIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tTnVtYmVyKC12YWx1ZSkubmVn
YXRlKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHJldHVybiBuZXcgZ29vZy5tYXRoLkxvbmcoCi0g
ICAgICAgICAgKHZhbHVlICUgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMl9EQkxfKSB8IDAsCi0g
ICAgICAgICAgKHZhbHVlIC8gZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8zMl9EQkxfKSB8IDApOwot
ICAgIH0KLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgYSBMb25nIHJlcHJlc2VudGluZyB0aGUg
NjQtYml0IGludGVnZXIgdGhhdCBjb21lcyBieSBjb25jYXRlbmF0aW5nCi0gICAqIHRoZSBnaXZl
biBoaWdoIGFuZCBsb3cgYml0cy4gIEVhY2ggaXMgYXNzdW1lZCB0byB1c2UgMzIgYml0cy4KLSAg
ICogQHBhcmFtIHtudW1iZXJ9IGxvd0JpdHMgVGhlIGxvdyAzMi1iaXRzLgotICAgKiBAcGFyYW0g
e251bWJlcn0gaGlnaEJpdHMgVGhlIGhpZ2ggMzItYml0cy4KLSAgICogQHJldHVybiB7IWdvb2cu
bWF0aC5Mb25nfSBUaGUgY29ycmVzcG9uZGluZyBMb25nIHZhbHVlLgotICAgKi8KLSAgZ29vZy5t
YXRoLkxvbmcuZnJvbUJpdHMgPSBmdW5jdGlvbihsb3dCaXRzLCBoaWdoQml0cykgewotICAgIHJl
dHVybiBuZXcgZ29vZy5tYXRoLkxvbmcobG93Qml0cywgaGlnaEJpdHMpOwotICB9OwotICAvKioK
LSAgICogUmV0dXJucyBhIExvbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIHN0cmluZywg
d3JpdHRlbiB1c2luZyB0aGUgZ2l2ZW4KLSAgICogcmFkaXguCi0gICAqIEBwYXJhbSB7c3RyaW5n
fSBzdHIgVGhlIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIExvbmcuCi0gICAqIEBwYXJh
bSB7bnVtYmVyPX0gb3B0X3JhZGl4IFRoZSByYWRpeCBpbiB3aGljaCB0aGUgdGV4dCBpcyB3cml0
dGVuLgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBjb3JyZXNwb25kaW5nIExv
bmcgdmFsdWUuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5mcm9tU3RyaW5nID0gZnVuY3Rpb24o
c3RyLCBvcHRfcmFkaXgpIHsKLSAgICBpZiAoc3RyLmxlbmd0aCA9PSAwKSB7Ci0gICAgICB0aHJv
dyBFcnJvcignbnVtYmVyIGZvcm1hdCBlcnJvcjogZW1wdHkgc3RyaW5nJyk7Ci0gICAgfQotICAg
IHZhciByYWRpeCA9IG9wdF9yYWRpeCB8fCAxMDsKLSAgICBpZiAocmFkaXggPCAyIHx8IDM2IDwg
cmFkaXgpIHsKLSAgICAgIHRocm93IEVycm9yKCdyYWRpeCBvdXQgb2YgcmFuZ2U6ICcgKyByYWRp
eCk7Ci0gICAgfQotICAgIGlmIChzdHIuY2hhckF0KDApID09ICctJykgewotICAgICAgcmV0dXJu
IGdvb2cubWF0aC5Mb25nLmZyb21TdHJpbmcoc3RyLnN1YnN0cmluZygxKSwgcmFkaXgpLm5lZ2F0
ZSgpOwotICAgIH0gZWxzZSBpZiAoc3RyLmluZGV4T2YoJy0nKSA+PSAwKSB7Ci0gICAgICB0aHJv
dyBFcnJvcignbnVtYmVyIGZvcm1hdCBlcnJvcjogaW50ZXJpb3IgIi0iIGNoYXJhY3RlcjogJyAr
IHN0cik7Ci0gICAgfQotICAgIC8vIERvIHNldmVyYWwgKDgpIGRpZ2l0cyBlYWNoIHRpbWUgdGhy
b3VnaCB0aGUgbG9vcCwgc28gYXMgdG8KLSAgICAvLyBtaW5pbWl6ZSB0aGUgY2FsbHMgdG8gdGhl
IHZlcnkgZXhwZW5zaXZlIGVtdWxhdGVkIGRpdi4KLSAgICB2YXIgcmFkaXhUb1Bvd2VyID0gZ29v
Zy5tYXRoLkxvbmcuZnJvbU51bWJlcihNYXRoLnBvdyhyYWRpeCwgOCkpOwotICAgIHZhciByZXN1
bHQgPSBnb29nLm1hdGguTG9uZy5aRVJPOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxl
bmd0aDsgaSArPSA4KSB7Ci0gICAgICB2YXIgc2l6ZSA9IE1hdGgubWluKDgsIHN0ci5sZW5ndGgg
LSBpKTsKLSAgICAgIHZhciB2YWx1ZSA9IHBhcnNlSW50KHN0ci5zdWJzdHJpbmcoaSwgaSArIHNp
emUpLCByYWRpeCk7Ci0gICAgICBpZiAoc2l6ZSA8IDgpIHsKLSAgICAgICAgdmFyIHBvd2VyID0g
Z29vZy5tYXRoLkxvbmcuZnJvbU51bWJlcihNYXRoLnBvdyhyYWRpeCwgc2l6ZSkpOwotICAgICAg
ICByZXN1bHQgPSByZXN1bHQubXVsdGlwbHkocG93ZXIpLmFkZChnb29nLm1hdGguTG9uZy5mcm9t
TnVtYmVyKHZhbHVlKSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICByZXN1bHQgPSByZXN1bHQu
bXVsdGlwbHkocmFkaXhUb1Bvd2VyKTsKLSAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmFkZChnb29n
Lm1hdGguTG9uZy5mcm9tTnVtYmVyKHZhbHVlKSk7Ci0gICAgICB9Ci0gICAgfQotICAgIHJldHVy
biByZXN1bHQ7Ci0gIH07Ci0gIC8vIE5PVEU6IHRoZSBjb21waWxlciBzaG91bGQgaW5saW5lIHRo
ZXNlIGNvbnN0YW50IHZhbHVlcyBiZWxvdyBhbmQgdGhlbiByZW1vdmUKLSAgLy8gdGhlc2UgdmFy
aWFibGVzLCBzbyB0aGVyZSBzaG91bGQgYmUgbm8gcnVudGltZSBwZW5hbHR5IGZvciB0aGVzZS4K
LSAgLyoqCi0gICAqIE51bWJlciB1c2VkIHJlcGVhdGVkIGJlbG93IGluIGNhbGN1bGF0aW9ucy4g
IFRoaXMgbXVzdCBhcHBlYXIgYmVmb3JlIHRoZQotICAgKiBmaXJzdCBjYWxsIHRvIGFueSBmcm9t
KiBmdW5jdGlvbiBiZWxvdy4KLSAgICogQHR5cGUge251bWJlcn0KLSAgICogQHByaXZhdGUKLSAg
ICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMTZfREJMXyA9IDEgPDwgMTY7Ci0gIC8qKgot
ICAgKiBAdHlwZSB7bnVtYmVyfQotICAgKiBAcHJpdmF0ZQotICAgKi8KLSAgZ29vZy5tYXRoLkxv
bmcuVFdPX1BXUl8yNF9EQkxfID0gMSA8PCAyNDsKLSAgLyoqCi0gICAqIEB0eXBlIHtudW1iZXJ9
Ci0gICAqIEBwcml2YXRlCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8g
PQotICAgICAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8xNl9EQkxfICogZ29vZy5tYXRoLkxvbmcu
VFdPX1BXUl8xNl9EQkxfOwotICAvKioKLSAgICogQHR5cGUge251bWJlcn0KLSAgICogQHByaXZh
dGUKLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzFfREJMXyA9Ci0gICAgICBnb29n
Lm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8gLyAyOwotICAvKioKLSAgICogQHR5cGUge251bWJl
cn0KLSAgICogQHByaXZhdGUKLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfNDhfREJM
XyA9Ci0gICAgICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzMyX0RCTF8gKiBnb29nLm1hdGguTG9u
Zy5UV09fUFdSXzE2X0RCTF87Ci0gIC8qKgotICAgKiBAdHlwZSB7bnVtYmVyfQotICAgKiBAcHJp
dmF0ZQotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl82NF9EQkxfID0KLSAgICAgIGdv
b2cubWF0aC5Mb25nLlRXT19QV1JfMzJfREJMXyAqIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMzJf
REJMXzsKLSAgLyoqCi0gICAqIEB0eXBlIHtudW1iZXJ9Ci0gICAqIEBwcml2YXRlCi0gICAqLwot
ICBnb29nLm1hdGguTG9uZy5UV09fUFdSXzYzX0RCTF8gPQotICAgICAgZ29vZy5tYXRoLkxvbmcu
VFdPX1BXUl82NF9EQkxfIC8gMjsKLSAgLyoqIEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9ICovCi0g
IGdvb2cubWF0aC5Mb25nLlpFUk8gPSBnb29nLm1hdGguTG9uZy5mcm9tSW50KDApOwotICAvKiog
QHR5cGUgeyFnb29nLm1hdGguTG9uZ30gKi8KLSAgZ29vZy5tYXRoLkxvbmcuT05FID0gZ29vZy5t
YXRoLkxvbmcuZnJvbUludCgxKTsKLSAgLyoqIEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9ICovCi0g
IGdvb2cubWF0aC5Mb25nLk5FR19PTkUgPSBnb29nLm1hdGguTG9uZy5mcm9tSW50KC0xKTsKLSAg
LyoqIEB0eXBlIHshZ29vZy5tYXRoLkxvbmd9ICovCi0gIGdvb2cubWF0aC5Mb25nLk1BWF9WQUxV
RSA9Ci0gICAgICBnb29nLm1hdGguTG9uZy5mcm9tQml0cygweEZGRkZGRkZGIHwgMCwgMHg3RkZG
RkZGRiB8IDApOwotICAvKiogQHR5cGUgeyFnb29nLm1hdGguTG9uZ30gKi8KLSAgZ29vZy5tYXRo
LkxvbmcuTUlOX1ZBTFVFID0gZ29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoMCwgMHg4MDAwMDAwMCB8
IDApOwotICAvKioKLSAgICogQHR5cGUgeyFnb29nLm1hdGguTG9uZ30KLSAgICogQHByaXZhdGUK
LSAgICovCi0gIGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMjRfID0gZ29vZy5tYXRoLkxvbmcuZnJv
bUludCgxIDw8IDI0KTsKLSAgLyoqIEByZXR1cm4ge251bWJlcn0gVGhlIHZhbHVlLCBhc3N1bWlu
ZyBpdCBpcyBhIDMyLWJpdCBpbnRlZ2VyLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUu
dG9JbnQgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5sb3dfOwotICB9OwotICAvKiog
QHJldHVybiB7bnVtYmVyfSBUaGUgY2xvc2VzdCBmbG9hdGluZy1wb2ludCByZXByZXNlbnRhdGlv
biB0byB0aGlzIHZhbHVlLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUudG9OdW1iZXIg
PSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5oaWdoXyAqIGdvb2cubWF0aC5Mb25nLlRX
T19QV1JfMzJfREJMXyArCi0gICAgICAgICAgIHRoaXMuZ2V0TG93Qml0c1Vuc2lnbmVkKCk7Ci0g
IH07Ci0gIC8qKgotICAgKiBAcGFyYW0ge251bWJlcj19IG9wdF9yYWRpeCBUaGUgcmFkaXggaW4g
d2hpY2ggdGhlIHRleHQgc2hvdWxkIGJlIHdyaXR0ZW4uCi0gICAqIEByZXR1cm4ge3N0cmluZ30g
VGhlIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhpcyB2YWx1ZS4KLSAgICovCi0gIGdvb2cu
bWF0aC5Mb25nLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKG9wdF9yYWRpeCkgewotICAg
IHZhciByYWRpeCA9IG9wdF9yYWRpeCB8fCAxMDsKLSAgICBpZiAocmFkaXggPCAyIHx8IDM2IDwg
cmFkaXgpIHsKLSAgICAgIHRocm93IEVycm9yKCdyYWRpeCBvdXQgb2YgcmFuZ2U6ICcgKyByYWRp
eCk7Ci0gICAgfQotICAgIGlmICh0aGlzLmlzWmVybygpKSB7Ci0gICAgICByZXR1cm4gJzAnOwot
ICAgIH0KLSAgICBpZiAodGhpcy5pc05lZ2F0aXZlKCkpIHsKLSAgICAgIGlmICh0aGlzLmVxdWFs
cyhnb29nLm1hdGguTG9uZy5NSU5fVkFMVUUpKSB7Ci0gICAgICAgIC8vIFdlIG5lZWQgdG8gY2hh
bmdlIHRoZSBMb25nIHZhbHVlIGJlZm9yZSBpdCBjYW4gYmUgbmVnYXRlZCwgc28gd2UgcmVtb3Zl
Ci0gICAgICAgIC8vIHRoZSBib3R0b20tbW9zdCBkaWdpdCBpbiB0aGlzIGJhc2UgYW5kIHRoZW4g
cmVjdXJzZSB0byBkbyB0aGUgcmVzdC4KLSAgICAgICAgdmFyIHJhZGl4TG9uZyA9IGdvb2cubWF0
aC5Mb25nLmZyb21OdW1iZXIocmFkaXgpOwotICAgICAgICB2YXIgZGl2ID0gdGhpcy5kaXYocmFk
aXhMb25nKTsKLSAgICAgICAgdmFyIHJlbSA9IGRpdi5tdWx0aXBseShyYWRpeExvbmcpLnN1YnRy
YWN0KHRoaXMpOwotICAgICAgICByZXR1cm4gZGl2LnRvU3RyaW5nKHJhZGl4KSArIHJlbS50b0lu
dCgpLnRvU3RyaW5nKHJhZGl4KTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiAnLScg
KyB0aGlzLm5lZ2F0ZSgpLnRvU3RyaW5nKHJhZGl4KTsKLSAgICAgIH0KLSAgICB9Ci0gICAgLy8g
RG8gc2V2ZXJhbCAoNikgZGlnaXRzIGVhY2ggdGltZSB0aHJvdWdoIHRoZSBsb29wLCBzbyBhcyB0
bwotICAgIC8vIG1pbmltaXplIHRoZSBjYWxscyB0byB0aGUgdmVyeSBleHBlbnNpdmUgZW11bGF0
ZWQgZGl2LgotICAgIHZhciByYWRpeFRvUG93ZXIgPSBnb29nLm1hdGguTG9uZy5mcm9tTnVtYmVy
KE1hdGgucG93KHJhZGl4LCA2KSk7Ci0gICAgdmFyIHJlbSA9IHRoaXM7Ci0gICAgdmFyIHJlc3Vs
dCA9ICcnOwotICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICB2YXIgcmVtRGl2ID0gcmVtLmRpdihy
YWRpeFRvUG93ZXIpOwotICAgICAgdmFyIGludHZhbCA9IHJlbS5zdWJ0cmFjdChyZW1EaXYubXVs
dGlwbHkocmFkaXhUb1Bvd2VyKSkudG9JbnQoKTsKLSAgICAgIHZhciBkaWdpdHMgPSBpbnR2YWwu
dG9TdHJpbmcocmFkaXgpOwotICAgICAgcmVtID0gcmVtRGl2OwotICAgICAgaWYgKHJlbS5pc1pl
cm8oKSkgewotICAgICAgICByZXR1cm4gZGlnaXRzICsgcmVzdWx0OwotICAgICAgfSBlbHNlIHsK
LSAgICAgICAgd2hpbGUgKGRpZ2l0cy5sZW5ndGggPCA2KSB7Ci0gICAgICAgICAgZGlnaXRzID0g
JzAnICsgZGlnaXRzOwotICAgICAgICB9Ci0gICAgICAgIHJlc3VsdCA9ICcnICsgZGlnaXRzICsg
cmVzdWx0OwotICAgICAgfQotICAgIH0KLSAgfTsKLSAgLyoqIEByZXR1cm4ge251bWJlcn0gVGhl
IGhpZ2ggMzItYml0cyBhcyBhIHNpZ25lZCB2YWx1ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJv
dG90eXBlLmdldEhpZ2hCaXRzID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRoaXMuaGlnaF87
Ci0gIH07Ci0gIC8qKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBsb3cgMzItYml0cyBhcyBhIHNpZ25l
ZCB2YWx1ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmdldExvd0JpdHMgPSBmdW5j
dGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5sb3dfOwotICB9OwotICAvKiogQHJldHVybiB7bnVt
YmVyfSBUaGUgbG93IDMyLWJpdHMgYXMgYW4gdW5zaWduZWQgdmFsdWUuICovCi0gIGdvb2cubWF0
aC5Mb25nLnByb3RvdHlwZS5nZXRMb3dCaXRzVW5zaWduZWQgPSBmdW5jdGlvbigpIHsKLSAgICBy
ZXR1cm4gKHRoaXMubG93XyA+PSAwKSA/Ci0gICAgICAgIHRoaXMubG93XyA6IGdvb2cubWF0aC5M
b25nLlRXT19QV1JfMzJfREJMXyArIHRoaXMubG93XzsKLSAgfTsKLSAgLyoqCi0gICAqIEByZXR1
cm4ge251bWJlcn0gUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJpdHMgbmVlZGVkIHRvIHJlcHJlc2Vu
dCB0aGUgYWJzb2x1dGUKLSAgICogICAgIHZhbHVlIG9mIHRoaXMgTG9uZy4KLSAgICovCi0gIGdv
b2cubWF0aC5Mb25nLnByb3RvdHlwZS5nZXROdW1CaXRzQWJzID0gZnVuY3Rpb24oKSB7Ci0gICAg
aWYgKHRoaXMuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICBpZiAodGhpcy5lcXVhbHMoZ29vZy5tYXRo
LkxvbmcuTUlOX1ZBTFVFKSkgewotICAgICAgICByZXR1cm4gNjQ7Ci0gICAgICB9IGVsc2Ugewot
ICAgICAgICByZXR1cm4gdGhpcy5uZWdhdGUoKS5nZXROdW1CaXRzQWJzKCk7Ci0gICAgICB9Ci0g
ICAgfSBlbHNlIHsKLSAgICAgIHZhciB2YWwgPSB0aGlzLmhpZ2hfICE9IDAgPyB0aGlzLmhpZ2hf
IDogdGhpcy5sb3dfOwotICAgICAgZm9yICh2YXIgYml0ID0gMzE7IGJpdCA+IDA7IGJpdC0tKSB7
Ci0gICAgICAgIGlmICgodmFsICYgKDEgPDwgYml0KSkgIT0gMCkgewotICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgICByZXR1cm4gdGhpcy5oaWdoXyAhPSAwID8gYml0
ICsgMzMgOiBiaXQgKyAxOwotICAgIH0KLSAgfTsKLSAgLyoqIEByZXR1cm4ge2Jvb2xlYW59IFdo
ZXRoZXIgdGhpcyB2YWx1ZSBpcyB6ZXJvLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUu
aXNaZXJvID0gZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIHRoaXMuaGlnaF8gPT0gMCAmJiB0aGlz
Lmxvd18gPT0gMDsKLSAgfTsKLSAgLyoqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyB2
YWx1ZSBpcyBuZWdhdGl2ZS4gKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLmlzTmVnYXRp
dmUgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gdGhpcy5oaWdoXyA8IDA7Ci0gIH07Ci0gIC8q
KiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgdmFsdWUgaXMgb2RkLiAqLwotICBnb29n
Lm1hdGguTG9uZy5wcm90b3R5cGUuaXNPZGQgPSBmdW5jdGlvbigpIHsKLSAgICByZXR1cm4gKHRo
aXMubG93XyAmIDEpID09IDE7Ci0gIH07Ci0gIC8qKgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5M
b25nfSBvdGhlciBMb25nIHRvIGNvbXBhcmUgYWdhaW5zdC4KLSAgICogQHJldHVybiB7Ym9vbGVh
bn0gV2hldGhlciB0aGlzIExvbmcgZXF1YWxzIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0
aC5Mb25nLnByb3RvdHlwZS5lcXVhbHMgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiAo
dGhpcy5oaWdoXyA9PSBvdGhlci5oaWdoXykgJiYgKHRoaXMubG93XyA9PSBvdGhlci5sb3dfKTsK
LSAgfTsKLSAgLyoqCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8g
Y29tcGFyZSBhZ2FpbnN0LgotICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgTG9u
ZyBkb2VzIG5vdCBlcXVhbCB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90
b3R5cGUubm90RXF1YWxzID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gKHRoaXMuaGln
aF8gIT0gb3RoZXIuaGlnaF8pIHx8ICh0aGlzLmxvd18gIT0gb3RoZXIubG93Xyk7Ci0gIH07Ci0g
IC8qKgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRvIGNvbXBhcmUg
YWdhaW5zdC4KLSAgICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGlzIExvbmcgaXMgbGVz
cyB0aGFuIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5sZXNz
VGhhbiA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAgcmV0dXJuIHRoaXMuY29tcGFyZShvdGhlcikg
PCAwOwotICB9OwotICAvKioKLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9u
ZyB0byBjb21wYXJlIGFnYWluc3QuCi0gICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhp
cyBMb25nIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgb3RoZXIuCi0gICAqLwotICBnb29n
Lm1hdGguTG9uZy5wcm90b3R5cGUubGVzc1RoYW5PckVxdWFsID0gZnVuY3Rpb24ob3RoZXIpIHsK
LSAgICByZXR1cm4gdGhpcy5jb21wYXJlKG90aGVyKSA8PSAwOwotICB9OwotICAvKioKLSAgICog
QHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0byBjb21wYXJlIGFnYWluc3QuCi0g
ICAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhpcyBMb25nIGlzIGdyZWF0ZXIgdGhhbiB0
aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuZ3JlYXRlclRoYW4g
PSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiB0aGlzLmNvbXBhcmUob3RoZXIpID4gMDsK
LSAgfTsKLSAgLyoqCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8g
Y29tcGFyZSBhZ2FpbnN0LgotICAgKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIHRoaXMgTG9u
ZyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5t
YXRoLkxvbmcucHJvdG90eXBlLmdyZWF0ZXJUaGFuT3JFcXVhbCA9IGZ1bmN0aW9uKG90aGVyKSB7
Ci0gICAgcmV0dXJuIHRoaXMuY29tcGFyZShvdGhlcikgPj0gMDsKLSAgfTsKLSAgLyoqCi0gICAq
IENvbXBhcmVzIHRoaXMgTG9uZyB3aXRoIHRoZSBnaXZlbiBvbmUuCi0gICAqIEBwYXJhbSB7Z29v
Zy5tYXRoLkxvbmd9IG90aGVyIExvbmcgdG8gY29tcGFyZSBhZ2FpbnN0LgotICAgKiBAcmV0dXJu
IHtudW1iZXJ9IDAgaWYgdGhleSBhcmUgdGhlIHNhbWUsIDEgaWYgdGhlIHRoaXMgaXMgZ3JlYXRl
ciwgYW5kIC0xCi0gICAqICAgICBpZiB0aGUgZ2l2ZW4gb25lIGlzIGdyZWF0ZXIuCi0gICAqLwot
ICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0g
ICAgaWYgKHRoaXMuZXF1YWxzKG90aGVyKSkgewotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAg
IHZhciB0aGlzTmVnID0gdGhpcy5pc05lZ2F0aXZlKCk7Ci0gICAgdmFyIG90aGVyTmVnID0gb3Ro
ZXIuaXNOZWdhdGl2ZSgpOwotICAgIGlmICh0aGlzTmVnICYmICFvdGhlck5lZykgewotICAgICAg
cmV0dXJuIC0xOwotICAgIH0KLSAgICBpZiAoIXRoaXNOZWcgJiYgb3RoZXJOZWcpIHsKLSAgICAg
IHJldHVybiAxOwotICAgIH0KLSAgICAvLyBhdCB0aGlzIHBvaW50LCB0aGUgc2lnbnMgYXJlIHRo
ZSBzYW1lLCBzbyBzdWJ0cmFjdGlvbiB3aWxsIG5vdCBvdmVyZmxvdwotICAgIGlmICh0aGlzLnN1
YnRyYWN0KG90aGVyKS5pc05lZ2F0aXZlKCkpIHsKLSAgICAgIHJldHVybiAtMTsKLSAgICB9IGVs
c2UgewotICAgICAgcmV0dXJuIDE7Ci0gICAgfQotICB9OwotICAvKiogQHJldHVybiB7IWdvb2cu
bWF0aC5Mb25nfSBUaGUgbmVnYXRpb24gb2YgdGhpcyB2YWx1ZS4gKi8KLSAgZ29vZy5tYXRoLkxv
bmcucHJvdG90eXBlLm5lZ2F0ZSA9IGZ1bmN0aW9uKCkgewotICAgIGlmICh0aGlzLmVxdWFscyhn
b29nLm1hdGguTG9uZy5NSU5fVkFMVUUpKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcu
TUlOX1ZBTFVFOwotICAgIH0gZWxzZSB7Ci0gICAgICByZXR1cm4gdGhpcy5ub3QoKS5hZGQoZ29v
Zy5tYXRoLkxvbmcuT05FKTsKLSAgICB9Ci0gIH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoZSBz
dW0gb2YgdGhpcyBhbmQgdGhlIGdpdmVuIExvbmcuCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxv
bmd9IG90aGVyIExvbmcgdG8gYWRkIHRvIHRoaXMgb25lLgotICAgKiBAcmV0dXJuIHshZ29vZy5t
YXRoLkxvbmd9IFRoZSBzdW0gb2YgdGhpcyBhbmQgdGhlIGdpdmVuIExvbmcuCi0gICAqLwotICBn
b29nLm1hdGguTG9uZy5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICAvLyBE
aXZpZGUgZWFjaCBudW1iZXIgaW50byA0IGNodW5rcyBvZiAxNiBiaXRzLCBhbmQgdGhlbiBzdW0g
dGhlIGNodW5rcy4KLSAgICB2YXIgYTQ4ID0gdGhpcy5oaWdoXyA+Pj4gMTY7Ci0gICAgdmFyIGEz
MiA9IHRoaXMuaGlnaF8gJiAweEZGRkY7Ci0gICAgdmFyIGExNiA9IHRoaXMubG93XyA+Pj4gMTY7
Ci0gICAgdmFyIGEwMCA9IHRoaXMubG93XyAmIDB4RkZGRjsKLSAgICB2YXIgYjQ4ID0gb3RoZXIu
aGlnaF8gPj4+IDE2OwotICAgIHZhciBiMzIgPSBvdGhlci5oaWdoXyAmIDB4RkZGRjsKLSAgICB2
YXIgYjE2ID0gb3RoZXIubG93XyA+Pj4gMTY7Ci0gICAgdmFyIGIwMCA9IG90aGVyLmxvd18gJiAw
eEZGRkY7Ci0gICAgdmFyIGM0OCA9IDAsIGMzMiA9IDAsIGMxNiA9IDAsIGMwMCA9IDA7Ci0gICAg
YzAwICs9IGEwMCArIGIwMDsKLSAgICBjMTYgKz0gYzAwID4+PiAxNjsKLSAgICBjMDAgJj0gMHhG
RkZGOwotICAgIGMxNiArPSBhMTYgKyBiMTY7Ci0gICAgYzMyICs9IGMxNiA+Pj4gMTY7Ci0gICAg
YzE2ICY9IDB4RkZGRjsKLSAgICBjMzIgKz0gYTMyICsgYjMyOwotICAgIGM0OCArPSBjMzIgPj4+
IDE2OwotICAgIGMzMiAmPSAweEZGRkY7Ci0gICAgYzQ4ICs9IGE0OCArIGI0ODsKLSAgICBjNDgg
Jj0gMHhGRkZGOwotICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cygoYzE2IDw8IDE2
KSB8IGMwMCwgKGM0OCA8PCAxNikgfCBjMzIpOwotICB9OwotICAvKioKLSAgICogUmV0dXJucyB0
aGUgZGlmZmVyZW5jZSBvZiB0aGlzIGFuZCB0aGUgZ2l2ZW4gTG9uZy4KLSAgICogQHBhcmFtIHtn
b29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyB0byBzdWJ0cmFjdCBmcm9tIHRoaXMuCi0gICAqIEBy
ZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIGRpZmZlcmVuY2Ugb2YgdGhpcyBhbmQgdGhlIGdp
dmVuIExvbmcuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuc3VidHJhY3QgPSBm
dW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiB0aGlzLmFkZChvdGhlci5uZWdhdGUoKSk7Ci0g
IH07Ci0gIC8qKgotICAgKiBSZXR1cm5zIHRoZSBwcm9kdWN0IG9mIHRoaXMgYW5kIHRoZSBnaXZl
biBsb25nLgotICAgKiBAcGFyYW0ge2dvb2cubWF0aC5Mb25nfSBvdGhlciBMb25nIHRvIG11bHRp
cGx5IHdpdGggdGhpcy4KLSAgICogQHJldHVybiB7IWdvb2cubWF0aC5Mb25nfSBUaGUgcHJvZHVj
dCBvZiB0aGlzIGFuZCB0aGUgb3RoZXIuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5
cGUubXVsdGlwbHkgPSBmdW5jdGlvbihvdGhlcikgewotICAgIGlmICh0aGlzLmlzWmVybygpKSB7
Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICB9IGVsc2UgaWYgKG90aGVy
LmlzWmVybygpKSB7Ci0gICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICB9Ci0g
ICAgaWYgKHRoaXMuZXF1YWxzKGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSkpIHsKLSAgICAgIHJl
dHVybiBvdGhlci5pc09kZCgpID8gZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFIDogZ29vZy5tYXRo
LkxvbmcuWkVSTzsKLSAgICB9IGVsc2UgaWYgKG90aGVyLmVxdWFscyhnb29nLm1hdGguTG9uZy5N
SU5fVkFMVUUpKSB7Ci0gICAgICByZXR1cm4gdGhpcy5pc09kZCgpID8gZ29vZy5tYXRoLkxvbmcu
TUlOX1ZBTFVFIDogZ29vZy5tYXRoLkxvbmcuWkVSTzsKLSAgICB9Ci0gICAgaWYgKHRoaXMuaXNO
ZWdhdGl2ZSgpKSB7Ci0gICAgICBpZiAob3RoZXIuaXNOZWdhdGl2ZSgpKSB7Ci0gICAgICAgIHJl
dHVybiB0aGlzLm5lZ2F0ZSgpLm11bHRpcGx5KG90aGVyLm5lZ2F0ZSgpKTsKLSAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgIHJldHVybiB0aGlzLm5lZ2F0ZSgpLm11bHRpcGx5KG90aGVyKS5uZWdhdGUo
KTsKLSAgICAgIH0KLSAgICB9IGVsc2UgaWYgKG90aGVyLmlzTmVnYXRpdmUoKSkgewotICAgICAg
cmV0dXJuIHRoaXMubXVsdGlwbHkob3RoZXIubmVnYXRlKCkpLm5lZ2F0ZSgpOwotICAgIH0KLSAg
ICAvLyBJZiBib3RoIGxvbmdzIGFyZSBzbWFsbCwgdXNlIGZsb2F0IG11bHRpcGxpY2F0aW9uCi0g
ICAgaWYgKHRoaXMubGVzc1RoYW4oZ29vZy5tYXRoLkxvbmcuVFdPX1BXUl8yNF8pICYmCi0gICAg
ICAgIG90aGVyLmxlc3NUaGFuKGdvb2cubWF0aC5Mb25nLlRXT19QV1JfMjRfKSkgewotICAgICAg
cmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21OdW1iZXIodGhpcy50b051bWJlcigpICogb3RoZXIu
dG9OdW1iZXIoKSk7Ci0gICAgfQotICAgIC8vIERpdmlkZSBlYWNoIGxvbmcgaW50byA0IGNodW5r
cyBvZiAxNiBiaXRzLCBhbmQgdGhlbiBhZGQgdXAgNHg0IHByb2R1Y3RzLgotICAgIC8vIFdlIGNh
biBza2lwIHByb2R1Y3RzIHRoYXQgd291bGQgb3ZlcmZsb3cuCi0gICAgdmFyIGE0OCA9IHRoaXMu
aGlnaF8gPj4+IDE2OwotICAgIHZhciBhMzIgPSB0aGlzLmhpZ2hfICYgMHhGRkZGOwotICAgIHZh
ciBhMTYgPSB0aGlzLmxvd18gPj4+IDE2OwotICAgIHZhciBhMDAgPSB0aGlzLmxvd18gJiAweEZG
RkY7Ci0gICAgdmFyIGI0OCA9IG90aGVyLmhpZ2hfID4+PiAxNjsKLSAgICB2YXIgYjMyID0gb3Ro
ZXIuaGlnaF8gJiAweEZGRkY7Ci0gICAgdmFyIGIxNiA9IG90aGVyLmxvd18gPj4+IDE2OwotICAg
IHZhciBiMDAgPSBvdGhlci5sb3dfICYgMHhGRkZGOwotICAgIHZhciBjNDggPSAwLCBjMzIgPSAw
LCBjMTYgPSAwLCBjMDAgPSAwOwotICAgIGMwMCArPSBhMDAgKiBiMDA7Ci0gICAgYzE2ICs9IGMw
MCA+Pj4gMTY7Ci0gICAgYzAwICY9IDB4RkZGRjsKLSAgICBjMTYgKz0gYTE2ICogYjAwOwotICAg
IGMzMiArPSBjMTYgPj4+IDE2OwotICAgIGMxNiAmPSAweEZGRkY7Ci0gICAgYzE2ICs9IGEwMCAq
IGIxNjsKLSAgICBjMzIgKz0gYzE2ID4+PiAxNjsKLSAgICBjMTYgJj0gMHhGRkZGOwotICAgIGMz
MiArPSBhMzIgKiBiMDA7Ci0gICAgYzQ4ICs9IGMzMiA+Pj4gMTY7Ci0gICAgYzMyICY9IDB4RkZG
RjsKLSAgICBjMzIgKz0gYTE2ICogYjE2OwotICAgIGM0OCArPSBjMzIgPj4+IDE2OwotICAgIGMz
MiAmPSAweEZGRkY7Ci0gICAgYzMyICs9IGEwMCAqIGIzMjsKLSAgICBjNDggKz0gYzMyID4+PiAx
NjsKLSAgICBjMzIgJj0gMHhGRkZGOwotICAgIGM0OCArPSBhNDggKiBiMDAgKyBhMzIgKiBiMTYg
KyBhMTYgKiBiMzIgKyBhMDAgKiBiNDg7Ci0gICAgYzQ4ICY9IDB4RkZGRjsKLSAgICByZXR1cm4g
Z29vZy5tYXRoLkxvbmcuZnJvbUJpdHMoKGMxNiA8PCAxNikgfCBjMDAsIChjNDggPDwgMTYpIHwg
YzMyKTsKLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhpcyBMb25nIGRpdmlkZWQgYnkgdGhl
IGdpdmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgTG9uZyBieSB3
aGljaCB0byBkaXZpZGUuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhpcyBMb25n
IGRpdmlkZWQgYnkgdGhlIGdpdmVuIG9uZS4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnByb3Rv
dHlwZS5kaXYgPSBmdW5jdGlvbihvdGhlcikgewotICAgIGlmIChvdGhlci5pc1plcm8oKSkgewot
ICAgICAgdGhyb3cgRXJyb3IoJ2RpdmlzaW9uIGJ5IHplcm8nKTsKLSAgICB9IGVsc2UgaWYgKHRo
aXMuaXNaZXJvKCkpIHsKLSAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5aRVJPOwotICAgIH0K
LSAgICBpZiAodGhpcy5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVFKSkgewotICAgICAg
aWYgKG90aGVyLmVxdWFscyhnb29nLm1hdGguTG9uZy5PTkUpIHx8Ci0gICAgICAgICAgb3RoZXIu
ZXF1YWxzKGdvb2cubWF0aC5Mb25nLk5FR19PTkUpKSB7Ci0gICAgICAgIHJldHVybiBnb29nLm1h
dGguTG9uZy5NSU5fVkFMVUU7ICAvLyByZWNhbGwgdGhhdCAtTUlOX1ZBTFVFID09IE1JTl9WQUxV
RQotICAgICAgfSBlbHNlIGlmIChvdGhlci5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuTUlOX1ZBTFVF
KSkgewotICAgICAgICByZXR1cm4gZ29vZy5tYXRoLkxvbmcuT05FOwotICAgICAgfSBlbHNlIHsK
LSAgICAgICAgLy8gQXQgdGhpcyBwb2ludCwgd2UgaGF2ZSB8b3RoZXJ8ID49IDIsIHNvIHx0aGlz
L290aGVyfCA8IHxNSU5fVkFMVUV8LgotICAgICAgICB2YXIgaGFsZlRoaXMgPSB0aGlzLnNoaWZ0
UmlnaHQoMSk7Ci0gICAgICAgIHZhciBhcHByb3ggPSBoYWxmVGhpcy5kaXYob3RoZXIpLnNoaWZ0
TGVmdCgxKTsKLSAgICAgICAgaWYgKGFwcHJveC5lcXVhbHMoZ29vZy5tYXRoLkxvbmcuWkVSTykp
IHsKLSAgICAgICAgICByZXR1cm4gb3RoZXIuaXNOZWdhdGl2ZSgpID8gZ29vZy5tYXRoLkxvbmcu
T05FIDogZ29vZy5tYXRoLkxvbmcuTkVHX09ORTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICB2YXIgcmVtID0gdGhpcy5zdWJ0cmFjdChvdGhlci5tdWx0aXBseShhcHByb3gpKTsKLSAgICAg
ICAgICB2YXIgcmVzdWx0ID0gYXBwcm94LmFkZChyZW0uZGl2KG90aGVyKSk7Ci0gICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0gZWxzZSBpZiAob3RoZXIu
ZXF1YWxzKGdvb2cubWF0aC5Mb25nLk1JTl9WQUxVRSkpIHsKLSAgICAgIHJldHVybiBnb29nLm1h
dGguTG9uZy5aRVJPOwotICAgIH0KLSAgICBpZiAodGhpcy5pc05lZ2F0aXZlKCkpIHsKLSAgICAg
IGlmIChvdGhlci5pc05lZ2F0aXZlKCkpIHsKLSAgICAgICAgcmV0dXJuIHRoaXMubmVnYXRlKCku
ZGl2KG90aGVyLm5lZ2F0ZSgpKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiB0aGlz
Lm5lZ2F0ZSgpLmRpdihvdGhlcikubmVnYXRlKCk7Ci0gICAgICB9Ci0gICAgfSBlbHNlIGlmIChv
dGhlci5pc05lZ2F0aXZlKCkpIHsKLSAgICAgIHJldHVybiB0aGlzLmRpdihvdGhlci5uZWdhdGUo
KSkubmVnYXRlKCk7Ci0gICAgfQotICAgIC8vIFJlcGVhdCB0aGUgZm9sbG93aW5nIHVudGlsIHRo
ZSByZW1haW5kZXIgaXMgbGVzcyB0aGFuIG90aGVyOiAgZmluZCBhCi0gICAgLy8gZmxvYXRpbmct
cG9pbnQgdGhhdCBhcHByb3hpbWF0ZXMgcmVtYWluZGVyIC8gb3RoZXIgKmZyb20gYmVsb3cqLCBh
ZGQgdGhpcwotICAgIC8vIGludG8gdGhlIHJlc3VsdCwgYW5kIHN1YnRyYWN0IGl0IGZyb20gdGhl
IHJlbWFpbmRlci4gIEl0IGlzIGNyaXRpY2FsIHRoYXQKLSAgICAvLyB0aGUgYXBwcm94aW1hdGUg
dmFsdWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSByZWFsIHZhbHVlIHNvIHRoYXQgdGhl
Ci0gICAgLy8gcmVtYWluZGVyIG5ldmVyIGJlY29tZXMgbmVnYXRpdmUuCi0gICAgdmFyIHJlcyA9
IGdvb2cubWF0aC5Mb25nLlpFUk87Ci0gICAgdmFyIHJlbSA9IHRoaXM7Ci0gICAgd2hpbGUgKHJl
bS5ncmVhdGVyVGhhbk9yRXF1YWwob3RoZXIpKSB7Ci0gICAgICAvLyBBcHByb3hpbWF0ZSB0aGUg
cmVzdWx0IG9mIGRpdmlzaW9uLiBUaGlzIG1heSBiZSBhIGxpdHRsZSBncmVhdGVyIG9yCi0gICAg
ICAvLyBzbWFsbGVyIHRoYW4gdGhlIGFjdHVhbCB2YWx1ZS4KLSAgICAgIHZhciBhcHByb3ggPSBN
YXRoLm1heCgxLCBNYXRoLmZsb29yKHJlbS50b051bWJlcigpIC8gb3RoZXIudG9OdW1iZXIoKSkp
OwotICAgICAgLy8gV2Ugd2lsbCB0d2VhayB0aGUgYXBwcm94aW1hdGUgcmVzdWx0IGJ5IGNoYW5n
aW5nIGl0IGluIHRoZSA0OC10aCBkaWdpdCBvcgotICAgICAgLy8gdGhlIHNtYWxsZXN0IG5vbi1m
cmFjdGlvbmFsIGRpZ2l0LCB3aGljaGV2ZXIgaXMgbGFyZ2VyLgotICAgICAgdmFyIGxvZzIgPSBN
YXRoLmNlaWwoTWF0aC5sb2coYXBwcm94KSAvIE1hdGguTE4yKTsKLSAgICAgIHZhciBkZWx0YSA9
IChsb2cyIDw9IDQ4KSA/IDEgOiBNYXRoLnBvdygyLCBsb2cyIC0gNDgpOwotICAgICAgLy8gRGVj
cmVhc2UgdGhlIGFwcHJveGltYXRpb24gdW50aWwgaXQgaXMgc21hbGxlciB0aGFuIHRoZSByZW1h
aW5kZXIuICBOb3RlCi0gICAgICAvLyB0aGF0IGlmIGl0IGlzIHRvbyBsYXJnZSwgdGhlIHByb2R1
Y3Qgb3ZlcmZsb3dzIGFuZCBpcyBuZWdhdGl2ZS4KLSAgICAgIHZhciBhcHByb3hSZXMgPSBnb29n
Lm1hdGguTG9uZy5mcm9tTnVtYmVyKGFwcHJveCk7Ci0gICAgICB2YXIgYXBwcm94UmVtID0gYXBw
cm94UmVzLm11bHRpcGx5KG90aGVyKTsKLSAgICAgIHdoaWxlIChhcHByb3hSZW0uaXNOZWdhdGl2
ZSgpIHx8IGFwcHJveFJlbS5ncmVhdGVyVGhhbihyZW0pKSB7Ci0gICAgICAgIGFwcHJveCAtPSBk
ZWx0YTsKLSAgICAgICAgYXBwcm94UmVzID0gZ29vZy5tYXRoLkxvbmcuZnJvbU51bWJlcihhcHBy
b3gpOwotICAgICAgICBhcHByb3hSZW0gPSBhcHByb3hSZXMubXVsdGlwbHkob3RoZXIpOwotICAg
ICAgfQotICAgICAgLy8gV2Uga25vdyB0aGUgYW5zd2VyIGNhbid0IGJlIHplcm8uLi4gYW5kIGFj
dHVhbGx5LCB6ZXJvIHdvdWxkIGNhdXNlCi0gICAgICAvLyBpbmZpbml0ZSByZWN1cnNpb24gc2lu
Y2Ugd2Ugd291bGQgbWFrZSBubyBwcm9ncmVzcy4KLSAgICAgIGlmIChhcHByb3hSZXMuaXNaZXJv
KCkpIHsKLSAgICAgICAgYXBwcm94UmVzID0gZ29vZy5tYXRoLkxvbmcuT05FOwotICAgICAgfQot
ICAgICAgcmVzID0gcmVzLmFkZChhcHByb3hSZXMpOwotICAgICAgcmVtID0gcmVtLnN1YnRyYWN0
KGFwcHJveFJlbSk7Ci0gICAgfQotICAgIHJldHVybiByZXM7Ci0gIH07Ci0gIC8qKgotICAgKiBS
ZXR1cm5zIHRoaXMgTG9uZyBtb2R1bG8gdGhlIGdpdmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29n
Lm1hdGguTG9uZ30gb3RoZXIgTG9uZyBieSB3aGljaCB0byBtb2QuCi0gICAqIEByZXR1cm4geyFn
b29nLm1hdGguTG9uZ30gVGhpcyBMb25nIG1vZHVsbyB0aGUgZ2l2ZW4gb25lLgotICAgKi8KLSAg
Z29vZy5tYXRoLkxvbmcucHJvdG90eXBlLm1vZHVsbyA9IGZ1bmN0aW9uKG90aGVyKSB7Ci0gICAg
cmV0dXJuIHRoaXMuc3VidHJhY3QodGhpcy5kaXYob3RoZXIpLm11bHRpcGx5KG90aGVyKSk7Ci0g
IH07Ci0gIC8qKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9IFRoZSBiaXR3aXNlLU5PVCBvZiB0
aGlzIHZhbHVlLiAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUubm90ID0gZnVuY3Rpb24o
KSB7Ci0gICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRzKH50aGlzLmxvd18sIH50aGlz
LmhpZ2hfKTsKLSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhlIGJpdHdpc2UtQU5EIG9mIHRo
aXMgTG9uZyBhbmQgdGhlIGdpdmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30g
b3RoZXIgVGhlIExvbmcgd2l0aCB3aGljaCB0byBBTkQuCi0gICAqIEByZXR1cm4geyFnb29nLm1h
dGguTG9uZ30gVGhlIGJpdHdpc2UtQU5EIG9mIHRoaXMgYW5kIHRoZSBvdGhlci4KLSAgICovCi0g
IGdvb2cubWF0aC5Mb25nLnByb3RvdHlwZS5hbmQgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJl
dHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cyh0aGlzLmxvd18gJiBvdGhlci5sb3dfLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZ2hfICYgb3RoZXIuaGlnaF8p
OwotICB9OwotICAvKioKLSAgICogUmV0dXJucyB0aGUgYml0d2lzZS1PUiBvZiB0aGlzIExvbmcg
YW5kIHRoZSBnaXZlbiBvbmUuCi0gICAqIEBwYXJhbSB7Z29vZy5tYXRoLkxvbmd9IG90aGVyIFRo
ZSBMb25nIHdpdGggd2hpY2ggdG8gT1IuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30g
VGhlIGJpdHdpc2UtT1Igb2YgdGhpcyBhbmQgdGhlIG90aGVyLgotICAgKi8KLSAgZ29vZy5tYXRo
LkxvbmcucHJvdG90eXBlLm9yID0gZnVuY3Rpb24ob3RoZXIpIHsKLSAgICByZXR1cm4gZ29vZy5t
YXRoLkxvbmcuZnJvbUJpdHModGhpcy5sb3dfIHwgb3RoZXIubG93XywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWdoXyB8IG90aGVyLmhpZ2hfKTsKLSAgfTsKLSAg
LyoqCi0gICAqIFJldHVybnMgdGhlIGJpdHdpc2UtWE9SIG9mIHRoaXMgTG9uZyBhbmQgdGhlIGdp
dmVuIG9uZS4KLSAgICogQHBhcmFtIHtnb29nLm1hdGguTG9uZ30gb3RoZXIgVGhlIExvbmcgd2l0
aCB3aGljaCB0byBYT1IuCi0gICAqIEByZXR1cm4geyFnb29nLm1hdGguTG9uZ30gVGhlIGJpdHdp
c2UtWE9SIG9mIHRoaXMgYW5kIHRoZSBvdGhlci4KLSAgICovCi0gIGdvb2cubWF0aC5Mb25nLnBy
b3RvdHlwZS54b3IgPSBmdW5jdGlvbihvdGhlcikgewotICAgIHJldHVybiBnb29nLm1hdGguTG9u
Zy5mcm9tQml0cyh0aGlzLmxvd18gXiBvdGhlci5sb3dfLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aGlzLmhpZ2hfIF4gb3RoZXIuaGlnaF8pOwotICB9OwotICAvKioKLSAg
ICogUmV0dXJucyB0aGlzIExvbmcgd2l0aCBiaXRzIHNoaWZ0ZWQgdG8gdGhlIGxlZnQgYnkgdGhl
IGdpdmVuIGFtb3VudC4KLSAgICogQHBhcmFtIHtudW1iZXJ9IG51bUJpdHMgVGhlIG51bWJlciBv
ZiBiaXRzIGJ5IHdoaWNoIHRvIHNoaWZ0LgotICAgKiBAcmV0dXJuIHshZ29vZy5tYXRoLkxvbmd9
IFRoaXMgc2hpZnRlZCB0byB0aGUgbGVmdCBieSB0aGUgZ2l2ZW4gYW1vdW50LgotICAgKi8KLSAg
Z29vZy5tYXRoLkxvbmcucHJvdG90eXBlLnNoaWZ0TGVmdCA9IGZ1bmN0aW9uKG51bUJpdHMpIHsK
LSAgICBudW1CaXRzICY9IDYzOwotICAgIGlmIChudW1CaXRzID09IDApIHsKLSAgICAgIHJldHVy
biB0aGlzOwotICAgIH0gZWxzZSB7Ci0gICAgICB2YXIgbG93ID0gdGhpcy5sb3dfOwotICAgICAg
aWYgKG51bUJpdHMgPCAzMikgewotICAgICAgICB2YXIgaGlnaCA9IHRoaXMuaGlnaF87Ci0gICAg
ICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cygKLSAgICAgICAgICAgIGxvdyA8PCBu
dW1CaXRzLAotICAgICAgICAgICAgKGhpZ2ggPDwgbnVtQml0cykgfCAobG93ID4+PiAoMzIgLSBu
dW1CaXRzKSkpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25n
LmZyb21CaXRzKDAsIGxvdyA8PCAobnVtQml0cyAtIDMyKSk7Ci0gICAgICB9Ci0gICAgfQotICB9
OwotICAvKioKLSAgICogUmV0dXJucyB0aGlzIExvbmcgd2l0aCBiaXRzIHNoaWZ0ZWQgdG8gdGhl
IHJpZ2h0IGJ5IHRoZSBnaXZlbiBhbW91bnQuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBudW1CaXRz
IFRoZSBudW1iZXIgb2YgYml0cyBieSB3aGljaCB0byBzaGlmdC4KLSAgICogQHJldHVybiB7IWdv
b2cubWF0aC5Mb25nfSBUaGlzIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0IGJ5IHRoZSBnaXZlbiBhbW91
bnQuCi0gICAqLwotICBnb29nLm1hdGguTG9uZy5wcm90b3R5cGUuc2hpZnRSaWdodCA9IGZ1bmN0
aW9uKG51bUJpdHMpIHsKLSAgICBudW1CaXRzICY9IDYzOwotICAgIGlmIChudW1CaXRzID09IDAp
IHsKLSAgICAgIHJldHVybiB0aGlzOwotICAgIH0gZWxzZSB7Ci0gICAgICB2YXIgaGlnaCA9IHRo
aXMuaGlnaF87Ci0gICAgICBpZiAobnVtQml0cyA8IDMyKSB7Ci0gICAgICAgIHZhciBsb3cgPSB0
aGlzLmxvd187Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9tQml0cygKLSAgICAg
ICAgICAgIChsb3cgPj4+IG51bUJpdHMpIHwgKGhpZ2ggPDwgKDMyIC0gbnVtQml0cykpLAotICAg
ICAgICAgICAgaGlnaCA+PiBudW1CaXRzKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVy
biBnb29nLm1hdGguTG9uZy5mcm9tQml0cygKLSAgICAgICAgICAgIGhpZ2ggPj4gKG51bUJpdHMg
LSAzMiksCi0gICAgICAgICAgICBoaWdoID49IDAgPyAwIDogLTEpOwotICAgICAgfQotICAgIH0K
LSAgfTsKLSAgLyoqCi0gICAqIFJldHVybnMgdGhpcyBMb25nIHdpdGggYml0cyBzaGlmdGVkIHRv
IHRoZSByaWdodCBieSB0aGUgZ2l2ZW4gYW1vdW50LCB3aXRoCi0gICAqIHRoZSBuZXcgdG9wIGJp
dHMgbWF0Y2hpbmcgdGhlIGN1cnJlbnQgc2lnbiBiaXQuCi0gICAqIEBwYXJhbSB7bnVtYmVyfSBu
dW1CaXRzIFRoZSBudW1iZXIgb2YgYml0cyBieSB3aGljaCB0byBzaGlmdC4KLSAgICogQHJldHVy
biB7IWdvb2cubWF0aC5Mb25nfSBUaGlzIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0IGJ5IHRoZSBnaXZl
biBhbW91bnQsIHdpdGgKLSAgICogICAgIHplcm9zIHBsYWNlZCBpbnRvIHRoZSBuZXcgbGVhZGlu
ZyBiaXRzLgotICAgKi8KLSAgZ29vZy5tYXRoLkxvbmcucHJvdG90eXBlLnNoaWZ0UmlnaHRVbnNp
Z25lZCA9IGZ1bmN0aW9uKG51bUJpdHMpIHsKLSAgICBudW1CaXRzICY9IDYzOwotICAgIGlmIChu
dW1CaXRzID09IDApIHsKLSAgICAgIHJldHVybiB0aGlzOwotICAgIH0gZWxzZSB7Ci0gICAgICB2
YXIgaGlnaCA9IHRoaXMuaGlnaF87Ci0gICAgICBpZiAobnVtQml0cyA8IDMyKSB7Ci0gICAgICAg
IHZhciBsb3cgPSB0aGlzLmxvd187Ci0gICAgICAgIHJldHVybiBnb29nLm1hdGguTG9uZy5mcm9t
Qml0cygKLSAgICAgICAgICAgIChsb3cgPj4+IG51bUJpdHMpIHwgKGhpZ2ggPDwgKDMyIC0gbnVt
Qml0cykpLAotICAgICAgICAgICAgaGlnaCA+Pj4gbnVtQml0cyk7Ci0gICAgICB9IGVsc2UgaWYg
KG51bUJpdHMgPT0gMzIpIHsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25nLmZyb21CaXRz
KGhpZ2gsIDApOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIGdvb2cubWF0aC5Mb25n
LmZyb21CaXRzKGhpZ2ggPj4+IChudW1CaXRzIC0gMzIpLCAwKTsKLSAgICAgIH0KLSAgICB9Ci0g
IH07Ci0gIC8vPT09PT09PSBiZWdpbiBqc2JuID09PT09PT0KLSAgdmFyIG5hdmlnYXRvciA9IHsg
YXBwTmFtZTogJ01vZGVybiBCcm93c2VyJyB9OyAvLyBwb2x5ZmlsbCBhIGxpdHRsZQotICAvLyBD
b3B5cmlnaHQgKGMpIDIwMDUgIFRvbSBXdQotICAvLyBBbGwgUmlnaHRzIFJlc2VydmVkLgotICAv
LyBodHRwOi8vd3d3LWNzLXN0dWRlbnRzLnN0YW5mb3JkLmVkdS9+dGp3L2pzYm4vCi0gIC8qCi0g
ICAqIENvcHlyaWdodCAoYykgMjAwMy0yMDA1ICBUb20gV3UKLSAgICogQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLSAgICoKLSAgICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj
aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nCi0gICAqIGEgY29weSBvZiB0aGlzIHNvZnR3
YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotICAgKiAiU29mdHdh
cmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk
aW5nCi0gICAqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9k
aWZ5LCBtZXJnZSwgcHVibGlzaCwKLSAgICogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29y
IHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCi0gICAqIHBlcm1pdCBwZXJzb25z
IHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwot
ICAgKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gICAqCi0gICAqIFRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCi0gICAqIGlu
Y2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3
YXJlLgotICAgKgotICAgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTLUlTIiBBTkQgV0lU
SE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgCi0gICAqIEVYUFJFU1MsIElNUExJRUQgT1IgT1RI
RVJXSVNFLCBJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgCi0gICAqIFdBUlJBTlRZ
IE9GIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IAotICAgKgotICAgKiBJTiBOTyBFVkVOVCBTSEFMTCBUT00gV1UgQkUgTElBQkxFIEZPUiBBTlkg
U1BFQ0lBTCwgSU5DSURFTlRBTCwKLSAgICogSU5ESVJFQ1QgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIE9GIEFOWSBLSU5ELCBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSCi0gICAqIFJFU1VMVElO
RyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgT1IgTk9UIEFEVklT
RUQgT0YKLSAgICogVEhFIFBPU1NJQklMSVRZIE9GIERBTUFHRSwgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBBUklTSU5HIE9VVAotICAgKiBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg
VEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgotICAgKgotICAgKiBJbiBh
ZGRpdGlvbiwgdGhlIGZvbGxvd2luZyBjb25kaXRpb24gYXBwbGllczoKLSAgICoKLSAgICogQWxs
IHJlZGlzdHJpYnV0aW9ucyBtdXN0IHJldGFpbiBhbiBpbnRhY3QgY29weSBvZiB0aGlzIGNvcHly
aWdodCBub3RpY2UKLSAgICogYW5kIGRpc2NsYWltZXIuCi0gICAqLwotICAvLyBCYXNpYyBKYXZh
U2NyaXB0IEJOIGxpYnJhcnkgLSBzdWJzZXQgdXNlZnVsIGZvciBSU0EgZW5jcnlwdGlvbi4KLSAg
Ly8gQml0cyBwZXIgZGlnaXQKLSAgdmFyIGRiaXRzOwotICAvLyBKYXZhU2NyaXB0IGVuZ2luZSBh
bmFseXNpcwotICB2YXIgY2FuYXJ5ID0gMHhkZWFkYmVlZmNhZmU7Ci0gIHZhciBqX2xtID0gKChj
YW5hcnkmMHhmZmZmZmYpPT0weGVmY2FmZSk7Ci0gIC8vIChwdWJsaWMpIENvbnN0cnVjdG9yCi0g
IGZ1bmN0aW9uIEJpZ0ludGVnZXIoYSxiLGMpIHsKLSAgICBpZihhICE9IG51bGwpCi0gICAgICBp
ZigibnVtYmVyIiA9PSB0eXBlb2YgYSkgdGhpcy5mcm9tTnVtYmVyKGEsYixjKTsKLSAgICAgIGVs
c2UgaWYoYiA9PSBudWxsICYmICJzdHJpbmciICE9IHR5cGVvZiBhKSB0aGlzLmZyb21TdHJpbmco
YSwyNTYpOwotICAgICAgZWxzZSB0aGlzLmZyb21TdHJpbmcoYSxiKTsKLSAgfQotICAvLyByZXR1
cm4gbmV3LCB1bnNldCBCaWdJbnRlZ2VyCi0gIGZ1bmN0aW9uIG5iaSgpIHsgcmV0dXJuIG5ldyBC
aWdJbnRlZ2VyKG51bGwpOyB9Ci0gIC8vIGFtOiBDb21wdXRlIHdfaiArPSAoeCp0aGlzX2kpLCBw
cm9wYWdhdGUgY2FycmllcywKLSAgLy8gYyBpcyBpbml0aWFsIGNhcnJ5LCByZXR1cm5zIGZpbmFs
IGNhcnJ5LgotICAvLyBjIDwgMypkdmFsdWUsIHggPCAyKmR2YWx1ZSwgdGhpc19pIDwgZHZhbHVl
Ci0gIC8vIFdlIG5lZWQgdG8gc2VsZWN0IHRoZSBmYXN0ZXN0IG9uZSB0aGF0IHdvcmtzIGluIHRo
aXMgZW52aXJvbm1lbnQuCi0gIC8vIGFtMTogdXNlIGEgc2luZ2xlIG11bHQgYW5kIGRpdmlkZSB0
byBnZXQgdGhlIGhpZ2ggYml0cywKLSAgLy8gbWF4IGRpZ2l0IGJpdHMgc2hvdWxkIGJlIDI2IGJl
Y2F1c2UKLSAgLy8gbWF4IGludGVybmFsIHZhbHVlID0gMipkdmFsdWVeMi0yKmR2YWx1ZSAoPCAy
XjUzKQotICBmdW5jdGlvbiBhbTEoaSx4LHcsaixjLG4pIHsKLSAgICB3aGlsZSgtLW4gPj0gMCkg
ewotICAgICAgdmFyIHYgPSB4KnRoaXNbaSsrXSt3W2pdK2M7Ci0gICAgICBjID0gTWF0aC5mbG9v
cih2LzB4NDAwMDAwMCk7Ci0gICAgICB3W2orK10gPSB2JjB4M2ZmZmZmZjsKLSAgICB9Ci0gICAg
cmV0dXJuIGM7Ci0gIH0KLSAgLy8gYW0yIGF2b2lkcyBhIGJpZyBtdWx0LWFuZC1leHRyYWN0IGNv
bXBsZXRlbHkuCi0gIC8vIE1heCBkaWdpdCBiaXRzIHNob3VsZCBiZSA8PSAzMCBiZWNhdXNlIHdl
IGRvIGJpdHdpc2Ugb3BzCi0gIC8vIG9uIHZhbHVlcyB1cCB0byAyKmhkdmFsdWVeMi1oZHZhbHVl
LTEgKDwgMl4zMSkKLSAgZnVuY3Rpb24gYW0yKGkseCx3LGosYyxuKSB7Ci0gICAgdmFyIHhsID0g
eCYweDdmZmYsIHhoID0geD4+MTU7Ci0gICAgd2hpbGUoLS1uID49IDApIHsKLSAgICAgIHZhciBs
ID0gdGhpc1tpXSYweDdmZmY7Ci0gICAgICB2YXIgaCA9IHRoaXNbaSsrXT4+MTU7Ci0gICAgICB2
YXIgbSA9IHhoKmwraCp4bDsKLSAgICAgIGwgPSB4bCpsKygobSYweDdmZmYpPDwxNSkrd1tqXSso
YyYweDNmZmZmZmZmKTsKLSAgICAgIGMgPSAobD4+PjMwKSsobT4+PjE1KSt4aCpoKyhjPj4+MzAp
OwotICAgICAgd1tqKytdID0gbCYweDNmZmZmZmZmOwotICAgIH0KLSAgICByZXR1cm4gYzsKLSAg
fQotICAvLyBBbHRlcm5hdGVseSwgc2V0IG1heCBkaWdpdCBiaXRzIHRvIDI4IHNpbmNlIHNvbWUK
LSAgLy8gYnJvd3NlcnMgc2xvdyBkb3duIHdoZW4gZGVhbGluZyB3aXRoIDMyLWJpdCBudW1iZXJz
LgotICBmdW5jdGlvbiBhbTMoaSx4LHcsaixjLG4pIHsKLSAgICB2YXIgeGwgPSB4JjB4M2ZmZiwg
eGggPSB4Pj4xNDsKLSAgICB3aGlsZSgtLW4gPj0gMCkgewotICAgICAgdmFyIGwgPSB0aGlzW2ld
JjB4M2ZmZjsKLSAgICAgIHZhciBoID0gdGhpc1tpKytdPj4xNDsKLSAgICAgIHZhciBtID0geGgq
bCtoKnhsOwotICAgICAgbCA9IHhsKmwrKChtJjB4M2ZmZik8PDE0KSt3W2pdK2M7Ci0gICAgICBj
ID0gKGw+PjI4KSsobT4+MTQpK3hoKmg7Ci0gICAgICB3W2orK10gPSBsJjB4ZmZmZmZmZjsKLSAg
ICB9Ci0gICAgcmV0dXJuIGM7Ci0gIH0KLSAgaWYoal9sbSAmJiAobmF2aWdhdG9yLmFwcE5hbWUg
PT0gIk1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciIpKSB7Ci0gICAgQmlnSW50ZWdlci5wcm90
b3R5cGUuYW0gPSBhbTI7Ci0gICAgZGJpdHMgPSAzMDsKLSAgfQotICBlbHNlIGlmKGpfbG0gJiYg
KG5hdmlnYXRvci5hcHBOYW1lICE9ICJOZXRzY2FwZSIpKSB7Ci0gICAgQmlnSW50ZWdlci5wcm90
b3R5cGUuYW0gPSBhbTE7Ci0gICAgZGJpdHMgPSAyNjsKLSAgfQotICBlbHNlIHsgLy8gTW96aWxs
YS9OZXRzY2FwZSBzZWVtcyB0byBwcmVmZXIgYW0zCi0gICAgQmlnSW50ZWdlci5wcm90b3R5cGUu
YW0gPSBhbTM7Ci0gICAgZGJpdHMgPSAyODsKLSAgfQotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5E
QiA9IGRiaXRzOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5ETSA9ICgoMTw8ZGJpdHMpLTEpOwot
ICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5EViA9ICgxPDxkYml0cyk7Ci0gIHZhciBCSV9GUCA9IDUy
OwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5GViA9IE1hdGgucG93KDIsQklfRlApOwotICBCaWdJ
bnRlZ2VyLnByb3RvdHlwZS5GMSA9IEJJX0ZQLWRiaXRzOwotICBCaWdJbnRlZ2VyLnByb3RvdHlw
ZS5GMiA9IDIqZGJpdHMtQklfRlA7Ci0gIC8vIERpZ2l0IGNvbnZlcnNpb25zCi0gIHZhciBCSV9S
TSA9ICIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiOwotICB2YXIgQklfUkMg
PSBuZXcgQXJyYXkoKTsKLSAgdmFyIHJyLHZ2OwotICByciA9ICIwIi5jaGFyQ29kZUF0KDApOwot
ICBmb3IodnYgPSAwOyB2diA8PSA5OyArK3Z2KSBCSV9SQ1tycisrXSA9IHZ2OwotICByciA9ICJh
Ii5jaGFyQ29kZUF0KDApOwotICBmb3IodnYgPSAxMDsgdnYgPCAzNjsgKyt2dikgQklfUkNbcnIr
K10gPSB2djsKLSAgcnIgPSAiQSIuY2hhckNvZGVBdCgwKTsKLSAgZm9yKHZ2ID0gMTA7IHZ2IDwg
MzY7ICsrdnYpIEJJX1JDW3JyKytdID0gdnY7Ci0gIGZ1bmN0aW9uIGludDJjaGFyKG4pIHsgcmV0
dXJuIEJJX1JNLmNoYXJBdChuKTsgfQotICBmdW5jdGlvbiBpbnRBdChzLGkpIHsKLSAgICB2YXIg
YyA9IEJJX1JDW3MuY2hhckNvZGVBdChpKV07Ci0gICAgcmV0dXJuIChjPT1udWxsKT8tMTpjOwot
ICB9Ci0gIC8vIChwcm90ZWN0ZWQpIGNvcHkgdGhpcyB0byByCi0gIGZ1bmN0aW9uIGJucENvcHlU
byhyKSB7Ci0gICAgZm9yKHZhciBpID0gdGhpcy50LTE7IGkgPj0gMDsgLS1pKSByW2ldID0gdGhp
c1tpXTsKLSAgICByLnQgPSB0aGlzLnQ7Ci0gICAgci5zID0gdGhpcy5zOwotICB9Ci0gIC8vIChw
cm90ZWN0ZWQpIHNldCBmcm9tIGludGVnZXIgdmFsdWUgeCwgLURWIDw9IHggPCBEVgotICBmdW5j
dGlvbiBibnBGcm9tSW50KHgpIHsKLSAgICB0aGlzLnQgPSAxOwotICAgIHRoaXMucyA9ICh4PDAp
Py0xOjA7Ci0gICAgaWYoeCA+IDApIHRoaXNbMF0gPSB4OwotICAgIGVsc2UgaWYoeCA8IC0xKSB0
aGlzWzBdID0geCtEVjsKLSAgICBlbHNlIHRoaXMudCA9IDA7Ci0gIH0KLSAgLy8gcmV0dXJuIGJp
Z2ludCBpbml0aWFsaXplZCB0byB2YWx1ZQotICBmdW5jdGlvbiBuYnYoaSkgeyB2YXIgciA9IG5i
aSgpOyByLmZyb21JbnQoaSk7IHJldHVybiByOyB9Ci0gIC8vIChwcm90ZWN0ZWQpIHNldCBmcm9t
IHN0cmluZyBhbmQgcmFkaXgKLSAgZnVuY3Rpb24gYm5wRnJvbVN0cmluZyhzLGIpIHsKLSAgICB2
YXIgazsKLSAgICBpZihiID09IDE2KSBrID0gNDsKLSAgICBlbHNlIGlmKGIgPT0gOCkgayA9IDM7
Ci0gICAgZWxzZSBpZihiID09IDI1NikgayA9IDg7IC8vIGJ5dGUgYXJyYXkKLSAgICBlbHNlIGlm
KGIgPT0gMikgayA9IDE7Ci0gICAgZWxzZSBpZihiID09IDMyKSBrID0gNTsKLSAgICBlbHNlIGlm
KGIgPT0gNCkgayA9IDI7Ci0gICAgZWxzZSB7IHRoaXMuZnJvbVJhZGl4KHMsYik7IHJldHVybjsg
fQotICAgIHRoaXMudCA9IDA7Ci0gICAgdGhpcy5zID0gMDsKLSAgICB2YXIgaSA9IHMubGVuZ3Ro
LCBtaSA9IGZhbHNlLCBzaCA9IDA7Ci0gICAgd2hpbGUoLS1pID49IDApIHsKLSAgICAgIHZhciB4
ID0gKGs9PTgpP3NbaV0mMHhmZjppbnRBdChzLGkpOwotICAgICAgaWYoeCA8IDApIHsKLSAgICAg
ICAgaWYocy5jaGFyQXQoaSkgPT0gIi0iKSBtaSA9IHRydWU7Ci0gICAgICAgIGNvbnRpbnVlOwot
ICAgICAgfQotICAgICAgbWkgPSBmYWxzZTsKLSAgICAgIGlmKHNoID09IDApCi0gICAgICAgIHRo
aXNbdGhpcy50KytdID0geDsKLSAgICAgIGVsc2UgaWYoc2grayA+IHRoaXMuREIpIHsKLSAgICAg
ICAgdGhpc1t0aGlzLnQtMV0gfD0gKHgmKCgxPDwodGhpcy5EQi1zaCkpLTEpKTw8c2g7Ci0gICAg
ICAgIHRoaXNbdGhpcy50KytdID0gKHg+Pih0aGlzLkRCLXNoKSk7Ci0gICAgICB9Ci0gICAgICBl
bHNlCi0gICAgICAgIHRoaXNbdGhpcy50LTFdIHw9IHg8PHNoOwotICAgICAgc2ggKz0gazsKLSAg
ICAgIGlmKHNoID49IHRoaXMuREIpIHNoIC09IHRoaXMuREI7Ci0gICAgfQotICAgIGlmKGsgPT0g
OCAmJiAoc1swXSYweDgwKSAhPSAwKSB7Ci0gICAgICB0aGlzLnMgPSAtMTsKLSAgICAgIGlmKHNo
ID4gMCkgdGhpc1t0aGlzLnQtMV0gfD0gKCgxPDwodGhpcy5EQi1zaCkpLTEpPDxzaDsKLSAgICB9
Ci0gICAgdGhpcy5jbGFtcCgpOwotICAgIGlmKG1pKSBCaWdJbnRlZ2VyLlpFUk8uc3ViVG8odGhp
cyx0aGlzKTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSBjbGFtcCBvZmYgZXhjZXNzIGhpZ2ggd29y
ZHMKLSAgZnVuY3Rpb24gYm5wQ2xhbXAoKSB7Ci0gICAgdmFyIGMgPSB0aGlzLnMmdGhpcy5ETTsK
LSAgICB3aGlsZSh0aGlzLnQgPiAwICYmIHRoaXNbdGhpcy50LTFdID09IGMpIC0tdGhpcy50Owot
ICB9Ci0gIC8vIChwdWJsaWMpIHJldHVybiBzdHJpbmcgcmVwcmVzZW50YXRpb24gaW4gZ2l2ZW4g
cmFkaXgKLSAgZnVuY3Rpb24gYm5Ub1N0cmluZyhiKSB7Ci0gICAgaWYodGhpcy5zIDwgMCkgcmV0
dXJuICItIit0aGlzLm5lZ2F0ZSgpLnRvU3RyaW5nKGIpOwotICAgIHZhciBrOwotICAgIGlmKGIg
PT0gMTYpIGsgPSA0OwotICAgIGVsc2UgaWYoYiA9PSA4KSBrID0gMzsKLSAgICBlbHNlIGlmKGIg
PT0gMikgayA9IDE7Ci0gICAgZWxzZSBpZihiID09IDMyKSBrID0gNTsKLSAgICBlbHNlIGlmKGIg
PT0gNCkgayA9IDI7Ci0gICAgZWxzZSByZXR1cm4gdGhpcy50b1JhZGl4KGIpOwotICAgIHZhciBr
bSA9ICgxPDxrKS0xLCBkLCBtID0gZmFsc2UsIHIgPSAiIiwgaSA9IHRoaXMudDsKLSAgICB2YXIg
cCA9IHRoaXMuREItKGkqdGhpcy5EQiklazsKLSAgICBpZihpLS0gPiAwKSB7Ci0gICAgICBpZihw
IDwgdGhpcy5EQiAmJiAoZCA9IHRoaXNbaV0+PnApID4gMCkgeyBtID0gdHJ1ZTsgciA9IGludDJj
aGFyKGQpOyB9Ci0gICAgICB3aGlsZShpID49IDApIHsKLSAgICAgICAgaWYocCA8IGspIHsKLSAg
ICAgICAgICBkID0gKHRoaXNbaV0mKCgxPDxwKS0xKSk8PChrLXApOwotICAgICAgICAgIGQgfD0g
dGhpc1stLWldPj4ocCs9dGhpcy5EQi1rKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAg
ICAgICAgICBkID0gKHRoaXNbaV0+PihwLT1rKSkma207Ci0gICAgICAgICAgaWYocCA8PSAwKSB7
IHAgKz0gdGhpcy5EQjsgLS1pOyB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYoZCA+IDApIG0gPSB0
cnVlOwotICAgICAgICBpZihtKSByICs9IGludDJjaGFyKGQpOwotICAgICAgfQotICAgIH0KLSAg
ICByZXR1cm4gbT9yOiIwIjsKLSAgfQotICAvLyAocHVibGljKSAtdGhpcwotICBmdW5jdGlvbiBi
bk5lZ2F0ZSgpIHsgdmFyIHIgPSBuYmkoKTsgQmlnSW50ZWdlci5aRVJPLnN1YlRvKHRoaXMscik7
IHJldHVybiByOyB9Ci0gIC8vIChwdWJsaWMpIHx0aGlzfAotICBmdW5jdGlvbiBibkFicygpIHsg
cmV0dXJuICh0aGlzLnM8MCk/dGhpcy5uZWdhdGUoKTp0aGlzOyB9Ci0gIC8vIChwdWJsaWMpIHJl
dHVybiArIGlmIHRoaXMgPiBhLCAtIGlmIHRoaXMgPCBhLCAwIGlmIGVxdWFsCi0gIGZ1bmN0aW9u
IGJuQ29tcGFyZVRvKGEpIHsKLSAgICB2YXIgciA9IHRoaXMucy1hLnM7Ci0gICAgaWYociAhPSAw
KSByZXR1cm4gcjsKLSAgICB2YXIgaSA9IHRoaXMudDsKLSAgICByID0gaS1hLnQ7Ci0gICAgaWYo
ciAhPSAwKSByZXR1cm4gKHRoaXMuczwwKT8tcjpyOwotICAgIHdoaWxlKC0taSA+PSAwKSBpZigo
cj10aGlzW2ldLWFbaV0pICE9IDApIHJldHVybiByOwotICAgIHJldHVybiAwOwotICB9Ci0gIC8v
IHJldHVybnMgYml0IGxlbmd0aCBvZiB0aGUgaW50ZWdlciB4Ci0gIGZ1bmN0aW9uIG5iaXRzKHgp
IHsKLSAgICB2YXIgciA9IDEsIHQ7Ci0gICAgaWYoKHQ9eD4+PjE2KSAhPSAwKSB7IHggPSB0OyBy
ICs9IDE2OyB9Ci0gICAgaWYoKHQ9eD4+OCkgIT0gMCkgeyB4ID0gdDsgciArPSA4OyB9Ci0gICAg
aWYoKHQ9eD4+NCkgIT0gMCkgeyB4ID0gdDsgciArPSA0OyB9Ci0gICAgaWYoKHQ9eD4+MikgIT0g
MCkgeyB4ID0gdDsgciArPSAyOyB9Ci0gICAgaWYoKHQ9eD4+MSkgIT0gMCkgeyB4ID0gdDsgciAr
PSAxOyB9Ci0gICAgcmV0dXJuIHI7Ci0gIH0KLSAgLy8gKHB1YmxpYykgcmV0dXJuIHRoZSBudW1i
ZXIgb2YgYml0cyBpbiAidGhpcyIKLSAgZnVuY3Rpb24gYm5CaXRMZW5ndGgoKSB7Ci0gICAgaWYo
dGhpcy50IDw9IDApIHJldHVybiAwOwotICAgIHJldHVybiB0aGlzLkRCKih0aGlzLnQtMSkrbmJp
dHModGhpc1t0aGlzLnQtMV1eKHRoaXMucyZ0aGlzLkRNKSk7Ci0gIH0KLSAgLy8gKHByb3RlY3Rl
ZCkgciA9IHRoaXMgPDwgbipEQgotICBmdW5jdGlvbiBibnBETFNoaWZ0VG8obixyKSB7Ci0gICAg
dmFyIGk7Ci0gICAgZm9yKGkgPSB0aGlzLnQtMTsgaSA+PSAwOyAtLWkpIHJbaStuXSA9IHRoaXNb
aV07Ci0gICAgZm9yKGkgPSBuLTE7IGkgPj0gMDsgLS1pKSByW2ldID0gMDsKLSAgICByLnQgPSB0
aGlzLnQrbjsKLSAgICByLnMgPSB0aGlzLnM7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgciA9IHRo
aXMgPj4gbipEQgotICBmdW5jdGlvbiBibnBEUlNoaWZ0VG8obixyKSB7Ci0gICAgZm9yKHZhciBp
ID0gbjsgaSA8IHRoaXMudDsgKytpKSByW2ktbl0gPSB0aGlzW2ldOwotICAgIHIudCA9IE1hdGgu
bWF4KHRoaXMudC1uLDApOwotICAgIHIucyA9IHRoaXMuczsKLSAgfQotICAvLyAocHJvdGVjdGVk
KSByID0gdGhpcyA8PCBuCi0gIGZ1bmN0aW9uIGJucExTaGlmdFRvKG4scikgewotICAgIHZhciBi
cyA9IG4ldGhpcy5EQjsKLSAgICB2YXIgY2JzID0gdGhpcy5EQi1iczsKLSAgICB2YXIgYm0gPSAo
MTw8Y2JzKS0xOwotICAgIHZhciBkcyA9IE1hdGguZmxvb3Iobi90aGlzLkRCKSwgYyA9ICh0aGlz
LnM8PGJzKSZ0aGlzLkRNLCBpOwotICAgIGZvcihpID0gdGhpcy50LTE7IGkgPj0gMDsgLS1pKSB7
Ci0gICAgICByW2krZHMrMV0gPSAodGhpc1tpXT4+Y2JzKXxjOwotICAgICAgYyA9ICh0aGlzW2ld
JmJtKTw8YnM7Ci0gICAgfQotICAgIGZvcihpID0gZHMtMTsgaSA+PSAwOyAtLWkpIHJbaV0gPSAw
OwotICAgIHJbZHNdID0gYzsKLSAgICByLnQgPSB0aGlzLnQrZHMrMTsKLSAgICByLnMgPSB0aGlz
LnM7Ci0gICAgci5jbGFtcCgpOwotICB9Ci0gIC8vIChwcm90ZWN0ZWQpIHIgPSB0aGlzID4+IG4K
LSAgZnVuY3Rpb24gYm5wUlNoaWZ0VG8obixyKSB7Ci0gICAgci5zID0gdGhpcy5zOwotICAgIHZh
ciBkcyA9IE1hdGguZmxvb3Iobi90aGlzLkRCKTsKLSAgICBpZihkcyA+PSB0aGlzLnQpIHsgci50
ID0gMDsgcmV0dXJuOyB9Ci0gICAgdmFyIGJzID0gbiV0aGlzLkRCOwotICAgIHZhciBjYnMgPSB0
aGlzLkRCLWJzOwotICAgIHZhciBibSA9ICgxPDxicyktMTsKLSAgICByWzBdID0gdGhpc1tkc10+
PmJzOwotICAgIGZvcih2YXIgaSA9IGRzKzE7IGkgPCB0aGlzLnQ7ICsraSkgewotICAgICAgcltp
LWRzLTFdIHw9ICh0aGlzW2ldJmJtKTw8Y2JzOwotICAgICAgcltpLWRzXSA9IHRoaXNbaV0+PmJz
OwotICAgIH0KLSAgICBpZihicyA+IDApIHJbdGhpcy50LWRzLTFdIHw9ICh0aGlzLnMmYm0pPDxj
YnM7Ci0gICAgci50ID0gdGhpcy50LWRzOwotICAgIHIuY2xhbXAoKTsKLSAgfQotICAvLyAocHJv
dGVjdGVkKSByID0gdGhpcyAtIGEKLSAgZnVuY3Rpb24gYm5wU3ViVG8oYSxyKSB7Ci0gICAgdmFy
IGkgPSAwLCBjID0gMCwgbSA9IE1hdGgubWluKGEudCx0aGlzLnQpOwotICAgIHdoaWxlKGkgPCBt
KSB7Ci0gICAgICBjICs9IHRoaXNbaV0tYVtpXTsKLSAgICAgIHJbaSsrXSA9IGMmdGhpcy5ETTsK
LSAgICAgIGMgPj49IHRoaXMuREI7Ci0gICAgfQotICAgIGlmKGEudCA8IHRoaXMudCkgewotICAg
ICAgYyAtPSBhLnM7Ci0gICAgICB3aGlsZShpIDwgdGhpcy50KSB7Ci0gICAgICAgIGMgKz0gdGhp
c1tpXTsKLSAgICAgICAgcltpKytdID0gYyZ0aGlzLkRNOwotICAgICAgICBjID4+PSB0aGlzLkRC
OwotICAgICAgfQotICAgICAgYyArPSB0aGlzLnM7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAg
YyArPSB0aGlzLnM7Ci0gICAgICB3aGlsZShpIDwgYS50KSB7Ci0gICAgICAgIGMgLT0gYVtpXTsK
LSAgICAgICAgcltpKytdID0gYyZ0aGlzLkRNOwotICAgICAgICBjID4+PSB0aGlzLkRCOwotICAg
ICAgfQotICAgICAgYyAtPSBhLnM7Ci0gICAgfQotICAgIHIucyA9IChjPDApPy0xOjA7Ci0gICAg
aWYoYyA8IC0xKSByW2krK10gPSB0aGlzLkRWK2M7Ci0gICAgZWxzZSBpZihjID4gMCkgcltpKytd
ID0gYzsKLSAgICByLnQgPSBpOwotICAgIHIuY2xhbXAoKTsKLSAgfQotICAvLyAocHJvdGVjdGVk
KSByID0gdGhpcyAqIGEsIHIgIT0gdGhpcyxhIChIQUMgMTQuMTIpCi0gIC8vICJ0aGlzIiBzaG91
bGQgYmUgdGhlIGxhcmdlciBvbmUgaWYgYXBwcm9wcmlhdGUuCi0gIGZ1bmN0aW9uIGJucE11bHRp
cGx5VG8oYSxyKSB7Ci0gICAgdmFyIHggPSB0aGlzLmFicygpLCB5ID0gYS5hYnMoKTsKLSAgICB2
YXIgaSA9IHgudDsKLSAgICByLnQgPSBpK3kudDsKLSAgICB3aGlsZSgtLWkgPj0gMCkgcltpXSA9
IDA7Ci0gICAgZm9yKGkgPSAwOyBpIDwgeS50OyArK2kpIHJbaSt4LnRdID0geC5hbSgwLHlbaV0s
cixpLDAseC50KTsKLSAgICByLnMgPSAwOwotICAgIHIuY2xhbXAoKTsKLSAgICBpZih0aGlzLnMg
IT0gYS5zKSBCaWdJbnRlZ2VyLlpFUk8uc3ViVG8ocixyKTsKLSAgfQotICAvLyAocHJvdGVjdGVk
KSByID0gdGhpc14yLCByICE9IHRoaXMgKEhBQyAxNC4xNikKLSAgZnVuY3Rpb24gYm5wU3F1YXJl
VG8ocikgewotICAgIHZhciB4ID0gdGhpcy5hYnMoKTsKLSAgICB2YXIgaSA9IHIudCA9IDIqeC50
OwotICAgIHdoaWxlKC0taSA+PSAwKSByW2ldID0gMDsKLSAgICBmb3IoaSA9IDA7IGkgPCB4LnQt
MTsgKytpKSB7Ci0gICAgICB2YXIgYyA9IHguYW0oaSx4W2ldLHIsMippLDAsMSk7Ci0gICAgICBp
ZigocltpK3gudF0rPXguYW0oaSsxLDIqeFtpXSxyLDIqaSsxLGMseC50LWktMSkpID49IHguRFYp
IHsKLSAgICAgICAgcltpK3gudF0gLT0geC5EVjsKLSAgICAgICAgcltpK3gudCsxXSA9IDE7Ci0g
ICAgICB9Ci0gICAgfQotICAgIGlmKHIudCA+IDApIHJbci50LTFdICs9IHguYW0oaSx4W2ldLHIs
MippLDAsMSk7Ci0gICAgci5zID0gMDsKLSAgICByLmNsYW1wKCk7Ci0gIH0KLSAgLy8gKHByb3Rl
Y3RlZCkgZGl2aWRlIHRoaXMgYnkgbSwgcXVvdGllbnQgYW5kIHJlbWFpbmRlciB0byBxLCByIChI
QUMgMTQuMjApCi0gIC8vIHIgIT0gcSwgdGhpcyAhPSBtLiAgcSBvciByIG1heSBiZSBudWxsLgot
ICBmdW5jdGlvbiBibnBEaXZSZW1UbyhtLHEscikgewotICAgIHZhciBwbSA9IG0uYWJzKCk7Ci0g
ICAgaWYocG0udCA8PSAwKSByZXR1cm47Ci0gICAgdmFyIHB0ID0gdGhpcy5hYnMoKTsKLSAgICBp
ZihwdC50IDwgcG0udCkgewotICAgICAgaWYocSAhPSBudWxsKSBxLmZyb21JbnQoMCk7Ci0gICAg
ICBpZihyICE9IG51bGwpIHRoaXMuY29weVRvKHIpOwotICAgICAgcmV0dXJuOwotICAgIH0KLSAg
ICBpZihyID09IG51bGwpIHIgPSBuYmkoKTsKLSAgICB2YXIgeSA9IG5iaSgpLCB0cyA9IHRoaXMu
cywgbXMgPSBtLnM7Ci0gICAgdmFyIG5zaCA9IHRoaXMuREItbmJpdHMocG1bcG0udC0xXSk7CS8v
IG5vcm1hbGl6ZSBtb2R1bHVzCi0gICAgaWYobnNoID4gMCkgeyBwbS5sU2hpZnRUbyhuc2gseSk7
IHB0LmxTaGlmdFRvKG5zaCxyKTsgfQotICAgIGVsc2UgeyBwbS5jb3B5VG8oeSk7IHB0LmNvcHlU
byhyKTsgfQotICAgIHZhciB5cyA9IHkudDsKLSAgICB2YXIgeTAgPSB5W3lzLTFdOwotICAgIGlm
KHkwID09IDApIHJldHVybjsKLSAgICB2YXIgeXQgPSB5MCooMTw8dGhpcy5GMSkrKCh5cz4xKT95
W3lzLTJdPj50aGlzLkYyOjApOwotICAgIHZhciBkMSA9IHRoaXMuRlYveXQsIGQyID0gKDE8PHRo
aXMuRjEpL3l0LCBlID0gMTw8dGhpcy5GMjsKLSAgICB2YXIgaSA9IHIudCwgaiA9IGkteXMsIHQg
PSAocT09bnVsbCk/bmJpKCk6cTsKLSAgICB5LmRsU2hpZnRUbyhqLHQpOwotICAgIGlmKHIuY29t
cGFyZVRvKHQpID49IDApIHsKLSAgICAgIHJbci50KytdID0gMTsKLSAgICAgIHIuc3ViVG8odCxy
KTsKLSAgICB9Ci0gICAgQmlnSW50ZWdlci5PTkUuZGxTaGlmdFRvKHlzLHQpOwotICAgIHQuc3Vi
VG8oeSx5KTsJLy8gIm5lZ2F0aXZlIiB5IHNvIHdlIGNhbiByZXBsYWNlIHN1YiB3aXRoIGFtIGxh
dGVyCi0gICAgd2hpbGUoeS50IDwgeXMpIHlbeS50KytdID0gMDsKLSAgICB3aGlsZSgtLWogPj0g
MCkgewotICAgICAgLy8gRXN0aW1hdGUgcXVvdGllbnQgZGlnaXQKLSAgICAgIHZhciBxZCA9IChy
Wy0taV09PXkwKT90aGlzLkRNOk1hdGguZmxvb3IocltpXSpkMSsocltpLTFdK2UpKmQyKTsKLSAg
ICAgIGlmKChyW2ldKz15LmFtKDAscWQscixqLDAseXMpKSA8IHFkKSB7CS8vIFRyeSBpdCBvdXQK
LSAgICAgICAgeS5kbFNoaWZ0VG8oaix0KTsKLSAgICAgICAgci5zdWJUbyh0LHIpOwotICAgICAg
ICB3aGlsZShyW2ldIDwgLS1xZCkgci5zdWJUbyh0LHIpOwotICAgICAgfQotICAgIH0KLSAgICBp
ZihxICE9IG51bGwpIHsKLSAgICAgIHIuZHJTaGlmdFRvKHlzLHEpOwotICAgICAgaWYodHMgIT0g
bXMpIEJpZ0ludGVnZXIuWkVSTy5zdWJUbyhxLHEpOwotICAgIH0KLSAgICByLnQgPSB5czsKLSAg
ICByLmNsYW1wKCk7Ci0gICAgaWYobnNoID4gMCkgci5yU2hpZnRUbyhuc2gscik7CS8vIERlbm9y
bWFsaXplIHJlbWFpbmRlcgotICAgIGlmKHRzIDwgMCkgQmlnSW50ZWdlci5aRVJPLnN1YlRvKHIs
cik7Ci0gIH0KLSAgLy8gKHB1YmxpYykgdGhpcyBtb2QgYQotICBmdW5jdGlvbiBibk1vZChhKSB7
Ci0gICAgdmFyIHIgPSBuYmkoKTsKLSAgICB0aGlzLmFicygpLmRpdlJlbVRvKGEsbnVsbCxyKTsK
LSAgICBpZih0aGlzLnMgPCAwICYmIHIuY29tcGFyZVRvKEJpZ0ludGVnZXIuWkVSTykgPiAwKSBh
LnN1YlRvKHIscik7Ci0gICAgcmV0dXJuIHI7Ci0gIH0KLSAgLy8gTW9kdWxhciByZWR1Y3Rpb24g
dXNpbmcgImNsYXNzaWMiIGFsZ29yaXRobQotICBmdW5jdGlvbiBDbGFzc2ljKG0pIHsgdGhpcy5t
ID0gbTsgfQotICBmdW5jdGlvbiBjQ29udmVydCh4KSB7Ci0gICAgaWYoeC5zIDwgMCB8fCB4LmNv
bXBhcmVUbyh0aGlzLm0pID49IDApIHJldHVybiB4Lm1vZCh0aGlzLm0pOwotICAgIGVsc2UgcmV0
dXJuIHg7Ci0gIH0KLSAgZnVuY3Rpb24gY1JldmVydCh4KSB7IHJldHVybiB4OyB9Ci0gIGZ1bmN0
aW9uIGNSZWR1Y2UoeCkgeyB4LmRpdlJlbVRvKHRoaXMubSxudWxsLHgpOyB9Ci0gIGZ1bmN0aW9u
IGNNdWxUbyh4LHkscikgeyB4Lm11bHRpcGx5VG8oeSxyKTsgdGhpcy5yZWR1Y2Uocik7IH0KLSAg
ZnVuY3Rpb24gY1NxclRvKHgscikgeyB4LnNxdWFyZVRvKHIpOyB0aGlzLnJlZHVjZShyKTsgfQot
ICBDbGFzc2ljLnByb3RvdHlwZS5jb252ZXJ0ID0gY0NvbnZlcnQ7Ci0gIENsYXNzaWMucHJvdG90
eXBlLnJldmVydCA9IGNSZXZlcnQ7Ci0gIENsYXNzaWMucHJvdG90eXBlLnJlZHVjZSA9IGNSZWR1
Y2U7Ci0gIENsYXNzaWMucHJvdG90eXBlLm11bFRvID0gY011bFRvOwotICBDbGFzc2ljLnByb3Rv
dHlwZS5zcXJUbyA9IGNTcXJUbzsKLSAgLy8gKHByb3RlY3RlZCkgcmV0dXJuICItMS90aGlzICUg
Ml5EQiI7IHVzZWZ1bCBmb3IgTW9udC4gcmVkdWN0aW9uCi0gIC8vIGp1c3RpZmljYXRpb246Ci0g
IC8vICAgICAgICAgeHkgPT0gMSAobW9kIG0pCi0gIC8vICAgICAgICAgeHkgPSAgMStrbQotICAv
LyAgIHh5KDIteHkpID0gKDEra20pKDEta20pCi0gIC8vIHhbeSgyLXh5KV0gPSAxLWteMm1eMgot
ICAvLyB4W3koMi14eSldID09IDEgKG1vZCBtXjIpCi0gIC8vIGlmIHkgaXMgMS94IG1vZCBtLCB0
aGVuIHkoMi14eSkgaXMgMS94IG1vZCBtXjIKLSAgLy8gc2hvdWxkIHJlZHVjZSB4IGFuZCB5KDIt
eHkpIGJ5IG1eMiBhdCBlYWNoIHN0ZXAgdG8ga2VlcCBzaXplIGJvdW5kZWQuCi0gIC8vIEpTIG11
bHRpcGx5ICJvdmVyZmxvd3MiIGRpZmZlcmVudGx5IGZyb20gQy9DKyssIHNvIGNhcmUgaXMgbmVl
ZGVkIGhlcmUuCi0gIGZ1bmN0aW9uIGJucEludkRpZ2l0KCkgewotICAgIGlmKHRoaXMudCA8IDEp
IHJldHVybiAwOwotICAgIHZhciB4ID0gdGhpc1swXTsKLSAgICBpZigoeCYxKSA9PSAwKSByZXR1
cm4gMDsKLSAgICB2YXIgeSA9IHgmMzsJCS8vIHkgPT0gMS94IG1vZCAyXjIKLSAgICB5ID0gKHkq
KDItKHgmMHhmKSp5KSkmMHhmOwkvLyB5ID09IDEveCBtb2QgMl40Ci0gICAgeSA9ICh5KigyLSh4
JjB4ZmYpKnkpKSYweGZmOwkvLyB5ID09IDEveCBtb2QgMl44Ci0gICAgeSA9ICh5KigyLSgoKHgm
MHhmZmZmKSp5KSYweGZmZmYpKSkmMHhmZmZmOwkvLyB5ID09IDEveCBtb2QgMl4xNgotICAgIC8v
IGxhc3Qgc3RlcCAtIGNhbGN1bGF0ZSBpbnZlcnNlIG1vZCBEViBkaXJlY3RseTsKLSAgICAvLyBh
c3N1bWVzIDE2IDwgREIgPD0gMzIgYW5kIGFzc3VtZXMgYWJpbGl0eSB0byBoYW5kbGUgNDgtYml0
IGludHMKLSAgICB5ID0gKHkqKDIteCp5JXRoaXMuRFYpKSV0aGlzLkRWOwkJLy8geSA9PSAxL3gg
bW9kIDJeZGJpdHMKLSAgICAvLyB3ZSByZWFsbHkgd2FudCB0aGUgbmVnYXRpdmUgaW52ZXJzZSwg
YW5kIC1EViA8IHkgPCBEVgotICAgIHJldHVybiAoeT4wKT90aGlzLkRWLXk6LXk7Ci0gIH0KLSAg
Ly8gTW9udGdvbWVyeSByZWR1Y3Rpb24KLSAgZnVuY3Rpb24gTW9udGdvbWVyeShtKSB7Ci0gICAg
dGhpcy5tID0gbTsKLSAgICB0aGlzLm1wID0gbS5pbnZEaWdpdCgpOwotICAgIHRoaXMubXBsID0g
dGhpcy5tcCYweDdmZmY7Ci0gICAgdGhpcy5tcGggPSB0aGlzLm1wPj4xNTsKLSAgICB0aGlzLnVt
ID0gKDE8PChtLkRCLTE1KSktMTsKLSAgICB0aGlzLm10MiA9IDIqbS50OwotICB9Ci0gIC8vIHhS
IG1vZCBtCi0gIGZ1bmN0aW9uIG1vbnRDb252ZXJ0KHgpIHsKLSAgICB2YXIgciA9IG5iaSgpOwot
ICAgIHguYWJzKCkuZGxTaGlmdFRvKHRoaXMubS50LHIpOwotICAgIHIuZGl2UmVtVG8odGhpcy5t
LG51bGwscik7Ci0gICAgaWYoeC5zIDwgMCAmJiByLmNvbXBhcmVUbyhCaWdJbnRlZ2VyLlpFUk8p
ID4gMCkgdGhpcy5tLnN1YlRvKHIscik7Ci0gICAgcmV0dXJuIHI7Ci0gIH0KLSAgLy8geC9SIG1v
ZCBtCi0gIGZ1bmN0aW9uIG1vbnRSZXZlcnQoeCkgewotICAgIHZhciByID0gbmJpKCk7Ci0gICAg
eC5jb3B5VG8ocik7Ci0gICAgdGhpcy5yZWR1Y2Uocik7Ci0gICAgcmV0dXJuIHI7Ci0gIH0KLSAg
Ly8geCA9IHgvUiBtb2QgbSAoSEFDIDE0LjMyKQotICBmdW5jdGlvbiBtb250UmVkdWNlKHgpIHsK
LSAgICB3aGlsZSh4LnQgPD0gdGhpcy5tdDIpCS8vIHBhZCB4IHNvIGFtIGhhcyBlbm91Z2ggcm9v
bSBsYXRlcgotICAgICAgeFt4LnQrK10gPSAwOwotICAgIGZvcih2YXIgaSA9IDA7IGkgPCB0aGlz
Lm0udDsgKytpKSB7Ci0gICAgICAvLyBmYXN0ZXIgd2F5IG9mIGNhbGN1bGF0aW5nIHUwID0geFtp
XSptcCBtb2QgRFYKLSAgICAgIHZhciBqID0geFtpXSYweDdmZmY7Ci0gICAgICB2YXIgdTAgPSAo
aip0aGlzLm1wbCsoKChqKnRoaXMubXBoKyh4W2ldPj4xNSkqdGhpcy5tcGwpJnRoaXMudW0pPDwx
NSkpJnguRE07Ci0gICAgICAvLyB1c2UgYW0gdG8gY29tYmluZSB0aGUgbXVsdGlwbHktc2hpZnQt
YWRkIGludG8gb25lIGNhbGwKLSAgICAgIGogPSBpK3RoaXMubS50OwotICAgICAgeFtqXSArPSB0
aGlzLm0uYW0oMCx1MCx4LGksMCx0aGlzLm0udCk7Ci0gICAgICAvLyBwcm9wYWdhdGUgY2FycnkK
LSAgICAgIHdoaWxlKHhbal0gPj0geC5EVikgeyB4W2pdIC09IHguRFY7IHhbKytqXSsrOyB9Ci0g
ICAgfQotICAgIHguY2xhbXAoKTsKLSAgICB4LmRyU2hpZnRUbyh0aGlzLm0udCx4KTsKLSAgICBp
Zih4LmNvbXBhcmVUbyh0aGlzLm0pID49IDApIHguc3ViVG8odGhpcy5tLHgpOwotICB9Ci0gIC8v
IHIgPSAieF4yL1IgbW9kIG0iOyB4ICE9IHIKLSAgZnVuY3Rpb24gbW9udFNxclRvKHgscikgeyB4
LnNxdWFyZVRvKHIpOyB0aGlzLnJlZHVjZShyKTsgfQotICAvLyByID0gInh5L1IgbW9kIG0iOyB4
LHkgIT0gcgotICBmdW5jdGlvbiBtb250TXVsVG8oeCx5LHIpIHsgeC5tdWx0aXBseVRvKHkscik7
IHRoaXMucmVkdWNlKHIpOyB9Ci0gIE1vbnRnb21lcnkucHJvdG90eXBlLmNvbnZlcnQgPSBtb250
Q29udmVydDsKLSAgTW9udGdvbWVyeS5wcm90b3R5cGUucmV2ZXJ0ID0gbW9udFJldmVydDsKLSAg
TW9udGdvbWVyeS5wcm90b3R5cGUucmVkdWNlID0gbW9udFJlZHVjZTsKLSAgTW9udGdvbWVyeS5w
cm90b3R5cGUubXVsVG8gPSBtb250TXVsVG87Ci0gIE1vbnRnb21lcnkucHJvdG90eXBlLnNxclRv
ID0gbW9udFNxclRvOwotICAvLyAocHJvdGVjdGVkKSB0cnVlIGlmZiB0aGlzIGlzIGV2ZW4KLSAg
ZnVuY3Rpb24gYm5wSXNFdmVuKCkgeyByZXR1cm4gKCh0aGlzLnQ+MCk/KHRoaXNbMF0mMSk6dGhp
cy5zKSA9PSAwOyB9Ci0gIC8vIChwcm90ZWN0ZWQpIHRoaXNeZSwgZSA8IDJeMzIsIGRvaW5nIHNx
ciBhbmQgbXVsIHdpdGggInIiIChIQUMgMTQuNzkpCi0gIGZ1bmN0aW9uIGJucEV4cChlLHopIHsK
LSAgICBpZihlID4gMHhmZmZmZmZmZiB8fCBlIDwgMSkgcmV0dXJuIEJpZ0ludGVnZXIuT05FOwot
ICAgIHZhciByID0gbmJpKCksIHIyID0gbmJpKCksIGcgPSB6LmNvbnZlcnQodGhpcyksIGkgPSBu
Yml0cyhlKS0xOwotICAgIGcuY29weVRvKHIpOwotICAgIHdoaWxlKC0taSA+PSAwKSB7Ci0gICAg
ICB6LnNxclRvKHIscjIpOwotICAgICAgaWYoKGUmKDE8PGkpKSA+IDApIHoubXVsVG8ocjIsZyxy
KTsKLSAgICAgIGVsc2UgeyB2YXIgdCA9IHI7IHIgPSByMjsgcjIgPSB0OyB9Ci0gICAgfQotICAg
IHJldHVybiB6LnJldmVydChyKTsKLSAgfQotICAvLyAocHVibGljKSB0aGlzXmUgJSBtLCAwIDw9
IGUgPCAyXjMyCi0gIGZ1bmN0aW9uIGJuTW9kUG93SW50KGUsbSkgewotICAgIHZhciB6OwotICAg
IGlmKGUgPCAyNTYgfHwgbS5pc0V2ZW4oKSkgeiA9IG5ldyBDbGFzc2ljKG0pOyBlbHNlIHogPSBu
ZXcgTW9udGdvbWVyeShtKTsKLSAgICByZXR1cm4gdGhpcy5leHAoZSx6KTsKLSAgfQotICAvLyBw
cm90ZWN0ZWQKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuY29weVRvID0gYm5wQ29weVRvOwotICBC
aWdJbnRlZ2VyLnByb3RvdHlwZS5mcm9tSW50ID0gYm5wRnJvbUludDsKLSAgQmlnSW50ZWdlci5w
cm90b3R5cGUuZnJvbVN0cmluZyA9IGJucEZyb21TdHJpbmc7Ci0gIEJpZ0ludGVnZXIucHJvdG90
eXBlLmNsYW1wID0gYm5wQ2xhbXA7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmRsU2hpZnRUbyA9
IGJucERMU2hpZnRUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuZHJTaGlmdFRvID0gYm5wRFJT
aGlmdFRvOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5sU2hpZnRUbyA9IGJucExTaGlmdFRvOwot
ICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5yU2hpZnRUbyA9IGJucFJTaGlmdFRvOwotICBCaWdJbnRl
Z2VyLnByb3RvdHlwZS5zdWJUbyA9IGJucFN1YlRvOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5t
dWx0aXBseVRvID0gYm5wTXVsdGlwbHlUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuc3F1YXJl
VG8gPSBibnBTcXVhcmVUbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuZGl2UmVtVG8gPSBibnBE
aXZSZW1UbzsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUuaW52RGlnaXQgPSBibnBJbnZEaWdpdDsK
LSAgQmlnSW50ZWdlci5wcm90b3R5cGUuaXNFdmVuID0gYm5wSXNFdmVuOwotICBCaWdJbnRlZ2Vy
LnByb3RvdHlwZS5leHAgPSBibnBFeHA7Ci0gIC8vIHB1YmxpYwotICBCaWdJbnRlZ2VyLnByb3Rv
dHlwZS50b1N0cmluZyA9IGJuVG9TdHJpbmc7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLm5lZ2F0
ZSA9IGJuTmVnYXRlOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5hYnMgPSBibkFiczsKLSAgQmln
SW50ZWdlci5wcm90b3R5cGUuY29tcGFyZVRvID0gYm5Db21wYXJlVG87Ci0gIEJpZ0ludGVnZXIu
cHJvdG90eXBlLmJpdExlbmd0aCA9IGJuQml0TGVuZ3RoOwotICBCaWdJbnRlZ2VyLnByb3RvdHlw
ZS5tb2QgPSBibk1vZDsKLSAgQmlnSW50ZWdlci5wcm90b3R5cGUubW9kUG93SW50ID0gYm5Nb2RQ
b3dJbnQ7Ci0gIC8vICJjb25zdGFudHMiCi0gIEJpZ0ludGVnZXIuWkVSTyA9IG5idigwKTsKLSAg
QmlnSW50ZWdlci5PTkUgPSBuYnYoMSk7Ci0gIC8vIGpzYm4yIHN0dWZmCi0gIC8vIChwcm90ZWN0
ZWQpIGNvbnZlcnQgZnJvbSByYWRpeCBzdHJpbmcKLSAgZnVuY3Rpb24gYm5wRnJvbVJhZGl4KHMs
YikgewotICAgIHRoaXMuZnJvbUludCgwKTsKLSAgICBpZihiID09IG51bGwpIGIgPSAxMDsKLSAg
ICB2YXIgY3MgPSB0aGlzLmNodW5rU2l6ZShiKTsKLSAgICB2YXIgZCA9IE1hdGgucG93KGIsY3Mp
LCBtaSA9IGZhbHNlLCBqID0gMCwgdyA9IDA7Ci0gICAgZm9yKHZhciBpID0gMDsgaSA8IHMubGVu
Z3RoOyArK2kpIHsKLSAgICAgIHZhciB4ID0gaW50QXQocyxpKTsKLSAgICAgIGlmKHggPCAwKSB7
Ci0gICAgICAgIGlmKHMuY2hhckF0KGkpID09ICItIiAmJiB0aGlzLnNpZ251bSgpID09IDApIG1p
ID0gdHJ1ZTsKLSAgICAgICAgY29udGludWU7Ci0gICAgICB9Ci0gICAgICB3ID0gYip3K3g7Ci0g
ICAgICBpZigrK2ogPj0gY3MpIHsKLSAgICAgICAgdGhpcy5kTXVsdGlwbHkoZCk7Ci0gICAgICAg
IHRoaXMuZEFkZE9mZnNldCh3LDApOwotICAgICAgICBqID0gMDsKLSAgICAgICAgdyA9IDA7Ci0g
ICAgICB9Ci0gICAgfQotICAgIGlmKGogPiAwKSB7Ci0gICAgICB0aGlzLmRNdWx0aXBseShNYXRo
LnBvdyhiLGopKTsKLSAgICAgIHRoaXMuZEFkZE9mZnNldCh3LDApOwotICAgIH0KLSAgICBpZiht
aSkgQmlnSW50ZWdlci5aRVJPLnN1YlRvKHRoaXMsdGhpcyk7Ci0gIH0KLSAgLy8gKHByb3RlY3Rl
ZCkgcmV0dXJuIHggcy50LiByXnggPCBEVgotICBmdW5jdGlvbiBibnBDaHVua1NpemUocikgeyBy
ZXR1cm4gTWF0aC5mbG9vcihNYXRoLkxOMip0aGlzLkRCL01hdGgubG9nKHIpKTsgfQotICAvLyAo
cHVibGljKSAwIGlmIHRoaXMgPT0gMCwgMSBpZiB0aGlzID4gMAotICBmdW5jdGlvbiBiblNpZ051
bSgpIHsKLSAgICBpZih0aGlzLnMgPCAwKSByZXR1cm4gLTE7Ci0gICAgZWxzZSBpZih0aGlzLnQg
PD0gMCB8fCAodGhpcy50ID09IDEgJiYgdGhpc1swXSA8PSAwKSkgcmV0dXJuIDA7Ci0gICAgZWxz
ZSByZXR1cm4gMTsKLSAgfQotICAvLyAocHJvdGVjdGVkKSB0aGlzICo9IG4sIHRoaXMgPj0gMCwg
MSA8IG4gPCBEVgotICBmdW5jdGlvbiBibnBETXVsdGlwbHkobikgewotICAgIHRoaXNbdGhpcy50
XSA9IHRoaXMuYW0oMCxuLTEsdGhpcywwLDAsdGhpcy50KTsKLSAgICArK3RoaXMudDsKLSAgICB0
aGlzLmNsYW1wKCk7Ci0gIH0KLSAgLy8gKHByb3RlY3RlZCkgdGhpcyArPSBuIDw8IHcgd29yZHMs
IHRoaXMgPj0gMAotICBmdW5jdGlvbiBibnBEQWRkT2Zmc2V0KG4sdykgewotICAgIGlmKG4gPT0g
MCkgcmV0dXJuOwotICAgIHdoaWxlKHRoaXMudCA8PSB3KSB0aGlzW3RoaXMudCsrXSA9IDA7Ci0g
ICAgdGhpc1t3XSArPSBuOwotICAgIHdoaWxlKHRoaXNbd10gPj0gdGhpcy5EVikgewotICAgICAg
dGhpc1t3XSAtPSB0aGlzLkRWOwotICAgICAgaWYoKyt3ID49IHRoaXMudCkgdGhpc1t0aGlzLnQr
K10gPSAwOwotICAgICAgKyt0aGlzW3ddOwotICAgIH0KLSAgfQotICAvLyAocHJvdGVjdGVkKSBj
b252ZXJ0IHRvIHJhZGl4IHN0cmluZwotICBmdW5jdGlvbiBibnBUb1JhZGl4KGIpIHsKLSAgICBp
ZihiID09IG51bGwpIGIgPSAxMDsKLSAgICBpZih0aGlzLnNpZ251bSgpID09IDAgfHwgYiA8IDIg
fHwgYiA+IDM2KSByZXR1cm4gIjAiOwotICAgIHZhciBjcyA9IHRoaXMuY2h1bmtTaXplKGIpOwot
ICAgIHZhciBhID0gTWF0aC5wb3coYixjcyk7Ci0gICAgdmFyIGQgPSBuYnYoYSksIHkgPSBuYmko
KSwgeiA9IG5iaSgpLCByID0gIiI7Ci0gICAgdGhpcy5kaXZSZW1UbyhkLHkseik7Ci0gICAgd2hp
bGUoeS5zaWdudW0oKSA+IDApIHsKLSAgICAgIHIgPSAoYSt6LmludFZhbHVlKCkpLnRvU3RyaW5n
KGIpLnN1YnN0cigxKSArIHI7Ci0gICAgICB5LmRpdlJlbVRvKGQseSx6KTsKLSAgICB9Ci0gICAg
cmV0dXJuIHouaW50VmFsdWUoKS50b1N0cmluZyhiKSArIHI7Ci0gIH0KLSAgLy8gKHB1YmxpYykg
cmV0dXJuIHZhbHVlIGFzIGludGVnZXIKLSAgZnVuY3Rpb24gYm5JbnRWYWx1ZSgpIHsKLSAgICBp
Zih0aGlzLnMgPCAwKSB7Ci0gICAgICBpZih0aGlzLnQgPT0gMSkgcmV0dXJuIHRoaXNbMF0tdGhp
cy5EVjsKLSAgICAgIGVsc2UgaWYodGhpcy50ID09IDApIHJldHVybiAtMTsKLSAgICB9Ci0gICAg
ZWxzZSBpZih0aGlzLnQgPT0gMSkgcmV0dXJuIHRoaXNbMF07Ci0gICAgZWxzZSBpZih0aGlzLnQg
PT0gMCkgcmV0dXJuIDA7Ci0gICAgLy8gYXNzdW1lcyAxNiA8IERCIDwgMzIKLSAgICByZXR1cm4g
KCh0aGlzWzFdJigoMTw8KDMyLXRoaXMuREIpKS0xKSk8PHRoaXMuREIpfHRoaXNbMF07Ci0gIH0K
LSAgLy8gKHByb3RlY3RlZCkgciA9IHRoaXMgKyBhCi0gIGZ1bmN0aW9uIGJucEFkZFRvKGEscikg
ewotICAgIHZhciBpID0gMCwgYyA9IDAsIG0gPSBNYXRoLm1pbihhLnQsdGhpcy50KTsKLSAgICB3
aGlsZShpIDwgbSkgewotICAgICAgYyArPSB0aGlzW2ldK2FbaV07Ci0gICAgICByW2krK10gPSBj
JnRoaXMuRE07Ci0gICAgICBjID4+PSB0aGlzLkRCOwotICAgIH0KLSAgICBpZihhLnQgPCB0aGlz
LnQpIHsKLSAgICAgIGMgKz0gYS5zOwotICAgICAgd2hpbGUoaSA8IHRoaXMudCkgewotICAgICAg
ICBjICs9IHRoaXNbaV07Ci0gICAgICAgIHJbaSsrXSA9IGMmdGhpcy5ETTsKLSAgICAgICAgYyA+
Pj0gdGhpcy5EQjsKLSAgICAgIH0KLSAgICAgIGMgKz0gdGhpcy5zOwotICAgIH0KLSAgICBlbHNl
IHsKLSAgICAgIGMgKz0gdGhpcy5zOwotICAgICAgd2hpbGUoaSA8IGEudCkgewotICAgICAgICBj
ICs9IGFbaV07Ci0gICAgICAgIHJbaSsrXSA9IGMmdGhpcy5ETTsKLSAgICAgICAgYyA+Pj0gdGhp
cy5EQjsKLSAgICAgIH0KLSAgICAgIGMgKz0gYS5zOwotICAgIH0KLSAgICByLnMgPSAoYzwwKT8t
MTowOwotICAgIGlmKGMgPiAwKSByW2krK10gPSBjOwotICAgIGVsc2UgaWYoYyA8IC0xKSByW2kr
K10gPSB0aGlzLkRWK2M7Ci0gICAgci50ID0gaTsKLSAgICByLmNsYW1wKCk7Ci0gIH0KLSAgQmln
SW50ZWdlci5wcm90b3R5cGUuZnJvbVJhZGl4ID0gYm5wRnJvbVJhZGl4OwotICBCaWdJbnRlZ2Vy
LnByb3RvdHlwZS5jaHVua1NpemUgPSBibnBDaHVua1NpemU7Ci0gIEJpZ0ludGVnZXIucHJvdG90
eXBlLnNpZ251bSA9IGJuU2lnTnVtOwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5kTXVsdGlwbHkg
PSBibnBETXVsdGlwbHk7Ci0gIEJpZ0ludGVnZXIucHJvdG90eXBlLmRBZGRPZmZzZXQgPSBibnBE
QWRkT2Zmc2V0OwotICBCaWdJbnRlZ2VyLnByb3RvdHlwZS50b1JhZGl4ID0gYm5wVG9SYWRpeDsK
LSAgQmlnSW50ZWdlci5wcm90b3R5cGUuaW50VmFsdWUgPSBibkludFZhbHVlOwotICBCaWdJbnRl
Z2VyLnByb3RvdHlwZS5hZGRUbyA9IGJucEFkZFRvOwotICAvLz09PT09PT0gZW5kIGpzYm4gPT09
PT09PQotICAvLyBFbXNjcmlwdGVuIHdyYXBwZXIKLSAgdmFyIFdyYXBwZXIgPSB7Ci0gICAgYWJz
OiBmdW5jdGlvbihsLCBoKSB7Ci0gICAgICB2YXIgeCA9IG5ldyBnb29nLm1hdGguTG9uZyhsLCBo
KTsKLSAgICAgIHZhciByZXQ7Ci0gICAgICBpZiAoeC5pc05lZ2F0aXZlKCkpIHsKLSAgICAgICAg
cmV0ID0geC5uZWdhdGUoKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldCA9IHg7Ci0gICAg
ICB9Ci0gICAgICBIRUFQMzJbdGVtcERvdWJsZVB0cj4+Ml0gPSByZXQubG93XzsKLSAgICAgIEhF
QVAzMlt0ZW1wRG91YmxlUHRyKzQ+PjJdID0gcmV0LmhpZ2hfOwotICAgIH0sCi0gICAgZW5zdXJl
VGVtcHM6IGZ1bmN0aW9uKCkgewotICAgICAgaWYgKFdyYXBwZXIuZW5zdXJlZFRlbXBzKSByZXR1
cm47Ci0gICAgICBXcmFwcGVyLmVuc3VyZWRUZW1wcyA9IHRydWU7Ci0gICAgICBXcmFwcGVyLnR3
bzMyID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIFdyYXBwZXIudHdvMzIuZnJvbVN0cmluZygn
NDI5NDk2NzI5NicsIDEwKTsKLSAgICAgIFdyYXBwZXIudHdvNjQgPSBuZXcgQmlnSW50ZWdlcigp
OwotICAgICAgV3JhcHBlci50d282NC5mcm9tU3RyaW5nKCcxODQ0Njc0NDA3MzcwOTU1MTYxNics
IDEwKTsKLSAgICAgIFdyYXBwZXIudGVtcDEgPSBuZXcgQmlnSW50ZWdlcigpOwotICAgICAgV3Jh
cHBlci50ZW1wMiA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgfSwKLSAgICBsaDJiaWdudW06IGZ1
bmN0aW9uKGwsIGgpIHsKLSAgICAgIHZhciBhID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIGEu
ZnJvbVN0cmluZyhoLnRvU3RyaW5nKCksIDEwKTsKLSAgICAgIHZhciBiID0gbmV3IEJpZ0ludGVn
ZXIoKTsKLSAgICAgIGEubXVsdGlwbHlUbyhXcmFwcGVyLnR3bzMyLCBiKTsKLSAgICAgIHZhciBj
ID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIGMuZnJvbVN0cmluZyhsLnRvU3RyaW5nKCksIDEw
KTsKLSAgICAgIHZhciBkID0gbmV3IEJpZ0ludGVnZXIoKTsKLSAgICAgIGMuYWRkVG8oYiwgZCk7
Ci0gICAgICByZXR1cm4gZDsKLSAgICB9LAotICAgIHN0cmluZ2lmeTogZnVuY3Rpb24obCwgaCwg
dW5zaWduZWQpIHsKLSAgICAgIHZhciByZXQgPSBuZXcgZ29vZy5tYXRoLkxvbmcobCwgaCkudG9T
dHJpbmcoKTsKLSAgICAgIGlmICh1bnNpZ25lZCAmJiByZXRbMF0gPT0gJy0nKSB7Ci0gICAgICAg
IC8vIHVuc2lnbiBzbG93bHkgdXNpbmcganNibiBiaWdudW1zCi0gICAgICAgIFdyYXBwZXIuZW5z
dXJlVGVtcHMoKTsKLSAgICAgICAgdmFyIGJpZ251bSA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAg
ICAgIGJpZ251bS5mcm9tU3RyaW5nKHJldCwgMTApOwotICAgICAgICByZXQgPSBuZXcgQmlnSW50
ZWdlcigpOwotICAgICAgICBXcmFwcGVyLnR3bzY0LmFkZFRvKGJpZ251bSwgcmV0KTsKLSAgICAg
ICAgcmV0ID0gcmV0LnRvU3RyaW5nKDEwKTsKLSAgICAgIH0KLSAgICAgIHJldHVybiByZXQ7Ci0g
ICAgfSwKLSAgICBmcm9tU3RyaW5nOiBmdW5jdGlvbihzdHIsIGJhc2UsIG1pbiwgbWF4LCB1bnNp
Z25lZCkgewotICAgICAgV3JhcHBlci5lbnN1cmVUZW1wcygpOwotICAgICAgdmFyIGJpZ251bSA9
IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBiaWdudW0uZnJvbVN0cmluZyhzdHIsIGJhc2UpOwot
ICAgICAgdmFyIGJpZ21pbiA9IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICBiaWdtaW4uZnJvbVN0
cmluZyhtaW4sIDEwKTsKLSAgICAgIHZhciBiaWdtYXggPSBuZXcgQmlnSW50ZWdlcigpOwotICAg
ICAgYmlnbWF4LmZyb21TdHJpbmcobWF4LCAxMCk7Ci0gICAgICBpZiAodW5zaWduZWQgJiYgYmln
bnVtLmNvbXBhcmVUbyhCaWdJbnRlZ2VyLlpFUk8pIDwgMCkgewotICAgICAgICB2YXIgdGVtcCA9
IG5ldyBCaWdJbnRlZ2VyKCk7Ci0gICAgICAgIGJpZ251bS5hZGRUbyhXcmFwcGVyLnR3bzY0LCB0
ZW1wKTsKLSAgICAgICAgYmlnbnVtID0gdGVtcDsKLSAgICAgIH0KLSAgICAgIHZhciBlcnJvciA9
IGZhbHNlOwotICAgICAgaWYgKGJpZ251bS5jb21wYXJlVG8oYmlnbWluKSA8IDApIHsKLSAgICAg
ICAgYmlnbnVtID0gYmlnbWluOwotICAgICAgICBlcnJvciA9IHRydWU7Ci0gICAgICB9IGVsc2Ug
aWYgKGJpZ251bS5jb21wYXJlVG8oYmlnbWF4KSA+IDApIHsKLSAgICAgICAgYmlnbnVtID0gYmln
bWF4OwotICAgICAgICBlcnJvciA9IHRydWU7Ci0gICAgICB9Ci0gICAgICB2YXIgcmV0ID0gZ29v
Zy5tYXRoLkxvbmcuZnJvbVN0cmluZyhiaWdudW0udG9TdHJpbmcoKSk7IC8vIG1pbi1tYXggY2hl
Y2tzIHNob3VsZCBoYXZlIGNsYW1wZWQgdGhpcyB0byBhIHJhbmdlIGdvb2cubWF0aC5Mb25nIGNh
biBoYW5kbGUgd2VsbAotICAgICAgSEVBUDMyW3RlbXBEb3VibGVQdHI+PjJdID0gcmV0Lmxvd187
Ci0gICAgICBIRUFQMzJbdGVtcERvdWJsZVB0cis0Pj4yXSA9IHJldC5oaWdoXzsKLSAgICAgIGlm
IChlcnJvcikgdGhyb3cgJ3JhbmdlIGVycm9yJzsKLSAgICB9Ci0gIH07Ci0gIHJldHVybiBXcmFw
cGVyOwotfSkoKTsKLS8vPT09PT09PSBlbmQgY2xvc3VyZSBpNjQgY29kZSA9PT09PT09Ci0vLyA9
PT0gQXV0by1nZW5lcmF0ZWQgcG9zdGFtYmxlIHNldHVwIGVudHJ5IHN0dWZmID09PQotZnVuY3Rp
b24gRXhpdFN0YXR1cyhzdGF0dXMpIHsKLSAgdGhpcy5uYW1lID0gIkV4aXRTdGF0dXMiOwotICB0
aGlzLm1lc3NhZ2UgPSAiUHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggZXhpdCgiICsgc3RhdHVzICsg
IikiOwotICB0aGlzLnN0YXR1cyA9IHN0YXR1czsKLX07Ci1FeGl0U3RhdHVzLnByb3RvdHlwZSA9
IG5ldyBFcnJvcigpOwotRXhpdFN0YXR1cy5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBFeGl0U3Rh
dHVzOwotdmFyIGluaXRpYWxTdGFja1RvcDsKLXZhciBwcmVsb2FkU3RhcnRUaW1lID0gbnVsbDsK
LU1vZHVsZVsnY2FsbE1haW4nXSA9IE1vZHVsZS5jYWxsTWFpbiA9IGZ1bmN0aW9uIGNhbGxNYWlu
KGFyZ3MpIHsKLSAgYXNzZXJ0KHJ1bkRlcGVuZGVuY2llcyA9PSAwLCAnY2Fubm90IGNhbGwgbWFp
biB3aGVuIGFzeW5jIGRlcGVuZGVuY2llcyByZW1haW4hIChsaXN0ZW4gb24gX19BVE1BSU5fXykn
KTsKLSAgYXNzZXJ0KF9fQVRQUkVSVU5fXy5sZW5ndGggPT0gMCwgJ2Nhbm5vdCBjYWxsIG1haW4g
d2hlbiBwcmVSdW4gZnVuY3Rpb25zIHJlbWFpbiB0byBiZSBjYWxsZWQnKTsKLSAgYXJncyA9IGFy
Z3MgfHwgW107Ci0gIGlmIChFTlZJUk9OTUVOVF9JU19XRUIgJiYgcHJlbG9hZFN0YXJ0VGltZSAh
PT0gbnVsbCkgewotICAgIC8vTW9kdWxlLnByaW50RXJyKCdwcmVsb2FkIHRpbWU6ICcgKyAoRGF0
ZS5ub3coKSAtIHByZWxvYWRTdGFydFRpbWUpICsgJyBtcycpOwotICB9Ci0gIGVuc3VyZUluaXRS
dW50aW1lKCk7Ci0gIHZhciBhcmdjID0gYXJncy5sZW5ndGgrMTsKLSAgZnVuY3Rpb24gcGFkKCkg
ewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNC0xOyBpKyspIHsKLSAgICAgIGFyZ3YucHVzaCgw
KTsKLSAgICB9Ci0gIH0KLSAgdmFyIGFyZ3YgPSBbYWxsb2NhdGUoaW50QXJyYXlGcm9tU3RyaW5n
KCIvYmluL3RoaXMucHJvZ3JhbSIpLCAnaTgnLCBBTExPQ19OT1JNQUwpIF07Ci0gIHBhZCgpOwot
ICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ2MtMTsgaSA9IGkgKyAxKSB7Ci0gICAgYXJndi5wdXNo
KGFsbG9jYXRlKGludEFycmF5RnJvbVN0cmluZyhhcmdzW2ldKSwgJ2k4JywgQUxMT0NfTk9STUFM
KSk7Ci0gICAgcGFkKCk7Ci0gIH0KLSAgYXJndi5wdXNoKDApOwotICBhcmd2ID0gYWxsb2NhdGUo
YXJndiwgJ2kzMicsIEFMTE9DX05PUk1BTCk7Ci0gIGluaXRpYWxTdGFja1RvcCA9IFNUQUNLVE9Q
OwotICB0cnkgewotICAgIHZhciByZXQgPSBNb2R1bGVbJ19tYWluJ10oYXJnYywgYXJndiwgMCk7
Ci0gICAgLy8gaWYgd2UncmUgbm90IHJ1bm5pbmcgYW4gZXZlbnRlZCBtYWluIGxvb3AsIGl0J3Mg
dGltZSB0byBleGl0Ci0gICAgaWYgKCFNb2R1bGVbJ25vRXhpdFJ1bnRpbWUnXSkgewotICAgICAg
ZXhpdChyZXQpOwotICAgIH0KLSAgfQotICBjYXRjaChlKSB7Ci0gICAgaWYgKGUgaW5zdGFuY2Vv
ZiBFeGl0U3RhdHVzKSB7Ci0gICAgICAvLyBleGl0KCkgdGhyb3dzIHRoaXMgb25jZSBpdCdzIGRv
bmUgdG8gbWFrZSBzdXJlIGV4ZWN1dGlvbgotICAgICAgLy8gaGFzIGJlZW4gc3RvcHBlZCBjb21w
bGV0ZWx5Ci0gICAgICByZXR1cm47Ci0gICAgfSBlbHNlIGlmIChlID09ICdTaW11bGF0ZUluZmlu
aXRlTG9vcCcpIHsKLSAgICAgIC8vIHJ1bm5pbmcgYW4gZXZlbnRlZCBtYWluIGxvb3AsIGRvbid0
IGltbWVkaWF0ZWx5IGV4aXQKLSAgICAgIE1vZHVsZVsnbm9FeGl0UnVudGltZSddID0gdHJ1ZTsK
LSAgICAgIHJldHVybjsKLSAgICB9IGVsc2UgewotICAgICAgdGhyb3cgZTsKLSAgICB9Ci0gIH0K
LX0KLWZ1bmN0aW9uIHJ1bihhcmdzKSB7Ci0gIGFyZ3MgPSBhcmdzIHx8IE1vZHVsZVsnYXJndW1l
bnRzJ107Ci0gIGlmIChwcmVsb2FkU3RhcnRUaW1lID09PSBudWxsKSBwcmVsb2FkU3RhcnRUaW1l
ID0gRGF0ZS5ub3coKTsKLSAgaWYgKHJ1bkRlcGVuZGVuY2llcyA+IDApIHsKLSAgICAvL01vZHVs
ZS5wcmludEVycigncnVuKCkgY2FsbGVkLCBidXQgZGVwZW5kZW5jaWVzIHJlbWFpbiwgc28gbm90
IHJ1bm5pbmcnKTsKLSAgICByZXR1cm47Ci0gIH0KLSAgcHJlUnVuKCk7Ci0gIGlmIChydW5EZXBl
bmRlbmNpZXMgPiAwKSB7Ci0gICAgLy8gYSBwcmVSdW4gYWRkZWQgYSBkZXBlbmRlbmN5LCBydW4g
d2lsbCBiZSBjYWxsZWQgbGF0ZXIKLSAgICByZXR1cm47Ci0gIH0KLSAgZnVuY3Rpb24gZG9SdW4o
KSB7Ci0gICAgZW5zdXJlSW5pdFJ1bnRpbWUoKTsKLSAgICBwcmVNYWluKCk7Ci0gICAgY2FsbGVk
UnVuID0gdHJ1ZTsKLSAgICBpZiAoTW9kdWxlWydfbWFpbiddICYmIHNob3VsZFJ1bk5vdykgewot
ICAgICAgTW9kdWxlWydjYWxsTWFpbiddKGFyZ3MpOwotICAgIH0KLSAgICBwb3N0UnVuKCk7Ci0g
IH0KLSAgaWYgKE1vZHVsZVsnc2V0U3RhdHVzJ10pIHsKLSAgICBNb2R1bGVbJ3NldFN0YXR1cydd
KCdSdW5uaW5nLi4uJyk7Ci0gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgIE1vZHVsZVsnc2V0U3RhdHVzJ10oJycpOwotICAg
ICAgfSwgMSk7Ci0gICAgICBpZiAoIUFCT1JUKSBkb1J1bigpOwotICAgIH0sIDEpOwotICB9IGVs
c2UgewotICAgIGRvUnVuKCk7Ci0gIH0KLX0KLU1vZHVsZVsncnVuJ10gPSBNb2R1bGUucnVuID0g
cnVuOwotZnVuY3Rpb24gZXhpdChzdGF0dXMpIHsKLSAgQUJPUlQgPSB0cnVlOwotICBFWElUU1RB
VFVTID0gc3RhdHVzOwotICBTVEFDS1RPUCA9IGluaXRpYWxTdGFja1RvcDsKLSAgLy8gZXhpdCB0
aGUgcnVudGltZQotICBleGl0UnVudGltZSgpOwotICAvLyB0aHJvdyBhbiBleGNlcHRpb24gdG8g
aGFsdCB0aGUgY3VycmVudCBleGVjdXRpb24KLSAgdGhyb3cgbmV3IEV4aXRTdGF0dXMoc3RhdHVz
KTsKLX0KLU1vZHVsZVsnZXhpdCddID0gTW9kdWxlLmV4aXQgPSBleGl0OwotZnVuY3Rpb24gYWJv
cnQodGV4dCkgewotICBpZiAodGV4dCkgewotICAgIE1vZHVsZS5wcmludCh0ZXh0KTsKLSAgICBN
b2R1bGUucHJpbnRFcnIodGV4dCk7Ci0gIH0KLSAgQUJPUlQgPSB0cnVlOwotICBFWElUU1RBVFVT
ID0gMTsKLSAgdGhyb3cgJ2Fib3J0KCkgYXQgJyArIChuZXcgRXJyb3IoKS5zdGFjayk7Ci19Ci1N
b2R1bGVbJ2Fib3J0J10gPSBNb2R1bGUuYWJvcnQgPSBhYm9ydDsKLS8vIHt7UFJFX1JVTl9BRERJ
VElPTlN9fQotaWYgKE1vZHVsZVsncHJlSW5pdCddKSB7Ci0gIGlmICh0eXBlb2YgTW9kdWxlWydw
cmVJbml0J10gPT0gJ2Z1bmN0aW9uJykgTW9kdWxlWydwcmVJbml0J10gPSBbTW9kdWxlWydwcmVJ
bml0J11dOwotICB3aGlsZSAoTW9kdWxlWydwcmVJbml0J10ubGVuZ3RoID4gMCkgewotICAgIE1v
ZHVsZVsncHJlSW5pdCddLnBvcCgpKCk7Ci0gIH0KLX0KLS8vIHNob3VsZFJ1bk5vdyByZWZlcnMg
dG8gY2FsbGluZyBtYWluKCksIG5vdCBydW4oKS4KLXZhciBzaG91bGRSdW5Ob3cgPSB0cnVlOwot
aWYgKE1vZHVsZVsnbm9Jbml0aWFsUnVuJ10pIHsKLSAgc2hvdWxkUnVuTm93ID0gZmFsc2U7Ci19
Ci1ydW4oKTsKLS8vIHt7UE9TVF9SVU5fQURESVRJT05TfX0KLS8vIHt7TU9EVUxFX0FERElUSU9O
U319CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5l
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3N0ZXBhbm92X2NvbnRhaW5l
ci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwZmI2ZjBhODQy
YmRiMTA3OTJiOTU1ZjMxMmQ2ZGNkNzg1MTMyYTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdGVwYW5vdl9jb250
YWluZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotSlNSZWdy
ZXNzL3N0ZXBhbm92X2NvbnRhaW5lcgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQot
UEFTUyBubyBleGNlcHRpb24gdGhyb3duCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
Ci0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
dGVwYW5vdl9jb250YWluZXIuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RlcGFub3Zf
Y29udGFpbmVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViOTVmNzUyMTIx
MGM0YjY2YzcwZDcyZGUyZTI1ZDU2MTE2OTc4OTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdGVwYW5vdl9jb250
YWluZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N0ZXBhbm92X2NvbnRhaW5lci5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMv
ZGZnLWFkZC1ub3QtbnVtYmVyLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2RmZy1h
ZGQtbm90LW51bWJlci5qcwppbmRleCAxMmMxNGQwODdhMTk0ODQ4YzQ1ZjUxOTkzZmU5YjYwODAz
NGY2Yjc5Li5kNDM1YzYyNmNmMGJmNGM1ZjE2YmMyYzIxMzUwYWMyNjIxM2I0N2FhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZGZnLWFkZC1ub3QtbnVtYmVyLmpzCisr
KyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9kZmctYWRkLW5vdC1udW1iZXIuanMKQEAg
LTEsMyArMSw2IEBACisvLyBUaGlzIHRlc3Qgd29uJ3QgZ2V0IGludG8gdGhlIEZUTCBjdXJyZW50
bHksIHNpbmNlIHRoZSBmb28oKSBmdW5jdGlvbiBqdXN0IGV4aXRzIGEgbG90LgorLy9AIG5vRlRM
UnVuTGF5b3V0VGVzdAorCiBkZXNjcmlwdGlvbigKICJUZXN0cyB0aGF0IGFkZGluZyB0aGluZ3Mg
dGhhdCBhcmVuJ3QgbnVtYmVycyB1c2luZyArKyBkb2VzIG5vdCBjcmFzaCBvciBnZW5lcmF0ZSBi
b2d1cyBjb2RlLiIKICk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMv
bGFyZ2UtZXhwcmVzc2lvbnMuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvbGFyZ2Ut
ZXhwcmVzc2lvbnMuanMKaW5kZXggNTI0NzJiYzMxYWJlYjgyYWU3YjFkNjA3ZTQ3YjYyYWRjZTA4
ODc1MS4uNDVkYmNiN2JlNGExNmYyYjMyMWViOWVjZWYwNzYxZTM5YzkwOThmMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2xhcmdlLWV4cHJlc3Npb25zLmpzCisrKyBi
L0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9sYXJnZS1leHByZXNzaW9ucy5qcwpAQCAtMzAs
NSArMzAsNSBAQCBmdW5jdGlvbiByZXBlYXRlZFN0cmluZyh2YWx1ZSwgY291bnQpCiAKIHNob3Vs
ZEJlKCdldmFsKHJlcGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwKSknLCAncmVw
ZWF0ZWRTdHJpbmcoImEiLCAxMDApJyk7CiBzaG91bGRCZSgnZXZhbChyZXBlYXRlZEV4cHJlc3Np
b24oImxldHRlckEiLCAiKyIsIDEwMDApKScsICdyZXBlYXRlZFN0cmluZygiYSIsIDEwMDApJyk7
Ci1zaG91bGRCZSgnZXZhbChyZXBlYXRlZEV4cHJlc3Npb24oImxldHRlckEiLCAiKyIsIDEwMDAw
KSknLCAncmVwZWF0ZWRTdHJpbmcoImEiLCAxMDAwMCknKTsKK3Nob3VsZFRocm93KCdldmFsKHJl
cGVhdGVkRXhwcmVzc2lvbigibGV0dGVyQSIsICIrIiwgMTAwMDApKScpOwogc2hvdWxkVGhyb3co
J2V2YWwocmVwZWF0ZWRFeHByZXNzaW9uKCJsZXR0ZXJBIiwgIisiLCAxMDAwMDApKScpOwo=
</data>
<flag name="commit-queue"
          id="246443"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>222448</attachid>
            <date>2014-01-28 08:45:53 -0800</date>
            <delta_ts>2014-01-28 08:45:53 -0800</delta_ts>
            <desc>Archive of layout-test-results from webkit-ews-06 for mac-mountainlion</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>495818</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">UEsDBBQAAgAIAGA9PEQqHqqASsIAAGCmCQAOABwAYWNjZXNzX2xvZy50eHRVVAkAAwPQ51IpzudS
dXgLAAEE9QEAAARQAAAA7F3rj9s4kv++f0WwQPenUbf40CtAI5jJJLuz2LsZXLLAAofDQG3Rtiay
5NGjH/vXH0lZfomUaYn0oyNk0nHbHv2qisVisVhVBNC7s+kf8M6if/4X+vf/CNN7aAP83vbeI+e9
7b+zbN+2/+/dX//26eu7+3C5nISTObnHNrYWYRpPSVHezctF8u7vX7/+dg/uwF/fQdumf4H9F9D7
8VFGCivNSou8xBSgQdoCoQS8QxgPwMhJkVX5hBT3RbxYJuSufCn3uABowPOZiBoMkYiA7UMt5O8A
CUTFwJAeSe2Ny67E6iEJBgCFj1leWvy1laX05+RbnM7WimZRBKEkoe/qR224PimqGAj72oCi7DlN
sjBSkiuyAy1qo0iCbJp7Ztg/OMDI9g2zv0OCZOpCI9yLFc1FZhmW8YgdbTwu82xGKSnEI+oAAwyu
ISXcAeQaRLXAXUlaSxdCJiHh6SGxdshwMmEPfopDOg+jOCeT8m45X25BINt7Z+lhSoAlUlCgawYK
8GTaOWjuVeVcxIiHPT180OffF6SslntDg23wDu7KKslmcaobh2uZXph4mocLIsABAdCLtPbQBTxp
hiqqx7UP2kaDQ7R6kofF3Hqek9RKw6d4FpZs6Qyfw1erZG8+hpNvQh309Di9ffHxKfElk9vxziYC
RF0366wCGErBhJpOkpZxmFhVnghVzNWzhSOLZflqxEBPXvM4SeIJ5SAWbtSRpq3hDpB0F+ppx7Km
Wb4QcUYfoQUsTktCXyzLe/5JBK2bn+2b4PPNz+DGt9nrnz7xn5D/dLbe/5H/tPcJc43QNZgsRzNZ
0zBJ2NQcTJhJpfkQPwwlT7uepaR8zvLj5Wb99uOXL3vUBeDtE7cblRqibjzcoMmmHzKIGtdHqWZ/
pozCm49UGN7NR4e//unmIzCkwRfMsQWvlOeITElO/RCLPFFXpLAikpCSUGcoToiVh3HBXKEyXpBc
tAY6gR5dVqfCAkJXGOpxMr7+/Zcvv3/+5Z+ffv/5109ffv/vX7/+/unfv3z5Kg0duoZx/yj2ER3/
1BKHQr8O2KPEtxCDAfNLfHqjNLVksEeL1cEm0NrCxP7IVbeKCPeBaFSGttiKMs9eqdzqeJcwHo97
yO2PwirZkdHGWDTvLHOyywW3hBAq7SDkfJT1/iqW8oHhkOGP4ilVMKpa1rwsl4WV5fEsTjdnQ4sw
ToWLu1JgIDi81HTjC/fWngLDwB4MLYkjeM4A9A3mCq0rjwHgQZxusAr6q1h5PIA1y3KFNSCc1MFQ
ET4mJJIcXgx6dDapFoz85zymKzADsOhizN8SujjYCfQITg5sRoYdeAI2XRXrJQXjkcVOFccq8SgF
MUpjmIpbIClEE0cSEg98PbNnDSIbcagHR5hr1FNCm6c2QRn69CoJyyxnZzAfJtmCchM9TLI0JZN9
jgwALsNy/iDimgVnqKXlbwvyrFQOPZUm8nYcqOXMOFoVZeCZ8ciOUXY02iHVWUaXxoueaGwkERpp
GWkZaRlpGWkZaRlpGWl5+7Rs9pFZTuJZanXtJwF2Ne0n98Ek+8rAMQLXySQKjGDuV4fsIdep/O51
QjeAdQxYGpIFDoBaGVzFnGVxUNcEmLgExQCStZ002orbI9d0wOX9e/NS04lxUF5aGTKhc3M6ObP8
lZ/WCCUW6Jk+h3Bc29GPM6C2ZSBLqpENsIvSJNNm6RbOLJMmNAPkHA+yZiWOyGKZlSzwXS2jsBRP
GTdAAzC2EtZaaENC+Zrweo7TRoRpQfJy92jkOS7nmzI64UGJp3RQ0htUeECociLaAVmSPK+WJYm6
dEUpwV9l7Npwslo8JesHFGqcyN0ynX1oI1t+axGBGJoGdTWDXuQADp19Rw/fSQDdUwMG51BQcA5Q
dA5QfA5Q5xyg8BygnmZQVthsTfNsYTVvWTxfjOWwVNRl57VLwhXS1WP71AiQOT/uSWh4zKp0QqR+
JcTBoBGYhIk1ydJSkkABkCYfbxdJWuztmWJGn3k/yIkqFJRAsQDJJoNtE5XKcquJCNKZSX+Tzg8A
PHsAARtejyRlQCGlAjFFVRdmh2nEwlXx9NWKslScF+Yfj3iSs2rYI9YrPfxXjuqOqCPqiDqijqgj
6ohqHFXiyc1l3hoywdrwBFao6Vy6LQV5VYuvlAZ/rOO6hTkkkn0BDuNAVntuTU6ua5IZ1N3+yTah
Ooc6QNFnn20qNbTV4y2pZXXtN6LZu9y2Uq3hVSj2pY/81sRbnYqxQAfFZiXTcVmQZCosp3NcTSMu
RZXFFoAOJpdhLi1WdhxbL28NmGwpUkqDgYo1Re2CET1zc1AtzsHxWOs3FJt6gPQOyRZevxKOEWvE
GrFGrBFrxHpLWC0EyXoMzPBjTHIr90W2qXN1iIwnetU15NM4EYY7HJUm8ccIbh9TxqBzsS7mInyh
e6L/SK59cD1N8nrhGNJUNS0oq1SKnlkTUgFVSRl31ijQv3q2EHtQ0g2L851tWM4XD9NaEi4D2W8U
XDf0qnNTwrJk48QKjbpuC8CBnoDAsaTImueq7BeRTBxZyjN4715Ecy1QWiyQthqvFS0yRpXmIj6W
U9V5gjWxOehWIW1UDLPf+AwxVXxqOyXTpGw6TeKUzlGesiMu8FGKGZ6bo97KsyuBjhMvLzgbVe1C
KBd456NGZtOg+92P22UYxLNozzkM4wCNVU4aGEkaSRpJGkkaSRpJGkkaSRpJ+i52glp3OZv9dsoh
1hU6SfhKcklGC1LLWcMHg3NSUGl5l6MFtwFM6dasWIbblUnrFh+CnZKNDaGnWcqDsNu30raudghM
gdfKuHmjRYq4VxM8FT0q0vHdN0PNalI8z+OSJLGkVYvvOTpn4AZMGv/2tOBNsoqVBdcGlnf234/7
a4ep0rcK9PLycqVYq+b/9X0v4qTJQI+920HqaBfl28gcnmRSuXqMVvuUoedpy/7w/FllZcgzaeO0
IpHV3CVu8WPdZULWXWgK8S1IQM8aUdOxIkqJHPFFWK6Pz0ePrAVhcKE6MIhdcSckFJyPHlmiBnau
cw6K+3chcAoJi+97RieBlu0MgmsYR7GVhLZ+ya16FoL+OWN9AWUDhK/M0MUdlTGOExgElBaKwauU
IBJKEHsGAWUSBOiyjURVhDMiTsjDWt1hDtRpJLBvEvDaHOJufsQXZAXIIOB17iiKOr24eVfsw9iu
RrntIXZdI+gj87jXNmxNWqTVhASEsSigZ1vVApPFolSk5RjNFnbMZgvLHy9zv32lGtPDZNcIHdPE
UbqS8VggWfdm95LHQpmV4VCL7GmVtCw8j1ELXjkK4e84sbK0aeO6WzvDR1/X4G8YkifI0Z0RvCq2
2jib3DMeDzRiaTq5w9q0/EQwZq1yxwjRLxEzoG1tl1WlK20rL0XfD9XY20pHVCria+PJPIPAGGK/
OsIRa8QasUasEWvEeotY3VX9tofM8CNd/z1DeKZGysjOdPVQYXANY510D+l+cCbhlNnS6gh7A+gD
PcRXjxym4+gfOFqRJAx5rhZpiX1830eapSX37fWOi5ghBOAp+NGnxMLDNYhcrJkNdColFjLkI3AK
fvSFBA0DbcYfS8bf1swGPtW0xKcZf3yq8TcCtLpORxoQhsDV4wk9kbyIs5REm/vm2tEk6udpAVul
moaPCdmkngvg9Ni2rSTXHomtfUW3DjcWJTElx0sbNJParm/Kjvow6oN5fXiKI5IJPU+saY2rEaTe
Wg+QBd0Fh9ZWUy/+O+8O12rgADxfAwLnob5st4XgB74zHGF1+9Y9x8hmTy05eX6fwwRVRnqqaScX
iyVuX+js99nwqw64KheuRGnXVUfWc5xEkzCPxFn77gCMDRcCtCHxC9foUaZUZHmWzpq746zydSlr
c4j0yKwNN2Qf2M1VEc/SsKxy6fEotjUytY0m48nXx5OYI+Sb4EjKjzcA7WWeW80l9V2FoRAp3St8
mCkhoKyJv28MUp6fAmygh9NBgc6eXEEjE1lZlB9MyVKd2Z4CrgHrokhr51IN8e3vqC/E1jK/9qhj
0dUlPdeUhpF0QhIrqljdvcUyR5hJlF4MipXS/xSQcvIUJjF15OnOxOIXc5KIiFMbPW+4CIvyNSHF
nJCSDrs5+V0QVwPVm3O1rqRbZtRtolNLWOeJnN6sbHsWFp2ydOJGIlmKza/taxah9RhGu96OYPfX
w079UfA9wJZL3bzDBNve46gVqlyIRDuYy/VsGI4R3yC176kWgzCjuFgm4asVL1iBR5UWpLTCJMme
C2u1yNSfSIs+QaDBknAMIOnNf/zjF3Ex2YmlLJYh6/e4nLVSl12la9A9BfJhf/KFj5/TvWKWv1pZ
mrw2Y1FUj2uvgo1IYbF282x85mW5FJtHV+mQ9ACHDUyns4HAcKA8TKNs0bB1N5nFrVID/dwwl+1Z
tv8Ho/QOSC8lL+IMnMC9aJaUZph4TunQijSzGP4BtYCOLhkaUocWG6Zn0yXIDZuQm3Qe+f5F6kBT
8ExdFOmOzQ00jEMN1H/r1PPxqo6V8PHMeFB7Ms2p8Vrd9zAtSW6tyrVYfea6ZnxAKpjfzdoxVFhN
2oBw5w2HE7My5bWlFWiikifpn1HYwfHYYjR8JWhNp0iS51muvI/DSl1tglP3wwwO2ONDvMpDsQHW
z2/djlO+k7nluzSuA5TQB9BzZxOcvpk9tM86EPvwBgdCtTfsSNJI0kjSSNJI0kjSSNJI0kiSXpIG
7x3ELusyzMu4rHNbD/V3CgAe7hnvbKAbMME+Gvzl/XudvHygvndFHnzHx44LPIAhPi97ugZMGNwN
nOPFt9VGqiVIvmUX965C6KihUjjjrOssAUSKz/3t1y87D37O45JY7GLSOuOSTR/2gnWgf2jzVpRh
SW7ptix8SLJJmMyzVkaPB/WKk0zmWY0riAZCf7gaHj2CA+yVwjge83R9o7lBvcrR5Bkj6/rzGRHV
HHgqF3ge5IgB1UfkZWY9kTyevgqwFMMxraFU4wbZcMAqJno41ZI0LuYPZV7tt41yVMK0co3njY6k
KskSKsrFUtsKnTV3yreP9wqRSrgDB+kYrGGWo8yqyfxIOULfv56hW8XuJwkJWRJRHeamBqRg4cA6
Q4y+/fhq/SG+nxc5aPj0XtnFtTdJvZEPVRr/WZFfogd4+5F/zHJz8ix5aE70fqAv+P/4wzKPn6hp
+2FR8Tm2CmHS3+vT7Ae7dRu3YZKBfpL9NzzC4PpG+LKUsr4RYSdNWZTTqMFrE2ENSljWC9hfVeno
LZd0Hhw6dvORfzU751ZgwGq0s3+S3iEkkRzZwFWJMOlCqY7k3NxtZyuRl2Wc11yJMyldqMFcbiOK
KySxrXJN3kHJVXnO811jYQwAKNRiQdANwTde8oQHMByh01D7yAPYQe5tH3N7lcDABiiANrr9xFSV
FA9fK/LDDbShT39QIPaSQtF/gMPAEKAv//ZfX08uIA8iJ7ChKp1gpPOQwmEPekeP+54ns+evnJoL
5HrsWjgwkItmKfgOyYdDyAfQDxysTj6Ukc+94ZH848jHnoNsDx5N/m95OFuE59OaK6XbcbDjYRjs
W8DVDg3YpyYoAJ7tB8iTEPQW6AHwcKU0O7js2Mhahrl2IcSu70jVos8o4DdET+C5gYds+bRhc182
p/1LJq635CQ7RCi55kuHEDTs3AbJOfCpqG1wSM69F1LnrRJHQQI38JGShj7cQPiFlNbHLPsWE/rL
yal1fdeD2OukVsOeYQiNOPABnfL27Y+cIlvrev4mCfN85GDowJqwiyEL2QjbEMqVTYfH+KYJZKc1
dAXEMo+NzdbmZKI9cflbq6+6vUbfvVDafcO0Oy5E2PV8Ce3uEcSfXO4UhBp4Xzm+5YjjRoOsxhD6
qSFzXXDErr+bgZH+Y/cnDkK2jfHtP0Oq1IssiqcxiTq4wLWZ6x8m9YeESR0fB4EDlKmtld7rT21w
TdSiIafiLobUs8D2cdSi4LumdnvvyFpzZU8kZ1luq6Nicb8Tzz4KbjuDSnzKKEJubyuR7WjA5dmI
zfZLgIIvDkM2XMzZY7vwOKI/mfrk4h0/tI+HU00aKMow37RNoi+odlN9TrLZ8XGzvjRQsBYFt7xE
4XH2O/23JHkqOJU3SNGMKMkEOOZI4BlXhgamrYvrNm5xSjUiZdmQwiYXyDZsVoGqX+JfCiG9Tfdz
nCQFSaNmaHNSVnlaWGmVJKw/i7UgC9b6ZpPfLmyiYuuSxKqNmNgGgb4gL6trSLIlC2oWrBOJsAeJ
jYezsYcliP77jmkUxYYkEmHNc+sxi16Fk8/xNPg0/Om9TkUOLpqSRyM4RBpPIZ0BcyKt7fCoReoo
djg4lrsQne1VkOvqhKKfLKn6CGsqwKmA7NNx1FMJ/kPyzEpIOivnrL2oOMnY12A8BvRibz86fQqL
++U8TuIlz2Gj7jKZVHlMEaI8fP6FG9r6a2K1DrAW2Hbqn+cGgZ5HT4p2MRQ6UnO3n8pXn+L+lbDa
07tluu/oBM5QulcIj+Hk2yzPqjTaQ2F3lCOsUDqDQK8Bl66vwFc51TsKtfGbV0o2pc7GF9axVLy8
B8gsfEF9qG+kgwBsmIAyXsTpTNIBEZrCzgkrmhP2X7IDY6BZITYqgW2K0VqxO3WMqrhnFP2AigFf
pX3YUfi81krsqql0NpRgPZPHWXKf5fEsTnndTcr2IHQ/sGD7MnEfxe5y6H0gXgW8tfKFj0RgbgGE
GB7z2N2s7b3LZlTd4n2Z8JPr4j7KKtbc/s8qK+k+hZe613V8BVnEVD6JpN5CpbUvgmLM7RIB/k5d
Bsz7PgsXP187lrDkGNmOASRhl3Gg0ulhH0lv5fRhPugkrBMcCkGkztKBMDOOwKM9WjG0NpKXMcA6
WrNyZKt+w2K1p9RqiWsBXZXLZc43GFRMjJMwjTgbnLW66zD/Qv/7hs4x+ueYJea4WEcnV2+IF0Ew
GpORh7dt1N8aRrFZOnihZ93gQjS9HexrUisRIDt4Yder7nW6Yh07uhzgwXDwtHBoP6IyQKb1jWSN
Ra7zliX3GDnOaBHe0kJ/zXLaU9vmygqRQwHgdzIc6ATDgYzLCb1lObF2K3vxD3G8wxnHwvRYlPM4
j1gPnLLZG7LO/uGLJL4MlXr7H2aIRxsbhlrbeNfTArLipyrjhEdYqefwZ0Xy12mVTthp90NEElKS
FRmtAHOn+3IQvEOwXfdCIOANwz0s2UGPP6tMLxucyv1zltXg7ZuV3zzjP6bRT42R2rca3jju42x7
O1JXUfhrX7+Ggh/Pf8GyrnKWe7O5AVTihnhKGZMCgO11cp2DOmMoraXSd3tgnCVTGWnPVObDAHum
KSOzacrQHAla05QF2sezGaxpGJGO67OcXsZjR7e7zsCvjHDVo/aR6JHoI4mmJB9caAAKvt9VYJ1Z
eOKVQE5Scyn56v7rC6EqiYtLI2lHUOgiF3Klur1LXcjXtoNHLyOrmIdLSUAHD3JYeMtfnsZRhknC
meTdz4s/qzAnwLaZQbzlH/5YPtj1q89Z3uqFBGCglN+BZdwus7wsNn37J68TSW6iynUpR8K0E9SU
kuSxvLH81mlilScPd3fHkaB4AcIhNin0unJSHG71NIMIUv1sz7QoOygYIMgptXHU6aDzu8gnXYs4
tA/UoDhdTsczeeRIKyPC+VxkEWF27jP94HZ9I8Hqm/9Tf/EjXTnLniUYTq8bEVTxjYhiG/VYkYDj
RcIIS+L0m8X0LIqL8DHZy6VlrfNWSkHNM6mT+fgVr+J8PtyPiC1T3Zecdjap4w+mpg24WiETujjM
ckLS/UxcYAZyzed+bYrjnWTYxQWarlH5UqPYp7JWp3pduVYtwuLb4e2Z24ejs+zOHN0ePhNQ3+2G
YzZCZ5sjQatjL1C77PEP5vJN49KKSBK+8jpyqulPkuiAM9iOrGA+xvkk2S82rUv4VFLa3WNYYflt
9CNxghuASsF7t4unSc0MhdpnBrl9nz1NCD93sNQsg6fUnsW9AMvgXpJlcM9vGdwLsAwCDaQ7fHZn
FC+Yqv23RVXWvW2XdP+TpUWZV+J0X+y6Q2eUHF1wH4oTaMIT7BahC3TLTywyrx/ME8nLeBImVpjE
s9R6DAtCHSeyuutrYzbEDYkBCLwhKiqL1tA9cf3fNCzKPVE/xt9Icfe4WN4u4gX5+rokD5zMG/aW
ILDT6tkCPICwaWl1rxm2g9+s2LwBYkPiFVYph877/qSlQ8m+O7GJVUypIv/7U7FRwWqqo+w5ZfTe
U1HFEyssJnEsDJ06Qx6+xecWjLBzT3+QiEzDKiktkk4yaZzARVrYSGKqT1TNvmWxb+W6OYnTOWH3
Z0drXljntAXr47SIi0LD9YG9WPxglkdhroB/DePVPL0qp5YvHBOlzhnqbNRAerggTyQta4Dt19R2
RhazRVb5Kj7R9JUar3SgbVuFbSxqIlrdIbA+xpojcYZlTehuRNLvBCIf6GKwaSImBq+3r/wDbvlL
8lLWD6JLSE7CxQ366Qbaq6/foJ//9fWz5ffpSHcOYp/jlKpyYQHogGuhmU+wayH2BkKuEO2rUC6G
ZLp+ZY9hTinXTOHuxM4LizsY4unsdHc6VJIDKbZhar6rtBTdOGUMC54QC50RS6mHi3+EbrDe1yR/
kjTdREoZxcfhpbzjighOrW3ZMWj8/G+SE953O0z+n70rfY7USPZ/jfXhxSBxH45QKDwznl07vOuN
HfvF+6agobqbWRow0C1p//pXWQV9QAFFcTTSaGPDI7Wk+mVW1pGZlUfG3gRWewqO3UeA52DCW2EE
RHV2RG12RP3qiGNuRxSv2XuQqxowL3OAUleSucINBkLY00M4I0qDfF04SbwwzhrqQhnyaGyd6QYM
5ixjxLWWgI4iXSAyT0auLPPFcUeenCJ44PX3KXgKIvcQbNwcXwqpm22Zbyq2ORanR3QGm/poKE9u
gBXOLYrwjZoH6xfJjyNWPWaTR4JOz3ltCCTUhkGNOIWDUbheY7mnLU9fyENokDU86VmaPBZXFKdA
ZfkNeFQ6XeZjLcvdfA83pk+/ZldsU3VjIObZ4+sJMSvqHR0/gBZlAhf0KMCXmgFX4s0ouMYFrjEb
7qV+qc6Eq8mXdbuUEXFpvaCLe4q1e7SZGFX7B4K/Tka1C0a1t8uodcGo9VYZ1S/OQn34WXh+4UC2
hJvnabDas+utGzz6QSvac5ARbx7jniOh2kWFmmZd0rBGu+3KSC0mUY3x+hpPBYBBkq4IWZr8+L/X
LxqGDgYEN9QYkjbHlnQjYY3SVvXRpO3HKHvE9sQjoaAWbDsQBwIUUZpdKpDk6GInnRjjwNXOSfoD
RoFsnsLCVz+RIX3ITYK7VRivyHEYRK3NjEyed8ImkLPnSAac1AjK0wGiCZP20pCOgOs03km+m7vw
HTs2RRsAB72NoDkbDScgOGWGloQyD/9KU7U3U2C50I4MAAVIF5X4LkiAyF1W/Kqm2P3ESTt4Pe9C
cLoXh8wZLC24DRHbUDRegnaYLJtbvgKmOj+m5nwfmIYx6n6BMAXy9hlB75Iw+G9j6LIq29YVpti4
wvJ1vg9MW+To3Ydh5kFC3NmXKESkR64frNcoha9oZxzmMlJ0gZvzzEcWBxH49fFp/J+Lb2j/jK2b
RijLWA1Z2p+YOBGDKEJpW6FLVR8DpVBeG24S29RGllxGemW2CI0neUpXRpvC0bDGmMgK1AZrN264
DaDv9Mtd8S/koiHyTkFDQvFyay2Vr/N4jZuZrFUnOH9JqMDxeqAawVrGLhppTTSJKVpjKrbtE6lP
O5E3BRG1EGVpIqbzIG/ov8fzHiQEeQgyEroKqdjMVwBNEdgnJSjUWypf82ISAirl+KTZIMibWr1I
8HO2bWAOQD2PxqzhQ3CXG0QNkTOGMxHsLvD9BovZHji/eUxbRzGewyBGps/gVLdoGv1BmXh8den0
X0w+LRFXNAJMURJC3ZZymxWpyt42CNlNN+TWloDda4yFnjHhW+5bQ5uWf+ajqa3MwHkzz/qQPV6i
FKEJpGN6RjKFsfabsg8VU7fHOFS8LcLLuRVIHgCUxAl5CpbW+FIsQvASbDDCGVZYGeyupRpPPYxm
9oqKVHio450v4ynFx7Sf3SZ1r6k5xlweYXM33bBj5h2RK7eVLXUoW1oHmCYrTX3RBwxem7MtChO8
AJPwof6uy9OnuAfUUPF0z5g694xVH4iHzdiRD21uPqrvvyPxYc3NR/V5l4sPvYOPbxm2Irw9sa/B
d0xqKpyONRaLPAnUYrhqOy6PxW2K4K7QOk6bE3pV2xkH+ZRQmLfPsc71UmSKnE4PQsdTT+bUduZ4
BGn3Q+wQoWY642By7hGeFJtecO1bg8cBbcg94Nwsg1zuDibtaVDVwcePofZH7TwEzJFxOwHlkQG3
WL/rEqk1BWaHQHn41Ptids6uMTJqaVd2TLAzEWzHHHOcR4YpANs5zdYIwDuUuwybixmZZI6Npw7H
azzoqUeAGLPkDSyPSedwpqpvGEovqEsP07lScIaKhffkpj51bzKyJmx7CHtikNb4M8reE9b48+nt
U3haZPHl8GxBp9dUtqEp/dFI8ZPs7luCNqR3XuCGjRvblDVhgCS6HB9yRN0w2brsMK3O68H8UZa5
gARrD7ePn8YbLJ4sOKBxMfrWtiloOgu2CzzSsaNa3Ub9cl61Xtdk2W6uXG/YpmJzEF8xaYPIS8mj
LQQj0VAubHVlXdeFrpjDsEiJ3H2+tiVIh6+7rxRb7o6qwhBGM0Ti7jNEotS8NEhyqXidrmPphqkP
gzpx42UZOxjZGoZQKS58xEoYRa00no1o8nADnLBci2r3ocILMUz8dgtEEgbgl3mWIHs3h0afCcNh
oGiGLQKUQYmsOIVjJY+9OLxzPSydTCp+gvyW9wqVI8mQC/M82Yt+ROJWGPEqltESr9ITi4TGJA09
tE2e2XSEOWN3HzJGxvyl/OEfzNm0dUUZBbGsEV4ElhwdXlHssx+aoPhamxj7MEn2YKssdVXtz2bB
050mW0XStCZrxVfk2ZQZJdwPiKp4JdJ5tA7VJAGxcKVdqlxcaUXNPJ2QCAIAWU1A1lhAFlWQ432e
7HM2Gt0GA4QFNaYyb4vPztYQclVTBmKQCiPtGM4gDFJBb59DmA8JTn1KY7zBOip/KByeYx5hwW5S
yYlFr4DyJ7WK5dV0RUIlVldS0BcnxaY2wTTgZ7MPH0C8PAmEKoa+9+IUzPby+5vEzbKnOPXLH5Tf
V6aqcllWRlkYwfR5fugKPluvEGOdA43xziXlO8MX9rbR1TGWMN6al3dvz5W8DtIsnwOaL7uEB1eA
S+ppmgiOEcH9mvDifItSAVk6AzcNO/rOFB/1Iiro//7+b+kpCMPf8A+LRk1sd0svBa0+e+s4rvR+
oi0hBqx02oPal7agRpAApyLnjvgrjtGbcLQ0Rk8qljnK6RJhnTPbxiiTDpmUBBBMnbyw2vBiru1p
ICdAe20zzNUQdozJHQiEdkn+0qotKrYtPjzEpRUJvjRBk+LhxVD4jNi2ij7GzAEIiYijmKvYf7n1
NkHfhPkezBVusCi+KFPJ9FbxmLeKLMBiDV2I5SZostu+uQe3YJUanTs3epGetynbMWfIY7D6X5TG
UoiiTb4VaWbYF6LmkRg0aeVrrEuSI2hIe1PfUsOwxKEifGki/xEbgo/UOZaxcvQ0eWyEB/r1eHM2
E0wR6H+AHqE75AdwhxSvnQwvtswReNWMlfhrktgU5PTSKu+qTDCpqgWpWGNuAsHA+FhyI1a1bktz
+mNUvFvFKZ6ED6S5170iy7KAeJRuFZuyRJ2vtZ5SimbJ4jDl4NDVsNEHKvPcSt2MrILN4+4vVkej
MWKkiUzI21bNW6aKCGIaaaudSs8O7w3BaWoevxQztJ9rFLNpGP0ReJuD0ba5R92VFDqdYv6IOnB5
h1Ebx56ON/Iy5JJqeOfs0V5wk+3oMVpIDqOzP5HHO66sP+NiXU2pyUoXH7mk+bxNKusG0GyeOTY5
yFeFyDebyKeBBNI6iIJsi/xWu041TXGo80CnbcyObFIs2RmCUItBLrBI1C4bUOX0FZ2BNr3Y1FCL
3i3V+4HfASfA6QnzofwZ8u/zdI9qHXLm51z9bjnXvlvOLRHOBUA7WFcUeYSzi7gAsN1/NDQbq6hV
Y31b2La4Bd4AL6aANsLu4gMqcmOLdPSM1tZO2e/4qjhYFGd7bwtVeCoKKP/N1jByUays1d/G5S9p
Gh8ufJgV0he9rVQZlyVbiVnZBZl3tgDwOGxLyek/9JEBEs1Z5APj1blPg/wFqxkeSpoKHSmaMQAQ
oqMuu8qQ5bwKIjcFYPx51gjsyOLA5yYhYH12c/c2C/Ln2kp2zAEw++ioRBGVsMyv91wPPoPAlA5P
BEcYMg+XBInM7blWKp09Y7GzlZRReN+5548GIpNgi9MBz9/w1lxm2RCn6fH4BBsekrerYRSCf8Yu
XKC1vZmNTPdZ5fzKzyTl9Od4+mF8wWtiNorVIngByv+f005XVuczNtT7+rMljmKhjNA+DcoyFo1W
Rmadx2wQPhppV2Qem9Bpch64qywO9zmtgZxhdSORnrZBjrLExcdU7W3AUPuDlXfbnZ+6Gyk+kEna
xfmpxVlLxS2ucOpGxHM+mW+1qqqro4yfbeOnf0PxC5T+MsAp2Q20geJoqiE/GzKDIccyhqyGdlcS
1ljSM2dSWVw4jDcCnj1BGjBYjQLq0Co8tkLPWaMTg20E8sjCcOtehR5CDH07XRZJkNuyKIJo9cEl
0iThz1OIYCDJAcuicJW6QQjm3qJmr9yFkrrAfbg0ovBOXBpJxbpXl78bl0bj5X5cDnVFMI26kGua
vh/Xn7quKLkkDaJ8wQt+jRfWwg6ufeqGi9x+iyIKgrIif4tCf1lzlaQxuEDB87gouvKlqcr5YWmC
C+A5fOFn1dwEXsRbNJvIOlfMhyANXojc9MqG+rKdBe/2+bt9/m6fv9vn7/b5u33+bp8v1In+bp2/
W+fv1vm7df5unb9b5zNb5zx1vJZondNOoCTsDFK8oKZIJS2WRHHIvKGxdndobMFGvnVzaQPJ2yTk
7GkbgHqT44O2JS1DUVWOeAVVHoFJ9sjKZCOrzJHzlxBlW4RXoY8gYxFqCNaDbJyljl9t93KGF8U0
2RP5ozI0hii0yUbWKwHzlephUL7zgFLo2rZ9WaWBDzgPQY522T30OP3xJ0XVdMO0frA+9U/+GxP9
A/ngI/ngDRBjXFUuxmRT8WGJ1H0qPrAdWVn8hL0Vkj+8xpUyNY9LGuUK801pkX8iRON/r0CCu/J8
9IP8eb3ZBt/wv9dYdR8/ff4ZQ+MJ+PK3v//yK/3yauIwPv7ztx+Mz1QmxTc3WN/Gf5o/RugpDCKU
1SpwzyergiQqsEXRRwVZkERF+Uro+9Ah/w9L5+8d7R2tGw3SRn+8va3ZhlEckWoJ2Pj80PQ79Km7
Xt7qSiQfyWkkGD6HMgYSyWLJYyil6r8JBvr9hbocnpvpe7UsvZ1tsXgRnHQgAVLpDY7VfHzJ4/9i
nX92lb9bZlQL0QzL+TD1FhL8C6oHPX58/PT4+fHnBZ8qQO0NCWm7N25o4cR7RV76MVhQrB0pthY+
xR/eOI9nZ4foyTMKv+br4/fIsCMvnuE51/1xXnR1GfMyr87Q+CdFwncxTapcTpNWL+Q48UTVduzM
gurwXC6cvIncswXXymn7yO9sv3W2j6qb9j2tcet4c35PK9yeSEF6SjF3EmYwkUjZNIjsgS9Ijx9y
T4Uunphd7AfrAPlFVRja1OE23yU3QPD9iclaO7hB1NGyu+LU9Y9AUs2mKKg6HCGHhIMdL2z4JTcJ
oKFpf18bT0nB2mQ970IoVVSEXVUXNPK2MSMaZFyk3T7MA+hRK50w68FRhj4/Jk/jkkGYUrkaWeX6
pbcMzqo7pc2PeQ025e8E8wobVjOucDBdYdlyldoc6aw35O9iW0rXkOIVVqs6P6Z5hV2p8PRTvTKj
tLYupALQ/x67FLO7mPGUNlQt1ugnPg6Bj2KJhitD7013Q/q2Y0WU6MSk18Eu0W+gIO49+eU7/G2V
FEe1uU736YkxueyXOegYNinQI4h08MVGSCbh79hLQBHmlvKYb9M4z8OiJjCxTgmLl91bbzH+Tfmr
9w78j/LuJklY1PcEiivkWQ6XuWYvmzznFZJXtn2i5mvghvGGWQRekbVpZuDCXj3tl3ISlJqTWVFV
xXxdtGgKe+pJfXqa4FOm9rDqrvP0XpuHXcMwLAF+Tyh0sUGDsZwUxDgjhf6f0l3Usz0RtQt26I+L
M/SGjPBTThpK1Sh1HE21XwOhlmbyNNTRVJZ4SSH609kP3zbc/5YoRK/jC17TWMcXEHaXhG4Q1Qw9
nmPlnTIByrRmylwPWiNIKPLipjNHkXm6ePcBaeK/VTvSsXYkvQ06Vvs1FLX2pdSNNrRiN5ZtJnn7
NMUnyB9BQ91uheuC0YRO/8aT7Mk9nBalId9EyfZeKVSRvR/Ed/gXqkqszNN+8vUQajQT6rmRh2g2
LrsfII8vqQ2AMRNHJnXMZOPlLaieLIiUFguEtk12V3HKvOVUWVeWwauucynkmjW6yqYaZvUdQlHl
hZAywhKYnRa7azn6kKgPKdskUJ+1Lh2eNjDzMG1qlmn357rC4y5Bm1qDK+WtD3suEdooc59BYQCW
yC1NYJZbjxWNrwe75nQQnT8F7KZJNtcqdaYnueN05fLa9R6T1wPXe2BTsSy1rSWO7Ezdn7ltTWD7
4kUqW6cylwXPE9Ucy6JGNbGqpRVaxymCJoquBPEgzANY5ljaeoslV7TGZdtJPMaY3qL10hI++zRk
a/88bWjYw1d8GQRtAg/5dOC8m3I6CujuHSTesosVs+GkMYJwz/tyka7U0CHPc0nrQ+Tf7uJD/83X
hTkXziJ5G2lfcOFoii6PsUi4wBTdVBRnyHE/hdOUfvUlTu/1/s/uut68M3n8po45DIPTB3iht/P4
ADXTcpRlkqbqBteVeAXSuC8Ubh8BUTya9A7FcJxJwCSoiYfSenmwcZnjm3hdljue/PlM7Xe6jnSZ
jjxQkKdQBNa61BXh4eePwJiFDu6TwZyBGF6ts0ZLlrkbKCrppXGWSX5MGhjTj5GEDtAg1A+yxM09
ZqN3jGiPDps1uUiwYdNiFjejnCk1LDysLqLgwO4LzdN6uwaMVZO7v/Zxjje5t4Xe8TkjekvVHMGh
sXYT+W7qQ2g/OnkTqYfpVBSSNMEmz73kYiNKFtRcbG02bui2IFVn3gegoQoPM3C3jmNGyVlNnXUi
2GzL07E9DbvAZVZjs1hvvMIeleuztd4kaX161pmMCs95F6NzMkg7Y5R9m+E+YAtVG5NXBmg9antS
tslmgrUMazqIDm4Y+M3ca9boG5mJPaLs90mCUs/NkATfNrKmycN3KwuKEc1sCU1i5t3psiK5YQ6N
6HN8pZbrhtG/fskQH3//B2mVnmJtSyq6crAEYuiCACeBXECpt0kNwx4XQhOEsDqmqT4sT9Afc9jP
v//jE5Xpb6SkNVVDmdqnzWUtV0Ai9xBsaFxs5cWk/BYz8+Cj0H25V41q8J0pOltf//dvX2JQp2Hg
0vxjPZ+YiiDCiRsWFjb+s8Omlp+hCoK5XuCrUhI8I/YrhC47Rv+hdVnH9kYqZdt4H/qnJ9m72nOs
NYRuNsWqoyyR4pNYty64Y+MoKpqCMO6gAbOisbeYrtrDFyQZ/66pxZ5q26MiMJKVdW1UhCSq7iTV
lEdFYD4cjsXEGh8Ot3m+rlnzOk9gsW5zQGRY1YhTbIhU5gr2gqrxZJb0glkxRKKYYzFzEsmDojmy
o2q6bBu2JSQgfsDn+hLgcrfwIDwDN7e10raV+2BIdxK4UgfEIPCJ/7BhzJJmG6POUq1giTru+Fpt
fGv0hTvZUiVnSV2z4Huodlh3UfYSecTg8tEapS0KuMFTMYGJUVH8KGQBVDdvecIhDbmRFTquRHN3
2CEhii0KceLkpOyRbj+FBqvc7LLNvXbjxxGqVbI21YlQVYKqCmQgC8FpBE4RgdM6xMZ0RPO88TJH
5pPWv376+rVBYBybytAZwCvXP/kGw8BlRm4pFo+Syhz/xFgdifTfop/c27bh1OU0NeovX3+XmMiK
MTHyPl//oMr27Byv43jlpiJ1HIay+2hfQ7wg3cf5xQuw/6PMPs0Ai5fVdYB/nB8WC/jxOvuXva5m
mWfpKvOMz0mJha1MjR26eRAxcDmcD4YxcG2psqp+IDXR0P0398MBpfBkdl/PZdYEiVntV6sQ0ZJq
xJ3JvH9VUxbl1nO9LdYmqM7CvtxNHqO7YyovYaRsv1qnbkMWoqML8xIdoCyFm4OXX1qn8U4KIg/r
z3ji3LAIbGe5Tnmy3js4JINLYBWwPOUmT/iPwXLBwHI7ZpRidqRt4PsoOi7MdYBCYvG4+5CpdNq6
0wualpipyo+HCpZfUdMm5Zs8tn0MNgazmAGPuT0Z5zy2+FDOf/7zk/Trv9i8X1PqPcGFeIc7B87f
pgnQrrrs9ekn4Os2WOePv/7ylc3+Ndc+T9jEUPaLZPuW6A2T511msjnQZ1gC0Bl7h/JtzPQOmYro
4SvA/sNj8dHj/Z9/fJGqxpym2NNPRxyhgiDWbNj2NU/E0dinoSV15g9uuGdqN6alXZFxc5yjAFiM
9xXGmb5d56oHnzKAWxg5iwKo3YHBffp1U9EU1VRG2dyNoKxCkArXicJynHtx8kLiJMIDyiAFscHW
ULW2UN0+Qz8kbpYjFkAHB0YNpjHr6Bhtfcw6WmNQagtk53+Gosi9/ZZsTulH5Hd+UL98S9DmlIGk
a5p1ykIya3X+LUeWe0/QeW7WjnROx5QImihMAaRutpVo7UmoAe7ugvBFgvedtcvOANd5alY0YCE3
Rz+HxKb7J1SFTjCGwnjMs7nM1gpGhrx9GuQvtdBvYq4SnQOmrxqIYCiWMipD6u2zaHZxDxR25IZm
O6IoEPBI1TI3emkMSLQMUelXYi1JsCfjoHL0AQyk6BukgZYMwOmf5WngkYr4bPeB5SyUH9ojoFi8
Pl7Z+DbDK8F/wUdMjrwtKQ9FNUmvqMtYphLvYqxQMLkVvgMuHrG66aI/7Umd6QyXBX38jjcCGb/C
UmCekqo540wzI1W5npdnns0ogyoJa5R7WxLEm8bMlaApij18+lhgjA06HdID0evv42h+yPV6dsx1
HM+HWUUyrzCj5gIXzmQKMLR2qynARb83ov8ahuq06b+KglUg4wqLUFRM5OGmzC1DfvMThKLw5FTJ
8shy8aFEU6dYdEM22sRiYONh+DYd/IJi/SgrTTKAfAMpoNdgmY9DgSVivrBLa4lCot2qFDbNKoz3
eRiAeYo1maMrA3CbzHulW0duw/4EY6OU+VioiY4MiZJ4LZMw9WqUerfHv5FcmicW/ydgqyDd6mbr
yGVbql1T6QRd7iflBocRScOOYM/5FDOIvHBP9nx0wmek8+oGB7zayF+jK8Xpdjk2DQzVBrFUL7ch
iNk2RYd8zlMXm1DQtuKYFBhi5XMPW8TdQHnaXEJ/7YMDq8GVbk+Cu3NDkAzy2c4ufRrQwk/CwLQs
bQpIFpLpCCKt3UOAAaCWTeNlpndnfjSMftZOjuLc4v/Uz0b5lQwvHfCNvMvGRSnHplmvxD6m9zpU
XHBXITtU2HTs14IHGWjgOYST8+hVzNAGfFdwuuIfZeyHDuX/23v35saNLE/0//0Usxsh17ZtlIBM
PL2h8NZz7Olq29flnu7pjZ0JkEyKcIEADYB69I373W9mAnwiM3EAJEBKYndZoigKv3N+efJ9Hp0h
s2VZMofdrkij/T27HYBwqhBhCW4SOg8F/PlFmLG7we2CJ44ScU81zf4a5Wt+LMrWuaymKHNAFuZG
7Dqe7p+9bs4wZFGQAGelxs5b6SM+EOmlQ+Wmw66WaOfhSdpZtCVPKyJOIxLIT/ubB6EapvSgB7Yo
hCmW8zfkOnkahtcxNLslCclCnoylmlDpIoXFQhds0BOqhjUYXxn0wbZBVn0fZEEGIJE35S1tjphO
2jnJCqMazMUDgt8RYaeCCEvcQHzr4HRFLEc3tlAVJhnGHR/bc/nrSCWtMsiuE05IWQCJrkGLKdsF
GizRP8vHa2zuoNIsupVknXGcjoLs7bb3jtf35RJnl8O98RomB9DU3ZJadu7ShV7XxMpR9xyIrVCq
jFQ82ZeoN1sm6gcwj5k3bcIYxDG5I7GRUKyNR4YxidPpl/JOoUqBIOITtNRtMB+KyvbSpVRV0Cht
1LRYbA92hMO/bffGxtnMKHU/aNua6oLNPah93aaOM0/Xyezw1rlMDeB3fHrLgzBs2v2AMrIK2VKH
e9Ow+TSOI1lyKWRipzdpDbjGSrJzRZbXG5uloasiQx8WmThezuzKJz9S5KbH3OmzqSG/PrRcz9EG
k6QqJARal8iR+JQr3nEFvduDdhVRODnvQcBjZbnkUbJal+mtupzx+r2wu50sm6CdpchxjHadZEYe
lKepluWhno/noyu1N76RnbCcU4uMzMVxL12x9kaK1qiWZToaVRRDuFg3xPe/LaL8G/ov/IYtF/Qh
/h7ehdWuZZ3FBl1krarEQbn4GMDqCBSHOXfCieYRHZXoyJ5LbNyxgvYQe3dp+zhlkDXdBt78tib5
LHy8Qu+ukIks+uWn9I69NE2ffjOtK/zGxPQLxvTHf/3Lb7VbsgGE+kualAKZ2PhIJsZ5CIONv4TZ
mciy11KBdw7iGFQYvdz4GrjRKlDQgx3tViy6dY6j5AtdHdIVPTvZLrdp0iNFbJ43SlpWazbkO1rY
pKx8OF1KxyHfJKR5Lj/dc7B67xw0XJtE8TqTOI321YDNesZDHpeJQo3S2VKQKgkHHZH2vTGUmHk9
MYjVVzs+33Ov3i5pkxo1Cmn/U5yL+107Iq+mRBdaFGnB/GxZtSU6q1OueCJs8RG/1VsdnVcWQrWi
nKlx0Oyi85mgg62FzKczTGYTwhL9T78cJcYrTwa69vfdfdt6sowk2ZPajVTCOyN+AUami5Q7Le03
Qz2Nkte1Q9Ll7+GEI2oC2x5gQtM1TyW0Z6+LuW8sCFtQG8y/RHTOZHY11HTCvd250xA/Usvvbrfp
P/Pon8RIyC1tnXKQ4Qkwaxcsvtm7P0ZJkbHblamRMSSJF5jrAyYBy+qrpjD2wsNWR+y9UYeCijWz
PEADWrZcs71zlE0spPSKx0EdsQq6g3xdAr5mzmCvab99XZa+vI3mx2OQ7Z03TJ054boD4svS/Pyu
XoBBV/DyJqTMHbc5ty4DtYRZbD2II4Clvvdri4khV3QdMMXr0qehniAA7TYjJEGO+eCYR8lKQWEU
Er1YPnd2p51Ht8nGRbEKJ05k0SBmu0FKPPGLcHmlqT3w+hrA6dyAqzSOpo9ssCe3dGo2pmHMqihJ
q9MCSrc0mkplHBW0JVzFuq5mGCS+0DA780ZXNuUq0Jisi0J8W4NxoMEm2iwGrc607Qo8hhM29E7i
MPkiPiO37N6NI8PrtDtr1IjVa8mSMJZVd7U9T6tG+3iKYRd0f9MRdggm+dKJ7zxzYX0LR582eUFW
SOj5pxcDixSxfL0gttCD2u/ZHFpbuCY3fYulzKoLDtoSSlDmdCEpjrvovpbbl718vkJ2qztKeQhT
7jRF5m+j4Z6NArvns/lJUnnrRe5l/q44gMy6IneQ6obLMc3u06AD8fxjCIf8OLw6Uz+5S38EvoAl
D3SNWXDv6jSbSYzVAs2zaoUO0iHXciZYbn/GtOTgpjBuA3GSChd2x0fvBUdv5jMpS0FvDG0seXKW
yozrZYw+x9vLZyDMSdgVr9ZdZmSyvjUm6ezRmITTL7dZ3VcKFsHZDHikl6CcmaOBReE5tNmfr4Ok
+N16I4CfAxT9dpakzL9AckMEOSdu0CGjG5B0uYMRrGqQOQqK1ZUoXv6OPv/eSFfMg50tm5N1LK62
hBDqrc3WO16xC+iqTHkVxPJUhVM2tqyi/R740HlfLaxlVHPe7Co16wgbF9WNm9gmLa04pYqvp/et
NpExq3gb/s2rbdBJf0XXvOyKIrn9in2kiJb1MgHYskHbD79J62WYC3fWvgOx60D2+FV5f25MmTe3
eJ8Lan5AaY9DKPEZju33B4NEfpRhEqgrc+UZDo8H47dJljshnePdG9QpA6H/WJPskXlohUt+J/bH
zdUHdOXbV2/Q1Qfnyn9/5R+bnm9q1C9+1vphJG4/y/bQM1Ewfo4K8mPOhi7YEkORjOBIw0GViZ+C
Mn6H+ZPPY8op03N9bUTKOzbo5uXMzELei5+ANneblZvUSUC4HvD6Lz76+Qggq5M2u/Vh1xQsyGrI
Asc8L+jz6xXfYHohpV4DXq8LkXkS5urksWPNbcmTd5QdYNSsobPkdBDLjLt8s1QXJ7T0Oj59nfBK
HyxAele+bsVyjwoty3Ot3jTVIQXnDlZXuibHy3DIVk34pKm2J/2u7UlftD2JaHtSrO1JibYnLbU9
KdX2pJW2J/2h7UmZtifl2p601vakQtuT7rQ96V7bkx60PelRnz21KGHedRHxT23SzrQ9ydL2JKzt
SUjbkxxtT3K1PcnT9iRf25NsbU8ytT0p0PakSNuTuq3RRGV2552eJPJKWGh70q22J5V5SPYXykLf
N8gJuvj5zBVMebxlBRDnSqR2guGOgh3O7yBJcxr1ip+lXrKDJxz4T1yv+BnpVRY/YCdsLOVNr3MP
1FGE+yiODZ7gJCNU9Zxt74t1luT8itngcaKV757ICd+0erO+7w3Ks5129gSVKMivzmdpwRMZiLNv
ef0ezu7ljWJBv9xnkSTGEeLuLsZgjyxrnzIfA/lA75hu78bon6wOuVId7hcsjfJ9GBUSO0agmdAd
WgPRvQL3TBC6Z0KeKDohfljGRfqFJNE/aeefpTy5WZmwaVUP8DI7psw+vA4RZc0B9i1sDsw6BmdR
RCKArggPeVwYrC50tFylmbBfYYR7i38EQ8e4SBSpDvHH7YKU17Oood5ISZqvpwuWGj1khQRqYXxd
EcI1G0qLaJunoJofrOPf5MxJqUh3nygreymyJjiWMplBS3H2HGPpZ8oJYN/T/fvNDzfYPDwAoBJU
crB8An/NSXZCcTAXR3dbHUnD1laC4dMNTssD6jASPkce8AEP+MXy4B3w4J2SB73AqHHw5FmeVWMn
0i9TvxF0Xxpt9oI0jqPDCSUxm6NCjyciRT2ovlBS1CPsCyVFPdyempT+IxxuM+qWsW7b/E9T+hn2
l6GssjLkxKultKq2K8VjR3H7kp1mkNYs6RArYKxxctt8cD08d+1oGlYwSS8NvFORAzKsobcUuPNc
fFaGpabpYlh1wxp6j4Y7r2fOyrDUNF0Mq25YQ296cec14VkZlpqmczCs/k1lt1qwSlLTWKBEIS3l
ArfUOCvQbgLhEQWSmAzqdIzDk4iGWXG9qTBSRR9IigZ4yOoDstNk+x5nNEoKklH8G/OraHlr3aAH
ZPBkajyih76FbsIJOcqpVl6sgMpgYSyTaPvKkNwDYseB5BWEIGwSM7NUoQxtU61MggoZAmwZapVp
LLpN0mxTL0aU+AdDiq7JYXgJAWk1Gt9H/Wu09LveNL1BL0/tASz98C12q36Du5QixkeqJ+FddMsH
l+swoWNIxopnRMKMKRjiOKF4/n5oTF5M0xmp57HwHIhTAAikyhGNxBl/LM/zdbDFkybkjXeRtqtL
rb0SVpUIjfegJh2fVfegENhblvRiuoji2T620K0DdIEOJfZ28kWcedsejE8JpAXK9g1WrOECBlSD
uaOCDdCBq6ufn8hoxBm+vKH4FBoLKN8D9psUuk1ZViTxaBz0AthLjMtq8MkqqlkY69AjX084b9Kk
1qBh34c2T04KFgPOX//11083ahUhyaUU2KyFNk6V8vyByEKaNKzjGQsSryhsfS3nBP4YqN/XajzY
T1BZjlWU2evlFYlt0DIIrNsBniQJsOtqQuRImx8NixVTFbnXQdaRQTcFsfh2y9aEqE9B25TC8UqK
LE1SqdIiIlmYTRePPCWjPG8/ZFpVoA6ipCWFm6XT9ZIdB+2uKOnmkTZntCTpuhB7PfeD3Et2dwxe
3yk4kJR3PfX73tKsoQRUSCYaDqqul3awZbrOSXonngtdSFbzHnB1/bQDyvs5hngnd8X63uqEhlqg
yUMOQOmbumLVNOuN9piEy2i6qfSw+bEqEEp7OpUke5QE2DitoMsMN8KRrKFClQU5aVMouSl2Lz+1
Qb7TC2EvYKrCqie3g+TRgygh376Bit6ciRbyPRuCHN+eVosxiWraFCJtugy0KTwtj/MwjvlAVu2x
5cUpMWj6uyijTZk0uw+zGS+HIs91anmWrkGtDrg9mE6TIowSSZp4SN3HfgII7wstWxPswU6IdW6e
IO0GOWat9BwAEZ8R4oZQunumRN7yZdM8osCKlaeFIGnLQGo2wYsPKiwEuQnuw7NlduG5oSxHz/s+
2x5bHwXibWpsTl3KaoKyCc6DRJmCVGMIDG8DzYKXxeOdXsSM56UzwtxYJ/T1dMFSY4gvF7xewIuI
5XkvCxQYYXndxrcRPGlmnvNKwbuOIo7WdnQZUpmocx9v1Slzq21D9i9DwI2rXK01i2KVlxndb1k5
uelCUi3P06SUANCwRPEIvi4aq54ouZh6smqJEJEQET8rRCy+/3N7Qe4lIKFom62YUSYZMhZ0IReL
F40epOaE7QB0BYmwue4RDaqgdaQDG3f2rnWPBOCNkUkGdgS5V1bIcMhBM/t0EvU0Kc1KahbEWLH0
HALPQayLXAagziuDdTVjeEeMX8T6GJowysTVMtJQP1V+D+/C8kw0jpIvKlcsXZQdIoprfjg6dVK4
aGjrzsLjnmZNESS/EVxTle+GVkqbztGwMyixGs7RXCn29qogzHnJ4XA2y43NgjwqiHCngewxQGs3
FtpgFxmZG6wSFExb0E6uP2xdX13AGx9oYOP6Y6AKWlcTLrxhQWuLXoh1LftjfiGzLY7UiwYUz6zA
YeVCt9EQinnS6oWy57C9hyd2YPP06aOYI0GXom7XobxJSwviAgvVUjU/Yn0wzbPjoJRqmB3lXqll
GEFMqoO36tCWXWxHYvsJIIVubW/0g3A54u6lwcMksvWKnfpNHpXnba6HdaHuDIku/WfrmMhDWxxQ
75SjrqIHOoDepq9vo1oqY9C5jUIhcr+pK7lVqBqlxTEDJtJkKLtsSOLFC6QHBG1wxD6UoCW3HCdJ
jf3q3eK6uBYyA03a1PDkbq+WCQnyc0y9qAGk7E9rUCmc6/fTcR8kL096WGcQjpGQe4rWmu2ByrW0
Ib0BqmU17wn39K47auNBvPuBatGZnVUanMSheBNPRy7vKelW3afuT3MKV3AP+ZqUKwksHorv2x+U
dVFH4TccBGgQTCGW3w9rFWY5XX50cSrE7exyYKdClY4k4VWAd57DzOGdsNMQIk6ai7qwerSW3Feq
3s28fp2an0FP0/RLJKlp6OqazTScqh/jlHIf1BomxbvyTUGxNEOXmfU8TgfRpTxOx5DdimM1tPpe
eGyZWJ3fsXUOtGmDJ5x7IWHajqXF1BRRv3sIA5qA1ftGxcaXJjmvJsGQYilNTdIQg+xDXCM1tUgb
nLNuF6vn6MVq/2LTYju/VZrk4uhH39FF2GbDXh6yVJAsmDQvwmKds3SEX5Wr/ZvNR+nKi0u5qV5S
5Uopc1xVP9zMwzgn7fM9ghqglyDlOYSno5HQ+TQS0tRI6Nk1Ej6fRsKaGgk/u0byGhrJHq+RvE6N
VGRr0j6lXzuZuwgCjtVoaiP57Z7vajLG0qF4ERZcTXEEGka6WOWnBWVTCwqDmxrMepM8h9+wWUZV
Y1t4/RUgewC9dpCr+tmjo1tBoV6WPUp7gdRpqI7bMwDBQRCyxIX07FaPH9aoG9RQNLbte09ND9TZ
XwGmB4OiP63jQlRhTJsa5UZOkhrUxn4vnENtaoiC7ZyrlT8IIuQG/5QqCttu54NBik2opeBqA+IZ
oWITiAVdVp5EKRFUs+MRCryhOzJjzbItjda3Rfm+jMNhzvD76t585m9fIZP9hn5jUtNv8zSmExiZ
0ZeTR/olpP9t/uargjwU84jEM+vmJ3LPP50t6Tf2PvspS9lPLI/y7qPo5qssnEXpbZauV9bNnCzD
mHzFDz8m6QO6SZOvchLTp28+EIUlUJiR0Lr5S5oR+sxEDXeF3jFNFtGUqZIv0nXMNSBceuYZwTW6
X5CEfSvfZsVS2dNS9mUR5fQb9+35aqPvD+FqRRIyE62GYbe7GGZ6zSsgy4J4LO7hATYCe3F+x9YI
W6pAYj9Z+lhFCBMC3dW0olE8eZma9BH6hTWkJwWNH3ic8QNfxo/nN34oBg4E8fK8GN/F+C6t9bRb
y24zVKDOWWgde5yhwr4Y39MxPjRoTg6oaSvSDEEchkEmBwBDnvO0ulGpiux8SSN1A8Ks1vmC3b0Q
Y72a0W+5On+zF2hSqrzEV2FhiPO9Equ0OHZPLL89Ae0OnRYGTuHqm0IEicRwnJEKOiiBdqQpTswh
tZqdzrG0UirB0UJADVXBV6Y2lKZ4Mgw6zGxpg4eoNYPErjk0pjCWU1/bNUa02YPaaP+INoCexvRx
KsnmZHua26/EYslrjm3FxsNAoY5Qbm+tyqHS7YlVIZRu92np/l6uJcts3aKIPJCPZSsFZfbvgCwE
oF+alE79m/VBU8C2B8m/105HIXQ9GTrIUboVsFJ3QQYkkBuBNglUSXYhtd8G4wK6P+ltBPLoD8/X
Zv3l+hts/747hBmqhBBEQ8JOL4cTYhALUEug6g29x/oOQxI27bEpGMYSKugVi4XN7hp2iLarfYYr
9iIQ+baxvm4IPG2gctUsW9OKgSkUJrN0yasU35EsX+d07bxkzShNxYgsS9u8ysE34hz/PGRPPgJ2
Ra4d1nPT0nwRWnovQkv/RWjp1rDswbDOpimfpZLoydmr1wEYd9XSe0pamh0N9qLkudvrs1TSewlK
+i9BSfQSlHRexBwSvAgt/cvQc1kOPB0l7SE6ZUxf3JGqkJgiN2ygE0fuMuCADs+8UzqSg7VUuA24
vZuNne1uKzFIM3jBnGM8sHfRLlEeZbV4XJEb/lMtKeAwoJtQag5OHoqbj2FUO1h+zvr+EuZ5B319
sCFFCkvCPZGamI2E1AbDoOoypaer8OC2lE5+l3kyDW5LJXY92+XzNaYTazyANfGCA6XPKV2X0LEp
jsltGIt9SSzNYFIoG+mz3WPQFSVRXJMP6VMP5L/r9wXkrvJV4T8OK80jiF19hIpRxcm0LdfuZzSb
uPNq0syNGWNUnvDcdnUN7dt0tB0ypyn0mWZpHJe8hfOC5fGl7Bnkj3V0x6yF4i92BU6jGf0azSP6
MSSpC984APjfmeZzF0fiIRAAhEHnJAzuJYxw0G4uqExxnSeAu1clR+Zm6XsWANQ9L1CdSZTV2sXp
PbRIjaNJpWNMcaEat7de3POWZfHkebN4zUT+dlmTTOSK5TTnDPW/sywlKssgnkHodHtBHdJ5ACqe
6yGaKfjcHt+oQnUCXRjVvM4aMJdti5sjdpRoQ59XnS94jWcxvea5a+hBNFRFEFm6QJR22pzJBwqj
CgM1e4HoDF8DAtGdUDFNZ6SDTy6Ur+aaWrpYGyQCSYldJTDcnEKnS0WpGM8MdDWaBJVt+sQ1F3x7
aOhVulqvxGkDvaGxSTLrvFay5BtC8BoC9YLZU7Bp/WAjW6NGqmkHa1JJ2CUb9USmqVFP1eSjk8/m
gW5QVjUMdHJslhyCPjoRLtgBZ4LKh1fdOF0RQflccYU2zxwasV7tdEhM8W4BMssHPQBrOnaDZJvj
qNyN59fkjp25xBSKJKrjQAeyZz6GOtqRb0ANtoxhkTf1aEeEvD4wv2+ezZJGhvljMq1DWIGjhbTc
iBJjFvGs36G4MJSPsR4ocWmt3g/f/2mbAHxFsmWU5+ytJDWmYRzLxmMP+wNLID4QM/uiVkDisyHs
9X18vhAvKelGAPV9NrvpmT5ez9L1JCaGDMmzbE1AcvuzTBxoAtk0fIO9BbatF1BcRc7TBCI1A9fs
YAareH0b0YdPM8JOVe/86kiuurgWNxHqwtgGaS+tjQRT5YAB6aXIlOnIijrt38sbId+gisu/+vLK
S3KMfe3aoJlO0F0xnj4/i40JmacZWZfFDWfUErP0MTfKTwn7M2Q92Kxpw7m4118z4TYIMlE1C8+5
WrKsF/WrxJ5tQgWvqOH71GS12jZKQU1fHBBv9tBqv9y1gjnsOzqYE6AZ1YmPUDO/Oyi75omNktKS
zIws04KI04b0AEpW4SraFlsxFiSckUy8OzYhkyGyoPaHBPbnut0R+FqV0xWJs+L4kDNXdFzuoq7A
bL1c8ZVxPW2M1138YhFlM2MVZsVjVYWTj54rtgiPo+mj+GCkA1/1UpkV3LqI4qh45AVr6LSePc7X
CV+V35QF4qpymrVtgHLWaDSHJr0Vc6PFtiAqcHRKzZ84eE6Kj2lagh9j+6dVvNnkj0TIyXSdUajr
cr3AR6CqPPE0jtjGXXn8GPg9IPfU3oMqzyHoaHXDvBe+uy4H/AUdVL6jDzFFf87HN9mSgw6cLZqk
7dMtyEK7Bek8U0imJh1ydn8MWU8Pwo1LD82gGA8FDWxHxhwCqowe9N2MHSx2PTEFtGmUJOmUmdwd
O10Rrr7coJdGFIAZNG3ZaZ5n65g7GMob1ULOiVqVive5eKTrgmme19q0Rc9plmWrXjdZtAw0YgDe
rcye44T62XptSTwU+T1h7kLa+dIsL51yivvUWMgK2rmBpadB9lDz9aSQHJm4vt2zdcIJXT3FcXUn
Kkz4hGzIWI7H0gmfXqdKk3KDVVrgLCzC0sl3KblZQhi0b22BeZjRir8vRQ9Mvz24jnGUNsbrVXLb
aggFNfHRUwdq131eS6OiW3k+DkwpJ8xfNozFm19W21KXHe9jjWLOIrXFWjZsK86ztx6oN6FG/IXw
nKv8QFJeQB3b6NloWyzYbae8ZS3PMsfR9YkTOkuna+4+P0uXodhukOngASVQetJif0BoMSLEnUiO
uBvq2DUvjz6SBB+BNvaAdYkQsYqVPrQn27T+5ciHI07pYDE8Mj8r9OwBFRYlDfAveMclVfYMdXd5
Vd5aGe9//suPy1VM2HAgzdkdNMyYNkC/HXJ1PjJPszq6IVtiIxToVZydVIjHAtMfRll2myJTz4F4
UrZVj+eqJg+rOJpGm7HeePPp089/E17oIdRDBKX27YWxfH8kPt5/+Ok/hGdzpj86HVJZsKmZjUUU
z47hxXY5GAt8R3LMAHN8FG5Edff+dV6kS7HDBXb1YpUH/RKXi4EG1hJTOtxYNt3Y6wOuPCDq5Qgs
SJReKy63K1fp8tHDzlAmy5k9lEBOceAO1LQCARSH346veWYhCYWX1/dw6P56GMX3gOXLBFeztvMo
o/QyZ3DxQa2nG4/9QMoVkXAqsAPt1i2ALt0xFLfS+JmLMcZgJg/S8ByIWTlwKLb2LOc8Y5WlK8Id
EViefclBiqs+43C6NKxcBkULI9vRz0R6R7IsmkmKDGCduh+t/zfI0gEMQ8L/Wuor3NLBllTtgH6+
T36pWvY9Kb0/U3FiBtNEpl74TQBEY/si7A/TviIJpO1sm8PpL54YG9yItKgttWpIcFsXbelAUqQs
SZR4JWhrVLkGqZqXhmrd1VpyOuKbw7YuBVYsdT3NY8k2AUhjb8aeNYziQhEUw7Y9HAPieZGu64dX
XL7ORgPp29CjdY7ddUxll4as/twuGkv6NPbUI7bbu4WVndqHpGppo3DCXlOjKsR3Iy7I878FXhWe
QRF/2bTvz3Oxi62JhmFaKIKCcjQIA8ouhQI3GFT5XeeS6u2BNrUtFF+FzO0QcsDp2n2sXMWBeB3k
a1Y0zUBq+pBAxW5Nrf8ct6X+wlMoSHarM27WLLrjqTOz9D6Pklthr3EaYtnOWDs6IkzTGGa4wfM0
3IoDsfF6T9p4xesZywpcc5iZRrWOQbZral5Y5CQmU9n5t+V5Xk8tWSRBdJtsTHJP0S2y/FwBtNP2
lMqW3mRGuFrx4zmVy5ULcmjxgA1bAe8pDJLBV28Bh0fXwcAyTKI5u8oRAm9+WxuWemp+GlSRgy0o
K1mnZ7fxqGvVMcQ7VHeUDiE0RQ8P3BFkqIN1gBFNUIeZnPL50C7UGAHOU7hufqyH//qWa40A4yIX
cPODEaTDTnPuVfewjF8/CPyecA+cnT4PJRjFcsUnhDq1oRuEZcTq8QjvdtTn3gBd5HiKhaQbBBpV
FGfvgOTjwwOE1u0a1+oYMjmsVEiTVEoQR1zVqqetKajlVuVoez6SyK+XJawLRa+F2Gdpt1bbWNVW
TWFLBmJ9BlsPEAW1NB52LGjLKW7VifToLB74b0nxl7BgPiHvPn/+lcXHInG+XbunQg2o8rJzNraG
U1Y4m0PC12GAZcIddqHbECNnO55Ofo/unrYiiP1vUE9onoShEceGpPzsQuv9F0tcIsc5JaVDqCpW
U9tYUG4ZlGbq9emLzczKc6whjAdqTTWmXmqPrxmMIr29jclMGWRJ5x+l6nZP1atUrMLSXZDmPjW+
o6EBxOfnyOkBr0d9VcM7T4d4cfyTOQK9XQYT92SDiQuhtErzuUlJnZAsS3d5j8TG7JtOe3gtOXLq
kh+l6GteLrdsDyFKeXI6aBMIjRySfBCIScq8z5DlpIcGMvAjIcTeiaiHymcggpL1/cyCVZ4E8eDm
ngMJT9QIDltgweqqGfdp9oVkyptBe6hh/UAE8SYVD9vcEAH66X4IUc/9bzlaNBwURm43wj7q2S/a
Xp5Wc96TSf5HrD5EsQcltZRA5q00jCWpMbVSKy5VYD4xxc6F0nK2ajba4SatAxHEFUmHHYRAAvTT
vYLYa9b6EGTqWYlpg/Ja24/Y78zsgbWXd3wT3c4UaycCKNIde6ezH+/UfcfTZVX9tBzXdB/y2Hj7
6ed3f/7wXuxsa+q3Goop8DTByNOp1DaXplK7YBDtdgncBGp6HdpOx9kONahJNJsRthN8jEm+IITK
l3e59JYxssuZmsRRwhMEC4+3XLMnyG9ZmORzwja3RZmplVV8kNX+sHzL6gNIijIOPw+T2SR9oK8O
ciEIb2BRH8CU5AZLhUweorofs23a/4LtXgxuZhFJki+/4ZLRa5t2vAwmUCWq6NU+WXhrzLJ0Zcyi
OcsMR3HlKT8tMwh6arcF7Fy4GqALq+dsrJPojzVRaINAF4otVFKtfn3cZ9oh+TRc8Ql7uemyJJ7x
uEdxvt2gXR8qa7UIdFMCT2+j2hq/z6QwJ3R4oONQ3lSyx7IhxRMBTccQhZOb08cQNzHA4YwXLIjC
XWale/oBIjFGPWvMRvB6+hm/16xa9xfmoyzSszxQFIhyrT79l833xjRdsoBOYxrmhE68OUlyqe+r
Y9s9x77tOqOa/XJJChML5NHrS/Ci5e1+6uaywH05JCqSOUOy8Skh+TQ1DyN2yc+z2tNpf/qFv5Oz
nOyy+sa2r54w/UZa6bKOPujBMk2RX7zZS7PSK+Xd589NQxKyQEOfGuffwrvwc3nh1jQCuqArezVc
9HFXFF012IJOUBugeG7mPSTjfkEHI17wdyYusjkAqHj9ZPZnkhW6hliJ5UFKYnQF+34ItLtoRlJe
r40nY1Z3AlDuIRBg2bmbAO0mzxFfNmvxKMflym4f5oIDiPjZtJEsF7SbVaE1pzWBOc0FoKnrKKEJ
y1wjXc5YQR/chBncar0qKay2jnQSEW8aINk92kGJYZx+MDzztix7+9HGR5pHHdBUe1Dy5OlHSaE1
4YkKDhwVInuOSO1MoUpeEtOek0nKpVgWaDPQrMcRVtMq0FEHmHcA3D/dE5+s+z0ULXvuphDN5HE7
VET53oHTNE2KTJwPwbOdoeHFFY6tIWDvG6qYOG5/sjcVU/hwOQ+/EIOXZhfCIawXbuOEtiI9HA+l
eJvUIa32hKjf9Hp4zF5uk+gi4q+/fhJOQZCzX9sEH3+zc9/vrq+vi+Xq+lP4mK6L3+iqKL9mx+J8
gZQLDxjYafGu2laYCfLIAQ/Dj2XdQ6smsKqIbRjfh4955xZQ4OzIOURk9XNKtb4vwRuuIqSzTQds
+izBrONCdkRgRmdkHq5jSb/1hqa0Qj8DTm2NnLJ+k6ts1fJfjK3q51VhsTakNPnzsFgHErPXktmE
TuFi3zl78JGAYz9LVuWLXhuSf6IfrSX46XmF3EOBeZXbqWNf7LQ9nwoL9awXY6GWRka3y+I4Sr6I
o2SGsdRG4KALsI5y3ceSspPkJclzFk5x2Bz9Nw3tMbkJmN4AJiA+rvYGbX3hptHE59Hw9f43XIOP
09djI0lVp7q242rSrgnJ8RzguGmNOhNZQC4bTnY8czj1msYGt4eae8etuxSIilg6B3KVAdBxH1eU
dFIhAijppO0CFD4qBQyJ5vQgl9q2e+J8FgABjnVvJQMkoBLUAofxhCq7g4SDwCCrRlYGjFpPuZH3
ta2CXpTM9sOq7hOSBaFvsPPhKIlYLd9d70JiR03f1EJyxWvCb7TF/sHD6ieuMOX0B93WBiubL9+V
TmNVxHiWf/H4GGghdhKH4oU6tnTqtjWTaZp+iUjnhPYAjZqwy4LpM5JEslB+W6fm3GVV5jKA7GFU
VoEiHV1lBxUld2EcCZnEjlYbWqazaP7IMoSLa5xg1xqGzQZg7GgldLNOm4lz5CDQtOW113KHSyct
srLEtuONAo46j0heS5qZX9SdpHQxxL2ih7IltJxsC+KXpQcfiY9q+vBduo/WHYCnacb28fGjLMBR
4fgBUJa7/Fb5aOrbqF59R6pSkzcLaFULdNsu3XJFcf96NdskOYoSNpdIayF76uJ07Rvse+aofVNk
a1K7De6vIF0+inTMF+k6nhkTwjxY6LLvn5INg/WUdO3qB+/4uKeWYUyyggPVzRSSnUKuGSne833s
ryQOH7hNftwERNIXf/3102eqpKTKrmP3Gs4WLPyodORmbEr2cx06+t44/ceaLvcl4QMosM2e7VJK
X20vNs5o3Aypkdy8fn1N/0mk+YofltzMwzgnrSXzR5BM0ImaBQu6t0RzMwdAS2L1maRJ5CwLUoVS
jpVN6ebHmIbJYdk4sRu41R+JnbxUe2kKysJfm3EhlVWbcfnGPd/zOE75f0tJxBb0HDfoekx9HAPh
4iHUFG8q3aGVqxWy6KXb/lEdixWM0zQnCQFkOPbcPj2xdrrE8zgdSzNdhMktRBgXdETfngVFPk9I
dKhjtkc8ztkqF8FHw4jQnErMwT2A2zV9szCQKJMOLCjSRI2ovipZFdKpd17QSeK2WAA7PyQ6tSO4
KocuHg71ZP3uQIxmc4ecxHQEVxgb7qfyJl+KsaCzmtJVoSHC2jEHSNqb55+ZhMLCFt21LshDYRRZ
SDd+extf4arBVxdEAIwl03DFtmR5ufU8XM0bCxLOCN03MWam6TopbszaDm00AUoabqzTS/C/ptRm
6Mo4ojsroTzd2/4gYPaw9lQW5gskS6bUgoEkTUi+ni6EeRf6TInbBx9GxvIHYzwcKeI7THWm12Os
ZZRPD858lqswz1//vrqtdTkXcuXlyPws6FB5G2/C2PmlVvW62k5XgVncFPfMTNj72aZBpaMFKddX
Qh5gCYIWYQUCe2otVlKdva6VksyDdHztNmFohweZYmUD7+yVLb2teOAeHSZjEmbKOtl+T4UWYW4c
YIrdXhzNKskquDOFuiOdUC0+nnUNJ3XQmAohtUIsf9SszCUg3mXZujDuwnhNfhZfXJvI6g+zucwg
D1PCFyHG1h1JfLmnvMwAtNL2hkieEs7VoBdtnBXJiog0jxCOOik0QCc2rq7pBmW5gX0UexrYA+gl
GyYc0D73XHWTjRUOaDcHGytAavUh8YEuE99/+OnHD+8Nqg4rXL/NQ7KQrBpdx+xpiw2gRlgUdF8n
Ox0bSNs0FwcUqO/te2rLM5UptAVlqeiqbiKrkhg4w6qc8PSkKrWdoVqZHZD8Ht6F1VW10Benr3nz
M5FfZGd75jCa0X0lXcsmszCb/aIYLRpu+vu1rUAGZTMHA3GxCovFSYx7A9zQp4dSu8qvMb7am8Qe
SrUh970Obq92RmQOH27DShD3UbqEVc9V3jAa53RRNV3ISkUNpnEJq9bY16MxO1ik26O/bbZKobho
gNlX26NM0EIjCvSoNCPzKCGqsRkhdf2Odq13iKdsNQTbpgGUrGIZJGMvNlFP/faqI3K3CykUJDsG
RKFbUnz+9399v/Gzl+8IXTPoqRtZrmg75XciPwTbH0SdMpeYUB38VNQhMVWBDU88rCRKwilLJcX2
0uWWTXg+5Wuyd/ZsKkBcJn/epZGXH7ywlF09x6wSgaNRbFkIj6OpB1RwLN1mGEdhLq5gEthPZySu
4jo2kYOlM4D41E9TW4ERLaxJx90epzSUfBVOxYnsnYbtPO5WTiFJi2gunuZ8R4+OS1Is0hms21mW
q14rHFWePr6aA7mD2ACZIyolT+5KHuivC7pVyPkoIj5Gt9vILAqQIMlsh1le0C6Lm3C1iqNyVXeF
PoZFurxCbx8EJ1nDwLO7e4p76BBQjiODAu46RX0+GoHn3/M0qW3LRlKYItYuxEfRWUa54wyqee1C
egxlszwX9yM0WiujkVp504V5soNlmERzkhfjqk2my3F7s4BuPC7dv4v1HbYrxXQ5fQqeV3FYy14F
SdAJmYaTlOduoNuDcBLzZcOq4Ntk2BreQ+ewlqgyQSv2AC4kMggClZHbdcxu8loSFZjnQNRxmKjY
B9PuASY8galFpyqPR7GjSdnHZLrI0iRd5zxMpEMpXoCa+97VAEBsWgNot63DxBwC9nY8skJ7JtYk
RXUZTL+Sh+qYVOKWpRWvvFpgMYjiMCdHP1oS3kW3dIMgqakAGV4cMCJLTnXUjk27V9gI10sE8fGY
qR9WHklmm+qp1mkzLNUh1Zd0SI+mdFlM97x08khC+iIp6K9fP3QtRgwCzPdy+ChKnlpeH8B9ilnh
IOb2L0DNRZ74rVF1+ONX6eQfumSTb0375gM/l96cD6Jpz9KPKwJyrYFaWdS4lqtPqaNOozZlT7OS
cvC60l1a8tws+qn0sNpIKjB4f1hbEJkAKIRMpaLsqtdyA139twRBEtdyDfMsezwWV9zroYJtWixI
OV0Xey9Fd2uWNQTK9+todsPq4rFl4cFGzTqy6+2HBsUtjcIZC/mr8v2DQCamunVUIfUMRDAGwQ7z
gqVTqkVyQXIcOLIMYX/n5TF/LiPLrh+qHV1aRZrxCA1JEXDmlqkLd6/3yiSo12HGw+nND1Vnkkrk
7gBqJ6tFBWo8zNPXq2NYYzBVZyRhhXJiUhBjc1Va7ujlNa8g2bZ7tzwTTNTq/rBULEkRGkV4y2iY
pDOxC6cfjETATpx8Pdk2j0wuZJkjkVPtWg9yP7OeKs4Qjk7HVhtBLR+djj5u7qIbaFN9tzAebzIJ
rWAkqxN3RetkxiV2LbYHJmMdF9EqJsY0jmThaw7yn+0ALU7Vg56lvor0tzY2R1B5I8Coi6+thVc5
DZgr8jyOZOk0xjB1uUh1Zmw0HjNseG6a1RwUnIKhnWgCjlz/JBzJxo/AUR86eOdHjteJnDarIQxa
5PalRipRnRfQJYE2XqRzjY8GtZWxCAkn6bp4yxL0b98rYz4eCrmXsee6A0HeZmEymy6ieJbx+s4S
ASwHUuILIoHYm5t/wOB1C4yNNOLDUDwKETF5iKbi81gESlCoQYZ7+juikgRbIH9iTZLESYMswRiy
iKOHQJc/XbAbakdZASgo2++ETLvFhJUJl+zAkAm6deqEzdpbjAkpZ9cdMxa3r2nhYVDFbQraVwPQ
9t0NWJ2J/VFO7NFh6wHed/crvVgIl4Jku/tpaRtj3Ev/vWDwaHKfhavfc1HGcORoweDcyqOdMGje
DHox2uwygzEoOLSdGDkpKgnEHlHN83XwnSnLqDaNo9UkDbPZ7pXB0nZX2e+ESxTbx30Qy7DXz9XP
v/DUxNeTOJ0wVulSPiymC2m1lqB5r9UFe/rFWEYPPNc+/4SxiGYkN+7DLIkS8aDcfCzWWpCdtR8K
U+aAy8X1gFxPuxzVPUm5apPgWlZzgbkeBOxd1zAB2l/XtFc6XU6ihOy2kjxpdiR2ybO9IZWfrZcr
FjPFJ67akNp82N9B9yRhbtYsALLM2cUlUaXjc7A9mhjKynjDisES2jLwQsmF6Y0khIqJgYV4WMbM
Oygjf6xJrqZjYAs9kkTFyQCSzMg8pEMElyRKYjZkKLNW2mNIoOAAkMq1z1B1sMo0VMVjmtPdt2eC
e6+xUPhVmHH/LdMSn9AOOVmT6SKt6gLx+par+PuyJtF/ZevkJkm/+qOp3HUTQr4pG/UVnQxvuLld
IfPrK/yWftsh0x9esdy7r8pfsH/8Re0WFjJ5WX1bQpyi2Ay0Y5+uJaTUh2F4YvaxOEE0ehHsX5ne
yRvAFjYAaLU+TAM8knzAFsBvto0wAt8CgWrZje0xWtkRO+4Fz6mVvxN0tJP0qeNbPvEQ5wzNfU0M
+UAnc6Rv1QDWzd6Kj7UAOxx5xX6DdmuBWoPop2G2LhMBEGPbNB0z3raGZu7m25T4vPgpy7drpEn8
yOr7SjJxDSuHeLnvDoO5SR3PLiv3btDksb62iQeVRLzVQMNglt0hZ0ehP9IPZQ2t4KFgPDkUfLgW
ZA5CveT4LVoSZg8KOlyERxNDtRkPLO1i7OXt2usVm4Fiwvyu+cgpdvA6gTy5vMSpbQ4pjtw8LE8/
D8flZGV5xLE9oM4KWxxC5x3wJqxOJQFyOzR398g9WDPxg5sjYUFBfe3JWidlRsMpy6ecradFmqmM
FHbdokEGZZN52mXYJs/Lo5n8rsVzBuyhuxQePDBRVCjG1a93Y7kf0x8IVLWA8dBAoPN1HJep8O+j
eDZl16wq5QeYsUs54CJYAxj78na/BtLtVFm2S7/NR8nvvFbz5tS82teqhh0XDdjzSnkM6RGGZ45F
gWrUs93hpWDFE9W3jf4I7cBLOAqawRmJANXI5A7RCsBegAdgX2h/xm2aihOqwm6xdIjQ7OWDAmcc
WcRtAQHHncD3e6Fxv4h4DFTKPGCqPGxiXwgXtJHqL5KQjsAfGLsosmjCk9gqpHC8saRQmYY9Ghes
zIwkoa+DBuZCxQDo4L0d9lGuLuViQT/6bpI6Gpfqp/7HV8O1E2FvaG5Uq4jAPBU3SQq8NR+BsCXd
todNhxMuyLmsK3BZT5rDC6OhHf1GnKSlM514Zg/0A1ZZQ5m6FLuh22LbHkEA5bgNmT/t7gI0uCh5
+uGPbswqaWZhEbLOuYrXrHw2+/G7vezS1w/M0+1LVBgF8+tKSJFPwxX5Nk5vozlLmEFmLD/MzS9v
Pn/+77xPsw2logcjkLPJkWalcPsBZEvmHly+zXLH3JKsvkmwrWDwNlQeXOCn1YYf3/z4iTfhTkl5
K/pDUts4OmDNNlR3ZnasoRVUjj7oKSpYTijGLCU5q8NhhPM5U5hHj4nPUNEAPeQ24qXoJ4/sgoPt
k+T3O5bnBQNIwO/Bw2RmkGSe0pYQe6ubrZB/+flzuwPkO1LdyAtOj40BB6bb1ChSgw9PFX5tYEam
PfTIKFXdsQdr8c1pBRt/aQ+Pul/HP8Fmb2AdtBnvxTqPkJKw7jrOS2TdHWR8PWCd/sqYZmmeV2H7
4msjRdZ3hQB7N6ET8nqV3NbuwJD9MntTYI7QruKmdF8m4dZQhHN3OV5CsPRcFN31uv5lztBPevWa
jWDLiK8UxZc8zpBSdD+Xe37tjQdjmrUx72N8K2Io8tgNeexyy+LFmasu3WNvaBA1P8bn3fzOMIsV
0J2206v5qzuL3dF0x8ydB4I8E/69EfhXE49A/vFOP4cC7nIjcChwX2ajW/6AjS5sZAe/RKIdjLVj
V06C5Unp1vE7YtfAxapaTvJ8FVkqzmUOiv51+rkwcmfY6vXNgaQsKLD8eZf1rZbQwj8Ja+LK7tYp
2ToZM6q8v8gZSQpx4jFrMPCqiLxKddsbFr1jqvPOoC3GDeSdpCcU6WqT/4nXvT3p8AEYMMxzoGlU
Sspq83JKLAefgpLPoiqygzBROrCwO9W8qlRa3oaLnSzsoZcjJ4g7pwr3C0juxHiZdkUReukOutbh
ZFfglGhNzG4Np6OvFOimy+0V4y+zbVios9u1qbnrRbWZlxZssUGLk676c1hjQYeZmB3airzbmpsI
toQZQsSNc2KTt84AAh61ozgsddCmO7vcQJ0Gys6sp3cky3guxb0cBmI3lEHl2MZLCsPFzQEtYJst
ogr1Y35RojypoOWKRjMkDyuSRSx3VxjfzMM4J181DCvb2FJqtFfo4/bp/PUuHPUKf1xn8RV+zwyb
54X5SP9t/5i+wwycvrWRnr4Uyn+EIQuTQqAo+5MytxXv+TO31+d4JuTNJa84MRsO8FkMvlrytBxN
wjxLy7ij7SHj6JwZ35/u/JMz7ulhHHffe3nDMp4fUm7beEjKvaEpPzeeh82tdiLTLsKs8reSe7Vi
kP/A0KQPZN1fj2DYujLZtWzmRZixGM80+1Kev26T66ryCIHiCzurfyDSMvxCjIeFINIClhhCFx2q
MC3QNVtLQcqE13GUF00pbW1n3I6nXvVu9vgH/edgGbsVtlrG0q4LlkexhrXcs+JBtPrnI9SFBwUP
X19IoCSUKZtHpcLvPzqJ0zyDslv5JxydzOB8Rif/fEfpKo04/WcG522co9Hy9cviodx60BfTRZYu
iUEeKGjO0qZtkMrcz1f47VMbuoTbdTtwn4ptPk8rVM2aL0fj7b/dgsF8tgMPkAA2Eo9KQNB/jBGX
AQDleg3OY53K2qAIp+kZMz/E+LpT/sr0n6fuct+B593WbC3L/8kHnKYFcfmEg/HpqY1MjrisHyhn
ymm759Fq/OPL6Z3Hmq/CYvGytb/CH/9Yk+zxCr/Pi4wa9gunA+EwoQ/PXtBsXR+iRx0RLPNcjKBS
fuxB4SwJOOm4cJ6MnGJoODsmikWUR3l4hd8yTpjffJiTZTRN4zR58cTQ3/AvrHZeaTImY4g5kq7C
Kb9uP1eChEtcV7zEhSTiGq99Wp8+v6DZTUnDy5rnGql4wTNeMzcnmfusc77X+/g8qWhlHqdaMJ89
G6cdS86fnuc9nHSh5WzW1WfP0lktsq3+i2xPGFMFSTl7Lm31Eu1zPyRpPOXR2XTOCwUH49PYvQCd
lw8mXe+cwhX13GjYWMPL4eBVHpP5q+epb4NrQ20IMIOvt3fgZ8yIcBHiC91sIFldT9weLIF72eOq
V3vFNCixuyyGdGU9oUtq175C72bLj48//vBv8RT/ez579yb48V9/vfsP/O/FP/7mmJ+Ws3j24d/z
f/zNiifJr+/IX+Mvf343e/zH33+yJj/8P8mffys2r9f/WMaPU/zr+/Bf4/wf75z1BP0a//vyYz77
219vf/n8dvu5//j7r+Z0GUezv/8aTx+d5B9///Xn/6DP/8eH2PzH38z03/CvMWHP/uyg//jbg/WP
36iJva9VFMXnPxowX9dLW1Rtgc86aubSRu3bSDh2BuKqjv45WUjzCefXJ4reOFcOxl7RnyENX794
As7bCESjkWWKE6Kis2+BU4aQnXaqPtDctvEmKl88e9MP6EthAwrJ12CWM7LKCF1liEPBbUgmhvHN
c5MMbHyf7vF1TVdsBcjO1V8d1NIeV217bLWrMnj0qcdzAHkIl6uYvJ6mS3ZrxT93xlyIOt0yjOdp
tiQzY0mKUJiDARJnrEGShLbO5jZLPADY52gdezn39iM5DwbvPTt53l1FHNV6WH90yxCvNF5lgXli
vYYO9nQLHEXiPKXW2TfNbrFAx7F3+Cr4GOVJWnxOs7djL2e1NIY4RzAkzGa8hjiPSLDT6nv0r1T/
6M2XNEJu9D+bPBknJqQpLPAE/cU5/fhQf3HGDIhGaOaCk0uSbPmee+6tcOztStFfjgkKlB97ieCc
WRgHq4W+EeJFE7E7YHLwhLEiFOR5UgSKmqbEeJh+cR32hb3y2CsPsR8D9spmX4Jn26NALO2dUwJY
2PLnbNmdHxKL93+rONbE2pm6ogJQZIpLZaISsR9x+U6/3KPP2q7HbVFX13JGmJUvgFQbtdxz7X9X
CJ8wKOF8aTlprIZ7Tuu//cXPyzGYLsxcbOa4J10Gk8exV3pny0KrG+lL12nL2HnbGdV1lk6NWUry
pDAmj6uQV0BQlaBDoOu/lmLwKyhFOn7sDrmam8Rr8nqa57VCowMpqki0j12Ij0e7rN4tKx9gU7sE
O6obSx4g0x2DAFWtA8sZSgJyF8ZKaOQOzz0TQjC6WIMZ3nydTJnDyu6FstJEMDwFNYkEfHj2UHyo
x1fs+YMBk8Io6CyYrovexT76NsGeLKKpDmmX4GEZs1utjNDNADtDyNKCDgZktk3tzWdBg5+eZmG+
EB4qBAPIlcfb4Xi1WB3PQQOY4V4dGjYdvaYSHEc0Y38QPTdGJ9BzIGZZHVY5KqhWdWd2iyxMcubU
ZRQpE0RAtI29QdReJ+F8Xpr35NHYevgY1ojUy2RAA5h5+iWihNPFa3Sb0H48XbOlvrHOYuEIi3WA
sYAbI5yUY2mYfBHeqVrmf/vuu+4Yez2VDpehUb4vLgxt6tKpCG+FWQ56Lsy2CNFU7N0YaHh8+d0o
FmRelIXid0FSzC7EJ8WOpkaKkiSdMsO7i+iqYlkKUH1M2Ggadc6N+yxlztvpMoxYvYrft7PbOi4E
XQ6B3OP8PuBHqNhE/2IMjTm4whkJC7IdY4TNikxHA9J2GEtXJBF7bJgaYHSPMU148ygrr3CKxwqr
XP4YdM4oXj8I2PS1ainDF8zOAWjI60iwYBL0dWhaLKJsdqgfXwCVTua0p/DS3MKB0EPKgXCH/MvP
n0fQNOih6Tqne4yw3NsJu6ivnpmDcXVFZg9dZR0HWxqA95azchFEfQfZKoJb4J6aX3FX8YDajWM+
VoN6h5tfYY8wHVcD0J5eEQ+1qNslQj1wWCD8X3/9RDcYufH+w08/fnhPx7N0abD32XrfYANcmpFy
H8DHu3w9kQ55nq1uxyYx9qaVQ9CtPOGU/jZPMyOSCmFhiOeJTkruo2RGZ1zZwiLwnbFYYSLQRZuC
G+wOyQ01jhLcQEZM7ohww2h5Lh5HiCIVvCvcw1pBMIpI4kaBRKJ2B99jQai74zgDwO/tFJkQDX2E
2gRgNYwQXIj9tj/gQ7wWh5zXd4WXD6IGnRR5/hFjugiTW7F5eAFWjh+o9/hRNc5GGOHuCFLbUD9B
witTE/sDE1IOqIQophk2qo9ISFP/8TEei5OmSSaAXGl3ZQY0w6DAssYQYb1akWwa5kR8WhmMIIM4
g+qAfbXJEAOvT7/gOv0U3kW3fCQqz8MfCtYbdmNleTAtPPZ0sEbwXZ9YRrNZTKpW35dFSH8wiAxF
mN2SohEdWe7Q/C8yMhezD9mL4B7QQlTbGwi1wdRBd+tw4CylHS7Nols66PIhNhO7U1gaQXfWJYBX
SGH5gXK2aY+flG8SBaiPNWMy9yxhB9ZpxlHCzs3uyM5LghK8SlfrlbHVebqIYqHvgGVDzky7qM4F
yEg4e2SjO0ASDw8iSLnAKu92ooRZXflGerwCEuYkAM01UKGYr4LC5C3fVdqf3d7mt4DGgsQrMa4N
mtLag/O2Fx/iaMRT9ObA0kznOBppGj6gcGwV9ubTp5//RpdhqzBjF1jJ9reKXaPrYc30Vj21WISF
QW2VeWLkdZHEGSsc3T3nmIKZYqeGXXegBimXZBR8u58HtQ0d1b1hGmfIYbQNQZt9w4afOEq+NBiJ
Z+s22D1KOP7ePCeZ4dzhzHQRrvi2Wch/0IP+KE9jllzub2kWz67DeLtDW2V08M0KibOED/GM7gRa
pMXjSgZqaQOdpHTpotYRdhHQDq7UrrMfFBStDB0oT37YO8Y0X/E9CfPyFu36HIh7PXK6owu7jAMa
WmGo0ziafjHIncQNxAn0KbjZ5M1IXmSpeM0Ash0Y3CyavYtJmP2N95Gfedow8TU66MgICpqvwmK6
+CAj1AJ5KkLRmrxrMCShfluwhu5v2YNAKoYAjUbDO4JYL1DKQCBMmDzOo5jsQdimTSH0mcZtnE7C
2LgLsyicxJKmMvVZR7QMb0mTaZi+fjyFXVj64LancOMZ/z7kOMafrJcTuoYdjdQqlWMDHmSuc0F4
eZjMJumDctviYUcb3t6iOIyEVyaepU+5Is2auyDsZKs1orz9bE8nYMYzZoxlL0W6ahzRbG1ozNvv
X+nSaJ2RD9JZyAoCdwD7rGGz3ANpMqs2GOIQWk+bIKC9E7ZM3YA5KX6rQsm2QXTC039/QOTSqsWR
lEgfLt9RZGQtvjZFvm0PYFfycdZFEPPxzgRv51bD7mgPfjLIA/1Uefa0ucU6dDJh0szSpXgrZ7sj
i8Wil25J8aagZjdZF4QuEVnkuDCyAzknEE5JF7JOIFG+R5dYrMA9sVg/fRa3ID65YOlMEocBWioP
LZqENx+NJ1zUul8G+CTSqTqmj61TiNTYM0HRL8PKJTGxADTy+4NKJumbCJRFcHjZxMwhCw8lXZQY
CblXebmDYnyB2Pt3WiLnXZhbNwL5w+iWqEilvxPzhvD4UgovQ2xrNEFKknZvCK0ZueMx0+BaBYrF
7CBK3Vg2wqm5sbAJ2QAFGgSCObh6vjW2PMJTIz8YSYxG/2dInpcWkihCGVrGRAVqZ3WYSFL37CPZ
IPFRlmufjqqmdjTt4BR0NQZO0ZXIEKTVDb1tLIRvjc6XMi7CMiHh+sMw1ThIuEofE2wOQ1ajcZmQ
w1updCyJM/Oy42z92+ffuNMNW7UaaVJeqoezGT9M/VR9Ujws2I4OIfZcipkv6d+iYvF2XRSSwHHT
1ItZehy9Y8jdqbAhJ3Q9miNfpFlBNx+SZghGpkQljg1Z98Co+PtfPv1QFKtfq4xhIJtEusnY2uSh
NJK8I8M1RAcyMORoTyrPYcj6gdfsKn48iivnLgCOM1DLq80fj8e6ShAMSboPU38bATCN03ydSRZl
nqtXbxGy3L3fwVanmbEVsIHEc4Cri+nN/N9m2gM503QYYmS3lYEznH130B8HEDu3OrCv7OY25M62
GRZEg7Kbu34POZbRA5m9K1P2Xe8lr9scJdI1oTpHkAeaY0DwQr/nfZkUR2KOLiEmcTrZrM0Vni0Q
r9EzBdyFaEObGLSC6t7Ee0kOZHtEC2vXvtrmKFm3HXMczasU76JzRG29myxXxSNHW8VrFiOpanOY
5qiz5sfCyEI0NckQJfx9YoTrWZQad9GMpM2G74JWUN1JEEklPiu12suxN7Gw7cFyZR9kXrQhmRdb
PROZ7r+gAZ5pBTCHmtYPdi0PEuiGcSsLm/LFo2pQ8bWBqq1qKg7uQ5Brt7b4ZeLoeskEiAdoN4J1
zFntgHfzpbxxHdMZp3HlcyUewLwmqcyvDnLN1ZnnE7Qxd4VX999gpP7LZZFcFfWQYG+fly55BPDv
q9va2YEL8f3tSm7DtAu53cF2K+jdkkcRZQu5kYThqhtWvuQBOQK3VB200AWN0xpUly90EcQlua0I
stJJWL+FPSwygGlDcmoeAx8dfJaXMtznJ0tjlt56lVIhSqJZkKfkmkJ9PLbD/PmX3378+afP/yI/
cD2SoMzWvIMX5CwFQovU7QWrzaBmUcbCa5hg7B6Pfc/hE5VvD9q7JOLJlwigFagtW05v4Bjj39Mt
3A2H++76evvM7+iCHXdcVACTwrelq+cKpo+ZQAZgxzqJiciHYwtS8WV4GxEN4ANZyPBzxUEj5JtW
0DyMOOfdbZ0eRIFWMpCkllApmjrSsWjdO1K7VjtsNPqHg/YjGVllqrUfSDgjWfWDseA/8TwP7HBT
HEffjpCjhOkHqHupjKhRFlX2t9fT26julTWcpvwwUziq284JVIXE9XRV9ZaIF++g6wkQplzP7zu5
3nRUlHdvsaqmflUP8VdpXmxGFnEoknkKs4IsGt1ubDONxWR7rUBH7EAyTZkqf6H7lPCW7F02kWSW
G8k6jjewoqseSEoHGC6JozuSPVKwmSR3nY80Ye1PVdM7wfLJV2YKa4nBu8ayfNuIVV4BWJeCUXIX
xtFsk1m0WGTpfW6QhylZSavJYF9XU+55ZK6YznkRxRt7kpuSFyCNpO/LsM8/k0LCvhlo0r9i/bB2
oKosnW+iIaG3aXTkyehAoR8gCaqEyfJ2RqCKcaftY7KAwJyEy5iibF8Y+xl8JX7/gQ7AvWXxH+tQ
7M6mzu2pDUMnfVVKFqOs4S521sE9EB/y/M16FhVpdh0m0wWdttnURvuBcU9/vwvSR+LcOkEnQvdA
d5QSir4HvE5IPg1XLEvjfpbt2nrRskbQnm5P4yghZRq4csqfLkKpl7Y2TtRCcT8ycU4Zc2xSxFTY
Y4ixN5P99ddP4puQYARBxEnRlMk7sd+jh6j7BWi9C4Dn0zJLrb89o5dZPsulp1dXtpkwtgK8XsXf
/3Fzhd+xd66Qyd67eSU4OjH50cmVaSmev33q9asr/KGWc1WjJnk4316R1RfSWHcrVSdLwu6IB22f
DTRvJmmzgNpE0B5aaBJhKdsHdILfqn2Uk8fZdSGzTxfSzBxrKCS++tJo2DutIMjqKNquyBkJ4/jR
GHnkYHD4ZPxKkK0htBwUSufIH7TSbLogS2JkJA5ZkIt4OaJesAeDjC+dpwHhuGJp5k08Dtsn4Knf
nCkky9VEFquSS5eeJDdYdZCYhF+Uy16L3R3oJTBKCpKx4yFKHUlYyl5jzqZSLtqN9RWns+xslIgw
ph/+n5/LzIEsBcA7OuO+S2fkf5oPjv8t/YL5lz/96X/RP7ve/l09GfVwBNJGI1kmK0PSygCbrxZZ
a8WLNC8gRgUh/Aq5XSmXMV7eXT4Ns1FaDegyFKDLNKRDurJuLugushVryWphlLibQWq60ZOU9Fz/
/fPna9ZvplsGyJFghib9yxrdUcLSIMt22J5yCWabvUyGa1zV7d5Yy5IUIRuzmYsA+WMd3d1cIfSZ
FMY7/jH6A/3ttLytZ7/aIf1G8qL80M3HNz9+Kj95XTcgbAImOYhm0yzMF8b9IorZcUE4Y9mBqWal
18MqlOU6hQQ7tyP2CJQNTlUc5E1pVNafaiH+kMByiBSbC7ucVY0QnpchWxfU9nBGchLFMtjrtdY6
5PeDjGmQFL/tKOIFgX747S/iI7vAHIyoQ+CSrmh5S/tink1vXvHo1O94dOor+l5KP5ylGX0fTOSr
UfhrdQ6rjUvokfT3lFQ2TEazK/yejnTl332Kki/lsMfWrOVvrhAu36pGhOrzjO0r5JtXKGC/xh/e
lb98dx3W6QWdeHekF3a+rCLYGpbgGwm97P2d8N+1GAg08W114Vs8bHr6CFYeow8ydkLO4iE6kOWE
LgfZXDplmXLCbSpc8e0cpO5tB+r210ecLi4WX/PMyE1tqzGP+NotjF/n93P6Ke7iX1JVOv/TFcB9
+JhT3hiJ5cMEHKJhORQz6Gg2OzV3bKXyHUv6es2EucITtrt37W9/+eGn36fL+H723llM/vXfH2fv
bh/+/Nv93RT99Bj+/a35y+3NTRN9jn761NdBtmWPRV5C90c3r8oILDZls9oXdL5eregIVlX/M+7J
5EtUGCxs2EhIwe+WX22m/C4nL7P1cvnIbdp0XjWw77u62T9M6ia+nPfG4p9zWJtpNl41r0uvmj81
kQTa9KA2JKkv6hvsEz0F+1Tf0GxNVIt9tqFeTLj19AnXwrajh+15uH6o7hcs8dGIMzThdKVYrXr4
krHs+FfIo1usdEr7fjWz0XeUKyRIhGxLRtDJGPE2jHjnxQgWx0ejYRlhdvHu/9wvwoLuT7P/e7S0
bk8M6FQIA4hJs6URSo8VbUfNC+5vKUwCth7mMkgcJujvl6RYpLObh3JQiZLVutiMaPl6soyKw1/w
oe+BvuDlMW5e/RKT8o6J/QX99khlot9++fGn12yc+ipJi2j++D5N2Plmvkjv35TyWLUzSUcf8aXO
rAz0RJqE1cb+KC3A2SvFoLzspNtOAuQhXK5YIpR0eS2m7OPuj2q0OdYQtPHWPjlrG5vTT5qpibTt
VY+hvO911deV7VhbF1Ec8SJtdXeiAOIS2aGR6tfL0ssu0ZVzq9vB/lfOLZuOucvzNO6K6mX2kGYP
vDi8Qr7gqIidYT44/hV6x06Ktt8C9o8tFz72uka07VZUVmHJzbtHF5I8BALehdZSymot3rivFF3b
O0MxlzAVFoR+UJCbwoMEpLYjrf9gYvcf8Y8WbeUF8MEijf6wot9+nJcrDNZ0hC86FlHO1zA88ISt
dhK+P0vpl3+jDfu5Wiqb5ZP/xP+EJOU39pXuzthq5c3nzx/ev2aQK1FHwdqbe6+HxFHyRZxJcNgu
YlTpcpOZUU6esj5D4mU0u9ndAJSdKPyGX73s3v6munLZqXaF3xxcs+APnG/xkT+G5NVryTKjdpMQ
V5xaxzzdKBTurqTaXv6prk5AdU5a8lgVipYcvHg2ZCJxhmGxFK3XmUw5vIR0/N0+ZpneRfy0ptrl
dFnH7J3XlF4YrMEqcWuthkCt5rRqNR6T17iwUV8tSgPCQc3WacXRTslqEOXjGQ8FVMRYNpzIOs/H
+6s7idyLplRSvJNxTtfXNwdfB2eorfrkA8tcmG8OUKUUQ3y1O1MsNE1sn5zWcQ3UbdYFsC9zLPWB
q9uLsYMzhRE2ZKC9LUClbXKoyq+xTHtHJJUoQBVWejJZ33YdukGV/bH6QP2w2hqYF+nR9Ql4aSID
5BnTgwzx1dpJqBCfWTcRFHSQ9bgKkC59j0kWX6SbA45h49LqgSk5qhq3TDNikGSaziQZFxtyAdhe
f5Z+/Pjrm798kPkbXCH3CuEH5Fzht8i3RE6YoEu1zhQV99GU8FecJ3HEIHatoWk6MKZDF0C20bm+
Qo75pq0zoMryLBSMyat4MnDNE/I6CKn+mKSK3d+C09rqAKQOOgLs6JzJHDLH5PPgoO8KeRblk/3f
4q4JbzdL5KPz9PIgsOacBZld/I7EiecT9Y2OPxhZ4GuGQC8nacJCdIx/fftnRX4ANCApDDUnxQ2V
4OgephTt5uqd9zOEJ2UXhNTVa88aK0h8dyt3PfOGNiaKXmq+fydyTGDJmFnj6Pgu5bp8Wo06Tyt1
ZU4pY5WlKyrWY3noIBm6At2GtxVh6ydUilN5DB2deZjqEw2Qb0pbYs5gVOJ81O/fWPDg8QUcnS2b
Oh5kuAJEZUbLW6MKilIPVg138oHmwWobwUW/WXuBW9BRS8CXNvGt4w2sjfU3BgunSFhKQ2mLWGjA
FjluhXf46o291w5bj7/NbzwB655Gmylxaszb+plP0sR48/ndjz9y6pExI/NwHRfqDbODB2qMQ3iy
3zbfVOtsurRG32w7CELXVz67Ansr6Rx8YV13xNQmvjlG9zhqJHHyS3+EDvKcGsEx+zQCrKPYyq29
Yw7WUV7RBnm110KerGW8VolG20l89QFd+ejqzbta8zhDN494BeQM1BrnSv/Hq7f03/sx6C+yaPrl
UdwJ8Ai0V1M3Wz29Opy2YZeO9TVUoE9qa8jxaXu1Pk2XS2GJC88yB2yBabwu6E833/LF7HTXFg/7
K1mE/s///eoPtM2ZweeEaS1PuD45HwbjfD+hLsvFQMfgonR0FMbtoHGtf8c4u1QIvPK7ZfqbF1b1
wrI3L9zyhW1W34Pqu9V6azFGtwBEfx65QB62UmP4r+OpB2FLs19kOx/I6rLI5P9zw+pHt2rVB8+t
vYM372xeeGjzTrB5x9y8qIziAdee7E43L5zj52z/CvmbP9/8lbn5cJOTpg1Ju9m/8ZkTnvCcyHHx
2be6ZbpH3dryj9+o+A6C426+aQnLQkcd3/G7DxaY4UzT1ePej5uxQ9Xa7jitrQqjvvRzdT83zS4d
/jz6ubiHo0t76xrXm5sZDdPM4XJFMlZbosNtyYmbWBi+cE0JZVEpzVEMgTMMo/vrISSOzFR6Nzvo
xB1nY65WqdmVGRxzTAm+Mp3rbUIuleE2rHBbKVs7vN9I8qfjpS+kYh0EW9W4XXoMOsMes9eaGnpM
B1IbsrPgp8PolWmCo6gg9YG6sEl3rKwGfc5eiAk1n5qJQtg0h2FTliW+4U6z67h2BPr9H9UJz6vf
yvhJ/oXFo7GPsG9lUvlXf6qdk3jD8NHg2WRj56kYl9wPCryGsCHuBg5uzXKXboufb7cFqLYfP6pe
0+KGk2gNeTEE8aJsnW81RoR6wQBsNFZrMv2RCaGrjdKVp5EPfwA+1MfLo3BRptyopRduHWHMvI1d
au107OJnRvhtY8yxjQagVF3K6AT2ZWq0L7sdGWJvAvWYYw8y5miJUYdUVYRTtCJJbiTk3riPkll6
L7xda9gd24MGCvaPqYSEBkKUWIYxy6ZEZoYsM3qDD7Aeq+L3Ydd5Nr0+vAa22OCD3x03nnbl6ZvM
L7WoQt+qquKWuFSKpu4MtZ+dlKVYukzqpDlUkGOP04ZIHPkPGW+cAdsQvZg2dPq3IRbX6A5O3Ib4
0obwNrTF/dA9cRvalzaEt6EjbEN06jZ0Lm0Ib0P3POdD99KG8Db0xPMhpA3dAdvQezFt6PZvQ1/c
hv6J29C/tCG8DYPu69Ih2zC4tOFeG5Ii5N7WvH5iRuaU1gUgHtwO1IdpbqecydsjDybWN7uSjqVH
RCUdC9Op6jmW75tX+O03VE7ZDYggol4UvGPhYEhOH6oY23TF+ojw4NtWZyMZhNQjsWrkzkjyKKYL
tCgCJFFI0v2xQ534zQ6wHlDF6DGLcp75bSeU5EjpmvXRa+VBJOgoDsRRUs+Ey26BpanekOPoga6S
mcIrTXm++o60X+uweuqPVI6MpbuLZrlBB/cybuFmQuhrwiL7j3KdRrObV+UPr0bKfNqjdNU2+emm
eg6Tnr9+dR61tZqzszqgOb6L7SnvuC6G16sm1akMr72A4xue0Nw8+2JuHStynfMgBzM0T6uhUamr
rIdCJ3/T02xpO9g2ttaL1lqGOMjSyAczCKvC6KhzWjv+ifssKznaonajND26o51cYXZrZJ01m09i
BJQ2InYhex1ATgnm8LFXnXiSzh47pAx12mfb2KSy2tWeO0q9BXOv6pKyDMxLGfK8CJMZlUiROhtj
rJkdeaopHRw5Gjna5eEyTHFpS8fTTk6+ChNgbkCL7sHfMk+Y2hlFYA9EA+pQoHokGmoc4IE4EPod
2LZ8hrXN70xz0Cyle0RcEXTlm1ehbxis4N0mo8PDw4MgMelBPbyaM1mTezRQL05gtT5R9CVFupSu
BB4Y0UFZiC6zWFkV4nvBsgNbAzElycRvPg2majQNZVC4bbJILTRtV1989arZotBAVNkn6XvaqBqq
50GKIDmWC2RJRxGkxiN0BgmIEN7mVSV8jc8zC7Gln2QUdtWdxuq1GN5MRs7D4z8ncbj46mh1TH/Y
Ofi2re7Rlw/xWNswrVs6Nwdb9dGfjrX30MDaS9LZ+yNYwxWezti1HNmag2DLhNl90383jJGsgsfp
PEo6ia04l9JHi7KDwBLRl9kd5lUaF692k+kPS560jtBpyIMzZ1DG/linRY0wG0AY6k6YZB3jKAlD
52FtjLPWV+Ud+YrTRHIwhwekSjpZWSyUF6PLl35f/lQrdukPYz5Jyjo3yY0inBh5HOYLfrcqTjTk
2wOZ1FaM0rb4GemVGVy3Hq2+4n9aPqB1rv6eFIpzM3njUGZ1Gdtb56PvyBAXtOMqGw26yt4ssemI
jWpeigAycGcyJLWo1IM2HoEMxMjwxiUDt00xOhYZmJPBf+EJTAQPwor47sEckIw+i53W1w5tSVFc
imu3kChJSGZsT5r7jqiBq4eLjKzSrNgvOryrSSsiJgCtNrHe4rhGKeW4wbffqvyqv926XrOofLoo
WDEbn2/9rEuB6YsJidP7b7u5Ybvt2vjoPKxytP1c/fxLGkfTxz3a8/COVMS+Xi1WR+BGj1ZuQuYN
LkUOTMiMYHcwbXGm70AXmtyed/pSE66s+2WadOC3Ynt0k7YHMmlXj5HtDdNvo1tHUdzEUp8p2lrq
MTEZxM7rf/985VuN/uvecKzUil4aljuJCmOdRNISmLY7EGfGjAhEgBK5Nk2WwayZT9AxrS4+21ZP
HsnqIDx5wXA8iWmxT0ELMq/84HbLDl1Icbe0/ibktKImnM346Q/JjUk4/cJft616AkSVdb+dCMe3
7/jDXZh9M0lv1/kVfn995by73ssSWGa3e6skzBuSsFm6ZmsFvpc9W85YMasz4kydqewcCDPNsyIs
p0vN8zcy7/ScNaZZxN5ARNXZaeO+ubgyLXVJVciE6Lbl6i6N14WkxCxWL7VcjUxt3dvv6SPI/2TF
Z+mv6LfDiXDrisXCVrkbzM6TT0qcZWonTpm70g5Go61Piko1Z552zqIkj+jyuioKLdwQOWhI6nZO
Fu+4kwWvB02/PXA/0MqKyt98Ja8g/d8NgxX84i6lm+IW4RWeVKPepq4EnnQ5HpCUmXbwwK0h9uNt
cHnR1hpH5mwd0iJri13ZNfNPusp19+VRTCMafDyoGypzdZmPZZ8IMjV5rXhtSGWr3sJ6WofYbRpb
5XYVaaeAO6xmZBZlkvsP7LeiYafy9qGrxer7dRZv3FDZ7jNepHkBcUPVNjXJaMXs8nfEdtaSdhZ0
/dXODrhDbmN1vwZPA0+rR67tDaOlurCZ64yp4jANKVSswQ/QH9+b2m+lmHKQcoL2eM9vqPKf6FDV
zhBYNRTJVQfSR48QcFui5ZqVaPmG/gu/Yb/9pirNcv2nTvvC9vqLnVksZzD9MVB/uuc7psC1NEpF
wTb3uFvntN/z2qHCIKSLY3m84Ui39/IuHdcrvkJIHNczT9PyILa+w+tgi/Rpx+XWLOdkjwE0kqiN
muNzO2Bl0+2UpCgcZWoesHexZeWQ3SW2a68T1fuOhT3tXPES6wdXnuLxG/sDTW/Sa9eGm1b6zcEN
V62QPVnQky7hcO80HDIHg9DFScHT8juro8q+u9V3Vv2U/xxUP5vVd7v6O1L93qq+V89h5VP3/37z
eVY7lX+fl9+d6mcH739HLjIPP4eCQzk377eXt20RGR2tbXc54QnG6RyvrspmKMnffqUNsDadWfnV
4l99/tXjX+3dZ4jN30H8a8DfKV87/HVoXK39GaF/7IXs187cnNN3LCu8WrsemtKvDp7Q96355JV6
6YmsEdrKEScnsAZqq0uzwJrFyNdZlt6GBTFWYSQ+32sIL9bfSHxiee9jSvX799aHBtcUwEhjmT1p
6nA/YpkvZVoZYzpxhmnkcFqsw5hHG4fCNra9gdq4bvvXX399bX5rXn/97dfXhvAu5XhFZQ9DyjSM
Y+53JN7GuaMxMuLRSieemNVIIqk89czWk6bNdd23R95rDzevrK+q2zjrVQsG6RdsNdBo+YPSiMR1
78zRaWxijZF7QBxqIg5wnGBZ7Ymbh8n0UemeayqXwpalsa9e8WkFMGp51jBsRMldGEczYxqnzD1L
dgGsKlHdn5PtPTpLgv+ucmOY7O7N+4xsXYLY+xC5dVyOxEHtKAhGs65NvWBLbVp4GEZKIZud2Rxv
JEKaUzijxpRFr5o8tSB+BD3YZBmXmI1J0ttYY/TSsm9+/fXXjIhaN92eHzNRv/t2lwGIzQDNrm6Q
eEML9eZPfMNhKw/bLXRC/kq3rdJxC+AwCIlt00CjeP50B2QRQlUtytmzh2WjyXvescdmpHtSNoBx
IX9QOtVV1a1RqXzVJxGgoKC6klccDMprkqpMFI3Kaw/7bDJOyASCu5OodOprWMvgEdcy5khrme5U
stToRXTHLgsXRJKvWp1NRB+h31A6WfzHjsor/EafTVqDEpmzZMbMkah89481ycS50bE1rnlWA+Ey
fJyQb2ZhckuydJ1/wwX8Juf7uEYjBJ1DaeBOfIhvjkvY4d15Ezego8zu1KyZrMsoCQsyk+VOtIJR
Ceq1svlesnb+aj9rXm1OhuyObU0cC3d1NlL3Wvu8Vo/47FkWR4qovdvOheUmcsWJlWEzeWd+u+x5
7PNZqL/Sst/pwF6xyAgximhJ8r2EBzNABgm1K6pGclkYjlP5KoEOqiFp1jpxlYVRzE6oqxzH4qHS
HJKXvQMc+Rl1dc5lhpqu4SBJai2nP5+4y27bGeXYn/2exX9t4hZbkXt9XYY5Kvv3SBzbHdwSLUfr
Zfn1Nf1Pl2micWhzxInz8BimqbLLhxvr6yfyf82jEvKdcZre+CsykS8+q0fjdZvrbRkeXV3HHIe/
LodU4wzq118zi9Q3FkFO/VqFRbctjQUEABhdGIa7UOj916vwKERaE3mg3QGEvLtbI0yiZSg+Y/Y8
f3D27lgAy8MyTvLvHmhH+LLdF9zf37++x6/T7PbaCoLgmv+2WvlXtE6jbBrzDIQ3lmnuahtWKrGE
hZvygz+xYor8Ed/RNfx8U08xpzK83RXyusJvdndS5oTcRsmNydIkkmR2Q7lmL+dRHN/M6T7gn2Sv
mmJ4EKt+UNeL5QdffYgJ695vHz+TmEwpMzeVkLWQbkdf0566b0w5G4S92Oz8/v4pSv7Mm+DmFb8E
LMhDcc2k+3bjC/iq/JOt9Zc/8Cd18g0B6HEfJbP0vgx+Z8Nyui7L3Of0VTwzaGsaYZ5T8YTRRCjQ
JAZ9aVDzoiQak8cVRTQm0a0jPmYfY1w79Cif2FfO/MiZ+6tNjjkmqLKaHSS02fK6cMSqURjl2bTQ
f8dxfDVZ7WK4lQKwTJ+x8CgfmR5o19KJgvz3SHL5agI112cm/lxhJvkimhf/RaUdzVZWWVrQATdK
E2NFZWBtJD4Zd9Wlpiy9kf7mwCoKT1t8x9eDqjCKg5mv9LBbkHBGF5hozITG25TF0qzG3dIUO/aw
7SY81fEheUkHazf8YtrN795uwpMiz/f1oHZqN/sFtlvLtOAJpS1fTxdHmbl5PLrrdGi7PL5eMXvg
e/t1wm+HVYlKLFDPFqDsdJDiGdJKmhYy+6JuQTh8kRps13ZEY5mgpCPQnGR0fYMlBXwgOTyPn1tK
Gma3pDBmKcsHS5f15CHKi+Omx35/erbyl+1Ro8bqTs3OejnrRgX2enobHa9p/L70Y230ywjCEoLw
ORN0RzI66hr0pVFWbZiJkvvjDg+nwz0dTq+3wWlGmBEeqkZmdNw3pmnGux0f2R4KfbNOhbsjDyiB
QffKq7VisEHYG1OceZTlCmkCSMVifdLQmShNZoqR2IdkxrICXfLQSTtTiONDrgmQqUkaQX8MvAv+
Bf/M8a0L/gX/gv9i8dGZ4d/dUsTpgmEsqSBGHv1TchbuQspNiZ6/021G4vDxHYf7lIazbls+NcRt
Rkjy+Y81Je81/c3xetK2LxwpOMKsapA2hugGeUVNVlysAUHCJIRACxZaYESz8uBiRZJZeXlSqSfc
1jhWX9LYneg6J8aMzHODH8nUzQt31amgu0wjnKWr4ieW1GaaSaoZBaavQw8GJxAfdLSDjrz811l0
HeZ5dMsONGl78EaJScgbRVqWCUH2tyKonSL7oHGYyELwbYhPJUQpdq/bqBe7F++ENs1zg91sC44C
PMfuy9X26fTF8ZCF+wlszO9ngsdCAvOUj0WCh2LU8aHrLH40JllIuShrFkuMxXHMvlTzQ3b6Fs//
/MfN//v/adKhLLU8K+NlhbfEFoZc0Ymeze8EpmRVXK8y+vp6G5P0fVl/wfIcv56M1+3RheM7sk2c
sQ0NFCvlB91g1sXc571X+Fjbd/RwdfXeuvLtq/fm1VuTfw3417ecvY/e1Qfn6kNwc/Xh3dWHD/RV
h3pSx1Lck0mYTReUsOtpltL+kmbRLV0h5sVjTPIFIYV8Amnw8VZA7Sx8m8l8D1HQWSFToS2FYzc8
xopaBl0Dqed2C+Q1r4DaaSYBFQxEeHDE760TYKITYOITYNonwHROgOnqwZzTPef1vNqYGuwn434R
xcRgkJKp1DIhEQMysDxO741wQZZbiPp+10I2JP4IORJ96Bf2cJJtMIytx6dw7e3ancBuY/oM8zWi
LRbOfokeSJy/DWdvsttc7GaD+qJsF31pMk+zZZhM963l99zYGMxhwm5+e+mZutDpu18iaifslyXi
IswSkueiNOG+Ttjb+L8Y3n/NqYUesrBMM3I9Xyfc/yKHNYjt+3g84dZJJJxL3dGFqLdSYIHWl7qE
KKJYVI3BBe2wFEIU5OFHdkiB3v/w218+CfugbT6bPgjuDM20WFbQ1wAoyOf1pIn+ZzQEtqG/mRkL
uaDdkFuTLk+nX0jBlwr59eJxEpWhOOxgmdyx0KtFmMzoO+KJTxfmhC5QGFC+CL8oTrlcUBNAAfP1
hHvdpVOWl3AvP6F4/oUUEu2GTZYr8cbdDgbDTNLECPNpFAkbFlJvAoYbJWH2aBSPK4njhDagLP1C
EoPt7bv7IICA1nPm9zN7s0zXtHuEc+Yxz/KmEtZnJutcnHPHh7h/Ia+XAEJgBFqdQoCnccQGBCmU
BYogA0IxPieEDoqEB9CI29TVCsfTxtNBiG6VwjxNxGyCFhlwTD7GSg4v9CLR/p6EdxGvVpCQe4Md
1rAZRjydWLqo3ZtyN2KsE74hjaQOQ66tA72ct/5rGa5eFw+1BMCga4ZW7FZqMQOiZjslxu1UzC0k
Hz/yO0CXHol0DcFGolWYyUzLBl1G+hpaFyqS57jDcCLuWqDDVThaOV4YRZryqC0xJugCAY65Tthd
yPYDYpdNpBNSXOLB0WbM6ZIuu/OczLZrMblHIcTDFoa6d04uPqwCjUUBAGpG5jEbfMuOwdQ1WH6f
NEnnc0kEaDAI9CZHOe2O9MdCvLa3EMThtwO6EhWB8nZ2QM1JYUzmdDEaS0IXLE2w/JaPX3UnqUEe
CpLkkkk2MHU17xZGvHGBpD0G4VAqb1m8Oe2i1bqekytERZ4d6IdtHhkcTz+qXEs6lQDIxSYMj9pp
TJLbYpFLhiLAFIItANbeVnvB/MiY20xG30uX/BxWCO7oBydZlooPFiDp3zFqBTYPo9iYPO76ZF6F
tInXI95gAizDh7KVxSORjYZDjvJlWEwXu1MAOQOW5Q7XBuyIywin7LJcJYJp2sOKALKFIY2RSwFp
DRObgwlBJ6rGtvDcQfHpuJ5Uwa+KhoAcMveQQdIPrGBI1PXqNqMKK9WGjAi4kwB0xc3cJOkcxxKa
iwckyNasI/x9xpJcAIzP0SVCUazSJH6kBpd+iYgghYI1INb305iEWS0zBcS5EoTIPZAoxF25ZuHL
F/GSEBKvBoSsCkfRhVmUrKUnSgFyNSOWWVINxVSKTawZcxnmX7brQYNFu9ONRXYntlrf0w2frye7
+4oF3UdNaXuLl2sOxJ8dO93Ac/FlkKcJkWe+aVzpe5BDLDjeRk3FKAS5QgABLtdxEa1isjftiSmF
HFJitw1iUytaCOvCpJPbHppkR2NpA+NhBt2XDSCQTdEP3vGEWJCzXRDWSnKQCHI6ASFkZEpY2Y0w
y8LH8lJJuJG3MUQnrwXiJE4n4jMDyJEIEIqfQktvkmFOaLjdDcc+qOJ6AwfOk4LeeEUA/CSAYUJQ
5djcys6axKsYyzMd3Vjpiq0q8h7rCQhcTtfcBzfH6vsKG3LR2QJY3eEtBwcDwd1F5F4I6doQan0o
JBtgKKdVFiHV8b6NtAOLbQd0rAPGkXqMWCZotAYDpZPfWWxpkVaZCOkcO/0i3lK4WnEhjeciTydm
schSsXlapk4gsSFCSvsCIdiORO6m4QX6LKQwlOs7bGkzimjJl69FJjugRjZkmReAscS9CzQSg0D2
nLEkh5+69NncSxur8FE2xwSg5RAETVGvxMKmqw3lYC8uuZsBGLptgtBWYZQRtgnOspS50OQ88n7v
9l/s3eYOK0A1RorPzLRhZ7E6/sGBbFPBUHTbuE1fL42mBXkCgyGrfIuSVHq+RiR+MTylDcmCNSV3
0SbE0bQdIl8uyAsCWqarXclRwOhUR80/4d7KzEuQNuL2kLlzlDwIevtm5SVdZgAUp2g2IbZqtQLd
5DYIp0V0J4n6dSArQRDuP0mWVgethiw/nIVAgx1IzTT7QrIc7pXpY6QZ+tiv7ViIevgJgvjfd1Cf
WfZ2LSw9zvAcZ2AGBHLUSPAgJ23dOKBdmk1/5fvd57ueDFTw9QgoE3LW301zhcpoEFBhDzODYdmt
c+q4kJwpNmqBCT4FB92PtYLeqSsWom5SPuRwq5UMdGW168KsTz0mUzptdo7L6EiATIwaBQhDzrpt
ux0FDXcSPqTsRivMA8330QXhrkg/OOiQ34dcz3bUWiRCva1h43cX1WVncj5ky9tTZ45dXyyY2umG
HOz6EEeDjgrX8OvGDYoO6qW07HjZh1Ru1aQ4l6GuPBpGealtm+6wGosNO4DcHNhOGy33132G/GQO
lMetFfJetO4BeL1tbcjZfivsCrG9my4oS3c/GhqEEvR70HlGB3rKO09hABnoRKoXDdWFq/yq1dHe
FyQy1Cn30UX7i/YX7S/aP1/tLy1waYHLCHCxv4sMlz5w0f6i/UX7i/YX7S/aPyPtmw89ISmi7ONY
EOHJKsVIs6Ksrio8WXT6YNXYPISr3/2y1DWKbOTdcIxZxDOnJcXPpU9x3Yxwex3r1Ut5gv91Ft+w
CNDvrndp0b+jf2ZqERZY7aUjT+UvLdGltDUwKBJcDbpaQFlVXlaWNUxqlVntAbV6TIrw4QNPdFGn
U1/3raIXqdWJL7U9XUiqusMOwhqJ3CIJzBA5p+yo2zLFldefzq7JC2puCmAI/Ql9T4u5PiyYIvkq
TXIiqC1jeRqbsozVFlWz9UH3oh1wvueJXElx8yWNfCOrDfT4yXB4EhA1fZb1lDG5a3KZKZaX4mE/
3rDaLMFHXrOlrNbi86+If3X4+8c1MCAZkZolyteTxl6CIYlwZFDV02fpdM0SQtAXy5C5XVXl68XX
yP3xGleUtue9tNXWQGsQkUY/Jx9k2bV8kEN6t/UOkax0PPN82rqM8xO0sP4dhwCKmz6kATx1Yzes
+ECxT2oI1VIPI7v9889sBabWvvxWNuRPafHbgg4P4niWwOwOViyi3GA1AOiwTOh2YZGu45mRpHQN
yAYKQRUCpwPxD8uYEZwROtflxfXf//LpB/rjr+WPHx5Y+iVZJmgfEvragLdrviiZR0lUsPpA6apb
BdML1gXrgnXBumBdsJ4hVjihy0d5oJ8PCpOAQFRLjSmrORQbMk9a2PlMC7wZfSdLH7cb/98k8aQu
JNlOAzBbGR6WfuArKNx/BcVSVub5NkldGLOqhDFdsNElHF2SFiw2t4z1TpfLUJpKQrXh2Anw8y+/
/fjzT58VZikXhy+wy5x2+c23j7Sd428fDF6g9tsrZH777beP5U9flXlWNgvxLUF8IV47+HCAoqt7
08hi22g0xpekWKQzKvq3v/z1t28pC63k9D2gnPThp5IRtC3wW3UiHl5d7utyI2RhgeJjI9Du2Qfa
4HYnOU2zvGE7CmV6EubRtOKbDQdHJUqhE8W5qfAV7Xn0n9CsDk3nEFT1d7tcGPlNka3J06XpZAyp
hoqz7wVPSfiurTu+0iwxShIuyXerMM/v02z2v18WDfM0pfCTk8jbvHaoy7x9h356Hke3i4J39Ury
k1nz16elYE6HvNNzoPrMZoX6YJRFrY+WKkOZ+HPjatSZ/nBZK39IffOoW8w6Al/fDrqulmSoCtqD
tr7M6bim6t8AJ5O0Re9vlhFqtxcZz72t+0PyG1jnSfCieTDbn5mOflVOQtU8Y8zCIpRdjlvMHWHY
BlMKJ2hNB5+KKVnClPPiB+Q/0p0f2WGTj7yT9OwBdd2uGQ1eMWPjSMIr97CaTIoiZKDM0aqRhyWM
LshyxT0e+ADEXrCd6s1WrHdMqh/3hHr7+EMpUn2tpG9DIiRMRdWI0rc65R1FcmRfiD+J5Ng/5dBQ
3hiIhwaQ/6L+oeEvpUhPdGjoLf3JLFQq+dMYGnoT//e/fPjth5/fn5n04w4PRbQk6VqcDdqFFEqw
Aw3jwW+VFG3bMtBtiRs6BpVVQ4fvJae6ezvo6ZC6J+upSYV0Wwdp6rYSL1/cXoRO3bVHM+kxqYGE
629DLQUD98TRJbPxkObM7yOEJUECICGdzywEt9jQ/XpnfcWq2gOrOqKWM5JEZAYapUzHHXaoKGUZ
XXlxlS53uDYeXc9bOj3wot8J3UnKE1oEvjVsA4vkOGTBYb6nkOpCXWjYoTYdPAbqg8f+TDBRGBuy
7j7gvNcE7fjjsC+uEGSfueK4l+K05z+WI6z4HMfx1D0QD6w/DHswmx+E/lWa10Yd/hFeOOpxJZ7s
LPUFX382Uh70l/Ngw3y9YmGrwjlhIFbuF1FBmDeyUX1s4yEirtUQQM3y58+t7VIuiuAiyh2ejjIy
QsWHZbsYSEiH5YFClo5LhlaE7JaCfHrc3uhK10pW4JhDsLETpFqkPuTZnG+G6E6gIDd821tzphmq
1zZJU9J0vBezT0HMNGVjXEGOTcUd2lTKGwqVqbD6Pi/eVEqaXrapHE57QlPx8As2lZdqHbt4C/nu
zGKFblrQMU3TLxE5KHrH3zHWRRSzHDzbPETzdTJly7KbGWF6vyv/sAY/MDg1wI9pWoLXeoUS225h
idV507pY1FxW6XvlWqT0UotmzKX/r3ltejOAwqg3Kz0FsU3rXxB+cpIMZJnNHdPu3TE790v7lP3S
Pot++bK6wmDWWG2IFHOEaZrt4YF3ao1iselznXccLZuH7iQ1puu8SJcbd8H6gsFo0xf6ANnDN7Ks
jT0XX5r4aTfx4YmPEaf3JJuG4irIAcba6G0v0FD865BkwAYCHgF5tjcsG9o2a/Z5HQHZ57dz62Mp
zSdAboAultLlBOiZWUrzAZDruS/YUl6WcWRkRSjgjF/UHfqjyHJxWWbDZak9lI+GCtR5VqDNrey2
a+XqPosn55qks0fp2p5lSVap7PbNFrUVQbiegkF3yK+lhh2cb8lW2bpwrZdr8rBK1XfIfhAMoblS
jBFoyMNkNkkfyKZWk9zXxzGt3uBSGsRiKOpHuYE/tjSCIRfku9uvPaqJnplHui7o93g2DTNxHXdI
pnptnEgEU7aZeXr5TtmKwgR9kGJDuklRtdH44gzUJGva8Fn0zzIeUx6n7RyNJG8O/q6MLe1Fwt7R
/O7l9ixeCHcsYW8ydsCU83m4jsVxaB7WOarWQa9nUWYdsaC+hWCF/sYVgu8fvcFpQOdAA2pFw2BC
TMNiOlAz7EEmKUv0JxwC1MmFu+hXgrGEguJ3xU1eCvE//seJpABz7gE5F5fGhBRDcTwtoyvbrqp7
Fv/EaAKUFRpHVR81649GFEGTjbWBx80M4BFFOAEDdjMD9oginIABp5kBZ0QRTsCA28yAO6IIJ2DA
a2bAG1GEkRkIm+fCcODJMBTNhiMzgAAUoDGFKKvUjksCBpCAxxTiFCTYABLsMYU4BQkOgARnTCFO
QYILIMEdU4hTkOABSPDGFEITCZMoCbNH48Fgm1527hAl4pNY33M0Mo4c9zWFPtbH6b/5m2TpF5IY
9F1l5XMHdNoObrsSdAv4IAgA6g1XJgfa+grPC167VFZsy0IB1qghL5BU5SfaHFhLE6waF11b65re
kSyLZmJfUQvrPBXJyCp+FNio6w8Mgk1bA1+nxxiFrFFAbAuUV9vxx1DEP3NFoKZ19mQh0/2X4Kkp
Qtl/vRq7OZ5Rkz+TTngZTc5xNPEvo0m5llusky/c4ze9zZhzB7ljiXnIw4pMCzL7RJJb8b0fBdap
3kaOIguTfC6Mg7Ls/trGKffNS2Zipzjb1jnL7KMZUhcdC1JXoEmvNEkIj5I16KI8zeR+vY6lUUEN
BaEvWBesC9YF64J1wXqGWFWaC3EWu6DdXNyQ3I/ldmQR9SUkO/j7fhqTMLuxOhwA9kA9KZplnoTS
lrBCS8lSuvquKoEdOjuXsSTLCZnJalOZvjr+O4CuWKVCqBwcpY6k2mF5XBw6oarjYjbbVNDRpsSh
C5ajX81Vmefj0KKlmyHsuvpFSNJT2XID8oE5n6gXPQvY6YJMvxibyVZwdOBftH3GJqV1nKzykOVF
moW34kFqN93qVXW31igLd4sXG8jSP0QeIcsQB7bj78vXN3/7s/GwyI5aQpYT4tIEL7sJBgV/Aq2A
TzwWaR18awsmYXiXo9jtWN+xTecpFokDIQOm1jGQT0T1i2thjQo3rRNVaZUubXtp2yfYti8FtmHS
bQQ/htxLL73K0uVKmE/AdfXoq3Ycty0HW8MQ3QlYK9W7xGq3pBCXPrOAqjYng1IgCwYpW78tAzD1
sJuzS5wqGco2BRPPc4jEviuuo0Xb7p4/fRWT1EUaEldcMs2FtKGlhKySRxxUBTNmYb6YpJLUSA5y
WqEK73kqr/n9UmSCLHw61CvC6SJKbstjb7FJBs0lwxuBdnZJpovUWKS5qNMhv2kdpAlFM28i1gBh
FC30KQFZFkxpOiXX6a9WOv2UstiMj1KPMBubOtU6AKQdqwiFp5rY1aHbesl60yxdhuUhgviWx+rf
fffCX1iJQWaMoqqK/RuMB0mRbULwdRZLZpWgpVqQoB5eAoPfPP/j6uO7LJoujj36LpAVJDo3yLrh
iBcjpjmgdlfvzavg49V768o32eu3H/hXxL86e++/4V/N40th/yLbiWQrPbFZJUqSkMy4Fa/5MMa9
kUArIUuTQkWYSfY+COBS3gzyMCVlbVchBEaBRqP5J8lSIy595IuHoq3rE0XCDcoUWWisQjZxF7Jq
qIBA5wOgHrOp11ujKsG4LJuYFdgWKE69EQi6649TulO1ugXLjyqEMTR+QyqVSThjpXlOLIXx3PHx
C8e3z8IK7fNmodPIy3d/LCOBMQ2TKYn5ODxJM/FcbNqORpX3wIu0whfWFMOeJkXXCUfjCiqqWCDT
1ajm4S8MugMuxRCqavdHZg7KszC5pcuQda4sme56gc5FQn+3b4hub+L41+rw8Qe5brbVUjd1G1rI
sSQBjzp0OlRIeLhp+1ZvJGYLdOc5i7IyLlC8GHbaEffDhzfvlafhJdx/lfWVSr8Ruuu9UdpR9Wn2
4a/YfvkGm9ZBHIalwZhkiMcHU2dJB2oblvK86cAHdOCXTod3QIfXko4GKZV8QJDUVaCiZJ7+nPxS
xZ5/YOcDPWbpJqzfKd2KygFBYGoAodv0kI64d4SXKCWSvPz2AEj1SRj5gWXi/tSxJQzFoAup8giH
Bc2JD6M8qz3Y77nBrqKMndWxHxdhllCbyAgrUff697yWec1yNEPVQXwK0E6hhmVTdcRW8+mw/wWD
Dgybmuk2XReSM6L+VrBTowTavsGHLr5tUe9aWMa+wXEFSWgHwY1yVuqD+cxMWeW81mlw28Pn60k5
ZaTZo6StuSUdOQGUnxxRf0HLn4MMT9MKqtWBvNK654M8BxwISsd93NN/tnDYvjz8l79enn387Pcf
Pn347cPl8cLHC3cTl4f/7c8ff/757ZtfLwBSgM8f3vz67ofL49tOfUac3pPMmIZi/0zkIfNlzLLv
0x+Ly9rjbFgRnWs7Nn7Gq0l3lGcPYC3P4uF/vTz7+NmDrPWey+MHWO89h4cPtM57TgCDrPWey+NF
U18S3kW3Zd6nfJGuY4XXiQ/yzoRWTt0DVjidmv0hE3IfRwlh/h47Z+9InKnN9DRqWDrubvw+RNFL
1hNDS9ZxLKtfbLtu/xXHUfiSBMrq30ppUvoeEdmtpge68oE2DklmMclz+vtuN7UWTJtNnvDyIjAs
iiyarAtJhkvfB9zRWV4DcJnRWk6jE6hiOS2vW3H70jNPWtEe69CMe6i1YxQSYgTCpfZS3eaWxYqk
Y7IVQLzyO2HylhVjQjoguGl753m9YF2wLlgXrAvWBetZYonnZ2n5QtcdaknAk3ZUHxFH8LkaFpUX
k7lgXbAuWBesC9YFywfM03vu38KDW9/rD7QiSennyGsLSxcfHsSjvQGr13n3CZ9dJVYjD+G0MJZh
wfMjCZdJtqs8FYOWyBECGpG8gIPpmG2A6x75m3dYHgKB37+FNT0+I4KnI6TBkKVnimEcp/c8o0cZ
7lOSe/N1LaNzMLoMV8j8mv5H/52DMGZwDpywv73Cb67QR/ovTqdhzJKd0XcohHkebfbURSxNjv0z
g7OxvXMn9UC++/t79PosW/5cTfKMW3b+NAzvSfSN8xXuDCU791GuNm/gj2cvInoCIj4NKfH5i+g8
ASHZt/Nn8h3bipyBmEyCrZiffn735tMPP3/+7XzGxwP5znD8Ns5Ahq/PYmttnoU9v/r61VlsC9DX
9L9zsI0zGWe+PhgPz0+iMxxavn4CJx9flzPZ2R/QmGcvInMJfgJMHshHHsLlKiavE1KcCYNnIMYT
2LEdPp6+sQWgr1vfhTw1BS8N1PlGroyKMA7KH7EkmdK8LY5varmgE7qtl+Qe/epAUlFyb3NoMmRc
2A56UVzwFOsKy7CAbDQEuIxMR9CLDrltYI3uErP0voy6uI+KhTEjcfhY5nFiyfRYpNgN+oq/e2PV
VxVIWTRsT/+n2y45S50MGr4gsfxWMHrHtYOBGZHaKSQf4XMjpGEgs+1W2M+j26hHM8t97pTcL+hg
ytZ1bO1FZRGXDUQecCxtzNcrKLxia3m2SJ9oZYSzGQvX415EQlc4Cw9C5d6qVuwWh4bBZb8XByM6
pj0I4o5kkpcTNUt9ySvKCQXxPIAcyOwlhxAXUrirA25GluldKO44nmkNgqlm2HJx0BuWD4yTOJ0c
FvqUTh/Itr2hQAseXlLz/7OQ347eduPz0Z63ttK1T4eNggv2BfuCPSS293L7t2I9NhQqxmOg7p9b
fnd9veX4O8GthA0p1dhtPpOWBA88fMIJ7YTYkALUF+wL9gW7x4T2cvv3KSY0dH4TGtIzoR2UHhYd
m/le/9aGVTkGnM8hq1kjfmwxSdfJLMwexZngIAUW96C66+T21yljAabs0EC+WzdBbQStC78BFBR7
sZrrfFhjYJcVlkbBnpF5uI4LNfhghKNmwtEY2BLCh8BOyP2AnJeIkoM2/9KLLr3oefSiAQkPZ4+8
6t10wcrfGmGiyCrrWA5qD3mPp9ctS9K5vkaYOoDnoABpNFZ+g5Xe3tVK0TlPBeTQCiSlIy0NQGXh
tUO3FSS+tPCD9nj1sqDbcqDVOnzrCsfX4aqOuIofXz8cyAXMA9JHKISu+wOCWFder6MAcvmK0NGi
+jzo7yOVd90LsB39QldKy7swPyjzPDHOLF1PYnGlHxTg9sit+Vf8wdBt01rgUZtG3CaOO0KbvFje
iyxaLaNE7NttOWY/NXNSGAVZrox5FJfrWfYiCZfkZgPMKy+v8/ZpnqBDzqbG91eQHrml4zgNmNev
xfefSyVaLulq+0aD5qdiXGXQF8JPZOK4H+P4wnhLE78QPraJo36MowvjLU38QrhOwjcV2S4z53kN
K1Y/xq0L4y2HlQvh4w8rF84ve87LnvNC+GXPedlzngfh+ESE4/Pbc+KXwvi57DlfDOFntOfEl2Fl
5OX4ZVi5EH7KYeXCuXYjh1zrStyqPG1dauSbdDzyTXoT5SQpspBFDYTJlAizDLjI1IAzJxkRV3c2
ka3h+Ydl6Td43TLgnBfYkiwnJDMmrDp4mOf3aTYTh1zYlkbVhLjX03RNFZ6HUbymHz0YjPjQMcCY
0FYgtWP1PE3PQArjIsNFhotVXmQ4sQzqlSRkOrEbJOJlHElC19CS0oTAyEcbngLMWBdzw+8azdkG
6D5KZul9bljIsQR4vgY4/n1LoDDIAGPLa4U0cDzskwLC1khAbqDdGoT55pAG5vYWuCy+gkwXqRHm
w/arUrV5li6NVbpar8RjhQ+JeHKauvAqTXJS5k3Jo38SMY9eeyRlnFOpAPZsV58KdJ9ePBphloWP
k/V8Lt5gIexqgaxU+yfJUiMmyW2xONoCQ1f8DngWE22zbT0YFYGqrhSYWLs29fSUlqcbBAlQfN0g
eAwQexyQuhk7SH+jPAhOVvS3yhgojqBZICljwSh8pjGS1JguwiwnhTgVuL5h4Pc8TXjU8C6IVDj/
+L5OLfkkwaBrJzm9QXLCQqDZvGDIJwa35dDTZq0Q5tMoEq23fD26zcIiNO4ici9UDJtPVjFmiLLQ
dQ90UgoAWSczMo8SMuNGzwrCiOCCAA1Co4A945yA3AYCsyiM6bLRmKXT9ZIu+SVLVbcVVA+dQHmX
mpQqaJdKbunabp1XecFz8WISFNnrtjpA3+AJVLPN/rpFrPjSYazgjCQRtX5yR5svV0eRYxOPJYMQ
HqkLgOwB//zLbz/+/NPnlitqTb2iUUFFWKw9PLz4GjGwBkFeZektzwovx8auqc5I6kFHhhI5jwpS
w6X96Xue0O14CY193zX9MfBrSxvsuHRkhCE3G3Q7cMg4qa4dky8pn3RVuk6+5MZ2+ViQB2HfDUA3
ctB6RvvYolMYCzBMYfUJMl/5GuG8IJmRkOI+zb4YJMtS4fIxgCx5sPS+e/N82oHWcVhQjP0D6VmU
T9MkIdMOV4ptMVdhsbi5PnICg2TnvQBdgC5AF6AL0AXoKQJtJlttM61gOUG3k+V6QnqqYfmW1R9q
vWJ5+Oh6n/7i4C5OvPQPIPc7PTDZ0pu9umFrw+sHwa5nHPhoGd6S6/zu9j//85dPf/38n/8pEGUk
JsLVKo6mvK7idZ6GK7lE2B5HonmaXk/CTEGNM44gFsLXb9/82lMQWwsj/0UZoaz8UyFMMJowxjkJ
sxHinGS68j6clTjIOi9x7LMSxzmvxvLenpc4789LnHd6xHE0mbJzXuJ4jeKAlqyaxHHN82IHn5c4
7jk11tdnww1fnAtvucbBL1fnq+T2VPjJXRhHs2N0yHbM1WSZmvqtJnGct+clzvuzEgf55yVOcFbi
4Hd6Blld4nw4J3H+93lZjqalnaepqd6elzhvzkoc57waCyE9/crTdn51Rpbz8bzEeT+KOHe3xjQj
IRNo8mg8LLKyih79kXmhhPlikoaSmF1s+73x9zwE7m65Tyn9XnN16W+S61WchsxBkZ/kb/0tuLuF
ERZFFk3Whfi4HeY4i30d3nBWKyClovwb10/o/4BG08nWrFO7toO4CZ9l2zFX10rFhisoUKG1s2zL
Yx3ZexIV7WeiIq99Un1SfLtnedZ56toAdEsKQWiFZjrzIqTDt3xYgwRWnJ2dHHr/iT2yn2AHAHiS
Wthzn5xe21BW5lxYde40m0kyxCArUHmM4uCUHqN76EKFs4g5iqbxml18G+mKZKHBo+JN0xYHr/i9
QfciqVTwRjTPwqUw1Ml1PY1SsFWpcSiKKIRsULIdYTFIH49EtqMg24MEbfdQ3RW38Fiquyo702Dt
KmxPCGq7I6nuqVodElfSQ3VfCOqZI6nuK1R3vGEH1kAICokz0aJ6oGp1d9BhzjKFsbL+SAZvmUrV
g95SsNOVNFknsm2Oq6GR2amSMmWNBUlDYZtAOg/g6idUkBlqD0tHQg9I0doG9Q5/ND59/qVabH3g
a73Dn/JFuo5nxjIspgvxAtBDuiUqD7F4vPdnHvVSCvE+yldMjA+ybQRyfUdj49O9bUx5oL8/ygkF
9MB1dCj9U1o06m2BMqK0FGc243iforwgCWE9e2MY4n6HtYswXZDpF4Mlc9qF/htzuiex6fL4Pioo
P4UxSWePwq2y5feWZ+/0tvSWrgEf5wqz9dtFyQILwxXQIMyNAgk225Phhw9v3teESNLiw0NUD3sd
RsXymoDdDZRpcyTJyGyNLVqm5zlIDFXv5JAbiJaqZvGcmfSbOP61ClH8gUdYSwLV+6vM9ne/hPWa
62Vtd1O3gtQwJ9FsRhccS0I7yozu4B+mZMW3lcJxA3Kk1U4E7rljUAvmB65kZuR3t4J7F8t3HY0G
xc9OImpQAijb94dWUkiup2FQFmn4IIqahhx1OVYbHZcRtSE2KCyjB9qM0zAX5wMLvN7IB0u+Jhnq
A8Ugyuc5XXXyXN8NfQiBujGUgFlKcmpXhA3/tfEi0K7mOi4iFqXPNilC7UAb0nagLHtRNfKX2dKa
VjfYcjUynKTvSvRPZaq2MI86ZGzvrDKf7ISnToMo+RuDG0PFXRuWO95q67KfFE/YtpBMAGC1J9Ht
NvmAYKCwPWRDdo268CzbtTzIvrsl1Tx1LF9CldO88FDH1T4opncky6IZ2Y7K+zZd5aoR7gZ8c3BR
1JNUAPEmcVAbCfh5wTQLc6FdeyCzRtDDCZ5HV7z/163Xxpx/Iw9Fw8xna2D1pDr+/S+fGlV0dYPn
pKhelj2GTQ6J7BIAjQJ/F8ZrycGkzhZuzGkFGifaacs8IqiGgOti5Lhe/z4rwr9jyfHYizDPScaP
hqtc4+I7GGVaq7MXYNfe4XTKKGezRJbGxoQuQ6alB6Co8Z0BQflgzVSmtpAYZWYqsQwD2V9B5ylx
3jjfDDR2sVl6XzqysYMyY0bikB+TfR8VJOMB5jfOV/zdG7rxPFowDNP52ttesxS4jRT8in26zot0
qcrfZyFIUmMHWmjgCLDbEXZ7PXkSy3kciq9nbMj1TDvUdZKHc2JsazQJ6++YZnvYdkWpfEVRqu2h
2JFnBbBQ1JMR7Ahnb+e1S8gmzeXoQC5vwNbfOxV6B93EyQSR2RuMjd3put7fyrfLqyPxEaDnW2Oh
/57XXD31ac6GlkWYJeyAZprnx+dSztAc17XzHXdwarN1ktANbQ3bhWT/daQVEPj0zLIL5wVdC/G4
DF5E8PXr6/Ifk4VTnrdm6Sv+zI9pdmO+dssf3hQ35ldsm/zbNq53FYdR0qFPus9PJU9D30uTZSgu
x+iBbh780fqgr0/bWq8AdQr/+VlQ8MxUQt+ZZh8z2ZzM5WInO3c8/JqJ2s3FK+ro93h65K8r7oXl
Atuz2yM8B5NBz08lrMUKycMqyiSdITABYtjjzA5gJKjC9WWT6bYX4jkYkvP8VOq1bKqO30Q9wvG1
gevoETrUrPUDgNtPHfo5GI3/7FSynt9MbqFeNv+YTFXbIWdEAeo7FF8buobBxeo13Rb30VQ8hPr6
sM9Ey/o63rfbIz+Hvuk+P5We3zxnBX1MniUj3yRkEB8q+xbWJoSGHo6sZ9eC6PntZhHWYJTKox0f
m+3FeA7MPr/tHfJ0GoviBMRHSJs0Ooay5zcZoed3PI1NDdapOINojvEEy6DBJvHz22Li5ze94ue3
2WjIogzsZnw7Xv4gXsv62iTR0dmc/mcPlbL1Yz8UtBfgOdjR85tU8fObVG0dk6r0UMq3kDYRNHRz
+/nNqfbzm1Pt5zen2ur55Z5MjHC1yq9NUxwJY7qBVhDuM9wlm10bFKRYbPs+GgLKCAVJ1KxBkCaD
I4ljy5GvFUSkBtaKMBUgODoRsCQzilYLw7IuY9lPEMaW5L2AjDIuGESqizsOjK0TRpgsMYBcLbbA
kKri6YTxOkbKtsIoVREEoGttFV8yXWrVxR9FF3GeOovO1lpBpCaGdcIIlzGu52nF4KrQBw/eMsKp
2LMcrRijaSOeL3GgVR3hRGbDVGlIjbOHIk4XDPE1boHBNWFZv44ahm07tWrjiAcA5GkF6TMrw2HE
A7MFGcygILt9IYUrtRJVM0H9EfkpR35d5grc5g2oAlsluYGc9rAbnJ1i1fnKuohiQaAXXVxr062W
f7EM4n1YCE40LWzr41QUtc2SDx4HbYviSz1zAP0rzsv6NXXlnWAATCgLpZXXg+Is74RCCQzEDLzh
WoZ+QhTioUiIj+DZ1sBKt0tkcCBBc0r+jlI4PN2vvkFhGqfi8Fo0yMjD4SQmbtmuMxTkWB2qSs0o
MB3AEWJDmiTdaAiEtkk2GcrCywFVtsBgNdWq/BJig/EgJ4z9kEWgnj8c6qBN+dTRhNlhnjgcPhnc
Xy9oetDef/j04bcPF0CNgMLM2Re4bnB/+/PHn39+++bXC6RmyM8f3vz67ocLoEZAwEpUXFLW1AZT
XwmKV58uaN3bEVNwKGFBnMw64w3ZcE8d7ZkvBC/rzsu68wJ4WXdeFoGXdedl3SlCm5NMUkcoGGIN
WAHKboIgeai6YgoyK0D8u8HJQ8s04RuwequBbgBGBbNBROaLMCOzbYR3nxtPSAIEoFR7ZdYO5JNd
fGIPK++37JPfsNnndMPWxTTk920Qr9/W7d5vfHRGRXM70Nl8O+W42qDHVfSpo42yr3wxcH+9oOlB
G2lP+ZIAR9lXvhS40faTLw1ypD3lSwJsvU7r7j90WaFdlkyXFdplhXYBhAN6465hXgrcaGuXlwY5
0vrlJQHCV2iKWw4Eye7fAKr5VP6MwMR0PiyyssB8khbGPF0nwnyvsNA1r+X68Ai37rnkugOgHqVd
aRIC20MIsYzyPEpuOXotfZCnDVCtqzCOzX8a2t5F5J5k17P1cvUmZ3Wir6csULB4jEm+IEQUf4kt
VxPUXtDOIWi9HA/yNWGShygvGIlFRohBYrJkVc/L4t91XW1HE+w8C5eyxKm+djpLNGNB4hUdButq
BbpacBkWi2UsMhLX1gSR392Knu/rUuGBtYlRhCIUF+tq/4c4Sr6I9EDa9Ni8aUzpzJQTatQrXof9
QRC0DTE5vxPoupj7QkhXN6SovXzQbToIJo/VwyBydZG4N6fmcWdbBym1Fj0fgeLqjp+fx+y/go6j
YZLP02xZ1qn+PbwL82kWrQpjFuXhJBZnvndAKRAEmAdkgdAFCtvWaOB5fQ1o/7f/H1BLAwQUAAIA
CABgPTxE7V7lMbYTAABtNwEADQAcAGVycm9yX2xvZy50eHRVVAkAAwPQ51IuzudSdXgLAAEE9QEA
AARQAAAA7Z3/c9o4+sd/v7/Cs3PZNLMrsI2BkNnuZ7ppbpO7bpppstt+pu1khC1AjS25lk3gbu5/
v0ey+RKCweQLSWxNpwGMLfR+6ZH8SJYefb5IiPFPzAx73zDbB43mgdk0bNNyvhqfr3HEvhonjMYH
xjkRgnJmHGJ3QAwqDMZjw+WsR/tJRDzj84Ayedr5u+xMdeLXv31ekT4kQV3y1XgTynPrdg3+Ocar
Pxkd7Rlnx2f1Zq1Rs1tGwL1LIfzJCe9DwuB36matU9sfz2cCISMiIgko60P+ogD7Bg9JhGPIj1iW
lf1JVkgU8QheXZ8SFhuW3a6Z8M/6avyD+sTwOEkVkxEVILP+F/eTgIj6Wxzj+tHH8/pH0v0Xjevv
8Jgn8QURsagP4jisx+otDkNXaZQJIUgIqYRqAWa0B2c8i7wBOp5ELly5kMt49NwyiLs8ipE6ijjz
+DXzOfag2NGEKHJM52XgRV9Gnvll1OnBq/VltG+mn7ske7Wz1+bC9zh7NX8Go++RiEQHhvzdg3p9
quFg3zTNWRbccUR9n7ooiWhtEAf+MwNzcXxyfvmPk3dHl2/fH51fnr6/uDz6dHJ+8VwLMje/30Tx
QpmzC3kFtGOIDEGAQB7xSUzQ9QCyjyJMhTTwmAYkQpYuvpdcfHZu8XW2jeNOhfZ8crlJURUpIF0w
umB0weQUTF4ZWOZzcaaKS+th3+9i90pr0pruqqnHI0L7DE3zOGkBFntQMu8bSF5MVku/Jd1+eZYc
JH5M1ytznrBQs7wxDOmE2CUgk6nkpes6Oa+4Ys58yshUMvLxmEQr7uXPTDuJr3mkYTwHGHaBpu7s
+Mz4iCMGyRwYhohx/GrP+PwLNgaQq9e7vYS5ciCwJr/Z/fXGx1/q+NevB+oao4cBqmdAS2TUhziC
Jsn3SCTqbVYXLdu1rUHTCZtOx3dD1hyalh24IM3ss/pFPeRyuCwIDco2LoYZ/Zgn7gDFJAhRD/JS
CwehwZkhiRmWtRZySlhmBV3TeJAOk3lIJN3pT8gkl1BubOuG4mI2xKIegoNPwzoNcB+ulYbQj3jC
vFrI+gVkzqeRpiuIm0Q0Hte8CF+fyGRr6Wl5dtVobkuxmC9h4fNrNBmyFANCYlkiiDKksrFeO6QG
5nCF4A3yqMBdMFk0xH5C0jK//QPTxO+DQrgRDWNj937qoXsH1d07pJGbWveuItuTRW9AtUuY1GPE
XFXIQjB49xtxY6guMcpSRzQA5cPcFqXRepKSd1PRkLF76gLvI4SviJcn0NlWZU77hkrfgpd0Cale
FvOSlicSke+JHMyHm03qbcFJaO7UVRbdyu90Hxw8lPasit1wjLl8YLJW8ORKN+JQh3lE+1BBPx1/
gPrr++/gyw+p9jxxW/OAb0uEGxM0sQXGESaXhhGRb5Xpxqs0NbesaWpXGOzK2ljPfCu79JYKklpP
Kcl+FEntrUsS4BApVwjaxMKSIhLwIUEuOAgeiqGC9cGNQyGOBMltMuwCTvefgvhECCMRxOA9Axvg
JVJ1xwKvb8ipJx9Jx2QUG+BN3t0LVA4cZnBbB8+4N0aDcTeiXs3t08wTbNZKKaCpBWgBWoAWoAVo
AVqAFqAFaAFagBagBWgBWoAWoAVoAVqAFqAFaAFbF9DSArQALUAL0AK0AC1AC7izgMa2Vj4urjkP
yfq5ZwHxKK4PqUd4OscKLZnW/8xEPf/sONuaOeOYDvJohMSAJ763wWKFgAq3jl3q2SikI+LnlfNL
UpKroYBxnJI+j6kKIHFgeJAkhzouZ4eDtldizwhw7A5kuIlspuLmAlU+5yIbQI4bdZGEoYxwgOVM
aOPVKYdWxJUAjC4xWJYn4u3VimNoLMfQPjCtLRWlyopMBNLYoAxJ0CXeYYTFIG/aFmhwtqlhVlr9
AFMfYSEIFBZnauIc6kU4IMXWPankliWSK7T1NEIhJTU9u8isz4VLG5GHfDIkPqKKTDpBvetz92p+
7cjSyYbtLS6clYuO4SbeJfEggrwVmmqopMIftbRfxGOfZLP5c4rP2qqdxgMqaukM8ppMsAYJ1tIb
VJ/2ionLJqCrJRqZJ6DKj7NVZloZnZ2nqY7Td5tWRjW9dzLX18XMhWpp5amz7W2q6xbTkjC1nkl6
8ShdjgJNSEhw7kqIbetwS6LjW0l0XJVEBymJDr8kOlhJdAQl0cFLoiMsiY7vJdERlUSHKImOpCQ6
4pLoGJZEx3VJdIxKomNcEh3/LokOryQ6rJLoaJREh10SHc2S6GiVREe7JDqckujYL4kOsyQ6OiXR
QUui4xGffzS2qaP3eDq2+lRxUBId/UfT0bCfajLCJB4QXO77mz4DHQk/Rl0VjkpNspGbYYyWCnSa
m0adTGRcy6tXoYyeFI/ipfEn03PmIlCmB7IYlKfckOrUDCMZDM+jEXFjHo3vElOS4SHtq9lLN8Pv
yejqYRbhaRpacr0jPpdc+qA8jerFUKKekqMBZp6fP0tna5PG5vIZ0tEmsmZvwfpT9FAbBsRLoFq4
chJSnrimqW0lB6q8GrmcX1GSS8+qMj1xE5/jNG7jmwsTqCHe0QQ1w3szFHIG3yqE+0BxS838JNrv
nULOzy4mcRYgWc7+4yOSzeBE2AV04slVzu96RuR84CWZyb35PFykUxnvW1ppodjMU7jpCgK5QIJE
N+pfejO18+g2zW3b0FRfEDpb0OesKrA3sQz+HasIyCQaklmLsLnA4lpGkPm3R6cnR29RQOIB99IZ
kNms3TDiMX+hcmRMVDHAHr9W3RuQEkJ5xePSCIxIP/FxtLmyTqEl2Q9b06jgvuxWfuSR79UxG8v7
XnHZNy9ftTFRZ3sB7WeFEvjycLYcpLgqXwW3JtF8qHAZuPYjlOOnP94dw9UrA0J3CsVv/zNdCJeA
60Jjin36b+IZKmy88fej07/+88PxxcXZ5fsPJ7+fnP7wX+l+uJy5QJspF8B4VduTDoqI5V4Nd1k0
N9WbtpLHBHs3NIeQcDzxL6YL6PZrxUHeSDhriwfqE+rxCPVJPsCV4cJXoANMGRHy/V5QoEa/STwK
Dcd8tG13wKGPLas1Bu/NT5G0NmEyl65adzFbzOcTfAW9eFcVrwazACZKtz+L8sA4ZgXApB13SE8u
kFhhJY51r/bnJSFRS9IQpIRc7kFHIYaMdxPoYNkbwymTpeRh0VAyKCyOuI/cAc5vUexKIfmGhzh7
2JBEvoaioLDE10Yy41FpCj2cjLLHcZYGkYLIv8k2qgWiUW0QPAoQXu2SVoVDikEGDwB/K9ZA5oBQ
Fia5XX7HeVk8NpFQvm5XTzpGaT89G9ks6D9WGRGTqQ8InLg0wkZV6ajdMzkDqXlbMXcKTf8pH5ks
EsYqz7v58lvNZhVuhLNCzRpJNQyhnlJ6PMCUacvPgZRuopsGJtKMljLK5dJ6+a1DqzJFm3kJ09F9
hH2fXxNvxVC2hoMaGk4unPugebKJFOth/d/31zuNw1T0jm2KyH29uzzd3Z3GEZyaAYIPy2C0K+B/
LFpIrmVUCMbNHisKeEQQYS5X+y1rPot84mvqEvVOQSK2ZrSWUUMzWssoF9F+ZRHN4HiaTuGhxQoR
SUOhot9/+9fqp9PVQ0IZEsP+yk5xpzpQwDX2uFttEkEfbCMNI7y2vnQefe3GaulLAuLIGaH+gMNv
3aWnJNUKEr8G5T+mvaagn3WZ4MWC/xmb1zuH7fezhvYA+5DGKzAeEMdkLGc5RrmX04Oqmh3J5UiQ
rve8jenLyG18GWHnoW1q0Y4OGztvnDlLSk1nx25PvmnfyW62QMh8SDTIIz2c+PHErZ0j9VNa32wT
/v80rXC2Xd/ZN+s7jd9yKptt6/qm6ptcNPTm/PDkRFU4+9nWOPOxqtoDG9AW1iiua5qI/WW0D/+x
u806uAu8ducAtvPAtTemVvpql1frnoMx9b6MuvK/96gVUFvPJtYDeXavxs/WaqxHdoukb7170yU6
V8VY60U8OIQKdQgt1Ctz1Nz/Gf401J+9vbs02CUynukDf5cHAX62xjN68H6an8Tw6fXPqpfmzsxo
NN9Fs+3PX3/8bmfmZKU3eLey9iIDdxCklh2j44s/3sFdPwZBRFS60ZlZS2vHbnTa6atl7k/eWNkb
y5m8aaVvHDN77WSvVk5rZD8xxlvjFA/qQ6qJiGoTURBAe2PJmfgB9V5jBidG7yi7SgdT8E/U22m8
nR3+SQabgSOyYiqEIyvN647ZkdndabxRGd6x9+ufzs93zGZ9x+6kfroULp9V4xzoVZgvPj8VFOEg
JJGMBJNbnSuHpMi6xepRWdvsO1UjsnbdYuWQaBA8JEwgRq7BwWYev640kQD7cm0S8ZTjuDGK8k0h
nAGRsYxkmKJsKmEWsCV3yWuzqRlljGzNaC2jhma0lpGjGa1l1NSM1jJq5TJqaUYZo7ZmtJbRvma0
llEnl1G7MowYnwezfnlaswqToLM1vJvFnqommfWjFlXEkgtjvzowigcoa3YqRaXaGELCssd/2XYn
WaSNpVQc88A0q0JlNv8bmY1cHNbLXh4uJTQq411FRG2RNBcZYRYLILeEneri2ZhJmRqBOSv5jfab
K+bNVplIsbWIklCzooRygbSqBWRtp62aTIaQ0bxdCStIZOVEhAryoExQj0wWZNoayzIs+e55u8pY
NJW4wKBYBYGo/u1kR1ANJYUitz0r5qRUEcz6OrRfPSqaRcpibVOyv6WNy3qc33Me+5wqgXvEQbPR
0Furtm17OS3IhVpYensSumZxk8XKIfaP4MoYssnBLpisrBtqP7VHrhfII2q/H6vVpTGCSpqtgk0r
S7t178qi1mbdSD3ffe1Uqx25jaap0eShQSIB5X0sd0LGNPe+bJkVBAUtRoL9FSsgqwoGWn+/i90r
oanECytlkWlpKLeh5A45WVYFofQwc8dTr0CTmZGhDDRQD7k+F6Bg1fhTpflMn5TlhcitKqD0VwqN
wFSZjwc5lUaU3y7bGk5Dw8mHo9ksYcOTrk/Q94THRPO5zWfdY9kqs2F8jd00Ksxm3WODKsOJiI9j
OiRIuAMSaPtZgkjIKbhyvDo9+j0h0VhzWsEpF45TXTiJTD+gDMt4wytGeTSiDJGtEa1D1NCIiu0t
WFUk8SAiBMUUsju/GcnCc0VNbI5YhKkvhw7lyDOIzW+FmppO3NB0VtBxNJ0VdJqazgo66E/btPdz
EbU0oljDWbk+rhoYhn2EGQ3wipGvqnAoYBJVmDQs47r0qA+poe44xPCpS/tNjeQGEvGNirIg2URC
+dZLL4QxCnGkZj6sGD7ZrzybhmaTy8a5D5v0FmTs3lm4nHgBaZ5nn8+4T93xHAPGGRGJO6iFg3BX
TUzv8YR5Bo+gQHDXJ2qf8xjHD71VeRpC/i38/Gvrx3QSTRox7LWTxpBPpe80jjbZI+SwPr0MPoTw
ctLbsU1gJKe0E7krejygAl4ApsB9eQAzD/4yDn/+iYf4PE0Ajqvf3VOXEJa+yL8yHL1tnr05Pz96
W5M/GS6fB29ta01AmM7MivokRjItGZ4fqbSW5MpubilX16Tb9+sWpGjP2QHYowwXh5lL1lrUzRSw
d0ZHxBe/Ye9N1M+92b5QfTEZnQRgj/bb3LjLL1rcedItoM9pbUsfj65IJBYaQpkWZuubuttXp0cQ
DWSslbQFEbVvoqIS21uWKJt06Y+TtPkTA5743qwVhFwW1pupTF9Slac8vhjAtblGuy25o8CXnyLy
PYHPdWjua/FofVEuXIa7KhxQysiDIxEfIyjmkDNBLsgodxho9e42ZxEJcJxExCDSfehNXJf0pi4O
DLk3LLhIk5mgXSyoi+Qtq4epr7bUE2BbPqm5fbqxpqJpL5VmHZj2vdzUvx+d/vWfHw7fn14cnV5c
Xvz/2dEP/5W+K+THxeB+YekRGq9qe9KtyhzaO3izC6LVujmUOXgoHocKXbairbYpwjRcnA+GSRhU
gL6by8p5PLd1IU837jxS5f291IVfkFujw3VQIVL9smzvI/wx6vmMgs/7cH5dJN10ZS6PxpsLlknk
SbQ6D1APji8uzi7ffzj5/eR0G9VghmdpK4B9n1+jha94RPt0EqJ4Vms6G9eaGwml83WyQ7L1wWLM
XM16K6xXobatp6658usa7w831Sy7PWPZsEH/GbM+UbuvqTu41moV6g4dSj9H6QQrMdRUw00zJsCj
QXC7IT0wXC/dAC/x/ZeVq9wtHh/ZLiClI+WEy3xtqvHmR+QOiHulGgA0MxYEXVLk5A2zPZ1wefAM
erwPIjzye7KVe+P7HzJP/ThtT/NEP3krIBOGdFWy91QfUKGGUlUPj4xcEsqb232kTzctyLonhhxW
zLzWmvEbnhx//Yv8kV8PgNBh6oG+I6wfD2pwuxP3VMX41Hf3VaKIs7OI9wGhyNXWeCJbpgGRnqf8
coAjJrPoio0JTJJZIJEdTtv6vKCJVn5c9zKJ50xulb4cgf1kXZDtIOBDUEU9IsgohP6NyKXQLjOF
VSMVdv6SrHJoByd+dQ2wSl0DVNjlXOmdMkvPBl5X3gPsA7tdAQZF28GGWQEYq5vDRrMKCFSrmH7I
A+FUwRZWNo9O66HG0z5dXhydX1weH715e/TB2sa42jXpIhyGom6aDlLjJ9NxMmfjcbL5xPJgNc1n
+yxn8iTufs907DXbNT8LiQJqDPGmt777Cn6ie+PtR8XzHfa7spmlttAmqFEA+WxXPQJa9gRao5hH
MfUa5Ywrl3w1XJz0B7FxfvL7xdGHP342xCCJY9mOefya/e1/UEsDBAoAAAAAAME8PEQAAAAAAAAA
AAAAAAAFABwAZmFzdC9VVAkAA9nO51Ib0OdSdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAAKU8PEQA
AAAAAAAAAAAAAAAMABwAZmFzdC9pbWFnZXMvVVQJAAOlzudSG9DnUnV4CwABBPUBAAAEUAAAAFBL
AwQUAAIACAClPDxEIY+9ODIAAAAzAAAALAAcAGZhc3QvaW1hZ2VzL3BkZi1hcy1pbWFnZS1jcm9w
LWJveC1zdGRlcnIudHh0VVQJAAOlzudSpc7nUnV4CwABBPUBAAAEUAAAAHPLSSxJdUlNzk9JtVJI
AdGZeekKqUVF+UVWCpl5yflFRanJJQopiSWJCskZqcnZelwAUEsDBAoAAAAAAME8PEQAAAAAAAAA
AAAAAAAJABwAZmFzdC94c2wvVVQJAAPZzudSG9DnUnV4CwABBPUBAAAEUAAAAFBLAwQUAAIACADB
PDxEcv1l8oUAAADpAAAAJQAcAGZhc3QveHNsL3RyYW5zZm9ybS14aHItZG9jLXN0ZGVyci50eHRV
VAkAA9nO51LZzudSdXgLAAEE9QEAAARQAAAArU4xDsJADNv7inygZGC7GSbYQHRO21SclLtUuZzU
/p6DfoHFsmzL9qRpjUIeNQObqQVYovAPAiK+VGrighdywuvwwIHHW3S8067Vn1y84ELFcSuCxkWr
TS2+va2fdTo1FSRmhjOwcOLsENOq5l1zwkEhQM00tlFXEKX5T+P9Uc/z90X3AVBLAwQUAAIACADB
PDxEiR8h/pcAAADAAwAAJwAcAGZhc3QveHNsL3hzbHQtYmFkLWltcG9ydC11cmktc3RkZXJyLnR4
dFVUCQAD2c7nUtnO51J1eAsAAQT1AQAABFAAAADtjzEOwjAMRfeewhcoHtgywwQbiM5u6opITlwl
jlRuT6BHYENdLNvf/vrPa1yCkAVNwDlrdjAH4W9xiPhQqZELnsgIz8MNBx4vwfBKL61252IFZyqG
axHMXLRm387bZP1IUx/iotn6msOh7UBCYjgCC0dOBpvaNcVtLTioicYWwBREafo1SNJS/fNj0v5E
Or/z7rx/xPsGUEsDBBQAAgAIAME8PESBSnetSwAAAKwAAAA0ABwAZmFzdC94c2wveHNsdC10cmFu
c2Zvcm0tdG8tZnJhZ21lbnQtY3Jhc2gtc3RkZXJyLnR4dFVUCQAD2c7nUtnO51J1eAsAAQT1AQAA
BFAAAAC1zLENgDAMRNE+U9wKtGzjwAVZcmxkLOZHomAD6q/3t5inmpSGg5mRK4YaAVMnFtA46YVb
UqUbW3LnUNdXxMBh0cW+juJVbfvl+gBQSwMEFAACAAgAaz08RP3bPigMAQAAggEAABEAHABmdWxs
X3Jlc3VsdHMuanNvblVUCQADGdDnUhvQ51J1eAsAAQT1AQAABFAAAABNkN9LwzAQx/+Xe1Ko1lmE
WZ8GLSIOlbU630K2Xde4tA3JRTZG/3cvqYIvebh8vj/uFkUhVmX1vqyrizMQOnKQn+ErvlraPV7h
0Vh0Tg29u26p0+HHohksQQ6r8pHl1dPrCyTAJG4Jdzx/W1QVT+SWvGQF1OVnDeM4JuAOypjAZNn8
JoHed8Li/i8B8lkCqie01pto1UjtcOI6xVC/h5x1Wp4GTyI2FjtlOSP9GLTv0KWFJJmW6ypd4+ZZ
UbqMbB2XS+AbbYjiApOrkc4hB2e39/O7BIw6ov71xV5u9L8SrXSCj0F0YhVtW8jJep436hjAuNNs
cm20PJxiU8/uYjqNpLCjaFRgg3S8fPgBUEsDBAoAAAAAALA8PEQAAAAAAAAAAAAAAAAFABwAaHR0
cC9VVAkAA7zO51Ib0OdSdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAANw8PEQAAAAAAAAAAAAAAAAL
ABwAaHR0cC90ZXN0cy9VVAkAAw/P51Ib0OdSdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAALA8PEQA
AAAAAAAAAAAAAAAQABwAaHR0cC90ZXN0cy9taXNjL1VUCQADvM7nUhvQ51J1eAsAAQT1AQAABFAA
AABQSwMEFAACAAgAsDw8RBU1NZJ6AAAAvAAAACoAHABodHRwL3Rlc3RzL21pc2MveHNsdC1iYWQt
aW1wb3J0LXN0ZGVyci50eHRVVAkAA7zO51K8zudSdXgLAAEE9QEAAARQAAAAjY5BDsMgDATveYU/
QCDtoRW/IcRVLBmMjJH6/BLlA9VeVjuH2SylEScjqYCqohE+xAinWYveb4/XGma2+A4h+EI9e8Uu
QzN2/+1sbk+Ho9JEzQ2ldW7AVBGegIwFq8FNl0niXSHCqGmfGhNgScd/uip95PO6lywxLz9QSwME
CgAAAAAA6Tw8RAAAAAAAAAAAAAAAABQAHABodHRwL3Rlc3RzL3NlY3VyaXR5L1VUCQADJc/nUhvQ
51J1eAsAAQT1AQAABFAAAABQSwMECgAAAAAA6Tw8RAAAAAAAAAAAAAAAACoAHABodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9VVAkAAyXP51Ib0OdSdXgLAAEE9QEAAARQ
AAAAUEsDBBQAAgAIAOk8PERjqqxsggAAAKgAAABAABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVUCQADJc/nUiXP51J1eAsA
AQT1AQAABFAAAAAtjUEKwzAMBO95hV4QO72k+BWFviC4G2JQLCMppf59TSl7WobZzXK2wpsXqQRV
0UR7YdDh3lIIy22d48iS7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZYMO+M+WNMXCpoJTDOIdAP2AH4
NGh6Q21cJ5LKnZY50o7NrzFEm4Lsak3U8Zq+UEsDBBQAAgAIAOk8PERjqqxsggAAAKgAAABSABwA
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXVuYWZmZWN0ZWQt
Ynktc3R5bGUtc3JjLTItc3RkZXJyLnR4dFVUCQADJc/nUiXP51J1eAsAAQT1AQAABFAAAAAtjUEK
wzAMBO95hV4QO72k+BWFviC4G2JQLCMppf59TSl7WobZzXK2wpsXqQRV0UR7YdDh3lIIy22d48iS
7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZYMO+M+WNMXCpoJTDOIdAP2AH4NGh6Q21cJ5LKnZY50o7N
rzFEm4Lsak3U8Zq+UEsDBBQAAgAIANw8PERgS2YQkQAAAPsBAABFABwAaHR0cC90ZXN0cy9zZWN1
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
c/1RtqVOTpVxws34gjHnzn35O1GhPUTAJ70n/ZLK6/G421Ha54dthN10LbS5Pz6s+9/3jDAbxTLW
dNoOsySOSubAb1Qtkk80Ygy8HZ5QP+i+pzUs3m91jrLPuwovUOpPEkp9A1BLAwQUAAIACAD5PDxE
TVPll1UIAAAlRAAAJQAcAGpzL2xhcmdlLWV4cHJlc3Npb25zLXByZXR0eS1kaWZmLmh0bWxVVAkA
A0XP51JFz+dSdXgLAAEE9QEAAARQAAAA7Vxbc6PIFX73r6DsynovBkm25bEkj1MzvlRS2exOrbcy
j6kGGtHjhma7G0ueJP89p28IEEhKdiYPKY7LBvr6nftpivJNKjN6e3STYhTDJcMSeVGKuMDy7Wkp
E//6FJqFfKX49mhOSf585s1fiCASx94/jjwgidfSj3HEOJKE5XMvZzle6K6Q8RhzP2RSsmzuTYq1
F8M9jhdH/zoyy9lFIkYZn3sn44uZ7gseCcX3JElsf4ii5yVnZR77bmhyrX7qG5kdBKMk9k7iODZ9
Cculn6CM0Ne5l7GciQJFFmCG+JIA5AnOvLFpKhgwp/ngmAJHL1gDSictpBcXFx3rC5QLX2BOklqn
IJ+x3qO+qU9xIufeOJi69piIgiJYRKKQYj/ClJqOFYllCguMx3+wGFEck3xZzTb4rHrUXVNDFjLJ
UwAmq+Epe8G8xdV0Ol30CRxjI4pA6eVH2EvYyQllCFjhZJnKpvbUqDsQASJ5tRUD8RMJbI73sG25
9PW6DUmtUuDO13pU5rbiqNgge8KR0l+v4ejJTbNpm4y1Wyd3MKpxsTY7PKwLUDGsD6zhMy9QlzaH
vfAEiXH4qv56Gup7yqLnD4jLAFidJ4QL6UcpoXGvYNV2TzD/bNdiHGeg2rM9+9k9nPhJDuaD/VAN
aZjd1FkdWIskEaI+omQJ/iFZB1scK2v/E8pjip047DpKhOo5xUahG3uOSi6UahTstheiELRTOo3B
npXhGAfS8HahaNj5tjksOX5dtAwzmO7TlxGxF0i2V8xBwlnWEraNkWoPJfWfyizEHKwJ163LtDrg
26HUWu1s1giCzl26QqHz5MvLy5bvbWu/ijFqoalxAeMGVdC3dmDNs8tEDNyGOV3YgFVjXLPYGXBM
ougVy44gVXDlnQqmFaCLJtZqHCMNX4VJvvFW3QXy1I/AB8fo2VcNBhDJ0BI3NDP3ziuBhxQpKaqB
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
r5km3LAi48jue+hBq/HACllbMlDRUmpYFtgVGbxCpIi8IZ0GS9pmmS/dNkMkA6+LEbuTYyaGJc+h
eNCNh2FYUWf7itjAvkhpy+cstx+27Ie7MtaxsFQZ4jiB5DlByf8au3bso6LZTLa5a8OKOWt7qpAW
7JsYe0xk9CxtibH7lp1k1QLqq2HExWDYbyvVfcxu4L8te5Qt2GehTSVstvg2LL5N17DiiFP6El+t
EyvFyjjVPfDAmzZy7Jo2LHUq039TrPpnKL5kk41owTJ8PXRVIWNYG6ELbFi5bnUX2yyJGGF7r8qx
Hy4ykNs0ogWvOg5dQ9J4Fl8VM2jpb7yar1wpplTrOT+zz1mX0KZlDLLHll37RAjPMoO+PmNZnCnX
Z6COZWKGQIumSScdr5J0TXfNPmnTpVDBMm5FSocYNvbCejqc7aqt7Kal7ulgamQdHapv2gySZ5/l
NTdZIEsjpi9kWb+SpgnaDLDg900kNOkWUEKz5onWXXHleCvWDF33jmBftDamp3yOmlVqutagZ9E9
dHVPq1kNUHRJTPKqGDHomKtSB1ax6EsrySpDtusOs6yN4IbekUf+jkX3jlltSFFZ1bYvRtY2Gbq6
kLCW5dnUq8RoQ5q3MKgzjPGYSt5jOpQ31eAF+pn1yrsejTjNf5mw3jX5pHrM7FvWfa8Sq/YSk4x0
diiZkOGZkC6559hw9bKH1n2XvmT3XRuxDeJmjVglu05m9jWLrlXF82xFqhVjWtdWHxlZJ4fo6mAj
65qpNfUWhWheVoie1S540jZG9qiTDb0o1Y+eCN4m0ysfIjPIii8PLP+zpIR6Sbgsv8xelancDQ03
BxvnGvtCjveiiaHnIxHWsYy3Ky4mYJ5t9zVeVrqKUjK3bpklbdMNhrIxCEUDqW1hoVg7knpXRs6O
ZJXOscu8WGSp0pBr3JLiVYJxR/DXsHfct4gcu23fexKKJ2vlesCTBclTpu+emTfGtFE9IeVZd4Ea
bffTirf4i6r8ttXtRj6m2Gckjo1bG2P6Rjv/bepWMs1v84q6kqqnCynWeUjsSDIspaTvgXUr9c8s
eUKxfTfHwOqOsuudcfyzNKp704o15kjzBjJRsLgqVjyLfg6M5z3MVnaFlbEsgUrX09UlK6xU33Mp
BevpEGVksOkoZu1fyozaL8Ozom4w3TAXq9Bo18WXYOmTZnlyKTCS9zF3Iwmslq+I0stFUj1rkhnr
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
Es+TYgrwRzDvIwISBiZpHfL+j7fb9cZDK1lgLytcDD9S/PWvNEzEWnsZfpH1EkhJSE0J/JMeWuD/
fb2+Jj/W8ZUHJbenlvyF+suavwOyczJgMd797csn/u5X2iVN2gkP4h3Qingg5u6Sc9nDTPzh3T29
TZz49I3xmikiIZe2zpkVknuzk9Fh+QVWCiaFQJ/O1+efU05YUI7Oh++59OL6/rgfgWAg/Czklcic
rB5O06Nmsb6FmEydZfPq2Jm9XdDZpHJO2bKL1Ku7ogl+F0YQXrDEBbocZN07yUfLV5keM08IhPRX
V1TImX76egyRA/6rQ0mBahE9/DMlklstcaO40dPnSfSyDgpFKiJMPV3uyr9OMTZfSeSQWe8KIhIh
V8sWcusHzvM37VsIXlQlHley1I8ya45ilb+TFUchMzsnPdNHzYMSXSL4gvSQOMLp9Utno5bIgTkY
FiDfL6fna1DFTi+np9P9GhSip0+H+4ktxxe0Dc4YS+LlDxQMC91sq/Jp+nzOFeR1feK0jAqeyTkx
kyCadNIIEv6cdMNJP74dufSjGB4fSp1mZospWnV7nIOe/f7KXqQkYoW2aYle+MO30z2HqD4deEXN
Uj4UX1vaxaf3xwM8M6sKpTC/0Rili1whIQD5PBTxA5oiHBMxiNXL0ZfPjQD+/f3+OH3+3vv2EsEw
Obha3ORqbge7kN3/QCRbFA2ZllI5yVNYjIUlWjlhOoR6ED92FbBcgXflOShiCJsc7khrpG/PhWsg
n17lQPJ8f6a4v4DD6REf2bIaRUIRWTPNykU8BesyUST8ZQo3NiqjUaRVWU0z10PIhLsHczB8etLl
X/lLI2RPEw1Wwr8dJ8q5H59+vR3e+hggGmk2UtOuDpfr5fvr9f3+lLWc4+3Lsaee2lJs2hKb2da6
R4rGvNqvZB3Cyj5RBilxDNCsjJBEFkbesG4k4HY29rLigLI8FfGJmyJgWpPYfDh+GbKnYXkwSbZH
skEvheifsZBsDuNE3MYzpUo86OtTJNRZWsWP2/t0txNK+Fw1RTp+x4f2//3/2Oq1TBwzuAEOWHX0
6yIkP2yxQuNqtznocrjfufxQRdotlo6qZa0eNiRRSEl+UCTPznUKSyQn9Qi+RWdiyPj59fQSinCv
t8fX6xfkYpLEvo+ut6xuJtmdcn8ngv90DhiJbqsOxRrTMhNnip246/UWAnW3++OPx8eDF3KLZ7jU
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
vvHFne3xX4Wl55hV55PomjHD9CA/kb2cvNnkAuLH4nQQenpbZqWBvb/puRoV2JZFfyFxWSy3bbb/
x2/uDQrbHsK2qdqpDb+wllsbJE3bhndjyCJa8F/3j9vtuD///vSISOJ2P/xh/HL08Rc7o0dcvQ5U
R+HG5UJ+3N9++Zx4XUaWdpELACjMr+uIrMC8zRCYlxVgJMzrV/wE/waCYDMXBdJd3S1+OR12TNXy
bVFHnPw/z/UkXrUCLRGunBXNl6+cSktKFx6uhiDai7T8s211zO/EY9zRZXQ1uwzDFcdfJk/ptz5f
x5iDoiSMn/90ulwiLfli/8VumboNn84kcqLhT3dbhrH+uP9IeeSHySo6j6efJnONRmrg91NDzNwm
pz780oeC5uzZZZA52m4Qw4eSzWSC5cCStVkx/Fy41UYx4yFMzEwpapu06Zou0pd1JG0m7skoM0Ja
YjupXxZVNiyiBqbLfn5cnx6T7fWcbvV2P96f336eTN8Cv3aMX8mSXm7z7675Dt+u78fzg5uU8+80
TwGbEKpiuseCf9u5csfu/3Idj6/nv9EglN+kPTsT3o8NKMUmyqLu77YDwkdBfTYtU58hxS1cv13Y
+op/skegwDTm6oG9LvWArA28nY2UWDO+05zvVoJy+1UzQjQdp+4fqeQmJcDx/jeqwfn58ruHxU8i
nd8NdWzD9/m1nZ4gOBAW7b10fucTRDKY/s0GWu6qQbiAv7tSgd+s8XUdG6sKCLSSF6hqweLhSo2M
vIKD1rVVzFoLYf5jfzjuT//qgVnJqWe8FmviBTWE6QUlnKUqV93lHgtzQM9kcbPgZdZibaMhqbXg
T/zrbzYUmN9qQzxttUE3RqZeQUs2kdXP/Ovs823Rlr3uo0s1PTDNS6ZB1UTOVFNteHgHuSq9fBur
dLNZTlEMuSCozKfIyivMDQTbM7tLtzYxMP05FM3zra5rFV6OtTDyYmF/FZh5khH4rjtmlPZRSCiS
s345J2r/Md4KjlWn2mi3XOWWAi7/T8kZZsZjt94xihY59rbLFSSnbmJTvUVGZSn41IS7IO9NC/7E
fMfkUoTpRUBADCIzpzo34r6C5pW0Rpb7ruPLfxXOz6IXpND0dgvvbjsF/dPlhAo2XngxSkA3wOlx
4fPfHf77cbuX3J8mNkOasgx+KQXldGyFBGPh328pab1N16sKW+xiMVw3nNVcmCkXNj6WIg1t4ly3
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
51J1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADBPDxEAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA
7UGs1wAAZmFzdC94c2wvVVQFAAPZzudSdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAwTw8RHL9
ZfKFAAAA6QAAACUAGAAAAAAAAQAAAKSB79cAAGZhc3QveHNsL3RyYW5zZm9ybS14aHItZG9jLXN0
ZGVyci50eHRVVAUAA9nO51J1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADBPDxEiR8h/pcAAADA
AwAAJwAYAAAAAAABAAAApIHT2AAAZmFzdC94c2wveHNsdC1iYWQtaW1wb3J0LXVyaS1zdGRlcnIu
dHh0VVQFAAPZzudSdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAwTw8RIFKd61LAAAArAAAADQA
GAAAAAAAAQAAAKSBy9kAAGZhc3QveHNsL3hzbHQtdHJhbnNmb3JtLXRvLWZyYWdtZW50LWNyYXNo
LXN0ZGVyci50eHRVVAUAA9nO51J1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABrPTxE/ds+KAwB
AACCAQAAEQAYAAAAAAABAAAApIGE2gAAZnVsbF9yZXN1bHRzLmpzb25VVAUAAxnQ51J1eAsAAQT1
AQAABFAAAABQSwECHgMKAAAAAACwPDxEAAAAAAAAAAAAAAAABQAYAAAAAAAAABAA7UHb2wAAaHR0
cC9VVAUAA7zO51J1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADcPDxEAAAAAAAAAAAAAAAACwAY
AAAAAAAAABAA7UEa3AAAaHR0cC90ZXN0cy9VVAUAAw/P51J1eAsAAQT1AQAABFAAAABQSwECHgMK
AAAAAACwPDxEAAAAAAAAAAAAAAAAEAAYAAAAAAAAABAA7UFf3AAAaHR0cC90ZXN0cy9taXNjL1VU
BQADvM7nUnV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIALA8PEQVNTWSegAAALwAAAAqABgAAAAA
AAEAAACkgancAABodHRwL3Rlc3RzL21pc2MveHNsdC1iYWQtaW1wb3J0LXN0ZGVyci50eHRVVAUA
A7zO51J1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADpPDxEAAAAAAAAAAAAAAAAFAAYAAAAAAAA
ABAA7UGH3QAAaHR0cC90ZXN0cy9zZWN1cml0eS9VVAUAAyXP51J1eAsAAQT1AQAABFAAAABQSwEC
HgMKAAAAAADpPDxEAAAAAAAAAAAAAAAAKgAYAAAAAAAAABAA7UHV3QAAaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvVVQFAAMlz+dSdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgA6Tw8RGOqrGyCAAAAqAAAAEAAGAAAAAAAAQAAAKSBOd4AAGh0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC1hbGxvd2VkLXN0ZGVyci50eHRVVAUAAyXP51J1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADpPDxEY6qsbIIAAACoAAAAUgAYAAAAAAABAAAApIE1
3wAAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXVuYWZmZWN0
ZWQtYnktc3R5bGUtc3JjLTItc3RkZXJyLnR4dFVUBQADJc/nUnV4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIANw8PERgS2YQkQAAAPsBAABFABgAAAAAAAEAAACkgUPgAABodHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzcy1ERU5JRUQteHNsLWRvY3VtZW50LXNlY3VyaXR5T3JpZ2luLXN0ZGVyci50eHRVVAUA
Aw/P51J1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABjPDxE6op8QmEFAAAFDwAACgAYAAAAAAAB
AAAApIFT4QAAaHR0cGQuY29uZlVUBQADKc7nUnV4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAPk8
PEQAAAAAAAAAAAAAAAADABgAAAAAAAAAEADtQfjmAABqcy9VVAUAA0XP51J1eAsAAQT1AQAABFAA
AABQSwECHgMUAAIACAD5PDxESOfm3i4BAAAxKQAAHwAYAAAAAAABAAAApIE15wAAanMvbGFyZ2Ut
ZXhwcmVzc2lvbnMtYWN0dWFsLnR4dFVUBQADRc/nUnV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
APk8PEQReLhAKQEAAMMpAAAdABgAAAAAAAEAAACkgbzoAABqcy9sYXJnZS1leHByZXNzaW9ucy1k
aWZmLnR4dFVUBQADRc/nUnV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAPk8PESeOpPP7QAAACYC
AAAhABgAAAAAAAEAAACkgTzqAABqcy9sYXJnZS1leHByZXNzaW9ucy1leHBlY3RlZC50eHRVVAUA
A0XP51J1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAD5PDxETVPll1UIAAAlRAAAJQAYAAAAAAAB
AAAApIGE6wAAanMvbGFyZ2UtZXhwcmVzc2lvbnMtcHJldHR5LWRpZmYuaHRtbFVUBQADRc/nUnV4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIABw9PET/4EbPIgIAANMJAAArABgAAAAAAAEAAACkgTj0
AABweXdlYnNvY2tldC53cy5sb2ctMjhKYW4yMDE0LTA3MzUwNi1lcnIudHh0VVQFAAOHz+dSdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgAHD08RKdfAZ4IAQAAjwIAACsAGAAAAAAAAQAAAKSBv/YA
AHB5d2Vic29ja2V0LndzLmxvZy0yOEphbjIwMTQtMDczNTA2LW91dC50eHRVVAUAA4fP51J1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACABrPTxEZ88I0X4mAAAjpAAADAAYAAAAAAABAAAApIEs+AAA
cmVzdWx0cy5odG1sVVQFAAMa0OdSdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAaj08RAAAAAAA
AAAAAAAAAAgAGAAAAAAAAAAQAO1B8B4BAHJldHJpZXMvVVQFAAMY0OdSdXgLAAEE9QEAAARQAAAA
UEsBAh4DCgAAAAAAaj08RAAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BMh8BAHJldHJpZXMvanMv
VVQFAAMY0OdSdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAaj08REjn5t4uAQAAMSkAACcAGAAA
AAAAAQAAAKSBdx8BAHJldHJpZXMvanMvbGFyZ2UtZXhwcmVzc2lvbnMtYWN0dWFsLnR4dFVUBQAD
GNDnUnV4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAGo9PESdKscjLQEAANMpAAAlABgAAAAAAAEA
AACkgQYhAQByZXRyaWVzL2pzL2xhcmdlLWV4cHJlc3Npb25zLWRpZmYudHh0VVQFAAMY0OdSdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgAaj08RJ46k8/tAAAAJgIAACkAGAAAAAAAAQAAAKSBkiIB
AHJldHJpZXMvanMvbGFyZ2UtZXhwcmVzc2lvbnMtZXhwZWN0ZWQudHh0VVQFAAMY0OdSdXgLAAEE
9QEAAARQAAAAUEsBAh4DFAACAAgAaj08RGXu+g1aCAAALUQAAC0AGAAAAAAAAQAAAKSB4iMBAHJl
dHJpZXMvanMvbGFyZ2UtZXhwcmVzc2lvbnMtcHJldHR5LWRpZmYuaHRtbFVUBQADGNDnUnV4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIAGs9PEQg1Ma5zVMGAHhMIwAKABgAAAAAAAEAAACkgaMsAQBz
dGF0cy5qc29uVVQFAAMZ0OdSdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAID08RAAAAAAAAAAA
AAAAAAQAGAAAAAAAAAAQAO1BtIAHAHN2Zy9VVAUAA4vP51J1eAsAAQT1AQAABFAAAABQSwECHgMK
AAAAAAAgPTxEAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UHygAcAc3ZnL3N0cm9rZS9VVAUAA4vP
51J1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAgPTxEgvmQsYUAAACUAAAAJQAYAAAAAAABAAAA
pIE3gQcAc3ZnL3N0cm9rZS96ZXJvLXdpZHRoLWhhbmctc3RkZXJyLnR4dFVUBQADi8/nUnV4CwAB
BPUBAAAEUAAAAFBLBQYAAAAAJgAmAJkOAAAbggcAAAA=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>222458</attachid>
            <date>2014-01-28 09:14:15 -0800</date>
            <delta_ts>2014-01-28 09:14:15 -0800</delta_ts>
            <desc>Archive of layout-test-results from webkit-ews-09 for mac-mountainlion-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>461800</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">UEsDBBQAAgAIACJDPEThnrgRf6YAAMwhCAAOABwAYWNjZXNzX2xvZy50eHRVVAkAA9/Z51Js2OdS
dXgLAAEE9QEAAAQUAAAA7F1tj9s4kv6+vyJYIP0p6hap9wCNYCaz2Z3F4m6xm/t0OASyRFtMZEkj
St3t/fXHF9ktW5RNSZTb3fFkkHbbjp6qIlksVhWrAPRuTfoHvDPon/+F/t3fw+wOmsD+aPofgf/R
cd4Zpm+a//fuz3/9y9d3d1EYJUj8HRvrEGdGiUhelxG6Tap1+u5vX7/+8w7cgj+/g6b5znOsP4Fx
ENvHEvF7uEiRgZdluEa3RVIc4BhjUaIwi1BqxHWJs5WxDHFal8iIypAkMn5sD+pBKtFDmOI4rHCe
GaSOIoRiFMsgfc+bLkJSbVJEEoQqy7Tnk98FcUXfmczVuk4rXNB5V+SkMp6SkshYsZzRrER5VqGs
MqpNQSf3KstLuqgkspTBAtP0NYvQWISx0aZJMlNsezjod2JUiErwGXb7DhPs7XdygAGBpRWkRBIM
CP2fZdxGroUBEtWP0JkYkxZ0jEmRhhsDr8MVMuqMoMoI0zR/JEazlYlP0jyUqisAAg36imMA+fPB
8MevMYna22S+LkJCbr8Xq0MN5bvA1UQ+1Ea+eHyCSZWXGyPP0s12LEi92KLyEZGrXdcF03nKcoPh
o+NWDHSmI5VhFufr22iFD7dCZwY2jGVePoaldDJf5XZEbhl6qqRT3PcvkhdhEhtsF+i1Wt1Ag6gE
kGbz8fTjJ6l9pjyoPlmW+VroFiNcVqiko80+MR5xldADTHOqkA069FXWinuctSFUMN3XS44NpxMj
pmCjaSUzUWmfc19Q2N5wbDma/UrQMlQ95uUPA5VlXipbmbbtDAdsKcYGlGB6CAqpimTL8hM1MdZ0
/txTWzNDUTVCC3gn9PEpXo3e6RPY+vktwiq5P2Jn3XAbks8BSug9GGl3jRwFatReB+LkQFim986y
riRdSbqSdCXpStKVpCtJV5KuJJ2bpJnODkVYVpgZpPRAJs5i/SfMANjTLeO9A/QWTHKOBn/6+FEn
L5+o7V2je8/1YGB5ruv65suyp2vApM7dwBkuvmcmuoLkR/ZSelK2rEFDpRhfAi6AluJz//nf/957
8GOJK0SfvS6MJU55NOcTe5HRsbjv8kaqsEI39FgW3qd5FKZJTqqOJ1avOFGU5AJX4g2E/vRpOHgE
J+grhXEc8nR9o/mM+ipHk0fNSxTjkup7Y4UqydM9x9UwWRiQCOBVufGASrzcSLCGu2PEUKpxY5lw
wi4mezidJRkmyX1V1uiAFUfJTds74+krVPVOSRZ6rdaFth2a8ca8v5LwHpFNCXfiIA3BmqY5qryO
koFyhL7/eoau8d1HKQpZioNwc1MFQpg7UGTJ0LcXG+M7kWtmx5q+vBu9uLMmqTXyqc7wHzX6Pb4H
N5/5xyz9oczT+21E7wN9wf/hh6LED1S1fVjXfI01Lkz6e/hkUJVxf2hGwUCBZH8CyVA/yf5Yks80
wv51hF+OZD7A+6masrwuf7pQZFjTkja1Ao6fqnT0ioKug1NhN98aIcX5T86n5rJwDBjb2Tkhhcg/
lbbWlSMbuDqVJl1Ynj07d6oJBvJ50cpUYsnDOTU+mQ3aDKQ8V8ozB8G17ZuWJE8gd4/slulowOVn
ha0+k6DYF4fRN1xluFqzhEkc07/xEssPl9CE5nxLmh66yuf0R/qC7h90Q0jz1fRVrkoDBetQcMMd
iIvVN/qTGgSZRCPMSBE9/6jIBDgz6lpmD800MN25uEs0xxmdERk7q0hT0CzzzLbWi1lQ8xPyJDIY
jLxgmxBhGXTS3DlTwxZ0gCUxTXxnbhTVfS6QCispjUUeb6TT0vGCsc99Jp4/fZyNGJzYTnoebcEp
0ngIy42RoF6fpEfX6jEn3QlxHEAcTQu0XFcnFP2koNNH6gsE5wIyz8fRyEnwH1TmRoqyVZWwq0Hy
w7FvT18ZaF1Um9vqqZq0NJpHZw8huSsSnOLijjm9qSGJorrEFCEuw8ffmRP1VnxNPq0DWwts19Hu
uUGg59ER6TrxrYEzt/1U7lkmdxvEYqa3RXZoAihlV6sgLMLox6rM6yw+QLGp7rZsb7YB5/hyk0PJ
LTAEdWtRNpNsidP03+wyk9z4Dqx54Qm1Ln6gIwTYMxNQ4TXOVlLZBy6cC7tELNgjzRs2g9lAcyJX
KoE5F6NiYh+dY3SKe7Oin5hiwPeBZnweI5CbanC8rnpEi1V6l5d4hTPuL86Ydb7MyzU7scjv/5wI
4x8A8eh1a+cLF0iibgGENhzy2Fa8hsrpdl3YQ83i4CPbb/dkkuc/MH1inNfsYvofdV6h2OApGiL+
RNAaU/mkPX7C0xfm+jHbri3+jghf8yuh0s3P144lv7cLTucNDUeSBeUt0xnBk86IvwofdBF+Fm9K
fFiGDoTV7AjcD6IVQ+Ml8H4GkqoqWBjdEG8YLGZKtZY8huUC75IHg4qJcRJmMWeDsyZuy/IvyH3M
tnmZo/8Sq2Q+LnZ+u+YN+SYIrsrkysPbVupvDYM8bx08QCkSs2TL27F9TdNKBshCEqRCxUGGNss0
6zWAdcDB88JZhx6VCTIleN3SyAZ6KiiYvAaR41w1wlva6F+znA6mbRPvkhoUAF6H4zptL2XaZqsD
/4fc33FVtbOPRZXgMma5m9X2bMgqUoRPPf5lqFCTQoUh7m3cMtQ5xrueRk+XUVc45R5Wajn8UaNy
s6yziEW772OUogo1ZHQczNPMlyOCPVbPxALeNNzTkp30+BeV6WWDU7l/yXMB3vHXv33Gf8niX7dK
6lBreNdxv662tyN1lQn/2vevqeDD+Scs66pkuTfPdTV7zBAP+uMA2vvkLjtzxVA6W6XvTgoXnSuH
dzwNR3J4+TDAMQm848lRTeCF85GgL4FXPvt4NoOxDGN0pOybM0p57M3tYzHwV0b42FD7legr0SeI
piSf3GiAFfy8u8Aus/DMO0E/SSneXtq/GJK2JdQvmCrrIjdyz3zFG/lOd3DvZWyQJCx6HDr2JIOF
X1XlaRxVmKacSX5rn/xRhyUCpskU4g3/8Jfq3hSvvuRlp64ogIFSfgfo47bIy4o815uINlFPbmIA
tMN0E9ROJ8l3QdrGfyuaWJfp/e3tMBKUCnecZpNC7+4Uyt2tnmYQSaqf6c0tyiMUqAoSdnlcUh1H
jQ66vkkZHdvEoQmPez3hMaPjES04UqNEOJ/rPEZMz32hH9zsKmk03/yX+OJnunNWY65gdAlSrOSh
ij+LKNqoQ0UCxk2AFGc/DDbPYkxYq6f9XFpWq66ZFAZvesKS+XhpYnk+nz2OiFagqYPY7EkpVcer
EqHsMCMVTIUcLYFuAqvjzySAHejh3RTHO8uwyy9ourOONlWKg++cah7reYb4Iog420Jbh+TH6TOi
O4ajFzkiQt3HDCagsWceOK+b0JyPBK2nC8m0yxffmd25xJURozTc8E5TdKY/9LgonMnKrIH5jMso
PbzxKu4RWrpZYUl29CPU0/oCTNaXkWCGQh0yY42W1zJFPPhhqGkGz3SumuGqGfRpBpLwgmvPjfyM
dV2JgkgFPYTlGanKWp5zbLvTTZ5e9O4+bzuBJjzJkRW6QLf85CJTsVCtLswDKischakRpniVGYuQ
IGo4bTv+PKsNA47tG9jFPe0yogdz8f8yJNWBqBf4ByK3i3Vxs8Zr9HVToHtO5nv2lsS71CmpAjxg
2XNL6/ieYTr2VWwSsVljm0v9nNK6TrIRYpNPMTO4ykoyxa4TTFAd548Zo/eOigpHRkgijKX+W2fK
w1t8tmCk5YPGg6SYjjEd+rpaGr603hJ0tPCwD6SHC/SAskoAtF/zDtFsRoj20LIMfRNOQ2uPTRuL
DlTn+r6tj7G9VtwRtQl7Sl9Aywe6GNzWk5KDi0ME/4Cvvwo9VeJBdCGXKFy/t359D83m6++t3/7n
6xfDH1yc7IWIfcRZzNpmA+iA10IzX2Cvhdj3EPIJQX9eKsnGMs8XYUkp10zh/sIuicHVvHw5O+7R
4JeSHBBpwwi+66zqBNxhMB8WPCOW9YJYSuU8hswNViAYlQ99PWEA1I6X8eIb0s5Spm400cSiRLw4
cZgS+SLwPH0D2AY7z1KQI8KzI1pnR7RfHFHnckT5Ur4GvUDXjsVu8lMUSU1/b34If36IQONo8NfN
UTVKc9JTIsgxtbHVsg2kPZ40zjXWmqThcYso1YzAeY3cccc/a/KwbbmdhQ94FVZ0UyhDkkg9276r
zyxs0GX9QbShPIaYGpwJyuiOWuHlxojzTFaa11UZQXugXHtyyqxpUBpF6ExFUYqJOapiq8oND0dh
0hNY8SxTF1cCp0GV+Q2UTDpF1li7u5rtmHHTck9uYdkO1MVeC5E0pW92b9wzsBEbtA7gfctA7Q6G
DlxnD9c5G+6+fQnPhGuZ+yWcgEZcUTpmb5+SrR7rTIzCETnBr5JRa49R6+0y6h30h36jjNp7utCe
rgvbGw5LnA+rqsSLWl5625lqH6AnTLg3T7LP8azdplhJvy3peFCfiSLyZaRE9aZuW0qXwaeM9MEg
G7Or/3sbmOcFdPYU02RA5vfSMbVc3VOrl7De6QVtbdMrzhH5Rg8w3zgFnRzLiTgsLw2VZN9i5bpS
fuHB0QPXUcziA0lxZqWiti+9BbCrK2GB7xZpvuD6F2dHG+m4SoHJHpBW/FMCZ/SC2t54TNHHwdgB
Lst8bbDW4ew3eUqCpQLnyuFYXx2CsthgRf8FzvZ2kIFIRL/SV2lMKcnPlXUDYFAMaa8K3B4JLGFT
lrZoAaVkfvege9TTOmVe/kbJtGBFsWeWqMu7TLMmhbJDvvkCmPD8mFbwc2Aq1YhVXy8sL4IHWzPW
NyPF/+nNWIWm772AiJ0XmL7Bz4Hpj1G9dZqSiN2Dar1EKeKdS2O8XKKSvRJdWaTTCCjd93D7ktCK
HGcskEC18Y+9X0TvhiQsM0SIrEXHiZiWGiLOMlQeK7IIbR0ojfHas5P4rqV55Ajv03hk0ECgbdBU
RKgNawZBJpj1Ad7w7mjbsEjOc+kMepperVApGtSzz+U2zxTUdlpbB59lyYQ460lBcIKJzFa56I0i
cfKzyP9wBdb39E9g5ufDS6d/T/iiBlLT6apERcoKEzQfGs01uCjBqbyqvOkM0UjdeSZDJ1L4I4va
seblXxoK8sEZOO/n2Z6y4LYoTcCVtwQm/BYa3WJL+Qp3lY75p9lOEJ3OR4HMCUBFXvAAFz2rUUyR
WFRQq5TpscaUkbflsywwhb2m5Ap9FOONQieGSUVKdWZMbouua8bVIcsdbBWWK3kmcOA6mtmCU9ny
T4BZJuhr/Dvh4R2ZJSgt6AQs0k/daFVgaYWaOjynJQbPLbHDsNc0ie34sM7Nx2FUSxMf3rn5OAxa
aeHjOzHiPKq5Ec8cVPy+7rNak7GodDlvFC48jqtg1gNzDO4CLfOy/7IY9AM9yNxtQurFGlfHZWyr
uKP7EY9pp09j1NNQ5uBx5lQGEg5DPDGElhvowVRcIyoXBwbBHV8aKl4uYA+ACwlh9wRPMOnPgwon
qx/gDkc9qQRczbgnAU3NgAm1704NqTcH5okBVeHTH4p5UrqOZtTtufKEgIOZYE/IWEEfQXME7Ekx
exqA16gKJWcuab6FqxsPTsfrVfTCI8APs9zRXuW8Na7U1HccMAhq38PUNgpaqHTwHsMyFr5GSS64
709hbxykp1+i8jXh6ZdnVJcsfiHjK1BZgtYgUR5DA8PR+MV6cve9QCveHAqHae/Cdk1rNECR7T+f
3XwL0yIJ5bkgCtsDtJWARhfXPPb8Ml/R4SH4AenFGFo3oaGpldGDI16S/rByAvzSLstsW6bp95dm
dnwXqOgA70BAWVTyyBDLeBD5IvTURU5tFzZwp2Hx8ot1tfQNdsm3674CvqmSugH9fogirAniqTBR
iYvKaEJgXSzbce1pUM/cRITIUyy9aQgHhSt3WIWkYIrKxQgYqHDDOJG5FqGKUrHMIxBFipnT5Mlg
FwYr1maukJzmgaVyBa4LRFhtlLxka77Kozy9CyMqOmI0n6D4SDABKt1rUsBs3y8Rb/HItSRi7TlH
I9aDsHhwvOjp4Or6s3Im733haMb8ffvhV6k0fRsALYjb4rBNaHnnjcryWB4FYlV3dA0jX4NHx9KG
cDibDU93luk19zQt02pe8ZimNE9wGJCwv7ZI7Xi9MPMYYuPn2reHFG8y9PH0jMQRGJDXB+TpAvKE
9ZrXVVFXcjSxDCYMFitrIwoOHE0ihQGYgtFT7wI47vinivZusZEwGfHQapNSzC0l9qm4Ykptmt4k
CuC5OoaKZHRBkSRHxHggRoGlza1sc5TyV0AzorzYzAD5iiSs2GZJk3AnoqF1UW2OLjfg++MfzyLi
zf0FkX8u8OhkaKxVuSK2dYiPgfBYvMBc5PHmoB20PU12HeYaA5yeHttlf6R2MgAzsdhB18oyX23f
w4ewYVXsqOsw2xhPSSk/EqiUQTjN6n9QmRspylZVMq5PyDCIjrk1SWhbP3BIkqbpW39LIEel4EYf
VEYtKRR/ozvpN2H5E1kKsmXqRvgkXuuT2ZlgmjTDB9Z+Z41izPaQxs8qOT+bSiHfPqyiGfmwYMlB
VFmEmawmoafikbd6e2Bxg7rRrUX6iReSvwdm5/a7itDAqRWzZUmc9zr1y4Gl0resD2b7cNZBo/fY
ZSrtFScZWeDVt/UfsurZw58+z1jAk9bCmto+45mAxweBNSLoHQRX5Q6HNbJMvOjitLP3eLGlOeTH
t9B9vS8aIPjz8cZdRSGvyNFmT3QFmG29ORpaBkyjcziRu31heyU1pPYN6IyVrSPFkS9b7prunKeV
ai300b6VSrslj2wHsFQC7ZarICA4RkB9T94GFowlzjBJ6GHs2GkLqiSeWV7fqmwCn9y4pRbtzoTq
vf6sFD/vx+tkKPUgj5sQvbDr/AE1qebNVQsiCnCVcs8bHA+W5aSOEt4Ib3+HUJ8YPU9uLhgfPUQq
HQL6ns/WC5MKb2F17Hqxknl2EH1YYxK1JgB9jtzQCIY/escAD4426fUERXWJ6WkNPUWo6LucCCxn
AiCLNe2XnuXTeYGzsGTA9H3SCxyY44HbFhXD+i2swluCq6fOTA5cFZhADlNnOx3ENer2ukoURuw9
5kreKSd56r1SVL8PvrXRMSRJP7d6sf2OPPkPaOF9HbY9YWOE4A+no91hnORpXYnKK4Tqr8J4TDDd
84uQ8t05QasU+joE2y6WvUY3+eO/2FUOVP4+YY8+DcSb40HHfHJMiUMz8Jwpsjtfu6qxNPS3q2pO
NKNcJNqJoVs0P7hLjj0vQg8nRvjjLosklqlxUQSJC7uXSJNB3y+ZV5xH0y+LwkUZ4pRZWxclve0q
NOAFrsNLI4quxEsjqZn38PJX46XRuL8eL4e6JkADL2SbFu6UUS0u5xq5osRZdcETfkkn1oUprroM
04tcfhdFFAv0ZXGC0viyZFWU+XfRkvey6KouzVSuHi5t4DBz5l64rjo3gYotjG3PnI8GnT2M36az
4Ho+v57Pr+fz6/n8ej6/ns+v5/MLdaJfT+fX0/n1dH49nV9P59fT+ZlP547/Ok/nong+z/pgCcpF
yA4ie1cteM6DqSPLZMdBlYSVsWIXgniyx2OCmWVTUR17JJ8QQKiQqmCbc/Fng9meDKVPrjYpIgmi
EzBGLNWeXYbvZqMEY59/WFe0hZflFR8IFOsE1CIqa7Yn2wc3Yg9uwrI6EQ+oZH0ok82ixDHD+YQr
tCb3rGL/x18AtGzH9d57n4fnretE/8Df+JW/cSXmYsflwyVS97l5ww9McPECeyskf3iNM2VuHi/p
KS8gb0GL+Qsnmv58ARLCRRSj9+Zvy1WCv9OfLzHrfv38218oNBXAl7/+7fe/i5cvNhzOr//1j/fO
b2JMml9uojyj/7T6lqHHFGeIdEo9qdDnaBmrhiQxYBdFnxjIhiQxlK+Evg8nxv/DpfN3wwOr99aN
uBJ+D+BLyLdX2V44eTPtKA3XYMe2bV7ZfutsO1uurZ9pjntbroOfaYb7O33maWB7SEO5XatNWc0M
Qyf4cw+7rstF6aakfXDDmPt8xd+7+m3yEkimO/LpxjP5DzhGeU+NPz9QuYd7CkH8zu+qdhAA64I0
UkKHPAgHXk1QGa6aurWikilnbl3YN+zy5D3/8h399ZCUAPoqV07PQIw7cHnMR8dFCcUFnjdaMEW8
FPXoYiMkBv1NvqTAaIBmISVlXlVpc5eVK2LO4X6ty1uKf7P96n3A/hOsh0WRYnFHnVHcqbus0qPX
dq/k6SZvW+2HV8iib6S5vHUzUKkxO0YCt7cH5VLFctkKAXTK0AAIVcodXxQtvlz0vK6CCI9tA2PS
duTmpbBre5bSVPMVa3K3SRH/C7qbogDPRO1qce9U6K4SN6tU1KE0CCzov2FCBTovoPCs+3ntbrk9
pVBGwA4mq6/qqZKqL0bYXZGGODuMq9tKauVKmVbKWPltVoE9i/I+nQNM29ML0sf/UePIZmWQ3gYd
i5o36Y6NMsxYyQvRMphsm1F8xT0laYDSBhOM0v69muwxfHielI55kxX0pNuYInWM8zv6hUOD2lTp
T/ZqCHVAP6FR+P/svemS47i1Lvr/PoX3j6za7m5WEuDcJzIqarTb7ul2tYftEycclAhJ7KJINUnl
4BP33S8AUiMXQIgEKWVW2tWZkjKTH9YAYGFhDemUiFtjIFelr5gMAODElkibEincvLuZJ5c0FCwe
SlXDNpxkOdwpwFRpcSYD6GgnYce9XL5b2A3cR8YWq00HIhZbxqKYeAk5sHusSs2gcYj2bazSH/qY
6iMalysyb1RDQ0/9sfsSqYoSrgsWKwe2Hbc6cFk6fxSLlrcOuryL4Qpbvn8hQ25ZRpTcdic/U9UF
d/KDFd1pji2WGzW8H7Y9qkDROdbpCFpE1zZqftzcdIziLfnYJQa4SKq0k3c8CV7lPYIPECqnFNnD
q6DwdZ4IuiQ4XR9/dMjnaAO4sYcDV544g41AdYb5YvFuSpiCFURVKjU7vpy6XRfnrKoDzEoeTkNe
y5JEr5bZbYfJ14I5Fs5F0qY6L3TgWMg2dSiJEhiyXYSCfuqu4qVTMtT93h6nA4NVxeNED7QqjUAc
e0xn6q73on36Jfg5uEjPpypu2LMIWHVDUR4bNzxEdgdygmAQMINlWZG8eRuvlzg1xtum2XIvr3gc
Dh7fuHY34ZD4bZW+rqOT7SJLpSEjPK7xoyRGGYfywhBcTpREcyxFEc5ZquI0z4rCiDJekLr6mNQ9
saK4WIXlFKzZTxF97bCFyItBzzWSrpVilD2bBsKj1iKJb+E63yql1BvAdGu+/n2dsW530wXrBVCC
TSKCjo9mnSEi1u98mUVk5/CrnEC7VEZe1Jxfg/J9jRsZLFNQWjzesf2Oo9qr783GcAzPOHA9yzIg
h9nCozICJtscjuxhyGVUFg0ya31TFbZWqvd0XSRpe3jSQUI787yN0DEJrEottTYmtC2dtAKgzZDX
QcmuWmFQXWY6Hae3YRJHYuotT/tEBrE1yn69WpF8yppIsbdC0iyz/2yFoIB6A14nJhbT67c//WBk
tyTPqZ0i6Q9qOXZHgB0pB1BWs9ef5euFwBoh9h/cfKzndnzs+59+eFdN1O95CYPKgINbwgYdrI80
vI3nVaTlUa+tba+UbZM87JintnTH5remCZD16e9/+pgxQ5Q9eHOwge4dXHRKV3PNbcNEo989HqKD
nsiL23mjzwruCBZO4wgbq/iewFcDttna5B54NGtSG8U562S8TqLdXeZ14x7T6zNueMTtzcLPNmIL
nlo29lFvZeHPvxZVOcW+rxWh2Y8XtZoRpyE0++/g1v5RpyGAN226iJjRifuqLGeN86/t96diETIv
e5amdfUwwLbQREZBDYAsp8eDI3mwuYAthDXDTKA+8kpiRyeJ/TXreRZQhTKR6budlEAd8B5qw6UJ
ge4FwPMt39H0/HvGrVeNHEys9/mNNG+l/Uz9+Vbj+Z52lRpMifhK0tzz2+91RQBh8ZBO+QElYk3V
JGa347u9ieA2UgVZAzWPg1hlhmMhKXXjkyoHBI6gQH5XiB0lOzOM11zbNHd+sSzmN9aLKEtJo16B
iwdCxRwVN5RuIDiLw6EucE6L2EDHbeB2fLKatH5+8+mTQGAqk8oFgCdhtPOlJXEoaL+oZD66UsKa
SLwAYvXJje87wbfo5FamfWFnWTYJ89FhGbUGOgvsv8eHXZezK2z6DdwxdIoCn4fPX52Fz/8+D5fR
6KjfffoJ1mbkDI9sgDSPhGxASwcaWreSsIxTABcNT/O/sYnxN7wMKLn5LfzmluTsouemkZnqWCMM
Rq/o6w7IlUkB772u0mlVTtYhjLz/eWB3piW9ZdUHwrIkeWrM8mxpxOmUmrckLcOkdjhC/kzL7E0h
fzhvbQ25r12kYphB7daZ6LeJg5QcYxFHEUm3SjKLScIPJOE6AW1C3w5Ogq4KshzLT2UUkDvFUpkS
QWe6+d3R23jugDnrSqftYCDKlY7KPSn/8Ld3xl9+hmkPzkl7MDztbDNiC7OIAdY5GaByRdlezJyt
Jn1uSXpy+NMinpX//st3n2D+nnNyWXh48uukbUm0g6t0YzIUD2x7eB6w1gRLUi4y0Dvkoq6rewfy
X/+7/ujfN3/79aNxfM6wkD88O7KU1AOCuOH751xytZFfhWI0ib8NkzVoPrmedUbCXT1LASMxWx8R
Dvp2g7MufKgHtezJRRqzGhAUPKpei4pvYBdpmdxCUCAcxkQqKwqCbsam2eqBR0ckt6RgGXuCwwy2
hKELJz769SosSqIDYD8VaMn7SzT7iymeIWAC8rBYGFUdx4SuYOEyTh4Mdj8yC+GkYNu3O2ORsCQf
En7o+pGViFxRDARctvkq58pjjIJM13lcPjRCjfl5ku/ZjH2NjiLIQ1oJwq/uOyWznoYCxz1YftAV
hQXYVWZNmD4IA+A8p6v0j2L7eHAhMNEDuwcBOWHNv7YEsNWzKPOYfsRiG8EjsBdcKD0RSUhJauWN
qGanrFdVGD0UJVWH6YKX6akssWldH2+TubrM6IYMUtt5DT24BGofV/XTE0fnBv1lUV0eZ/NTE0z7
SAFcJbE7IqfB+E6V69mxuZkWLCl/Rsrpgscz5xmoCRZSMdmR/JYcBAMm6HBIr7ldfJPNjkOWVO5i
e2Kmo5M5y7IvlMzL0lV8Bl2FMKM8nO/1chP72BGyzd50aXCyI1tEBYsTN+JqId5kINTNBLkBDdf7
6QAJ2LDhhEARfBjbuCNJZDnZiKPK06KH2yRmBxi6V28Pu4wu0QEQKVmBQux37NkkB6ukWV2fzFLP
qLbxEOPjCGMVp7NguFXmTfY5hjdZJYNK/GRWnJ2etvKlKBfdNk/TIoFLgSe2piyZNaow43SarPms
THf4QIKk7fSiT3jYDlScUvCDWYk1KtXDac7ErBJZh6AIJ3Jf5iE9JLA+A9s0q4SaV2s2RcI5K4RZ
GuT3dXwL8Mi3/UFwl2HCJEMi2B1iDwNaewIATE/Fl3c6JITkBh2RZuFtTAFYHRPhdmOrZAYgeSRc
jfOKfmmujeYjebxxm0bGstCLwlxHBvMdsZVl61cqyJx5L9jqQ39UwK5i1BkyX1YNSJh/Wphf7Nmn
AYBLKYQF+GI7TxX+/DLM2e3K1uBgjbvgzcHsT1Gx5o4xZqmxRjYshBMsxtZ1vdn3vm1OsaLsMaV4
khblrumBj8S9aKgjKZhz3oi415qXZuCFDODCBYHU39sySRuYwqO+mtGkRljBPxDT5GlYfsagbE5S
koe8/EO94dBNnOWQluEkgW05S4PyVWHz7BiCmucQlYg05EHELFnv+bAoSF4adOEWzR9bycnsSUmA
sGABcdPa6YpYrW7MkAMrj1odH9vTPBSPtC5ZuU45Q6pWJNRGo8dotqKxktssldXYnOCyPJ4L6lyo
ZJm0CCnec7DujwsuZ2X1xmvZHDykn7XMc9CFva4pv2W7BMbWKHUNHF5eCJrNyMT9AGYJC3hMGQet
hNySxEgp1uZO25gk2fRz5VWuU8chfiqZgi3qQ1HZWbMaVR3NRIWalYutYwVc/lUCWVqwrTwyKtoP
ZNsgHTj8KsnXb5s4s2ydRof3jlXas9/x6Sc6oizT7geUk1XITB0ej8D20ySJReVssKkS/NXCtBZc
YyU42WHk9cZmha/q3Lr7RQ5nHJld+cldblz1WMRzPjXEF0jI9RxtMGkmQ8JKdokYiW+58Ikr6C0P
OlWgOEc+gxTduuKRx+lqXRXU6eID9Xthd/O8ml7XNYlOnTQi91JvI0Ie7vl4vrpSfeMH2QmrcrPI
CdjzD6uEZyF5FNHpqAiZTkdYCAyGcC3dEK9/XcTF1/Rf+DUzF/Qh/hbehvWpZZ0nBjWyVnVRlAJ2
A6COQElY8DCMeBbTVYmu7IVAxx2VhKFjiL1ivvs4VZoqPQbe/LomRRQ+XOF3V9jEiH75MbtlL03T
p99MdGW9MS36xbLo2z/98Gsjb3uAQf2QpdWALOOHMDcuYywXx5y9AQWeruFgs/twDDoYrcLqNZiP
ZKJ3MKjrYKgaDz2YainJql6jhvgUqLSRyR9Ozc8k5IZ1VhRij5hjSc+bGLW44uNknQtC7fpSwHYK
475IqnJ+RhWiBpROUcmHaaGjBbNoliNAfanjeySPheyWA9NCUUh1VuJL9rsqL295Qo0TirRg0Yms
JQrdCSmveLla2C2OepOj0c0PkxUXjIwDsUM+jaCDroUsEi5Mowlh5bKnn4+KcVWn6a7zfXdHtZ4s
Y0HNFvOkh4P3LNt29bxMzL4YmsVbVIJSMRQPQ03Gw0UaEoGKU+X46a2bQJe1HaYgNdblzDcWhBmh
BotZgHwzpt0RIJvwGGEeiMLdUMXtfFsOsIj/Q4yUzKl0qkWGF8RrXEr4ClVAsaXYbmJbZnzbbmJG
WVydEov9PyNpGrLw/13fCf47V/jjbysy37WesC3L27WfcI9z0bEXmOcb/yoFxs8+3AzfcXAgGz5C
gekrtFbBtubxR6xLWuvwbcd0ZMN3fBd1nRt75960zNl91tTImZ4K4t5clZpl2O47ScB8B08lHQnE
3tuzKChMGfJUpr8rpmzPc7XJ3xNeqjm4I1ZJz+yvKsBXLDztFV31X1UdCOfx7HgHs73LhmlyDrRa
VaJr2p/fNS4x6Ape3T3VPe9rB3SVHAXWRPVUQi+wvC7EqZiWyqVoB0z4VPM4yAMCZuc5ISl2zHvH
PAqcVUxdAOliNbtZFEERz9NN0GSdApuKMjDM0xYp2GyEcHkzoT3wpgXpdBbgKkvi6QNb7MmcGnbG
lO5kRNIktL09R7uq1MpRQyPwDOS6mmEwfIVkduYbtYurM4QxWZclfD9mWYEGnTjlKIE6s23Xwy+c
sKV3koTpZ/hWAtm9hSPC63a2l1LEN3x+2i7AyvuOPmKKkqwwGCGoF8OCCFEyNE8AscFIZL+nOLRK
uDFu+hGrftQcuNoxGEaZUfMHzl/oboHsj716vmTsqDtK5XiqTteQ+tt4uGfjwO75bO49q27HyJ0o
LtYKuu4V9U2YY5o6Fm9JhCBDOOSPw/vG9Bt3FbfAzS5yTy2jkkdhZ3kkUFbUY3fY+kn3C882sutR
/11bV7Vj7LUwTtBJwO746L002ntWdS5MxFwKemNo45Iv5lJV27rK5uZ4e5nvYHm5rniN6RKRyXpu
TLLowZiE08/zvBlTpZqr2AZ4RBfQaMnRwEW433l/fh2UH+82GxX4c4CiX8/SjMUhCG7FlHzjchpy
ajZnyx0MYNVgdNEo9Y0RK6ITTtl0XMX7Snvf+QAFgYWNuMiuo2a6s4n+3ERgbYpywvUqfD0Ku9ok
naySra+XtwKg++SKmonsJiOdv2C/UsbLZg1zC9kqFrtltlG9DAvwCOU7qM/jVznhu/6UBUqDJRVs
FfFbpgIrD6Dgw7rt9wdTSaqoMhBwV85Vh3WeasUvnZA7IZ1TuVvIqXJwf1+T/IEFP4VLfu/w+83V
B3zl21dv8NUH58p/f+Ufq55vaqQvedL0WRiWH7I9/EQITJ4igdyf1TIFT8SQ5MEfUTgoMcnTIUY8
uVTc3JdHTfJ4qbndWE/CG1lwT/Y0GQDHthS3aaTmk6fSd7INu99lsIU7cXJnH3at/mHhlhJb7Iqd
Pr/ZjkoHXQPeo4LIvEJs7azr1kC3nWUHGA1t6Dxyqri5cVtsTHW4WqDKHLKAp69T3ueA5R7vemut
WGFHULM8lQqrINBen+EGJHBUV/E8gTiTYzNc5agGPoloe9JU25N+0/akz9qeFGl7UqLtSUttT8q0
PSnV9qTftT1ppe1JubYnFdqeVGp70lrbk261PelO25PutT3pQduT/qPtSUjbk7C2J1nanmRre5Kj
7Umutid52p4UaHuSr+1JprYn6bN64jPbT7hnN2y742hn2uied3oSFHG80PakqljIvskNhksp+eLB
5+dJi6MMBSrxeJY88JrHlnXwBKpUtmmlK3mSdIncZ1bgP3K6kidEV1WjnvkJWV2aXh4U3HEId3GS
GLwKSU4o6QVzFJTrPC2MdE1/whNT68A5KG7bRL25vh+JyUt2Uml3C9ITEJhGLIYgK3m1AbhEltf1
4XnMS+ZnS1ZdSdaHXaWwrjV0tTfLE9Jwt2B1eu/CuBToGFbapbyhKYBqPfD4AzBusfMTl0mZfSZp
/B86MaOMVwerKh6tmvk6CguPbQ7MFxurAmAIoCvCfZGUBusUGy9XWQ5qvoWt3sM/gqErRAwllquE
knZBKpqFwnBvpDQr1tMFq44dsuy9Rt5UFwSeWxzm5fWmWFd92yCov+Nh1AdkR8v2M75jxindzij+
jfkiXs7RDb7HBs+S4bc29CN8I6oyr1RRUjyi7StDsCJYjqOSMGZb7Qibeg0sg5ihbQp/ClC9Pqh1
Ckk8T7N8U3oNio23VOqXimF4NR5hYTff79oBQFsfUfHQe+ji4UdsB7yxutSlt4/iitPwNp7zW73r
MKWWZc4qRcVg2K+lYoBInr9/WVWUU9Z8qhGM6TkqG7gSSF3cAcNh68jzfB3c4tlT1ASefIYrO9ia
qNkr01gjCyCRUjUJVcLgiH9vKKLg/m0qx4Z2guYZi5KGFTvQRBCv3SmqxIhUmntLYNjwN4cgcbIN
RlgTMU08Y0GSFYVtruqOShce2+uL+rpRBMYeA1YzsRyrrAoUiMt820rLrTJtB3iCPE8VF5wSIkfa
vDUQq1AMGfQq+5XfjUC4FaRr96+F2s84GPbpStzSKJxACMdLq7Lg7koci5jkYT5dPPDcK3FZCdfr
hToykUPAOaYQLsqm6yVvE7Mp9zWlFjfV/HhJsjXcct3pB7mXRHMMDnWNdQen7zXSTKEAFGQmHg6q
SZd2sGW2Lgjr2gaXUzMHhWvSpx1QvKxYKq6jrliv0eBoYo+tUox7V6wGZb3RHtJwGU83dU82b+sC
xXSm05HkD4K7g9OmQxWCDK5kLdX+kIp7QkLkptmG+CCNfV2Lcr/GHipEiI+BSiWgLoQK8dkPq/i8
zkvFCBCzMEn4BKzPylU6G7yUmo8FKcvvwrwqaidOAUQe0qXGTcCNd4g5XcM4FRQcUKma2m8AcHsa
WxPsge3LEiB43sANdsxG6b2LREQXhLgRIT3MUtHx/oDGLKbAEusGYZX8ASUy2+BhvwHCKlc0ffiM
zLElqx1xnhkbN0VVYVHkJvQcXdJkCAxvA80iADo3bzkBMecpHKzf6Dqlr6cLUXc5jL1ewIuYVRGo
yl8YIa9JXhmTPLet4H1x9lQZDnlwdClSlU+3j7fqlOToIBUrdgi4cYlrSLMsV0VV/GDOSuxNF4IK
gipKgxWIAgANBGUlqtwpKiHWM1FwzfFoyYIQMYhoPSlEC75NcntB7kXYUTQ68arDct0IcEGNuwQ2
JD2sS55KQ9jcj4DdamxNI9li80vCowFwYeSChR1bnkYxtHOfbqK61iVWZrQkxorFuAH14ixdzF1V
vf4kgZO6Jk8R3hLjZ5geQxNGlV8uYhruR8quI1QSp59lMRK6WHaICJfHcXTSJLnw1zadKwzCjIfX
/PXffvn+pp1SrBLAq06pLBKgH0u3XtSw4LWJwygqjI2VGpdkCTf0dEcAbThztcGyrnIGFaoitUrH
m/6wTXp1AW9i6hSF64+BCkhXE666YHtuuAqITSr7Y34m0RZHGIvh+v10h1Vo3WYQSDYPpGmd3ceD
uyh7+uiRbBweHnLjaKMSqUTCOZYalbJNw+oHs2m2VDlpahccuwqLYbYGVj+6hnJrihF3Lw0e65qv
V8xDNHmQ+mZcz9KFuivZTc3EaJ1IWkM7SkorRl3F93RdmWdQnxGlM76EoMzYr4MNV5hF2BxYPTr6
RlUQGxSKo/CQiYPxUQOV+kMngwrhXD/QpjFFdY5miWbgqqLkBT6Vsj1QMZW2kstEkcraYwCemFx3
VOEhXxtZdCdiJQ8l7SaU3A8XQ1t9n7S/MUgiUz2sa4GpGFjel687uCE6kCOJzQsClY3GPhkTxPL7
YbHW1HTD7hK4o2Si26MF7khoJCkvR7yLzmMxrIQdqwmcNYi7cPVoe90nqjnNPK8fSTEvWZF9jgWF
Hd1+LNPrszzCqcZ9UPSYlO+qD4GqbYYuNevrrLT7OiuVWmq0Sp3fhlbNoKvcb36D0Tnu/xQ8uPGB
M5qqSVpPPxIVwLb1LJILm5UqtVbaRMLNYYlEEL7I9fii5YJ6rl6sALJlInbyW2VpASdj+Y4uhm1c
EZVbooZkuW1FGZbr4oYO5UVl7d9sfpVaXnyUm+IndRI37yb1un5zMwuTghykDCFtAug1kMr57ukQ
Er4cIWFNQsJPTkjW5QjJ0iQk68kJyWsRkj2ekLxOQirz9aGMPH0ngD4DUQ9db5GR+JrIdzUpYxWu
uQirLgBwloeFdXGVewsqUQMVyk0Nar0pxsCvapBRF/sGg6YDbA9A1w5y1fQ96jK2ewcRnsRFkHnI
HkUp+vJsjxy4HJ99QbrtyMmQiEOpi8Xe8y+ADtz9/luJDga16RTbqbCCGhnVeY6VAgSXTr8XzlFv
62NE4FTnauWfCqJKc8lzkgjKbnenT8pNAhpww6GU3yjhpiKWqnV5FqIgqPZAFhx4Q09kxjVkI43a
t0V5XSU7sIjjfXJvPvGPr7DJfkK/sVHTb7MsSbI7EtGXkwf6JaT/bf7mBWvLMotJEqGbH8kd/+18
Sb+xz9m7PGPv1gXJd7+Kb17kYRRnrKHrCt3MyDJMyAvuA5lk9/gmS18UJKFP3/xCHFZAYU5CdPND
lhP6zFQOd4XfMUoW8ZSRUiyydcIpIHz0vDlnxH+BpOxb9TErucqelrEvi7ig33gW04sNvX8OVyuS
kggyitUueRVVr91GQcj2dSnhfvHXjfV1pI245xzeK46WrQyJiYeVrmxOYiO8eZma6AFDt1qKsz2v
H8/rx6Drh2ThwEpRg8/K96x8z9J61NJyT1kqcOfCkXs4gy4V7rPyPT3lk5RHUUpVck+4kpCAYU+l
vb07ZGnDS5pGFaNE/iWNghkQZrUuFuwKhhjrVUS/FfKqsl6giajqLl+GZSnVEZBhVfrMrovFlyhK
p8NTpg+Fax4KsVIKw1jlrBWZJvGYu7rUADwVCllZHQpdbRTKknlMbSht+UmWi/Tr4CFqQyEt1xwa
E8wN1CM7Y/owFZSSsT3d2yHHMlCTh7Y1DBQeDwpq4OJpklEVlZ5V0eGVjSVswO7a2q0YkQ3j9NaQ
GmDFUoTy25Yd03a1U1buJWbwbbSpL4G+WSAmDdmaNIURFKasJxXrnXZL8mJd0LVkyZJxhfV/MELa
ljAOvhnO8fvedqo6sAlddaGnRiX6Iqg0G1j2YFhnIxJ/EaJ0Hx2VXgdgpyuV3mOiMvgiqPS+CCqt
L4JK3HEjeVREul8Ckc6XQKT/RS49T1KUz0Q+L6+PiEj7i1h5vghRBgMQmdAXt6S9u2mgE0dyw+D2
VU3uYN1WxhXW/FC7R/OULyJ3pXVWyevyYUVu+LtGGaFhQHediyk4uS9vPoZxw+f6lOn9OSwKzfQe
AsYSTbIG5mwMsjZ4uqp0XoIH0CVenbQKKKBrLNWmJCHzEEyM8UykGUwIZWN9mnsMuqJMhLtaYH3k
KQVn+L0XehYHVbfO4LDCWjGWq4+hMKqBBK1b+ynNJqmoXuYKI2IcFZeBtF1dk3FbcqxDdQwJPdM8
S5KKb+GsZLXaKPcM8vs6vmXaQvEXuyY+cUS/xrOY/hoW9NdTWQCCpz4cwXVnqyqgb030dAYDLtoq
bcosPFwIIKXKOgdVJ+LuFewWRSL4HlIAtS8LVGcZPjl1VElU62U7mkg6xoRrZitEPVj2oBNAzjUe
+sKqTPG6DrxjCv+4bukKlNB12mtaUdRAisoqXOYqwnJ7QR0y8QAUtlMUKEMSfm7DLWUxpApLMXJU
MGqbhAmwEB3C2kNJpWhDZ+RdLniDzzB7zSdBoSy0FekCkeppe4q5Kows+0GXtPrHVSsC0VNcOc0i
8uq34lQHpxRBef3FughpW3ttbGukSDZlB10RW+lU6Lt6Ap2yiduPnywPiloEKWgCKHhIpA+va7tn
KwJ0HsJwLok5NGKzUcyQmLD94Q8M2KCxGyQz5uPq9FBck1t2Ak0oFEllzhHH6qCRRyeIDajBFkYW
VH24MCr2h5XB/LZ5NquPEhYP6bQJgQJHC9N4a8go5nXuQrgUum9ZeqDgYvK9H77/blvybkXyTSfd
NDOmdfd28Chtqaif22ME8AHe7ItaA8FnWcvr+/hiAffboKYF7vts5veePlxH2XqSEEOEpNDqXRFI
rH/ItAJNIBvBt+hbYNt6AeG+CZ4mEKEauGYHNVgl63lMHz7lvbaNW78+5BvZ5Dd2kQ43BurCsQ3S
XganAFN2gdhllu5o5H29+UVWBWWE3GaH2wv64lrjatSdgmY6QXfCeMHIPDEmZJblpG4xG1FNzLOH
wqh+C5zPgatDji1+PK8/ZeDhQGmjah0859WSJbI1L1Z6yoQOvGYNb5uQrlZbobDW9qC555s9qNpv
iSbhnOU7OjgHoBn1IRikTGVX92BQ5pZOjIqlFTNzssxKuMWi3QMoXYWreFte2FiQMCI5fGY0lTZD
T1X/MKB/rtsdgduqnF0xnOjqK3lxvKNiCU0CovVyxS3jZiao13345SLOI9aVu3yo+87w1XPFjPAk
nj7A7oIO/Go2h6nh1mWcxOUDL9FMt/X8YbZOuVV+U7VEqBvINI4B0l2jVR3a6JbsjYgdQU4APyvl
jw28IOXHLKvAj7H98xJ+ssoXZLrOKdR1ZS9Urenr+J4kZgd3qVMu8HtA7pG9B1X5IehqdcNuW7+9
rhb8BV1UvqUPMaE/5+ubyOSgC+cJIjn16UjJ0FZnOk8Cz+VM9ztsNs3Mb65cetiseNMoZAM7kbEr
xjpZm36aC7q3KrTFVZJpnKbZlKncLfOugNaXG/SiiAIwhaaSnRZFvk54uJWkrTB2ziRVOrxP5QO1
C6ZF0ZDpCTOnfSxb8gYfi/qj+YQy9SxiAyFAugQvRX5PmNuQTr4sL6pr/vIuMxaiFg5ugPQwbQ+1
WE9KgcvE9e2e8g8n1HpKeORCGYKtfzG28SXR5I9Hky/XieqAVWlgFJZhFfLIQ07AujxK59YTMA+L
lfDPheiB6Z8OrmMdpcJ4tUrnJy1bSiI+eupAct3na6VU9CjP14Ep5QmLHgwT+PDLurno0uN9rFHU
GSIbprLlWHGZs/WAvAlV4s+El1HiDklxy0DLxk+G2nLBbjvFkkUeMseh9ZEzNMqmax5MHGXLENYb
bDrWgCOQxuZZ/oDQMKJKqKgYce9OoLoMMN7/9MN3y1VCGJeF1c2C3gvRPnJ97KTH0Ca6IbJcMA70
Es4OgDCLTX8YYpmTWkSeoxQ4dyJ5VUfz+1UST+PNFDLefP/9T/+Ae9P3mclS6k8fDPL9kfjx/sOP
/wO6PEx/dHYIx2KZmrmxiJPoGB7Wy8G4wA29Yw6w2DXQvtc9+9dFmS3he2zL1YtV+U8FN9kDLax1
22TRcoNsel7SB1xfLDeCkhykkqxxEi+3BoFwV/YsZyiV5Zw9HIGYxYE7kGiBAUh8io6veWeZxTkF
ZDGfsEfI043H3pDKRgAXRzvQLm8Aurr3lVx/WU98GGNMb3GMtOdoVqtNHOoqz8qMpbLDa4mtcRI3
IGVyNM2B6F0L7GvfHGa92gOWLJae5g1+m0nYIl+dtn4TUypgNBTFAglbnjOMhPeRxSL2A80anbLX
9FBVwhnGbmDpxauj6Cjizxv5/jSDIyFMPAynwSFIWI4H4YB0SuHADQYlfje5hHR7tubVZBWy22GV
A5NrmwNZn6CzAms+Jq+yXIlM3/Ke5LmQ0Q9a0ch91GLN41te7yXP7oo4nYOzxnH0O77GoQ7e8BA9
gsltmqDrUiTb6LDtKl1GBuoEVu3DBM5Z5NETVz8qWURQPE83k22P0C2ykFy1JEk5sdWtkBGuVrxb
guzqxG1xRauKtIbcI1UJ3Uc9iNU3hn4cWIZpPGNeAxBy89PGUquF8nNiQ9fldst1efenap4U8PHF
HXgygAroWaNMAhG2bnGdcpHZUcFHV2y9NHVWcWyrqPi04Fmn98vk1T1wLWX1wNnRcF+BUSwXzsHX
SQ21t5Yxq6IK3qbKnUoKtIjxJGaXGwQaSYRz1lRqMxxD6AiE2gkXdwwUHnZUSNOopCAO3C1MM4ol
QOmn0RJWcd11zi9BKD74zIOyYbXSJ4pmWLFGSduCdVjX83Hn+eAMu0KdGGl+PJyTnt6VZnjhn5Py
h7CkBk307tOnX1hUOIYL49o9CWpBFRcLty00HLHgbq6StKEGWKWZ8j6T8shQ2/F08vfIlb8dAty1
EPeE5qlHrTi2SqGbLmy9+4w6trlEjc7gCngwlnx6uMOKTxOZVfKoVE1Vrod7UCuuLIAtayAOyzH1
svbYa2uU2XyekEgaWmyqXBz3ZkBdhggs4o10ZPfzgp+bt83UbtfFzqASPjuBlolGUifYd46ds6vR
Bcv3FMbDwbbm89LYhaV1qZ5NWbmU5Hm2y12Gldk3O+iyljzX5siPymy0G/8nygNEqTyng4oAVHKV
AiLYU8IkVe02FeNYpRwZ9jqr+dFQ4HAmuZE8OPhAXN+vDlLnOsGLm/ssAU0SWLBa7sZdln8mufRW
0LaGInh/CPCR2xpW3CoD6Ef7IUSzfidytFA4KIxYb8A56tmPXWhnV9jxxHlHJsXvidwlZA/Ezgq7
c/TVBSIDrIXLjZrPLO3E0mq3aldatmkNSu3+QOBeKEMtQkrQOmivgfaE21yITLcnlYogQ+gPHHNm
auHdNpWKEXbaEJTSqp5V90tT3fsiMd5+/9O7v354D4cRm/q1hmICcTMW9nQSta2HI6UuGIS6XREG
gEyvg+x0+HaoQk3iKCLsJPiQkGJBCB1f0SXIQ8SRXd2jNIlTXuQLdG+5Zk+QX/MwLVgXyYKUVbUl
VrVVVL8X+Qj1ASQlC4mLjCJMo0l2T18dpBmC98l9DtRRRgqDlTMj93Ezhtk27T9Ydi8ObnYRQUUJ
H/X1RRyVDqxSJGQ5oL3kk4dzI8qzlRHFM6oUDFdctgeZQdCTui1g53ZWQhBSTMNV3Zq11muSRDxz
DC4sdaLnpipKDNAkBZ7O44Yh3Gfl3GQfVk3zbuNwlyN+R38Bvgh2bT0GTCt4M23Y77VkN4NR+RTG
evYeSQVxV6XiNhblrbDNxJhmS5ZKZkx5Z+m0IGkhDBN1bPmJ3leItKg3sXppLWA3PUJKwa8ivHg5
36/tVfVUM3ibYkm1L5W6IlJIvgbOwpjdh/Oyh3RPmX7mnxSsaJ+o45rt455spTYDfdA9Mk0o6Nrs
RVkVwPHu06e2MvMYKS0Zcpy/hLfhp+o2pwUOuUr3wXK4+GN1xmiBUnPPtUDx4l1tSJbZn6jbOCIZ
L0DPThktQrOVgjNUACtlbAO0267RhUUpebrXcmV3iPlXGn4+bWWWq2Tay9DaCwCwUKzuGIdL7VHq
f3ZLcuH2i4I+uClTuNV6VbGwtqPpogdbUIGlGwqG6TOX6tzuhLIrFxT9RMj2tMjqCKttq3Lk6ZUd
APfPt7BvSWULEaXtVOLalFOdPGz1Iy72jlzTLC3zDPZ7287Q8HCfHjQE7F1LLU7H7cVsNt2nWXKa
ZaeSMovFaVmHnpjK2KFL699++b5zB+ljNImHhLkGvr2+vi6Xq+vvw4dsXf5K94rimnlO+LZRgMcE
5lDYFVUO83kzo1/VXyLmzIz1Ic03vUrC5C58KIaQwI45h4isTGpF1usKvJO36nTcJJsD1VnVrldU
uRmRWbhO4OoISr7GXuys0c/MT1sjP9l8KWQ6ivwvQkf181SiqbaDvgRNdZSSUk7jakpuBeEU9uCz
n2M/OY6KLUC1bJReLK3Az8tTJW+rKk/F+unYz/p5Gi8lmumhL0IzkUZubs3eJE7hltPuMBraChx0
AdbRdel4pMx/tiRFwSJqD8XR/1BwOiZXAdMbQAVgJ503qPTh9qHWZQi+Of+GE/g4cz0x0mzzKbwd
6VrJ2pAcz3m0O9Amu2RF4Pwp0znLmtBHdHt+xl3lK0kahRNYWmjcx4VqjUmGoFTvzLIVCD7q5KKS
yOOpXDlZ9pmTpRUGcEz7SWNQyaWxHAUJHKaSyPROJRJYDbIWsjRXCPUAG03IKtTW8c5SzvbDqh3p
6YLQD5jfN05j1rhsN7tw9y6NCkyu+Zry+zs4NGxY+kAbVmmZaAEl2264XHzFriB9tqyr/8LrY6CF
sZMkhA10C+mkbasmVc/nzoVuFShqw647O5I0FmVx2jop54FYogtSbA9DsgwU65gqO6g4vQ2TGG4j
6GjVoWUWxbMHVhgWrn1uuWgYbrYAW45Whm7stAguj4DxQFTucOmmRVYI1h1vFHA8/IpUI7IokFtB
iyTfHpTYClrMbOS5Y+Fj2EXTh99VcFczPG+a5ez8njyIclskEQ8q1hjvQ1yVImgeo3rNHSFJbWEc
lp6tmhuUVdAclPKpl7JNfYs4ZXuJsD+j5yG9AnvNwihvynxNGje9/Qk87AW7pbFYZOskMiaEhW5Q
s+8/ggMDeky0do1SdXyrJ5VhQvKSAzXVFPWymBcssr0KsGQkCQ5VHWbb3mL5+5ra3IIIWxzYZk/m
1L2X616AdSgU1wUqqZtXr67pP8FoXnCPBaQvlzGwWZgUvUd2iiT0aRLr+iEs4oOQqzIfRRVs6IGV
nkCMaZge9nSBI09RfyTm/qgPtBSUpR+146o0wWrH5adn1le4dm0yNwjbPgRJDU4PzFYf8etGWbMh
SIRPde6QhB3ThXvRte8nY2k0SZYVJCUKdTI9leg+BTL362ccj2a6CNO5ymBc0x2EC5I6ao45DOJx
rTzxEHw8zBDaS7ioND7XJPr2wagEtHfggqQ8x4jky4qEYJ10FyXdHOblQnHyqyRudQSX1S60hkM9
27w7GEa7ultoMHCJsln9SN7kqRsLuqtJ4wNakg+tIYolFsUnNsJuhfaFVJfkvjTKnLVb3zt1ghaD
Ly+rrbCWTMMVO6MX1bnv0Iw3FiSMCD0vMc5Ms3Va3piNBhqjDaBiww06/wj+15TqDLWIY3pwAcfT
XfYHuXmHHUzysFhgURGLEziQZikp1tMFmJJsDzd2+J5PJXPSEiVB03VnntQJedX1TP26PpTWuTVc
rnsyA6cSs75lXPRUeg5VkAdYTctbsctRT6phIuUleE4iksU/jk9dfVd95JKDiQ28iye2ihkit1Rb
6JqTkDCXtjD1exK0CAvjABMO4HA0kyTqUcoI6o50RrJWoaDsi0pk3kURxOp7RFUOMHxksXVh3IbJ
WtR+2sSoP8zGLU/up4Tv6MY2sAa+pkI9Z9P2rkNc18bVQBcVzorkZUzaVwh2ZdSPJraurqm1v9zA
PsB35vYAdAlbGSsdGi+VNtFa4SgdjXyltUKJLK8H3D015t5/+PG7D+8NSg7rvLutH7AQ2HauI3fg
t1PWAmqEZUkPSSJX00DUZoKmwi030P2o5RVxJNQqFRroSm4qalwVOMOSnPIaazKynaGkzLwNv4W3
YX3pCkaV9FVv7mD4WeQoM4ehjJ7+qC2bRmEe/SxZLdrurHvJFhiDVMzBQLxYheXiLMq9AW6Z00OR
XVeAGJ/sTekJKdlKl6YdyM6JKHTBdQdU9gpWvlcNtHgX1KiaLkT9LgajuIKVU+zroZh56ejx6B+b
o1IIVz42+1J7VM4Sblash6SIzOKUyNZmjOWdM06T3iGeVGpY7ZimQGQdlS9Yey0T96Rvr8UTj10Q
QqnUclAhaE7KT3//0/tNxLikp7UZ9KSNLFdUTsUtdKlv+4OQU5WDAsmxHgs5JKEksOWJJ0jEaTjl
3cfpWbo6soH+KV+TvrNn0wEkVZHRXS1csePFwX3neI3A0Si2KBnF0TQDajhWJi9M4rCAy7AH9uNZ
iesMhU0OXHWzDnv9NMlKGRFZmmjcnXEqRSlW4RQuNOz0Ps6DNaHTrIxn8DbnazrcLUm5yCK1aYeQ
K7cVjpJXjy/QlGIrAoUxx3SUvCgjuac/LulRoeCrCOxGt08ZMxTqT9Joh1nddi7Lm3C1SuLKqrvC
H38rsrRxXBgGmF2BU8Qq23cZpvGMFGUz2HlQ7EZTchuNweWwzJZX+O094C8clN7dStDchEcgOy8K
mOphpUymy3GpbnCbIjbu80eDxuNCJ9TiOje3rXFJXiVhozKQPfBMhlksdezYpqY9QrSKOAPB1zQ3
AqPat2Eh5t42nGa8CgE9HoSThJsNq5Ifk9VseA+fQnQXW0KFiLqYr+QM4NquHqiczNcJu8k7kVGB
1La0kQZGofbRHyc8wgGNdg8w0APTyLOUukctRxOxD+l0kWdpti54rkWHfoIKZO6HKisAKrWQP5m6
bb8PFhCwd+IRdQsyLU2jqC+D6VdyX7tJBWFZWvGqqwWWTQfnCjn60dLwNp5T0xX2G6okJJ+AyEos
Hcmx7fSqtsL1GgLsHjP1w4rTsWzT7zlfpZDySzpNizA9AtAzL9080pC+SEv641f3XTsqKgEWe9Vo
JH3bkGdqWvkTY80zBQDUAgprPxlVR3B7XfD8vku985PZvvmFn6poznto20P6cSEgFw0kZUi4yNVH
1NGkkauyp5lIMXiT6C6SvDSNfiwzrLGSAgrvD6sLkAqo5GNJSRRd9SI3QNrscwaCBaHlGvZZ9ngL
3Er7HDH+yVtW/VSltFzf19ZvVqe48Gh2QddH2/e04e5RKhpBs6egyqVGR7q5JzkStJ50ByA7XS1q
UON+lr1aHcMag5EakZS1vkhISYzNtVJ1+uGh5HCAhDWC5NnAIKn7w7JiScrQKMM5Y8Mki+BwNz8Y
iQG74RTryVY8onFhle7LNtbAnNrCP6j4ymYqXA8YaxvVydw6ZaDIx+djH1d36LbOlLtCx+ObaIQo
GEnr4KmIzqZccBimPTAz1kkZrxJiTJNYlOrjYH8kpnRdoLszAK4Rgp8kvZKil7ZljkDyZgAdja9u
VG81vE6mZmGbsyQW5fGPoeriITU5Y+PxOMOW57ZdzcHBOTi0GxrUDtw/C49E60fgBIPusRfDnFOs
IcsfQ2+EI2ryxTPH5Itwr5G31340DAkn2bp8y8pybz+r4uPvS3FEpue6A0HO8zCNpos4iXLezlQw
AOS4tp4RwJGv/BcMXq3c2IwGdhxZozAiIffxFPZdYaXKaBrGwHs8y0ZiIZXYS10jSdKWsQRjjAXO
tFBylHfBbukWgwLPGQyZTosJa/orOIFh00FDYYu6i9P/VDhtdcVMYPmayBoGFZap0rlaAW3/apZV
l99f5eDbb7sHcJ1k9al+/zOvKnk9SbIJu/amxlBYThfCKveBkrV6Mvb0s7GMN23B2f66iCNSGHdh
nsYprNZKjoXTBrLbcw4HU1UcKuA+Cq6nfRy1p7na9wS4CKnUF+3MgD2HNxtAJ4f3iURny0mckp0x
zuudxnAAiO0NSXy0Xq5YhD6f+o3i1Uru0lNpT1MW1MfSbaoKMXwk0rbxlj3aMKQdhYYdBqtFyMBL
KS9Mb6RByDgx8CDulwm7i87J72tSyNkxsIYejUTGkwFGUre35iOJ04QtGdIaafYYI5DwQKkKX/el
ahNzU50CZEX3HVM/J3isBEu8pMdiHi1gItjHNeRmTaaLrO6nwPuCrZLXVS+Hf+fr9CbNXvze1h60
DaHYtNt4QTfDG65uV9j86sp6S7/tkOmbl6we48vqB+wff9G4x3LHkARcXdIMnpAkhKwPw7Af9+2+
3Lfg2p5YO/Ylcv/K9M4uABsUgJK1PowAHkgxoASsN1shjMBvYECNWpr2GFJ24NCn4ClJ+Vtgop1l
Th3fk8BLnDM07xvDEC90orDNkwSAbvYsPiYB5hx5yX6Cd7ZAQyD62RCtq9w8YmxF07m+4onQLLhx
W4CZN41j1R2NLE0eWF9EQd2XYccBm/vuMJibQsXsumfvDkKcWWYrBeF1Hwl81MDDYFbToTAKUn5H
fylvkYKHg/HGIesejuzBx/FrvCRMHyTscLE12jCk7dyR9mHsVYnZmxWbhWLCIlf5ygmHyJxhPMV0
QeAJi1UK9HUfjlg9kIcG3DErj4Coaq2Sd8TpSLNEF9Vo7gq8SeKQjQAr3c46uvJE1MTEHTdHg1VN
ITmRWeu0qp81ZdU78/W0zHKZkqpdt2gYg1RknvYxbEs1FXEkvmtRur11up6gtgnjPA0Gakvg6qe7
tbmE6Q8EKjNgPDwQ6GydJFXh5bs4iaZhHkmJV9qxu4xDfQhoAGVfzvc7bsyn0lYu+nU+Tn/j7TU3
XvP6XCtbdlw84MyrxmMIXRieORYLZKue7Q4/Ctb3Sn7b6I8gB959CxCDMxIDZCuTO4QUFGeBNQD3
Qf0z5lkGl+9Tu8XSMYT2Mgw4cMYZCyyL4cD3Z6Fxt4h5FknGImDqqj9wLIRroVGGBLIj8AfGLss8
nvCSiZJRON5Yo5Cphj0aL1hTA0H5SAcPzAsZB5Qc7+5J2EeVYaTGgn703SZ1tC41vf7HV8MNj7A3
NG9kVoRSsOIgvEkzxVvzERi2pMf2sM054SoFl3UFrlqBcngwn9TRr8RpVjcPh1dw/YB1jTpGLsVu
mbaWUjhr3wFI12007ABaQpQ8NODU5Ddm9WiisAzZ5Kx6Gt+wt9/uFXy8vmeRbp/j0ihZXFdKymIa
rsg3STaPZ6zkAIle0Nc3P7/59Om/+JxmB0rJDMZmB9WqBrefgrNk4cHVxwbFn5O8eUiwUTC4DKWO
C+txyfDjm+++5yLcESmWoj8ka1tXB2todOnSoOJ/8E5Cr5ZiI8pIweqlG+FsxkbDM1dg76P+MeRk
HvPGvpMHdjXAW4ALb0aQ5wUDjIDfIIdpZJB0llE9h+O8zZOQf/7p02mu11tS32UDfldjAKI3yPPM
KDODT+wav7GkYdMecAD70E3SHXswiW/O+WzlotMv7n6R/QjF3sJ1pWNsL67PmFNBwHVXpf/e0+O6
O8j6esB1+qODFurwhYu8Oq9Sf+ujLvAnNLV+grMpMEeQKyxK98tkOBqK4TzQjLd6qmL+oFtSpboM
z3vGiUyvX7MVbBlzSxG+HnGGHEV3j9bTk7c1GKeZjPkc40cRQ1JDCw1pGZOU5CzIlZ5ON2yAxG9Z
X6SxYruDi7/29ssbJqtVDXxy/PdG4L+c8UqN1DpTX1/F82AV4Cre/TKFjvwBhQ4K2bG+zM3N0o5d
h9dVPsZtyHTMLlDLVW1O8koPuaCHtmMOyI96dDyMtH59czBSlk5Xvd9VnGqUgvDPwjW4Ay86J7fO
xhlZzVHsjDQKuOgRGgy8bvYrI91WOZ343dG7l1nuBnrCuoH1k64yE8pstenfw5u4aVo+dLALzpO6
BDaNypKqK7CYJUhp89fOkk9Qo79BOFGFfrDbyKLuKFfdI8PhCfaAzDhXxjYluF8qbyeOVwVLZO3s
HXNoZtfglNGaOLtVnI5RRko3XX6v7HiRbqslCXcWNQ9aqA/zwmYRtuMPKfJbXsyNLjMJc9pCcWHt
IlIzYYYY4iasry3OZYABHskRTuj0z7Y0nqOqzrgLZXZL8pxXIdzL/odjRAYdxzbTEEy0HnK93tZZ
qJPkWEQR4BNyBjVXADUk9yuSx6zqVZjczMKkIC9alpVtViZVWtadfPN0/nqXyHllfVznyZX1nik2
r6jykbW53vwx/YQpOP1oM3rWWB4a/xGGKMEII/vSObcd3tPn3N6c41VYN5e8cEkzK7AuYvHVUuHk
aBPm9U3GXW0POY4vmeP7251/do4HejhudT97BcNyvDhkuW1bQ7LcG5rll8bnYauSnUm1yzCv463E
Ua2WUvzA0EwfSLu/GkGxddWAO1HMizBn2ZFZ/rnyv27L0soq8Chl5nUm/2BIy/AzMe4XQI6CWkkF
XeyQJTgpXbOdOJCqVHQSF2VbMVjbGXfiya3ezRn/YP4cmLHbwdZmLJ26yuOR2LDIvSg+QNY/X6Ge
+SDhw1fPTKBMqIodXzArwNUJLpDsmhe+OpnBF7g6nb5K1wW46T8zuGzlHI0tX31ZfKiOHvTFdJFn
S8I72acFKzi2QaqqJl9Zbx/b0gUe1+3AfSy6OSa/HfMSds0vh+Ltv53BMLZ1cHEMYCvxBTMAXGPg
AvoqVVIvY8ZVMijDafY0VU+4vu6IvzL9L2faVZfET1vWzJbl/8QLTptBXD3hYH16bCuTAzfEU6k2
cubpeWSNf/xyZucx5auwXHzZ1F9ZH39fk/zhynpflDlV7C+cHdgKU/rw/AvarZtL9Be6ItTEf7mL
wh4DnteFBkee9tKgyIlyERdxEV5ZbxlPWNx8WJBlPM2SLB2VMegCGUN/wr+wrnOVypiMQyyQdBVO
+XX7pTIINHFd2MRVKcQ1nnxO9j5//HL0VMqG0fe5y2bFeXe8C+fNWfY+dMn3es+ryPkM5ovnxvNa
ImfP015OurDl2a5W5dJTM7I9MKdKpeTspcjqS9TP/ZSkL3FyPrPgYH364mbBYQwmtXfOEYrq4MsM
Rf1yePCySMjs5dOktyW0obEEmMFX2zvwC+YIaIT4YJiNSlXXM8uDFXCvZlz9aq8NBWXsroohtawn
1KR27Sv8Llp+fPjuz39Jptbfi+jdm+C7P/1y+z/W38t//cMxv19GSfTh78W//oGSSfrLO/K35PNf
30UP//rnj2jy5/83/euv5eb1+l/L5GFq/fI+/FNS/Ouds57gX5K/Lz8W0T/+Nv/509vt7/3PP38x
p8skjv75SzJ9cNJ//fOXn/6HPv9fHxLzX/8ws79YvySEPfuTg//nH/foX79SFXvf6MVpXf5qwGJd
n2Vx2btTHZ//LCNNa2cA90P0H8VettWQr86UvXGpPBjbor9ANnz1xTPgspUAWo2QCRdExRcvgXOm
kJ13qz6g3LatTVY+vHvTX9BXwkYpJV+DWkZklRNqZcCp4LZKJQbHGls9N8XAzhDTPTqt2YpZgMyv
/vKgC/UTJ7tug0eferwHkPtwuUrIq2m2ZLdW/PcumBfQpFuGySzLlyQylqQMwRoMKnnGGkaSUuls
brPgBcC+RO3Yq7m3n8l5sHjv6cnTnipwVuth584th3iP7roKzCObNXSxp0fgOIbrlKKLF83OWKDr
2DvrKvgYF2lWfsryt2Obs1qEAdcIVkqzsb6wTDDrIhJOq38V+Ucffkkr5Ib+i6mTcWaGtKUFfmnz
ZasgRy8e2QrNQnAKQZEt33MvXQrH0a4UfVQB2BdG/Ngmgn1haRysF/pmEF80I3YOJseaMK6AA3ma
LFLKmqaM8Sz6xXXYF/bKY688zN4G7JXNvgRPdkYpcWnPT6nAhS3/nC13Z4eMtfZ/KnFrWto5dUUH
QJEpLh0THRF7a1Wf9Ks9+qT1+pIlKjFnwKp8gUq30cudf1fYOmNSwuWy5ay5Ghdl/+0bP1+OwnTh
zLPOHM+k58Xk4dnS63Ij/Tx1TuXY2HrmnGZV5dMomxpRRoq0NCYPq5B3QJC1oMNK138nDoNfQUnK
8VsqbcRPBN0pzCRZk1fTomg0Gh2IUEmhfcv1tIOe2PnAMgdkdWvLA2y6YzBA1usAOUONgNyGiRQa
u8Pzng0CWF3QYIo3W6dTFrCyeyHtNBEMz4LGiAB+ePZQ/JCvr5bnDwZMSqOku2C2Lns3++grgr2x
QFud/uX+fpmwW62c0MMA8yHkWUkXAxJtS3vzXdDg3tM8LBagUyEYYFxFsl2OV4vV8R40gBru9aFh
29ErOoLjjGbLH4TOjdIBdA7EWdaHVYyq1Ku6M3fLPEwLFtRllBkbCMBo2/IGIXudhrNZpd6TB2Mb
4WOgEVkvGgMeQM2zzzFlODVe43lK5/F0zUx9Y50n4Apr6QBjCTdGOKnW0jD9DN6pIvP/+fbb7hh7
M5Uul6FRfQ43hjZ10VSGc7DKQU/DbIsQT+HoRpV93215fPXdKBdkVlaN4ndJUkwvYE+xIxWSqyyk
OE2zKVO825haFctqAPWvgULTSHNh3OUZC97OlmHM+lX8tt3d1kkJTDmsFB7XC/wI1TLxH4xHT3BO
wpJs1xhQrNh0NCBtl7FsRVI4YsPUAKN7jWnDm8V5dYVTPtRYlflj0D2jfHUPcNPXSqUIH9idA6Ul
ryODgU3Q10FpuYjz6JA+bgBVQeZ0pvDW3OBC6GHFhfDnnz5dOKXrgp4xwupsB05R33wytIomjoW0
aq9kCNDcwbamXfXc/IWniveo1Ofw8AvOCNNRWew8dbHFPNWiqZcY98BhifB/++V7esAojPcffvzu
w3u6nmVLg33O7H2DLXBZTqpzAF/vivVEuOR5tlyObcPY21YOQbfjCaf0p0WWG7FwEMhSijzpzBLK
gGrRN7CRkFsCHoqQ51rjDIIehpufguc0FKjYx37vIcFCUcq27Ay+xwWQdsdx9MLvs/1gKLCph7zh
4MVz1KBrLi9vYUwXYTqHJeMFlnTS+r0n7V2cRtQi3QwGNL5VWufpZxB4I2da/sAMqVYxQiSrWOAP
qLBKSxgOEBpjCOvViuTTsCCwyycYYQxwGco+Gskf+2N4G8+5yld+vfuS6eFuUlYONtB941gawXcK
uYyjKCE14/fHAnIgGGQMZZjPSdmKjtHg/F/kZAZzHw8MDaLa3kCo9forcnyo3REqA+cZnW1ZHs/p
iscgSQ5fC6NBtAuAl4wC+UGnpV6Mn1YfEgmob2nGZGEm4ATWqcZxys7/t2R320sZvMpW65WxpXm6
iBPwDhTZpjuIuKsB5CSMHtjSrjASb5iVtdrJKx91nDKtqz7Ijm0PMLfaczQOit25SlQe+cOIggsB
PhXqnmNbAo0FSVYwnbbWLVQymwMkJS/Qysh2ioJxlw9VOGaCvfn++5/+QW2wVZgzR3y6/ankeOJ6
lmb21jO1XISlQXWH3SgXzSHBmfeO5rE0WBBJjgSW6w4kkMoko+Dbg6OSbOiq7g0jnCGXUdGg4iJL
WJWmf2R5El2Hyfbcusrp7M9Lwa2jrxRi2AW0zMqHlQgUaQOdZHTvlNOo5lE7Da6irntAgSJaFYPL
j9937BNjWqy4UczCJaFjh1qD7R7o4Exyes3tQ9RpEk8/G/RYD9+nOoE+AjenjIgUZZ7Bm5ZG3Yni
6F1CwvwffI78xOvvwPdRSm4DVdBiFZbTxQcRQ5FayI8iWts1teV4+sFapj+yB4GULAEalYZPBJgu
tdpbimt3+jCLE7IHYZs2hdCnGvMkm4SJcRvmcThJBKIy9WlHvAznpE01TF8/nkQvkD64rRtoPOXf
hxxH+dP1ckKNqL5Mxd+aphJeXROtBc/VhleEaTTJ7qV2s2c52vD2fPthDLrNPaSPuDLL26eggmul
C6JYfranEzDnqedj6UuZrVpXNFsbGgub+RM1jdY5+SDchVAQuAPoZwObJfFmaVQfMOBcNE/bQJTO
ThYydQMWpPy1zsnYZqOA7md/QORKq+GUJKwPl58ocrKGr86wb9sD6JV4nXWx94jwdpHM7Ibw4J1B
7ulvVc6PzTXK4XU6G02ULeGjnO2OPCyWBjAn5ZuSqt1kXRJqIrIUTDBEGjtnGJyUXRidYUTFHrvg
YQXumYf14ydYgtbZB5ZFgoBmpLLgoIGHJuCbj8cbXHzyvAyss4xONjF9C51jSK0zM1Cydwcdl0DF
Avv8IxPMTYzOo/5qkxOjwdQ/To2U3MnCRRWS5ZSx9y9VeFTgXr6Ueuwobg/IGGBEZSb8Gcw3bI0/
SvAyxEajDaRi0u4DUJuxOx5nWmJ7FJKaOg2lqSybwcl5gywTjzQgeXSfr3eK7QclH43jxBD6QBJ8
qjwkYQjq0dhUwumRaw/BqqbATg3T9ZGUU3gATklDdpFpqhyuRONitRhZkAln0l8+/crv5NmeaWRp
daUXRhF35Xxf/yYsLlvLIPYi6lgo1T/icvF2XZaC/C/T1ItZBSS8Y8jdWWEr+Qe6i6NYZHlJTR+B
GIKRWSIbjq206iqx4p8/fP/nslz9Uhf+UNJJrJsZW508HI0gfXg4QXRghqXkWBCN5zDz7CBobJU8
HKWH8QtIxxlI8nL1t8bjumwglm/pIn8bADtNsmKdCzZLz9VLN4Qsjm51rG574knABob3AFcXpzc2
7SnbnsJVfqclRnRXEjjD6XcH+q3AGoj70mlu+95obJBOc9fvMY5lfE+id1Xlneu9GjQbRwa1BuWp
/l6vPeYAfs8e3UVC7o9JciB3dA1ikmSTjUkuuVd33UcLuMsNVBVxLwuqXcR7yaSiAw+ytFNfH3Ck
XLcdcxzK60qtkBdD2+wmy1X5wNFWyZqlCMlkPjTlx4MRZShpGkOc8s+JEa6jODNu44hk7Yrv+tag
TIBGBaq/UmDN0Tj2NhZ2PFiu7IOnun/Aj+SZKFC8zr+YB7vI81Q4YY3z3JYpMeXWrmwV9LWByqfB
FE7GwUq3FCfiVwUrm6WalQLmOjFYxyZ7GvBugxcL1zGdcYQr3tytAdRrkonCkJRuBbry+Qwy5pHD
8vkbjDR/+VjgndzrMYK9g2m25Bl7v63mDWeHqxQq2ZG5LXaCa2uH3tlokqw4H40jWLGNhntJFiZd
yTK3Rlq2xJY5RuYA25KgZYOlX8PuF7mCajsdZtWRp7a6P+IhEnmWsLKaq4wOomI0y4kT3KvI/Xk7
zJ9+/vW7n3789Aexh/hoBFWVyB08UCtNERoitxesNoWK4pxlI7CBsftG9r1Q36h8e9DZJRie2ETw
e5nTGzjG8df0zHnD4b69vt4+81t6ELA6GhVKxWgv04IRyEFlAXbQWVREvBwjy78EHYEW8IE0ZPi9
4kAIxUYKmpcR+7Knrd2DUUqWjO/oG0XbRDoeWveJdJrUDoVG/3DQeSRiVlUa6c8kjEhevzEW/B1P
i2feWDjt+DSGHBVqPUDdKz1ClbKsqzW9ms7jhv1jD0cp976Cq7rtnIFUpTSIjqTOCWy8K92nKGGK
6XzdKVaoI6F8esOkmvpJPcRfZUW5WVngzA3zHGqFh+M2oxhmtvfYJhAj5Qd6TgnnZO92jKRRYaTr
JNnAQndTpq8LlyTxLckfKFgkqDXlY01Y+1vV9BYwn3xPevo7DYNPjWX1sZHIwhgsXQTG6W2YxNGm
EmC5yLO7wiD3U7ISVrG3fF2i3AseXTGaizJONvokViUvwBqZvj+Gff6zUQi4bwaa6K+5ftizSNYO
xzfxkNDbqiPi4lFqkfIqI6gLnIrljBU61Zx7jok6DxUkXCYUZfvC2K+4KQggD3QA7pnFv69DOP4u
kLvLdGHoZF9dwcKoesfC0UVWD8T7onizjuIyy6/DdLqg2zbb2ug8MO7oz3c5zRguRRJ0Yuge6FEj
4R3wOiXFNFzRCXpQFbdhLyI0AvX0eJrEKamqZlVb/nQRCsPKtfFEPige+AaX4DDHZgrMCnuMYezt
ZH/75Xv4JiQYYSBwDSl3sBkinxdY07zg2zIrhb310Ys0n5Ue00srO0wY2wGw1uK/31xZ79gnV9hk
n928BFwnJnedXJlI8vztU69fXlkfGlWANVJShLPtFVnTkLZ0S6n2LIHT0RpUPhtoLiahWJRkAshD
C5sgLKl8kK1bPtLN4+KmkNlnCrVzzj2Fc0xQGL76kiu2200xVJBb0jE7IuckTJIHo//KcTJ/rbPx
V4CMhqByUCidK/9plE0XZEmMnCQhy8qBzZFAnySV15fO2wC4rujWCHgdts/Ap357JsgsVxOzWHe+
Xcv2hISfpWYvYncHehkYpyXJmXuIso6krMKpMWNbKR/aDXrB2VlNNsqIMKG//N+fqkJrLO3+Hd1x
32UR+W/z3vG/oV8s/uWPf/xf9M+ut3/XrN07HAOp0Eiei9oGnKSA7VeLTFrJIitKFaVSYfgVdruy
XMTx6u7ycaiNVGuULkMVaJmGdEmPZG3zlO4iT+JauloYFe5mkZpu6CQVe67/+enTNZs30y0HyNHA
DE30V71B45RVjRWdsD1/QJXhFNf9QjfasiRlyNZsFiJAfl/HtzdXGH8ipfGO/xp9Q386rW7r2Y92
SL+Soqx+6ebjm+++r37zuqlAlqlpk5vmYbEw7hZxwtwFYcSKqVLKqqiHVSgqDamUnX0SY49A2eJU
J27eVEqF/tioSaCUCe+1j2JzYVewIvugvwzbuqC2zhmBJ4oV/JZpq9fDH7SBfD3ImqZUEfUkFvEG
Hn/+9QfYZReYgzHqELhiV7yc07lY5NOblzyd9lueTvuSfpbRX86znH6uzMiXo/DvJD+sNl6quqRf
U6ayZTKOrqz3dKWr/u77OP1cLXvMZq1+coWt6qN6Rah/n3H7CvvmFQ7Yj60P76ofvrsOm+xV83h3
Y6+af/mMDL4RsJd9vhv8tycsBOfkN7xseoOtBodu9EHWTiVfvAINZDmh5iDbS6estE+4rRwK3845
WA+sxD7i7OLD4jZPRG4aR41ZzG23MHlV3M3ob/EQ/4pVVfA/tQDuwoeC8o0xsXoYwEM8LA8FfaE1
q52cd8xS+ZbVyLxmg7myJux079rf/PznH3+bLpO76L2zmPzp7w/Ru/n9X3+9u53iHx/Cf741f57f
3LSxz9HPPvl1kI3ssZiX0vPRzcsqA4tt2axVAN2vVyu6gtXtzIw7MvkclwZLGzZSUvK75ZebLb+L
5yVaL5cPXKdN52UL931XN/cP68/Bl/PeWPznPGzsNJuomldVVM0f25ikdOjxT2GS/KK+RT/9x6Cf
8huarYpq0c9TWA8zHD1+hmvhtqOH27NwfV/fLyDYNeIMzXBqKdZWDzcZq4l/hT16xMqmdO7XOxv9
RGohKWXInsYRfDaOeBuOeJfFEQvOj8bDcoTpxbv/fbcIS3o+zf/PkWl9OmMCTUsVa+xqhEK3ou3g
oTWFjYDZw3wMgoAJ+vMlKRdZdHNfLSpxulqXmxWtWE+WcXn4A7703dMXvJvAzcufE1LdMbG/oN8e
6Jjot5+/+/EVW6depFkZzx7eZynzbxaL7O5NNR7U8Ek6+hhf0czatk6EVWNtyx9FApx71TAoX3aj
224C5D5crlghlGx5DbPs4+6PGmxz0BBs49I+O9c2OqefaaYmpm2vegzpfa/bcl15EtfWZZzEvKdV
M5woUAqJ9DVcLwsvu6Ar55NuBzVcOQcniY6Fy/PS6ZJmT7Zc7YMxLg6vsA+4ipgP897xr/A75ina
fgvYP2YufOx3jXgaK+u05PbTo6tUPGQgtlajrG3x1nMldG3vDMW5lJGwIPQXgdoUnlJCajDuYhL0
X/GPjLbqAvjASKNvVvTbd7PKwmCiI9zoWMQFt2F44gmzdlJ+Psvol79QwX6qTWWzevIf+Z+QtPrG
vtLTGbNW3nz69OH9Kwa5giaKpV3cezMkidPPcOnDYaeIUdf3TSOj2jxFc4Ykyzi62d0AVJMo/Jpf
vew+/rq+ctmRdmW9ObhmsT5wfsMuf0uprt5pXGas3VTwhUvrmOdbhcLdldSpl3+yqxO1hhmn8bHu
qytwvHi2fz4uVkPr5ZOplpeQrr/bxyyz25h7a+pTThc7Zs9fU0VhMIHVw21IDQ8gNZ6T12rYBIqG
zVGatJLYRrA46kWUr2c8FVCSY9nikQ2eUPRXZybyKJqKSPgkc0a7beP4OvChnjQn71nlwmLjQBWy
WCVWG5kdWQyqpkrBIBXEx6KgKrQonMscJHW49uTYgU9hhAOZytlWhaRtcag6rrEqe0cErTOUWsL0
5GTz2HUYBlXNx/oXms5qNDBfhK7rM/CljRkqkTF9mAFfrZ2FFbDPuo1BQYexHrct0kXvMZPhi3Rz
wDXsrGyVsOSowd0yy4lB0mkWCSouttQC0MGl7z7+8uaHD6J4gyvsXmHrHjtX1lvsIygIU+VSrTuL
yrt4Svgrzic4Y9By0ajKdBgCyA4611fYMd+cGgwo0zyEgzH5Cm8GrnlGvg7CVH9MpsLhb8F5dXUA
pg66AuzYGYkCMsfk54Gj7wp7iPKT/R/x0IS3GxP5yJ9eOQIbwVkquwvqyDh4P5He6KhgdWSW8jVD
oJcnWcpSdIw/vf2rpD4AHpApDLUg5Q0dwdE9TDW0m6t33k8qfJJOQZVGgKdzjbUDvp2LQ8+8oZWJ
oleU79+JHDOw4pjZ4NHxXcp19bQG6zytrKtqShmrPFvRYT1UTgfB0hXoVrztELZxQtVw6oihI5+H
KfdoqMSmnMyYC1iVOD+a928sefD4Ao7ulm0TT9dytZwbdVKUfLGy/VEXq20GF/2G9hK3VFctgF/a
ho+OD7C2pV8YLJ0iZSUNhRJBeHDt3UnhnXX1xt6Twzbib/MTD+C6p1FnKpwG5239nE+z1Hjz6d13
33HWYyMis3CdlPIDs2MNJIxDeLIvm69rO5ua1vjr7QTB+PrKZ1dgbwWTgxvWzUBMbcM3x5geR0KC
i1/6I0yQZyFshKA2UWzzTBPlJRXIyz0JeSLJeCcVGkX4pFXsA77y8dWbdw3xqBg9uI94YAvI0Ueb
fIpcCPs/Xr2l/96Pwf4yj6efH+BJYI3A9nrrZtbTy8NtW+3SsWlDBfpG3c2GUpTA9mp9mi2XYIsL
D5kDSmCarEv67uYbbsxOd7K437dkMf7f/+fF73hbM4PvCdNGnXB947wfjOf7BXVZLQa6BpdVoCOY
t4PH1f4dx9mlQuBV35Hpb16g+gWyNy/c6oVt1t+D+js6/WhxGdPiKATyUEqt6b+OhwYSGRwXeVoM
ZH1ZZPL/uWH91q2leu+5jU+szSebFx7efBJsPjE3L2qluLcaT3anmxfO8XO2f4X9zZ9v/src/HJb
kKatUnazv/BZEB7oJ3Jc6+Kljkz3aFoj//iDmt9BcDzNN5JACB9NfMfvvlhYDGearR723m7WDpm0
3XGkLUujfp7n8nluml0m/GXMc3iG42d561rX28WMhxFzuFyRnPWW6HJbcl4Rg+kL15ShLCulPYsh
cIbh6L49hOHMTPuiJ85GXVFF2ZUZHPOYMvjKdK63Bblkitti4VqnENtw3m9G8sdj01elY50Ktky4
XWaMdYEzZk+aGmZMB6a2VGexHg9Hr0xTOYtKpT9QF27SEyvrQV+wFzBDzcemoircNIfhpqhKfNud
Zsd17Qj09e+1h+flr1X+JP/C8tHYr7BvVVH5l39s+Em8YfjREtlkW85jUS5xHJSyDWGbw6yIz9P2
VNL280flNq3V4om2+nsQgXxRZuej1oxQLxiAG63dmkx/ZIZQa6MK5Wnlhz8AP+Tu5VF4UZXcaJQX
PjnDmEUbu1Tb6drFfUbW29acYxsPwFJ5K6Mz6Jd5Pv2CownOseZoyVFX6aqIbFUWrUhaGCm5M+7i
NMruwNu1ltOxPWiiYP+cSqXUQAUilmHCqimRyBBVRm+LAbZ1aBW/D7su8un14TUwYouP9e5YeNqJ
px+yuNSyTn2ru4ojuFWKrwddVX92o6yGpUulzlpDBTv2ODLEcOY/OrMM8bMM1WVowT26gzPL0HqW
oboMbXgeumeWof0sQ3UZOqAM8bll6DzLUF2G7mXuh+6zDNVl6MH74bll6D3LUF2GPizDc58t/GcZ
qsswuEy7NPhiZKjQn5x1T+TR1rx/Yk5mlK0LhXxwO5A707q1Rt+6PNiwvt61dKwiIurRsTSdup9j
9bl5Zb39mo5TdAMCZNRDyTvICobk6X2dY5ut2BwBHd92SzWSIZh6NKwGcyOSPsDsUjKKFIacZvtr
h7zwmx1YekAlq0cUF7zy225QApfSNZuj11JHpJIrTolHabMSLrsFFpZ6w46jB7ouZqreacrzTc1a
vC8d1k/9gY4jZ+Xu4qgw6OJe5S3cTAh9TVhm/1Gt0zi6eVm9eTlS5dMerau2xU833XPY6Pnrl5fR
W6u9OqtjBgPpnvSO61nxevWkOpfinT7A8RUPVDfPfla3jh25LnmRU1M0T6ui0VHXVQ/BIH/T06xp
O9hTdK0XWxsV4lytHFTrwuigy56zrOXoCb0bheXRHe3MBatbY/S8Ag62xliuprMOC/jY6048yaKH
LiVDT5fmppTVrvfcUekttfCqTiXLXEW+VCnPizCN6IgkpbMtSx4B72osNaWDR45GHu3qcBkm3NrS
8bQzp1iFqWJtQETP4G9ZJEzDRxHYA7EBd2hQPRIbGjywBuIBGHdg2/Zo86RZpXSPEVcEX/nmVegb
Bmt4t6nocH9/DxQmPeiH1wgmMzUysLZPJHOppVxKbyU6aAvRZRerukK8BswOCw3EKUElfvNxcKrB
pqEUyupSLLI3m7bWF7deNWsUHohV9lnmnjZWDTXzVJogOchV5JKOJkieJmtvW1eVcBufVxZipp9g
FXZ1T5p9Y3izGTn3D/+ZJOHixZF1TN/sAny7dPfoww94rdW+rUsOB1vy8R+PqVfKwPd6UC8oZy/P
nvC0aMOVNY3YtRzZqgNwZLLYfdN/GUYXrejAF56n8yCYJHaLX0oPW6QTRK0QfVXdYVaXcfEaN5n+
sMwT9hE6D/PUOWdQjv2+zsoGw+xhGSawY5zHoG2MZ52uyjvwK8lSgWPOGpBVws0KsVReCz9/6ffl
j41mlwOtT2nGJjcpjDKcGEUSFgt+twoXGvLtgVRqO4xKt7iP9MoMrk9erV7wP60e0KlWfw8WwrWZ
vHFYhrqs7Z3q0XfgEB9oRyvbG9TK3pjYdMXGjSjFQZkh6EVlnZ0ZmDHDG5cZVpcSo2Mww+LM4D/w
ABWxBuEKfPcgd3T5g2znnRYRlWsH/wSmSC7FWzTE7+CrSUlubD3NfVdUpT6hSqNcZXm533R415MW
YkygZG36epvjGtUox02+/UYWV/3NNvSaZeVTo2DFdHy2jbOuBkxfTEiS3X3TLQzbPU3GR/6wOtD2
U/3+5yyJpw97bC/CW1Iz9tVqsToCN3pIuQ2ZC1yIHJjmQKoNV/oOhtfnHb1UhWvt/jJVWil//wmq
tKbVem+ZfhvPHUlzE+Rr37+a/ZjYGODg9X9+uvJRa/y6NxxXGk0vDeRO4tJYp7GwBabtDsQzIyLA
EFQZuTZNVsGsnZ8+GpGfXbonj6B1KnzyguH4BLPFPgdbsHnlB/Mtd6ghxcPSxlahMIq494cUxiSc
fuavu3Q96TH9dkM4vn23PtyG+deTbL4urqz311fOu+u9KoFVdbu3UoZ5QzIsytbMVuBn2YvlGWtm
dUE8k1cquwSGmeYQDAu6MqygpmYfJQtGUTLv/DxrLbNoeQMxqsmdU8I3F1cmkrdUDYbg1W2WrEtB
i1nLHY1T2/D2O/oI8t+s+Sz9Ef12uBFuQ7FY2ioPg9lF8gkZh0ztjJPWrrSDi1Sw4xKVcp7pn5hx
WsTUvK6bQoMHIgcPybpdkMU7HmTB+0HTb/c8DrTWouonL8QdpP/LMFjDLx5SumluEV5Zk3rV2/SV
sCZd3AOCNtOONbA04DjelpAXbdI4Umd0yBaRLHZt18w/6mzX3YePMBvx4OtBU1FZqMtsLP3E+rem
llK25ohL7LaMrfS4irWzgAes5iSKc8H9h+WfxIYdyduHrhar1+s82YShstNnssiKUiUMVdvWJGKr
ZeI/GBe4lfZvfH+aHvCA3Nbufq6qWasjItf2hqFS3tjMdcYkcRhBgoQF7oiEqURTY/MkwqSLlBOc
jvfklioVhl7iUnWiIrBuKIKrDqyPPSDgtkXLNWvR8jX9F37Nfvp13Zrl+o9dzoUd6IeDWZAzGP2W
Iv30zHfMAnm1qRNHRcE297jb4LTfioZTYRCmw7k83nBMt/fqLh33K77CGM7rmWVZ5YhtnvA66CJ9
2nG7NeSc7TEKQoJkpJSfeypWPt1uSZLGUabmBXuXW1Yt2V1yu/YmUXPuIMvTziveYv3gyhNevy1/
oO1NeO3actNKvzlWy1UrHoFd4HLvyJ3MA7GLM8WaVt9ZH1X23a2/s+6n/H1Qvzfr73b9d6T+Oaq/
189h7VP3/37z+6x3Kv8+q7479XvH2v+OXWwe/h4ODse5+fz08XZoItNb2nYHD89Yk+PlVSWGivnb
r1QAa9OJqq+If/X5V49/tXe/Q2z+CeZfA/5J9drhr0Pjau1HhP6xF7IfOzNzRj9BKLxaux6e0q+O
NaGfo9nkpdz0xGgEWTlwcQI0sp3+LJZDsRjFOs+zeVgSYxXGsH9Pnl48gJD4xvLetyir379HH1pC
U8ZYaTrcj3w528oY24kzjJDDabkOE55tHIIytr3RdP/6q6+uzW/M66+++eraAO9Sji0qeximTMMk
4XFH8DHOfZKuFdSBT0xrBJlUXsvOhrRc131zFL12f/MSvahv49DLEzhIv1iohY0qWdk92Ijhvnfm
6Gxs4xpj7gHjcBvjzGEYNwvT6YM0PFfeZr4n9w55dsW3FYVVy0PDcCNOb8MkjoxpkrHwLNEFcEuL
ak0axSJJq3gG+m2yuzfvs7J1SWLvw8ht4HIMJ7VjecsBrdq16ReM5KplDcORapDtwWzyqnsaGdJe
whm3lix62RappRJH0IObrOIS0zFBeZsxts96bn711VeMEY1puvUfs6F++82uAhDbAdpD3VTyDTXw
D77hsJ2L5V8VtlUFbikEDJrmKGyE90931AndZFUjy9mzh+VGW/S8I83LoMPVzpHuRdkUlAur2LS4
MzvlXdXRqKx82acQINBQXcpXldY9PfiaZjIVxaPytYd+timnOywTpUF9LbYMHtGWMUeyZbqzkpVG
L+Nbdlm4IIJ61fJqIvoY+jVlJ8v/2LHyynqjTyfRoIwsWDFjFkhUffr7muRwbXRr5MWzXgiX4cOE
fB2F6Zzk2br4mg/w64Kf41qVUMkPpYF3sBPfHJdhh3fnbbxRcmV2Z82ajXUZp2FJIlHtRBQ8Hsvm
tcB2frFfNa+xJ1sj8hg81dkYPSbr0bp4LsOZIi3RbRfC5TbmwoWVB97JL+HM08NQf6nlvGOdzr1y
kRNilPGSFHsFDyKFChItoaiWThc1i1Sq7z9VrtfMgXiVh3HCPNR1jWN4qTSH5MueA0fso679XGao
6RpOpUitDn5aXU7b1ihuf/Zzlv+1yVs8ibnX11Wao3R+j8Rju0tYoqX1svz6mv6nSzXxOGxz4MJ5
1rmn+v0N+uqR/F/zqoR9ZxzRG3/DJvZhX/14W+D19bYNj66pM9Iu2cVJNc6ifv0V00h9a5Grm6Ed
WmNpUrowDHep0PuvV+FRirQm5imdDlSYdzs3wjRehrCP2fOG3+luWQLL/TJJi2/v6UT4vD0X3N3d
vbqzXmX5/BoFQXDNf1pb/jVbp3E+TXgFwhtkmrvehjVJrGDhpv3gj6yZIn/Et9SGn236KRZ0DG93
jbyurDe7OylzQuZxemOyMokkjW4or9nLWZwkNzN6DvgP2eumGB7kqh/09WL1wVcfEsKm99uHTyQh
U8qZm3qQjZRuR59ozz03ppwbhL3YnPz++X2c/pWL4OYlvwQsyX15zUb3zSYW8GX1J1vtr97wJ3WK
DbHb6biL0yi7q5Lf2bKcras29wV9lUQGlaYRFgUdHphNhANNw6AvDapelInG5GFFEY1JPHdgN7tc
dvYAEeUT+8qZHQVzv9jUmGMDlXazU0lt7sYj1o3CqHzTYPyO4/iqzFJJdZYOgFX6TEBXPjY9pVNL
JxYUv8WCy1dzdDXxZxI1KRbxrPw3He1ourLKs5IuuHGWGis6BiYj2DPuyltNnaglbQnx5sAkgt4W
3/H1oEqU4mDnqyLsFiSMqIGJxyxovC1ZLKxq3K1MsWMPKzfQq+Or1CUdTG7Ws9za5QZ6ijz/nPPN
/gLldmJZ8JSyrVhPF0eVuXk+uttlhS6S6xXTB362X6f8dlhWqAR1mtkUZUeDEM8QdtJE2OyLugXh
8GVmsFPbERurAiUdgWYkp/aNJWjgo1LD8/i51UjDfE5KI8pYPVhq1pP7uCiPRW/5/dmzHX8ljwZr
UHfW7LSXc92owV5N5/GxTeP3Zb+ljf0iBlkCBlkXwyCniXFLcrrqGvSlUXVtiKDi/laHh9Plni6n
19vkNCPMCU9VIxFd941plvNpx1e2+7L7riPA3TFPcQQGPSuv1pLFBisVkNA2nFmcF5LRBCodi/WN
hm6SeSQeja/kltc2GrovZqlkOMhXqtOlazzAfAy8Z/xn/Gf8Z/xn/Gf8Z3wl/Ns5RZwuGMaSDsQo
4v8IfOGu6XZ7/o62iCThwzsO930WRh2PfFKIeU5I+un3NWXeK/qTY3vStr8MHrndeGTRE2zHxwMc
ogfkFVVZuFkDVkqTgIAWLLXAiKPKcbEiaVRdntTkgccaB/VlGrsTXRfEiMisMLhLpqleVleaSnrK
NMIoW5U/sqI201zQzSgwfR10MDhg+GqunaOnr/P4OiyKeM4cmlQeXCgJCblQhG2ZsNL5FoDaEbIP
moSpKAXfVoqpVCCK3eu20sXuxTuhTYvCYDfbgCvAc+y+vNo+nb44XrKsfgM2ZncR8FilxDzZYzHw
UAt3fOg6Tx6MSR5SXlQ9iwXK4jhmX1ZzJzv9iNd//v3m//5/mmioWi1HVb4seEuMLMfv9mx+JzAl
q/J6ldPX19ucpNdV/wXkOX6zGK/bYwont2RbOGObGggT5QfdYNblzOezF3ys7Tt6eHX1Hl359tV7
8+qtyb8G/Otbzr2P3tUH5+pDcHP14d3Vhw/0VYd+UsejuCOTMJ8uKMOup3lG50uWx3NqIRblQ0KK
BSGleANpi/EWQ+00fFvJfA8RmKyoF2XshsdYUc2gNpB8b0eoywoPUiYABRYia3DE1+gMmPgMmNYZ
MO0zYDpnwHT1YM7omfN6Vh9MDfbOuFvECTEYpGArRSbC3cGKJLszwgVZbiGa512EbaX8I09AD/3C
Hk7yDYaxjfgEbW/X7gQ2T+gzzFeYSiyMfo7vSVK8DaM3+byAw2xwX5St0Zelsyxfhul0X1t+K4yN
whwW7Oa3l56pC51++jmmesJ+WCEuwjwlRQGVCfd1ws6TfzO8f8+ohh5yYZnl5Hq2Tnn8RaEmENv3
rfEGt05jcC91Rx9EU0oBUrIvdQ2ijBOoG4OrdMLyxYMoyf13zEmB3//51x++B+egbfaDGGEO+ron
QztbEAqUFEDO+0/rSRv7lZbAp8f+ds4g7CqdhpqjK7LpZ1JyU6G4XjxM4ioVhzmWyS1LvVqEaUQ/
gTc+XZgTaqAwoGIRfpZ4udyOIoABi/WER91lU1aXcK8+Ibz/qjQS7YZNliv44G4Hg2GmWWqExTSO
QcH6WBdunIb5g1E+rASBE9qA8uwzSQ12tu8eE6EEtJ6xuJ/ozTJb0+kRzljEPKubSticmawLuOaO
b/mDDwAExkrWqQrwNInZgiCEQmoZZGpQjJ8TQhdFwhNoYJm6WuF42Xi6CNGjUlhkKcxNx9GKyddY
gfNCBSlQRqLzPQ1vY96tICV3BnPWsB0G3k6UEilVwPe23M0w1ik/kMbCiCHX1oFe7Vv/XoarV+V9
owCw0jXDSdytyWIKRNV2Soz5FOat5wwEXUUkUhuCrUSrMBeplm2OJV3VIXmOOwxP4Kml5FxVR6vW
C6PMMp61BWMqXSCoY65Tdhey/QU4ZBPrhIRbPDjalDlbUrO7KEi0tcXEEY5KEbZKqHt+cthZZevS
zIjMErb4VhODkWuw+j5Zms1mggzQYBDoTY1yOh3p2xK27RH2/UHQpahYrW7n6agFKY3JjBqjiSB1
AWmC5bd8/Ko7zQxyX5K0EGyygalLvFsY+OCiUvbYMhVwKCvnLN+cTtHarufMBVGxZwf6YdtXBsfT
jyqmkm4lGplL9TQh6bxcFIKlyNSEtXfUXrA4MhY2k9PPsiX3w4Lgjn5wkucZ7FhQKf9+ItgsjBNj
8rCbk0Wd0gbbI95gA1iG95WU4ZXIxsMhx8UyLKeLnRdAzAGE3OFkwFxcRjhll+WyIZimPewQlHRh
SGXko1CRhmmZgw2CblStsvBcFXzUFZ+u62md/CoRhIqTuccYBPMABUOirlfznBIsJRsPNgBqcbMw
SbrHsYLm8IKkcjTrCH+XsyIXCsrn6BpCWa6yNHmgCpd9jglQQgENiPV6mpAwb1SmwLqmFo9AohC3
lc3CzRfYJFTJV1OErBtHUcMsTtdCj1KAXc2IVZVUQ7KVWqalGXMZFp+39qDBst3pwSK/hbXW93TD
F+vJ7r5iQc9RUypv2FxzVOLZLdwNvIAvgzxNiLzyTaul76k4sdTxNmRKViGVKwQlwOU6KeNVQva2
PZilKk7K0xDbpIiwpQuTbm57aIITjco6ZCmB8TSD7maDEsim6QefeCCWim9XCWslcCQqBZ0oIeRk
SljbjTDPw4fqUgk8yNuWoxlxkmQT2Geg4hJRhOJeaOFNsloQmiLUrvzADlRyvWEFzqOC3kRFKMRJ
KKYJqRLH9lbma4KtGOSZjm6sbMWsiqKHPaECV1Cb++DmWH5fYatcdJ4ALJ/wyLGCgeBuY3IHQrq2
VtayBYbytK4iJHPv21g7MKw7NtaJI4wYQaa21ZoDZZPfWG5pmdWVCOkeO/0MHym06qiS8FysYnLa
qpjlIs9g9USmTiBYEVVa+ypCsBOJOEzDU9oD1JBKQ2rfWSphBGpQ8ZKbr2UuclBj29eKBc8uXxtB
e8FYAuenLno299LGKnwQ7TGBkjmkgibpV4Is09WGcnAWF9zNONrQVmGcE3YIzvOMhdAUPPN+7/Yf
jm5zhx1AvUbCPjNt2Hkiz39wlI6pqlD02LgtXy/MplWKBFaGrOstCkrpqUxDRxGJXwxPqSBZsqbg
LtpUCTQ9DZGbC+KGgMh0tRM5Chjd6qj6pzxamUUJUiFuncyds+SVoLcf1lHSVQVAuESzibWDbmob
hNMyvhVk/TpKlqAK7n9IntWOVkNUHw5hpcVOicws/0zyQj0q07ewZujjuLbjQTTTT7BK/H0H8plm
b21hoTvDc5yBOQCMo8EEz/GH4gGd0mz7qz7vvt/15EAN38yAMpV8/Z0ol5CMBwEFZ5gZ/P/tXVtv
27i2fj+/Yr+0GyiqRqLuAwRzMm2KDnZnUrQd7I3zMBuKTMeaypIhyYkzv/6QlO9akiiJkmWHQJo6
jqNv3UgukuvSr3SLMjUtnpopjTC5T8H57sfasQsTUTQpRxU9pIlntRvCdEw9Rz5ZNlvnZbQUQBkZ
BREgneus224mgpo7CYen7UYjzAPO99GBdFckHpzrkN/hup5txzVEQlHXfPN3G9bLzuQcri1vN54Z
dtFZULnE7TSA5jnYdbgCDZxWDBfwi8bNlR3Uiemy42WHp3OrIMYZDUXmUT/Ml9q2avXLMWzYri6c
y32/Tyk/meOq49aS4UPwom4NrrP9JthrxOZhulxVuruJoYYoYNxznWe0EE9+5wkmkHGdSHUSw/rC
tfyq1RQ+FkZMQ1HtDpLcS+4l95J7yb3kXq66UgNSA5J7yb3kXnIvuZfrjtSA5J7vmKvi0JOnRFQB
EjxZJRhxkuXdVcGTRbMLVkGah3DFu19auqaiGnk7HGUSsMppUXaXxxQXzajFsWGxeykr8L9Mwmua
AfrT1a4s+k/kz1QhxHJ2e2kpp/yXGnQprfUMioCrQUsIKO3KS9uyelGhM6vRI1fPUeatblmhi6I4
xQ3fdfYisTr4UtsWhVTVd9hEukBBbpEAM0TmKQfqtk3xOupP5NBkLTU3DTDAeELHFmKuqxllJF3E
UYqB3jKaLVCVea42a1n1MyuwirPrH3HgKElhAtb7gS34C+7ZyPAYpFqCmjDjYBG8eUFV1rGG/nhN
W5i4H1lrk7ypicO+I/bdZO8ft4owVREUpcv7Wq3qXPViSqDWT5/E/pLWTSAv5h6NTlp3eYdvW7vj
1Tpehm2/NKek61Lt8kv8LrotK0LlcMVtu63cAlziEPDUtz6G7EvXeTocoOEqx7ydOAAoZvqou7Jr
HCOuFKFqiCqPSEfGKRUqxFGp5j7/L1fk73H2fUamBzjtw1Xbg2WzIFVoqXwyLWPiVc/iZThRopi4
SnSiAIr1my0Ev5qHVMAJJmtdml3957fPn8iPX/Mfb1e0SlFZwWSHK0O0Gm+nviCaBlGQ0TY68aJd
o0+JJbEklsSSWBLrArG8e+I+lufDOVzZBNUQMxyGMfVvwgnYY04QD2tfxqe9f0KlLKKV78CCVz+Y
tkZIU/J7YBfNoRyjAWMT8k4SP2+PML6XJJBaPNV1aoCpj3vY64H5grrRnSWfyC3dVqXzQtqGMCSu
J3FGiXOd0WTcPLk7ns+90toRFVunPQLuvnz/9e73bxUKLCeHbRXyInbp9dtnYlDh25XCOtK+fYXU
t2/fPuc/vc4Lq2y2FFsBsS1F4QjH5CS92u4GJttAg0l8jrNZPCGkv/3yx/e3RAqN6HRsTjrJw09F
I88Gp+EgYvnU+Q41VTyaBwgfgPGcA3Db4HZP7MdJWrOx5pX0vZcG/lredDo4Wi84l7zRsfCajDzy
BZrVoekcglb93a74RXqdJUt8vmI6mYREzMQnGwXnRHxb7Q7PNK2EEnlz/NPCS1Pisk7+92WJYRrH
BP7+JPTW+w5FmrfvkE9Pw+BhlrGhvqb8ZNb85rQimJIp7/QyqPrMxkNdKXkX68LWqR8TvzRZDbrS
H7q15Q8pbh5Fk1lEYP5tr351SUkqtzlo42uplj5VdwWcjNIGo7+eRl67lTSOXdfdIdldsnkWchE8
me2vTEe/yheh9TqjTLzMK7vm12hgRb8KqyQO0Kapn0pSZRVSxiUfnkgYU20tn7LDJgdVHsXVILYf
2T3yuvUZFdYiYxMSw1r10CZMFV3HuEpFH1O2P/PQCtEZni9Y7AabgOgLulO93pL1nlL16x5Rvzx/
ykkq+koKp3Ian+fmAqsS1YDUNzrlHYRyZEjBn4Ry3Tnl1JDfGMBTA08kZg9Tw285SWc6NXSm/mQW
Wkr5eUwNnQX/n99uv3+6+zAy6oedHrJgjuMlXP7Z4umMIGQ++L6m4uRTwEYcvdIqYMB3orNmeOtn
JFR9NELlGra6oGFbEq+sNyeh1XDtoCYxJtUTcd1tqCFh3CNxcMoMvU9zZvcRYA8Ql1Mgrc8sgFts
7v16W35hVo2eWR2QywmOAjzhmqVU0+p3qshpGZx5uC2X1Z+OB+fzgSwPrMt3RHaS5RUsXEfrV8EQ
HYdSMGnsKU87oTZi2KHWHTy6NQePnSVBSaHSKBvuPa57ddCmM4z04ZZAxkUzTkb+cz7Dwuc4pq2d
lP8T23y9+I3m4l/EaWHWYR9hnaKeF/Bip1Vf8O0R0lIaMUtfTFnaZLpc0ARccE3oSSpPsyDDNBpZ
WX9sEyECN2dwOYXx5e5bY7ssJwW4iLL6F0eeGVElD82wdE6BtHAPKmhp6TI0EsjOFWTL4/ZGt9RX
0lxT7UMaO0LWTuoqTaZsM0R2Ahm+ZtveQjBNX6O2jppcTMd7MeMUgvFjOsdl+NhUrL5NJb+hqDIV
2tDnxZtKLqaXbSqHyx5oKrb+gk3lpVrHLt+ifHem0c42DcThx/GPAB90uWPvKMssCGk1oW1Fpeky
8qlbdj3BlO/3+R8W4HsGJwb4MY5z8MKoEGaJ6/OmZTYrhKyS93JfJI9SCyY0pP+PtLC8KbxeYeVm
pSMhhqr9A+lnR0lPljnEwJTjsv24lEPh/IfCejdWsUCpqtocnvNCr5YsunYv05ZTdf26EcWKv0yz
eL6JVYSKFohwVjiAjP6VXKZj29Klis9bxYfHTUoYP+HE9+Cey66u978HKCWoL/mLoKRHBXGeP9mG
LQ8VXvb5E+fxk+UiaSkv+/iJ8/TJsi15+nS+xmE2MY4ELzABnLBbwsNgmLKSZppac1Nr9hUg8nJA
hWt5fZnGKoPdx5PnUt+eFpvmY7llqaotCaA/1YO0eWB7l3fJVlmTshYra7xaxNUX2I7r9sF5JRkD
iCH1osl9vMKbzlDlgUamqnUGLxUDTEZFtyrLdYamBphyuQKHu+ljvdBT84iXGfk/nPheAneN5yn4
L0wmJYRV6kw9PX2n1CJYHZCntZFooVTpaHhyelLJkig+Cf7Ok0HLk8TNo5nk5uDv8sTWTkLYuxfY
vdxeBIBwxxR2FsZ9EHnJs7JSaKE1IvZpEMHm6NimQP0j03pHoI93Z2b3/ch9Ev/AkULerWw2ZQqd
ctagW8AVEILRGS5Pz9pemEyzXdtIyBlEri6QQ1aidp0hthm1pSUulHHyap2KV4uD1/gRJ0kwgQ/M
Na6NusVdVGwRPgM2ajk9g+iqIUBep8cYRFiDgBgaugxpDcHIBZmW9Q/33Bgh0n+3kLOJnE3kbDK+
2cSRs0nuy82W0Q927RE/JHSHix9pahReLbCf4clnHD1k8CUIskWyt6EjS7wonYLBIJrRndswZgeU
0QQ+GTQMkavMPppSek6hcVV2q+ErjiLM4uLyfpbllxumJpBBAc2FJJbEklgSS2JJrAvEWge2w3nE
brO1uCa9mmbX07DiHJIe/P3sh9hLrrVOB4CNUU+KpqknEWlDWNBSkph43+tazAc3PvBdm1YdmMPt
o+7DLvLA9MP7plLHVbcs8SRE8RHzh6PyILUkI88ZDDnvId4L8suC9WfY/6FsJkZgm+dIbi/YpITO
k+sssTSLE+8BnqTUbUdHsazu1oW8zQ28MCBN/BR5hFyG2LMd/5y/vv73v5TVLDnSRFkQs1TBy1ZB
r+BnoAX9xHOR0Mm34DBBUSuOaUsn8QjZ7htZGQyWI9XbPpmGz0nOdX5iTR6Q1K3U7bnp9qXA1i+6
dqNFd68YyyKJ5wuwC4RlieG3OuTX0Exd60fQrYCFinqXCUi7hYKFgjVOVuuzlyqQgUnKEG/LHJhi
pJvSA/d19P42Z4gl5iI4zsAyhXDbKUqDF+RvnMRKmAdNFKGUvkVYUq/U6REXLmVsdbeWCc48fxZE
D/kJNGwdLlevG17tYX8WK7QPJ7RIO6JckhoUwXIDuw67ukCp5YA0g7o0Fccyu7MV+59jGtL+sTSQ
xtBVkWwdALKmpuABo26J4G05p2FXk3ju5ft5+MJFawRVc7vFamNTY4TKgXdXGMstwdtiMsskLJng
3YZs8eRCsFph7MLu/159fJ8E/uw4EGqckI6EBAwH9gu4yqy15e7VB/WV+/HVB+2Vo9LXv9yy74h9
N/fev2Hf1eP7WUfSdiLa8gBWWkIdRzhRHmCnSNf1zkjrtKv9bgJARIIghjIvKdmGIL5I3BqQlY/z
pgQghI5cgUaz7yVDbb+6M5MlnrLw6MKdlZXx58sPdUSspnZnjnIXmKYTKr4X+TikpWq8+ziBLUI1
TIHq2gPP4jU+WBVRF8XoMmJojMGKOjxItQSyefgLhfhhORkgq4ZIZBxNQpym5Pdgsb8aIJ18rwSi
YUwTL3ogo26ZVra2sGy3EVrvwWE8vN2E4df1ZvRTOW+G1pC3apVpyNRK0iJE8HTIEHizZjgaB5Jb
iURtgThakyDJswfgud90GwF9ur35UHkOk8P9Ny9Fl99YEifvutKO1p+mH35N3cNrXdUOojU1LmNy
OdV7iHi8DxulOFDT4NXLFod+IA79pYvDPhCH3VAcNVRWyqO74INoGt9FX9YZarfUHW7rDnBg/UXE
XVFkxa2vw8EBQrxSj8y4j5hVc4aPs+z6I/cWSMVFGDmupurdRUd9JdqmNVvnENLQenjvZbdYuf5K
FXryquysjv4485KI2MS7v9JC1zIkHCXBtGZoEYu4AmYjqBq3ab2jLNwmGv/Q6/fHHGp6KOsc79iW
wFkyB9q+waYu8t5BER3g3o7W9ekdl6nN7h83SGlVJHpb69Mio9UUCBF3urzPl4w4eS7RNbOko0uh
/JMD8g9ofgw0nKcVrL2D8qYUtuNYolBa7uPO/9ngtC0fDvWSeenP/nD7+fb7rXw8/25CPvzf//p4
d/fLzVcJUArw7fbm6/tPZ/V4TR3q8VWOAevhopT1t0E2UkVBdWZD/Fq19/AP8a/ZKRQgpQI+GzrX
Ng19NFI/12f3ai1n/PA/5LMLY78HX+9iHi/e37uIh/fj510UwHm7kifwVCPvMXjIK46ks3gZVoS3
OMjtDLfXhnIHXBFjpXaHjPBTGESYBpbsYhuDkr44tkAO8zi1TdwH0G7J0M4MLVqG4TYh6DjQw7K6
exxH0folUFp3LcVRHuSEy241bZ4rH27ldI00QnzcbKqJ5heBXpYlwf0yK6mD5TimAOC87mW5GM2K
pke1j++vkRkHZywUrplELU0QLrGX9W1u3tKgdE7WXJvDTpHWApNpFsbkGYA1mAKrwUksiSWxJJbE
klgXiQWvz6VNjiyrL5eApYuvPwInrFhcTqU0GYklsSSWxJJYEqv7Or0X/g0e3Drd9+vxAkd5nCPr
QFjqfNg8Ee01WJ3Ou0/47HVJH7zy/EyZexkrBwK6SYZVeSrGa18gYEVvXl011SbAxbD8zTuEGCAg
HyHHFvR8WqelCKDpAkcn2EKeJrDn6T65cK/fFGqJuoPT8Aqpb8g/8jUGYlR3DDKhf/tKv3mFPpKv
MPa9kNb2Ie8QCHUcOjt3EnOTo1+qOxrbG7tQD+h7enpC70ap+bGa5Ig1Oz0PwzuLsTFe4kZI2dhn
ucK6oX8cPYnoDEg8Dyr18ZNongGR9L/xS/I93Yq0IhMJJZNSsCXz8937m8+f7r597zI/9kifkPlb
LH3KCGh4MwZDeqWOwp7/+eafYxAGQm/IvzHYxkjmmTcH8+H4KBrh1PKml5MP4TS+PwMyyeQ0dhJp
SPAZSPKAPrzy5osQv4twNhIJjoCMsSkJ2LEdPp68sQUgrxvfhZwbg1JBzRlcY+ZZEcpB4w1aJLO0
bovpVN+ToS5h67lwj351QClUy1btWxhlsjBM1Dmqfb+8/1MeWf8UZDNlgkPvOa/VQwum0Wyga/Sa
vXutFVcOZL4orbDaxhU2qnFKoybV5qzEUW6l+llKQ28gjZTWaOaavnhy+Wug+5CI4fYskVLr4KkU
eGkCqZk+DKMR9mUMm+o5RLMuXSRPM7LQUr+O+l6EFriNFKqO4tH56/UCfQYMIc+G+AkWijeZ0HQ9
FkQEhsJpei+i3PNq4bA41A8u/T2cjGiqRi+IOyHjNHfiaOlL1kAJJMS2+6cDxFX7GTQJnsePHjxw
bFXrBbNawpqld19G2MR4H8b3B41VypcPZBh2X6AZSy8pRP9pyNF6nJ+P9rwF/9I4HTZyJbbElth9
Ytsvd3zz+WNCUXV9CNT9c8ufrq62Mv4JuJUwdL2v9ay0Raxr82AaPS1oJ8RGjsSW2BK7T2z75Y7v
qqWlJ1QdDYHabEFDjZRQuqAddNqEjs240gtrJMDX1NMSwxE7triPl9HES57hSnCGORBPVneeEppg
Ssyi5HDAEQCwa4yVQwFtXrT6Dh/aENhAP/e+sCd46i3DrHEzeTFMo3qBoyGwSwSOzkvg3uSZdery
Z7Rlp+JFFZUwTc1sMbc+6f4VZxst20SuSITyFlqWSGNlp+7xw2OhfZZ5LiCHVlDS7k4TAJQ3izq8
4EbwQavjNscrtjLctjBc+w7b8B3mO1QNxEX4/G51QBdv7YIORCF01R2QS+qVV4LI1dq40WMTf3Oq
7CHFD4Z/afb5St4cWvJmC8mzYh6TeHkfwt1JkKs3R24s/4o/6Fs3jQkeVDWwTkxrAJ28WLlnSbCY
BxEcj6qZajc2aU/2DM8XyjQIc3+Wvoi8Ob7eALNuscu0RWkaziln05f4Nc+I3IrjuHSR3U3j+88l
FM3nxNu+FsD5qSReZdBS4Ccycb2bxHUp8YYmLgU+tImjbhJHUuINTVwKXKTAN12k5Mo5rmlF6yZx
TUq84bQiBT78tCJlLveccs8pBS73nHLPKQUu95xyzymdQ7lyyj2n3HNKgcs959kYOc+1bklYlX2u
N+nWwDfpVo3IcZQlHo109iIfg5nRFlIF4ExxguGOtCoyBDz/sJX2Bq9l1Y5RgbHuPTgi01BJRxrO
gHeLv/KDssymitM2iL8J0FMQTeKnVNGQqQF4jgC4vG38RoBgnKauc3VFtoZKgzgrIF0bCMhyhVsD
WGYECZDc3hxBQ1SxP4sVL+13XOWsTZN4rizixXIBzxUOT2y6XTeEF3GU4jxdNg3+xrAc7eZIlaHi
OQO6bVjiWCCuTvaseEniPd8vp1N4jUK6JQRyzdrfOIkV4lQ9ZLMjL4LXkbK5MzEgT8UQg7EWYNVQ
clVdODfFqkSaLRoEASiOaBB9CBBjGJCiGZtIvFJWgHMqXitDoJiAWrgqhfGisJVGiWLFn3kJ2dTB
dRfFTQN/pXHEEq92eTjg+uM4IrlkiwSFPp6wu4OktIE2WxeU8oXBajj1NPEVvNQPAsjfcsTwNvEy
T3kM8BPImK6eLWPUEMuy/2yuzSYHyDKa4GkQ4QkzeloHHIJzXdSLGFu2QD0BECzAJPBC4jYqk9hf
zks63xJX1RqKJx0JYCojQyp6IL7dMl2Xg0xhZ9IW6RTlW6cNHsCaIWAuDGjN/cN0iwmOAmL9rHFx
Wp2Ip6v6UDSA8Kim2vIO+O7L91/vfv/W0KPmHRVORwYrMouM/uHhk1hX6wV5kcQPrBhoObZuqdWF
qBzemSFHTmmz72NcMp5+ZnU8jl1o3XEs1RkCv9BHWTXMmlbQbgODbgbOM0+61dqeE3kSr3QZ/UiV
rfuY4RU4dl1D64y443UfGzqF0TimKb06UZZ5voo3zXCiRDh7ipMfCk6SGHQfXR6XRy/NxN48nwyg
ZehlBGP/dmgSpH4cRdjPmk9VTTEXXja7vjq6R+cpyiaBJJAEkkASSAKdI9BmsRW20gLuBNlO5v5E
6amG5mhad6jlghYaIv4++cXBXRzs+rs89zsdMKnrTV9dU9/wagXseoaBD+beA75KHx/+/PPL5z++
/fknQMpAkvAWizDwWaulqzT2FuUU6cYwFE3j+OreSypEYw5DiIb0q19uvp6eECKR/xKJEKn8XUGM
OxgxypiI2RAxJppe2bdiyDHFkIO0cZFjjIocc1zKsn8ZFzkfxkXO+3GZsjkucuxacrhcVkHkWOq4
pKOPixxrTMp6MxrZMOccvOUaBj/3zhfRw6nwo0cvDCaFQ/oBLVPQuLUELdC/jIucD6MiBznjIscd
FTn6ezGTrChybsdEzv+Oy3Lej8tyxjXr6DfjmgTHpSyExjSursZlOR/HRY6g5bM6tme5YG3l44id
cG/jEFgYguJlWRLcLzP4GJovoFQXEiWmiWOU/cf4A+MC0GA8GYJ5aqY7nvDZUeqOhoCuWay5muHq
4TJKXR7zSN8rYdG4EBZZWfX1J+FbL83WxslrDVBZP2+h4kwzj0zf5dMaT8LB6OzkMCoOjlQ+wwHA
EWGp6bZ1dnxtUzxp0N16cMfJpCT5HGmVLVR1+5SRlHUMJwENoIzDJb0QVuIFTjyFZYurqgEndTid
QfcyjKrglWCaeHMwBciybIFU0Awg5ZAUKLWqV2GbYJ8pRx9I2GaFsG1k9cq6BWt4KNatKjsTYO1V
2DYIypObrDsCWLertM6Tb1FDRRW2A4La6kCsOxWsmzbqlXUXBOXJvxDCululda6JtTXrmgo3EB3I
4DW1knW3MxWrWUK8vWVUts2xBCiZnrZUlnLRHCRQnAdwxZMbrhXKEVrownFFyHDvR+Xzty9rZ+uW
+XqHP6WzeBlOlLmX+TPYARQwXxxRlB9isTzobywbJCfiQ5AuKBm3ZdsIZDmmQOWTvW1I5EB+D/Q8
5ohMNUQw/Xuc1fKtcVUKaUjOZMLwPgdphiNMR/bGMOBxpwsnwZ9h/4dCixztUuKVKdmTGMQ9pl2M
42Wm3McTsImxqzmd6dnLe8qjiAvAh3Zh8BUGaSMFmp4KiAGsGcKThLVHw6fbmw8FIqI4u10FxXTQ
fljMj8/pmXleTqakSJchUKN52ZqDgknFQc5zMt+Q1SScUpO+CcOv69S9TyzzuCSBuzvLdH/3xSu2
c83bxqqiGSSGeR9MJsThmGMyUCZkB7/y8YJtK8F5g+dIqxkJLKJFIRbMDlzxREkfH96Rf4VZ0zIF
GhQ7OwmIQQFQhuP0zSQoXFvApAxxuIKyiXmOugy3CY/zgNgQnRTmwYqo0fdSuE6Wa3dGPnD56mgo
ThS9MJ+mxOtkZURrxhDiGsa8ApjEOCV2hen0X5gvXOFsLsMsoNnrdJMCcse1IW0GSqv6rGf+vIpY
nXeja5ZACUfx+xz9c17CzEuDFsVgW7PMFjvw1KkXJr9TuCFY3Okw3/Guty77xeJA3fJkyHOzfR88
bJPygYlCU1VX1dwBAQ1Ls3k23g1lzWqqMh8qX+fBUx1L+KwYP+IkCSZ4Oy3vG/W6iAu4HXDU3kmp
XqVcwxFNATsw8BMvBQ3bbmjXNacTrMAsfAAgmq+NOX/Hq6xm6TMESPWkPP7nt8+1LAofRSnO1i/z
EUNXh6jsFgANAv/ohcuSk0mRGq4t9iR+nmAhEYRDjvtiZPKcQJtq9ZiF8B9p1Tj6wktTnLCz4akX
hMsE1rlRWe9p9ATs9O35PhU5XSWSOFTuiR9CSKD1iCDlmz2CssmaskxsIVLykk0wDU0MoIH9ZWSd
gguqOarbGXR///CUR7LRkzJlgkOPnZP9HGQ4YZnX1+Zr9u41eeSRw6D2wnxz2xNMBbtj95dpFs+r
CttpiKfaL7cijgBbnWG34JNVd5yGHnw/Y/Dcz3Cz2O2InnxvxN4ySr0pVraNJqAZXFXV5rDNOms4
FZ01tsdvRzEcXN0uzoiwI5y9Pd6uJFppNUWz/pqoFlFYMfJWvMHl/JDaGYwuEvGyOLDzt/NLKviw
0XY0Yeh0Hpl5SUSPY/w0PT6FMvvm891fx4cVjmlpfQs3WUYR2b0WsK36Grii9FrARhqPrPWyWYP5
AbS+b5oRp4tlRrBOSO/eXeVflBim7rSxhl6zZ36Mk2v1nZX/cJNdq6/pfvz7NrN2EXpB1GJMmgLE
GUdzD27AZNdfCHDTIGKwCOS2YEJc1mtdngXZXWS6OVxK4UAxqzn+k+4fRX3CRpN7abYxHIcFizFM
1Bz9EkzGvTiWNFWIjeDVgnif8GBwVWFkCJhKBTNcdAZUqzkRl2BI6PJY0ruYyvoECRoRpiMMXMSI
EMFmYRxwhK4UoS/BaMzLY+nyVnLN6WTzz5FftXcwhREgYniLYrW4ceCYxlCn5TZ7Cnx4CnVUYdgC
ZCyCy6KX7RjNkS9gbKLL8ySQcXksdTqSoIWmN0UF4ONKR9OFESFihDsXp0FdFaDBynMQR1ebk3EJ
ktUujyVdpLFUHBc4CAmjRsC41y9vh6Jf3g6lphgUn3VWbNjrk/q4aRBhk5d3GK9f4PJ6eYfFhiZi
mLEdZf4D7Pg5wigRMNi68XzAbPGMDLnNCbgEO7q8RdW4vB2eIWJRLT3BcTQkjAQRw/zy1lTj8o5t
jctbU2tCKZ/wveItFumVqsKZD6rlCgVhMaJtypcRFI0XBVU4246D+oBSPKBqltYL0n3vSHAyMXKE
gkBs6EIRfADBFImgl5TCEGphetmQ0YwzhDFKCh24QkFKebGGgREqMrA6nusKHY1mKSu2SBi7ZWZk
I4ycFSDjWKhWnJLlUigvziC8wIXJNLJaCwUpNTGRs74GujGWbQvFYKyQB/euGXAptjVTKMZg3MDr
pe4KZQdcyAxOVkxeFLg+LE9gbgMMxgkt83SkGLrtFMqNCU8AyBYK0mlV5oaBJ2aNazLjBNntCwlc
zhXU1gF1R2SnHCUZpbQy2nFCKZSSZqvC6Ngxvj5/8RPsZUBwien2gMkrhVwjxRwezT4hUUV6NNW1
+9MM+QQUWV9RrbsWqwXTzZKsDyiorxfekgqT1SIVNzj9MIYz8pCKetAvgysxcc2wzL4ghxpQ67px
gOnwHHdZg6LZXGibSnheWUYqMnRhYAXW1rnvsMHYXKdhnZAhUNvpD7VXVZ47Gli5QsK1hPtDoolB
+3D7+fb7rQQUCAiW9ZVw7eD+/a+Pd3e/3HyVkIIhv93efH3/SQIO64mCPihPMHVrTxD2Pq0+/V7g
UELjCYiSfqd0BKXfKf1OCSgdQel3Sr9TAlYBOpwOxRQnJU1OXF0gzK5cIQMsuwniKW/UFhNIZOeJ
RTadRiWMN2BFrXHdAIwIbCPIdOYleLJN3e1y4+n0od5D+souPnVbr7zfck5+w+aM6YatjWmU37dx
Rag6g26B3OHQzLoikLA462+nTEsY9LCMnjta//vKlwT3h0QTgzbEnvKFAfa/r3xBcMPsJ18g5BB7
yhcG2NhPaxk/JD006TJJD016aBJQukzSQ5MemgQU76FV3HIgtfsZmshT+aHBtBbiXM2SvPs17XI+
jZcRWMiTI82KG3+vXdUhbjFyybJ6QD0qEVJHhG70QcR+4/FCqRtbGGA1r2Aem3Me3D4G+AknV5Pl
fHGT0h62V36aKmn2HOJ0hjGUK8jRX5wTai9p5xC02OUFOYIwWat4KsQswVjBIZ7Tjsx5Y+Iir4Yp
CHaaePOyIp+OcHHmaMoMhwsyDRbZckVpcO5ls3kIGYllCIJIHx+g5zuiWFhRnSiZB6FYuij9r8Ig
+gHxgYTxsXlT8cnKlGJi1AvWI3oFJBg7vYEus6kDQgrnE9KX44gyu1UaVk+DyBI/bglov7a+hJ6P
nDZeSRrSfxmZR70oncbJPO+h+5f36KV+EiwyZRKk3n0IlzQ3kd0O80BYXOgAw/Vdc4WBp0Uf0Pif
/wdQSwMEFAACAAgAIkM8RJfSlTEaEgAAuhMBAA0AHABlcnJvcl9sb2cudHh0VVQJAAPf2edSbNjn
UnV4CwABBPUBAAAEFAAAAO2da3PbNhaGv++v4HTq2p4WEkVKtqypu+M43sa7qeOJ3aY7aSYDkZCI
mCQYAJSl3dn/vgcgdbEj6mI5skMiGVsXi0d4H9wObofvr1Ni/RPHltO27Han0e60HMuxG80P1vtb
zOMP1nlMZce6IkJQFlun2AuIRYUVM2l5LO7RfsqJb70PaKw+dvU6/6T+4Ie/vV9gH0xQj3ywThL1
2bpTg/9Na+/3mA73rctXl/VWza05B1bE/I9ChOMPvElIDN9Tt2tHtfZoNhEIWZyINKJxH9LHIxxa
LCEcS0iPmJeUw3FSCOeMw6MXUhJLq+Ec1mz43/ig0mG9AxBgs2NZQmK5t2+9/xlbASe9491eGnvK
fE39ZfeXOy9/ruNfPnT0NVYP0xBS2GPcqg8wr/dY6BMu6gmvdw/bI8e2W+6Bb4eDw08j0f38yY1u
bfjXj+vX9YQJWZNRYtHYqv/BwjQiov4SS1w/e3dVf0e6/6Ky/hqPWCqviZCiHkiZ1KV+CjxYyj24
QLLUC5AkUYJ6kJZaEiQWZGhIY2I1Gj8BuR7hhHcsdXWnXp8w6LQhIXVP55FKCrqlMkD6tY9E2p18
hTI5j/LRcsr/gBRZPiNZuSJDKqAwravVw/EAA9KAhjSp0wj34dou9m76nKWxX0vi/goyZ21kdgXx
Uk7lqOZzfHuuzNayj9UCGYVfKD7q2M62FIvZHBYhu0Uhwz6UVSQCQqTKEURjpJOxXDtYg+Jwg+AJ
8qnAXSiyaIDDlGR5/uUXTIxvgkJ4nCbS2t1MvU9CPCL+KeVeVrp3NdmeynoLql0aKz2WZLpCrgSD
dT8RT0J1kSi3jmgEygf9Z5bzXiYaErahLkSGCfyJ+IUCW1sSSAZgNdM3m8lg9SNY/aitLhU73wgn
n1P4DhQzKLzKDnwIzXx0cYl2t5XFeUWbSTi03dAKfRJLdY8vTThRT3XuKqOFmlpb1jRBjwF9Y209
sw3R3F4HJB08pSTnq0g63LokAT6D9hag2VhZEicRGxDkQR/qI8lpvw+eDkowF6SwVjWby7X9LkgI
zqWVCmKxnoUtcKSobtTBMRow6itfUJKhtMDherijpH0cHEPPRzjtjVAw6nLq17w+zZ2lVs0IMAKM
ACPACDACjAAj4JEFtIwAI8AIMAKMACPACDACHiyg5W5pykhdj+D6bAqsFiVk+VR0RHyK6wPqE5ZN
uaJ7Vgrmip5S1DNPjmN3bHtLyWnaTeRTjkTA0tCfJmx5vlPh1bFHfQcldEjCufn8jSnZRMMF6TNJ
9Sp1x/LBJIM6rhaLQdue2LciLL1ArWnnCxfrC9TpnLYlKsVuXaRJwjg0Kmph1Nq7YNCKeAqA1SVW
nKeJ+Pu11TG4RRgazS1lpU6KMgI21shDEnWJf8qxCAqmqJWGw21qmOZWP8I0RFgIApnFYr1IgHoc
R0SndDWB84wUCm0/jVCwpFdrV1nhunepy30UkgEJEdVksvXqbsi8G7VWPf7gvIUVEOw0tiQY++Ar
QCfeJTLgkLaVllW0VPgl9Kq7HIUkX9wvyD7nYJvZJwMqatmCck0ZrIHBWtZB9WlvNXH5erTesZF7
Ajr/WLyomFZFp2s/TXWcPFu3MuqlzPG6podjD6plo1Cdu0113dW0pLHe3qS8eJTtToEmJCG4aGPE
1nWQkujwSqLjU0l03JREh18SHWFJdEQl0cFKoiMuiY7PJdGRlEQHL4kOURIdsiQ60pLoGJREx21J
dAxLomNUEh3/KYmORkl0OCXR4ZZER7MkOlol0XFQEh2HJdFxVBId7ZLosEuioyzrBtSsfzwrHb2S
6Oh/PR1b3TkSfDUdTeepNlWMz3DC5WG47lruUIQSdfURYr1ZKOW0NpwrsOWsG0wjjVW0gb1EnXiV
Qzk3rEb2mZnAGtkbeWiNC2YpdXqnlDrj71NOPMn46CGhMmI8oH29C+tuVAEiCUryU7mTiBnLB0Yz
5rIF/+wkdoxSvdqPAhz7YfFuo63tKpxJZ0KH68iaPoXSn6GH2hAQP4Vq4anNVIXimqasFEBVVyOP
sRtKDL159MRdfM2m+yU+zoRAjNM+jQ3EBxZBw3BjhkLtRFyEsNFxtrWpdBzEqD5nj/1SYdOLiczj
PqldjGxI8p2oCHuATjy5ypk9zl2i9jXPSUxhZJBO59H6VBYTVUpXCjk1gZudhFAHPQi/U/+yztQp
ouseLRJ0IlXML6kDHxE+INMas76u1bUMIfEvzy7Oz16iiMiA+dlOx3x3bsKZZEVymvazlqPivIgA
++xWu/8gJYH8kqM1BDaetUBO+mmI+UOUbS3U2yTdVLBQDbveMR76dRyPVL+wuuy7l2cxoOaLc7YX
22uaKVGo3s6PfayuKtQxrQifjRCmgvG8g3z887fXr+Dqt5nNQq2rnaFXB95S6NqppDik/yG+paPF
Wd+fXfzx3+9eXV9ffnzz9vzX84vv/qe6Z4/BuBlSprtIa6+2rzpwIbk62/KAw3ETvVkr+Ypg/47m
BAzLcf87OSjXrq0O8o7hvC0O9CvUYxz1STHAhZ3MAnSAKSdCPm8EBWr0SepTaDhmI4h5AYMxqKrW
GLybMENysA6TGbv6fMX00F5I8A2Mcj2dvQbMPTDaDC8a8FcETDawBXvqIMSiUnK4UfvzLSHRR88Q
WIJRvw+OtISEd1MYgDhrwylTSSnCYqDkUGLJWYi8ABe3KO1KIfmEBzifjE95aKBoKHEamkIy5VFp
Cj2cDvPlqoYBkYFwDIgMhFttEIxHCC92SavCIcOgggSAvyUNkBkgNE7S4iH/0bfFYx0J5Rt29ZRj
lI3T85nNFf3HKiOKlfWAwAfnRtKoKh190wwWg1TvxpSbWTJ5xItFnneJW81SdYTTTM0bST0NoVcp
fRZhGpuSXwApu3dOFoCogFHDrjajtbl8O61DhbI29xIms/sIhyG7JX7xVLaB4yPXwCmEswmaJ9tI
sRzW3z8f77inmegdxxbcO96db3d3xz2Dj+aA4EUJGslHKSFl6TE2gXF3xIoixgkiscf0PaQMn/t8
5C31iH6mIRHHMFrKyDWMljIqRNSoLKIpHN/QWXVqsUpEspCn6NcX/1q4Ol1BJDTWN2JdNCiuEBRw
jX3mVZtE1IeykYUL3qy+PPLu5HnS5wS+UTtCw4DBdz1kpKTUCiKPQfkP2agp6udDJnhowE/O5njn
9PDNtKHt4BBs7EHhAXGxitms5ij3C0ZQVStH6rgO2PWfd2H6a+i5fw1x87HL1P1ydOrunDRnSlJW
dHacw/FfDh9UbrZAyH5MNMgnPZyGcuzWzpD6Matvjg0/P04qnOPUd9p2fcd9UVDZHMfUN13f1KGh
k6vT83Nd4ZxnW+Psr1XVHrsAOU/eNBHnr2EbfrC3zTq4C7x2ZwAeFoE7XJta6atdYa17BoWp99ew
q378r1oBTelZp/RAmr2b0bMtNY2v7BYp33r3rkt0pbOx1uMsOoUKdQot1J49bLV/gl+u/rW//5AG
u0SFZ7Lg77Eows+28AwffZwWphJeHf+kR2netBgNZ4dojvP+ww+fnbw4NbIO3qtseVGBLQjSx47R
q+vfXkOvL0EQEZVudKal5WDHcY8Os8eG3R4/aeRPGs3xk4PsSdPOH4/yx0ZBa+Q+McYv5ike1YfU
GxH1zUJBAO2NFGcSRtQ/xjF8kL+m8U02mYJ/pP6O+3L69o8qGAu8oyqmRjhsZGndsY9UcnfcE53g
Hadd//Pqasdu1Xeco8xPV8LVWjV+CPSSVOnZraAIRwnhKlJKYXWuHJJVzi1Wj8rSZr9yRJaeWyy8
o2hZkRgQLCGxQDG5BQc79tltpYlEOFRnk4ivHce1UZRvC+EUiIplpMIU5VsJ84AtDcNoKSPHMFrK
yDWMljJqGkZLGbUMo6WMDgyjpYwODaOljNqFjFqGUc7oyDCqx2wWzArH01oVGGnkZ3jXiz1VTTLL
Zy2qiMXAkGsEKKsYlUIMVQiHqWa08uW//HYgeaQNQ2W6/xvZbllwzJPQrox3xYm+hdBMZIRpLIDC
HK4wnrWZlKkRmCklL2i/tWTfbFWJrH4WsaqECoEcVQvISoO26jEZQELlgkOqFSOydCNCxXjQWFCf
jA9kOgbLPCyuwTIPi6EiV5wUqxgQPb4d3zHTQMmgqNueGSelCMzSOuTY1aNiWGQsljUljr2lG5f1
GNtwH/uMKoF7pImms6FfnNp2nPm0IBX6YOncTeiGxar15B24MpZqcrAHRVbVDX0/ta9cL5BP9P1+
GgddKhFU0vwUbFZZDg82riz6bNYd665pR4rQtAyaIjRIpKC8j9WdgjE1/fIsKGgxUhwuPgHpNCoI
Blr/sIu9G2GoyHsnZZHdMFC+hOIYKDNQejj2RhOvwJCZkqExaKA+8kIm1K3nF8w/VZrPZKVsQYjc
SgLKvmWlGZgq8/EhpaoQmXZ5ARzXwCmGU8jGqTAblnZDgj6nrPgGv1Xms2xZtspsYmbKTSGbpcsG
FYbDSYglHRAkvIBEpvzMQSTUFlw1X529+zklfGQ4LeBk4HwJJ1X2IxpjFW94wSyPQZQjcgyiZYiK
RxhuZREZJDNIZMAJQZJCcmdvRnJvXdEQmyHGMQ3V1KGaeQaxjqGzgI5pgBbRaRo6C+i0DJ0FdNDv
ju20DaIFiAychefjqoFh0Ec4phGWpPIcVigSVQgJqOK69GgI1lB3lGB41aX9lkFyB4n4REVZkKwj
oXznpe+FMUow1zsfFkyfGDauYVPIprkJm6wLsnYfLFxtvACbV/nrSxZSbzTDIGYxEakX1JIg2dUb
03ssjX2LccgQ3A2Jvs+5xPKxb1WehZB/CV9/3Pgh20STRQw7bmYx5DPpO+7ZOvcIOa1PLoMXCTyc
93YcGxipLe1E3RVdBlTAA8AUuK/ewLEPv2MGv/6JB/gqMwDv6+/d15eQOHtQv1U4ese+PLm6OntZ
U1+ZFOyDb27pTECS7czifSKRsqXC8yNta16qDreUqlvS7Yf1Blh0ZsoBlEcVLg7HHllaou5awP4l
HZJQvMD+Ce8Xd7btb1KfJMPzCMqj83JR3OVvV9xV2l1Bn7s1fYzfEC7uNYTKFo6XN3VfXp29g2ik
Yq1kLYiofRIVlXi0ZYmqSVf+OMmaPxGwNPSnrSCkcmW9ucrsIVN5weR1ANcWFdrmtuQOo1C94uRz
Cq/r0NzX5HB5Vt67DHd1OKCMkQ/vcDZCkM0JiwW5JsPCaaDWwnH/JScRliknFlHuQ2/sumSduuhY
6t6w4CKNd4J2saAeUl1WD9NQ31JPQNkKSc3r07U1rWq7SNpm4aC+P7v447/fnb65uD67uP54/e/L
s+/+p3xXSI+Hwf3CyiO09mr7yq3KHdoHeLP3ROtzcyh38JAcJRpdfqKtti7CLFxcCAWTxFAB+gU3
x3Y79tHXc1vvpelOz6NUbu6l3vsGdWt0uA4qRKZf5e0mwr9GPZ9SCFkfPl8XaTc7mcv4aH3BykSR
xMKpvXXqwavr68uPb96e/3p+sY1qMMUztxXAYchu0b0/MU77dByieFprjtauNXcMZft18rdU64PF
KPYM662wXoi6+dQ1V/25xvqDdTWrYc9INWwwfsZxn+i7r+ke3Gh1VxrLnio/R+uEUmLprYbrJkyA
R4OguyE9KLh+dgO8NAy/rVQ1209TLsDSmXbCVbrW1Xj3JfIC4t3oBgBNCwuCISlqFk2zPZ1w9eYl
jHgfRTgPe6qVOwnDt7mn/iprT4tEP7mvogyDXW12Q/URFXoqVY/wyNAjiercNpE+uWlBPjyx1LRi
7rXWrBd4/P7xz+pLfukAodPMA31N4r4MatDdiQ1VxWziu4faKGLxJWd9QFgwudXs2PYTlWUaEeV5
qj8GmMcqiZ5Ym8DYzD0S+dtZW18UNBHEtyognsXqVulFCBqlzn82AFXUJ4IMExjfFNaChltmCotm
KporBa7+hrWDE7+4BjilrgE67HKh9FK3f/nE65I+wHUrwGDVdtA9qACMxc1hs1EFBLpVzF4UgqhC
WVjYPLYajzWf9ufH67Or64+vzk5enr1tbGNe7ZZ0EU4SUbftJtLzJ5N5suba82SzxgphtZ7tWs54
JW6zNZ1m8ZrO85EooMYQf9L1bSS41bGfqC38cql4dsD+UDZTa/faBD0LoNZ29RLQvBVog2IWxcRj
UjuuPPLB8nDaD6R1df7r9dnb336yRJBKqdoxn93Gf/s/UEsDBAoAAAAAALBCPEQAAAAAAAAAAAAA
AAAFABwAZmFzdC9VVAkAAwvZ51IQ2udSdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAINCPEQAAAAA
AAAAAAAAAAAJABwAZmFzdC9jc3MvVVQJAAO12OdSENrnUnV4CwABBPUBAAAEFAAAAFBLAwQUAAIA
CACDQjxE2wjTQjsAAAA/AAAAKQAcAGZhc3QvY3NzL2NvbXBhcmUtY29udGVudC1zdHlsZS1zdGRl
cnIudHh0VVQJAAO12OdStdjnUnV4CwABBPUBAAAEFAAAAHMsKUnNLShRKMlXSM0rLE0tTVVIVCjP
L8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBAoAAAAAAJNCPEQAAAAAAAAA
AAAAAAAMABwAZmFzdC9mcmFtZXMvVVQJAAPW2OdSENrnUnV4CwABBPUBAAAEFAAAAFBLAwQUAAIA
CACTQjxE2wjTQjsAAAA/AAAALwAcAGZhc3QvZnJhbWVzL2ZyYW1lLWRpc3BsYXktbm9uZS1mb2N1
cy1zdGRlcnIudHh0VVQJAAPW2OdS1tjnUnV4CwABBPUBAAAEFAAAAHMsKUnNLShRKMlXSM0rLE0t
TVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBAoAAAAAAJxCPEQA
AAAAAAAAAAAAAAAMABwAZmFzdC9sb2FkZXIvVVQJAAPn2OdSENrnUnV4CwABBPUBAAAEFAAAAFBL
AwQUAAIACACXQjxE2wjTQjsAAAA/AAAAUgAcAGZhc3QvbG9hZGVyL2Rpc3BsYXktaW1hZ2UtdW5z
ZXQtY2FuLWJsb2NrLWltYWdlLWFuZC1jYW4tcmVsb2FkLWluLXBsYWNlLXN0ZGVyci50eHRVVAkA
A97Y51Le2OdSdXgLAAEE9QEAAAQUAAAAcywpSc0tKFEoyVdIzSssTS1NVUhUKM8vylbIBEoolGdk
5qQqQMQzixWSUjPz0hUKivKTU4uLU1P0uABQSwMEFAACAAgAmEI8RNsI00I7AAAAPwAAAFMAHABm
YXN0L2xvYWRlci9pbWFnZXMtZW5hYmxlZC11bnNldC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1y
ZWxvYWQtaW4tcGxhY2Utc3RkZXJyLnR4dFVUCQAD39jnUt/Y51J1eAsAAQT1AQAABBQAAABzLClJ
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
2OdS2tjnUnV4CwABBPUBAAAEFAAAAI2OQQ7DIAwE73mFP0Ag7aEVvyHEVSwZjIyR+vwS5QPVXlY7
h9kspREnI6mAqqIRPsQIp1mL3m+P1xpmtvgOIfhCPXvFLkMzdv/tbG5Ph6PSRM0NpXVuwFQRnoCM
BavBTZdJ4l0hwqhpnxoTYEnHf7oqfeTzupcsMS8/UEsDBAoAAAAAAJlCPEQAAAAAAAAAAAAAAAAW
ABwAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL1VUCQAD4tjnUhDa51J1eAsAAQT1AQAABBQAAABQSwME
FAACAAgAmUI8RNsI00I7AAAAPwAAADcAHABodHRwL3Rlc3RzL25hdmlnYXRpb24vZmFsbGJhY2st
YW5jaG9yLXJlbG9hZC1zdGRlcnIudHh0VVQJAAPi2OdS4tjnUnV4CwABBPUBAAAEFAAAAHMsKUnN
LShRKMlXSM0rLE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsD
BAoAAAAAALxCPEQAAAAAAAAAAAAAAAAUABwAaHR0cC90ZXN0cy9zZWN1cml0eS9VVAkAAyPZ51IQ
2udSdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAALxCPEQAAAAAAAAAAAAAAAAqABwAaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvVVQJAAMj2edSENrnUnV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACAC8QjxEY6qsbIIAAACoAAAAQAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L3hzbC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAAyPZ51Ij2edSdXgL
AAEE9QEAAAQUAAAALY1BCsMwDATveYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kE
VdFEe2HQ4d5SCMttnePIku4xxmDIlxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQD9gB
+DRoekNtXCeSyp2WOdKOza8xRJuC7GpN1PGavlBLAwQUAAIACAC8QjxEY6qsbIIAAACoAAAAUgAc
AGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC11bmFmZmVjdGVk
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
AFBLAwQUAAIACADTQjxEnjqTz+0AAAAmAgAAIQAcAGpzL2xhcmdlLWV4cHJlc3Npb25zLWV4cGVj
dGVkLnR4dFVUCQADTdnnUk3Z51J1eAsAAQT1AQAABBQAAACdkctqwzAQRff6ikErh4aQbrsLxbsG
G+wfUOzrSFS2zGgc139fCdJCN4VkMxsdnXnc1rpIgijUWXSfkS6w5uYC0+rEEr5mRowuTImyJlEM
I6AemGk2HEHCQDwoVU0Ul65L9J62sKT/3lMEyKTKDpHCQLo+NY2mMVHmikQOwfuwoqfLRrotm5be
q3P9UbalTk6VccLN+IIx5859+TtRoT1EwCe9J/2SyuvxuNtR2ueHbYTddC20uT8+rPvf94wwG8Uy
1nTaDrMkjkrmwG9ULZJPNGIMvB2eUD/ovqc1LN5vdY6yz7sKL1DqTxJKfQNQSwMEFAACAAgA00I8
RE1T5ZdVCAAAJUQAACUAHABqcy9sYXJnZS1leHByZXNzaW9ucy1wcmV0dHktZGlmZi5odG1sVVQJ
AANO2edSTtnnUnV4CwABBPUBAAAEFAAAAO1cW3OjyBV+96+g7Mp6LwZJtuWxJI9TM75UUtnsTq23
Mo+pBhrR44ZmuxtLniT/PadvCBBISnYmDymOywb6+p37aYryTSozent0k2IUwyXDEnlRirjA8u1p
KRP/+hSahXyl+PZoTkn+fObNX4ggEsfeP448IInX0o9xxDiShOVzL2c5XuiukPEYcz9kUrJs7k2K
tRfDPY4XR/86MsvZRSJGGZ97J+OLme4LHgnF9yRJbH+IouclZ2Ue+25ocq1+6huZHQSjJPZO4jg2
fQnLpZ+gjNDXuZexnIkCRRZghviSAOQJzryxaSoYMKf54JgCRy9YA0onLaQXFxcd6wuUC19gTpJa
pyCfsd6jvqlPcSLn3jiYuvaYiIIiWESikGI/wpSajhWJZQoLjMd/sBhRHJN8Wc02+Kx61F1TQxYy
yVMAJqvhKXvBvMXVdDpd9AkcYyOKQOnlR9hL2MkJZQhY4WSZyqb21Kg7EAEiebUVA/ETCWyO97Bt
ufT1ug1JrVLgztd6VOa24qjYIHvCkdJfr+HoyU2zaZuMtVsndzCqcbE2OzysC1AxrA+s4TMvUJc2
h73wBIlx+Kr+ehrqe8qi5w+IywBYnSeEC+lHKaFxr2DVdk8w/2zXYhxnoNqzPfvZPZz4SQ7mg/1Q
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
rYD8HtOaDQ0KSx0MIGjY+1J5I7EBDNE63